官术网_书友最值得收藏!

Stateful Operation

Stateful Operation

This is a simplified description of the stateful operation. You will find a complete and more detailed description in the RFC3261 text. There is a close resemblance between the openser.cfg sections and the figure above. However some processes are manual, such as to check the Max-forwards header, while others are encapsulated in a single command. To illustrate, when you call t_relay() all the forward request processing as described is done automatically.

When operating in stateful mode, a proxy is simply a SIP transaction processor and all these processing steps are required:

  • Validate the request
  • Pre-process the routing information
  • Determine the request's target
  • Forward the request to the target
  • Process all responses

A stateful proxy creates a new server transaction for each new request received. Any retransmissions of the request will then be handled by that server transaction.

Example: For each request traversing our SIP proxy we will:

Step 1: Request validation

  • Check the message size to avoid buffer overflows.
  • Check the Max-forwards header to detect loops.

Step 2: Routing information pre-processing

  • If there is a record-route header, process it.

Step 3: Determine the request target

  • Is it in the location database (registered users)?
  • Is there a route to the destination (gateway destinations)?
  • Is it directed to an external domain (external addresses)?

Step 4: Request forwarding

  • Call the function t_relay() and OpenSER will do all the job for you statefully.

Step 5: Response processing

  • Usually this is done automatically by OpenSER. Sometimes you can use the onreply_route[] section to handle some response. Example: in a "call forward on busy" scenario, we could use the response 486 (Busy) to direct the call to a voicemail server.
主站蜘蛛池模板: 大邑县| 桃园市| 平遥县| 温州市| 耒阳市| 玛纳斯县| 万全县| 包头市| 花莲县| 淳安县| 浦北县| 文安县| 鹤山市| 乌海市| 阿城市| 陕西省| 本溪| 静安区| 古蔺县| 岚皋县| 仪陇县| 托克逊县| 宁海县| 长葛市| 荔波县| 马公市| 连南| 靖远县| 甘南县| 阳城县| 通辽市| 曲水县| 灵武市| 曲麻莱县| 东安县| 儋州市| 九台市| 务川| 邵武市| 肃北| 新宁县|