(57)【特許請求の範囲】
【請求項１】
異なるインスタントメッセージングサービスプロバイダネットワークのクライアント間におけるインスタントメッセージング通信を容易にするための装置であって、
第２のプロトコルに関連する外部インスタントメッセージングサービスプロバイダネットワークからのインスタントメッセージング通信を、プライマリーサービスプロバイダネットワークで受信するためのインターフェースロジックと、
受信されたインスタントメッセージング通信を前記第２のプロトコルからプライマリーサービスプロバイダネットワークに固有なプライマリプロトコルへ変換するための変換ロジックと、
前記プライマリーサービスプロバイダネットワークのユーザのリバースバディ（仲間）リストを前記プライマリーサービスプロバイダネットワーク内に記憶する記憶ロジックであって、前記リバースバディリストは前記ユーザの外部バディの識別子を含み、前記外部バディは前記外部インスタントメッセージングサービスプロバイダネットワークに加入し、受信された前記インスタントメッセージング通信は複数の外部バディのうちの一つからである当該記憶ロジックと、
前記外部インスタントメッセージングサービスプロバイダネットワークのユーザのバディである前記プライマリーサービスプロバイダネットワークのユーザの識別子を含むプライマリーネットワークバディリストを、前記プライマリーサービスプロバイダネットワーク内に記憶する記憶ロジックであって、前記バディは前記外部インスタントメッセージングサービスプロバイダネットワークのユーザの各外部アドレスがキーとなっている当該記憶ロジックと、
を含む装置。
【請求項２】
前記受信されたインスタントメッセージング通信は、前記外部インスタントメッセージングサービスプロバイダネットワークを通して前記インターフェースロジックへ送られる、請求項１に記載の装置。
【請求項３】
受信された前記インスタントメッセージング通信は、サブスクライブのリクエストと、招待のリクエストと、サブスクライブ解除のリクエストと、より成るグループからの少なくとも一つの通信を含む、請求項１に記載の装置。
【請求項４】
前記インターフェースロジックは、更に、前記インスタントメッセージング通信を前記外部インスタントメッセージングサービスプロバイダに送信するためのインターフェースロジックであり、そして前記変換ロジックは、更に、該インスタントメッセージング通信を前記プライマリプロトコルから前記第２のプロトコルへ変換するための変換ロジックである、請求項１に記載の装置。
【請求項５】
送信される前記インスタントメッセージング通信は、ウォッチャーへの通知と、サブスクライブのリクエストと、招待のリクエストと、サブスクライブ解除のリクエストと、より成るグループのうちの少なくとも一つを含む、請求項４に記載の装置。
【請求項６】
前記インターフェースロジックと変換ロジックは、ゲートウェイイベントサーバに含まれている、請求項１に記載の装置。
【請求項７】
受信された前記インスタントメッセージング通信に関連するランタイムダイアログの状態を格納するために動作可能なセッションマネージャを更に含む、請求項１に記載の装置。
【請求項８】
受信された前記インスタントメッセージング通信を処理するための接続マネージャであって、エンドポイントプレゼントダイアログマネージャを含む接続マネージャ、を更に含む、請求項１に記載の装置。
【請求項９】
前記第２のプロトコルは、ＳＩＰ／ＳＩＭＰＬＥプロトコルを含む、請求項１に記載の装置。
【請求項１０】
異なるインスタントメッセージングサービスプロバイダネットワークのクライアント間におけるインスタントメッセージング通信を容易にするための方法であって、
外部インスタントメッセージングサービスプロバイダネットワークからのインスタントメッセージング通信をプライマリーサービスプロバイダネットワークで受信する処理であって、受信された前記インスタントメッセージング通信は、前記外部インスタントメッセージングサービスプロバイダネットワークの第２のプロトコルに従いフォーマットされている当該処理と、
前記受信されたインスタントメッセージング通信を、前記第２のプロトコルから、前記プライマリーサービスプロバイダネットワークのプライマリプロトコルへ変換する処理と、
前記プライマリーサービスプロバイダネットワークのユーザのリバースバディ（仲間）リストを前記プライマリーサービスプロバイダネットワーク内に記憶する処理であって、前記リバースバディリストは前記ユーザの外部バディの識別子を含み、前記外部バディは前記外部インスタントメッセージングサービスプロバイダネットワークに加入し、受信された前記インスタントメッセージング通信は複数の外部バディのうちの一つからである当該処理と、
前記外部インスタントメッセージングサービスプロバイダネットワークのユーザのバディである前記プライマリーサービスプロバイダネットワークのユーザの識別子を含むプライマリーネットワークバディリストを、前記プライマリーサービスプロバイダネットワーク内に記憶する処理であって、前記バディは前記外部インスタントメッセージングサービスプロバイダネットワークのユーザの各外部アドレスがキーとなっている当該処理と、
を含む方法。
【請求項１１】
異なるインスタントメッセージングサービスプロバイダネットワークのクライアント間におけるインスタントメッセージング通信を容易にするためのコンピュータ読み取り可能な記録媒体であって、コンピュータに、
外部インスタントメッセージングサービスプロバイダネットワークからのインスタントメッセージング通信をプライマリーサービスプロバイダネットワークで受信する処理であって、受信された前記インスタントメッセージング通信は、前記外部インスタントメッセージングサービスプロバイダネットワークの第２のプロトコルに従いフォーマットされた当該処理と、
前記インスタントメッセージング通信を、前記第２のプロトコルから、前記プライマリーサービスプロバイダネットワークに固有なプライマリプロトコルへ変換する処理と、
前記プライマリーサービスプロバイダネットワークのユーザのリバースバディリストに、前記プライマリーサービスプロバイダのユーザの外部バディの識別子を記憶する処理であって、前記外部バディは前記外部インスタントメッセージングサービスプロバイダネットワークに加入し、受信された前記インスタントメッセージング通信は複数の外部バディのうちの一つからである当該処理と、
前記外部インスタントメッセージングサービスプロバイダネットワークのユーザのバディである前記プライマリーサービスプロバイダネットワークのユーザの識別子を含むプライマリーネットワークバディリストを、前記プライマリーサービスプロバイダネットワーク内に記憶する処理であって、前記バディは前記外部インスタントメッセージングサービスプロバイダネットワークのユーザの各外部アドレスがキーとなっている当該処理と、
を実行させるためのプログラム指令を記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、ここにすべてが記載されているように参照によって組み込まれた、２００５年１０月７日に提出され、「異種のサービスプロバイダ間における、インスタントメッセージングの相互運用性」とタイトルが付された、先に出願された米国特許仮出願第６０／７２４，５７７号についての優先権の利益を主張する。
【０００２】
分野
本件は、一般的に、インターネットやイントラネットのようなネットワークを通じたインスタントメッセージングに関し、特に、異種のインスタントメッセージングプロバイダにおける２以上のユーザ間におけるインスタントメッセージングに関する。
【０００３】
関連技術の説明
インスタントメッセージング技術は、一般的に、２以上の参加者が、インターネット（Ｉｎｔｅｒｎｅｔ）やインターネット（ｉｎｔｅｒｎｅｔ）（例えばプライベートネットワーク）のようなコンピュータネットワークにわたって、事実上リアルタイムで通信することを可能とする。典型的には、各々の参加者はユーザインターフェースを通じてクライアントコンピュータシステムを使用し、メッセージ（例えばテキスト、音声、ファイル、及び同類のものを含む）を送信し、受信する。通信における各々のクライアントコンピュータはネットワークを通じて共通のインスタントメッセージングサービスプロバイダ、そして接続サーバに接続される。接続サーバは参加者からのメッセージを受信し、処理（他の参加者のクライアントシステムに、表示のために転送することによるものも含む）する。接続サーバはまた、例えば仲間の参加者が接続を断ったこと、もしくはログオフしたことを参加者に通知する等、システムに代わってメッセージを送信するために構成されることもできる。
【０００４】
典型的には、クライアントシステムをインスタントメッセージングクライアントとして使用できるものとするため、各々のクライアントシステムにおいてはインスタントメッセージングアプリケーションソフトウェアがインストールされる。前記インスタントメッセージングソフトウェアは、例えばインターネットを通じてアクセス可能なウェブページからダウンロード可能となるよう作ることが可能である。ユーザは、１以上の他の参加者とインスタントメッセージングによって通信するために、クライアントシステム上でこのソフトウェアを起動する。クライアント側のアプリケーションソフトウェアは典型的にはクライアントシステムと接続サーバとの間の接続を確立し、そして自動的に前記ユーザを接続サーバにログインさせるか、または前記ユーザに、ログインするために必要な情報（ユーザ名とパスワードなど）の入力を促す。その後前記ユーザは、その時点でインスタントメッセージングシステムにログインしている１以上の他のユーザと、インスタントメッセージングを用いて通信することが可能となる。
【０００５】
ＭＳＮ（登録商標）メッセンジャー、Ｙａｈｏｏ！（登録商標）メッセンジャー、ＡＯＬ（登録商標）インスタントメッセンジャー（“ＡＩＭ”）、及び同類のもの等、いくつかの知られたインスタントメッセージングシステム、そしてサービスプロバイダが存在する。殆どのインスタントメッセージングサービス（またはサービスプロバイダ）は独自仕様のソリューションを使用するために、大抵、あるインスタントメッセージングシステムを使用するクライアントは、異なるインスタントメッセージングシステムを使用するクライアントとインスタントメッセージを交換することができない。例えば、ＭＳＮ（登録商標）メッセンジャーを使用するクライアントは通常、同じシステム（例えば同じインスタントメッセージングプロバイダ）を使用する他のクライアントと通信できるのであるが、しかしながら、Ｙａｈｏｏ！（登録商標）メッセンジャー等、他のインスタントメッセージングサービスプロバイダを使用するクライアントと通信することはできない。
【０００６】
従って、２以上のインスタントメッセージングシステムのためのネットワーク間で通信を可能とすること、及び相互運用性が望まれている。さらに、１以上の外部のネットワークとインスタントメッセージングプロバイダと関わりあいをもつ参加者のために、プレゼンスインジケータ（ｐｒｅｓｅｎｃｅ  ｉｎｄｉｃａｔｏｒ）とバディ（仲間）リスト情報（ｂｕｄｄｙ  ｌｉｓｔ  ｉｎｆｏｒｍａｔｉｏｎ）を提供することが望まれている。
【発明の概要】
【０００７】
概要
本発明の一つの態様と一つの例に従って、異種のインスタントメッセージングサービスプロバイダのユーザ間での、インスタントメッセージング通信とイベントを容易にするためのシステムが提供される。前記システムは外部サーバから受信された通信を変換するために動作可能な、プライマリインスタントメッセンジャーサービスプロバイダネットワークに関連する変換ロジックを含む。具体的には、前記変換ロジックは外部サーバから受信された通信を、第２のプロトコルから前記システム固有の（ｎａｔｉｖｅ）プライマリプロトコルへ変換する。
【０００８】
一つの例において、異なるインスタントメッセージングサービスプロバイダのユーザ間でのインスタントメッセージング通信を容易にするための装置は、インターフェースロジックと変換ロジックとを含む。インターフェースロジックは、外部のインスタントメッセージングサービスプロバイダネットワークに関連し、かつ第２のプロトコルに従ってフォーマットされている、インスタントメッセージングサービスに関する通信、を受信する。
前記装置はさらに、受信された通信を第２のプロトコルから受信サービスプロバイダネットワーク固有のプライマリプロトコルへ変換するための変換ロジック、を含む。
【０００９】
いくつかの例において、受信される通信は、外部のインスタントメッセージングサービスプロバイダネットワークから受信される（例えば、外部ネットワークのクライアントは、通信を該外部ネットワークへ送り、該外部ネットワークは順繰りに、前記通信をプライマリネットワークへ送る）。前記通信はさまざまのインスタントメッセージング通信とイベント、例えば、サブスクライブ（ｓｕｂｓｃｒｉｂｅ）のリクエスト、招待（ｉｎｖｉｔｅ）のリクエスト、サブスクライブ解除（ｕｎｓｕｂｓｃｒｉｂｅ）のリクエスト、ウォッチャー通知（ｗａｔｃｈｅｒ  ｎｏｔｉｆｉｃａｔｉｏｎｓ）、及び同類のもの、等を含むことができる。
【００１０】
加えて前記装置は、ゲートウェイイベントサーバ、イベントサーバ、ＳＩＰゲートウェイ、エッジ・プロキシ（ｅｄｇｅ  ｐｒｏｘｙ）、セッションマネージャ（例えば、ランタイムダイアログの状態（ｒｕｎ−ｔｉｍｅ  ｄｉａｌｏｇ  ｓｔａｔｅｓ）や、ＳＩＰダイアログのルーティング情報、その他を格納するため）、ゲートウェイデータベース（例えば、  バディリストや、永続性情報（ｐｅｒｓｉｓｔｅｎｔ  ｉｎｆｏｒｍａｔｉｏｎ）、その他を格納するため）、接続サーバ、接続マネージャ、その他からの１以上をさらに含むか、またはそれらと通信することができる。
【００１１】
別の例に従えば、異なるインスタントメッセージングサービスプロバイダのユーザ間におけるインスタントメッセージング通信を容易にするための方法が提供される。一例を挙げれば、その方法は、外部のインスタントメッセージングサービスプロバイダネットワークから、インスタントメッセージングサービスに関する、第２のプロトコルに従ってフォーマットされている通信を受信する動作を含み、さらには受信された通信を第２のプロトコルからプライマリプロトコルへ変換する動作を含む。
【００１２】
別の例に従えば、異なるサービスプロバイダネットワークを越えてのインスタントメッセージング通信を容易にするための命令を含む、コンピュータ読み取り可能な媒体が提供される。一例を挙げれば、前記命令は、外部のインスタントメッセージングサービスプロバイダネットワークに関連した、インスタントメッセージングサービスに関する、プライマリインスタントメッセージングサービスプロバイダネットワークに向けられた通信を、第２のプロトコルから、前記プライマリインスタントメッセージングサービスプロバイダネットワーク固有のプライマリプロトコルに変換することを含む方法の性能を引き起こすための命令である。
【００１３】
本発明とそのさまざまの態様は、以下に詳述される説明を添付の図面、そして請求の範囲と併せて熟考することにより、より良く理解される。
【図面の簡単な説明】
【００１４】
【図１】図１は、サーバ間での相互運用性を備えた二つのインスタントメッセージングサービスプロバイダ間での通信のための、典型的なシステム及び環境を図解的に説明する。
【図２】図２は、外部の、または第２のネットワーク／インスタント  メッセージングサービスプロバイダネットワークと通信している第１のインスタントメッセージングプロバイダに関連する、典型的なプライマリネットワークのバックエンドを図解的に説明する。
【図３】図３は、プライマリサービスプロバイダネットワークのバックエンドと外部のネットワークの間における、典型的なゲートウェイと通信を図解的に説明する。
【図４】図４は、外部の、または第２のネットワーク／インスタント  メッセージングサービスプロバイダと通信している第１のインスタントメッセージングサービスプロバイダに関連する、典型的なプライマリネットワークのバックエンドを図解的に説明する。
【図５】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図６】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図７】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図８】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図９】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１０】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１１】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１２】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１３】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１４】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１５】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１６】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１７】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１８】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図１９】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図２０】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。
【図２１】図５から図２１は、１以上の外部ネットワーク／インスタント  メッセージングサービスプロバイダと通信しているプライマリネットワークサービスプロバイダのバックエンドの構成要素間における、さまざまの典型的通信とイベントフローとを説明する。そして；
【図２２】図２２は、本発明のさまざまの態様のための処理機能を実装するために採用されうる、典型的なコンピューティングシステムを説明する。
【発明を実施するための形態】
【００１５】
以下の説明は、当該技術分野において通常の技術を有する人が、本発明を作り、そして使用することを可能とするために、与えられるものである。特定の機器、技法、そして応用についての説明は、単なる例として提供される。ここにおいて説明される例のさまざまの改良が、当業者にとっては容易に明らかになるであろうし、ここにおいて明示される一般的原理は、本発明の精神と範囲から外れることなく、他の例や用途に適用することができる。それ故に、本発明はここにおいて説明され示される例に限定することを意図されているのではなく、請求の範囲に一致する範囲で認められることを意図されている。
【００１６】
図１は、ここで説明されるいくつかの態様が使用されうる、典型的なシステムと環境を説明する。大まかに、複数の第１のクライアント１１０がログインしている（例えば、第１のサービスプロバイダプロトコルを通じて）第１のインスタントメッセンジャー（“ＩＭ”）サービスプロバイダ１００と、複数の第２のクライアント１１２がログインしている（例えば、第２のサービスプロバイダプロトコルを通じて）第２のＩＭサービスプロバイダ１０２が説明されている。第１、第２のＩＭサービスプロバイダ１００、１０２は、第１のクライアント１１０が第２のクライアント１１２とインスタントメッセージの送受信をすることを可能とするために、通信をする。一例を挙げれば、前記通信は第１、第２のネットワーク１００、１０２の間での直接の通信であり、例えば各々のネットワークにおけるそれぞれのサーバ間、または他のネットワーク構成要素間での通信である（第１のクライアント１１０が第２のネットワーク１０２と直接通信し、または第２のクライアント１１２が第１のネットワーク１００と直接通信するのではない）。そのようなシステムは、異種のＩＭプロバイダ間での相互運用性を可能とし得る。
【００１７】
第１、第２のＩＭサービスプロバイダ１００、１０２は、少なくとも一部分において、そして一例において、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、セッション初期化プロトコル）とＳＩＭＰＬＥ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ）に基礎を置くプロトコルにより通信することができる。ＳＩＰ／ＳＩＭＰＬＥは、ＩＭとプレゼンスの機能性を提供する第１、第２のＩＭサービスプロバイダの間での、相互通信と相互運用性のためのプロトコルの例証となる。さらには、ＳＩＰ／ＳＩＭＰＬＥは、音声、映像、及び同類のもののサーバ間での相互運用性（ｓｅｒｖｅｒ−ｔｏ−ｓｅｒｖｅｒ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ）を、サポートし得る。
【００１８】
一例を挙げれば、サーバ間での相互運用性という目的のための特定のＳＩＰ／ＳＩＭＰＬＥプロトコルは、ＳＩＰ  ＲＦＣ  ３２６１と、ＳＩＰ  ＲＦＣ  ３２６５と、そして／またはＰＩＤＦ  ＲＦＣ  ３８６３とを含む。さらに言えば、ネットワーク間の通信は、所望のレベルのセキュリティとＩＰフィルタリングを備えたＴＣＰを越えて、サーバ間で通信し得る。
【００１９】
当業者は、さまざまの他の通信プロトコル（オープンなプロトコルであるか独自仕様であるかは問わない）が、単独で使用されるか他の通信システム／方法と組み合わせて使用されるかに関わらず、可能であること、そして予期されることに気付くであろう。ＳＩＰ／ＳＩＭＰＬＥプロトコルに対しての、例えば特定のＩＭサービスプロバイダや所望の機能に依存した、さまざまの改良がなされ得る。例えば、ＳＩＰ／ＳＩＭＰＬＥのように良く知られた任意のプロトコルを、与えられたネットワーク内でより効果的に使用できるよう（例えば通信速度や、プロセスや、コスト等の点において）、改良することが可能である。さらには、ＸＭＰＰもしくは同類のものなどの、異種のＩＭプロバイダ間における通信と相互運用性の両方、またはいずれか一方を可能とするか容易にする、他の適正なプロトコルを、単独で、またはＳＩＰ／ＳＩＭＰＬＥプロトコルと組み合わせて使用することができる。
【００２０】
クライアント１１０と１１２には、例えば、インターネットブラウザやパーソナルコンピュータ、携帯電話やノート型パーソナルコンピュータのようなモバイル機器、及び同類のものを通じて、ＩＭアカウントにアクセスするユーザを含むことができる。ユーザは典型的には、特定のユーザＩＭアカウントに対するそれぞれのＩＭサービスプロバイダを含む、１以上のサーバへ、（インターネットやイントラネットなどの）ネットワークを通じて接続される。該ネットワークは更に、ゲートウェイサーバ、プロキシサーバ、アカウントサーバ、電子メールサーバ、モバイルサーバ、及び同類のもの等、さまざまの他のサーバを含むことができる。
【００２１】
コンピュータ機器を通じたクライアントは、例えば携帯電話や人工衛星といった無線ゲートウェイのような無線ネットワーク、もしくは他の無線ネットワークを通じて通信することができる。さらには、前記コンピュータ機器は、ケーブルネットワークや光ファイバーネットワーク等の無線ではないネットワークを通じて、もしくは無線システムと無線ではないシステムの組み合わせを通じて、通信することができる。前記コンピュータ機器は、キーボードのような入力機器に接続されたプロセッサ、ネットワークインターフェース、メモリ、そしてディスプレイ等の、適正なハードウェアとソフトウェアを含むことができる。前記メモリは、ここにおいて説明される機能のいくつかを実行するために前記機器と共に動作可能な、ロジックもしくはソフトウェアを含むことができる。前記機器は、電子メールの受信トレイ、インスタントメッセージング（ＩＭ）、ショート・メッセージ・サービス（ＳＭＳ：ｓｈｏｒｔ  ｍｅｓｓａｇｉｎｇ  ｓｅｒｖｉｃｅ）、マルチメディア・メッセージング・サービス（ＭＭＳ：ｍｕｌｔｉｍｅｄｉａ  ｍｅｓｓａｇｉｎｇ  ｓｅｒｖｉｃｅ）、及び同類のもののようなメッセージング機能（ｍｅｓｓａｇｉｎｇ  ｆａｃｉｌｉｔｙ）のための適正なインターフェースを含んで、動作可能とすることができる。前記機器はさらに、例えばＹａｈｏｏ！（登録商標）メールアカウント、またはＨｏｔｍａｉｌ（登録商標）アカウントのようなウェブメール環境を含む、インターネット、もしくはユーザアカウントにアクセスするためのウェブブラウザを表示するよう動作可能とすることができる。
【００２２】
ネットワーク１００、１０２は、互いに通信していてさらには複数のユーザの機器と無線で通信することも可能である、１以上のサーバとデータベースのシステム、と通信すること、またはそれらシステムを含むことが可能である。典型的なサーバシステムは、さまざまなルータ、データベース、ゲートウェイ、そしてサーバ（エッジもしくはプロキシサーバ、ゲートウェイサーバ、モバイルサーバ、電子メールサーバ、ウェブサーバ、音声メッセージングサーバ、及び同類のものなど）を含むことができる。さらに、ネットワーク２０は、さまざまのユーザ、機器、サーバ、エージェント、モジュール、クライアント、プロセッサ、及び同類のものの間での通信を可能とする、無線通信と、１以上のローカルエリアネットワーク（ＬＡＮｓ）、そして／または  インターネットのような広域ネットワーク（ＷＡＮ）を含むことができる。
【００２３】
ある典型的動作において、クライアント１１０を通じたユーザは、有効なＩＤとパスワードによって、プライマリネットワークにサインインする。ユーザがプライマリネットワーク１００に無事にサインインした後、クライアント１１０そして／またはプライマリネットワーク１１０は、第２のネットワーク１０２上の仲間（バディ）のプレゼンス／ステータスに対するサブスクリプション（ｓｕｂｓｃｒｉｐｔｉｏｎ）を送信し、さらには第２のネットワーク１０２上のウォッチャー（ｗａｔｃｈｅｒ）（例えばクライアント１１０と親交のあるクライアント１１２）へ、プライマリネットワークにおけるプレゼンス／ステータスを示す通知を送信する。もしユーザがプライマリネットワークからサインアウトすれば、適切なサブスクリプション／通知メッセージが、第２のネットワーク上の仲間（バディ）へ送信される。
【００２４】
ユーザはまた、第２のネットワークからのコンタクトをブロック／無視することもでき；第２のネットワークからの新たなコンタクトを、そのコンタクトの第２のネットワークに対するＩＤを使って追加することもでき；第２のネットワークからのコンタクトを削除することもでき；第２のネットワークからのコンタクトの名前を変更することもできる。
【００２５】
図２は、ここで説明するいくつかの態様が使用されうる、典型的なＩＭサービスプロバイダネットワークの概観を説明する。全ての構成要素が必要とされるとは限らず、該構成要素の配置や種類の変化は、さまざまの発明の精神と範囲から外れることなく、なされうる。
【００２６】
一つの例において、第１のＩＭサービスプロバイダに対応するプライマリ、または第１のネットワーク２００は、エッジ・プロキシ２１２を含む。前記エッジ・プロキシ２１２は、ＳＩＰ／ＳＩＭＰＬＥもしくは他の、単数または複数の通信プロトコル（第１のＩＭサービスプロバイダと、１以上のＩＭサービスプロバイダを含む１以上の、外部ネットワーク（ｅｘｔｅｒｎａｌ  ｎｅｔｗｏｒｋ）または２０２のような移動先ネットワーク（ｆｏｒｅｉｇｎ  ｎｅｔｗｏｒｋ）との間で使用される）用に構成されることができる。
とりわけ、エッジ・プロキシ２１２は単数または複数の外部ネットワークへの接続の取り扱い（ｈａｎｄｌｉｎｇ）とルーティングを提供する。前記エッジ・プロキシ２１２は省略可能な構成要素であって、別の例においてはゲートウェイ２１４が別のサーバ、またはネットワーク構成要素と直接（例えば、別のネットワークのエッジ・プロキシもしくはゲートウェイと直接）通信できる。しかしながら、一般のエッジ・プロキシ２１２を実装することは、２以上の外部ネットワークと連携する（ｆｅｄｅｒａｔｅ）ことを容易にする。エッジ・プロキシ２１２の包含はまた、１以上の外部ネットワークへの連携のルーティングと接続の取り扱いを集中化することの助けとなる。
【００２７】
この例において、ゲートウェイ２１４は第１のネットワーク内部への最後のＳＩＰノードであり、そして単数または複数の外部ネットワークに対してのＳＩＰエンドポイントとしての、第１のネットワークにおけるプロキシクライアントである。従ってゲートウェイ２１４は、ネットワーク２００のバックエンドにおいて、ＳＩＰ／ＳＩＭＰＬＥの通信／イベント／その他を、固有なプロトコル、またはプライマリプロトコルの通信へ変換するよう動作可能な、ロジックを含む。例えば、ゲートウェイ２１４はＳＩＰトラフィックを特定のプライマリネットワーク／ＩＭサービスプロバイダにとっての固有なプロトコル、またはプライマリプロトコルへ変換するのに役立つし、逆もまた同様である。典型的には、ゲートウェイ２１４（または同等な構成要素）の拡張性（ｓｃａｌａｂｉｌｉｔｙ）の限界は、ＳＩＰのスタック実装（ｓｔａｃｋ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）の性能に依存する（図３に関して、より詳細に論じているように）。さらに、ＳＩＰ層においては、特定のネットワーク  及び／または  構成要素に依存する拡張性を改善するための一括（ｂａｔｃｈ）サブスクリプション、及び一括通知を実行するため、さまざまな最適化を行うことができる。ある例において、ゲートウェイ２１４は、ＳＩＰスタックが一括にされたサブスクリプションと通知を取り扱うのに最適化された、ＳＩＰゲートウェイである。
【００２８】
ゲートウェイ２１６はゲートウェイイベントサーバ（ＥＳ）を含み、さまざまのバックエンドサーバ、例えばリバースバディイベントサーバ（ｒｅｖｅｒｓｅ  ｂｕｄｄｙ  ｅｖｅｎｔ  ｓｅｒｖｅｒ）２１８、イベントサーバ２２０、そして接続サーバ２２２のような、固有のプライマリネットワークサーバとの通信を取り扱う。ゲートウェイ２１６はまた、任意の種類の外部ＩＭ／プレゼンス  プロトコル（ＩＭ／ｐｒｅｓｅｎｃｅ  ｐｒｏｔｏｃｏｌ）を用いて使用され得る、一般のサブスクリプションとダイアログモデルをエクスポートするよう、動作可能である。ある例において、ゲートウェイ２１６は尚一層ステートレス（ｓｔａｔｅｌｅｓｓ）であり、そして大いに拡張性がある。
【００２９】
ゲートウェイ２１６はランタイムダイアログの状態を格納するために、セッションマネージャ２４２を含むか、または２４２へアクセスすることができ、さらには外部ユーザからなるプライマリネットワークの仲間（バディ）を格納するため、バディストア（ｂｕｄｄｙ  ｓｔｏｒｅ）２４０を含むか、または２４０にアクセスすることができる。バディストア２４０は、プライマリアカウントの仲間（バディ）（例えば  Ｙａｈｏｏ！  での仲間（バディ）や、コンタクトや、同類のもの）を格納する代わりに外部ユーザから成っているデータベース、を含むことができ、該外部ユーザは例えば、外部ユーザのアドレスや他の識別子をそのキーとする。外部ユーザからのサブスクリプションが入ってきた場合、それらはバディストア２４０に反して承認される。上記はＳＱＬ実装により実行されるか、もしくは択一的に、独自仕様のデータベースにより置き換えられる。
【００３０】
セッションマネージャ２４２は一般的に、ダイアログの過渡状態を格納する。一例を挙げれば、セッションマネージャ２４２は、記憶装置において、拡張性のある分散キャッシュ機構（ｓｃａｌａｂｌｅ  ｄｉｓｔｒｉｂｕｔｅｄ  ｃａｃｈｉｎｇ  ｍｅｃｈａｎｉｓｍ）を使用するのであるが、しかし別の実装も可能である。
【００３１】
第１のネットワークのバックエンド上で、他のさまざまのサーバからの追加的支援を含めることができる。例えばｒｂｕｍ／ｒｂｅｓ２１８は、リバースバディリスト（ｒｅｖｅｒｓｅ  ｂｕｄｄｙ  ｌｉｓｔｓ）において、外部のＩＤ（ｅｘｔｅｒｎａｌ  ｉｄ’ｓ）を格納し、また読み出すために、動作可能である。イベントサーバ（ＥＳ）２２０は、メッセージが適切にゲートウェイ２１６に、そしてそこからＳＩＰゲートウェイ２１４に（そして最終的には適切な外部ネットワーク、そして外部ユーザに）転送されるように、外部ドメインを決定することができる。
【００３２】
図３はある典型的ゲートウェイ３００の構成要素のブロック図を説明する；
３００は例えば、（図２で示されたＳＩＰゲートウェイ２１４のような）ＳＩＰ／ＳＩＭＰＬＥゲートウェイを含む。ＳＩＰ／ＳＩＭＰＬＥゲートウェイは、ネットワークの両側にある（例えば、外部ネットワークとプライマリネットワーク／バックエンドの間での）、他の構成要素／サーバによってのネットワークの入出力（Ｉ／Ｏ）を取り扱うために動作可能である、“接続マネージャ（Ｃｏｎｎｅｃｔｉｏｎ  Ｍａｎａｇｅｒ）”を含む。
前記ゲートウェイはまた、選択的なトランスポートレベルのセキュリティのために（例えば、暗号化、承認、及び同類のもの）動作可能であり、そして他の構成要素から、トランスポートレベルの詳細を抽出する。前記セキュリティの機構は、それが情報をやりとりしている構成要素の信頼レベルに依存した、Ｍｕｔｕａｌ  Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ  （ＭＴＬＳ）のための単なるＩＰフィルタリングとは異なる。一例を挙げれば、ネットワーク通信のいくつか、あるいは全てに対して、Ｉ／Ｏに基づいたより効率的な非同期のキュー（ｋｑｕｅｕｅ）が実装可能である。更に言えば、接続プールのサイズと動作は、設定パラメータを通して制御可能である。
【００３３】
一例を挙げれば、前記ゲートウェイはＳＩＰスタック３００を含み、該ＳＩＰスタックはオープンソースのＳＩＰスタックと、商用のＳＩＰスタックを含み、または独自仕様のＳＩＰスタックを含む。さらには、ＳＩＰ抽出層３２０は、現在使われているＳＩＰスタック３１０に対して前記ゲートウェイの実装の残りを不可知にするように、動作可能である。一般のＡＰＩやオブジェクトのセットは、この抽出を提供することができる。結果として、完全に異なった、または改良されたＳＩＰ実装を必要に応じて採用するのに、この構造はとても伝導性がある。
【００３４】
この例において、ＳＩＰエンドポイントプレゼンス、ダイアログマネージャ（ＳＩＰ  Ｅｎｄ  Ｐｏｉｎｔ  Ｐｒｅｓｅｎｃｅ，Ｄｉａｌｏｇ  Ｍａｎａｇｅｒ）３３０が更に含まれる。例えば、外部／移動先のクライアント（例えばＭＳＮクライアント）と通信したいと願っているプライマリネットワーククライアントに対して、この構成要素は論理的ＳＩＰ終エンドポイント（ｔｅｒｍｉｎａｔｉｏｎ  ｐｏｉｎｔ）（エンドポイント）を作成する。該終エンドポイントは、ネットワークの両側からの関心があるときはいつでも、オン・デマンドの基準で作成される。上記終エンドポイントのそれぞれに置かれたＳＩＰの  ＳＵＢＳＣＲＩＢＥ、ＩＮＶＩＴＥダイアログは、ダイアログマネージャによって探知され、そして管理される。以下のＳＩＰの機能は、プライマリネットワーククライアントに代わって、ＳＩＰエンドポイントプレゼンス、ダイアログマネージャ３３０によって取り扱うことができる：
ＳＵＢＳＣＲＩＢＥを、プライマリネットワーククライアントに代わって送信／受信する。
ＳＵＢＳＣＲＩＢＥダイアログ（入って来るもの、出て行くもの両方）を、プライマリネットワーククライアントに代わって探知し、管理する。
ＳＵＢＳＣＲＩＢＥの再表示（ｒｅｆｒｅｓｈ）を、プライマリネットワーククライアントに代わって送信し、処理する。
ＮＯＴＩＦＹを、プライマリネットワーククライアントに代わって送信／受信する。
プレゼンス情報データ形式（ＰＤＩＦ：  Ｐｒｅｓｅｎｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄａｔａ  Ｆｏｒｍａｔ）のプレゼンス情報を解析し、消化（ｄｉｇｅｓｔ）する。
プライマリネットワーククライアントのプレゼンスアラート（ｐｒｅｓｅｎｃｅ  ａｌｅｒｔｓ）を、ＰＤＩＦ形式に変換する。
ＩＮＶＩＴＥを、プライマリネットワーククライアントに代わって送信／受信する。
ＩＮＶＩＴＥダイアログを、プライマリネットワーククライアントに代わって探知し、管理する。
ＩＭを、プライマリネットワーククライアントに代わって送信／受信する。
タイピング通知（Ｔｙｐｉｎｇ  Ｎｏｔｉｆｉｃａｔｉｏｎ）を、プライマリネットワーククライアントに代わって送信／受信する。
ＵＮＳＵＢＳＣＲＩＢＥを、プライマリネットワーククライアントに代わって送信／受信する。
【００３５】
ＳＩＰエンドポイントプレゼンス、ダイアログマネージャ３３０という構成要素はさらに、自身の状態情報を保持することができ、そしてさまざまのＳＩＰダイアログをそれらに対応するプライマリネットワーククライアントの終エンドポイントにマッピングすることを手伝うためにテーブルを参照することができる。さらには、この構成要素は同一のプライマリネットワーククライアントに対して複数のプレゼンスポイント（ＭＰＯＰ：ｍｕｌｔｉｐｌｅ  ｐｏｉｎｔｓ  ｏｆ  ｐｒｅｓｅｎｃｅ）または複数の終エンドポイント（ｍｕｌｔｉｐｌｅ  ｔｅｒｍｉｎａｔｉｏｎ  ｐｏｉｎｔｓ）を保持するように、動作可能である。
【００３６】
一般的に、稼動しているゲートウェイマシンは２台以上あり（例えば、前記プライマリネットワークにおいて）、そして与えられた終エンドポイントはゲートウェイマシンのうちのただ１台における関連した状態を有するので、セッションマネージャ（例えば図４を参照）はさらに、ネットワークにおいてメッセージを適切なゲートウェイマシンに送ることに役立つし、逆もまた同様である。適切なロジックは、正式なダイアログの文脈中においてシステムの拡張性を落とすことなく、メッセージが処理されることを保証する。
【００３７】
さらには、この例において、前記ゲートウェイはＳＩＰ固有ブリッジ３４０を含む。前記ＳＩＰ固有ブリッジ３４０は一般に、ＳＩＰ形式の間にあるメッセージを固有のバックエンド形式（ｎａｔｉｖｅ  ｂａｃｋｅｎｄ  ｆｏｒｍａｔ）に（例えばネットワーク固有の形式に）変換するよう、そして同様に逆の変換を行うよう、動作する。例えばプライマリネットワークは、比較的速い集中型の状態ストレージ（ｓｔａｔｅ  ｓｔｏｒａｇｅ）を用いるサーバを含むことができるのであり、該状態ストレージは個々のマシンをステートレスにする。そのようなアーキテクチャは一般的に、ゲートウェイとプライマリネットワークサーバ間におけるシームレスなクラスター化／負荷の釣り合わせを可能とする。
前記ＳＩＰ固有ブリッジ３４０は、プライマリネットワークサーバからなるこのクラスタに対して、該プライマリネットワーク固有のプロトコルによって通信する。それはまた、個々のプライマリネットワーククライアントから外部ネットワーククライアントに向けられたメッセージを受信し、処理する。
【００３８】
図４から図２１は、１以上の外部ネットワーク／インスタントメッセージングサービスプロバイダと通信している第１のネットワークのバックエンド構成要素間での、さまざまの典型的な通信とイベントのフローを説明する。
【００３９】
図４は、外部ネットワークと通信するゲートウェイを含む、プライマリサービスプロバイダネットワークのバックエンドの全体的アーキテクチャを説明する。この例において、エッジ・プロキシ（ＥＰ）４１２は、接続プールと、ＳＩＰ／ＳＩＭＰＬＥメッセージの外部ネットワークへ、または外部ネットワークからの転送と、に加えて更に、アクセス制御と、プロビジョニングと、外部ネットワークへ、または外部ネットワークからのルーティングと、のために提供される。一般に、エッジ・プロキシ４１２は１以上のドメインと通信するように動作可能であり、構成されている。さらに、ＳＩＰゲートウェイ（ＳＧＷ：ＳＩＰ  Ｇａｔｅｗａｙ）４１４は外部ネットワークに対してのＳＩＰエンドポイントとしてプライマリネットワーククライアントをプロキシ（代理）するよう動作し、またプライマリネットワークのインスタントメッセージングリクエストをＳＩＰ／ＳＩＭＰＬＥメッセージにマップ（ｍａｐ）するよう、そしてその逆を行うよう動作する。ある例において、ＳＧＷ４１４はＳＩＰスタック（例えばオープンソースのＳＩＰスタックや、商用ＳＩＰスタック、または独自仕様のＳＩＰスタック）に依存し、そしてステートフル（ｓｔａｔｅｆｕｌ）である。ゲートウェイＥＳ（ＧＷＥＳ：Ｇａｔｅｗａｙ  ＥＳ）４１６はドメイン間（ｉｎｔｅｒ−ｄｏｍａｉｎ）ゲートウェイのリクエスト（主に、ＩＭやプレゼンス）を取り扱うよう動作し；ＳＩＰゲートウェイ４１４と１以上のプライマリネットワークバックエンドサーバを橋渡し（ｂｒｉｄｇｅ）する；ＧＷＥＳ４１６は、ある例においては、ステートレスであり、高い拡張性を有する。
【００４０】
前記アーキテクチャはさらに、プライマリネットワークのバックエンドサーバのためにＳＩＰダイアログのルーティング情報を格納する、セッションマネージャ（ＳＭ）４４２を含む。例えば、各々のレコードは、プライマリネットワーククライアントｉｄと、ゲートウェイｉｄと、ダイアログタイプ（ＩＭ、プレゼンス、その他）とをそのキーとし、対応するＳＩＰダイアログを保持する特定のＳＧＷサーバ４１４を指し示す、ＳＧＷキーを含む。セッションマネージャサーバはメモリキャッシュマネジメントシステム内にあり、データ分割やピア・レプリケーション（ｐｅｅｒ  ｒｅｐｌｉｃａｔｉｏｎ）をサポートする。
【００４１】
ゲートウェイデータベース（ＧＷＤＢ：ｇａｔｅｗａｙ  ＤＢ）４４０は、外部ユーザのために永続性情報を格納する（例えば、バディリストや他の情報）。ある例においては、永続性ストレージ（ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ）としてＭｙＳＱＬサーバが使われる。ある例においては、ＧＷＤＢ４４０はデータ分割とピア・レプリケーションをサポートするように構成されていて、しかしながら接続をプールする機能のような、ｓｈｍプロキシ（ｓｈｍｐｒｏｘｙ）を欠いている。
【００４２】
図４は、外部ネットワークとの通信のための典型的アーキテクチャの、ある実装を説明する；しかしながら、さまざまな他のアーキテクチャが可能である。例えば、さまざまな構成要素を削除して、そして／または  それらの機能性を他の構成要素と組み合わせることができる。例えば、ＧＷＥＳ４１６とＳＧＷ４１４の機能を実行するためのロジックを、単独のゲートウェイ機器は含むことができる。さらには、いくつかの例において、エッジ・プロキシ４１２を取り除くか、もしくはその機能性を他のマシンによって実行することができる。
【００４３】
図４を引き続き参照しつつ、図５ではプライマリネットワークへのユーザのログインを説明する。１．１においてユーザのログインがあると、イベントサーバ（ＥＳ：ｅｖｅｎｔ  ｓｅｒｖｅｒ）４２０（図４参照）は以下のことを実行する：各々の仲間（バディ）に対して、ＥＳ４２０は彼の／彼女のドメインを識別し、この情報をプレログインデータ（ｐｒｅｌｏｇｉｎ  ｄａｔａ）１．３中でクライアントに送信する。さらには、ログイン１．３があると、例えばリバースバディ（ｒｅｖｅｒｓｅ  ｂｕｄｄｉｅｓ）のような外部のユーザ／ウォッチャーに対して通知が送信される（例えば、ＥＳサーバ４２０からＧＷＥＳ４１６へ、ＳＧＷ４１４へ、そして外部ネットワークへ；２．１−２．２）。一例を挙げれば、ＥＳ４２０はユーザログインについてＲＢＥＳ（ＥＳ４００内部に含まれて入れもよい）に通知を行い、ＲＢＥＳはクライアントのリバースバディリスト（ｒｅｖｅｒｓｅ  ｂｕｄｄｙ  ｌｉｓｔ）上の外部ユーザ／ウォッチャーを、ドメイン情報を用いて識別し、そしてＲＢＥＳはＧＷＥＳ４１６に対して通知を送信する。ＧＷＥＳ４１６はＳＭ４４２からＳＧＷキーを参照し、外部ウォッチャーをしかるべくソートし、そしてＳＧＷ４１４に通知を送信する。ＳＧＷ４１４はメモリキャッシュにおいて外部ウォッチャーのダイアログを参照し、それからＳＩＰのＮＯＴＩＦＹリクエストを、ダイアログを通して、外部ネットワークに送信する。もしＳＧＷ４１４がある外部ウォッチャーに対してのダイアログを見つけられない場合、ＳＧＷ４１４は今後の通知を取りやめるために、サブスクライブ解除のリクエストをＧＷＥＳ４１６に返信する。
【００４４】
さらには、クライアントは外部の仲間（バディ）に関するプレゼンス情報のサブスクライブを行う（例えば、ＥＳ４２０からＧＷＥＳ４１６へ、ＳＧＷ４１４へ、そして外部ネットワークへ；３．１−３．５）。一例を挙げれば、ＥＳ４２０はプライマリサービスプロバイダユーザのバディリスト上の外部の仲間（バディ）を、連携ドメイン情報を用いて識別し、ＧＷＥＳ４１６に対してサブスクライブのリクエストを送信する。ＧＷＥＳ４１６はサブスクライブリクエストをＳＧＷ４１４に送信し、そしてそれぞれの仲間（バディ）に対して、ＳＧＷ４１４はサブスクリプションのダイアログが既に存在するかどうかをチェックする。もし存在すれば、ＳＧＷ４１４はサブスクリプションを再表示するよう、外部ネットワークにリクエストを送信する；もし存在しなければ、ＳＧＷ４１４は外部ネットワークの仲間（バディ）に対しての新しいダイアログを作成し、ＳＩＰのＳＵＢＳＣＲＩＢＥリクエストを外部ネットワークに送信する。ＳＧＷ４１４がｏｋまたはｅｒｒｏｒのレスポンスを外部ネットワークから得ると、ＳＧＷ４１４は対応するキャッシュしていたダイアログを更新するか削除し、それから前記レスポンスをＧＷＥＳ４１６に通す。
レスポンスが“ｏｋ”であった場合、ＧＷＥＳ４１６はＳＧＷキーをＳＭ４４２へ保存する。禁じられた（ｆｏｒｂｉｄｄｅｎ）ｅｒｒｏｒをもってサブスクリプションが拒絶された場合、そのことは、もはやその外部ユーザが有効ではないことを意味する。ＧＷＥＳ４１６はＵＤＢ４２２とＧＷＤＢ４４０から前記外部ユーザを取り除き、プライマリネットワーククライアントに通知を送信することができる。
【００４５】
ある例においては、無事にサブスクライブされた外部の仲間（バディ）に関する最初のプレゼンス通知が発行されることができ、そして該プレゼンス通知は、クライアント（例えば、外部のネットワークからＳＧＷ４１４へ、ＧＷＥＳ４１６へ、そしてプライマリネットワーククライアントへ；４．１−４．３）がフィルタ除去できるオフライン通知（ｏｆｆｌｉｎｅ  ｎｏｔｉｆｉｃａｔｉｏｎ  ）を含むことができる。例えば、外部のネットワークはＳＧＷ４１４へ通知を送信する。もし対応するダイアログが見つからない場合、ＳＧＷ４１４は前記通知を落とし（ｄｒｏｐ）；そうでなければ前記通知をＧＷＥＳ４１６へ通す。ＧＷＥＳ４１６は前記通知をプライマリ／固有のフォーマットもしくはプロトコルへ変換し、そしてＧＷＥＳ４１６は目標の接続情報をＵＭ４２０から得て、前記通知をプライマリネットワーククライアントへ届ける。
【００４６】
図６は外部ユーザに関しての典型的ログイン過程を説明する。この例において、外部ユーザによるログインがあると、通知がプライマリネットワークのウォッチャーへ送信される（例えば、外部ネットワークからＳＧＷ４１４へ、ＧＷＥＳ４１６へ、単数または複数のプライマリネットワーククライアントへと送られる；１．１−１．３）。具体的に言うと、外部ネットワークはオンライン通知（ｏｎｌｉｎｅ  ｎｏｔｉｆｉｃａｔｉｏｎ）を、各々のプライマリネットワークのウォッチャーに対するＳＧＷ４１４へ、送信する。ＳＧＷ４１４は前記プライマリネットワークのウォッチャーついての対応するダイアログを参照し、そしてダイアログが見つからない場合は、ＳＧＷ４１４はｅｒｒｏｒレスポンスを外部ネットワークに対して送信するであろうし、そして前記通知は届けられないであろう。もしダイアログが見つかれば、ＳＧＷ４１４は前記通知をＧＷＥＳ４１６に転送し、そこにおいてＧＷＥＳ４１６は前記通知をフィルター（ｆｉｌｔｅｒ）し、変換し、そしてプライマリネットワークのウォッチャーに届ける。
【００４７】
外部ユーザはプライマリネットワーククライアントの仲間（バディ）のプレゼンス状態をウォッチするため、サブスクライブすることができる（例えば、外部ネットワークからＳＧＷ４１４へ、ＧＷＥＳ４１６へと流れる：２．１−２．５）。具体的に言うと、外部ネットワークは各々のプライマリネットワークの仲間（バディ）に対するサブスクライブのリクエストを送信する。ＳＧＷ４１４はサブスクリプションのためにダイアログを作成し、サブスクライブリクエストをＧＷＥＳ４１６へ送信する。ＧＷＥＳ４１６はＧＷＤＢ４４０を参照し、前記プライマリネットワーククライアントが前記外部ユーザのバディリスト上にあるのかどうかをチェックし、なかった場合には、前記リクエストをバディ追加（Ａｄｄ  Ｂｕｄｄｙ）のリクエストと解釈する。もし、前記プライマリネットワークライアントが前記バディリストに存在はするものの承認保留中（ｐｅｎｄｉｎｇ  ｆｏｒ  ａｐｐｒｏｖａｌ）であったならば、ＧＷＥＳ４１６はオフライン通知が付随するｏｋレスポンスをＳＧＷ４１４に送信する。もし前記プライマリネットワーククライアントがアクティブな仲間（バディ）であったなら、ＧＷＥＳ４１６は、前記外部ユーザを前記プライマリネットワーククライアントのリバースバディリストに加えるためのリクエストをＲＢＥＳ４１８に送信し、そしてそれから、プライマリネットワーククライアントの最初のプレゼンス状態をＵＭ４２０から読み出し、必要ならば該状態を変換し、そしてＳＧＷ４１４に送信する。ＳＧＷ４１４がＧＷＥＳ４１６からｏｋレスポンスを得た場合、ＳＧＷ４１４はキャッシュ中のダイアログを更新し、最初のプレゼンス状態の通知に加えて前記レスポンスも、外部ネットワークへ通す。ＳＧＷ４１４がＧＷＥＳ４１６からｅｒｒｏｒレスポンスを得た場合、ＳＧＷ４１４はキャッシュ内のダイアログを削除し、ｅｒｒｏｒレスポンスを外部ネットワークへ送信する。
【００４８】
いくつかの例において、そしていくつかのネットワークバックエンドに対して、一人の外部ユーザが複数の場所からログインする場合には、該ユーザは複数のサブスクライブをプライマリネットワークに対して送信するであろう。そのような例においてＳＧＷ４１４は、外部ユーザｉｄをキーとする複数のダイアログを、そのメモリキャッシュに作成し、そして保存することができる。後にプライマリネットワーククライアントの仲間（バディ）が前記外部ユーザに対してプレゼンス通知を送信する場合、該通知はＳＧＷ４１４に保存された複数のダイアログに対応した、各々の外部の場所へ届けられるであろう。
【００４９】
図７と図８はプライマリユーザと外部ユーザそれぞれに対しての典型的ログオフ過程を説明する。プライマリネットワーククライアントがログオフすると、オフライン通知が外部ウォッチャーに対して送信される（例えばＥＳ４１８／ＲＢＥＳからＧＷＥＳ４１６へ、ＳＧＷ４１４へ、そして外部ネットワークへ；１．１−１．３）。さらには、外部の仲間（バディ）のプレゼンスに関するサブスクライブ解除過程が実行される（例えばＥＳ４１８からＧＷＥＳ４１６へ；２．１−２．２）。例えば、ＧＷＥＳ４１６はＳＭ４４２からＳＧＷキーを参照し、リクエストを対応するＳＧＷｓ４１４へ通す。そして、ＳＧＷルートレコードがＳＭ４４２から取り除かれる。ＳＧＷｓはサブスクライブ解除リクエストを外部ネットワークに送信し、メモリキャッシュから対応するダイアログを削除する。
【００５０】
外部ユーザがログオフすると、オフライン通知がプライマリネットワーククライアントのウォッチャーに対して送信される（例えば外部ネットワークからＳＧＷ４１４へ、ＧＷＥＳ４１６へ、そしてプライマリネットワーククライアントへ；１．１−１．３）。さらには、プライマリネットワーククライアントの仲間（バディ）のプレゼンスに関するサブスクライブ解除過程が実行される（例えば外部ネットワークからＳＧＷ４１４へ、ＧＷＥＳ４１６へ、そしてＲＢＥＳ４１８へ；２．１−２．２）。ＳＧＷ４１４は対応するダイアログを削除し、ＧＷＥＳ４１６に対してサブスクライブ解除リクエストを送信する。ＧＷＥＳ４１６はＳＭ４４２からＳＧＷ４１４ルート情報（ｒｏｕｔｅ）を取り除き、そしてプライマリネットワーククライアントの仲間（バディ）の、ウォッチャーリスト（すなわちリバースバディリスト）から前記外部ユーザを取り除く。
【００５１】
図９と図１０は、プライマリネットワーククライアントと外部ユーザそれぞれが、各々のプレゼンス状態を変化させること、に関連する過程を説明する。ある例において、プライマリネットワーククライアントはそのプレゼンスを変化させ、それによりプレゼンス通知が発行される。ＲＢＥＳ４１８は、どのリバースバディが外部ネットワークからのものであるかを連携ドメイン情報を用いて識別し、ＧＷＥＳ４１６に対して通知を送信する。
プレゼンス通知の変化はそれから、外部ウォッチャーのために外部ネットワークへ送信される。ある例において、ＧＷＥＳ４１６は、プライマリネットワーククライアントの状態を適切な外部の状態にフィルターするか変換する。ＧＷＥＳ４１６はＳＭ４４２からＳＧＷキーを参照し、ＳＧＷ４１４に対して通知を送信する。ＳＧＷ４１４は通知を、各々の存在するダイアログに対応する外部ネットワークへ送信する；ダイアログが見つからない場合、ＳＧＷ４１４は今後の通知を取りやめるために、サブスクライブ解除のリクエストをＧＷＥＳ４１６に返信する。ある例においては、プライマリネットワーククライアントの状態と外部の状態の一致が得られない場合には、前記通知はＧＷＥＳ４１６によって、フィルタ除去される（落とされる）。
【００５２】
もし外部ユーザがプレゼンス状態を変化させると、ＳＧＷ４１４は対応するダイアログを探索する（そしてダイアログが見つからない場合には、外部ネットワークに対してｅｒｒｏｒレスポンスを送信することができる。）ＳＧＷ４１４は通知をＧＷＥＳ４１６へ通し、そしてＧＷＥＳ４１６はプライマリネットワーククライアントのために、該プレゼンス通知を対応する状態（ｍａｔｃｈｉｎｇ  ｓｔａｔｅ）に変換する。プライマリネットワークは必要ならば、対応しない状態（ｎｏｎ−ｍａｔｃｈｉｎｇ  ｓｔａｔｅ）を、カスタムメッセージ（ｃｕｓｔｏｍ  ｍｅｓｓａｇｅ）を用いて固有の状態へと変換することができる。ＧＷＥＳ４１６は目標の接続情報をＵＭ４２０から得て、前記通知を適切なプライマリネットワーククライアントへ届ける。
【００５３】
図１１と図１２は、異なるプロバイダのユーザからのプレゼンスサブスクリプションを打ち切る（ｔｅｒｍｉｎａｔｅ）ユーザに関しての典型的処理を説明する。例えば、図１１においてプライマリネットワーククライアントは外部ユーザからのプレゼンスサブスクライブを打ち切る（スパム（ｓｐａｍ）抑制や同類のもののために望ましいかもしれない）。打ち切るための前記クライアントのリクエストはＧＷＥＳ４１６によって取り扱われ、ＧＷＥＳ４１６は外部ユーザのサブスクライブを打ち切るためのリクエストを行う。ＧＷＥＳ４１６は外部ユーザのバディリストをＧＷＤＢ４４０から得て、そしてＧＷＥＳ４１６は、各々のプライマリネットワーククライアントの仲間（バディ）についてのリバースバディリストから外部ユーザを取り除くために、ＲＢＥＳにリクエストを送信する。
【００５４】
打ち切りのリクエストはそれから外部ユーザへ送信される（例えば、ＧＷＥＳ４１６からＳＧＷ４１４へ、そして外部ユーザへ）。ある例において、ＧＷＥＳ４１６はＳＭ４４２からＳＧＷキーを参照し、ＳＧＷ４１４に対して打ち切りのリクエストを送信する。ＧＷＥＳ４１６はＳＭ４４２からＳＧＷルートレコードを取り除き、ＳＧＷ４１４はそのメモリキャッシュにおけるダイアログを片付け、そして外部ネットワークに対して打ち切りのリクエストを送信する。前記外部ネットワークはオフライン通知を外部ユーザへ送信し、そして前記外部ネットワークはそのサブスクリプションレコードを適切に更新する。ＧＷＥＳ４１６はその打ち切りログ（ｔｅｒｍｉｎａｔｉｏｎ  ｌｏｇ）に、前記リクエストを記録する。
【００５５】
さらには、図１２に示すように、外部ネットワークが固有のユーザからのプレゼンスサブスクライブを打ち切ることができる。一例を挙げると、ＳＧＷ４１４はプライマリネットワーククライアントにおける外部ユーザのプレゼンスに対してのサブスクライブを打ち切るためのリクエストを受信する。ＳＧＷ４１４はそのメモリキャッシュにおけるダイアログを片付け、そしてＧＷＥＳ４１６に対して打ち切りのリクエストを送信する。ＧＷＥＳ４１６はＳＭ４４２からルートレコードを取り除き、そしてＧＷＥＳ４１６はプライマリネットワーククライアントに対してオフライン通知を送信する。もし外部ユーザが既に前記プライマリネットワーククライアントに対してオフラインに見えている場合、前記プライマリネットワーククライアントは前記通知をフィルターするかどうか決めることができる。
【００５６】
図１３と図１４は、外部ユーザの仲間（バディ）を追加する固有のユーザに関しての典型的処理を説明する。最初の例である図１３において、プライマリネットワーククライアントは外部ユーザを仲間（バディ）として追加するようリクエストする（例えば、そのバディリストへの追加等）。外部ネットワークより、最初のオフライン通知、２．１−２．３（前記クライアントによるバディ追加リクエストを誘因としたサブスクライブへの確認として）があり、その後に、オンライン通知、３．１−３．３が続く（この過程は、前記外部ユーザがプライマリネットワーククライアントによるバディ追加リクエストに同意したと仮定している）。
【００５７】
詳細には、プライマリネットワーククライアントが外部ユーザを追加するようリクエストするとき、ＥＳ４１８は該外部ユーザを、ＵＤＢとＵＭ４２０とにおけるプライマリネットワーククライアントのバディリストに追加し、それから、新しい仲間（バディ）が外部ユーザであるので該リクエストをＧＷＥＳ４１６に通す。ＧＷＥＳ４１６はそれから、外部ユーザのプレゼンスについてサブスクライブするために（プライマリネットワーククライアントが外部ユーザを仲間（バディ）として追加するようリクエストしている場合においてである）、ＳＧＷ４１４に対して、それから外部ネットワークに対してその情報を通す。ＳＧＷ４１４が外部ネットワークからｏｋレスポンスを得た場合、ＳＧＷ４１４はメモリキャッシュにダイアログを保存し、該レスポンスをＧＷＥＳ４１６へ通す。ＧＷＥＳ４１６はＳＭ４４２にルートレコードを追加し、そして前記プライマリネットワーククライアントに対してｏｋレスポンスを送信する。もし、ＳＧＷ４１４が、外部ｉｄが無効であることを示すｅｒｒｏｒレスポンスを外部ネットワークより得た場合、ＳＧＷ４１４は対応するダイアログを削除し、ＧＷＥＳ４１６に対してｅｒｒｏｒレスポンスを送信する。ＧＷＥＳ４１６はＵＤＢとＵＭ４２０とにおける前記プライマリネットワーククライアントのバディリストから前記外部ユーザを取り除き、そして前記プライマリネットワーククライアントに対してｅｒｒｏｒレスポンスを送信する。
【００５８】
外部ネットワークより、最初にオフライン通知が、送信されたサブスクライブリクエストへの確認として送信される（例えば、ＳＧＷ４１４からＧＷＥＳ４１６へ、そして前記外部ユーザがオフラインであった前記プライマリネットワーククライアントへ）。前記プライマリネットワーククライアントは、前記最初のオフライン通知を落とすどうか決めることができる。最終的に、外部ネットワークからの、ユーザがオンラインであるというオンライン通知（前記外部ユーザが前記バディ追加リクエストに同意したと仮定している）。
【００５９】
一例を挙げると、前記外部ネットワークからの前記サブスクリプションリクエストに対するｏｋレスポンスを得た直後に、前記外部ユーザがプライマリネットワーククライアントのバディリストへ追加される。この例での特定の構成においては、前記外部ユーザが前記追加のリクエストをいつ容認／拒否したかを検出する必要がないために、保留状態（ｐｅｎｄｉｎｇ  ｓｔａｔｅ）は存在しない。
【００６０】
図１４は前記外部ユーザが追加を拒否する場合の例を説明する。その処理／イベントフローは図１３のそれにおいてイベントの最後の一組３．１−３．３が欠けている場合とよく似ている（例えば、外部ユーザが追加を容認することが欠けている）。
【００６１】
図１５と図１６は、プライマリネットワーククライアントを、仲間（バディ）として外部ユーザに対して追加するための典型的処理を説明する。一般に、前記外部ユーザは前記プライマリネットワーククライアントを仲間（バディ）として追加するようリクエストし、そして前記プライマリネットワーククライアントは該追加のリクエストに同意する。
【００６２】
より詳細には、前記外部ユーザは前記プライマリネットワーククライアントを仲間（バディ）として追加することを、前記プライマリネットワーククライアントのプレゼンスに対してサブスクライブすることによりリクエストする（１．１）。ＳＧＷ４１４はサブスクライブリクエストをＧＷＥＳ４１６に送信し、ＧＷＥＳ４１６はＧＷＤＢ４４０を参照し、前記プライマリネットワーククライアントは前記外部ユーザのバディリスト上にないことから、このリクエストが仲間（バディ）を追加することを意味含んでいると検出する。ＧＷＥＳ４１６はＵＤＢ４２０を参照し、前記プライマリネットワーククライアントのｉｄが有効かどうかチェックする。もし有効でなければ、ＳＧＷ４１４を通して外部ネットワークにｅｒｒｏｒレスポンスを送信する。もし前記プライマリネットワークｉｄが有効であれば、ＧＷＥＳ４１６はＳＧＷ４１４に対してｏｋレスポンスを送信する。ＳＧＷ４１４はキャッシュにダイアログを作成し、ｏｋレスポンスを前記外部ネットワークに通す。一例を挙げると、前記外部ユーザは、前記プライマリネットワーククライアントがオフラインであると通知される（例えば、ＧＷＥＳ４１６からＳＧＷ４１４へ、そして外部ネットワークへ）。ＧＷＥＳ４１６はＳＭ４４２にルートレコードを追加し、そしてＧＷＥＳ４１６はＧＷＤＢ４４０において前記外部ユーザのバディリストに前記プライマリネットワーククライアントを、保留状態で追加する。最終的に（例えばＧＷＥＳ４１６を通してＣＳ４２０へ、そして前記プライマリネットワーククライアントへ）、前記プライマリネットワーククライアントに対して、同意することが要求される。
【００６３】
前記プライマリネットワーククライアントが追加のリクエストに同意した場合、ＥＳ４１８はバディ追加同意リクエスト（ａｄｄ  ｂｕｄｄｙ  ａｐｐｒｏｖａｌ  ｒｅｑｕｅｓｔ）をＧＷＥＳ４１６に送信する。ＧＷＥＳ４１６はＧＷＤＢ４４０において、前記プライマリネットワーククライアントの仲間（バディ）の状態を、保留からアクティブに変更する。ＧＷＥＳ４１６は、外部ユーザを前記プライマリネットワーククライアントのリバースバディリストに追加するために、ＲＢＥＳ４１８に対して更新リクエストを送信する。ＧＷＥＳ４１６はＵＭ４２０からプライマリネットワーククライアントのオンライン状態を得て、それを外部の状態に変換する。前記プライマリネットワーククライアントのオンラインプレゼンス通知は、前記外部ユーザに送信される（例えば、ＧＷＥＳ４１６を通してＳＧＷ４１４に、そして前記外部ネットワークとユーザに）。
【００６４】
ＧＷＤＢ４４０において、各々のバディレコードはある状態（例えば、アクティブ、保留、拒否された）と、タイムスタンプを含む。前記状態は、例えばバディ追加フローを管理すること等のさまざまな目的のために使用でき、前記タイムスタンプは、プライマリネットワーククライアントを外部ネットワークからの過剰なＳＵＢＳＣＲＩＢＥより保護するために使用でき、そしてまたごみ収集（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）のためにも使用できる。
【００６５】
図１５は、前記プライマリネットワーククライアントが追加リクエストを拒否する場合の例を説明する。その処理／イベントフローは図１４のそれにおいてイベントの最後の一組２．２−２．４が欠けている場合とよく似ている。さらに、イベント２．１は、ＧＷＤＢ４４０における前記外部ユーザのバディリスト上での前記プライマリネットワーククライアントの状態を“保留”から“拒否された”に変更する。いくつかの例においては、前記外部ネットワークは前記外部ユーザに拒否のイベントを通知しないであろう。しかしながら前記外部ユーザがログインしなおす度の、毎回のサブスクライブリクエストを避けるために、前記プライマリネットワークは前記拒否されたリクエストに関連して拒否された状態を維持することができる。拒否された状態のバディレコードは、一定時間間隔の後にごみとして収集されることができる。
【００６６】
図１７と図１８は、外部ネットワークサービスプロバイダからの仲間（バディ）を削除するための典型的処理を説明する。図１７において、プライマリネットワーククライアントは外部の仲間（バディ）を削除する。この例において、ＧＷＥＳ４１６は前記外部のユーザが前記プライマリネットワーククライアントの仲間（バディ）であることを認証し、そしてＧＷＥＳ４１６はＵＤＢとＵＭ４２０における前記プライマリネットワーククライアントのバディリストから前記外部ユーザを取り除く。前記プライマリネットワーククライアントにはそれから、前記削除のリクエストへのレスポンスが通知される（例えばＧＷＥＳ４１６からＣＳ４２０へ、そして前記プライマリネットワーククライアントへ、ｏｋやｅｒｒｏｒ等が通知される）。さらには、ＧＷＥＳ４１６は、前記外部ユーザのプレゼンスをサブスクライブ解除し、そしてダイアログとルートレコードを片付けるため、ＳＧＷ４１４と（そして外部ネットワークと）通信する。
【００６７】
図１８においては、バディリストからプライマリネットワーククライアントを削除する、外部ユーザが示されている。この例において、前記外部ユーザは前記プライマリネットワーククライアントのプレゼンスをサブスクライブ解除する。ＳＧＷ４１４はダイアログを片付け、そしてＳＧＷ４１４はＧＷＥＳ４１６に対してサブスクライブ解除のリクエストを送信する。ＧＷＥＳ４１６はＳＧＷ４１４へのルートをＳＭ４４２から取り除く。さらに、ＧＷＥＳ４１６は、プライマリネットワーククライアントのリバースバディリストから前記外部ユーザを取り除く。
【００６８】
図１９はプライマリネットワーククライアントと外部ユーザの間でＩＭセッションを開始するための典型的過程を説明する。この例において、前記プライマリネットワーククライアントは、外部ユーザとのＩＭセッションを始めることをリクエストするためにプライマリネットワーククライアントを使って（例えば、プライマリネットワーククライアントからのリクエストがＥＳ４１８からＧＷＥＳ４１６へ通信される）、ＩＭセッションを開始する。ＧＷＥＳ４１６は、その新しいセッションを認証する。一例を挙げると、システムは前記プライマリネットワーククライアントがＩＭベースのセッションをサポートしていないのかどうかをチェックし、もしそうであるなら、クライアントにｅｒｒｏｒ返答を送信し、そうでなければＳＧＷ４１４に対してＩＭセッション開始のリクエストを送信する。もしＩＭセッションのダイアログが既に存在するならば、ＧＷＥＳ４１６にｏｋの返答をし；そうでなければ、外部ネットワークに対してＳＩＰのＩＮＶＩＴＥリクエストを送信する。
【００６９】
ＳＧＷ４１４は前記外部ネットワークからのレスポンスを得て、もし該レスポンスがｏｋならば、セッションダイアログはキャッシュに保存され、そうでない場合にはダイアログは削除される。ＳＧＷ４１４はさらに、レスポンスをＧＷＥＳ４１６へ送信する。ＧＷＥＳ４１６はＳＧＷ４１４からレスポンスを得る；もしレスポンスがｏｋならば、ＳＧＷ４１４ルートレコードをＳＭに保存し、そして該レスポンスをプライマリネットワーククライアントに通す。この時点で、前記プライマリネットワーククライアントはＩＭ通信を送ることができる。
【００７０】
プライマリネットワーククライアントが、ＩＭベースのセッションをサポートしないクライアントを使ってＩＭセッションを開始する例においての過程は、以下の通りである。
前記プライマリネットワーククライアントは、ＥＳ４１８に対して最初のＩＭを送信する。ＥＳ４１８は外部ユーザとしての受信者を識別し（連携ドメイン情報や同類のものを使って）、リクエストをＧＷＥＳ４１６へ転送する。ＧＷＥＳ４１６はＳＭ４４２を参照し、そして前記の送信者と受信者に対してのＩＭセッションが未だ存在しないと決定し、それゆえ新しいセッションの認証へと続行する（例えば、このケースにおいてはＹＰＣの未成年チェックなど）。もし認証に失敗すると、前記プライマリネットワーククライアントに対してｅｒｒｏｒが送信され、そうでなければ最初のＩＭがＳＧＷ４１４に送信される。ＳＧＷ４１４はキャッシュを参照して未だセッションが存在しないことを発見し、それから前記ＩＭをキャッシュに格納しＳＩＰのＩＮＶＩＴＥリクエストを外部ユーザに送信する。ＳＧＷ４１４は外部ユーザからのレスポンスを得る；セッションが容認された場合には、ＳＧＷ４１４はキャッシュ中のダイアログを更新し、そしてＩＭを外部に流し出すのであり、もしセッションが拒絶された場合には、ＳＧＷ４１４は最初のダイアログをキャッシュから削除し、キャッシュされたＩＭを落とし、そしてＧＷＥＳ４１６に対してレスポンスを送信する。ＧＷＥＳ４１６はＳＧＷ４１４から、前記セッションが容認されたかどうかのレスポンスを得、そしてＳＧＷ４１４はＳＭ４４２においてルートを保存する。
【００７１】
図１９においてはまた、外部ユーザがプライマリネットワーククライアントとのＩＭセッションを開始する場合の例が示されている。外部ネットワークはＳＧＷ４１４に対して、ＳＩＰのＩＮＶＩＴＥを送信する。もし、その送信者と受信者についてのＩＭダイアログが既に存在する場合は（例えば、マルチで（ｍｕｌｔｉｐｌｅ）外部ネットワーククライアントが実行されている場合）、ＳＧＷ４１４は過去のセッションを終了するために外部ユーザに対してＳＩＰのＢＹＥを送信し、それからキャッシュに新しいセッションのダイアログを保存する。ＳＧＷ４１４はＧＷＥＳ４１６に対してＩＭ開始のリクエストを送信し、そしてＧＷＥＳ４１６は前記新しいセッションを認証する。例えば、ＧＷＥＳ４１６はプライマリネットワーククライアントのｉｄが有効かどうかチェックし、ＹＰＣ制限に関してチェックを行い、そしてプライマリネットワーククライアントの（受信者の）無視リスト（ｉｇｎｏｒｅ  ｌｉｓｔ）をチェックする。認証がｏｋならば、ＧＷＥＳはＳＭにＳＧＷキーを保存し、ＳＧＷ４１４に対してｏｋの返答をする；そうでなければ、ＳＧＷ４１４に対してｅｒｒｏｒを送信する。ＳＧＷ４１４はＧＷＥＳ４１６からのレスポンスをチェックし、それに応じて最初のダイアログを更新するか削除する。ＳＧＷ４１４はそれから、外部ネットワークに対してｏｋまたはｅｒｒｏｒのレスポンスを送信する。
【００７２】
図２０は、プライマリネットワーククライアントと外部ユーザとの間でのタイピング通知についての典型的イベントフローを説明する。ＩＭセッションが確立された後には、ＩＭとタイピング通知のリクエストが交換され得る。プライマリネットワークより外部ネットワークへと来るリクエストに対しては、ＧＷＥＳ４１６がＳＭからＳＧＷキーを参照し、それから対応するＳＧＷ４１４サーバに対してリクエストを送信し、該ＳＧＷ４１４サーバは該リクエストを外部ネットワークへ転送する。外部ネットワークよりプライマリネットワークへと来るリクエストに対しては、ＳＧＷ４１４がキャッシュにおいて対応するダイアログを参照する；もしダイアログが見つからない場合、該リクエストは落とされるであろうし；そうでなければ、該リクエストはＧＷＥＳ４１６に対して送信されるであろう（ＧＷＥＳ４１６はそれから、該リクエストを適切なプライマリネットワーククライアントへ届ける）。
【００７３】
図２１は、プライマリネットワークと外部ユーザとの間でのＩＭセッションの終了についてのイベントフローを説明する。プライマリネットワーククライアントがＩＭセッションを打ち切る場合、打ち切りのリクエストがＥＳ４１８を通してＧＷＥＳ４１６へ、ＩＭセッションを終了させるために伝播される。ＧＷＥＳ４１６がＳＭ４４２からＳＧＷキーを参照し、ＳＧＷ４１４に対して前記リクエストを送信し、そしてＳＭ４４２からＳＧＷルートレコードを削除する。ＳＧＷ４１４はキャッシュからダイアログを削除し、外部ユーザに対してＳＩＰのＢＹＥを、セッションを終了させるために送信する。
【００７４】
外部ユーザがＩＭセッションを終了させる場合、該外部ユーザはＳＧＷ４１４に対してＳＩＰのＢＹＥを送信する。ＳＧＷ４１４はキャッシュからダイアログを削除し、ＧＷＥＳ４１６に対してＩＭセッション終了のリクエストを送信する。ＧＷＥＳ４１６はＳＭにおけるＳＧＷルートレコードを削除する。さらに、ＧＷＥＳ４１６はプライマリネットワーククライアントに対して、ＩＭセッション終了のリクエストを送信することができる。
【００７５】
図２２は、本発明のさまざまの態様のための処理機能を実施するために採用されうる、典型的なコンピューティング・システム６００を説明する（例えば、ゲートウェイサーバやマシンとして）。当業者はまた、他のコンピュータ・システムやアーキテクチャを用いて本発明を実施する方法にも気付くであろう。コンピューティング・システム６００は、与えられた応用または環境に対して望ましいかもしくは適切となるように、例えばデスクトップ、大型汎用コンピュータ（メインフレーム）、サーバ、クライアント、または任意の他の種類の特定用途向けまたは汎用コンピュータ機器を表すことができる。コンピューティング・システム６００は、例えばプロセッサ６０４のような１以上のプロセッサを含むことができる。プロセッサ６０４は、汎用もしくは特定用途の処理エンジン（例えば、マイクロプロセッサや、マイクロコントローラなど）、または他の制御ロジックを使って実装することができる。この例においてプロセッサ６０４は、バス６０２、または他の通信媒体に接続されている。
【００７６】
コンピューティング・システム６００はまた、情報と、プロセッサ６０４により実行される命令を格納するためにメインメモリ６０８（好ましくはランダム・アクセス・メモリ（ＲＡＭ）もしくは他の動的メモリ）を含むことができる。メインメモリ６０８はまた、プロセッサ６０４により実行される命令の実行途中における一時的変数や他の中間情報を格納するために用いることもできる。コンピューティング・システム６００は同じく、静的情報やプロセッサ６０４のための命令を格納するために、リード・オンリー・メモリ（ＲＯＭ）もしくは他の、バス６０２に連結された静的記憶装置を含むことができる。
【００７７】
コンピューティング・システム６００はまた、例えばメディアドライブ６１２とリムーバブル記憶装置インターフェース６２０を含む記憶装置６１０を、含むことができる。前記メディアドライブ６１２は、固定もしくはリムーバブルな記憶メディアをサポートするドライブもしくは他の機構（例えばハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、ＣＤまたはＤＶＤドライブ（ＲまたはＲＷ）、もしくは他の、リムーバブルな、もしくは固定のメディアドライブなど）を含むことができる。記憶メディア６１８は、例えば、ハードディスク、フロッピー（登録商標）ディスク、磁気テープ、光ディスク、ＣＤまたはＤＶＤ、または他の固定もしくはリムーバブルな、メディアドライブ６１４によって読み書きされるメディアを含むことができる。これらの例が説明するように、記憶メディア６１８は、特定のコンピュータソフトウェアやデータを記憶した、コンピュータ読み取り可能な記憶メディアを含むことができる。
【００７８】
代替的実施例において、記憶装置６１０は、コンピュータプログラム、もしくは他の命令、またはデータをコンピューティング・システム６００に読み込ませることを可能とするための、別の類似手段を含むことができる。そのような手段は、例えばプログラムカートリッジとカートリッジインターフェースや、リムーバブルメモリ（例えば、フラッシュメモリまたは他のリムーバブルなメモリモジュール）とメモリスロットや、そして他の、ソフトウェアとデータがリムーバブル記憶ユニット６１８からコンピューティング・システム６００へ転送されることを可能とする、リムーバブル記憶ユニット６２２とインターフェース６２０等の、リムーバブル記憶ユニット６２２とインターフェース６２０を含むことができる。
【００７９】
コンピューティング・システム６００はまた、通信インターフェース６２４を含むことができる。通信インターフェース６２４は、ソフトウェアとデータがコンピューティング・システム６００と外部機器との間で転送されることを可能とするために、使用されうる。通信インターフェース６２４の例としては、モデム、ネットワークインターフェース（イーサネット（登録商標）、もしくは他のＮＩＣカード等）、通信ポート（例えばＵＳＢポートのような）、ＰＣＭＣＩＡスロット及びカード等を含むことができる。通信インターフェース６２４を通して転送されるソフトウェアとデータは、電子的、電磁気的、光学的、もしくは他の、通信インターフェース６２４により受信可能な信号の形をとる。これらの信号はチャンネル６２８を通して、通信インターフェース６２４に提供される。このチャンネル６２８は、無線媒体、ワイヤーまたはケーブル、光ファイバー、もしくは他の通信媒体を用いて信号を運ぶことができ、実装されることができる。いくつかのチャンネルの例として、電話線、携帯電話リンク、ラジオ周波数（ＲＦ）リンク、ネットワークインターフェース、ローカルエリア・ネットワークまたは広域ネットワーク、そして他の通信チャンネルが含まれる。
【００８０】
本文書において、“コンピュータプログラム製品”（ｃｏｍｐｕｔｅｒ  ｐｒｏｇｒａｍ  ｐｒｏｄｕｃｔ）と“コンピュータ読み取り可能な媒体”（ｃｏｍｐｕｔｅｒ−  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）という用語は一般的に、例えばメモリ６０８、記憶メディア６１８、記憶ユニット６２２、もしくはチャンネル６２８における単数または複数の信号、のようなメディアに言及するために使用されうる。これらの、そして他の形のコンピュータ読み取り可能な媒体は、実行されるべき、プロセッサ６０４への、１以上の命令からなる１以上の命令の配列を提供することに関係しうる。そのような命令は、一般的に“コンピュータプログラムコード”（ｃｏｍｐｕｔｅｒ  ｐｒｏｇｒａｍ  ｃｏｄｅ）と呼ばれるのであり（コンピュータプログラムの形式によって、もしくは他のグループ分けによって分類されうる）、実行されることで、コンピューティング・システム６００が本発明の実施例における特徴を発揮すること、または機能を果たすことを可能とする。
【００８１】
ソフトウェアを用いて要素群が実行されるような一実施例において、該ソフトウェアはコンピュータ読み取り可能な媒体に格納されることができ、そして、例えばリムーバブル記憶ドライブ６１４、ドライブ６１２、または通信インターフェース６２４を用いて、コンピューティング・システム６００に読み込まれることができる。制御ロジック（この例においては、ソフトウェアの命令もしくはコンピュータプログラムコード）がプロセッサ６０４によって実行されると、該制御ロジックはプロセッサ６０４に、ここで説明されている本発明の機能を発揮させる。
【００８２】
上記記述が、目的を明確にするため異なった機能ユニットやプロセッサに関連した本発明の実施例を説明してきたということは、評価されることではあろう。しかしながら、種々の機能ユニット、プロセッサまたはドメイン間における任意の適正な機能配置が、本発明を損なうことなく使用されうるということが明らかになるであろう。例えば、分離されたプロセッサ、または制御装置により実行されるように説明された機能は、同一のプロセッサ、または制御装置により実行することが可能である。よって、特定の機能ユニットに対しての言及は、厳密に、ある論理的または物理的な構造、及び組織を示しているというより、むしろ単に、説明される機能を提供するために適した方法の参考とみなされる。
【００８３】
本発明はいくつかの実施例に関連して説明されてきたのではあるが、本発明はここで説明された特定の形式に限定されることを意図されているものではない。むしろ、本発明の範囲は請求の範囲によってのみ、制限されるものである。さらに言えば、一つの特徴が特定の実施例に関連して現れ、説明されたとしても、当業者は、説明された実施例のさまざま特徴が、本発明に従って結び付けられることに気付くであろう。
【００８４】
さらに言えば、個別に挙げられた複数の方法、要素もしくは手法の段階であっても、例えば、単一のユニットやプロセッサによって実行されうる。
さらには、個々の特徴が別々の請求項に含まれうるのではあるが、これらは場合によっては、有利に結び付けられることができるし、そしてまた、別々の請求項に含まれているからと言って、特徴を結合することが実現可能でない  そして／または  有利ではないということを、意味含むものではない。また、一つの請求項のカテゴリに特徴が含まれることはそのカテゴリへの制限を意味含むものではなく、むしろ必要に応じて、その特徴は、等しく他の請求項カテゴリに適用可能であってもよい。
【００８５】
本発明はいくつかの実施例に関連して説明されてきたのではあるが、本発明は、ここで説明された特定の形式に制限されることを意図されているものではない。むしろ、本発明の範囲は請求の範囲によってのみ、制限されるものである。さらに言えば、一つの特徴が特定の実施例に関連して現れ、説明されたとしても、当業者は、説明された実施例のさまざま特徴が、本発明に従って結び付けられることに気付くであろう。さらには、ある実施例に関連して説明された本発明の態様は、発明として単独で成立しうるものである。
【００８６】
さらには、当業者によって、本発明の精神と範囲から逸脱することなくさまざまの改良と交代がなされうることが、評価されるであろう。本発明は前述の実例的な詳細によって制限されるべきものではなく、請求の範囲に従って定義されるべきものである。
【図１】
0005646551.tif 000002
【図２】
0005646551.tif 000003
【図３】
0005646551.tif 000004
【図４】
0005646551.tif 000005
【図５】
0005646551.tif 000006
【図６】
0005646551.tif 000007
【図７】
0005646551.tif 000008
【図８】
0005646551.tif 000009
【図９】
0005646551.tif 000010
【図１０】
0005646551.tif 000011
【図１１】
0005646551.tif 000012
【図１２】
0005646551.tif 000013
【図１３】
0005646551.tif 000014
【図１４】
0005646551.tif 000015
【図１５】
0005646551.tif 000016
【図１６】
0005646551.tif 000017
【図１７】
0005646551.tif 000018
【図１８】
0005646551.tif 000019
【図１９】
0005646551.tif 000020
【図２０】
0005646551.tif 000021
【図２１】
0005646551.tif 000022
【図２２】
0005646551.tif 000023