我们遇到UAC向服务器发送INVITE,服务器以3xx-6xx响应的情况。如果UAC没有对此响应发送ACK - 则不会重传。
根据RFC3261(https://www.ietf.org/rfc/rfc3261.txt),如果没有收到ACK,则底层堆栈应重新传输响应。
我们的设置是一个带有MSS-tomcat的Linux工作站(mobicents 8,tomcat 8)。
以前有人遇到过这个吗?
谢谢!
答案 0 :(得分:0)
如果呼叫的SIP信令是通过tcp(而不是udp),则不会重新发送错误响应,因为可靠性由底层传输处理。
但是请注意,对于200响应邀请不是这样,因为2xx的ACK不是逐跳的,并且与响应相比可能在网络中采用不同的路径(某些代理可能已经使用了udp,其中200可能会迷路了。)
答案 1 :(得分:0)
找到问题的根源: 事实证明,在发出500条消息之后,我们申请终止了Leg。这导致sip-stack没有有效的会话返回,因此它根本不知道是否收到了ACK。
注意:当我们使用WebSphere sip-stack时,在这种情况下,堆栈将忽略应用程序终止支路的请求,并将其延迟到收到ACK或重新传输超时之后。