2011-07-11 9 views
1

RFC 3261によれば、進行中または実行中の状態では、サーバートランザクションのタイムアウトはありません。私が理解するように、それはTUがトランザクションに応答を送らなければならないことを意味します。しかし、TUが失敗すると、トランザクションがそのことを知り、終了する方法があるはずです。SIP(​​RFC 3261)サーバートランザクションタイムアウト

RFC 3261によれば、どのような動作が正しいですか?

  1. サーバトランザクションがTUエラーを検出する必要がありますか?

  2. 自分のタイムアウトを追加する必要がありますか?とにかく、相手側のクライアント・トランザクションがタイムアウトすると仮定すると、タイムアウト>予想されるクライアント・トランザクション・タイムアウト後にサーバ・トランザクションを終了することは安全です。

  3. 他の動作?

+0

サーバーINVITEトランザクションの試行状態はありません。 _client_ INVITEトランザクションを意味しますか? –

+0

正確に言えば、私は、非INVITEサーバトランザクションのためのTRYING/PROCEEDINGと、INVITEサーバトランザクションのためのPROCEEDINGを意味します。 –

答えて

2

取引でタイムアウトがリモート障害扱うようにしている - ネットワークパーティションを、リモートマシンが転倒など

SIPはのイベントで何をすべきかを教えていませんローカルのトランザクションユーザー層のように失敗しました。

あなたのTUはSIPスタック全体の「頭脳」なので、失敗した場合、SIPスタックは全体として失敗します。私は、トランザクション層が機能し続けるのが賢明だとは思わない。

トランザクションの中には、アプリケーションの再起動 - プレゼンスサブスクリプション、つまり - コールなどの他のものは意味がないものがあります。これらの "永続的な"トランザクションの状態をディスクに保存し、アプリケーションを再起動した後に復元することができます。