2016-05-17 81 views
1

我們有一種情況,UAC向服務器發送邀請,服務器以3xx-6xx響應。如果UAC沒有在這個響應上發送一個ACK - 沒有重傳。Mobicents - JAIN-SIP-RI不會重傳錯誤邀請響應

根據RFC3261(https://www.ietf.org/rfc/rfc3261.txt)如果沒有收到ACK,則底層堆棧應重新發送響應。

我們的設置是一個MSS-tomcat(mobicents 8,tomcat 8)的Linux工作站。

有沒有人遇到過這個?

Logs found here

謝謝!

+1

這當然是不確定的。你能否附上server.log? (請將JAINSIP和SipServlet日誌級別設置爲DEBUG) –

+0

感謝評論@Jaime。 將日誌添加到原始帖子。 –

+1

我可以看到INVID與呼號ID:[email protected]。該邀請被拒絕,500(由於非GNF目標號碼導致呼叫被阻止)。這是你最初提到的場景嗎? –

回答

0

如果呼叫的SIP信令是通過tcp(而不是udp)傳輸的,則不會有任何重傳錯誤響應,因爲可靠性是由底層傳輸處理的。

但是請注意,對於200響應邀請,這不是真的,因爲2xx的ACK不是逐跳的,並且與響應相比可能在網絡中採用不同的路徑(某些proxys可能使用了udp,其中200可能已經迷路了)。

+0

我們使用UDP工作,但在這種情況下似乎並不是真正的問題 - 事實證明,我們在發送500條消息後立即終止了這條腿,因此動員者事實上並沒有一個會話來工作。 –

0

發現問題的根源: 事實證明,在發送500條消息之後,我們以適用的方式終止了Leg。這導致sip-stack沒有有效會話返回,因此它根本不知道是否收到ACK。

注意:當我們使用WebSphere sip-stack時,堆棧將簡單地忽略應用程序在此情況下終止分支的請求,並將其延遲到接收到ACK或重新傳輸超時之後。