美文网首页
SIP路由机制解析

SIP路由机制解析

作者: 耦耦 | 来源:发表于2018-05-07 09:03 被阅读67次

    SIP中存在两种路由场景:

    • 1,请求消息的路由
    • 2,响应消息的路由

    <span style="font-family:'楷体';font-size:17px">其中,响应消息的路由非常简单,就是完全依靠Via来完成的。【说明:】一个SIP消息每经过一个Proxy(包括主叫),都会被加上一个Via头域,当消息到达被叫后,Via头域就记录了请求消息经过的完整路径。被叫将这些Via头域原样copy到响应消息中(包括各Via的参数,以及各Via的顺序),然后下发给第一个Via中的URI,每个Proxy转发响应消息前都会把第一个Via(也就是它自己添加的Via)删除,然后将消息转发给新的第一个Via中的URI,直到消息到达主叫。</span>


    重要概念

    路由集

    Route Set: 路由集。路由集合是一个顺序的SIP或者SIPSURI。这些URI描述了传递一个请求所必须经历的代理列表。一个路由集可以是自适应的,因为包头中包含了Record-Route(记录路由),也可以是依赖配置得到的。(不包括目标地址)


    相关头域说明

    Request-URI:目标用户或者服务的地址。

    Via: Via头域是用来描述请求当前经历的路径的,并且标志了应答所应当经过的路径。Via头域的branchID参数提供了事务的标志,并且用于proxy来检查循环路由。只有当需要通过选择传输设备到达下一个节点(hop)的时候,才需要在头域中包含Via域。
    Contact: Contact头域提供了一个URI,指明了请求的资源或请求发起者,这个URI的含义取决于是在请求还是在应答中。
    Record-Route:Record-Route头域是proxy在请求中增加的,用来强制会话中的后续请求经过本proxy的。
    Route:Route头域用于强制一个请求经过一个proxy路由列表。

    (strick routing)严格路由

    <span style="font-family:'楷体';font-size:17px">Route头域中的值中包含lr参数部分为严格路由,不包含lr的为松散路由。严格路由实际指发送者指明了必须经过的路由,如果下一跳路由找不到就返回错误;</span>

    如果Route头域的第一个值为严格路由,那么UA或Proxy必须根据下列步骤修改这个请求:

    S_1、接收到的消息的request-URI必须是自己的URI

    S_2、把第一个Route头域“弹”出来,并把其中的URI作为新的request-RUI.

    S_3、然后把该消息路由到新的request-URI。

    (loose routing)松散路由

    <span style="font-family:'楷体';font-size:17px">Route头域中的值中不包含lr参数部分为松路由。松散路由的处理不要求必须经过定死的路由列表,它允许通过一些中间的转换再到达下一跳,比如:a-->b是,他可以是先到c再到b</span>

    处理步骤:

    1、Loose Router和Strict Router首先都会检查Router字段的第一个地址是否为自己,如果是则从Router字段中删除自己。

    2、Strict Router在发往下一跳时将使用Router字段中的下一跳地址更新Request URI。

    3、Loose Router首先会检查Request URI是否为自己:如果不是,则不作处理;如果是,则取出Route字段的最后一个地址作为Request URI地址,并从Route字段中删去最后一个地址。

    4、Loose Router其次会检查下一跳是否为Strict Router:如果不是,则不作处理;如果是,则将Request URI添加为Route的最后一个字段,并用下一跳Strict Router的地址更新Request URI。


    • SIP-URI是一个Hop(节点)-to-Hop(节点)的属性,所以有可能被Proxy改变;

    • From和To属性在消息的路由过程中一直保持不变;它们在Request消息中确定,此后对端发来的所有Response消息的From和To都是原样拷贝Request消息中的From和To;

    - Route优先级高于contact高于from

    相关文章

      网友评论

          本文标题:SIP路由机制解析

          本文链接:https://www.haomeiwen.com/subject/bfqmrftx.html