(57)【要約】【課題】ＳＩＰ生残り可能なネットワークを維持するための方法、デバイス、およびシステムを提供すること。【解決手段】本発明は、ＳＩＰネットワークの決定された状態に基づいて、様々なネットワーク構成要素がフェイルオーバまたはフェイルバックするようにトリガするために、ＳＩＰ通知メッセージなどのメッセージを利用することが可能である。【選択図】図１
2009239891.tif 000002
【特許請求の範囲】
【請求項１】
通信デバイスによって、通信システム内の構成要素の状態が第１の状態から第２の状態に変更したことを決定することと、
前記通信デバイスで、前記構成要素の前記決定された第２の状態に関係する情報を備えるメッセージを生成することと、
前記メッセージを前記構成要素に関連するユーザ・エージェントに送信することと
を備える方法。
【請求項２】
通信システム内の構成要素の状態が第１の状態から第２の状態に変更したことを決定して、前記構成要素の前記決定された第２の状態に関係する情報を備えるメッセージを生成し、前記メッセージを前記構成要素に関連するユーザ・エージェントに送信するために動作可能な通信デバイス。
【請求項３】
前記構成要素が、前記ユーザ・エージェントに関する第１のセッション開始プロトコル（ＳＩＰ）コントローラを備え、前記第１の状態が動作可能なＳＩＰ状態を備え、前記第２の状態が失敗したＳＩＰ状態を備える、請求項１または２のいずれか１項に記載の発明。
【請求項４】
前記メッセージが、前記第１のＳＩＰコントローラとの再登録を試みるように前記ユーザ・エージェントにプロンプト表示する、請求項１乃至３のいずれか１項に記載の発明。
【請求項５】
前記第１のコントローラが、前記ユーザ・エージェントの一次コントローラを備える、請求項１乃至４のいずれか１項に記載の発明。
【請求項６】
前記通信デバイスが、前記ユーザ・エージェントによる実行のための命令を生成して、前記メッセージ内に前記命令を組み込むためにさらに動作可能である、請求項１乃至５のいずれか１項に記載の発明。
【請求項７】
前記命令が、前記ユーザ・エージェントが再登録を試みることになるＳＩＰコントローラとして、前記ユーザ・エージェントが前記第１のＳＩＰコントローラを識別するために、内部で維持されたＳＩＰコントローラのリストを参照することが可能なように、前記第１のＳＩＰコントローラを識別する、請求項６に記載の発明。
【請求項８】
前記メッセージが、前記ユーザ・エージェントにその内部で維持されたＳＩＰコントローラのリスト内のすべてのコントローラとの再登録を試みさせる標準のＳＩＰ通知メッセージを備え、前記内部で維持されたコントローラのリストが前記第１のＳＩＰコントローラを備える、請求項１乃至７のいずれか１項に記載の発明。
【請求項９】
前記通信デバイスが、前記ユーザ・エージェントが前記構成要素は前記第１の状態にあることを確信することを表示する応答メッセージを前記ユーザ・エージェントから受信して、前記応答メッセージを受信することに応答して、前記構成要素の前記状態を再検査するためにさらに動作可能である、請求項１乃至８のいずれか１項に記載の発明。
【請求項１０】
実行された場合、請求項１に記載の方法を実行するために動作可能なプロセッサ実行可能命令を備えたコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に通信ネットワークに関し、より詳細には、生残り可能な（ｓｕｒｖｉｖａｂｌｅ）セッション開始プロトコル（ＳＩＰ）の生残り可能なネットワークに関する。
【背景技術】
【０００２】
セッション開始プロトコル（ＳＩＰ）は、多くの種類のリアルタイム通信セッションを確立するための開放型シグナリング・プロトコル（ｏｐｅｎ  ｓｉｇｎａｌｉｎｇ  ｐｒｏｔｏｃｏｌ）である。ＳＩＰを使用して確立され得る通信セッションのタイプの例は、音声、ビデオ、ゲーム、適用業務、および／またはインスタント・メッセージングを含む。これらの通信セッションは、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯情報端末（ＰＤＡ）、セルラ電話、ＩＭクライアント、ＩＰ電話、伝統的な電話、サーバ適用業務、適用業務の集約、デスクトップ適用業務など、任意のタイプの通信デバイス上で実行され得る。
【０００３】
ＳＩＰの１つの重要な特徴は、最終利用者、適用業務、およびサービス・プロバイダ・ネットワークに対するすべての通信に関する単一の統一公用アドレスとしてアドレス・オブ・レコード（Ａｄｄｒｅｓｓ  ｏｆ  Ｒｅｃｏｒｄ）（ＡＯＲ）を使用するその能力である。これにより、ＳＩＰ拡張された通信の世界では、ユーザのＡＯＲは、ユーザをユーザに関連する通信デバイスのすべてと連結するユーザの単一のアドレスになる。このＡＯＲを使用して、発呼側は、独自のデバイスアドレスまたは独自の電話番号のそれぞれを知る必要なく、ユーザ・エージェント（ＵＡ）とも呼ばれる、ユーザの通信デバイスのうちのいずれかに連絡することが可能である。
【０００４】
多くのＳＩＰアプリケーションサーバは、ＳＩＰ環境において通信適用業務を可能にする目的で、かつＵＡにとっての発信プロキシとして機能し、それによりそれらのデバイスがネットワークに接続するために使用するプロキシを通じてその複雑さを隠すと同時に、複雑なネットワークが構築されることを可能するために存在する。かかる通信適用業務のための主な領域のうちの１つは、ＳＩＰ  ＵＡの呼制御である。生残り可能なＳＩＰネットワーク構成を提供する問題の解決策は現在ほとんど存在しない。過去に生残り可能性が提供された１つの方法は、ＳＩＰシグナリングに対する応答が存在しない場合に用いられるＳＩＰプロキシの使用を介してであった。プロキシは、ネットワーク内の１つまたは複数の代替経路を経由してシグナリングを経路指定するために使用されることが可能である。生残り可能性を提供するために呼コントローラすなわちゲートウェイ以外の追加のネットワーク要素が要求されるため、別々のプロキシの使用は高額になる可能性がある。
【０００５】
その他のネットワークサーバ製品は、ゲートウェイがネットワークサーバの高い利用可能性に起因するネットワークサーバ障害に遭遇する可能性が低いように、地理的冗長性構成を提供する。プロキシの使用と同様に、利用可能性の高いサーバを購入してネットワークの全体にわたって分散する必要があるため、この特定の解決策は比較的高額である。知られている現在の解決策のさらなる欠点は、主なＳＩＰシグナリング経路が利用可能でない場合、ネットワーク要素（例えば、ゲートウェイ）は代替の経路を使用することが許可されない；かかる解決策は、サーバの全域でのデータの複写を用いたホットスタンバイ構成を要求する；かかる解決策は一次呼コントローラおよび二次呼コントローラがまさしく同じＳＩＰバージョンを使用して、ＳＩＰ終点にＳＩＰ特徴のまさしく同じセットを提供することを要求するという事実を含む。
【発明の開示】
【課題を解決するための手段】
【０００６】
これらの欠点に加えて、ネットワーク障害がいつ発生したかを決定するための論理は、伝統的に様々なネットワーク要素が適切に動作しているかどうかを決定するためにネットワークのＩＰ層を検査する能力を有するルータ内に配置されている。この障害／フェイルバック検出論理は、ネットワーク構成要素の残りの部分への処理負担を取り除くためにルータ内に配置されている。この特定の構成の１つの主な欠点は、ルータはＳＩＰアプリケーションレベルでサーバまたはその他のネットワーク要素が動作可能であるかどうかを検出することが不可能であるという点である。サーバはＩＰ層レベルで動作可能であるが、ＳＩＰコントローラが動作可能でない多くの事例が存在し得る。先行技術のルータおよびその他のネットワーク要素は、これまでかかる障害状態を識別することが不可能であり、かかるサーバを動作可能と登録することになる。
【０００７】
これらの必要性およびその他の必要性は、本発明の様々な実施形態および構成によって対処される。本発明は、一般に、通信ネットワークの一部またはすべての利用可能性を解析するためのシステム、デバイス、および方法に関する。方法は一般に、
通信システム内の構成要素の状態が第１の状態（例えば、動作可能な状態）から第２の状態（例えば、非動作可能な状態）に変更したことを決定することと、
構成要素の決定された第２の状態に関係する情報を備えるメッセージを生成することと、
メッセージを構成要素に関連するユーザ・エージェントに送信することとを備える。
【０００８】
本発明の少なくともいくつかの実施形態によれば、構成要素の状態は自己監視され得る。すなわち、構成要素は、構成要素が第１の状態（例えば、動作可能）または第２の状態（例えば、非動作可能）のどちらで動作しているかを決定するために、自己に関して保守検査を実行することが可能である。次いで、構成要素が可能である場合、構成要素はその状態を報告するメッセージをユーザ・エージェントに送信することができる。構成要素はそのＳＩＰアプリケーション層の状態を監視していることができるため、これは可能である。例えば、構成要素は、そのＳＩＰコントローラの状態を監視するように適合されることが可能であり、コントローラが、現在、ＳＩＰユーザ・エージェントにサービス提供することが可能であるかどうかを決定することが可能である。
【０００９】
代替の実施形態によれば、報告している構成要素は、通信システム内のその他の構成要素の動作可能状態を監視および報告するように適合され得る。監視を実行している構成要素は、その他の構成要素のＳＩＰアプリケーション層の状態を検査して、その結果について報告することが依然として可能である。しかし、この特定のタイプの監視活動は、管理メッセージを送信して、応答を予想することによって実行され得る。
【００１０】
本発明の少なくともいくつかの実施形態によれば、監視を実行している構成要素が、構成要素（例えば、自己またはもう１つの構成要素）の状態が変更したことを決定した場合、監視している構成要素はかかる変更を監視されている構成要素に関連するユーザ・エージェントに報告するように適合され得る。監視されている構成要素は、その構成要素内に含まれたコントローラを介してユーザ・エージェントと関連づけられることが可能である。より詳細には、ユーザ・エージェントは、構成要素内に含まれたコントローラに登録され得る。
【００１１】
ユーザ・エージェントが監視されている構成要素の状態変更を報告するメッセージを受信する場合、ユーザ・エージェントは、いくつかの異なる方法で反応することが可能である。ユーザ・エージェントが通信システム内の構成要素の状態（例えば、ＳＩＰ状態）も監視することが可能でない場合、ユーザ・エージェントは、受信されたメッセージ内に含まれた情報に基づいて、その動作可能なパラメータを単に変更することが可能である。例えば、メッセージがユーザ・エージェントの一次コントローラが失敗したことを表示する場合、ユーザ・エージェントは、さらなる問合せなしにそのバックアップ・コントローラすなわち二次コントローラに単にフェイルオーバすることができる。あるいは、ユーザ・エージェントが、通信システム内の１つまたは複数の構成要素の状態を監視することが可能である場合、ユーザ・エージェントは、構成要素の状態を検査するためのプロンプトとして、受信された通知を処理することができる。かかる実施形態では、ユーザ・エージェントは、コントローラおよびその対応する構成要素の状態に関して自己決定を行うために、コントローラとの再登録を試みるように適合され得る。これは、ユーザ・エージェントがフェイルオーバ・モードで動作し始める前に、構成要素の状態が変更したことを確認するための能力をユーザ・エージェントに提供する。したがって、ユーザ・エージェントは、その動作に関してより多くの制御と、意思決定能力とを有する。
【００１２】
本明細書で使用される場合「監視すること」は、監視されている要素もしくは要素のグループの動作または状態に影響がない手段を用いて観察すること、記録すること、または検出することに関係する任意のタイプの機能を含む。
【００１３】
本明細書で使用される場合、「少なくとも１つ」、「１つまたは複数」、ならびに「および／または」は、動作において接続的および離接的の両方である自由な表現である。例えば、各表現「Ａ、ＢおよびＣのうちの少なくとも１つ」、「Ａ、ＢまたはＣのうちの少なくとも１つ」、「Ａ、ＢおよびＣのうちの１つまたは複数」、「Ａ、ＢまたはＣのうちの１つまたは複数」、「Ａ、Ｂ、および／またはＣ」は、Ａだけ、Ｂだけ、Ｃだけ、ＡおよびＢが共に、ＡおよびＣが共に、ＢおよびＣが共に、またはＡ、ＢおよびＣが共にを意味する。
【００１４】
用語「１つの（ａ）」または「１つの（ａｎ）」の実体は、その実体の１つまたは複数を指す。したがって、用語「１つの（ａ）」（または「１つの（ａｎ）」）、「１つまたは複数」および「少なくとも１つ」は、本明細書で交換可能に使用され得る。用語「備える」、「含む」、および「有する」は交換可能に使用され得る点にも留意されたい。
【００１５】
本明細書で使用される場合、用語「自動的」およびその改変形態は、プロセスまたは動作が実行される場合、物質的な人間の入力なしに行われる任意のプロセスまたは動作を指す。しかし、プロセスまたは動作の実行が、プロセスまたは動作の実行の前に受信された、物質的であれ非物質的であれ、人間の入力を使用する場合でさえ、プロセスまたは動作は自動的であり得る。人間の入力がプロセスまたは動作がどのように実行されることになるかに影響を与える場合、かかる入力は物質的と見なされる。プロセスまたは動作の実行を承認する人間の入力は「物質的」と見なされない。
【００１６】
本明細書で使用される場合、用語「コンピュータ可読媒体」は、実行のためにプロセッサに命令を提供する際に関与する任意の有形記憶装置および／または伝送媒体を指す。コンピュータ可読媒体は、ＩＰネットワーク（例えば、ＳＯＡＰ）上のネットワーク伝送内で符号化された命令の直列化されたセットであり得る。かかる媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含むがこれらに限定されない、多くの形態を取ることが可能である。不揮発性媒体は、例えば、ＮＶＲＡＭ、または磁気ディスクもしくは光ディスクを含む。揮発性媒体は、主記憶装置などのダイナミック・メモリ（例えば、ＲＡＭ）を含む。コンピュータ可読媒体の一般的な形態は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意のその他の磁気媒体、光磁気媒体、ＣＤ−ＲＯＭ、任意のその他の光媒体、パンチカード、ペーパーテープ、正孔のパターンを有する任意のその他の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、メモリカードなどの固体媒体、任意のその他のメモリチップもしくはカートリッジ、以下で説明されるような搬送波、あるいはそこからコンピュータが読み取ることが可能な任意のその他の媒体を含む。電子メールへのデジタル添付ファイルまたはその他の内蔵型の情報アーカイブもしくはアーカイブのセットは、有形記憶媒体と同等の配布媒体と考えられる。コンピュータ可読媒体がデータベースとして構成される場合、データベースは、関係のあるデータベース、階層的なデータベース、オブジェクト指向のデータベース、および／または類似のデータベースなど、任意のタイプのデータベースであり得ると理解されたい。したがって、本発明は有形記憶媒体または配布媒体ならびに先行技術で認識された均等物および本発明のソフトウェア実装が記憶される後続の媒体を含むと考えられる。
【００１７】
本明細書で使用される場合、用語「決定する」、「計算する」および「演算する」ならびにそれらの改変形態は交換可能に使用され、任意のタイプの方法論、プロセス、数学的演算または数学的技術を含む。より詳細には、かかる用語はＢＰＥＬなどの解釈されたルールまたは論理はハードコードされ（ｈａｒｄ  ｃｏｄｅｄ）ないが、読み込まれ、解釈され、編集され、実行されることが可能なルールファイル内に表現されるルール言語を含み得る。
【００１８】
本明細書で使用される場合、用語「モジュール」または「ツール」は、任意の知られているもしくは後で開発されるハードウェア、ソフトウェア、ファームウェア、人工知能、ファジー理論、またはその要素に関連する機能性を実行することが可能なハードウェアおよびソフトウェアの組合せを指す。また、本発明は例示的な実施形態の点から説明されるものの、本発明の個々の態様は別々に特許請求され得る点を理解されたい。
【００１９】
前記は、本発明のいくつかの態様の理解をもたらすための本発明の簡素化された概要である。この問題を解決するための手段は、本発明およびその様々な実施形態の広範囲な概要ではなく、または網羅的な概要でもない。この問題を解決するための手段は、本発明の主な要素もしくは重要な要素を識別することまたは本発明の範囲を描写することが意図されず、下で提示されるより詳細に説明される説明の手引きとして本発明の選択された概念を簡素化された形態で提示することが意図される。理解されるように、上に記載された特徴または下で説明される特徴のうちの１つまたは複数を単独でまたは組み合わせて利用する、本発明のその他の実施形態が可能である。
【発明を実施するための最良の形態】
【００２０】
本発明は、例示的な通信システムに関して下で説明される。例えば、（１つまたは複数の）サーバおよび／（１つまたは複数の）データベースを使用するシステムを用いた使用に大変適しているものの、本発明は任意の特定のタイプの通信システムまたはシステム要素の構成を用いた使用に限定されない。さらに、本明細書で使用される場合、用語「データベース」は関係データベース・システムだけでなく、ハードウェアと、ＲＡＭ内のソフトウェアまたはハードディスク上のソフトウェアの両方で利用可能な任意のコンピュータ記憶機構を含み得る。当業者は、開示された技術は、ＳＩＰ生残り可能なネットワークを維持することが望まれる任意の通信適用業務において使用され得る点を理解されよう。
【００２１】
本発明の例示的なシステムおよび方法は、解析ソフトウェア、モジュール、および関連する解析ハードウェアに関しても説明される。しかし、本発明を不必要にあいまいにすることを避けるために、以下の説明は、ブロック図の形態で示される場合がある、よく知られている、またはそうでない場合は要約されるよく知られている構造、構成要素およびデバイスを省略する。かかるよく知られている構造の例は、ＩＰインフラストラクチャ、レイヤ２スイッチ、レイヤＩＰルータ、ＩＰレベルのファイアウォール、ネットワーク・アドレス変換（ＮＡＴ）デバイス、ＳＩＰセッション・ボーダー・コントローラ（ＳＩＰ  Ｓｅｓｓｉｏｎ  Ｂｏｒｄｅｒ  Ｃｏｎｔｒｏｌｌｅｒ）（ＳＢＣ）を制限なく含む。
【００２２】
説明の目的で、様々な詳細は本発明の完全な理解をもたらすために記載される。しかし、本発明は、本明細書に記載された特定の詳細を超える様々な方法で実施され得る点を理解されたい。
【００２３】
初めに図１を参照すると、本発明の少なくともいくつかの実施形態による例示的な通信システム１００のアーキテクチャが説明される。通信システム１００は、ＳＩＰユーザ・エージェント（ＵＡ）１０８などの終点をいくつかのその他の通信デバイスに接続する第１のネットワーク１０４を備える。ＵＡ１０８は、やはり第１のネットワーク１０４に接続された終点ならびに第１のネットワーク１０４に対して外側にあるその他の終点と通信するように適合され得る。例えば、ＵＡ１０８は、第２のネットワーク１５２に接続された外部の終点１５６と通信するように適合され得る。
【００２４】
第１のネットワーク１０４および第２のネットワーク１５２は、任意のタイプの知られている通信ネットワークまたは通信機器の収集物に対応し得る。第１のネットワーク１０４は、ローカエル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはＯＳＩモデルによって定義されるような任意のその他のタイプのレイヤ３ネットワークおよびレイヤ４ネットワークを備え得る。
【００２５】
第２のネットワーク１５２は、任意のタイプの情報トランスポーテーション媒体（ｉｎｆｏｒｍａｔｉｏｎ  ｔｒａｎｓｐｏｒｔａｔｉｏｎ  ｍｅｄｉｕｍ）を備えることが可能であり、終点間でメッセージをトランスポートするために任意のタイプのプロトコルを使用することが可能である。インターネットは、多くのコンピュータと、多くの電話システムおよびその他の手段を介して接続された、世界中に配置されたその他の通信デバイスとからなるＩＰネットワークを構成する通信ネットワーク１０４の例である。第２のネットワーク１５２のその他の例は、標準の一般電話システム（Ｐｌａｉｎ  Ｏｌｄ  Ｔｅｌｅｐｈｏｎｅ  Ｓｙｓｔｅｍ）（ＰＯＴＳ）、統合サービス・デジタル・ネットワーク（ＩＳＤＮ）、公衆交換電話網（ＰＳＴＮ）、ＬＡＮ、ＷＡＮ、セルラ通信ネットワーク、および当技術分野で知られている任意のその他のタイプのパケット交換ネットワークまたは回線交換ネットワークを制限なく含む。両方の通信ネットワーク１０４、１５２は、有線通信技術および／または無線通信技術を含み得る。
【００２６】
ＵＡ１０８のＳＩＰ機能は、やはり第１のネットワーク１０４に接続される１つまたは複数のサーバ１３６によって提供され得る。ＵＡ１０８は、第１のネットワーク１０４の外部のその他のサーバまたは通信デバイスによって制御されることも可能である。例えば、第１のネットワーク１０４を第２のネットワーク１５２と接続するゲートウェイ１４８は、ＵＡ１０８にＳＩＰ制御能力を提供するように適合されることも可能である。
【００２７】
ＳＩＰ機能を提供することに加えて、サーバ１３６は、音声呼出しソフトウェア（例えば、ＶｏＩＰソフトウェア）、ビデオ呼出しソフトウェア、ＩＭソフトウェア、音声メッセージング・ソフトウェア（例えば、音声メッセージングおよびビデオ・メッセージング、ＩＭメッセージングなどのマルチメディア・メッセージング）、記録ソフトウェア、ＩＰ音声サーバ、ファックスサーバ、ウェブサーバ、電子メールサーバ、（１つまたは複数の）コールセンター適用業務などを含み得る。
【００２８】
本発明の実施形態によれば、サーバ１３６は、軽量ディレクトリ・アクセス・プロトコル（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｒｏｌ）（ＬＤＡＰ）、Ｈ．２４８、Ｈ．３２３、簡易メール転送プロトコル（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）（ＳＭＴＰ）、インターネット・メッセージ・アクセス・プロトコル４（ＩＭＡＰ４）、統合サービス・デジタル・ネットワーク（ＩＳＤＮ）、Ｅ１／Ｔ１、ＨＴＴＰ、ＳＯＡＰ、ＸＣＡＰ、ＳＴＵＮ、およびアナログ回線またはアナログ・トランクなど、様々なその他のプロトコルに関するインターフェースを含み得る。
【００２９】
サーバ１３６は、ＰＢＸ、自動呼出し分配（Ａｕｔｏｍａｔｉｃ  Ｃａｌｌ  Ｄｉｓｔｒｉｂｕｔｉｏｎ）（ＡＣＤ）、企業スイッチ（ｅｎｔｅｒｐｒｉｓｅ  ｓｗｉｔｃｈ）、またはその他のタイプの通信システム・スイッチ（例えば、ダイヤルされた電話番号に従って、それぞれが加入者電話に接続されている２つ以上の回路を一緒に接続することによって機能する中央交換内の複合機械（または、一連の複合機械）など、１つの電話からもう１つの電話に呼出しを経路指定することが可能な任意のデバイス）もしくはサーバ、ならびにメディア・サーバ、コンピュータ、付属物など、その他のタイプのプロセッサ・ベースの通信制御デバイスを含んでもよい。
【００３０】
ゲートウェイ１４８は、ＰＳＴＮ；次世代ネットワーク；２Ｇ、２．５Ｇおよび３Ｇの無線アクセス・ネットワーク；またはＰＢＸなど、異なる電気通信ネットワークの間で変換ユニットとして機能するために提供される。ゲートウェイ１４８の機能のうちの１つは、様々なネットワークのために異なる伝送技術および符号化技術を変換することである。エコー除去、ＤＴＭＦ、およびトーン送信機などのメディア・ストリーミング機能もゲートウェイ１４８によってサポートされ得る。ゲートウェイ１４８は、信号／メッセージを１つのネットワーク動作可能なパラダイム（例えば、伝送プロトコル）からもう１つのネットワーク動作可能なパラダイムにさらに変換する。
【００３１】
ＵＡ１０８にＳＩＰ機能性を提供するために、サーバ１３６および／またはゲートウェイ１４８は、１つまたは複数のコントローラ１４０ａ−Ｎを備え得る。ＵＡ１０８は、一度に１つまたは複数のコントローラ１４０ａ−Ｎに登録するように適合され得る。本明細書で使用される場合、用語「登録する」および「登録」は、ＳＩＰレジスタ・メッセージの送信および肯定応答を含むがこれに限定されない、ＳＩＰ登録およびネットワーク接続方法ならびにプロセスを指し、加入のための加入メッセージ、オプション・メッセージを使用したクエリ、ならびにＳＴＵＮプロトコル、ＨＴＴＰクエリなどを使用したファイアウォール検出およびＮＡＴ検出などのその他の非ＳＩＰ機構など、その他の機構を含み得る。
【００３２】
コントローラ１４０ａ−Ｎは、サーバ１３６上に常駐している適用業務またはファームウェアに対応することが可能であり、コントローラ１４０ａ−Ｎは、制御されたＵＡ１０８に向けられたＳＩＰメッセージおよび制御されたＵＡ１０８から受信されたＳＩＰメッセージを処理するために使用され得る。コントローラ１４０ａ−Ｎによって処理されるＳＩＰメッセージは、もう１つの終点１５６に向けられたＵＡ１０８によって発生する発信ＳＩＰメッセージまたはもう１つの終点１５６によって発生し、ＵＡ１０８に向けられた着信ＳＩＰメッセージに対応し得る。コントローラ１４０ａ−Ｎは、通信システム１００のアプリケーション層で動作することが可能である。
【００３３】
本発明の少なくとも１つの実施形態によれば、ＵＡ１０８は２つ以上のコントローラ１４０ａ−Ｎに同時に登録することが可能であり得る。ＵＡ１０８が同時に登録されたコントローラ１４０のそれぞれは、異なる属性を備えることが可能であり、したがって、ＵＡ１０８に異なるＳＩＰ機能を提供することが可能であり得る。例えば、ＵＡ１０８は、拡張された拡張機能（すなわち、最新特徴セット）を使用する第１のコントローラ１４０ａと、ＲＦＣ３２６１を含むがこれに限定されない、ＳＩＰプロトコル上の１つまたは複数のＩＥＴＦ  ＲＦＣに従った呼出し処理に関する標準のインターネット・エンジニアリング・タスク・フォース（ＩＥＴＦ）に準拠するＳＩＰ拡張機能を使用する第２のコントローラ１４０ｂとに同時に登録することが可能である。
【００３４】
同時登録構成では、ＵＡ１０８は、アクティブ・アクティブ登録またはアクティブ・スタンバイ登録のいずれかが可能であり得る。アクティブ・アクティブ登録では、ＵＡ１０８は、メッセージが一次コントローラ１４０から送信されているかまたは一次コントローラ１４０から着信しているかを決定せずに、いずれかのコントローラ１４０からＳＩＰメッセージを受け取り、ＳＩＰメッセージをいずれかのコントローラ１４０に送信することが可能である。しかし、アクティブ・スタンバイ登録構成では、アクティブなコントローラ１４０が動作不能にならない限り、ＵＡ１０８はＳＩＰシグナリングの目的でアクティブなコントローラ１４０だけを使用することが可能である。かかる構成では、メッセージがスタンバイ・コントローラ１４０から受信され、ＵＡ１０８が一次コントローラ１４０は動作可能であると確信する場合、ＵＡ１０８は一次コントローラ１４０を介して再度経路指定のためにＳＩＰメッセージをスタンバイ・コントローラ１４０に送信し戻すことが可能である。
【００３５】
本発明の別の実施形態によれば、ＵＡ１０８はコントローラ１４０ａ−Ｎとの優先順位登録を実行することが可能であり、それにより、ＵＡ１０８が第１のコントローラ１４０ａが休止中であること、またはそうでない場合、ＳＩＰ機能を提供するために利用不可能である（その場合、ＵＡ１０８は第２のコントローラ１４０ｂに登録することが可能である）ことを決定しない限り、ＵＡ１０８は第１のコントローラ１４０ａに登録される。
【００３６】
本発明のさらに別の実施形態によれば、同位層間（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）ＳＩＰネットワーク構成が用いられることが可能であり、その場合、ＵＡ１０８はもう１つの終点上または複数の終点上でコントローラ１４０に登録することが可能である。
【００３７】
ＵＡ１０８は、メモリ１１２と、メモリ１１２内に記憶されたルーチンを実行するためならびに着信／発信ＳＩＰメッセージおよび媒体を処理するためのプロセッサ１２４とを備え得る。メモリ１１２は、発見モジュール１１６とコントローラのリスト１２０とを含み得る。発見モジュール１１６は、ＵＡ１０８を制御することが可能なコントローラ１４０を備える、システム１００内のデバイスを発見するために用いられることが可能である。本発明の少なくともいくつかの実施形態によれば、発見モジュール１１６は、任意の利用可能なコントローラ１４０が応答し得る発見要求を送信するように適合され得る。コントローラ１４０から受信された（１つまたは複数の）応答（またはその欠如）に基づいて、発見モジュール１１６は、いくつかのコントローラ１４０を用いてリスト１２０を生成することが可能である。発見モジュール１１６は、次いで、それらのそれぞれの属性１３２に基づいて、コントローラ１４０の優先順位リストを備える順序付けされたリスト１２８を作成することが可能であり得る。ＵＡ１０８は、次いで、順序付けされたリスト１２８内のコントローラ１４０の順序に基づいて、どの（１つまたは複数の）コントローラ１４０に登録するかを決定することができる。
【００３８】
コントローラ１４０の間で発見および裁定するための能力を提供することに加えて、発見モジュール１１６は、何らかの現在のネットワーク１０４の障害、サーバ１３６の障害、ゲートウェイ１４８の障害、またはＵＡ１０８とその（１つまたは複数の）コントローラ１４０の間の関係に影響を与える可能性のある任意のその他のタイプの障害が存在するかどうかを決定するために、通信システム１００の状態を監視するようにさらに適合され得る。本明細書でさらに詳細に議論されるように、発見モジュール１１６は、システム１００およびその構成要素の状態を積極的にかつ反応的に管理するように適合され得る。システム１００の状態を積極的に監視すると同時に、発見モジュール１１６は、システム１００の状態を決定するよう、所定の論理と共に非対話型（ｎｏｎ−ｄｉａｌｏｇ）ＳＩＰメッセージを用いることが可能である。ＵＡ１０８は、システム１００の状態を反応的に監視し始めるために、もう１つのシステム１００の構成要素（例えば、ゲートウェイ１４８）によってさらにプロンプト表示される（ｐｒｏｍｐｔｅｄ）ことが可能である。ＵＡ１０８にシステム１００の状態を監視するための能力を提供することは、処理負担をルータなど、もう１つの構成要素に委ねるのではなく、ＵＡ１０８の論理が使用される先行技術のネットワーク監視技術からの逸脱である。これは、各ＵＡ１０８がシステム１００の状態を独立して管理することを可能にする驚くべき利点を提供し、システム１００のより多くの観察（ｖｉｅｗ）を提供し、各ＵＡ１０８がそのコントローラ１４０に関してその個人記録を維持することを可能にする。すなわち、ＵＡ１０８およびシステム１００内のその他の構成要素（例えば、ゲートウェイ１４８および／またはサーバ１３６）からの情報の組合せを使用することによって、システム１００の状態のより正確かつ最新の状況が取得され得る。ＵＡ１０８が、（例えば、システム１００の全域でＩＰパケットを送信することによって）ネットワーク層の動作可能性を、（例えば、システム１００の全域でＳＩＰメッセージを送信することによって）ＳＩＰアプリケーション層の動作可能性を、そしてそれら２つの集約の動作可能性を点検することを可能にすることは、システムの健全さの状況の精度をさらに増大し得る。
【００３９】
サーバ１３６およびゲートウェイ１４８は、システム１００の状態を評価するために発見モジュール１４４も備え得る。より詳細には、各発見モジュール１４４は、様々な同位構成要素（例えば、発見モジュール１４４を備えるデバイスに隣接するシステム１００の構成要素）ならびに遠端構成要素（例えば、発見モジュール１４４を備えるデバイスに隣接しないシステム１００の構成要素）の状態を独立して監視するために使用されることが可能である。各発見モジュール１４４は、システム１００およびその中の構成要素の状態を独立して評価するために使用され得る。
【００４０】
本発明の少なくともいくつかの実施形態によれば、発見モジュール１４４は、クラスタ化された方法で（すなわち、複数のサーバ１３６が「どのコントローラを使用するか」を問う終点からの質問に回答することが可能であり得る）またはシングルトン（ｓｉｎｇｌｅｔｏｎ）として、ユーザ・エージェント１０８またはその他の終点１５６によってアクセスされていることが可能なソフトウェア・モジュールを備え得る。発見モジュール１４４は、多数のプロトコルを使用して実施されることが可能であり、一度に複数のプロトコルをさらにサポートすることが可能である。より詳細には、各発見モジュール１４４は、ＳＯＡＰ／ＨＴＴＰ、ＳＸＡＰ（ＳＯＡＰのようなＨＴＴＰ標準に関するもう１つのＸＭＬ）のうちの１つまたは複数および（例えば、ＳＩＰメッセージの本体内にコントローラ１４０のリストを提供することによって）ＳＩＰさえサポートするように適合され得る。
【００４１】
発見モジュール１４４は、ルール処理により、所与のユーザ・エージェント１０８に関する（発見モジュール１４４が要求に応じてユーザ・エージェント１０８に最終的に提供することが可能な）コントローラの独自のリストを決定するように適合され得る。ルール処理は、ハードコードされること（例えば、Ｊａｖａ（登録商標）コード）が可能であり、またはＸＭＬなどのスクリプトを取るルールエンジンを備えることが可能であり、それを解析して、コントローラのリストを要求しているユーザ・エージェント１０８にとってどれが最も適切なコントローラ１４０であるかを決定することを望む場合、それを実行するルールエンジンを備えることが可能である。アルゴリズム内に含まれ得るルールのタイプは、以下を含むが、これらに限定されない。
（１）ユーザ・エージェント１０８にとって最も適切なコントローラ１４０を決定するために（例えば、ネットワークを介して送信されたＩＰパケットを解析することによって）未処理のネットワーク・トポロジーを解析するネットワーク・ローカリティ（ｎｅｔｗｏｒｋ  ｌｏｃａｌｉｔｙ）検査。かかるルールセットは、発見モジュール１４４が要求しているユーザ・エージェント１０８のＩＰを検査し、次いで、最良の利用可能な帯域幅を列挙する帯域幅記憶装置に対してルックアップを行い、次いで、ユーザ・エージェント１０８にとって最良の整合コントローラ１４０を選択する帯域幅管理機能を含み得る。この場合、最良の整合帯域幅は、ユーザ・エージェント１０８に対する近接性において最も近く、利用可能な帯域幅を有するコントローラ１４０を備えるサーバ１３６に対応する可能性があろう。
（２）ユーザ・エージェント１０８がセキュリティ目的で特定のサーバ１３６／コントローラ１４０に接続すべき一定の事例が存在し得るため、セキュリティ検査アルゴリズム。例えば、ＣＥＯの電話は、絶えず監視されて、数秒内にパッチされる、最高に保護されたサーバだけに接続することを望む可能性がある。他方で、技術サポートの電話は、セキュリティ・パッチが２４時間以内に処理される、サーバ・ファームを形成するサーバ１３６のセットのうちの任意の１つに接続することが可能にされ得る。
（３）発見モジュール１４４が、特定のユーザにサービスを提供することができる（１つまたは複数の）サーバ１３６のマッピングを検査することが可能なユーザ割当てアルゴリズム。地理的冗長性構成においてなど、複数のサーバが存在する場合、複数のコントローラ１４０が応答の際に戻されることが可能である。
（４）発見モジュール１４４がスクリプト内に、すべての販売員が１つのサーバ１３６を使用し、すべての技術サポート員がもう１つのサーバを使用することを示す、カスタマ提供されたフックを有し得る事業規則アルゴリズム。
（５）要求しているユーザ・エージェント１０８が、コントローラ１４０を探すときにそのモード（例えば、音声、インスタント・メッセージング（ＩＭ）、ビデオなど）を示した場合に開始され得るデバイス・モーダリティ・アルゴリズム。このアルゴリズムを用いる場合、発見モジュール１４４はユーザにほとんどのタイプのモードを提供する最良のコントローラ１４０を選択するために内部能力割当てを調べることが可能である。例えば、音声およびＩＭを行うことができるユーザ・エージェント１０８は、音声サーバだけでなく、これらの機能の両方をサポートすることが可能なサーバ１３６を好むであろう。
（６）要求しているユーザ・エージェント１０８が、そのユーザ・エージェント１０８が特定のプロトコル・セットをサポートすることを識別する場合に開始され得るプロトコル互換性アルゴルズム。ＳＩＰは多数のプロトコル拡張機能であるため、これは特にＳＩＰにおいて有用である。要求しているユーザ・エージェント１０８がコントローラ１４０を要求する場合、そのユーザ・エージェント１０８は自らがサポートするプロトコル特徴（例えば、プレゼンス加入または一般的な加入）を示すことが可能であり、サーバはそのタイプのユーザ・エージェント１０８に関する最良の整合を発見することが可能である。
【００４２】
次に図２を参照すると、本発明の少なくともいくつかの実施形態によるＳＩＰコントローラ１４０の発見および登録方法が説明される。方法は、通信システム１００内のＵＡ１０８などの終点によって実行され得る。通信システム内の各ＵＡ１０８は、異なるコントローラ１４０を発見して、それらに登録するように適合され得る。方法は、終点が発見メッセージを送信する（ステップ２０４）場合、開始される。本発明の少なくとも一実施形態によれば、発見メッセージは、システム１００内の１つまたは複数のその他の構成要素のＳＩＰ機能性を試験する／問い合わせるために、システム内の１つまたは複数のその他の構成要素に送信され得るＳＩＰメッセージ（例えば、オプション・メッセージ、通知メッセージ、または加入メッセージ）を含む任意の知られているタイプの発見メッセージを備える。
【００４３】
発見メッセージが、コントローラ１４０を備えるシステム１００内のその他の構成要素（例えば、サーバ１３６および／またはゲートウェイ１４８）によって受信された場合、構成要素は応答メッセージを用いて発見メッセージに応答する。あるいは、発見メッセージに応答するために、現在、構成要素が利用可能でない場合、開始している終点に応答メッセージは送信されない。（１つまたは複数の）コントローラ１４０の応答メッセージは、次いで、開始している終点で受信される（ステップ２０８）。終点がこれらの応答を受信すると、または発見メッセージに向けられた応答がない場合、終点はコントローラのリスト１２０を生成するためにその発見モジュール１１６を用いることになる。
【００４４】
応答メッセージは、それぞれの応答しているコントローラ１４０の属性１３２も含み得る。応答メッセージ内に含まれた属性情報の例は、対応するサーバ１３６またはゲートウェイ１４８の処理能力、コントローラ１４０によって提供されるＳＩＰ拡張機能（すなわち、ＳＩＰ機能）、コントローラ１４０に現在登録されているＵＡの数、終点に対するコントローラ１４０の近接性（すなわち、終点と対応するデバイスの間のホップ数）などを制限なく含む。終点の発見モジュール１１６は、順序付けされたリスト１２８内のコントローラ１４０の順序を裁定するために属性情報を利用することが可能である（ステップ２１２）。発見モジュール１１６は、コントローラ１４０の順序を決定するために任意のタイプの知られている裁定アルゴリズムを用いることが可能である。例えば、発見モジュール１１６はすべてのコントローラ１４０に関して列挙された属性のすべての最適化を試みることが可能である。あるいは、発見モジュール１１６は、終点のニーズに最も適している選択された属性を有するコントローラ１４０を順序付けされたリスト１２８内の最高に配置することができる。
【００４５】
終点の発見モジュール１１６がコントローラの順序付けされたリスト１２８を生成した後で、発見モジュール１１６は、終点が登録することになる１つまたは複数のコントローラ１４０を選択する（ステップ２１６）。コントローラ１４０は、コントローラの順序付けされたリスト１２８内のそれぞれの順序に基づいて選択され得る。本発明の少なくとも一実施形態によれば、発見モジュール１１６は、同時に登録するために、サーバ１３６からコントローラ１４０を選択して、ゲートウェイ１４８からコントローラ１４０を選択することが可能である。アクティブ・スタンバイ構成では、終点は、一次コントローラとしてサーバ１３６のコントローラ１４０を選択して、二次コントローラすなわちバックアップ・コントローラとしてゲートウェイ１４８のコントローラ１４０を選択することが可能である。
【００４６】
（１つまたは複数の）コントローラ１４０の選択に続いて、終点は選択された（１つまたは複数の）コントローラ１４０に登録することが可能にされる（ステップ２２０）。本発明の少なくともいくつかの実施形態によれば、終点は異なる能力と異なるＳＩＰ特徴とを有するコントローラ１４０に登録するように適合され得る。例えば、終点は、拡張されたＳＩＰ拡張機能を使用して第１のコントローラ１４０と、かつ標準のＳＩＰ拡張を使用して第２のコントローラ１４０と同時に登録することが可能にされ得る。拡張されたＳＩＰ拡張機能は、第２のコントローラ１４０を介して達成可能でない追加の特徴を提供するために第１のコントローラ１４０によって使用されることが可能である。
【００４７】
ＳＩＰレジスタ・メッセージ、加入メッセージ、もしくはオプション・メッセージ、またはその他のＳＩＰシグナリングは、一次コントローラ１４０が依然としてオンラインであり、ＳＩＰメッセージングを円滑にするために利用可能であるかどうかを検出するために送信されることが可能である。例えば、ＳＩＰレジスタ・メッセージは、登録プロセスを開始するために、終点によって、選択された（１つまたは複数の）コントローラ１４０に送信され得る。終点にその（１つまたは複数の）コントローラ１４０と登録する能力を提供することに加えて、ＳＩＰレジスタ・メッセージは、コントローラ１４０に関するハートビートとして使用されることも可能である。ＳＩＰレジスタ・メッセージの伝送の頻度は、システム要求に基づいてユーザ構成可能であり得る。すなわち、終点は終点が登録された任意のコントローラ１４０にリフレッシュ登録を送信することができる。
【００４８】
アクティブ・スタンバイ構成およびアクティブ・アクティブ構成の両方で、終点は、その選択されたコントローラ１４０のすべてに同時に登録することが可能である。その動作の間、終点は（後続のＳＩＰレジスタ・メッセージの定期的な伝送を介して）コントローラ１４０との同時アクティブ登録の維持を試みることが可能である。アクティブ・アクティブ構成では、終点は終点が登録されたコントローラ１４０のうちのいずれかにＳＩＰメッセージを送信することおよび／または終点が登録されたコントローラ１４０のうちのいずれかからＳＩＰメッセージを受信することが可能にされ得る。かかる構成では、終点は２つ以上のコントローラ１４０と同時に登録されることになる。この二重登録は、終点が登録されたコントローラ１４０のうちの任意の１つ（例えば、第１のコントローラ１４０ａ、第２のコントローラ１４０ｂ、第３のコントローラ１４０ｃなど）からの着信ＳＩＰ要求（例えば、ＳＩＰ要請メッセージ）を可能にすることになる。終点がアクティブ・アクティブ・コントローラ・モデルを使用する方針を用いて構成される場合、終点は予め失敗したコントローラ１４０からの着信呼出しを、それがサービス中のコントローラ１４０から来たものであるかのように見なす可能性がある。これが発生する場合、終点は、失敗したサーバがサービスに戻ったかどうかを検出するためにアルゴリズムを再度試みることができる。終点は、任意のコントロール１４０からのかかるＳＩＰメッセージの受信を可能にするように構成されることになる。本発明の少なくともいくつかの実施形態によれば、終点は複数の登録を独立した登録として扱い、それぞれを本明細書で議論される登録論理を用いて維持することになる。より詳細には、終点は同じＡＯＲを各コントローラに登録することが可能にされることになるが、終点の実装は異なるＡＯＲに対応するためにフレキシブルであり得る。これはまたアクティブ・スタンバイ構成に関しても当てはまる。
【００４９】
他方で、アクティブ・スタンバイ構成では、終点は、発信呼出しを経路指定して、その一次コントローラ１４０から着信呼出しを受信することだけが可能にされ得る。動作可能である間、この一次コントローラ１４０は、アクティブな呼出しコントローラ１４０と呼ばれる場合もある。終点が登録されたその他の（１つまたは複数の）コントローラ１４０は、非アクティブなコントローラまたはスタンバイ・コントローラと呼ばれる場合がある。
【００５０】
アクティブ・スタンバイ構成では、終点がその一次モードにある（すなわち、終点が一次コントローラ１４０はアクティブであると確信する）間に終点が二次コントローラ１４０すなわちスタンバイ・コントローラ１４０から着信呼出しを受信する場合、終点は、
（１）１００試みメッセージを用いて二次コントローラ１４０に応答する、
（２）一次コントローラが依然としてオンラインであり、ＳＩＰメッセージを円滑にするために利用可能であるかどうかを判断するために、一次コントローラ１４０に登録リフレッシュを送信する、
（３）一次コントローラ１４０が依然としてオンラインである場合、終点は３０５リダイレクト応答（すなわち、使用プロキシ）を二次コントローラ１４０に送信することになる。３０５リダイレクト応答は、二次呼出しコントローラを介して呼出しを拒否して、一次コントローラ１４０を介して二次コントローラ１４０がシグナリングを再経路指定することを要求することになる。そして
（４）一次コントローラがもはやオンランでない場合、終点は受信された呼出しに標準の呼出し処理を提供することになる。このプロセスの一環として、終点は一次コントローラ１４０から二次コントローラ１４０にフェイルオーバして、二次コントローラ１４０とのその登録をリフレッシュすることになる。
【００５１】
アクティブ・スタンバイ構成では、終点がフェイルオーバ・モードで動作している間に（すなわち、その一次コントローラ１４０の状態が休止中であり、アクティブなコントローラとして二次コントローラ１４０を使用しているという仮定の下で）終点がその一次コントローラ１４０から着信呼出しを受信した場合、呼出しは拒否され得る。
【００５２】
障害状態の間または終点がシステム１００の構成要素は休止中であると確信する任意のその他の時点で、終点は一次コントローラ１４０とのリアルタイムの通信セッションの確立を試みないことになる。加えて、終点はコントローラの順序付けされたリスト１２８上の二次コントローラ１４０すなわち次のコントローラ１４０にフェイルオーバすることになる。生残り可能な（すなわち、二次、三次、またはバックアップ）コントローラ１４０を介して経路指定された呼出しシグナリングは、障害の期間中、終点のユーザが新しい呼出しを行い、その呼出しを受信することを可能にすることになる。
【００５３】
下でさらに詳細に説明されるフェイルオーバ／フェイルバック・プロセスの一環として、終点はアクティブなコントローラ１４０に関するアドレスを識別して、コントローラ１４０によってサポートされる属性および関連する特徴をさらに導き出すことになる。すなわち、終点は終点が登録されたコントローラ１４０が、例えば、「拡張されたＳＩＰ／専有権のあるＳＩＰ」として指定されるかまたは「基本的なＳＩＰ」として指定されるかを指定するように適合され得る。終点の発見モジュール１１６は、以下の論理を使用して、コントローラが拡張されたＳＩＰを使用するかまたは基本的なＳＩＰを使用するかを発見するように適合され得る。
（１）フェイルオーバ時またはフェイルバック時に、終点は各コントローラ１４０とのその登録をリフレッシュまたは更新することになる、
（２）そのプロセスの一環として、終点は二次コントローラ１４０を用いてすべての一次コントローラ１４０の特徴パッケージへの再加入を試みることになる、
（３）終点が加入要求を二次コントローラ１４０に送信する場合、二次コントローラが基本的なＳＩＰ動作だけをサポートするならば、二次コントローラは特徴加入要求を認識しないことになる、
（４）簡易二次コントローラ１４０は、「クライアント誤り４０５方法は可能にされない」を用いて応答することになる。
【００５４】
終点は標準のＩＥＴＦ  ＳＩＰに準拠するコントローラ１４０として二次コントローラ１４０を識別するためにこの情報を使用することが可能である。終点は、次いで、フェイルオーバ・モードで動作する間、そのユーザ・インターフェース（ＵＩ）上に基本的なＳＩＰ特徴だけを表示することになる。（例えば、アクティブなコントローラ１４０が加入要求に適切に応答したため）アクティブなコントローラ１４０が「拡張されたＳＩＰ」と指定される場合、終点は、呼出しおよび特徴処理のために拡張された拡張機能を有するＳＩＰを使用して、互換性のあるＵＩを表示することになる。
【００５５】
アクティブ・スタンバイ構成で提供され得る追加の特徴は、制限なく以下を含む。
（１）終点は非アクティブなコントローラ１４０に発信呼出しを決して経路指定しないことになる、
（２）終点がアクティブなコントローラ１４０からスタンバイ・コントローラ１４０にフェイルオーバする場合、予めアクティブなコントローラ１４０は非アクティブと指定されることになり、予め非アクティブなコントローラはアクティブと指定されることになる、
（３）終点は、指定されたコントローラ１４０にフェイルオーバする前にすべてのアクティブな呼出しが完了するまで待つことになる。すなわち、（１つまたは複数の）アクティブな呼出しが完了するまで（すなわち、終点が（１つまたは複数の）アクティブな呼出しに関してネットワーク１０４からバイ（ＢＹＥ）メッセージを受信するまで、または発呼側が呼出しを中止するまで）、新しい着信呼出しは、新しく指定されたアクティブなコントローラ１４０から終点によって受け入れられないことになる。同様に、フェイルオーバが完了するまで、新しい送信呼出しは可能にされないことになる。そして、
（４）終点が二次コントローラ１４０を使用している間、終点が休止中の一次コントローラ１４０から任意のシグナリング・メッセージを受信する場合、休止中と印された一次コントローラ１４０からのシグナリング・メッセージは無視されることになる。しかし、このルールには１つの例外が存在し得る。すなわち、終点が終点に再登録するように伝える通知メッセージをその一次コントローラ１４０から受信した場合、終点はその登録のリフレッシュを開始することになるか、またはリフレッシュを試みることになる。この場合、終点は、上で説明された標準のＳＩＰ処理を使用して通知に応答することになる。
【００５６】
終点がそのそれぞれの（１つまたは複数の）コントローラ１４０に登録した後、方法は終了する（ステップ２２４）。
【００５７】
次に図３を参照すると、本発明の少なくともいくつかの実施形態による通信システム１００の状態決定方法が説明される。生残り可能な構成では、ゲートウェイ１４８が一次シグナリング経路または二次シグナリング経路を介していつ呼出しシグナリングを経路指定するかを検出するように備えられることが重要であり得る。方法は、ゲートウェイ１４８が通信システム１００内のもう１つの構成要素にＳＩＰオプション・メッセージを送信する（ステップ３０４）場合、開始される。かかる構成要素は、ＳＩＰ対応構成要素に対応し得る。構成要素は同位構成要素（すなわち、ゲートウェイ１４８に隣接する構成要素）および／または遠端構成要素（すなわち、構成要素とゲートウェイ１４８の間に少なくとも１つの中間構成要素を有する構成要素）にさらに対応し得る。本発明の少なくともいくつかの実施形態によれば、ＳＩＰ遠端構成要素の積極的な監視は、通常、システム１００の管理者が、中間構成要素が中間構成要素の同位を監視することができないことを知る場合だけ、慎重に実行されるべきである。本発明の実施形態によれば、ゲートウェイ１４８は、「最大−転送＝０」設定を用いてＳＩＰオプション・メッセージを送信することが可能であり、それにより、オプション・メッセージが単一のホップを超えるホップを横断し（ｔｒａｖｅｒｓｅ）ない（すなわち、オプション・メッセージは同位構成要素を対象とする）ことを確実にする。
【００５８】
当業者に理解され得るように、ＳＩＰオプション・メッセージを用いる監視技術が本明細書で説明されるが、通信システム１００およびその中の構成要素の状態を監視するために任意のその他のタイプの非対話型ＳＩＰトランザクションが使用され得る。より詳細には、一般的なＳＩＰメッセージ（例えば、情報方法、メッセージ方法、または無効ＳＩＰメッセージすら）は、任意タイプのＳＩＰベースの応答を起動するために送信されることが可能である。ゲートウェイ１４８によって送信されたＳＩＰメッセージは、メッセージ受信者によって実行されることになる命令を含んでもよい。例えば、ＳＩＰメッセージは、ゲートウェイ１４８および、同位構成要素など、ゲートウェイ１４８によって監視される任意のその他の構成要素の健全さ、ならびにゲートウェイ１４８の報告された健全さに基づいて受信者によって講じられることになる処置を報告する拡張可能マークアップ言語（ＸＭＬ）メッセージを備えて生成され得る。
【００５９】
ゲートウェイ１４８がＳＩＰオプション・メッセージを送信した後で、ゲートウェイ１４８は、応答の受信を待つ（ステップ３０８および３１２）。ゲートウェイ１４８が応答の受信を待つ期間は、システム１００の特性に応じて異なってよい。本発明の少なくとも一実施形態によれば、ゲートウェイ１４８が待つ時間の長さは、要求が送信された後でＳＩＰ応答が所定の秒数内に受信されない場合、（ＳＩＰ要請メッセージなど）ＳＩＰシグナリング・トランザクションを取り消すＳＩＰタイマＢまたはＳＩＰタイマＦ（ＳＩＰタイマＢおよびＦは、そのコンテンツ全体がこの参照により本明細書に組み込まれているＲＦＣ３２６１で定義される標準のＳＩＰタイマである）などのＳＩＰタイマ機能を実施することによって決定され得る。任意のＳＩＰ応答（１００試みすら）が受信された場合、タイマＢまたはタイマＦは取り消されるか、または短絡される。しかし、タイマＢが始動した場合、ゲートウェイ１４８は有害な（ｏｆｆｅｎｄｉｎｇ）ＳＩＰトランザクションを取り消して、代替の経路を使用して要求の経路指定を試みることを要求される可能性がある。本発明の少なくともいくつかの実施形態によれば、ゲートウェイ１４８によって知られているすべての経路指定アドレスが使い果たされている場合、ＳＩＰゲートウェイ１４８は、４０８要求タイムアウトを用いて、元のＳＩＰシグナリング・トランザクションに応答することができる。
【００６０】
（例えば、実際の応答としてまたは応答は所定の期間内に受信されなかったという決定として）応答が受信されると、方法は、ゲートウェイ１４８が応答は障害状態に対応するかどうかを決定する（ステップ３１６）ために発見モジュール１４４を用いることにより継続する。応答は、以下の条件のうちのいずれかが満たされる場合、ネットワーク１０４またはシステム１００の構成要素が失敗したことを表示することが可能である。
（１）オプション監視要求はタイムアウトにより失敗する、
（２）トランザクション・タイムアウトおよび／または（要請トランザクションに関する）ＳＩＰタイマＢタイムアウトにより所定の数の（例えば、５つの）連続ＳＩＰ要求トランザクション障害が発生する、または
（３）監視が終端間（すなわち、最大−転送＞１）ではなくホップ・バイ・ホップ（すなわち、最大−転送＝１）で実行されており、加えて、アドレスが少なくとも「後で再度試みる」ヘッダ内で特定された期間に対して「過負荷」と印されている場合およびその場合に限り、オプション監視要求に対して「後で再度試みる（Ｒｅｔｒｙ−Ａｆｔｅｒ）」ヘッダを用いて任意の４００クラス応答または５００クラス応答が受信される。
【００６１】
条件（３）に関して、アドレスのＩＰアドレスを含む既存の対話は、障害が発生するまでそのアドレスを引き続き使用すべきであるが、終点はそのアドレスが回復されるまで、新しい対話に関してそのアドレスを使用すべきではない。既存の対話がＩＰアドレスの代わりにホスト名を使用している場合、各トランザクションに関するそのホスト名の分解（ｒｅｓｏｌｔｉｏｎ）が行われることになり、戻されたアドレスは利用可能な最高の優先順位のアドレスになる。ホスト名が単一のＩＰアドレスだけに分解し、そのアドレスが「過負荷」と印される場合、要求が送信されるべきである。条件（３）の最終的な影響は、ゲートウェイ１４８の発見モジュール１４４は３つの状態、すなわち、利用可能、休止中、および過負荷を認識すべきであるというものである。過負荷と印されたアドレスは、引き続き対話内で後続の要求を受信するが、新しい対話要求は受信しない。
【００６２】
オプション・メッセージに対する応答に基づいて、ゲートウェイ１４８の発見モジュール１４４が、障害状態は存在せず、システム１００は通常の動作状態にあることを決定する場合、発見モジュール１４４は、命令が応答内に含まれるかどうかを決定すること（ステップ３２０）によって継続することになる。発見モジュール１４４は、応答内に含まれたまたは応答に添付された（すなわち、メッセージのヘッダ内もしくはフッタ内の）実行可能命令に対する応答を解析することが可能である。命令が応答内に含まれる場合、命令は実行される（ステップ３２４）。その後、または応答が命令を含まなかった場合、発見モジュール１４４は、サーバ１３６など、応答している構成要素の動作を反映するために、システム１００の状態に関してその記録を更新すること（ステップ３２８）によって継続する。ネットワークの状態が更新されると、方法は発見モジュール１４４が新しいメッセージを送信する時間かどうかを決定すること（ステップ３３２）により継続する。より詳細には、ゲートウェイ１４８は、その他のＳＩＰサーバ１３６がアクティブであるか否かを決定するためのハートビート機構として、その他のＳＩＰサーバ１３６に対してＳＩＰオプション・メッセージの定期的な伝送を使用することができる。オプション・メッセージは、所定の間隔でシステム１００のその他の構成要素に送信され得る。所定の間隔の長さは、ＳＩＰタイマＢまたはその改変形態を実施することによって決定され得る。より詳細には、オプションの監視は、ゲートウェイ１４８が障害状態を検出するか否かに応じて、異なる間隔で実行されてよい。
【００６３】
本発明の少なくともいくつかの実施形態によれば、ＳＩＰオプション・メッセージに関する積極的な監視間隔は、約６０秒から約１００，０００秒の範囲内で構成可能であり得、後続の監視の試みの間で構成された値の７５％から１２５％の均一のランダム時間を使用すべきである。例えば、積極的な監視間隔が６０秒に設定される場合、オプション・メッセージの伝送間の実際の間隔は、４５秒から７５秒の間で均一に分散され得る。積極的な監視プロセスにおけるこの意図的なジッタの導入は、要求が依然として非同期化されることを可能にし、それにより監視される構成要素（すなわち、サーバ１３６）上の負荷を経時的に一様に拡散させる。一実施形態では、積極的な監視間隔は、約９００秒または１５分に構成されることが可能である。
【００６４】
本発明の少なくともいくつかの実施形態によれば、ＳＩＰオプション・メッセージに関する反応的な監視間隔は、約１０秒から約３，６００秒の範囲内で構成可能であり得、後続の監視の試みの間で構成された値の７５％から１２５％の均一のランダム時間を有することも可能である。（積極的な監視と対照的に）反応的な監視に対する個別のタイマの提供は、ゲートウェイ１４８が、監視されている現在休止中の構成要素がいつ再度利用可能になるかをより迅速に検出することを可能にする。一実施形態では、反応的な監視間隔は約１２０秒に構成され得る。
【００６５】
本発明の例示的な実施形態はＳＩＰタイマＢの使用に関して説明されているものの、任意の範囲の値は、その値の均一のランダム時間変更の有無にかかわらず、本発明の原理から逸脱せずに実施され得る。加えて、監視間隔は、外部の事業論理フックに基づいて変更され得る。例えば、監視機構が帯域幅管理システムにフックされる（ｈｏｏｋｅｄ）場合、監視システムは、ネットワーク内の利用可能な帯域幅を表すいくつかの係数によって監視間隔をさらに調整することが可能である。
【００６６】
ステップ３１６を再び参照すると、発見モジュール１４４が応答は障害状態に対応することを決定する場合、発見モジュール１４４は障害を反映するために、システム１００の状態のその記録を更新することになる（ステップ３３６）。この構成要素の障害を検出する結果として、特に、失敗した構成要素が一次通信経路内に常駐する場合、ゲートウェイ１４８はフェイルオーバして、フェイルオーバ状態で動作を開始することになる。
【００６７】
ゲートウェイ１４８の発見モジュール１４４のフェイルオーバの間、発見モジュール１４４は、休止中として識別された構成要素にオプション・メッセージを引き続き送信することによって、システム１００内の構成要素を反応的に監視し始めることになる（ステップ３４０）。この反応的な監視は、ゲートウェイ１４８の発見モジュール１４４が、構成要素がいつオンラインに戻るかを検出することを可能にする。反応的な監視が始まると、ゲートウェイ１４８は構成要素を積極的に監視することを中断して、反応的な監視ルールを適用し始めることになる。より詳細には、反応的な監視の間、ゲートウェイ１４８の発見モジュール１４４は、監視された構成要素が利用可能であるかまたは休止中であるかを決定するために保守試験を開始することが可能である（ステップ３４４）。保守試験は、積極的な監視アルゴリズムに類似した監視アルゴリズムを用いてよい。ゲートウェイ１４８の発見モジュール１４４は、フェイルバックまで（すなわち、構成要素の状態が休止中から利用可能に変更するまで）（ステップ３４８）この保守試験を引き続き適用することになる。保守試験の間、ゲートウェイ１４８は、現在、休止中と印された構成要素に任意のタイプのＳＩＰ要求（例えば、要請、加入、通知など）を送信することが可能である。以下の状態のうちの１つまたは複数が適用される場合、ゲートウェイ１４８の発見モジュール１４４は、その構成要素を引き続き休止中と印すことになる。
（１）要請メッセージが送信された後にＳＩＰタイマＢが始動する、
（２）ゲートウェイ１４８が４０８要求タイムアウト応答を受信する、
（３）ＳＩＰ要求トランザクションがタイムアウトになる、または
（４）要求の送信を試みる間、ネットワーク１０４またはトランスポート層の誤りが発生する。
【００６８】
保守試験の間に、上記の状態のうちのいずれも適用されない場合、ゲートウェイ１４８の発見モジュール１４４は、フェイルバックが発生したと決定することになり、方法はステップ３２８に進むことになる。本発明の少なくともいくつかの実施形態によれば、反応的な監視および保守試験は、監視されている構成要素が、５０３「サービス利用不可能」を除く任意のＳＩＰ応答を用いて２つの連続するオプション要求の試みに応答するまで、引き続き適用されることになる。これらの状態が満たされると、ゲートウェイ１４８は、構成要素がサービス中に戻ったと見なすことができ、積極的な監視アルゴリズムに戻ることが可能であり、適切な簡易ネットワーク管理プロトコル（ＳＮＭＰ）事象を生成して、適用可能である場合、現在アクティブな構成要素を利用し始めることが可能である。
【００６９】
当業者によって理解され得るように、ゲートウェイ１４８は、経路の再割当て情報を維持することが可能な唯一のシステム１００の構成要素ではない。むしろ、いかなるＳＩＰネットワーク要素も経路の再割当て情報などを含むように適合され得る。例えば、ＵＡ１０８などの終点は、いくつかの構成要素が休止中として識別される場合に使用され得る通信経路を列挙する経路の再割当て表を維持することも可能である。
【００７０】
次に図４を参照すると、本発明の少なくともいくつかの実施形態による反応的な監視方法が説明される。方法は、ゲートウェイ１４８がサーバ１３６または類似のシステム１００の構成要素から要求を受信する（ステップ４０４）場合に開始する。ゲートウェイ１４８は、受信された要求を通常の形で処理する（ステップ４０８）。より詳細には、ゲートウェイ１４８は、送信している構成要素が実際にサービス中であるかどうかをまず決定せずに、その構成要素がサービス中であるかのように要求を処理することが可能である。
【００７１】
その後、ゲートウェイ１４８は、その当初維持された状態表に基づいて、送信している構成要素が実際に休止中と印されているかどうかを決定する（ステップ４１２）。構成要素が休止と印されていない場合、方法は終了する（ステップ４２４）。そうでない場合、ゲートウェイ１４８は、構成要素にＳＩＰオプション・メッセージを送信することによって、その保守試験を開始することになる（ステップ４１６）。ゲートウェイ１４８は、次いで、構成要素の状態のその記録を更新することが可能である（ステップ４２０）。この保守試験プロセスおよび状態の更新プロセスは、その時点で方法が終了する（ステップ４２４）、構成要素がサービス中に戻ったと決定されるまで繰り返される。
【００７２】
図５を参照すると、本発明の少なくともいくつかの実施形態による、フェイルオーバ状態およびフェイルバック状態の間のゲートウェイ１４８の動作が説明される。この特定の方法では、ゲートウェイ１４８に関連するコントローラ１４０は、生残り可能な終点に関する二次コントローラ１４０すなわちバックアップ・コントローラ１４０に対応し得る。方法は、ゲートウェイ１４８が生残り可能な終点に関する着信呼出しを受信する（ステップ５０４）場合に開始される。ゲートウェイ１４８は、次いで、一次シグナリング経路が使用のために利用可能であるかどうかを決定する（ステップ５０８）。本発明の少なくともいくつかの実施形態によれば、ゲートウェイ１４８は、このステップの間、その内部構成要素状態表を参照することが可能である。
【００７３】
一次シグナリング経路が動作可能であると決定された場合、ゲートウェイ１４８は、一次経路を介して目標終点に受信された信号を経路指定し（ステップ５１２）、その後、方法は終了する（ステップ５３６）。しかし、ゲートウェイ１４８が、一次シグナリング経路が何らかの理由で利用不可能である（例えば、ネットワーク１０４、サーバ１３６、または一次シグナリング経路上のその他の構成要素が休止中である）ことを決定した場合、方法は、ゲートウェイ１４８が二次シグナリング経路を介して目標終点に信号を送信することにより継続する（ステップ５１６）。この特定のステップは、二次シグナリング経路も利用不可能でないという仮定に基づいて実行される。ゲートウェイが二次シグナリング経路も利用不可能であることを決定する場合、失敗した（１つまたは複数の）構成要素を迂回するもう１つのバックアップ・シグナリング経路が選択されて、終点に信号を送信するために使用される。
【００７４】
呼出し信号が二次シグナリング経路を介して目標終点に送信された後、ゲートウェイ１４８は、３０５リダイレクト応答（使用プロキシ）メッセージが終点から受信されたかどうかを決定するのを待つ（ステップ５２０）。アクティブ・スタンバイ構成では、終点が一次シグナリング経路は動作可能であると確信する場合、二次経路を介して呼出し信号を受信している終点は、３０５リダイレクト応答を送信することが可能である。この確信は、ゲートウェイ１４８ではなく、終点で実行される状態監視動作に基づくことになる。これにより、システム１００の異なる見通しに基づいて、終点はシステム１００内の１つまたは複数の構成要素に関して印された異なる状態を有することが可能である。したがって、３０５リダイレクト応答が、呼出し信号のそのリダイレクトに基づいて、二次経路を介してゲートウェイ１４８によって受信された場合、ゲートウェイ１４８は一次シグナリング経路を介して呼出し信号にリダイレクトを試みることになる（ステップ５２４）。呼出し信号の成功裏の伝送により一次シグナリング経路が利用可能であると決定される場合（ステップ５２８）、方法はステップ５３６で終了する。呼出しが一次シグナリング経路の利用不可能性により拒否された場合、呼出しは拒否されるかまたは二次シグナリング経路を介して送信し戻されることが可能である（ステップ５３２）。加えて、ゲートウェイ１４８は、一次シグナリング経路の状態のその観察を再検査するよう目標終点に命令する通知メッセージを目標終点に送信することが可能である。その後、またはリダイレクト応答メッセージが終点から受信されない場合、方法は終了する（ステップ５３６）。
【００７５】
次に図６を参照すると、本発明の少なくともいくつかの実施形態による、システム１００の状態決定の終点方法が説明される。当初、終点（例えば、生残り可能なＵＡ１０８）は通常の状態で動作する（ステップ６０４）。終点は、次いで、ネットワーク障害が検出されたかどうかを決定するためにその発見モジュール１１６の論理を用いる（ステップ６０８）。生残り可能な構成では、終点がいつフェイルオーバまたはフェイルバックするかを検出することが可能であることが有用である。本発明の少なくともいくつかの実施形態によれば、終点によって使用される発見モジュール１１６の論理は、以下の事象のうちの１つまたは複数が発生する場合、ネットワーク障害が発生したことを決定することになる。
（１）終点は、終点が登録しようと試みているすべてのコントローラ１４０（例えば、その一次コントローラおよび二次コントローラ１４０）からのハートビートとしてＳＩＰレジスタ・メッセージに対する応答を受信しない、
（２）終点はＳＩＰ要請メッセージに対する応答を受信せず、ＳＩＰ要請メッセージは、発信呼出しを設定することを試みる通常のプロセスにおいて送信されている可能性がある、
（３）終点は、新しいＳＩＰ対話変更または中間対話変更の通常の作成のために送信された任意のＳＩＰシグナリング・メッセージに対する応答を受信しない、
（４）終点は、その（１つまたは複数の）構成サーバからの（ＴＣＰ／ＩＰ、ＨＴＴＰ、ＸＭＬ、もしくはＳＯＡＰなど、異なるタイプのプロトコルによって運ばれ得る）重要な要求、または障害に関係するデータを取り出すために使用されるデータ・サービスなど、任意のその他の帯域外の非通信サービスに対する成功裏の応答を受信しない。
【００７６】
終点が自ら障害を検出しない場合、方法は、終点が障害を通知されたかどうかを決定することにより継続する（ステップ６１２）。通知は、終点で、ゲートウェイ１４８、サーバ１３６、またはシステム１００の状態を監視することが可能なシステム１００のいくつかのその他の構成要素から送信されたＳＩＰ通知メッセージの形で受信され得る。ＳＩＰ通知メッセージは、終点がそのコントローラ１４０のすべてとのその登録をフェイルオーバ、再ブート、またはリフレッシュ／更新すべきであることを表示することが可能である（それにより、終点の論理を回避する）。通知が受信されない場合、方法はステップ６０４に戻る。
【００７７】
しかし、（例えば、ＳＩＰ通知メッセージの受信によって）終点がシステム１００内の障害を通知された場合、終点は、障害通知が正確かどうかを決定する（ステップ６１６）。より詳細には、終点は、コントローラ１４０のうちのいずれかが非アクティブ、またはそうでない場合は、休止中と印されているかどうかを決定するために、その内部に維持されたコントローラのリスト１２０、１２８を検査することが可能である。ほとんどの場合、終点は単に通知メッセージの指示に準拠することになる。しかし、一定の環境下で、終点は、そのシステム１００の観察が正確な観察であることを決定することが可能であり、リダイレクト応答メッセージを用いて通知メッセージに応答することが可能である（ステップ６２０）。このリダイレクト応答は、通知メッセージの開始している構成要素にシステム１００のその観察の検査をさせることが可能である。方法は、次いで、ステップ６０４に戻る。
【００７８】
終点が障害通知は正確であると決定する場合または通知メッセージの指令に準拠することを決定する場合、終点は、通知メッセージが命令を含んだかどうかを決定する（ステップ６２４）。命令は、すべてのコントローラ１４０との再登録を試みるなど、比較的に一般的な命令であってよい。あるいは、命令は、終点が特定のコントローラ１４０を試して、再登録することを要求する命令セットを備えてよい。終点は、長期的または短期的な間隔のいずれかでコントローラ１４０をリフレッシュするようまたはコントローラ１４０に登録するよう試みることが可能である。リフレッシュ／登録の間隔の長さは、命令セット内の命令またはその他の要因に応じて異なってよい。命令は、通知メッセージを送信した構成要素によって認識されたように、システム１００全体に関する健全さ情報を含んでもよい。メッセージが命令を含まない場合、終点は命令を実行することになる（ステップ６２８）。
【００７９】
命令が終点によって実行された後で、またはメッセージが命令を含まない場合、方法は、終点がバックアップ状態で動作し始める（ステップ６３２）ように、終点がフェイルオーバを実行することにより継続する。このステップはまた、終点が自らシステム１００の障害を検出した場合にも実行される。フェイルオーバ・モードでの動作の間、終点は、そのバックアップ・コントローラ１４０を利用しかつ／または二次シグナリング経路を利用することになる。フェイルオーバ・モードで動作することに加えて、終点はシステム１００のフェイルバックに関して監視することが可能である（ステップ６３６）。発見モジュール１１６が、アクティブなコントローラとしてその役割を再開するためにその一次コントローラ１４０が利用可能であることを検出した場合、終点はフェイルバックが発生したことを決定することになる。この内部終点論理は、コントローラ１４０が任意の所与の時点でアクティブであるか否かに関係なく、終点が登録されたすべてのコントローラ１４０に定期的に送信されるハートビート／ＳＩＰレジスタ・メッセージによって支配され得る。
【００８０】
終点がそれ自体でフェイルバックを検出しない場合、方法は、（例えば、ゲートウェイ１４８、サーバ１３６などから通知メッセージを受信することによって）終点がもう１つの構成要素によってフェイルバックを通知されているかどうかを決定することにより（ステップ６４０）継続する。終点がフェイルバックを通知されない場合、方法はステップ６３２に戻る。しかし、終点がフェイルバックを表示する通知メッセージを受信した場合、方法は、通知メッセージが終点による実行のための命令を含んだかどうかを決定すること（ステップ６４４）によって継続する。命令が通知メッセージ内に含まれる場合、命令は終点によって実行される（ステップ６４８）。命令の実行後、命令が存在しなかった場合、またはフェイルバックが終点自体によって検出された場合、方法はステップ６０４に戻る。
【００８１】
本発明の少なくともいくつかの実施形態によれば、発見モジュール１１６は、一次コントローラまたは二次コントローラ１４０からのフェイルオーバまたはフェイルバックが自動化された終点検出によってトリガされたか、または（すなわち、ＳＩＰ通知メッセージの受信によって）単に手動でトリガされたかを支配する構成可能なパラメータを備え得る。発見モジュール１１６によって用いられるハートビート監視機構は、終点が障害状態を検出するか否かに応じて、異なる間隔で実行され得る。
【００８２】
次に図７を参照すると、本発明の少なくともいくつかの実施形態による状態通知方法が説明される。方法は、システム１００の構成要素（例えば、サーバ１３６、ゲートウェイ１４８、または発見モジュール１４４を備える任意のその他のデバイス）が、ＵＡ１０８などの終点にシステム１００に関して通知すべきかどうかを決定すること（ステップ７０４）から開始する。典型的には、構成要素は、通知メッセージを終点に送信し、システム１００状態のうちのいくつかの側面が変更したことを終点に知らせることになる。例えば、通知メッセージは、システム内の構成要素が休止中として登録されていることを終点に知らせることが可能である。あるいは、通知メッセージは、送信している構成要素の健全さを終点に知らせることが可能である。
【００８３】
通知メッセージが終点に送信されるべきであることが決定されるまで、方法はステップ７０４にとどまる。かかる決定を行った後で、方法は、構成要素がメッセージ（例えば、通知メッセージ）を生成すること（ステップ７０８）により継続する。しかし、理解され得るように、終点に通知するために、任意のその他のタイプのＳＩＰメッセージまたは非ＳＩＰメッセージが構成要素によって用いられてよい。通知は、構成要素が、終点がシステム１００の障害状態または回復状態においてフェイルオーバまたはフェイルバックするようにトリガすることを可能にし得る。終点はコントローラの順序付けされたリスト１２８を維持することが可能であり、終点はこれらのコントローラのすべてとのアクティブ登録を維持する能力を有するため、システム１００の構成要素は、終点がシステム１００の障害状態を検出した場合、終点が処置を講じるようにトリガすることが可能である。処置は、例えば、標準の通知メッセージ（例えば、標準のＳＩＰ  ＩＥＴＦに準拠する通知メッセージ）または特定の命令セットを含む拡張されたメッセージのいずれかを送信することによってトリガされ得る。したがって、方法は、構成要素が通知メッセージはその中に命令を含むかどうかを決定することにより継続する（ステップ７１２）。
【００８４】
特定の命令が必要であると決定された場合、構成要素は、コントローラの順序付けされたリスト１２８内のコントローラ１４０のすべてと再登録するよう終点に伝え、終点に一般的な通知メッセージを送信することが可能である（ステップ７２０）。これにより、かかる通知を受信するいかなる終点もそのリスト上のすべてのコントローラ１４０との再登録を試みることになる。この試みられた再登録の成功に基づいて、終点はどのコントローラ１４０が（例えば、着信ＳＩＰ呼出しおよび発信ＳＩＰ呼出しをサポートする）ＳＩＰトランザクションを処理するために利用可能であるかを導き出すことが可能になる。終点は、次いで、その一次コントローラとして、コントローラの順序付けされたリスト１２８上の最高優先順位のコントローラ１４０を使用して、この自己決定情報に従って動作することが可能である。この特定の機構は、標準のＳＩＰ  ＩＥＴＦに準拠する通知メッセージを使用することが可能である。メッセージは、通知パラメータ「ｅｖｅｎｔ」＝「ｐｒｏｂａｔｉｏｎ」を有する通知メッセージに関するＳＩＰ標準に従ってよい。かかる通知メッセージの例は下で提供される。
【００８５】
【数１】
2009239891.tif 000003
【００８６】
しかし、構成要素が、特定の命令が通知メッセージ内に含まれるべきであることを決定する場合、メッセージを終点に送信する（ステップ７２０）のに先立って、構成要素は１つまたは複数の命令セットをメッセージに加えることが可能である（ステップ７１６）。通知メッセージ内に命令を組み込むことによって、構成要素は、終点のコントローラ１４０リスト１２０上の特定のコントローラ１４０を使用して開始するよう終点に伝えることができる。かかるシナリオでは、終点は、どのコントローラ１４０が使用されるべきであるかを伝えるために、その独自の情報に依存するのではなく、構成要素に依存する。この特定の機構は、拡張された拡張機能を有する標準のＳＩＰ通知メッセージを使用することが可能である。通知メッセージは、通常、通知メッセージに関するＳＩＰ標準に従うことになる。加えて、終点がフェイルオーバまたはフェイルバックすべきである場合、通知メッセージは、＜ｅｖｅｎｔＮａｍｅ＞ｃｈａｎｇｅＳｅｒｖｅｒ＜／ｅｖｅｎｔＮａｍｅ＞などの事象名を有する例示的なプロファイル事象パッケージ・フォーマットを使用することが可能である。メッセージは、タイムスタンプおよび、終点がフェイルオーバまたはフェイルバックすべき特定のコントローラ１４０を含むサーバ１３６のアドレスも含み得る。かかる拡張されたＳＩＰ通知メッセージの例は、ＸＭＬ命令セットを用いて下で提供される。
【００８７】
【数２】
2009239891.tif 000004
【００８８】
当業者によって理解され得るように、命令はＸＭＬ命令セット以外の多くの異なる形式を取り得る。例えば、命令は終点のメモリ１１２内にすでに記憶されたアルゴリズムまたは適用業務に対応し、かつそのアルゴリズムまたは適用業務を実行させる所定のトリガを備え得る。加えて、上の例示的な通知メッセージは、メッセージの本体内にその命令セットを含んだが、命令セットは、通知メッセージのヘッダ内または終端部（ｔｒａｉｌｅｒ）内に配置されることも可能である。これは、用いられる通知メッセージのタイプに応じて異なってよい。命令は、送信している構成要素に関する健全さ情報ならびにシステム１００の残りの部分に関するその状態情報を伝えると同様に特定のタスクを実行する目的で終点をトリガするなど、いくつかの異なる動作を達成するために使用されることが可能である。
【００８９】
上述の流れ図は特定の一連の事象に関して議論されているものの、このシーケンスの変更は、本発明の動作に実質的に影響を与えずに行うことが可能である点を理解されたい。加えて、事象の正確なシーケンスは、例示的な実施形態に記載されるように行われなくてよい。本明細書に示された例示的な技術は、具体的に例示された実施形態に限定されず、その他の例示的な実施形態を用いて利用されることも可能であり、説明されたそれぞれの特徴は個々にかつ別々に特許請求可能である。
【００９０】
本発明のシステム、方法およびプロトコルは、説明された通信機器、またはプログラムされたマイクロプロセッサもしくはマイクロコントローラおよび（１つまたは複数の）周辺集積回路要素、ＡＳＩＣもしくはその他の集積回路、デジタル信号プロセッサ、配線（ｈａｒｄ−ｗｉｒｅｄ）電子回路もしくは離散的なエレメント回路などの論理回路、ＰＬＤ、ＰＬＡ、ＦＰＧＡ、ＰＡＬなどのプログラム可能な論理素子、サーバなどの通信デバイス、パーソナル・コンピュータ、任意の比較可能な手段などに加えてまたはそれらの代わりに専用コンピュータ上で実施されることが可能である。一般に、本明細書で例示される方法論を実施することができる状態機械を実施することが可能な任意のデバイスは、本発明による様々な通信方法、プロトコルおよび技術を実施するために使用され得る。
【００９１】
さらに、開示された方法は、様々なコンピュータ・プラットフォーム上またはワークステーション・プラットフォーム上で使用され得る携帯ソース・コードを提供する手続き的なソフトウェア開発環境またはオブジェクト指向のソフトウェア開発環境を使用してソフトウェア内で容易に実施され得る。あるいは、開示されたシステムは、標準の論理回路またはＶＬＳＩ設計を使用してハードウェア内で部分的にまたは完全に実施されることが可能である。本発明に従ってシステムを実施するためにソフトウェアが使用されるかまたはハードウェアが使用されるかは、システムの速度および／または効率性要件、特定の機能、ならびに利用されている特定のソフトウェア・システムもしくはハードウェア・システムまたはマイクロプロセッサ・システムもしくはマイクロコンピュータ・システムに依存する。本明細書で例示される解析システム、解析方法および解析プロトコルは、本明細書で提供される機能的な説明から、かつ通信技術の一般的な基本的知識を用いて、当業者によって任意の知られているまたは当業者によって後で開発されるシステムもしくは構造、デバイスおよび／またはソフトウェアを使用して、ハードウェアおよび／またはソフトウェア内で容易に実施され得る。
【００９２】
さらに、開示された方法は、記憶媒体上に記憶され、コントローラおよびメモリと協働してプログラムされた汎用コンピュータ、専用コンピュータ、マイクロプロセッサなどの上で実行されることが可能なソフトウェア内で容易に実施され得る。これらの場合、本発明のシステムおよび方法は、アプレット、ＪＡＶＡ（登録商標）またはＣＧＩスクリプトなどのパーソナル・コンピュータに組み込まれたプログラムとして、サーバ上またはコンピュータ・ワークステーション上に常駐するリソースとして、専用の通信システム内または専用のシステム構成要素内に組み込まれたルーチンなどとして実施され得る。システムはまた、システムおよび／または方法を、通信デバイスまたは通信システムのハードウェア・システムおよびソフトウェア・システムなどのソフトウェア・システムおよび／またはハードウェア・システム内に物理的に組み込むことによって実施されることも可能である。
【００９３】
したがって、本発明により、ＳＩＰ生残り可能なネットワークおよびネットワーク構成要素を維持するためのシステム、装置および方法が提供されていることは明らかである。本発明はいくつかの実施形態に関して説明されているものの、多くの代替形態、変更形態および改変形態は当業者に明らかになるであろうこと、またはこれらが当業者に明らかなことは明白である。したがって、本発明の精神および範囲内のすべてのかかる代替形態、変更形態、均等物および改変形態を包括することが意図される。
【図面の簡単な説明】
【００９４】
【図１】本発明の少なくともいくつかの実施形態による通信システムを示すブロック図である。
【図２】本発明の少なくともいくつかの実施形態によるＳＩＰコントローラ発見および登録方法を示す流れ図である。
【図３】本発明の少なくともいくつかの実施形態による状態決定方法を示す流れ図である。
【図４】本発明の少なくともいくつかの実施形態による反応的な状態決定方法を示す流れ図である。
【図５】本発明の少なくともいくつかの実施形態によるゲートウェイ動作方法を示す流れ図である。
【図６】本発明の少なくともいくつかの実施形態による終点に関する状態決定方法を示す流れ図である。
【図７】本発明の少なくともいくつかの実施形態による状態通知方法を示す流れ図である。
【図１】
2009239891.tif 000005
【図２】
2009239891.tif 000006
【図３】
2009239891.tif 000007
【図４】
2009239891.tif 000008
【図５】
2009239891.tif 000009
【図６】
2009239891.tif 000010
【図７】
2009239891.tif 000011