2011-07-11 118 views
1

根據RFC 3261,PROCEEDING或TRYING狀態中的服務器事務沒有超時。據我瞭解,這意味着恩必須發送迴應的交易。但是,如果TU失敗,應該有一種交易方式來了解並終止。SIP(​​RFC 3261)服務器事務超時

根據RFC 3261,哪種行爲是正確的?

  1. 服務器事務應該檢測到TU失敗嗎?

  2. 我應該添加自己的超時時間嗎?假設另一方的客戶端事務將會超時,在某個超時>期望的客戶端事務超時後終止服務器事務應該是安全的。

  3. 任何其他的行爲?

+0

服務器INVITE事務沒有Trying狀態。你的意思是_client_ INVITE交易嗎? –

+0

準確地說,我的意思是TRYING/PROCEEDING用於非INVITE服務器事務,而PROCEEDING用於INVITE服務器事務。 –

回答

2

在交易超時是處理遠程失敗 - 網絡分區,遠程機器翻倒等

SIP不告訴你在的情況下該怎麼辦當地的失敗,就像你的交易用戶層失敗。

您的TU是整個SIP堆棧的「大腦」,所以如果它失敗了,您的SIP堆棧將作爲一個整體失敗。我認爲交易層試圖繼續運作是不明智的。

一些事務可能會在你的應用程序重新啓動時有意義地持續存在 - 比如說狀態訂閱 - 而另一些事件如調用可能不會。您可能會將這些「持久性」事務的狀態存儲在磁盤上,並在重新啓動應用程序後將其恢復。