IP: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域失效。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值