(57)【特許請求の範囲】
【請求項１】
第１のデバイスから応答メッセージを受信しないときに、非登録トランザクションタイムアウトを検出すること、
前記トランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスと少なくとも１つの新たな非登録トランザクションを開始すること、及び、
前記少なくとも１つの新たな非登録トランザクションについて応答メッセージが受信されないとき、前記特定の期間の後に第２のデバイスと登録トランザクションを開始すること、
を含む方法。
【請求項２】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントすること、をさらに含み、
前記少なくとも１つの新たな非登録トランザクションを開始することは、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの新たな非登録トランザクションを開始することを含む請求項１記載の方法。
【請求項３】
前記少なくとも１つの新たな非登録トランザクションについて応答メッセージを受信すること、及び
前記応答メッセージを受信したとき、前記タイムアウトカウンタをリセットすること、
をさらに含む請求項２記載の方法。
【請求項４】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントすること、をさらに含み、
前記登録トランザクションを開始することは、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと前記登録トランザクションを開始することを含む請求項１記載の方法。
【請求項５】
呼着信統計値に基づき、前記閾値を動的に決定すること、をさらに含む請求項４記載の方法。
【請求項６】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイマを起動すること、をさらに含み、
前記登録トランザクションを開始することは、前記タイマが時間切れしたとき、前記第２のデバイスと前記登録トランザクションを開始すること、を含む請求項１記載の方法。
【請求項７】
前記第１のデバイスとの第１の登録トランザクションについて前記トランザクションタイムアウトが検出された場合、前記第２のデバイスと、第２の登録トランザクションを開始すること、
をさらに含む請求項１記載の方法。
【請求項８】
前記少なくとも１つの新たな非登録トランザクションを開始することは、再送スケジュールに従って、前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信すること、を含む請求項１記載の方法。
【請求項９】
前記イニシャルメッセージと、前記メッセージの１又は複数の再送とを送信することは、少なくとも１つのトランザクションタイムアウトが起きたとき、動的ステート情報を用いずにバイトコードを用いて圧縮された、前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送を送信すること、を含む請求項８記載の方法。
【請求項１０】
前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信すること、をさらに含み、
前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、第１の圧縮手法を用いて送信され、前記メッセージ再送の第２部分は、第２の圧縮手法を用いて送信される請求項１記載の方法。
【請求項１１】
前記メッセージ再送の第２部分は、圧縮せずに送信される請求項１０記載の方法。
【請求項１２】
前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、動的ステート情報を用いて圧縮されて送信され、前記メッセージ再送の第２部分は、動的ステート情報を用いずに圧縮されて送信される請求項１０記載の方法。
【請求項１３】
解凍失敗を検出すること、
検出された解凍失敗の原因を識別すること、及び
前記解凍失敗の原因に基づき、前記再送の第２部分に対する前記第２の圧縮手法を選択すること、
をさらに含む請求項１０記載の方法。
【請求項１４】
ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信すること、
前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送は中止すること、及び
前記第２のデバイスと前記登録トランザクションを開始すること、
をさらに含む請求項１０記載の方法。
【請求項１５】
ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出すること、及び
前記ターミナルＩＰｓｅｃ失敗イベントの検出に応答して、前記第２のデバイスと前記登録トランザクションを開始すること、
をさらに含む請求項１の方法。
【請求項１６】
前記トランザクションタイムアウトを検出することは、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録トランザクションについての応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出することを含む請求項１記載の方法。
【請求項１７】
信号を送信する送信回路と、
第１のデバイスから応答メッセージを受信しないとき、非登録トランザクションタイムアウトを検出し、
前記トランザクションタイムアウトを検出した後、特定の期間、前記送信回路を介して、前記第１のデバイスと少なくとも１つの新たな非登録トランザクションを開始し、
前記少なくとも１つの新たな非登録トランザクションに対する応答メッセージを受信しないとき、前記特定の期間の後に前記送信回路を介して、第２のデバイスと登録トランザクションを開始する、トランザクション管理モジュールと、
を含む装置。
【請求項１８】
トランザクションタイムアウトの回数を監視するタイムアウトカウンタをさらに含み、
前記トランザクション管理モジュールは、前記非登録トランザクションについて前記トランザクションタイムアウトを検出すると、前記タイムアウトカウンタをインクリメントし、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの新たな非登録トランザクションを開始する、請求項１７記載の装置。
【請求項１９】
前記トランザクション管理モジュールは、前記少なくとも１つの新たな非登録トランザクションについて応答メッセージを受信し、前記応答メッセージを受信すると、前記タイムアウトカウンタをリセットする、請求項１８記載の装置。
【請求項２０】
トランザクションタイムアウトの回数を監視するタイムアウトカウンタをさらに含み、
前記トランザクション管理モジュールは、前記非登録トランザクションについて前記トランザクションタイムアウトを検出すると、前記タイムアウトカウンタをインクリメントし、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと、前記登録トランザクションを開始する、請求項１７記載の装置。
【請求項２１】
前記トランザクション管理モジュールは、呼着信統計値に基づき前記閾値を動的に決定する請求項２０記載の装置。
【請求項２２】
前記非登録トランザクションについての前記トランザクションタイムアウトからの経過時間を監視するタイマをさらに含み、
前記トランザクション管理モジュールは、前記タイマが時間切れしたとき、前記第２のデバイスと、前記登録トランザクションを開始する請求項１７記載の装置。
【請求項２３】
前記トランザクション管理モジュールは、前記第１のデバイスとの第１の登録トランザクションについて前記トランザクションタイムアウトを検出した場合、前記第２のデバイスと、第２の登録トランザクションを開始する、請求項１７記載の装置。
【請求項２４】
前記トランザクション管理モジュールは、再送スケジュールに従って、前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信する、請求項１７記載の装置。
【請求項２５】
前記トランザクション管理モジュールは、少なくとも１回トランザクションタイムアウトがあったとき、動的ステート情報を用いずに、バイトコードを用いて圧縮された、前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信する、請求項２４記載の装置。
【請求項２６】
前記トランザクション管理モジュールは、前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信し、前記イニシャルメッセージ及びメッセージ再送の第１部分は、第１の圧縮手法を用いて送信され、メッセージ再送の第２部分は、第２の圧縮手法を用いて送信される請求項１７記載の装置。
【請求項２７】
前記第２の圧縮手法は、非圧縮を含む請求項２６記載の装置。
【請求項２８】
前記新たな非登録トランザクションについての前記イニシャルメッセージと、前記メッセージ再送の第１部分は、動的ステート情報を用いて圧縮されて送信され、前記メッセージ再送の第２部分は、動的ステート情報を用いずに圧縮されて送信される、請求項２６記載の装置。
【請求項２９】
前記トランザクション管理モジュールは、解凍失敗を検出し、検出された解凍失敗の原因を識別し、前記解凍失敗の前記原因に基づき、前記メッセージ再送の第２部分に用いる前記第２の圧縮手法を選択する、請求項２６記載の装置。
【請求項３０】
前記トランザクション管理モジュールは、ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信し、前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送を中止し、前記第２のデバイスとの前記登録トランザクションを開始する、請求項２６記載の装置。
【請求項３１】
前記トランザクション管理モジュールは、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録トランザクションについて応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出する請求項１７記載の装置。
【請求項３２】
前記トランザクション管理モジュールは、ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出し、前記ＩＰｓｅｃ失敗イベントの検出に応答して、前記第２のデバイスと前記登録トランザクションを開始する請求項１７記載の装置。
【請求項３３】
複数の命令を有するコンピュータ読み取り可能な媒体であって、前記複数の命令は、
第１のデバイスから応答メッセージを受信しないとき、非登録トランザクションタイムアウトを検出するコード、
前記トランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスと少なくとも１つの新たな非登録トランザクションを開始するコード、及び、
前記少なくとも１つの新たな非登録トランザクションについて応答メッセージが受信されないとき、前記特定の期間の後、第２のデバイスと登録トランザクションを開始するコード
を含むコンピュータ読み取り可能な媒体。
【請求項３４】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントするコードをさらに含み、
前記少なくとも１つの新たな非登録トランザクションを開始するコードは、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの新たな非登録トランザクションを開始するコードを含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項３５】
前記少なくとも１つの新たな非登録トランザクションについて応答メッセージを受信するコード、及び
前記応答メッセージを受信したとき、前記タイムアウトカウンタをリセットするコード
をさらに含む請求項３４記載のコンピュータ読み取り可能な媒体。
【請求項３６】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントするコードをさらに含み、
前記登録トランザクションを開始するコードは、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと前記登録トランザクションを開始するコードを含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項３７】
呼着信統計値に基づき、前記閾値を動的に決定するコードをさらに含む請求項３６記載のコンピュータ読み取り可能な媒体。
【請求項３８】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイマを起動するコードをさらに含み、
前記登録トランザクションを開始するコードは、前記タイマが時間切れしたとき、前記第２のデバイスと前記登録トランザクションを開始するコードを含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項３９】
前記第１のデバイスとの第１の登録トランザクションについて前記トランザクションタイムアウトを検出した場合、前記第２のデバイスと第２の登録トランザクションを開始するコード、
をさらに含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項４０】
前記少なくとも１つの新たな非登録トランザクションを開始するコードは、再送スケジュールに従って、前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１または複数の再送とを送信するコードを含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項４１】
前記イニシャルメッセージと、前記メッセージの１または複数の再送を送信するコードは、少なくとも１回トランザクションタイムアウトがあったとき、動的ステート情報を用いずにバイトコードを用いて圧縮された、前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージの１または複数の再送とを送信するコードを含む請求項４０記載のコンピュータ読み取り可能な媒体。
【請求項４２】
前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１または複数の再送を送信するコードをさらに含み、
前記新たな非登録トランザクションについての前記イニシャルメッセージと、前記メッセージの再送の第１部分は、第１の圧縮手法を用いて送信され、前記メッセージの再送の第２部分は、第２の圧縮手法を用いて送信される請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項４３】
前記メッセージの再送の第２部分は、非圧縮で送信される請求項４２記載のコンピュータ読み取り可能な媒体。
【請求項４４】
前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの再送の第１部分とは、動的ステート情報を用いて圧縮されて送信され、前記メッセージの再送の第２部分は、動的ステート情報を用いずに圧縮されて送信される請求項４２記載のコンピュータ読み取り可能な媒体。
【請求項４５】
解凍失敗を検出するコード、
前記検出された解凍失敗の原因を識別するコード、及び
前記解凍失敗の原因に基づき、前記再送の前記第２部分に対する前記第２の圧縮手法を選択するコード
をさらに含む請求項４２記載のコンピュータ読み取り可能な媒体。
【請求項４６】
ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信するコード、
前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送を中止するコード、及び
前記第２のデバイスとの前記登録トランザクションを開始するコード、
をさらに含む請求項４２記載のコンピュータ読み取り可能な媒体。
【請求項４７】
前記トランザクションタイムアウトを検出するコードは、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録トランザクションについて応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出するコードを含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項４８】
ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出するコード、及び、
前記ターミナルＩＰｓｅｃ失敗イベントの検出に応答して、前記第２のデバイスと前記登録トランザクションを開始するコード、
をさらに含む請求項３３記載のコンピュータ読み取り可能な媒体。
【請求項４９】
第１のデバイスから応答メッセージを受信しないときに、非登録トランザクションタイムアウトを検出する手段と、
前記トランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスと、少なくとも１つの新たな非登録トランザクションを開始する手段と、
を含み、
前記開始する手段は、前記少なくとも１つの新たな非登録トランザクションについて応答メッセージが受信されないとき、前記特定の期間の後に第２のデバイスと登録トランザクションを開始する装置。
【請求項５０】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントする手段をさらに含み、
前記開始する手段は、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの新たな非登録トランザクションを開始する請求項４９記載の装置。
【請求項５１】
前記少なくとも１つの新たな非登録トランザクションについて応答メッセージを受信する手段と、
前記応答メッセージを受信したとき、前記タイムアウトカウンタをリセットする手段と、
をさらに含む請求項５０記載の装置。
【請求項５２】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントする手段をさらに含み、
前記開始する手段は、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと前記登録トランザクションを開始する請求項４９記載の装置。
【請求項５３】
呼着信統計値に基づき、前記閾値を動的に決定する手段をさらに含む請求項５２記載の装置。
【請求項５４】
前記非登録トランザクションについて前記トランザクションタイムアウトを検出したとき、タイマを起動する手段をさらに含み、
前記開始する手段は、前記タイマが時間切れしたとき、前記第２のデバイスと前記登録トランザクションを開始する請求項４９記載の装置。
【請求項５５】
前記第１のデバイスとの第１の登録トランザクションについて前記トランザクションタイムアウトを検出した場合、前記第２のデバイスと、第２の登録トランザクションを開始する手段と、
をさらに含む請求項４９記載の装置。
【請求項５６】
前記開始する手段は、再送スケジュールに従って、前記新たな非登録トランザクションについてのイニシャルメッセージと、前記メッセージの１又は複数の再送とを開始する請求項４９記載の装置。
【請求項５７】
前記開始する手段は、少なくとも１つのトランザクションタイムアウトが起きたとき、動的ステート情報を用いずにバイトコードを用いて圧縮された、前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送とを開始する請求項５６記載の装置。
【請求項５８】
前記開始する手段は、前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送とを開始し、
前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、第１の圧縮手法を用いて送信され、前記メッセージ再送の第２部分は、第２の圧縮手法を用いて送信される請求項４９記載の装置。
【請求項５９】
前記第２の圧縮手法は、非圧縮を含む請求項５８記載の装置。
【請求項６０】
前記新たな非登録トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、動的ステート情報を用いて圧縮されて送信され、前記メッセージ再送の第２部分は、動的ステート情報を用いずに圧縮されて送信される請求項５８記載の装置。
【請求項６１】
解凍失敗を検出し、検出された解凍失敗の原因を識別する手段と、
前記解凍失敗の原因に基づき、前記再送の第２部分に対する前記第２の圧縮手法を選択する手段と、
をさらに含む請求項５８記載の装置。
【請求項６２】
前記開始する手段は、
ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信し、
前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送を中止し、及び
前記第２のデバイスと前記登録トランザクションを開始する請求項５８記載の装置。
【請求項６３】
前記検出する手段は、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録トランザクションについて応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出する請求項４９記載の装置。
【請求項６４】
ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出する手段をさらに含み、
前記開始する手段は、前記ターミナルＩＰｓｅｃ失敗イベントの検出に応答して、前記第２のデバイスと前記登録トランザクションを開始する請求項４９記載の装置。
【発明の詳細な説明】
【優先権の主張】
【０００１】
この出願は、２００６年９月１２日出願の米国仮出願第６０／８２５，３０７及び２００７年９月１１日出願の米国出願第１１／８５３，６０５の利益を主張し、これらの全内容は、ここに、参照により組み込まれる。
【技術分野】
【０００２】
この開示は、通信デバイス間における通信セッションの確立に関する。
【背景技術】
【０００３】
デバイス間の通信セッションの確立及び管理のために、シグナリング及び制御プロトコルが用いられる。特に、これらシグナリング及び制御プロトコルは、通信セッションの設定、変更及び終了に対し、いくつかの機能を与える。いくつかのシグナリング及び制御プロトコルは、ＨＴＴＰのようなリクエスト及びレスポンストランザクションモデルに基づく。特定の期間内に、リクエストに対するレスポンスが受信されないとき、トランザクションはタイムアウトが発生したとみなされる。
【０００４】
そのようなシグナリング及び制御プロトコルの１つであるＳＩＰ（Session Initiation Protocol）は、パケットベースのネットワークにおいてインターネットプロトコル（ＩＰ）ベースの電話通信サービスの配信を確立及び管理するアプリケーションレイヤのシグナリング及び制御プロトコルである。ＳＩＰは、オーディオ、テレビ会議、テキストメッセージ、双方向型のゲーム、及び自動転送のような種々の通信サービスをサポートするために用いることができる。ＳＩＰプロトコルは、２００２年に発行され、ＩＥＴＦ（Internet Engineering Task Force）により整備され、ＲＦＣ（Request for Commence）３２６１に説明されている。ＳＩＰはエンドユーザへの完全なＩＰベースの電話通信サービスを提供することができるマルチメディアアーキテクチャを構築する他のプロトコルと互換性がある。例えば、ＳＩＰは、ＵＤＰ（User Datagram Protocol）やＴＣＰ（Transmission Control Protocol）のような任意のトランスポートレイヤ上で動作することができる。
【発明の概要】
【０００５】
一側面において、方法は、第１のデバイスからの応答メッセージを受信しないときに、非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出すること、前記非登録トランザクションについてトランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始すること、及び、前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、第2のデバイスとの登録シグナリング及び制御トランザクションを開始すること、を含む。
【０００６】
他の側面において、装置は、信号を送信する送信回路と、第１のデバイスからの応答メッセージを受信しないときに、非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出するトランザクション管理モジュールと、を含む。トランザクション管理モジュールは、前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出した後、特定の期間、送信回路を介して、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始し、前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、前記送信回路を介して、第2のデバイスとのシグナリング及び制御トランザクションを開始する。
【０００７】
他の側面において、第１のデバイスからの応答メッセージを受信しないときに、非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出するコード、前記非登録トランザクションについてトランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始するコード、及び、前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、第2のデバイスとのシグナリング及び制御トランザクションを開始するコードを含む命令を有するコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品。
【０００８】
他の実施形態において、装置は、第１のデバイスからの応答メッセージを受信しないときに、非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出する手段、及び、前記非登録シグナリング及び制御トランザクションに対しトランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始する手段を含み、前記開始する手段は、前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、第２のデバイスとのシグナリング及び制御トランザクションを開始する。
【０００９】
この開示に説明された技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはこれらの任意の組合せで、通信装置に実装され得る。ソフトウェアは、当初、命令、プログラムコード、あるいはこれらと同種のものとして記憶されることがある。従って、この開示は、コンピュータ読み取り可能な媒体からなる通信セッションの確立及び管理のためのコンピュータプログラム製品も意図するものであり、コンピュータ読み取り可能な媒体は、コンピュータに、この開示に従った技術及び機能を実行されるコードを含む。
【００１０】
この開示の技術の１または複数の例の詳細は、添付の図面及び以下の記述に説明されている。この開示の他の特徴、対象、及び利点は、当該記述及び図面、さらに請求の範囲とは明らかであろう。
【図面の簡単な説明】
【００１１】
【図１】シグナリング及び制御プロトコルを用いる２つまたはそれより多い通信デバイス間の通信セッションを管理するシステムを説明するブロック図。
【図２】図１の複数の通信デバイスのうちの１つをさらに詳細に説明するブロック図。
【図３】この開示の技術に従ってトランザクションタイムアウトを処理する通信デバイスの動作例を説明するフロー図。
【図４】基礎となるトランスポートレイヤプロトコルとしてＵＤＰを用いたとき、再送スケジュールに従って、プロキシサーバへのメッセージ送信及びメッセージ再送を行うトランザクション管理モジュールの動作例を説明するフロー図。
【図５】基礎となるトランスポートレイヤプロトコルとしてＴＣＰを用いたとき、再送スケジュールに従って、プロキシサーバへのメッセージ送信及びメッセージ再送を行うトランザクション管理モジュールの動作例を説明するフロー図。
【発明を実施するための形態】
【００１２】
一般に、この開示は、通信デバイス間の通信セッションの確立に関する。例えば、通信デバイスは、デバイス間の通信セッションの確立及び管理のためにシグナリング及び制御プロトコルを用いることがある。ＳＩＰ（Session Initiation Protocol）のようないくつかのシグナリング及び制御プロトコルは、ＨＴＴＰのようなリクエスト及びレスポンストランザクションモデルに基づく。ここで用いられるように、“トランザクション”という用語はメッセージ交換のことを言う。特に、各トランザクションは、複数の通信デバイスのうちの第１通信デバイスから第２通信デバイス（またはプロキシサーバ）へ送信される第１メッセージと、該第２通信デバイス（またはプロキシサーバ）から該第１通信デバイスへの応答として受信される第２メッセージとの少なくとも２つのメッセージからなる。例として、トランザクションは、特定のセッション管理機能を起動するリクエストメッセージと、少なくとも１つのレスポンスメッセージとからなることがある。いくつかの場合において、トランザクションは少なくとも１つの肯定応答メッセージも含むことがある。いずれかの場合、特定の期間内に、トランザクションの第1メッセージについて応答が受信されないとき、当該トランザクションはタイムアウトとみなされる。トランザクションという用語は、“呼制御トランザクション”“シグナリングトランザクション”“呼設定トランザクション”あるいはこれと同等なものと、交換可能に使用される。
【００１３】
この開示は、通信セッションの設定及び管理の間トランザクションタイムアウトからの回避及び回復のための技術を説明する。特に、通信デバイスは、トランザクションタイムアウトとなったシグナリング及び制御メッセージのタイプに基づき、トランザクションタイムアウトに対し、異なる処理を行う。一側面において、通信デバイスは、登録トランザクションでのトランザクションタイムアウトに対し、非登録トランザクションでのトランザクションタイムアウトとは異なる処理を行うことがある。“登録（register）トランザクション”は、送信元デバイスへデータを送信するロケーションの追加または削除を要求するメッセージの交換をいう。ＳＩＰプロトコルにおいて、例えば登録トランザクションのメッセージは、登録開始（initial REGISTER）メッセージ、再登録（re-REGISTER）メッセージ、及び登録解除(de-REGISTER)メッセージを含む。“非登録（non-register）トランザクション”は、登録トランザクションではないトランザクションをいう。ＳＩＰプロトコルにおいて、非登録トランザクションのメッセージの例には、SUBSCRIBEメッセージ、INVITEメッセージ、CANCELメッセージ、PRACKメッセージ、UPDATEメッセージ、BYEメッセージ、ACKメッセージ、及びこれらと同様のものが含まれる。
【００１４】
この開示の技術に従うと、トランザクションを開始した通信デバイスは、ここでは、クライアントデバイスあるいは送信元デバイスというが、この通信デバイスは、トランザクションタイムアウトとなったトランザクションが非登録トランザクションであるとき、少なくとも１つの後続のメッセージの送信を試みることがある。送信元デバイスは、例えば、連続するタイムアウトの回数が閾値になるまで、あるいはタイマ切れとなるまで、あるいは登録メッセージに関連するトランザクションタイムアウトが起こるまで、後続するメッセージの送信を続けることがある。連続するタイムアウトの回数が閾値になった後、あるいはタイマ切れとなった後、あるいは登録メッセージに関連するトランザクションタイムアウトが起きた後、送信元デバイスは、現在の通信セッションをキャンセルし、新たなプロキシサーバへの登録メッセージの送信を送ることがある。非登録トランザクションによりトランザクションタイムアウトが起きた後、１または複数の後続メッセージの送信が可能であるので、トランザクションタイムアウトの原因が一時的であるとき、通信デバイスが、継続中の通信セッションを不必要に切断するのを避けることができる。
【００１５】
図１は、シグナリング及び制御プロトコルを用いる２つまたはそれより多い通信デバイス間の通信セッションを管理するシステム１０を説明するブロック図である。図１に示す例において、システム１０は、通信デバイス１４Ａ及び１４Ｂ（まとめて“通信デバイス１４”）を含む。システム１０は、ＳＩＰネットワーク１２のようなシグナリングネットワークも含み、これは、インターネットプロトコル（ＩＰ）ネットワーク（図示せず）のようなパケットベース通信ネットワークに組み込まれているか、あるいは接続されている。図１の例において、通信デバイス１４は、ＳＩＰネットワーク１２により管理運営されているＳＩＰ通信セッションを用いる他の通信デバイスと通信する。多くの場合、通信デバイス１４は、１または複数の通信デバイスと通信することがある。説明の簡単のため、図１には、２つの通信デバイス１４のみの間の通信を描いている。
【００１６】
通信デバイス１４は、有線または無線通信能力を備えていることがある。例えば、通信デバイス１４のうちの１つまたは両方が、セルラー電話、衛星電話、無線電話、ＰＤＡ（personal digital assistant）、いわゆるＳＩＰ電話、ソフトフォン、ＷｉＦｉハンドセット、ＩＰ電話、あるいは無線通信能力を有する他の任意のデバイスでもよい。あるいは、通信デバイス１４のうちの１つまたは両方が、デスクトップコンピュータ、ラップトップコンピュータ、固定電話、メディアゲートウェイ、アプリケーションサーバ、あるいは有線通信能力を有する他の任意のデバイスでもよい。この開示において、通信デバイス１４は、ＶｏＩＰ（Voice-over-Internet-Protocol）電話及び音声会議、電話及びテレビ会議、テキストメッセージイング、オンラインゲーム、及び他のパケットベース電話通信アプリケーションのような種々のアプリケーションのうちの１つまたは複数に対するＳＩＰシグナリングプロトコルをサポートするように説明される。しかし、ここに説明される技術は、ＩＴＵ−Ｔ（International Telecommunication Union Telecommunication Standardization Sector）により作成されたＨ．３２３標準のような、他のシグナリングプロトコルを用いるために拡張することができる。
【００１７】
複数の通信デバイス１４は、アクセスネットワーク１８Ａ及び１８Ｂ（まとめて“アクセスネットワーク１８”）を介して、それぞれＳＩＰネットワーク１２に接続される。特に、通信デバイス１４Ａは、アクセスネットワーク１８Ａを介してＳＩＰネットワーク１２に接続され、通信デバイス１４Ｂは、アクセスネットワーク１８Ｂを介してＳＩＰネットワーク１２に接続される。アクセスネットワーク１８Ａ及び１８Ｂは、有線ネットワークでもよいし、無線ネットワークあるいはこれらの組合せでもよい。無線という状況においては、通信デバイス１４は、ＧＰＲＳ（General Packet Radio Service）、ＣＤＭＡ（Code Division Multiple Access）、ＣＤＭＡ２０００、Ｗ−ＣＤＭＡ（Wideband-CDMA）、１ｘＥＶ−Ｄｏ（1x Evolution-Data Optimized）などのような種々の無線アクセス技術（ＲＡＴ：wireless radio access technologies）のうちのいずれかに従ってアクセスネットワーク１８を介して通信する。
【００１８】
複数の通信デバイス１４は、同じアクセス技術を用いて、あるいは異なるアクセス技術を用いて、アクセスネットワーク１８を介して通信することがある。この代わりに、あるいは、さらに、複数の通信デバイス１４は、種々のＩＥＥＥ８０２．１１標準により定義されているプロトコルのような無線ローカルエリアネットワーク（ＷＬＡＮ）プロトコルに従って通信することができるようになっている。アクセスネットワーク１８は、無線信号を通信デバイスと交換する複数の無線基地局及び複数のアクセスポイントを含むことがあり、また、インターネット、ＷＡＮ（wide area network）、ＬＡＮ（local area network）、及びまたはＰＳＴＮ（public switched telephone network）のようなグローバルなパケットベースのコアネットワークを介して、他のネットワーククライアントまたはサーバへのコネクションを提供する。
【００１９】
ＳＩＰネットワーク１２は、通信デバイス１４のために動作して、１または複数のＳＩＰメッセージのような複数のシグナリングメッセージを交換することにより通信セッションの確立を容易にするプロキシサーバ２０Ａ及び２０Ｂ（まとめて“プロキシサーバ２０”）を含む。通信デバイス１４及びプロキシサーバ２０は、通信デバイス１４間の１または複数の通信セッションの設定及び管理のためのＳＩＰメッセージを交換する。ＳＩＰセッションが確立されると、オーディオ、ビデオ、あるいはこれら両方のマルチメシアコンテンツが、リアルタイムトランスポートプロトコル（ＲＴＰ）のようなメディアトランスポートプロトコルに従って、通信デバイス１４間で交換される。
【００２０】
送信元デバイス、例えば通信デバイス１４Ａのユーザが、該デバイス上で確立すべき通信セッションの要求を実行するアプリケーションと相互に情報をやりとりするとき、送信元デバイスは、送信元デバイスと終端デバイスである例えば通信デバイス１４Ｂとの間の通信セッションの確立を容易にするためにプロキシサーバ２０と通信する。この開示で用いられる“送信元デバイス”という用語は、複数の通信デバイス１４のうち、セッションの確立、例えば発呼の試みを開始した、１つの通信デバイスをいう。この開示で用いられる“終端デバイス”は、複数の通信デバイス１４のうち、送信元デバイスが通信セッションの確立を試みようとしている相手である１つの通信デバイスをいう。例示的な説明のために、通信デバイス１４Ａは送信デバイス、通信デバイス１４Ｂは終端デバイスとして説明される。しかし、これらデバイスのいずれも、特定のセッションにおいて、送信元デバイスや終端デバイスとして機能することができる。言い換えれば、あるセッションにおける送信元デバイスあるいは終端デバイスは、セッションが進行中の間、トランザクションを開始することができる。さらに、上述したように、送信元デバイスは、多くの場合、複数の終端デバイスと通信することがある。
【００２１】
通信デバイス１４及びプロキシサーバ２０は、通信セッションの設定及び管理のために、多くのＳＩＰメッセージを交換することがある。テレビ電話の場合、例えば、通信デバイス１４及びプロキシサーバ２０は、ＶｏＩＰセッションを確立するための多くのＳＩＰメッセージを交換することがある。通信セッションの確立は、１または複数のトランザクションを必要とする。特に、通信デバイス１４Ａは、プロキシサーバ２０Ａへ、例えばＳＩＰリクエスト及びレスポンスといった複数のメッセージを送信する。プロキシサーバ２０Ａは、該複数のメッセージを処理し、該複数のメッセージを、最終的に、通信デバイス１４Ｂに関連するプロキシサーバ２０Ｂへ転送する。プロキシサーバ２０Ｂは、該複数のメッセージを通信デバイス１４Ｂへ転送する。通信デバイス１４Ａは、通信デバイス１４Ａ上で実行する異なる複数のアプリケーションのために、同時に複数のトランザクションに参加することがある。
【００２２】
通信デバイス１４Ａで開始された該複数のトランザクションのそれぞれに対し、通信デバイス１４Ａは応答を待つ。通信デバイス１４Ａは、例えば、送信されたリクエストメッセージのそれぞれに対する応答であるレスポンスメッセージを待つ。他の例として、通信デバイス１４Ａは、送信されたリクエストメッセージのそれぞれに対する応答である肯定応答（acknowledgement）メッセージを待つことがある。応答が受信されない場合、通信デバイス１４Ａは、メッセージに対する応答が受信されるまで、あるいはトランザクションタイムアウトが発生するまで、再送スケジュールに従ってメッセージを再送することがある。個々で用いられるように、“トランザクションタイムアウト”は、シーケンス中の最初のメッセージが送信されたときから計測された特定の時間（期間）内に応答が受信されない状態をいう。
【００２３】
ＳＩＰトランザクションは多くの原因のいずれかの理由で、タイムアウトとなる。ＳＩＰトランザクションは、例えば、エアインタフェース上の無線周波数（ＲＦ）外れ（outage）、またはＩＰコアネットワーク上の大量のトラフィックの輻輳により起こるネットワークパケット損失が原因となって、タイムアウトとなることがある。他の例として、インテグリティチェックの失敗のような、ＩＰセキュリティ（ＩＰｓｅｃ）エラーが発生したときにもタイムアウトとなることがある。ＳＩＰトランザクションタイムアウトの他の原因は、プロキシサーバ２０または到達できないプロキシサーバ２０での回答失敗を含む。
【００２４】
トランザクションタイムアウトの原因は、原因のタイプに依存して、長さに違いがあることがある。より詳細には、トランザクションタイムアウトのいくつかの原因は、一時的なＲＦ外れ、あるいはトラフィック輻輳のような、単なる一時的なものであることがある。他のトランザクションタイムアウトは、例えば、到達できないプロキシサーバ２０の場合には、永続的な原因であることがある。従って、トランザクションタイムアウトの全ての原因に同じ方法で対処することは、しばしば、通信セッションの進行を不必要に切断することになる。この開示は、中心セッションの管理において、トランザクションタイムアウトを処理するための技術を提供する。この技術は、一時的な状態によりタイムアウトが起きたとき、進行中の通信セッションを不必要に切断をすることを低減することができる。さらに、該技術は、トランザクションタイムアウトを避けることも試みることができる。
【００２５】
特に、通信デバイス１４は、トランザクションタイムアウトの起きたシグナリング及び制御トランザクションのタイプに基づき、トランザクションタイムアウトに対し異なる処理を行う。一側面において、通信デバイス１４は、登録トランザクションの間に起きたトランザクションタイムアウトに対し、非登録トランザクションの間に起きたトランザクションタイムアウトとは異なる処理を行う。上述したように、“登録トランザクション”は、登録メッセージを送信する通信デバイスに対するロケーション情報でロケーションサーバを更新するメッセージ交換のことをいう。登録メッセージは、例えば、通信デバイス１４ＡのＵＲＩ（Uniform Resource Identifier）及びまたは通信デバイス１４ＡのＩＰアドレスを含むことがある。ＳＩＰプロトコルにおいて、登録メッセージは、登録開始（initial REGISTER）メッセージ、再登録（re-REGISTER）メッセージ、及び登録解除(de-REGISTER)メッセージを含むことがある。より詳細には、登録開始メッセージは、ＳＩＰ通信デバイスにより用いられ、以前、該デバイスのコンタクトアドレスとその登録されたアドレスのレコードとの関連付けがないとき、該デバイスのコンタクトアドレスを、その登録されたアドレスのレコードに関連付ける。再登録メッセージは、通信デバイスの関連付けのライフタイムをリフレッシュする。登録解除メッセージは、関連付けを解除する。“非登録トランザクション”は、登録メッセージではないメッセージの交換を言う。ＳＩＰプロトコルにおいて、例えば、非登録メッセージは、SUBSCRIBEメッセージ、INVITEメッセージ、CANCELメッセージ、PRACKメッセージ、UPDATEメッセージ、BYEメッセージ、ACKメッセージ、及びこれらと同様のものを含む。これら非登録メッセージは、ほとんど、通信デバイス１４間の通信セッションの生成、維持、及び終了のために用いられる。ネットワーク内のあるイベントについての情報を得るために、他の非登録メッセージが用いられることがある。上記例はＳＩＰプロトコルに特有である。この開示の技術は、拡張することにより、他のシグナリング及び制御プロトコルにも適用可能である。
【００２６】
この開示の技術に従うと、トランザクションを開始する通信デバイス、例えばこの例における通信デバイス１４Ａは、トランザクションタイムアウトの起きた前回のトランザクションが非登録トランザクションであるとき、現在のプロキシサーバ２０Ａへ、少なくとも１つの後続のトランザクションを開始することがある。通信デバイス１４Ａは、トランザクションタイムアウトの後、特定の期間、プロキシサーバ２０Ａへ１つまたは複数のメッセージを送信することにより、後続の複数のトランザクションの開始を続けることがある。通信デバイス１４Ａは、例えば、連続するタイムアウトの回数が閾値になるまで、プロキシサーバ２０Ａとの後続の複数のトランザクションの開始を続けてもよい。あるいは、通信デバイス１４Ａは、最初のタイムアウトの発生から計測する失敗続期間タイマがきるまで、プロキシサーバ２０Ａとの後続の複数のトランザクションの開始を続けてもよい。通信デバイス１４Ａは、登録メッセージに関連するトランザクションタイムアウトが起きるまで、プロキシサーバ２０Ａとの後続の複数のトランザクションの開始を続けてもよい。
【００２７】
いくつかの場合において、連続するタイムアウトの回数の閾値、あるいはトランザクションタイムアウトが発生して計測される継続時間の閾値は、トランザクション失敗の原因あるいはトランザクションのタイプに基づき異なることがある。言い換えれば、失敗継続時間タイマの継続時間及びまたは連続するタイムアウトの回数の閾値は、ある事実によりすばやく達するように調整されることがあり、これにより、後続の試みたトランザクショントランザクションの最中に失う着呼の数を低減することができる。失敗継続時間タイマの継続時間及びまたは連続するタイムアウトの回数の閾値は、例えば、呼着信統計値に基づき予め設定されるか、あるいは動的に選択される。呼着信統計値は、ＳＩＰリクエストが到着すると推定されるレートのことをいう。ＳＩＰリクエストの大部分は、電話セッションの確立や、インスタントメッセージの配信を予期する。トランザクションタイムアウトの原因も通信デバイスへ送信されるメッセージに影響を与えることもある。これは、連続してタイムアウトが閾値の回数発生するまで、着信するセッションに対し応答できないことを意味する。応答できない着信セッションの耐え得る最大数を、着信セッションが到着する平均レートで除すると、ブロッキングが可能な継続時間が得られる。この期間内に開始されたトランザクションは、タイムアウトを連続して起こすことがある。見逃された着信セッションとは異なり、失敗した発信セッションは、通信デバイスのユーザに直ちに認識される。トランザクションタイムアウトに対する閾値は、そのような失敗したセッションの許容可能な数を表す。いくつかの場合において、継続時間は、呼着信レート統計値に基づき予め設定することができる。
【００２８】
トランザクションが、例えば、連続するトランザクションタイムアウトが閾値の回数起きるまで、または失敗継続時間タイマが切れるまで、または登録メッセージに関連するトランザクションタイムアウトが起きるまでの特定の期間の間、連続してタイムアウトした後、通信デバイス１４Ａは、現在の通信セッションをキャンセルし、新たなプロキシサーバとの登録トランザクションを開始する。非登録トランザクションにより起きたトランザクションタイムアウトの後、１または複数の後続のメッセージを送信できることは、トランザクションタイムアウトの原因が、永続的、長期的、または持続的であるのとは対称的に、単に一時的なものであるとき、通信デバイス１４Ａが、進行中の通信セッションを不必要に切断することを避けることができる。
【００２９】
図１の例において、システム１０は、２つのプロキシサーバ２０と、２つの終点通ＳｏＰにデバイス１４を含む。さらに、システム１０は、１または複数のレジスタサーバ及びロケーションサーバのような、図１には示されていないさらなるエレメントを含むことがある。この開示に説明されているトランザクションタイムアウトを処理する技術は、リクエスト−レスポンスパターンを用いる通信デバイスにより実行されることがあり、損失の大きい通信メディアで動作するデバイスに特に関連する。従って、図１に示したようなＳＩＰネットワーク１２は、単なる例であって、この開示に広範にわたって説明されたような技術を制限するものとみなしてはならない。従って、この開示の技術は、同様なシグナリング及び制御プロトコルにも等しく適用可能である。
【００３０】
図２は、図１の通信デバイス１４Ａをさらに詳細に説明するブロック図である。図１の通信デバイス１４Ｂには、図２の通信デバイス１４Ａに説明されたものと同様の構成部が含まれていてもよい。通信デバイス１４Ａは、アンテナ２２、トランシーバ２４、プロセッサ２６、及びメモリ２８を含む。トランシーバ２４は、信号を送信及び受信する送信回路及び受信回路（図示せず）を含む。図２に説明された例において、トランシーバはアンテナ２２を介して信号を送受信する。トランシーバ２４は、例えば、増幅器、フィルタ、周波数変換器、変調器、復調器、アナログ／デジタル変換回路、デジタル／アナログ変換回路、及びデジタルモデム回路のような、適切なアナログ及びまたはデジタル回路コンポーネントを含む。動作において、アンテナ２２は、通信デバイス１４Ａ二よりサポートされている無線周波数帯域で無線信号を送受信する。トランシーバ２４は、この開示で説明されるプロトコルのような、任意の所望の無線アクセス技術（ＲＡＴ）、あるいは任意のＷＬＡＮプロトコルをサポートするように構成されてもよい。しかし、いくつかの場合において、送信及び受信回路は別個のトランスミッタコンポーネント及びレシーバコンポーネントにより構成されてもよい。図２に説明された通信デバイスの例は、無線通信デバイスであるが、この技術は、有線通信デバイスにも等しく適用可能である。
【００３１】
プロセッサ２６は、トランシーバ２４が信号を送信し、トランシーバ２４で受信された信号を処理するように、トランシーバ２４を制御する。プロセッサ２６は、アプリケーションモジュール３２Ａ−３２Ｎ（まとめて“アプリケーションモジュール３２”）の複数の通信セッションの管理を司る。特に、トランザクション管理モジュール３０及びアプリケーション３２は、通信セッションの設定、変更及び終了を行う。アプリケーションモジュール３２（それぞれは、図２において“ＡＰＰ”とラベル付けされている）は、プロセッサ２６で実行し、ＳＩＰのようなシグナリング及び制御プロトコルを用いて確立された通信セッションを用いるアプリケーションである。アプリケーションモジュール３２は、例えば電話キーパッドのようなユーザインタフェースを介して、ユーザとやりとりする。アプリケーションモジュール３２は、ユーザからの入力に応じて、シグナリング及び制御メッセージを生成し、トランザクションを開始する。例えば、ユーザがＶｏＩＰ電話の呼び出しを行おうとする場合、ＶｏＩＰ電話アプリケーションは、ＩＮＶＩＴＥトランザクションを生成する。アプリケーションモジュール３２は、例えば、ＶｏＩＰテレビ電話及び会議アプリケーション、テレビ電話及び会議アプリケーション、テキストメッセージアプリケーション、インスタントメッセージ、オンラインゲームアプリケーション、プレゼンスアプリケーション、ビデオ共有アプリケーション、プッシュ・ツー・トーク（push-to-talk）及びまたは他のパケットベースの電話通信アプリケーションのうちの１つまたは複数のＳＩＰベースのアプリケーションモジュールでもよい。
【００３２】
トランザクション管理モジュール３０は、アプリケーションモジュール３２のトランザクションを管理する。言い換えれば、トランザクション管理モジュール３０は、シグナリング及び制御プロトコルのトランザクションレイヤを実装する。トランザクション管理モジュール３０は、トランザクションタイムアウトを監視し、この開示の技術に従って、トランザクションタイムアウトを処理する。ＳＩＰは、リクエスト／レスポンストランザクションモデル上で動作するので、トランザクション管理モジュール３０は、各トランザクションにおいて、例えば、レスポンスメッセージあるいは肯定応答メッセージといった応答を待つ。応答が受信されなかった場合、トランザクション管理モジュール３０は、再送スケジュールに従って、メッセージを再送することがある。いくつかの側面において、再送スケジュールは、メッセージのタイプに基づき異なることがある。次のテーブル１は、ＵＤＰトランスポートにおけるＳＩＰリクエストメッセージのいくつかの異なるタイプについての再送スケジュールの例を示している。
【表１】
0005684301.tif 000002
【００３３】
テーブル１は、INVITEメッセージ、非INVITEメッセージ（ＡＣＫ以外）、及びＡＣＫの３つのタイプのリクエストに対し、トランザクションタイムアウトが起こるまでの時間を、ここでは、トランザクションタイムアウトタイマとして示している。INVITEメッセージ、非INVITEメッセージ（ＡＣＫメッセージ以外）、及び２ｘｘレスポンスメッセージに対し送信されたＡＣＫメッセージに対し、トランザクションタイムアウトは、６４＊Ｔ１である。Ｔ１は、往復時間（RTT : round-trip time）の推定値であり、ＳＩＰプロトコルの場合、Ｔ１は５００ミリ秒のデフォルト値をもつ。３ｘｘ−６ｘｘレスポンスメッセージの肯定応答で送信されるＡＣＫメッセージの場合、トランザクションタイムアウトタイマは、ＳＩＰプロトコルに従えば３２秒である。トランザクションタイムアウトタイマの例は、Ｔ１の関数であるが、他のシグナリング及び制御プロトコルは、特定のトランザクションタイムアウトタイマ（例えば、他の変数の関数として）を設定することもできる。
【００３４】
応答が受信されないとき、トランザクション管理モジュール３０及びまたはアプリケーション３２は、テーブル１のそれぞれの再送スケジュールに従ったトランザクションの開始メッセージを再送することがある。例えば、トランザクション管理モジュール３０は、ＩＮＶＩＴＥトランザクションがトランザクションタイムアウトを発生する前に、ＩＮＶＩＴＥメッセージを７回再送する。ＩＮＶＩＴＥメッセージに対する再送スケジュールの例は、テーブル１の第１行目に示されている。特に、ＩＮＶＩＴＥメッセージは、Ｔ１―５００ｍｓの場合において、応答が受信されないとき、または受信されるまで、最初の送信リクエストに対し、０．５秒（ｓｅｃ）、１．５ｓｅｃ、３．５ｓｅｃ、７．５ｓｅｃ、１５．５ｓｅｃ、３１．５ｓｅｃの間隔で、送信される。非ＩＮＶＩＴＥメッセージに対する再送スケジュールの例は、テーブル１の第２行目に示されている。トランザクション管理モジュール３０は、トランザクションがタイムアウトを発生する前に、メッセージを１１回再送する。ＡＣＫメッセージの場合、再送スケジュールは、いつレスポンスメッセージを受信したかに依存するが、トランザクションがタイムアウトを発生する前に、合計１１回の再送が送信される。
【００３５】
テーブル２は、レスポンスメッセージを必要とするサーバトランザクションにおける、同様の再送スケジュールを示している。リクエストメッセージに対する上記説明と同様に、通信デバイス１４Ａは、トランザクションがタイムアウトを発生するまで、あるいは、レスポンスメッセージに対する応答として肯定応答メッセージを受信するまで、再送スケジュールに従って、応答メッセージを再送する。非ＩＮＶＩＴＥトランザクションに対するレスポンスは、リクエストの再送が受信される度に再送される。
【表２】
0005684301.tif 000003
【００３６】
トランザクションのシグナリングメッセージは、シグナリング待ち時間を低減するために圧縮される。ＩＥＴＦにより開発され、ＩＥＴＦ ＲＦＣ３２０で説明されているようなシグナリング圧縮（ＳｉｇＣｏｍｐ）プロトコルは、ＳＩＰメッセージを含むシグナリングメッセージを圧縮及び解凍をサポートするアーキテクチャを確立する。圧縮は、メッセージから冗長な情報を取り除き、解凍は、解凍されたメッセ−ジが可能な限りオリジナルのメッセージと類似するように、冗長な情報を復元する。圧縮されたメッセージをその圧縮前の形に復元することに失敗することを、解凍の失敗という。どの圧縮のスキームも互換性のある圧縮アルゴリズムを実行するためにコンプレッサとデコンプレッサとが必要となる。ＳｉｇＣｏｍｐでは、この要求は、コンプレッサに、互換性のある解凍アルゴリズムを、解凍を行う終端に送信するよう命じることで満たされる。このアルゴリズムの表現は、ＳｉｇＣｏｍｐ専用用語で“バイトコード”と呼ばれる。一連のシグナリングメッセージに共通する冗長は、しばしば存在し、より効果的な圧縮を達成するために利用される。以前送信されたメッセージの全部または一部は、後続のメッセージを圧縮するためのステート情報を構成する。前回保存されたメッセージとの比較でメッセージを圧縮することは、動的圧縮と呼ばれる。静的ステートアイテムとの比較で圧縮することも可能である。そのようなアイテムは、しばしば、シグナリングメッセージ中に検出される共通のキーワードの辞書である。この開示中の圧縮に関する記述は、ＳｉｇＣｏｍｐプロトコルの使用を示唆するが、シグナリングメッセージの可逆圧縮を実行するための他のメカニズムも容易に適用できる。
【００３７】
トランザクション管理モジュール３０及びまたはアプリケーション３２は、現在のトランザクションより前に起きたトランザクションタイムアウトの数に基づき、少数の送信に適用される圧縮手法とは異なる圧縮手法を、その後のリクエストの再送に適用することができる。さらに、トランザクション管理モジュール３０は、基礎となるトランスポートレイヤプロトコルに基づき、イニシャルメッセージ及び任意のメッセージの再送に、異なる圧縮手法を用いることもできる。特に、トランザクション管理モジュール３０は、前回トランザクションタイムアウトが起きなかったとき、イニシャルメッセージと、存在する動的ステート情報を用いて圧縮されたメッセージの１または複数の再送を送信することがある。
【００３８】
基礎となるトランスポートレイヤプロトコルはＵＤＰ（User Datagram Protocol）である場合、トランザクション管理モジュール３０は、トランザクションのイニシャルメッセージと、存在する動的ステート情報を用いて圧縮されたメッセージの最初のＮ回の再送とを送信することがある。イニシャルメッセージまたは最初のＮ回の再送に対し応答が受信されなかった場合、トランザクション管理モジュール３０は、メッセージの残りの再送を、異なる圧縮手法を用いて、あるいは圧縮せずに送信することがある。例えば、トランザクション管理モジュール３０は、動的ステート情報を用いずに圧縮されたメッセージの残りの再送を送信することがある。ステート情報を用いずにデータを圧縮することは、例えば、上述の例における通信デバイス１４Ｂのような終端デバイスでの解凍失敗の可能性を低減する。例えば、終端デバイスがステート情報を失った場合、ステート情報を用いて圧縮されたメッセージをうまく解凍することができない。従って、ステート情報を用いずに圧縮されたメッセージの再送を行うことは、当該メッセージに対する応答を受信する可能性が高くなる。より前の送信にバイトコードが含まれている場合、トランザクション管理モジュール３０は、再送にバイトコードを含めることを続けることができる。メッセージのサイズが、例えば１３００バイトといった閾値を越えるとき、トランザクション管理モジュール３０は、通信デバイスとプロキシとの間のＴＣＰ（Transmission Control Protocol）コネクションを開き、残りの再送を行う。
【００３９】
しかし、基礎となるプロトコルがＴＣＰである場合、トランザクション管理モジュール３０は、存在する動的ステート情報を用いて圧縮された全てのトランザクションを送信する。言い換えれば、圧縮手法は、全再送スケジュールの間も同じである。これは、ＴＣＰは、プロトコルに従って自動的に再送を実行し、再送の間圧縮手法を調整することが許容されていないからである。
【００４０】
以前１または複数回のタイムアウトが起きたとき、トランザクション管理モジュール３０は、イニシャルメッセージの送信と、動的ステート情報を用いずに、バイトコードで圧縮されたメッセージの必要な再送を行う。これも、終端デバイスにおける解凍の失敗の可能性を低減する。トランザクション管理モジュール３０は、イニシャルメッセージの送信と、基礎となるトランスポートレイヤのプロトコルに関わりなく単一の圧縮手法を用いる全ての再送を行う。基礎となるトランスポートレイヤのプロトコルがＴＣＰである場合、トランザクション管理モジュール３０は、イニシャルメッセージの送信と、任意の必要な再送を行う前に、新たなＴＣＰコネクションを開くことがある。トランザクション管理モジュール３０は、いくつかの場合、同じポート番号を用いて、新たなＴＣＰコネクションを開く。再送技術は、トランザクション管理モジュール３０により制御されると説明されているが、再送は、アプリケーション３２により、またはトランザクション管理モジュール３０とアプリケーション３２との連携で制御されてもよい。
【００４１】
いくつかの側面において、トランザクション管理モジュール３０は、解凍の失敗の原因とともに、解凍の失敗を検出するメカニズムを含むことがある。これらの場合、トランザクション管理モジュール３０は、解凍の失敗の原因に基づき、後続の種々のメッセージの再送に用いる圧縮手法を変更することがある。例えば、ＳｉｇＣｏｍｐプロトコルのようないくつかのプロトコルは、解凍の失敗を検出するメカニズムをもつ。一般的に、解凍の失敗は、メッセージの最初の送信の後に直ちに検出されなければならない。メッセージがＵＤＰトランスポートを通じて送信され、解凍の失敗の原因が検出された場合、次のリクエストの送信は、当該失敗の原因を回避する変更された圧縮手法を用いることができる。ＴＣＰの場合、現在のＴＣＰコネクションは閉じられ、新たなＴＣＰコネクションを開いて、適切な変更を行って同じリクエストを送信することを再度試みる。
【００４２】
例えば、ＩＥＴＦ ＲＦＣ ４０７７は、ＳｉｇＣｏｍｐに単純な否定応答（ＮＡＣＫ： Negative Acknowledgement）メカニズムを定義し、受信者に失敗の発生した送信者と通信することを許容する。このＮＡＣＫは、失敗の特徴を通信する理由（reason）コードを含む。あるタイプの失敗の場合、ＮＡＣＫは、該失敗から回復するために有用な追加的な詳細も含むことがある。アクセス試行が、圧縮を行う終端で削除されたステートでなされたとき、共通の失敗が発生する。ＳＴＡＴＥ＿ＮＯＴ＿ＦＯＵＮＤという理由コードと、ステート識別子とを含むＳｉｇＣｏｍｐ ＮＡＣＫメッセージは、失われたステートをアクセスすることをしない後続の送信を行わせることができる。圧縮スキームに、不可逆フローを示す他の理由コードは、非圧縮動作への切替をもたらすことがある。
【００４３】
他の側面において、トランザクション管理モジュール３０は、トランザクションタイムアウトの原因を検出するためにＩＥＴＦ ＲＦＣ ３２６３で推奨されているように、ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを用いることがある。例えば、トランザクション管理モジュール３０は、関連あるコードフィールドをもつ宛先到達不能（Destination Unreachable）メッセージのような、重大なＩＣＭＰエラーメッセージを受信した場合、ＵＤＰトランスポートを用いているのなら、メッセージのさらなる再送を中止し、このエラーメッセージを登録リクエストのトランザクションタイムアウトのように取り扱うことができる。
【００４４】
リクエストが受信されたことを示すレスポンスが、割り当てられた時間（例えば、テーブル１及び２に示されたほとんどの場合において６４＊Ｔ１）内に受信されたとき、トランザクション管理モジュール３０は、タイムアウトカウンタ３４をゼロに設定する。さらに、トランザクション管理モジュール３０は、失敗継続時間タイマ３６もリセットしてもよい。受信されたレスポンスが、プロキシサーバ２０Ａが到達不能であることを示す。さらに、トランザクション管理モジュール３０は、例えば、以下に説明するように、送信メッセージに対するトランザクションタイムアウトが発生したとき、動的圧縮を無効にする。
【００４５】
イニシャルメッセージに対する応答が受信できなかったとき、あるいはトランザクションタイムアウトタイマの継続時間の間、メッセージの再送に対し応答が受信できなかったとき、該トランザクションはタイムアウトが起きる。上述したように、トランザクション管理モジュール３０は、トランザクションタイムアウトに対し、該トランザクションタイムアウトの起きたシグナリング及び制御トランザクションのタイプに基づき、異なる処理を行う。一面において、トランザクション管理モジュール３０は、登録トランザクションで起きたトランザクションタイムアウトは、非登録トランザクションで起きたトランザクションタイムアウトとは異なる処理を行う。
【００４６】
トランザクションタイムアウトの起きたトランザクションが登録トランザクションである場合、トランザクション管理モジュール３０は、異なるプロキシサーバと新たな登録トランザクションを開始する。特に、トランザクション管理モジュール３０は、現在の通信セッションを切断し、そのセッションに対応するアプリケーション３２へ通知する。アプリケーション３２は、トランザクション管理モジュール３０からの通知を受け取ると、現在のリソースを解放し、キャンセルされた通信セッションを用いるダイアログを中断する。アプリケーション３２のうちの１つのアプリケーションとトランザクション管理モジュール３２とは連携して、新たなプロキシサーバ２０を選択し、該新たなプロキシサーバ２０とのイニシャル登録を実行する。上述したように、登録メッセージは、登録開始（initial register）メッセージ、再登録（re-register）メッセージ、及び登録解除(de-register)メッセージを含む。トランザクションタイムアウトの起きたトランザクションが、割当解除メッセージを含む場合には、トランザクション管理モジュール３０は、通信デバイス１４Ａを登録解除するための登録解除手続きをさらに開始してもよい。
【００４７】
トランザクションタイムアウトの起きたトランザクションが非登録トランザクションである場合、トランザクション管理モジュール３０は、通常、当該トランザクションに関連するアプリケーション３２のうちの１つに通知する。従って、特定のトランザクションタイムアウトを処理することが、アプリケーション３２に委ねられる。テーブル３は、トランザクション管理モジュール３０及びアプリケーション３２による、特定のリクエストトランザクションタイムアウトの処理例の詳細を与える。特定のトランザクションタイムアウトの処理は、タイムアウトトランザクションのリクエストメッセージのタイプに基づき異なる。
【表３】
0005684301.tif 000004
【００４８】
0005684301.tif 000005
【００４９】
テーブル３に示したように、トランザクション管理モジュール３０は、通常、失敗したトランザクションで起きた特定のトランザクションタイムアウトに対し、アプリケーション３２のうちの対応するアプリケーションに通知する以外は、何もしない。トランザクション管理モジュール３０は、一般に、繰り返し起こるタイムアウトを、特定のトランザクションタイムアウトに応えたアクションを行う代わりに、進行中の通信セッションを不必要に切断することを避けるような処理を行う。しかし、テーブル３は、トランザクション管理モジュール３０がアクションを実行する１つの特定のリクエストメッセージ、すなわち、ＳＵＢＳＣＲＩＢＥ（購読）メッセージを説明している。ＳＵＢＳＣＲＩＢＥメッセージの場合、トランザクション管理モジュール３０は、ＳＵＢＳＣＲＩＢＥメッセージが “登録（reg）”イベントパッケージの一部ではないとき、トランザクション管理モジュール３０は何もせず、対応するアプリケーションに、タイムアウトトランザクションを処理するために通知する。ＳＵＢＳＣＲＩＢＥメッセージが“登録（reg）”イベントパッケージの一部であり、かつ通信デバイス１４Ａがまだ登録されているとき、トランザクション管理モジュール３０は、試行回数が最大数になるまで、またはサブスクリプション（subscription）が期限切れとなるまで、ＳＵＢＳＣＲＩＢＥメッセージを周期的に再送する。これが不成功であるとき、または登録されていないとき、トランザクション管理モジュール３０は、新たなプロキシサーバ２０に登録する。ＳＵＢＳＣＲＩＢＥメッセージにより起きたトランザクションタイムアウトの処理は、イベントパッケージが登録（reg）イベントパッケージでないとき、代わって、アプリケーション３２に委ねられる。同様に、他のリクエストメッセージのトランザクションタイムアウトの処理は、トランザクション管理モジュール３０に委ねられることがある。
【００５０】
テーブル４は、トランザクション管理モジュール３０及びアプリケーション３２による、特定のサーバトランザクションタイムアウトの処理例の詳細を与える。特定のトランザクションタイムアウトの処理は、タイムアウトしたトランザクションのレスポンスメッセージのタイプと、切断のタイプ（ＩＮＶＩＴＥ、または非ＩＮＶＩＴＥ）とに基づき異なる。
【表４】
0005684301.tif 000006
【００５１】
クライアントトランザクションの間に起きたトランザクションタイムアウトの場合と同様、トランザクション管理モジュール３０は、通常、サーバトランザクションの間に起きたトランザクションタイムアウトに応えて何もしない。代わりに、トランザクション管理モジュールは、アプリケーション３２のうちの対応する１つのアプリケーションに通知を行い、アプリケーション３２は、該特定のトランザクションタイムアウトを処理する。しかし、上述したように、レスポンストランザクションにおけるトランザクションタイムアウトの処理の少なくとも一部は、アプリケーション３２からトランザクション管理モジュール３０に委ねられることがある。
【００５２】
トランザクション管理モジュール３０及びまたはアプリケーション３２による、現在のトランザクションタイムアウトの処理に関わらず、トランザクション管理モジュール３０は、特定の時間、プロキシサーバ２０Ａと後続のトランザクションの開始の試みを続けてもよい。トランザクション管理モジュール３０は、タイムアウトカウンタ３４が閾値より小さく、しかもトランザクションタイムアウトが起きたトランザクションが非登録トランザクションであるとき、同じプロキシサーバ、すなわちプロキシサーバ２０Ａと他のトランザクションの開始を試みてもよい。言い換えれば、トランザクション管理モジュール３０は、新たなプロキシサーバを介して登録する前に、同じプロキシサーバへ、少なくとも１または複数のメッセージの送信を試みてもよい。トランザクション管理モジュール３０は、特定の時間、例えば連続するトランザクションタイムアウトの回数が閾値となるまで、または失敗継続時間タイマ３６が時間切れするまで、またはトランザクションタイムアウトが登録トランザクションで起きるまで、プロキシサーバ２０Ａへのメッセージの送信を続けてもよい。
【００５３】
トランザクションタイムアウトの後、トランザクション管理モジュール３０は、メモリ２８内に記憶されるタイムアウトカウンタ３４をインクリメントする。タイムアウトカウンタ３４は、非登録トランザクションにより起きたトランザクションタイムアウトの数を監視する。タイムアウトカウンタ３４がトランザクションタイムアウトの回数の閾値を越えるとき、トランザクション管理モジュール３０は、現在の通信セッションをキャンセルし、通信セッションのキャンセルされた当該アプリケーション３２に通知する。
【００５４】
あるいは、あたは、これに加えて、トランザクション管理モジュール３０は、失敗継続時間タイマ３６の時間切れを受けて、現在の通信セッションをキャンセルしてもよい。失敗継続時間タイマ３６は、最初のタイムアウトが起きたときからの経過時間を監視する。失敗継続時間タイマ３６は、最初のトランザクションが開始された後、特定の時間期間、現在の通信セッションをオープンにしておくために用いられる。失敗継続時間タイマ３６は、最初のトランザクションタイムアウト後に起きたトランザクションタイムアウトの数とは無関係である。
【００５５】
アプリケーション３６は、トランザクション管理モジュール３０から、通信セッションがキャンセルされたという通知を受け取ると、現在のリソースを解放し、ダイアログを中断する。アプリケーション３２のうちの１つは、トランザクション管理モジュール３０と連携して、新たなプロキシサーバ２０とイニシャル登録を実行する。トランザクション管理モジュール３０は、タイムアウトカウンタ３４及びまたは失敗継続時間タイマ３６もリセットする。トランザクションタイムアウトの後、１または複数の後続の非登録トランザクションを開始できることにより、タイムアウトの原因が一時的であるとき、トランザクション管理モジュール３０が、進行中の通信セッションを不必要に切断することを回避できる。しかし、トランザクション管理モジュール３０は、いくつかの連続するトランザクションタイムアウトが起きた場合、当該プロキシサーバは到達不能と決定する。
【００５６】
ある環境において、トランザクション管理モジュール３０は、トランザクションタイムアウトが起きないとき、現在の通信セッションをキャンセルし、新たなプロキシサーバを介して登録してもよい。例えば、トランザクション管理モジュール３０は、ターミナルＩＰｓｅｃ失敗イベントを検出した後、現在の通信セッションをキャンセルし、新たなプロキシサーバを介して登録する。通信バイスまたはプロキシでセキュリティアソシエーションを削除すること、セキュリティアソシエーションにマッチしない送信メッセージ、または到達不能プロキシの検出は、イニシャル登録プロシジャを起動するターミナルＩＰｓｅｃエラーメッセージの例である。
【００５７】
図２に示された種々のコンポーネントは、ハードウェア、ソフトウェア、ファームウェア、あるいはこれらの組合せで実現することができる。いくつかのコンポーネントは、プロセッサまたは１または複数のマイクロプロセッサで実行されるモジュール、またはＤＳＰ（digital signal processor）、１または複数のＡＳＩＣ（application specific integrated circuit）、１または複数のＦＰＧＡ（field programmable gate array）、または、他の同等の集積またはディスクリート論理回路で実現することもできる。モジュールとしての異なる特徴の叙述は、通信デバイス１４Ａの機能的に異なる側面を明らかにする意図であり、そのようなモジュールは、別個のハードウェア及びまたソフトウェアコンポーネントにより実現すべきであることを必ずしも意味するものではない。どちらかというと、１または複数のモジュールに関連する機能は、共通のまたは別個のハードウェア及びまたはソフトウェアコンポーネント内に統合されていてもよい。従って、この開示は、通信デバイス１４Ａの例に限定すべきではない。
【００５８】
ソフトウェアで実装されるとき、この開示で説明されたシステム及びデバイスに属する機能は、例えば、ＲＡＭ（random access memory）、ＲＯＭ（read-only memory）、不揮発性ＲＡＭ（ＮＶＲＡＭ）、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、ＦＬＡＳＨメモリ、などで構成されるメモリ３４のような、コンピュータ読み取り可能な媒体上の命令として組み込まれていてもよい。命令は実行されると、この開示に説明された機能の１または複数の側面をサポートする。
【００５９】
図３は、通信デバイス１４Ａのような、この開示の技術に従ってトランザクションタイムアウトを処理する通信デバイスの動作例を説明するフロー図である。トランザクション管理モジュール３０は、タイムアウトカウンタ３４及びまたは失敗継続時間タイマ３６をゼロに等しくなるように設定する（４０）。これは、どのトランザクションもトランザクションタイムアウトが起きていないことを示す。トランザクション管理モジュール３０は、トランザクションが成功裏に、すなわち、タイムアウトが起きずに終了した後、タイムアウトカウンタ３４及びまたは失敗継続時間タイマ３６をゼロに設定してもよい。あるいは、トランザクション管理モジュール３０は、新たなプロキシサーバ２０に新たな登録がなされたときに、タイムアウトカウンタ３４及びまたは失敗継続時間タイマ３６をゼロに設定してもよい。
【００６０】
トランザクション管理モジュールは、新たなトランザクションを待つ（４１）。新たなトランザクションがないとき、トランザクション管理モジュール３０は、新たなトランザクションを待ち続ける。新たなトランザクションがあると、トランザクション管理モジュール３０は、新たなトランザクションのメッセージを、対応のプロキシサーバ２０へ送信する（４２）。メッセージを送信することは、イニシャルメッセージを送信するだけでなく、再送スケジュールに従って任意のメッセージの再送を行うことも含む。上述したように、トランザクション管理モジュール３０及びまたはアプリケーション３２は、タイムアウトカウンタ３４の値に基づき、異なる圧縮手法を用いて、メッセージの送信及びまたはメッセージの再送を行う。タイムアウトカウンタ３４がゼロに等しいとき、例えば、トランザクション管理モジュール３０は、ステート情報を用いて圧縮された、イニシャルメッセージの送信、及びメッセージの再送の少なくとも一部を行う。しかし、タイムアウトカウンタ３４がゼロよりも大きいとき、トランザクション管理モジュール３０は、ステート情報ではなくバイトコードを用いて圧縮された、トランザクションのイニシャルメッセージの送信、及びまたは、メッセージの再送を行う。さらに、トランザクション管理モジュール３０は、基礎となるとランポートレイヤプロトコルに基づき、メッセージ及び又はメッセージの再送のための特定の圧縮手法を選択してもよい。
【００６１】
さらに、上記に詳述したように、トランザクション管理モジュール３０は、ＮＡＣＫのように、解凍失敗の原因をとともに、解凍失敗を検出するためのメカニズムを含むことがある。これらの場合、トランザクション管理モジュール３０は、解凍失敗の原因に基づき、後続バージョンのメッセージの再送に用いる圧縮手法を変更してもよい。他の側面において、トランザクション管理モジュール３０は、さらなるメッセージの再送を中止するためにＩＣＭＰエラーメッセージを用い、このエラーメッセージの受信を登録リクエストのトランザクションタイムアウトのように扱うこともできる。
【００６２】
トランザクション管理モジュール３０は、トランザクションにトランザクションタイムアウトが起きたかどうかを決定する（４４）。トランザクション管理モジュール３０は、特定の時間内に、例えば上述したトランザクションタイムアウトタイマの値以内に、イニシャルメッセージまたはメッセージのいずれかの再送に応えて、対応するプロキシサーバ２０からの応答が受信されなかったとき、トランザクションタイムアウトが起きたと決定する。トランザクションタイムアウトタイマ値は、メッセージのタイプに基づき異なることがある。ＳＩＰの場合、例えばトランザクションタイムアウトタイマ値は、往復時間（ＲＴＴ）の６４倍に等しい。通常、ＲＴＴは、０．５秒と見なせるから、トランザクションタイムアウトタイマ値は、３２秒である。
【００６３】
プロキシサーバから応答を受信したとき（すなわち、トランザクションタイムアウトが起きない）、トランザクション管理モジュール３０は、タイムアウトカウンタ３４及びまたは失敗継続時間タイマ３６をゼロに等しくなるように設定する。トランザクションタイムアウトタイマ値以内に、対応のプロキシサーバからの応答が受信されなかったとき（すなわち、トランザクションタイムアウトが発生した）、トランザクション管理モジュール３０は、アプリケーション３２のうち、失敗したトランザクションに関連する１つのアプリケーションに通知する（４６）。関連するアプリケーション３２は、当該特定のメッセージに対するトランザクションタイムアウトを処理する。テーブル３及び４は、特定の複数のタイプのトランザクションのトランザクションタイムアウトに対しアプリケーション３２が行う処理の例を説明する。
【００６４】
トランザクション管理モジュール３０は、トランザクションタイムアウトの起きたトランザクションが登録トランザクションであるかどうかを決定する（４８）。登録トランザクションは、登録開始メッセージ、再登録メッセージ、または登録解除メッセージを含む。トランザクションタイムアウトの起きたトランザクションが登録トランザクションでるとき、トランザクション管理モジュール３０は、現在のどの通信セッションも切断し、新たなプロキシサーバ２０へ登録開始メッセージを送信する（５０）。
【００６５】
トランザクションタイムアウトの起きたトランザクションが非登録トランザクションであるとき、トランザクション管理モジュール３０は、タイムアウトカウンタ３４をインクリメントし、失敗継続時間タイマ３６を（それが開始されていない場合）開始する（５２）。トランザクション管理モジュール３０は、タイムアウトカウンタ３４の値と、閾値とを比較する（５４）。タイムアウトカウンタ３４が閾値以上であるとき、トランザクション管理モジュール３０は、現在のどの通信セッションも切断し、新たなプロキシサーバ２０へ登録開始メッセージを送信する（５０）。
【００６６】
タイムアウトカウンタ３４が閾値より小さいとき、トランザクション管理モジュール３０は、失敗継続時間タイマ３６が時間切れとなったかどうかを決定する（５６）。失敗継続時間タイマ３６が時間切れでないとき、トランザクション管理モジュール３０は、新たなトランザクション、すなわち、後続のトランザクションを待ち、新たなトランザクションを検出したとき、対応するプロキシサーバへ後続のメッセージを送信する（４１，４２）。言い換えれば、トランザクション管理モジュール３０は、直ちに、通信セッションを切断したり、プロキシサーバ２０のうちの新たな１つへ登録したりすることはない。
【００６７】
失敗継続時間タイマ３６が時間切れであるとき、トランザクション管理モジュール３０は、現在のどの通信セッションも切断し，新たなプロキシサーバ２０へ登録開始メッセージを送信する（５０）。非登録トランザクションで起きたトランザクションタイムアウトの後、同じプロキシサーバに、１または複数のこうぞくの後続のメッセージを送信できるので、トランザクションタイムアウトの原因が一時的なものであるとき、トランザクション管理モジュール３０が、進行中の通信セッションを不必要に切断することを回避することができる。トランザクション管理モジュール３０は、いくつかの連続するタイムアウトが起きたとき、当該プロキシサーバは到達不能と判断する。
【００６８】
図３に説明した例において、トランザクション管理モジュール３０は、タイムアウトカウンタ３４と失敗継続時間タイマ３６とを互いに連携して用いている。しかし、これらのうちのいずれか一方は、トランザクションタイムアウトのタイプに基づき、静的あるいは動的に調整されてもよい。例えば、失敗継続時間タイマ３６は、後続の試行されるトランザクションの間に喪失されることがある着信呼の数を低減するために、ある環境に、素早く到達するように調整されてもよい。しかし、他の側面において、トランザクション管理モジュール３０は、タイムアウトカウンタ３４と失敗継続時間タイマ３６のうちの一方のみを他方とは独立に用いることができる。言い換えれば、トランザクション管理モジュール３０は、失敗継続時間タイマ３６を用いず、タイムアウトカウンタ３４と閾値との比較に基づき、通信セッションを切断するかどうかを決定することができる。同様に、トランザクション管理モジュール３０は、タイムアウトカウンタ３４に関わらず、失敗継続時間タイマ３６が時間切れであるかどうかに基づき、通信セッションを切断するかどうかを決定することができる。
【００６９】
図４は、メッセージを送信し、必要があれば、再送スケジュールに従ってプロキシサーバへメッセージの再送を行う、トランザクション管理モジュール３０の動作例を説明するフロー図である。最初に、トランザクション管理モジュール３０は、アプリケーション３２のうちの１つから、ＵＤＰを用いて、リクエストを受信する（６０）。トランザクション管理モジュール３０は、タイムアウトカウンタ３４の値がゼロに等しいかどうかを決定する（６２）。
【００７０】
タイムアウトカウンタ３４がゼロに等しいとき、トランザクション管理モジュール３０は、動的ステート情報を用いて圧縮されたイニシャルメッセージの送信及び最初の部分のメッセージの再送を行う（６４）。最初の部分のメッセージの再送は、例えば、最初の２つまたは最初の３つのメッセージの再送が含まれていてもよい。最初のいくつかのメッセージの再送の後、応答が受信されない場合には、トランザクション管理モジュール３０は、動的ステート情報を用いずに、バイトコードで圧縮された残りのメッセージの再送を行う（６６）。
【００７１】
タイムアウトカウンタ３４がゼロより大きいとき、トランザクション管理モジュール３０は、動的ステート情報を用いずに、バイトコードで圧縮されたイニシャルメッセージの送信及び任意のメッセージの再送を行う（６８）。このようにして、トランザクション監視モジュール３０は、トランザクションタイムアウトが既に発生した後、解凍の失敗が起きるリスクを低減する。
【００７２】
図５は、再送スケジュールに従ってプロキシサーバへ、メッセージの送信と、必要があればメッセージの再送とを行うフロー図を示す。最初に、トランザクション管理モジュール３０は、ＴＣＰを用いて、アプリケーション３２のうちの１つからの要求を受信する（７０）。トランザクション管理モジュール３０は、タイムアウトカウンタ３４の値がゼロに等しいかどうかを決定する（７２）。タイムアウトカウンタ３４の値がゼロに等しいと決定したとき、トランザクション管理モジュール３０は、メッセージを、存在する動的ステート情報を用いて圧縮した後、ＴＣＰレイヤへ渡す（７４）。ＴＣＰは、プロキシへのメッセージの信頼できる配信を保証するという責任を担う。
【００７３】
タイムアウトカウンタ３４がゼロより大きいとき、新たなＴＣＰコネクションを開く（７６）。一側面において、トランザクション管理モジュール３０は、同じポート番号を用いて、通信デバイスとプロキシサーバとの間に新たなＴＣＰコネクションを開くことがある。トランザクション管理モジュール３０は、動的ステート情報を用いずにメッセージを圧縮した後、該メッセージをバイトコードとともにＴＣＰレイヤへ渡す（７８）。この場合もやはり、ＴＣＰは、プロキシへのメッセージの信頼できる配信を保証するという責任を担う。
【００７４】
ここに説明された教えに基づき、ここに開示された側面は、他の任意の複数の側面と独立して実装されることがあり、また、これら複数の側面のうちの１つまたは複数と種々の方法で組み合わせ得ることも、明らかであるに違いない。ここに説明された技術は、ハードウェア、ソフトウェア、またはこれらの任意の組合せで実装されてもよい。ハードウェアで実装される場合、当該技術は、デジタルハードウェア、アナログハードウェア、あるいはこれらの組合せにより実現することができる。ソフトウェアで実装される場合、当該技術は、少なくとも一部は、１または複数の命令またはコードが記憶されているコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品により実現することができる。
【００７５】
例として、また、これに限定するものではないが、そのようなコンピュータ読み取り可能な媒体は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ：synchronous dynamic random access memory）のようなＲＡＭ、ＲＯＭ（read-only memory）、不揮発性ＲＡＭ（ＮＶＲＡＭ： non-volatile random access memory）、ＲＯＭ、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、ＥＰＲＯＭ（erasable programmable read-only memory）、フラッシュメモリ、ＣＤＲＯＭあるいは他の光ディスク記憶装置、磁気ディスク記憶装置あるいは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形で搬送または記憶するために用いられ、しかもコンピュータによりアクセス可能な他の任意の現実的な媒体からなる。
【００７６】
コンピュータプログラム製品のコンピュータ読み取り可能な媒体に関連する命令あるいはコードは、コンピュータにより、例えば、１または複数のＤＳＰ（digital signal processor）、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＦ、あるいは他の同等な集積またはディスクリート論理回路のような１または複数のプロセッサにより実行される。
【００７７】
多くの側面及び例が説明された。しかし、これらの例の種々の変形は可能であり、ここに与えられた原理は、他の側面においても適用することができる。これら及び他の側面は、次に示す請求の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］第１のデバイスから応答メッセージを受信しないときに、非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出すること、
前記非登録トランザクションについて、トランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始すること、及び、
前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、第２のデバイスとの登録シグナリング及び制御トランザクションを開始すること、
を含む方法。
［Ｃ２］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントすること、をさらに含み、
前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始することは、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始することを含むＣ１記載の方法。
［Ｃ３］前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージを受信すること、及び
前記応答メッセージを受信したとき、前記タイムアウトカウンタをリセットすること、  をさらに含むＣ２記載の方法。
［Ｃ４］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントすること、をさらに含み、
前記登録シグナリング及び制御トランザクションを開始することは、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと前記登録シグナリング及び制御トランザクションを開始することを含むＣ１記載の方法。
［Ｃ５］呼着信統計値に基づき、前記閾値を動的に決定すること、をさらに含むＣ４記載の方法。
［Ｃ６］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイマを起動すること、をさらに含み、
前記登録シグナリング及び制御トランザクションを開始することは、前記タイマが時間切れしたとき、前記第２のデバイスと前記登録シグナリング及び制御トランザクションを開始すること、を含むＣ１記載の方法。
［Ｃ７］前記第１のデバイスから、第１の登録シグナリング及び制御トランザクションについて応答を受信しないとき、前記第１の登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出すること、
前記第１の登録シグナリング及び制御トランザクションについて前記トランザクションタイムアウトを検出したとき、前記第２のデバイスと、第２の登録シグナリング及び制御トランザクションを開始すること、
をさらに含むＣ１記載の方法。
［Ｃ８］前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始することは、再送スケジュールに従って、前記後続のシグナリング及び制御トランザクションについてのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信すること、を含むＣ１記載の方法。
［Ｃ９］前記イニシャルメッセージと、前記メッセージの１又は複数の再送とを送信することは、少なくとも１つのトランザクションタイムアウトが起きたとき、動的ステート情報を用いずにバイトコードを用いて圧縮された、前記後続のシグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送を送信すること、を含むＣ８記載の方法。
［Ｃ１０］前記後続の非登録シグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送とを送信すること、をさらに含み、
前記非登録シグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、第１の圧縮手法を用いて送信され、前記メッセージ再送の第２部分は、第２の圧縮手法を用いて送信されるＣ１記載の方法。
［Ｃ１１］前記メッセージ再送の第２部分は、圧縮せずに送信されるＣ１０記載の方法。
［Ｃ１２］前記非登録シグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、動的ステート情報を用いて圧縮されて送信され、前記メッセージ再送の第２部分は、動的ステート情報を用いずに圧縮されて送信されるＣ１０記載の方法。
［Ｃ１３］解凍失敗を検出すること、
検出された解凍失敗の原因を識別すること、及び
前記解凍失敗の原因に基づき、前記再送の第２部分に対する前記第２の圧縮手法を選択すること、
をさらに含むＣ１０記載の方法。
［Ｃ１４］ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信すること、
前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送は中止すること、及び
前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始すること、
をさらに含むＣ１０記載の方法。
［Ｃ１５］ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出すること、及び
ターミナルＩＰｓｅｃ失敗イベントに応答して、前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始すること、
をさらに含むＣ１の方法。
［Ｃ１６］前記トランザクションタイムアウトを検出することは、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録シグナリング及び制御トランザクションについての応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出することを含むＣ１記載の方法。
［Ｃ１７］信号を送信する送信回路と、
第１のデバイスから応答メッセージを受信しないとき、非登録シグナリング及び制御トランザクションについてのトランザクションタイムアウトを検出し、
前記非登録シグナリング及び制御トランザクションに対しトランザクションタイムアウトを検出した後、特定の期間、前記送信回路を介して、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始し、
前記少なくとも１つの後続のシグナリング及び制御トランザクションに対する応答メッセージを受信しないとき、前記特定期間の後、前記送信回路を介して、第2のデバイスとのシグナリング及び制御トランザクションを開始する、トランザクション管理モジュールと、
を含む装置。
［Ｃ１８］トランザクションタイムアウトの回数を監視するタイムアウトカウンタをさらに含み、
前記トランザクション管理モジュールは、前記非登録シグナリング及び制御トランザクションについて前記トランザクションタイムアウトを検出すると、前記タイムアウトカウンタをインクリメントし、前記タイムアウトカウンタの値が閾値より小さいとき、少なくとも１つの後続のシグナリング及び制御トランザクションを開始する、Ｃ１７記載の装置。
［Ｃ１９］前記トランザクション管理モジュールは、前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージを受信し、前記応答メッセージを受信すると、前記タイムアウトカウンタをリセットする、Ｃ１８記載の装置。
［Ｃ２０］トランザクションタイムアウトの回数を監視するタイムアウトカウンタをさらに含み、
前記トランザクション管理モジュールは、前記非登録シグナリング及び制御トランザクションについて前記トランザクションタイムアウトを検出すると、前記タイムアウトカウンタをインクリメントし、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと、前記登録シグナリング及び制御トランザクションを開始する、Ｃ１７記載の装置。
［Ｃ２１］前記トランザクション管理モジュールは、呼着信統計値に基づき前記閾値を動的に決定するＣ２０記載の装置。
［Ｃ２２］前記非登録シグナリング及び制御トランザクションについてのタイムアウトからの経過時間を監視するタイマをさらに含み、
前記トランザクション管理モジュールは、前記タイマが時間切れしたとき、前記第２のデバイスと、前記登録シグナリング及び制御トランザクションを開始するＣ１７記載の装置。
［Ｃ２３］前記トランザクション管理モジュールは、前記第１のデバイスから、第１の登録シグナリング及び制御トランザクションについての応答メッセージを受信しないとき、前記第１の登録シグナリング及び制御トランザクションについてのタイムアウトを検出し、前記第１の登録シグナリング及び制御トランザクションについてのタイムアウトを検出したとき、前記第２のデバイスと、第２の登録シグナリング及び制御トランザクションを開始する、Ｃ１７記載の装置。
［Ｃ２４］前記トランザクション管理モジュールは、再送スケジュールに従って、前記後続のシグナリング及び制御トランザクションについてのイニシャルメッセージの送信と、１または複数のメッセージの再送を行う、Ｃ１７記載の装置。
［Ｃ２５］前記トランザクション管理モジュールは、少なくとも１回トランザクションタイムアウトがあったとき、動的ステート情報を用いずに、バイトコードを用いて圧縮された、前記後続のシグナリング及び制御トランザクションについてのイニシャルメッセージの送信と、１または複数のメッセージの再送を行う、Ｃ２４記載の装置。
［Ｃ２６］前記トランザクション管理モジュールは、前記後続の非登録シグナリング及び制御トランザクションについてのイニシャルメッセージの送信と、１または複数のメッセージの再送を行い、前記イニシャルメッセージ及びメッセージ再送の第１部分は、第１の圧縮手法を用いて送信され、メッセージ再送の第２部分は、第２の圧縮手法を用いて送信されるＣ１７記載の装置。
［Ｃ２７］前記第２の圧縮手法は、非圧縮を含むＣ２６記載の装置。
［Ｃ２８］前記非登録シグナリング及び制御トランザクションについての前記イニシャルメッセージと、前記メッセージ再送の第１部分は、動的ステート情報を用いて圧縮されて送信され、前記メッセージ再送の第２部分は、動的ステート情報を用いずに圧縮されて送信される、Ｃ２６記載の装置。
［Ｃ２９］前記トランザクション管理モジュールは、解凍失敗を検出し、検出された解凍失敗の原因を識別し、前記解凍失敗の前記原因に基づき、前記メッセージ再送の第２部分に用いる前記第２の圧縮手法を選択する、Ｃ２６記載の装置。
［Ｃ３０］前記トランザクション管理モジュールは、ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信し、前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送は中止し、前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始する、Ｃ２６記載の装置。
［Ｃ３１］前記トランザクション管理モジュールは、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録シグナリング及び制御トランザクションについて応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出するＣ１７記載の装置。
［Ｃ３２］前記トランザクション管理モジュールは、ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出し、前記ＩＰｓｅｃ失敗イベントの検出に応答して、前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始するＣ１７記載の装置。
［Ｃ３３］複数の命令を有するコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品であって、前記複数の命令は、
非登録シグナリング及び制御トランザクションについて、第１のデバイスから応答メッセージを受信しないとき、トランザクションタイムアウトを検出するコード、
前記非登録トランザクションについてトランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスとの少なくとも１つの後続のシグナリング及び制御トランザクションを開始するコード、及び、
前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、第2のデバイスと登録シグナリング及び制御トランザクションを開始するコード
を含むコンピュータプログラム製品。
［Ｃ３４］前記非登録シグナリング及び制御トランザクションについて前記トランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントするコードをさらに含み、
前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始するコードは、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始するコードを含むＣ３３記載のコンピュータプログラム製品。
［Ｃ３５］前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージを受信するコード、及び
前記応答メッセージを受信したとき、前記タイムアウトカウンタをリセットするコード  を含むＣ３４記載のコンピュータプログラム製品。
［Ｃ３６］前記非登録シグナリング及び制御トランザクションについて前記タイムアウトを検出したとき、タイムアウトカウンタをインクリメントするコードをさらに含み、
前記登録シグナリング及び制御トランザクションを開始するコードは、前記タイムアウトカウンタの値が閾値以上のとき、前記第2のデバイスと前記登録シグナリング及び制御トランザクションを開始するコードを含むＣ３３記載のコンピュータプログラム製品。
［Ｃ３７］呼着信統計値に基づき、前記閾値を動的に決定するコードをさらに含むＣ３６記載のコンピュータプログラム製品。
［Ｃ３８］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイマを起動するコードをさらに含み、
前記登録シグナリング及び制御トランザクションを開始するコードは、前記タイマが時間切れしたとき、前記第２のデバイスと前記登録シグナリング及び制御トランザクションを開始するコードを含むＣ３３記載のコンピュータプログラム製品。
［Ｃ３９］前記第１のデバイスから、第１の登録シグナリング及び制御トランザクションについて応答を受信しないとき、前記第１の登録シグナリング及び制御トランザクションについてタイムアウトを検出するコード、
前記第１の登録シグナリング及び制御トランザクションについて前記トランザクションタイムアウトを検出したとき、前記第２のデバイスと第２の登録シグナリング及び制御トランザクションを開始するコード、
をさらに含むＣ３３記載のコンピュータプログラム製品。
［Ｃ４０］前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始するコードは、再送スケジュールに従って、前記後続のシグナリング及び制御トランザクションについてイニシャルメッセージと、前記メッセージの１または複数の再送を送信するコードを含むＣ３３記載のコンピュータプログラム製品。
［Ｃ４１］前記イニシャルメッセージと、前記メッセージの１または複数の再送を送信するコードは、少なくとも１回トランザクションタイムがあるとき、動的ステート情報ではなくバイトコードで圧縮された、前記後続のシグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージの１または複数の再送とを送信するコードを含むＣ４０記載のコンピュータプログラム製品。
［Ｃ４２］前記後続の非登録シグナリング及び制御トランザクションについてのイニシャルメッセージと、前記メッセージの１または複数の再送を送信するコードをさらに含み、
前記非登録シグナリング及び制御トランザクションについての前記イニシャルメッセージと、前記メッセージの再送の第１部分は、第１の圧縮手法を用いて送信され、前記メッセージの再送の第２部分は、第２の圧縮手法を用いて送信されるＣ３３記載のコンピュータプログラム製品。
［Ｃ４３］前記メッセージの再送の第２部分は、非圧縮で送信されるＣ４２記載のコンピュータプログラム製品。
［Ｃ４４］前記非登録シグナリング及び制御トランザクションについてのイニシャルメッセージと、前記メッセージの再送の第１部分とは、動的ステート情報を用いて圧縮されて送信され、前記メッセージの再送の第２部分は、動的ステート情報を用いずに圧縮されて送信されるＣ４２記載のコンピュータプログラム製品。
［Ｃ４５］解凍失敗を検出するコード、
前記検出された解凍失敗の原因を識別するコード、及び
前記解凍失敗の原因に基づき、前記再送の前記第２部分に対する前記第２の圧縮手法を選択するコード
をさらに含むＣ４２記載のコンピュータプログラム製品。
［Ｃ４６］ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信するコード、
前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送を中止するコード、及び
前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始するコード、
をさらに含むＣ４２記載のコンピュータプログラム製品。
［Ｃ４７］前記トランザクションタイムアウトを検出するコードは、トランザクションタイムアウトカウンタが時間切れする前に、前記第１のデバイスから、前記非登録シグナリング及び制御トランザクションについて応答メッセージを受信しないとき、前記トランザクションタイムを検出するコードを含むＣ３３記載のコンピュータプログラム製品。
［Ｃ４８］ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出するコード、及び、
ターミナルＩＰｓｅｃ失敗イベントに応答して、前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始するコード、
をさらに含むＣ３３記載のコンピュータプログラム製品。
［Ｃ４９］第１のデバイスから応答メッセージを受信しないときに、非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出する手段と、
前記非登録トランザクションについて、トランザクションタイムアウトを検出した後、特定の期間、前記第１のデバイスと、少なくとも１つの後続のシグナリング及び制御トランザクションを開始する手段と、
を含み、
前記開始する手段は、前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージが受信されないとき、前記特定期間の後、第２のデバイスと登録シグナリング及び制御トランザクションを開始する装置。
［Ｃ５０］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントする手段をさらに含み、
前記開始する手段は、前記タイムアウトカウンタの値が閾値より小さいとき、前記少なくとも１つの後続のシグナリング及び制御トランザクションを開始するＣ４９記載の装置。
［Ｃ５１］前記少なくとも１つの後続のシグナリング及び制御トランザクションについて応答メッセージを受信する手段と、
前記応答メッセージを受信したとき、前記タイムアウトカウンタをリセットする手段と、
をさらに含むＣ５０記載の装置。
［Ｃ５２］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイムアウトカウンタをインクリメントする手段をさらに含み、
前記開始する手段は、前記タイムアウトカウンタの値が閾値以上のとき、前記第２のデバイスと前記登録シグナリング及び制御トランザクションを開始するＣ４９記載の装置。
［Ｃ５３］呼着信統計値に基づき、前記閾値を動的に決定する手段をさらに含むＣ５２記載の装置。
［Ｃ５４］前記非登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出したとき、タイマを起動する手段をさらに含み、
前記開始する手段は、前記タイマが時間切れしたとき、前記第２のデバイスと前記登録シグナリング及び制御トランザクションを開始するＣ４９記載の装置。
［Ｃ５５］前記第１のデバイスから、第１の登録シグナリング及び制御トランザクションについて応答を受信しないとき、前記第１の登録シグナリング及び制御トランザクションについてトランザクションタイムアウトを検出する手段と、
前記第１の登録シグナリング及び制御トランザクションについて前記トランザクションタイムアウトを検出したとき、前記第２のデバイスと、第２の登録シグナリング及び制御トランザクションを開始する手段と、
をさらに含むＣ４９記載の装置。
［Ｃ５６］前記開始する手段は、再送スケジュールに従って、前記後続のシグナリング及び制御トランザクションについてのイニシャルメッセージの送信と、前記メッセージの１又は複数の再送を開始するＣ４９記載の装置。
［Ｃ５７］前記開始する手段は、
少なくとも１つのトランザクションタイムアウトが起きたとき、動的ステート情報を用いずにバイトコードを用いて圧縮された、前記後続のシグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送とを開始するＣ５６記載の装置。
［Ｃ５８］前記開始する手段は、前記後続の非登録シグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージの１又は複数の再送とを開始し、
前記後続の非登録シグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、第１の圧縮手法を用いて送信され、前記メッセージ再送の第２部分は、第２の圧縮手法を用いて送信されるＣ４９記載の装置。
［Ｃ５９］前記第２の圧縮手法は、非圧縮を含むＣ５８記載の装置。
［Ｃ６０］前記非登録シグナリング及び制御トランザクションのイニシャルメッセージと、前記メッセージ再送の第１部分は、動的ステート情報を用いて圧縮されて送信され、前記メッセージ再送の第２部分は、動的ステート情報を用いずに圧縮されて送信されるＣ５８記載の装置。
［Ｃ６１］解凍失敗を検出し、検出された解凍失敗の原因を識別する手段と、
前記解凍失敗の原因に基づき、前記再送の第２部分に対する前記第２の圧縮手法を選択する手段と、
をさらに含むＣ５８記載の装置。
［Ｃ６２］前記開始する手段は、
ＩＣＭＰ（Internet Control Message Protocol）エラーメッセージを受信し、
前記ＩＣＭＰエラーメッセージを受信したとき、さらなるメッセージ再送を中止し、及び
前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始するＣ５８記載の装置。
［Ｃ６３］前記検出する手段は、トランザクションタイムアウトタイマが時間切れする前に、前記第１のデバイスから、前記非登録シグナリング及び制御トランザクションについて応答メッセージを受信しないとき、前記トランザクションタイムアウトを検出するＣ４９記載の装置。
［Ｃ６４］ターミナルＩＰｓｅｃ（Internet Protocol security）失敗イベントを検出する手段をさらに含み、
前記開始する手段は、前記ターミナルＩＰｓｅｃ失敗イベントに応答して、前記第２のデバイスと前記登録シグナリング及び制御トランザクションメッセージを開始するＣ４９記載の装置。
【図１】
0005684301.tif 000007
【図２】
0005684301.tif 000008
【図３】
0005684301.tif 000009
【図４】
0005684301.tif 000010
【図５】
0005684301.tif 000011