首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送ack时记录路由ack

发送ack时记录路由ack
EN

Stack Overflow用户
提问于 2015-04-14 12:35:27
回答 1查看 2.4K关注 0票数 1

我有一个奇怪的问题,pjsip在发送ack时忽略了记录路由信息。下面是来自日志的sip消息流:

代码语言:javascript
复制
INVITE sip:+110@xxx.com;transport=tls SIP/2.0
Via: SIP/2.0/TLS ipv4.addr:38890;rport;branch=z9hG4bKPjdYP6TZrj4w7v8kicC3cBgABBNb47QHH2;alias
Max-Forwards: 70
From: "+558" <sip:+558@xxx.com>;tag=qfc3TEYcpfIBQHVXMOmh.7pyvqgmVdMh
To: sip:+110@xxx.com
Contact: "+558" <sip:+558@xxx.com>
Call-ID: 7FdLGhQ1L5BjAQsUrCPEOB3WbXipRfs1
CSeq: 18162 INVITE
Route: <sip:xxx.com:5061;transport=tls;lr>
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
User-Agent: SecuVOICE BB10 CSE 2.14.0.1 on Z10 10.3.1.2243
Authorization: Digest xxxx
Content-Type: application/x-x509-user-cert
Content-Length:

SIP/2.0 200 OK
Max-Forwards: 10
Via: SIP/2.0/TLS ipv4.addr:38890;rport=38890;received=ipv4.addr;branch=z9hG4bKPjdYP6TZrj4w7v8kicC3cBgABBNb47QHH2;alias
Record-Route:<sip:xxx.com:5061;transport=tls;lr;ftag=qfc3TEYcpfIBQHVXMOmh.7pyvqgmVdMh;cookie_=e43.052768f7>
Call-ID: 7FdLGhQ1L5BjAQsUrCPEOB3WbXipRfs1
From: "+558" <sip:+558@xxx.com>;tag=qfc3TEYcpfIBQHVXMOmh.7pyvqgmVdMh
To: <sip:+110@xxx.com>;tag=RuDb.RX-9YD0V.BKh0rpj61-SK-ORE5B
CSeq: 18162 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Contact: "+110" <sip:+110@ipv4.addr:25365>
Supported: replaces, 100rel, timer, norefersub
Content-Type: multipart/mixed;boundary=SBC1hJLGTAfp3t2j3HYWIvvgUBsC1RpJ
Content-Length: 27

ACK sip:+110@ipv4.addr:25365 SIP/2.0 
"+110" <sip:+110@ipv4.addr:25365>
Via: SIP/2.0/TLS ipv4.addr:38890;rport;branch=z9hG4bKPjkp-dUZmmgpXNWrZHe2ykqvrr9CgRvlm2;alias
Max-Forwards: 70
From: "+558" <sip:+558@xxx.com>;tag=qfc3TEYcpfIBQHVXMOmh.7pyvqgmVdMh
To: sip:+110@xxx.com;tag=RuDb.RX-9YD0V.BKh0rpj61-SK-ORE5B
Call-ID: 7FdLGhQ1L5BjAQsUrCPEOB3WbXipRfs1
CSeq: 18162 ACK
Route: <sip:xxx.com:5061;transport=tls;lr;ftag=qfc3TEYcpfIBQHVXMOmh.7pyvqgmVdMh;cookie_=e43.052768f7>
Content-Type: application/sdp
Content-Length:   709

从200 OK查看记录路由,我期望ACK看起来像ACK sip:+110@ipv4.addr:25365;transport=tls;lr SIP2.0

为什么pjsip忽略传输uri参数?

EN

回答 1

Stack Overflow用户

发布于 2015-04-14 12:39:02

接收到的记录-路由在对话框中的一个新的传出请求中被复制为路由。

例外情况是,记录路由URI不带";lr“参数。这是与RFC 2543向后兼容的行为。

传出请求的请求URI设置为接收到的联系人标头。

请参阅RFC 3261第12.2.1.1节

UAC使用远程目标和路由集来构建请求的请求-URI和路由头字段。 如果路由集为空,则UAC必须将远程目标URI放置到请求URI中。UAC不能向 请求。 如果路由集不是空的,并且路由集中的第一个URI 包含lr参数(见19.1.1节),UAC必须将 请求URI中的远程目标URI,必须包括一个路由 包含按顺序排列的路由集值的标头字段,包括 参数。 如果路由集不是空的,并且它的第一个URI不包含lr参数,那么UAC必须将第一个URI从路由集中放置到Request中,去掉请求URI中不允许的任何参数。UAC必须添加一个路由标头字段,该字段按顺序包含路由集值的其余部分,包括所有参数。然后,UAC必须将远程目标URI作为最后一个值放置到路由标头字段中。

路由集要么是预先配置的,要么是通过记录路由学习的.

当从另一方接收联系人标头时,将更新目标URI。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29627471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档