崔彪网

SIP协议的知识总结

关于Dialog:
Dialog是对话的双方(END)关联起来的层次,Dialog-ID一般由From+Call-ID+To组成。Dialog的建立是在Request和对应的non-failure Response生成之后完成建立的(Dialogs are created through the generation of non-failure responses to requests with specific methods),BYE请求可以终结一个Dialog。
注意:
Dialog并不一定非得是INVITE请求发起(specific methods)
Dialog并不一定是2xx响应确认创建(non-failure responses)
Dialog也并不一定是BYE请求关闭(与什么请求创建相关)
Request的From头的tag参数和Response的To头的tag参数唯一标识了Dialog

关于Transaction:
Transaction用于应用层重发、定时和请求与响应的匹配。Request与最终响应(非1xx响应)Response,包括两者之间的消息,构成了一个事务。Via头的branch参数负责标识事务ID。
场景1:Invite--200 OK---ACK
此时ACK虽然不创建事务,但是需要重新计算branch参数。

场景2:Invite--183--Cancel--200 (Cancel)--487--ACK
Cancel的处理方式是Hop By Hop,Via头的branch参数必须与每一跳的Invite报文的Via头的branch参数保持一致,用以标识所要取消的Invite事务。
ACK请求的处理方式也是Hop By Hop,Via头的branch参数必须与每一跳的Invite报文的Via头的branch参数保持一致,用以标识所要确认的Invite事务。

SIP协议会话处理过程总结(INVITE会话吗?有SDP协商的才叫会话吗?)

请求
依据Route记录转发请求
如果没有Route,则依据Request-URI转发请求
添加Record-Route记录,将Proxy记录在后继请求转发路径中
添加Via记录,将Proxy记录在响应转发路径中
路由跳数Max-Forward减一

响应
依据Via转发响应

后继请求
以Contact作为请求目标

作用
Via保证了响应与请求的路径一致
Record-Route/Route保证了关心这一Dialog的Proxy能够保留在后继请求的转发路径中
Max-Forward保证消息不会在网络中无限制的生存下去
Request-URI保证了请求目标不变
Contact保证使用最准确的目标地址作为目的地址

宽松路由与严格路由的区别(Route头域里,带有lr参数,视作宽松路由,如果没带有则视作严格路由)

宽松路由
优先依据Route路由,如果Route不存在,才使用Request-URI路由
在整个路由路径中,Request-URI指向最终目的,始终不变
后继请求使用Contact作为Request-URI

严格路由
始终依据Request-URI路由,如果存在Route,则使用Route修改Request-URI
在整个路由路径中,Request-URI指向下一跳地址,每一跳都改变
使用To标识最终目标,To是目的用户的AOR而不是实际地址

宽松路由的优点
谁能最准确的确定目标?Request-URI orTo?
到达最终目标控制域之后可以依据Request-URI直接转发
From-To所指示的是AOR,From-To-CallID演变为呼叫的唯一标识

此文由崔彪网编辑,未经允许不得转载: 崔彪网 » 移动通信 » SIP协议的知识总结

很酷 (0)
分享到:

评论 0

暂无评论...
验证码
取 消

请选择理由
取消
私信记录 »

请填写私信内容。
取消
加载中,请稍侯......
请填写标题
取消