Windows Live Messenger 8 Screenshots- -| 回首页 | 2005年索引 | - -触目惊心--血糖高

SIP:Record_route与via的区别- -

TagSIP    Record_route    via    区别                                          

Q: via的作用一方面起到事务标识的作用,另一方面它指示了应答信息应当回送的地址,如果一个proxy在请求中加了Record_Route,它不也是指示应答信息要经过本proxy吗?via和Record_Route两者有什么区别?哪位大侠能讲解一下。

A: 举个例子说吧。假设有两个UA:A和B,两个Proxy:P1和P2,SIP URI/地址分别记为Addr[A]、Addr[B]、Addr[P1]和Addr[P2]。当A向B发送一个INVITE请求时需要依次经过P1和P2。下面通过几个步骤来说明via:
1、A向P1发送INVITE请求,此时via:Addr[A];P1收到请求后返回100trying,此时via:Addr[P1]。
2、P1向P2转发INVITE请求,此时via:Addr[A],Addr[P1];P2收到请求后向P1返回100Trying,此时via:Addr[P2]。
3、P2向B转发INVITE请求,此时via:Addr[A],Addr[P1],Addr[P2];B收到请求后先向P2返回200OK,此时via:Addr[B]。
4、P2将200OK应答转发给P1,此时via:Addr[B],Addr[P2]。
5、当A收到200Ok应答时via:Addr[B],Addr[P2],Addr[P1],从这里可以看到Via的功能是记录路径。
6、当B收到A返回的ACK,建立了语音会话之后。假设某一时刻,B希望通过发送一个BYE请求来结束这次通话,在一般情况下B会将BYE请求发送到先前INVITE请求中的Contact域中的目的地址,但是此时B发现先前的INVITE请求中有一个record-route域,且值为Addr[P1](假设该域的值是P1添加的),则B必须将该BYE请求直接发送到Addr[P1](请注意:不是把该地址赋给TO域,该请求的TO域还是A的URI)。
7、倘若该次会话结束以后,则该Record-Route域失效。

- 作者: 大笨熊 访问统计: 2005年11月3日, 星期四 12:59 加入博采 打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3402772

博客手拉手

[2005-10-24 20:52:17.0]    私有密钥 公共密钥的区别

[2005-10-24 20:52:41.0]    私有密钥 公共密钥的区别

[2005-10-24 16:59:59.0]    SIP 在IMS 中的作用

[2005-10-31 15:09:06.0]    连载了解SIP协议翻译文章[IOKE作品]

[2005-10-26 16:40:32.0]    rfc3261:SIP transaction handling

回复

评论内容: