pjsip注册碰到电信私有IP上网方式问题
在使用电信猫私有IP模式上网的宽带中,pjsip注册请求的VIA头域跟接收应答中的VIA头域地址不一样,造成注册流程一直重复,注册不成功
如下日志:
注册请求包:
23:09:19.787 pjsua_core.c ....TX 732 bytes Request msg REGISTER/cseq=59490 (tdta0xb1a031e8) to UDP 113.22.5.24:5060:
REGISTER sip:113.22.5.24 SIP/2.0
v: SIP/2.0/UDP 110.83.41.243:45619;rport;branch=z9hG4bKPj6y0Ana3l0p.TVANFCWcJB4N0pcvAuYMl
Route: <sip:113.22.5.24;lr>
Max-Forwards: 70
f: <sip:10000@113.22.5.24>;tag=vJH.dQFgEByZVuOHTJbLLeBZEsp50e.r
t: <sip:10000@113.22.5.24>
i: vOwBdQws7oYUrDPpBu8g1FcHluWAc5e0
CSeq: 59490 REGISTER
m: <sip:10000@110.83.41.243:45619;ob>;+sip.ice
m: <sip:10000@192.168.0.100:5060;ob>;expires=0;+sip.ice
Expires: 150
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Authorization: Digest username="10000", realm="113.22.5.24", nonce="554b803a00007a09c8b683d9c5c8a96d382696e2c969fdfe", uri="sip:113.22.5.24", response="908c7f9e3398d579036936e5b93e9824"
l: 0
--end msg--
接收数据包:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 100.64.33.171:1024;branch=z9hG4bKPj6y0Ana3l0p.TVANFCWcJB4N0pcvAuYMl;received=110.83.41.243;rport=1024
Call-ID: vOwBdQws7oYUrDPpBu8g1FcHluWAc5e0
From: <sip:10000@113.22.5.24>;tag=vJH.dQFgEByZVuOHTJbLLeBZEsp50e.r
To: <sip:10000@113.22.5.24>;tag=9de17b6a16a9da9983a6e9affd3e2da6.b155
CSeq: 59490 REGISTER
Contact: <sip:10000@192.168.0.100:5060;ob>;expires=150
Server: OpenSIPS (1.11.3-notls (x86_64/linux))
Content-Length: 0
--end msg--
注册请求的头域地址是110.83.41.243:45619(公网IP地址),接收的头域地址是100.64.33.171:1024(电信私有IP上网模式中内置路由分配的一个IP地址),就会造成地址变更,再重新注册。下一次又重复地址变更,变成了死循环。
正常接收的VIA是这样的Via: SIP/2.0/UDP 110.83.41.243:45619;branch=z9hG4bKPj6y0Ana3l0p.TVANFCWcJB4N0pcvAuYMl;received=110.83.41.243;rport=45619
如果打电话给客服将电信私有IP上网模式更改为公有IP上网模式就不会出现100.64.33.171:1024这个电信分配的地址,就可以正常注册成功。
如果在pjsip中禁用VIA头域变更的标志,每次注册的头域都是私有地址,这样也能注册成功。但是呼叫不到了?
目前不知道具体的原因? 有哪位大能碰到过这种情况,并且解决了的?