SIP重要头域

From:

<span style="font-family:'楷体';font-size:17px">如果一个SIP消息中没有Contact或者Record-Route头域,那么callee就会根据From头域产生后续的Request。</span>

也就是这里Record-Route、Contact、From是有优先级的,如果Record-Route存在,会先选择Record-Route,没的话再去看Contact有没有,如果连Contact都没有的话,最后才会根据From头域里面的地址残剩后续的Request。

<span style="font-family:'楷体';font-size:17px">from里的URI是可变的,因为中间可能经过层层proxy代理,但是To的地址是唯一的。</span>

Contact:

<span style="font-family:'楷体';font-size:17px">后续Request将根据Contact头域的地址内容决定目的地的地址,同时将Contact头域的内容放到Request-URI中。</span>

看个栗子(alice发起通话,最后bob结束通话):

这里alice(2006)向bob(2008)主动发起INVITE,这里的Request-URI和Contact是这样的: 消息的初始Request-URI应该设置为 To字段中URI 的值。

image.png

现在要说的话都说完了,bob想要挂断电话并发起请求,这里的Request-URI和Contact是这样的:

image.png

这里也就是说,一开始是alice(2006)向bob(2008)发起call请求,最后却是bob发起挂断电话的请求,这时,bob从接收者变成了发起者,而相应的请求行的Request-URI就变成了alice的地址,contact里面也变成了发起者bob的地址。

<span style="font-family:'楷体';font-size:17px">请求者的身份和接收者的身份根据请求是可以相互转换。</span>

Record-Route/Route:

Record-Route头域一般是被proxies插入到request中的,这样后续的Request如何有着和前面一样的call-id就会被路由 到这些proxies。它也会被User Agent作为发送后续request的依据。这套机制很像source-route,Record-Route头域的信息被复制到Route头域中。并 且Request-URI头域会被设置为第一个Route头域的内容。

Via:

Via头域是被服务器插入request中,用来检查路由环的,并且可以使response根据via找到返回的路。它不会对未来的request 或者是response造成影响。 响应消息就依靠via来完成。

<span style="font-family:'楷体';font-size:17px">总的来说,如果有Route,request就应该根据Route发送,如果没有就根据Contact头域发送,如果连Contact都没有,就根据From头域发送。</span>

<span style="font-family:'楷体';font-size:17px">Loop:环路。当请求抵达一个代理服务器,代理服务器转发这个请求,当这个请求再次来到同一个
代理服务器,就称之为环路。</span>

To
To头字段首先指定了请求的所需“逻辑”收件人,或者是此请求的目标用户或资源的记录地址。这可能是也可能不是请求的最终接收者。To头域可以包含SIP或SIPS URI,但也可以使用其他URI方案

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,949评论 18 139
  • SIP中存在两种路由场景: 1,请求消息的路由 2,响应消息的路由 其中,响应消息的路由非常简单,就是完全依靠Vi...
    耦耦阅读 3,087评论 0 0
  • 8. 方法定义(Method Definitions) 通用的HTTP/1.0的方法集将在下面定义,虽然该方法集可...
    Palomar阅读 3,225评论 0 2
  • SIP概括 会话初始协议(Session Initiation Protocal, SIP)。SIP是一个应用层的...
    耦耦阅读 16,073评论 0 13
  • 若我坠入万丈深渊 请沿途寻找残留在石壁上的血肉 假如寻得我 请带上沿途中你所能遇到的我最喜欢的残叶 此刻的你。亲爱...
    有姓有名的野孩子阅读 228评论 0 0