1

我们有这样一种情况,UAC 向服务器发送 INVITE,服务器以 3xx-6xx 响应。如果 UAC 没有在这个响应上发送 ACK - 没有重传。

根据 RFC3261 ( https://www.ietf.org/rfc/rfc3261.txt ),如果没有收到 ACK,则底层堆栈应重新传输响应。

我们的设置是一个带有 MSS-tomcat(mobicents 8、tomcat 8)的 Linux 工作站。

有没有人遇到过这个?

在这里找到的日志

谢谢!

4

2 回答 2

0

找到问题的根源:原来是在发送500消息后,我们应用终止了Leg。这导致 sip-stack 没有有效的会话可以返回,因此它根本不知道是否收到了 ACK。

注意:当我们使用 WebSphere sip-stack 时,在这种情况下,堆栈将简单地忽略应用程序终止支路的请求,并将其延迟到收到 ACK 或重新传输超时之后。

于 2016-06-19T14:13:01.673 回答
0

如果呼叫的 sip 信令通过 tcp(而不是 udp),则不会重新传输错误响应,因为可靠性由底层传输处理。

但是请注意,对于邀请的 200 响应,情况并非如此,因为 2xx 的 ACK 不是逐跳的,并且与响应相比,它可能在网络中采用不同的路径(某些代理可能一直在使用 udp,而 200 可能有迷路了)。

于 2016-06-09T23:21:37.587 回答