昨天研究SIPP带媒体呼叫时候,发现只要播放的媒体流超过20s以上,系统就会自动释放,首先以为是媒体播放所致,经过仔细排查:1、系统未开启RtpTimeOut机制 2、即使有媒体流机制,SIPp工具是带媒体呼叫,应该不存在该问题3、是否是录制的媒体流文件存在问题?经过多次录制,多次替换,发现都是在播放20s时候话务中断。由此说来并不是以上原因导致。
到底是什么原因所致呢?抓包发现,流程有些反常,话务建立之后,系统仍旧不断向SIpp侧发200OK,SIpp侧同时不断向系统回复Ack消息,于是怀疑是流程异常导致系统释放,在服务器后台查看呼叫日志,得到一条重要线索:
Retransmitting #6 (NAT) to 192.168.28.105:6808:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.28.105:6808;received=192.168.28.105
From: 3108 <sip:3108@192.168.28.105:6808>;tag=1
To: 3101 <sip:3101@192.168.81.3:5060>;tag=as6a5a101d
Call-ID: 1-2451@192.168.28.105
CSeq: 2 INVITE
User-Agent: OFFICETEN
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces, timer
到底是什么原因所致呢?抓包发现,流程有些反常,话务建立之后,系统仍旧不断向SIpp侧发200OK,SIpp侧同时不断向系统回复Ack消息,于是怀疑是流程异常导致系统释放,在服务器后台查看呼叫日志,得到一条重要线索:
Retransmitting #6 (NAT) to 192.168.28.105:6808:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.28.105:6808;received=192.168.28.105
From: 3108 <sip:3108@192.168.28.105:6808>;tag=1
To: 3101 <sip:3101@192.168.81.3:5060>;tag=as6a5a101d
Call-ID: 1-2451@192.168.28.105
CSeq: 2 INVITE
User-Agent: OFFICETEN
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces, timer