(57)【特許請求の範囲】
【請求項１】
クライアント装置と、前記クライアント装置の接続情報を管理するSIPサーバ装置とにネットワークを介して接続し、
設定情報を記憶する記憶装置、及び前記クライアント装置からの他のクライアント装置への、セッションを開始するためのSIPメソッドであるINVITE要求の受信に応答して、前記クライアント装置から前記SIPサーバ装置への、前記クライアント装置を前記SIPサーバ装置へ登録するためのSIPメソッドであるREGISTER要求に含まれる前記クライアント装置のSIP−URI及びコンタクトアドレスを含む前記設定情報を参照して、前記INVITE要求を前記他のクライアント装置へ転送する通信プロキシ処理部を有することを特徴とする通信ゲートウェイ装置。
【請求項２】
前記記憶装置はさらに、前記REGISTER要求に含まれる前記クライアント装置の前記SIP−URIに関する情報と前記クライアント装置を担当する通信ゲートウェイ装置とを対応付けたマッピング情報を記憶し、前記通信プロキシ処理部は、前記マッピング情報を参照し、前記REGISTER要求を送信した前記クライアント装置を他の通信ゲートウェイ装置が担当する場合は、前記REGISTER要求を前記他の通信ゲートウェイ装置に転送することを特徴とする請求項１記載の通信ゲートウェイ装置。
【請求項３】
前記通信プロキシ処理部は、前記クライアント装置からの前記他のクライアント装置への前記INVITE要求の受信に応答して、前記マッピング情報を参照し、前記他のクライアント装置を前記他の通信ゲートウェイ装置が担当する場合は、前記INVITE要求を前記他の通信ゲートウェイ装置に転送することを特徴とする請求項２記載の通信ゲートウェイ装置。
【請求項４】
前記記憶装置はさらに、前記SIPサーバ装置の状態情報を記憶し、前記通信プロキシ処理部は、前記クライアント装置からの前記他のクライアント装置への前記INVITE要求の受信に応答して、前記状態情報が前記SIPサーバ装置の輻輳状態を示していなければ、前記INVITE要求を前記SIPサーバ装置へ転送することを特徴とする請求項２記載の通信ゲートウェイ装置。
【請求項５】
前記通信プロキシ処理部は、前記クライアント装置からの前記他のクライアント装置への前記INVITE要求の受信に応答して、前記状態情報が前記SIPサーバ装置の輻輳状態を示していれば、前記マッピング情報を参照し、前記他のクライアント装置を前記他の通信ゲートウェイ装置が担当する場合は、前記INVITE要求を前記他の通信ゲートウェイ装置に転送することを特徴とする請求項４記載の通信ゲートウェイ装置。
【請求項６】
前記状態情報は、前記REGISTER要求及びINVITE要求を含むSIP要求を前記SIPサーバ装置へ転送し、転送した前記SIP要求に対する応答待ちになっている応答待ち要求数、及び前記SIP要求に対する平均応答時間の少なくとも一方であることを特徴とする請求項４記載の通信ゲートウェイ装置。
【請求項７】
クライアント装置と、前記クライアント装置の接続情報を管理するSIPサーバ装置とにネットワークを介して接続する通信ゲートウェイ装置おける中継方法であって、前記クライアント装置から前記SIPサーバ装置への、前記クライアント装置を前記SIPサーバ装置へ登録するためのSIPメソッドであるREGISTER要求に含まれる前記クライアント装置のSIP−URI及びコンタクトアドレスをキャッシュ情報として記憶装置に格納し、前記クライアント装置からの他のクライアント装置への、セッションを開始するためのSIPメソッドであるINVITE要求の受信に応答して、前記キャッシュ情報を参照して、前記INVITE要求を前記他のクライアント装置へ転送することを特徴とする中継方法。
【請求項８】
前記記憶装置にさらに、前記REGISTER要求に含まれる前記クライアント装置の前記SIP−URIに関する情報と前記クライアント装置を担当する通信ゲートウェイ装置とを対応付けたマッピング情報を記憶し、前記マッピング情報を参照し、前記REGISTER要求を送信した前記クライアント装置を他の通信ゲートウェイ装置が担当する場合は、前記REGISTER要求を前記他の通信ゲートウェイ装置に転送することを特徴とする請求項７記載の中継方法。
【請求項９】
前記記憶装置にさらに、前記SIPサーバ装置の状態情報を記憶し、前記クライアント装置からの前記他のクライアント装置への前記INVITE要求の受信に応答して、前記状態情報が前記SIPサーバ装置の輻輳状態を示していれば、前記マッピング情報を参照し、前記他のクライアント装置を前記他の通信ゲートウェイ装置が担当する場合は、前記INVITE要求を前記他の通信ゲートウェイ装置に転送することを特徴とする請求項８記載の中継方法。
【請求項１０】
前記状態情報は、前記REGISTER要求及びINVITE要求を含むSIP要求を前記SIPサーバ装置へ転送し、転送した前記SIP要求に対する応答待ちになっている応答待ち要求数、及び前記SIP要求に対する平均応答時間の少なくとも一方であることを特徴とする請求項９記載の中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントとサーバとの間の通信データを中継する通信ゲートウェイ装置及び中継方法に関する。
【背景技術】
【０００２】
近年、ＳＩＰ（Session Initiation Protocol）を採用する通信アプリケーションが普及しつつある。（特許文献１、２）ＳＩＰを用いたＩＰ電話はＮＧＮ（Next Generation Network）と呼ばれる次世代テレコムネットワークで主要なアプリケーションであり、システムの安定化が重要視されている。特に、ＳＩＰサーバと呼ばれる、ＩＰ電話クライアントのＩＰアドレスを管理するサーバの高負荷時における安定化が課題となっている。
【０００３】
ＳＩＰサーバの輻輳によるサービス障害を回避する方法として、ＳＩＰサーバが、対向ＳＩＰサーバの障害を検知し、別のＳＩＰサーバに迂回する方法がある（特許文献１）。
【０００４】
また別の方法として、負荷分散装置によりＳＩＰサーバへの負荷を軽減させる方法がある（特許文献２）。
【０００５】
【特許文献１】特開２００４−１７９７６４
【特許文献２】特開２００７−６０２１０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記手法は、ＳＩＰサーバが同一の不具合を持っている場合に、負荷を迂回させた別のＳＩＰサーバも障害を起こしてしまい、結果としてクライアント装置に対するサービスが全断する危険性がある。
【課題を解決するための手段】
【０００７】
本発明の通信ゲートウェイ装置および中継方法は、クライアント装置と、クライアント装置の接続情報を管理するSIPサーバ装置とにネットワークを介して接続し、クライアント装置からSIPサーバ装置への、クライアント装置をSIPサーバ装置へ登録するためのSIPメソッドであるREGISTER要求に含まれるクライアント装置のSIP−URI及びコンタクトアドレスを含む設定情報を記憶する記憶装置、及びクライアント装置からの他のクライアント装置への、セッションを開始するためのSIPメソッドであるINVITE要求の受信に応答して、設定情報を参照して、INVITE要求を他のクライアント装置へ転送する通信プロキシ処理部を有する。
【０００８】
本発明の通信ゲートウェイ装置および中継方法の他の態様は、記憶装置にさらに、REGISTER要求に含まれるクライアント装置のSIP−URIに関する情報とクライアント装置を担当する通信ゲートウェイ装置とを対応付けたマッピング情報を記憶し、マッピング情報を参照し、REGISTER要求を送信したクライアント装置を他の通信ゲートウェイ装置が担当する場合は、そのREGISTER要求を他の通信ゲートウェイ装置に転送する。
【０００９】
本発明の通信ゲートウェイ装置および中継方法のさらに他の態様は、記憶装置にさらに、SIPサーバ装置の状態情報を記憶し、クライアント装置からの他のクライアント装置へのINVITE要求の受信に応答して、状態情報がSIPサーバ装置の輻輳状態を示していれば、マッピング情報を参照し、他のクライアント装置を他の通信ゲートウェイ装置が担当する場合は、INVITE要求を他の通信ゲートウェイ装置に転送する。
【発明の効果】
【００１０】
本発明によれば、ＳＩＰサーバが輻輳状態に陥っても、通信ゲートウェイ装置で接続情報をキャッシュしているクライアントの通信を継続できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の通信ゲートウェイ装置及び中継方法の実施するための最良の形態について、実施例を用いて説明する。
【実施例１】
【００１２】
図１は、本実施例の通信ゲートウェイ１０２（102a、102b、・・・、102n）を接続した通信システム100の構成例である。図示するように、通信システム１００は、ユーザエージェント(クライアント装置)１０１（101a、101b）と、通信ゲートウェイ１０２と、ＳＩＰサーバ１０３（103a、103b）とを備えている。ユーザエージェント１０１はネットワーク１０４ａに、ＳＩＰサーバ１０３はネットワーク１０４ｂに接続されており、これらの装置は、ネットワーク１０４ａとネットワーク１０４ｂとの間の通信を中継する通信ゲートウェイ１０２を介して相互に通信する。
【００１３】
ここで、ユーザエージェント１０１は、ＳＩＰ（Session Initiation Protocol）を用いて他のユーザエージェント１０１との通信を行うクライアント装置である。例えばＩＰ電話機などである。ユーザエージェントＡ１０１ａは、通信相手であるユーザエージェントＢ１０１ｂのＩＰアドレスを取得する必要がある。ＳＩＰサーバ１０３は、各ユーザエージェント１０１のＩＰアドレスを管理するサーバである。
【００１４】
ユーザエージェント１０１は、ネットワーク１０４ａに接続した際に、そのＩＰアドレスをＳＩＰサーバ１０３にREGISTERメソッド(クライアントがログインし、ＳＩＰサーバにアドレスを登録するために用意されたＳＩＰのメソッドであり、REGISTER要求と呼ぶ。)を使って通知する。そして、ユーザエージェント１０１が通信するときには、INVITEメソッド（セッションを開始するためのメソッドであり、通信相手の情報を含むＳＩＰのメソッドであり、INVITE要求と呼ぶ。）をＳＩＰサーバ１０３に送信し、通信相手のＩＰアドレスをＳＩＰサーバ１０３から応答してもらう。
【００１５】
ユーザエージェント１０１とＳＩＰサーバ１０３とをネットワーク１０４を介して論理的に接続する通信ゲートウェイ１０２は、通信プロキシ処理部１０２１と、マッピングテーブル記憶部１０２２と、サーバ状態記憶部１０２３と、キャッシュデータ記憶部１０２４とを備えている。通信プロキシ処理部１０２１は後述するＣＰＵ(プロセッサ)で実行されるプログラムとして実装される。
【００１６】
通信プロキシ処理部１０２１は、ＳＩＰプロキシサーバとしての処理（クライアントからの要求を、適切なＳＩＰサーバに転送する）を実行する。ＳＩＰサーバ１０３が高負荷や障害などにより応答を遅延している場合に、通信プロキシ処理部１０２１は、ＳＩＰサーバ１０３の状態を把握し、通信相手のユーザエージェント１０１のＩＰアドレス情報をキャッシュに持つ自他の通信ゲートウェイ１０２を検索して、その通信ゲートウェイ１０２にＳＩＰ要求を転送する。ＳＩＰ要求を転送された通信ゲートウェイ１０２が、応答遅延しているＳＩＰサーバに代わって、通信相手のユーザエージェント１０１と通信する。
【００１７】
マッピングテーブル記憶部１０２２は、ユーザをユニークに識別するためのＳＩＰ−ＵＲＩ（Uniform Resource Identifier）と、そのＳＩＰ−ＵＲＩのキャッシュを管理する通信ゲートウェイ１０２とを対応付けるマッピングテーブルを記憶する領域である。図９に、マッピングテーブル記憶部１０２２の例を示す。マッピングテーブル記憶部１０２２は、マッピングテーブル１０２２１を記憶する。マッピングテーブル１０２２１は、ハッシュ値１０２２２と、そのハッシュ値に対応する通信ゲートウェイ１０２のホスト名（通信ゲートウェイ名）１０２２３を表形式で管理するテーブルである。この例では、ハッシュ空間の大きさは16bit（0000〜ffff）としている。
【００１８】
サーバ状態記憶部１０２３は、ＳＩＰサーバ１０３の応答状態を記憶する領域である。図１０に、サーバ状態記憶部１０２３の例を示す。サーバ状態記憶部１０２３は、サーバ状態管理テーブル１０２３１を記憶する。サーバ状態管理テーブル１０２３１は、ＳＩＰサーバ１０３のホスト名（サーバ名）と、そのＳＩＰサーバ１０３に対して送信したＳＩＰ要求の応答状態を管理するためのテーブルである。ＳＩＰサーバ１０３の応答状態には、ＳＩＰサーバ１０３への応答待ち要求数１０２３３、及び平均応答時間１０２３４がある。図１０には、応答待ち要求数１０２３３及び平均応答時間１０２３４を示すが、少なくとも一方の情報があれば、ＳＩＰサーバ１０３の状態を示す情報として十分である。
【００１９】
応答待ち要求数は、ＳＩＰサーバ１０３に対して、転送したが、応答待ちとなっている状態のＳＩＰ要求の数を表す。この値は、ＳＩＰ要求をＳＩＰサーバ１０３に送信した時点で増加する(カウントアップする)。また、この値は、ＳＩＰサーバ１０３からＳＩＰ応答を受信するか、所定時間経過してもＳＩＰサーバ１０３からのＳＩＰ応答がなく、タイムアウトした時点で減算される(カウントダウンする)。
【００２０】
平均応答時間は、通信ゲートウェイ１０２からＳＩＰサーバ１０３に、ＳＩＰ要求を送信してからそのＳＩＰ応答が返信されるまでの応答時間の平均値を算出したものである。この例では、ミリ秒単位としている。その算出方法については、例えば、通信プロキシ処理部１０２１が、
（１）ＳＩＰ要求をＳＩＰサーバ１０３に送信した時刻から、ＳＩＰサーバ１０３から当該ＳＩＰ要求に対するＳＩＰ応答を受信した時刻までの所要時間（応答時間）、またはタイムアウトした場合のタイムアウト時間を計測し、その計測結果を主記憶装置１０００２（図７を用いて後述）に記憶し、
（２）一定時間毎に、（主記憶装置１０００２に記憶された）全ての応答時間の平均値を算出することで算出する。この方法を用いれば、一定時間の間の計測対象のＳＩＰ応答がすべてタイムアウトすれば、平均応答時間はタイムアウト時間として設定した所定時間になる。
【００２１】
キャッシュデータ記憶部１０２４は、REGISTER要求に含まれている、REGISTER送信元のユーザエージェント１０１のＩＰアドレス（コンタクトアドレス）を記憶する領域である。図１１に、キャッシュデータ記憶部１０２４の例を示す。キャッシュデータ記憶部１０２４は、ユーザエージェント１０１の接続情報のキャッシュデータ１０２４１を記憶する。キャッシュデータ１０２４１で記憶する接続情報は、REGISTER要求の送信元の、ユーザのＳＩＰ−ＵＲＩ１０２４２、コンタクトアドレス１０２４３、及びキャッシュ有効期限１０２４４である。
【００２２】
ＳＩＰ−ＵＲＩ１０２４２の領域には、REGISTER要求の送信元のユーザエージェント１０１が通信ゲートウェイ１０２に送信したREGISTER要求のFromヘッダ（要求の送信元を示す領域）に記述されているＳＩＰ−ＵＲＩが格納される。コンタクトアドレス１０２４３の領域には、REGISTER要求のContactヘッダ（ユーザのコンタクトアドレスを示す領域）に記述されたＩＰアドレスが格納される（ここで、コンタクトアドレス１０２４３には、REGISTER要求に対してＳＩＰサーバ１０３から返信された”200 OK”応答のContactヘッダに記述されたＩＰアドレスを格納しても良い）。キャッシュ有効期限１０２４４の領域には、ユーザエージェント１０１からのREGISTER要求に対するＳＩＰサーバ１０３からの“200 OK”応答のContactヘッダに含まれているexpiresヘッダで指定された有効期間をOK応答受信時刻に加えたキャッシュの有効期限日時が格納される。
【００２３】
通信プロキシ処理部１０２１は、このキャッシュデータ１０２４１を、エントリ単位で、キャッシュ有効期限１０２４４の日時を経過後に無効にする。なお、コンタクトアドレス１０２４３は、必ずしもＩＰアドレスでなくても良く、最終的にユーザに到達することができるホスト名を含むＳＩＰ−ＵＲＩでも良い。
【００２４】
図２は、通信プロキシ処理部１０２１がＳＩＰ要求を受信した際の処理を示すフローチャートである。通信プロキシ処理部１０２１は、ＳＩＰ要求を受信すると、REGISTER要求、INVITE要求、または他のＳＩＰ要求であることを判別する（Ｌ１０１）。REGISTER要求の場合の処理は図３を用いて後述する。INVITE要求の場合の処理は図４を用いて後述する。
【００２５】
REGISTER要求及びINVITE要求のいずれでもない他のＳＩＰ要求であれば、一般的なＳＩＰプロキシサーバと同様に、受信したＳＩＰ要求をＳＩＰサーバ１０３に転送する（Ｌ１０２）。その際、通信タイマ（ＷＡＩＴタイマ）を起動する。ＳＩＰサーバ１０３からの応答を監視する（Ｌ１０３）。通信タイマがタイムアウトせずに応答を受信すれば、ＳＩＰ要求送信元に、ＳＩＰサーバ１０３から受信した応答を転送する（Ｌ１０４）。通信タイマがタイムアウトした場合は、ＳＩＰ要求送信元にエラー応答する（Ｌ１０５）。
【００２６】
図３は、通信プロキシ処理部１０２１がREGISTER要求を受信したときの処理を示すフローチャートである。通信プロキシ処理部１０２１は、REGISTER要求のメッセージ中に記載されている送信元ＳＩＰ−ＵＲＩをハッシュ関数に掛けてハッシュ値を算出し、そのハッシュ値を検索キーとして、マッピングテーブル記憶部１０２２で保持しているマッピングテーブル１０２２１を検索し、送信元ＳＩＰ−ＵＲＩのキャッシュを担当する通信ゲートウェイ１０２のホスト名を割り出す（Ｌ２０１）。
【００２７】
ハッシュ関数として、例えばＭＤ５（Message Digest Algorithm 5）を使用しても良いし、その他のハッシュ関数を使用しても良い。ＳＩＰ−ＵＲＩをハッシュ関数（ＭＤ５等）に掛けてハッシュ値（１６進数）を算出し、下４桁を抽出する。そして、図９のマッピングテーブル１０２２１を参照して、抽出したハッシュ値（下４桁）に対応する通信ゲートウェイ１０２のホスト名を得る。
【００２８】
検索の結果、自通信ゲートウェイが送信元ＳＩＰ−ＵＲＩを担当する通信ゲートウェイ１０２であるかどうか判別する（Ｌ２０２）。自通信ゲートウェイ１０２が担当であれば、通信プロキシ処理部１０２１は、REGISTER要求に含まれる、送信元ユーザエージェント１０１のＳＩＰ−ＵＲＩ及びＩＰアドレスをキャッシュデータ記憶部１０２４のＳＩＰ−ＵＲＩ領域１０２４２及びコンタクトアドレス領域１０２４３にキャッシュし、REGISTER要求をＳＩＰサーバ１０３に転送し、通信タイマ（ＷＡＩＴタイマ）を起動する（Ｌ２０３）。ただし、ここでキャッシュしたデータはまだ確定とせず、この時点でキャッシュが検索されても使用しない。
【００２９】
REGISTER要求をＳＩＰサーバ１０３に転送後、ＳＩＰサーバ１０３からOK応答の受信を監視する（Ｌ２０４）。OK応答を受信した場合は、OK応答中のContactヘッダのexpiresヘッダで指定された有効期間をOK応答受信日時に加えてキャッシュの有効期限日時を算出し、その日時をキャッシュデータ記憶部１０２４のキャッシュ有効期限領域１０２４４に格納し、キャッシュしたデータを確定とし、REGISTER要求送信元にＳＩＰサーバ１０３からの応答を転送する（Ｌ２０５）。キャッシュしたデータが確定したデータか否かは、キャッシュ有効期限領域１０２４４に有効期限日時として現在日時より将来の日時が格納されているか否かにより判別できる。OK応答以外の受信、またはタイムアウトした場合は、キャッシュしたデータを無効とし、キャッシュ有効期限領域１０２４４には無効な日時、例えば1970/01/01 00:00:00といった過去の日時を格納し、REGISTER要求送信元にエラー応答を送信する（Ｌ２０６）。
【００３０】
Ｌ２０２の判別の結果、他通信ゲートウェイ１０２が担当であれば、該当する通信ゲートウェイ１０２にREGISTER要求を転送する（Ｌ２０７）。REGISTER要求を他通信ゲートウェイ１０２に転送後、REGISTER要求の転送先の他通信ゲートウェイ１０２からのOK応答の受信を監視する（Ｌ２０８）。OK応答を受信した場合は、REGISTER要求送信元にそのOK応答を転送する（Ｌ２０９）。OK応答以外を受信するか、もしくはタイムアウトした場合は、REGISTER要求送信元にエラー応答を送信する（Ｌ２０６）。
【００３１】
図４は、通信プロキシ処理部１０２１がINVITE要求を受信した際の処理を示すフローチャートである。通信プロキシ処理部１０２１は、受信したINVITE要求のメッセージ中に記載されているＳＩＰサーバのＳＩＰ−ＵＲＩから転送先ＳＩＰサーバ名を得て、その転送先ＳＩＰサーバ１０３の状態をサーバ状態記憶部１０２３から取得し、転送先ＳＩＰサーバ１０３が定常的に遅延しているかどうかを判別する（Ｌ３０１）。転送先ＳＩＰサーバ１０３の状態が定常的に遅延しているかどうかの判別方法、いわゆる輻輳状態の判別方法は、例えば、そのＳＩＰサーバ１０３の平均応答時間もしくは応答待ち接続数が、通信プロキシ処理部１０２１に予め設定した閾値を超過しているかどうかを判別する。いずれも閾値を超過していなければ、転送先ＳＩＰサーバ１０３は遅延していないとみなす。いずれか一方が閾値を超過していれば、その転送先ＳＩＰサーバ１０３は遅延しているとみなす。
【００３２】
転送先ＳＩＰサーバ１０３が遅延していない場合は、転送先ＳＩＰサーバ１０３にINVITE要求を転送し、通信タイマ（ＷＡＩＴタイマ）を起動し、INVITE要求の送信元に”100 Trying”（INVITE要求を受け取り，処理していることを送信元に知らせるためのレスポンス）を応答する（Ｌ３０２）。INVITE要求を転送先ＳＩＰサーバ１０３に転送後、転送先ＳＩＰサーバ１０３からの応答の受信を監視する（Ｌ３０３）。応答を受信した場合は、INVITE要求の送信元にその応答を転送する（Ｌ３０４）。
【００３３】
ステップＬ３０１で転送先ＳＩＰサーバ１０３が定常的に遅延していると判別した場合、及びステップＬ３０３でタイムアウトした場合、通信プロキシ処理部１０２１は、INVITE要求のメッセージ中に含まれる送信先ＳＩＰ−ＵＲＩから得たハッシュ値を検索キーに、マッピングテーブル記憶部１０２２で保持しているマッピングテーブルを検索し、送信先ＳＩＰ−ＵＲＩを担当する通信ゲートウェイ１０２を見つける（Ｌ３０５）。
【００３４】
検索の結果、自通信ゲートウェイが送信元ＳＩＰ−ＵＲＩを担当する通信ゲートウェイ１０２であるかどうか判別する（Ｌ３０６）。自通信ゲートウェイ１０２が担当であれば、通信プロキシ処理部１０２１は、INVITE要求のメッセージ中に含まれる送信先ユーザエージェント１０１のＳＩＰ−ＵＲＩからキャッシュデータ記憶部１０２４のキャッシュデータを検索して（Ｌ３０７）、送信先ユーザエージェント１０１のＩＰアドレスを取得し、このＩＰアドレスを有する送信先ユーザエージェント１０１にINVITE要求を転送し、通信タイマ（ＷＡＩＴタイマ）を起動し、INVITE要求の送信元に”100 Trying”を応答する（Ｌ３０８）。
【００３５】
INVITE要求を送信先ユーザエージェント１０１に転送後、送信先ユーザエージェント１０１からの応答の受信を監視する（Ｌ３０９）。応答を受信した場合は、INVITE要求の送信元に応答を転送する（Ｌ３０４）。タイムアウトした場合、通信プロキシ処理部１０２１は、INVITE要求の送信元にエラー応答を送信する（Ｌ３１０）。
【００３６】
Ｌ３０６の判別の結果、他通信ゲートウェイ１０２が担当であれば、担当する他の通信ゲートウェイ１０２にINVITE要求を転送し、通信タイマ（ＷＡＩＴタイマ）を起動し、INVITE要求の送信元に”100 Trying”を応答する（Ｌ３１１）。INVITE要求を他通信ゲートウェイ１０２に転送後、他通信ゲートウェイ１０２からの応答の受信を監視する（Ｌ３１２）。応答を受信した場合は、INVITE要求の送信元に応答を転送する（Ｌ３０４）。タイムアウトした場合、通信プロキシ処理部１０２１は、INVITE要求の送信元にエラー応答を送信する（Ｌ３１０）。
【００３７】
図７に、通信ゲートウェイ１０２のハードウェア構成例を示す。通信ゲートウェイ１０２は、ＣＰＵ１０００１、主記憶装置１０００２、ＨＤＤ等の外部記憶装置１０００５、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体１０００８から情報を読み出す読取装置１０００３、ディスプレイ、キーボードやマウスなどの入出力装置１０００６、通信ネットワークに接続するためのＮＩＣ（Network Interface Card）等の通信装置１０００４、及びそれらの装置間のデータ転送用のバス１０００７を備えた一般的なコンピュータ１０００により実現できる。
【００３８】
例えば、マッピングテーブル記憶部１０２２は、主記憶装置１０００２の一部の領域を用いて実現する。通信プロキシ処理部１０２１は、外部記憶装置１０００５に記憶されている通信プロキシ処理プログラムを主記憶装置１０００２にロードしてＣＰＵ１０００１で実行し、通信装置１０００４を介してユーザエージェント１０１やサーバ１０３とのネットワーク通信を実現する。
【００３９】
通信プロキシ処理プログラムは、読取装置１０００３を介して記憶媒体１０００８から、あるいは、通信装置１０００４を介してネットワークから、外部記憶装置１０００５にダウンロードされ、主記憶装置１０００２上にロードされてＣＰＵ１０００１により実行されるようにしてもよい。また、読取装置１０００３を介して記憶媒体１０００８から、あるいは、通信装置１０００４を介してネットワークから、メモリ１０００２上に直接ロードされ、ＣＰＵ１０００１により実行されるようにしてもよい。
【００４０】
以上のような構成により、本通信ゲートウェイ１０２は、ユーザエージェント１０１のＩＰアドレス等の情報をキャッシュし、ＳＩＰサーバ１０３の障害等による応答遅延時にキャッシュの内容を用いて応答することで、通信サービスを最大努力型で継続することができる。
【００４１】
図５は、既に説明した、ユーザエージェントＡ１０１ａがＳＩＰサーバ１０３に自ＩＰアドレスを登録する（REGISTER要求する）処理シーケンスを表した図である。ユーザエージェントＡ１０１ａが、REGISTER要求により自ＩＰアドレスを通信ゲートウェイ１０２ａに送信する（Ｓ１０１）。通信ゲートウェイＡ１０２ａは、ユーザエージェントＡ１０１ａを担当する通信ゲートウェイＢ１０２ｂにREGISTER要求を転送する（Ｓ１０２）。
【００４２】
通信ゲートウェイＡ１０２ａよりREGISTER要求を受信した通信ゲートウェイＢ１０２ｂは、ＳＩＰサーバ１０３にREGISTER要求を転送する（Ｓ１０３）。ＳＩＰサーバ１０３は、送信元であるユーザエージェントＡ１０１ａのＩＰアドレスを管理データベースに反映する。
【００４３】
ＳＩＰサーバ１０３よりOK応答を受信（Ｓ１０４）した通信ゲートウェイＢ１０２ｂは、通信ゲートウェイＡ１０２ａに応答を転送する（Ｓ１０５）。通信ゲートウェイＢ１０２ｂは、REGISTER要求の送信元であるユーザエージェントＡ１０１ａのＩＰアドレスをキャッシュしている。通信ゲートウェイＢ１０２ｂからOK応答を受信した通信ゲートウェイＡ１０２ａは、ユーザエージェントＡ１０１ａに応答を転送する（Ｓ１０６）。
【００４４】
図６は、ユーザエージェントＢ１０１ｂがユーザエージェントＡ１０１ａに、通信を始めるためにINVITE要求する処理シーケンスを表した図である。なお、最初の時点では、ＳＩＰサーバ１０３には遅延が発生していないものとする。
【００４５】
ユーザエージェントＢ１０１ｂが、通信ゲートウェイＣ１０２ｃに対し、ユーザエージェントＡ１０１ａへのINVITE要求を送信する（Ｓ２０１）。通信ゲートウェイＣ１０２ｃは、ユーザエージェントＡ１０１ａのＩＰアドレス情報を保持しているＳＩＰサーバ１０３に対しINVITE要求を転送し（Ｓ２０２）、ユーザエージェントＢ１０１ｂに対し”100 Trying”（メッセージを受信したことを前段の装置に通知するための応答）を応答する（Ｓ２０３）。
【００４６】
この時点でＳＩＰサーバ１０３に障害が発生し、応答不能状態になったとする（Ｓ２０４）。通信ゲートウェイＣ１０２ｃは、図４のＬ３０３において、ＳＩＰサーバ１０３の応答待ちタイムアウトが発生する。そのため、通信ゲートウェイＣ１０２ｃは、Ｌ３０５にてユーザエージェントＡ１０１ａの担当通信ゲートウェイ１０２を検索し、通信ゲートウェイＢ１０２ｂを割り出す。そして、通信ゲートウェイＢ１０２ｂにINVITE要求を転送する（Ｓ２０５）。
【００４７】
通信ゲートウェイＢ１０２ｂは、ユーザエージェントＡ１０１ａの担当通信ゲートウェイ１０２を検索し、自ノード（通信ゲートウェイＢ１０２ｂ）が担当であることを割り出す。そして、図５のＳ１０２でキャッシュしたユーザエージェントＡ１０１ａのＩＰアドレス情報を取得し、このＩＰアドレス（＝ユーザエージェントＡ１０１ａ）にINVITE要求を転送（Ｓ２０６）、通信ゲートウェイＣ１０２ｃに”100 Trying”を応答する（Ｓ２０７）。以降、Ｓ２０８〜Ｓ２１４については一般的なＳＩＰシーケンスであるため省略する。なお、Ｓ２０８のRingingは、発信先ユーザエージェントＡ１０１ａを呼び出し中であることを発信元ユーザエージェント１０１ｂに通知するための応答である。
【実施例２】
【００４８】
図８は、実施例２の通信システムを示す図である。本実施例の通信システムは、INVITE要求対象の特定のユーザエージェントとの通信に、ＳＩＰサーバ１０３を用いず、通信ゲートウェイを用いる。特定のユーザエージェントとの通信とは、たとえば回線品質が良くなく、通信の信頼性が低くても良いユーザエージェントとの通信である。
【００４９】
図８に示す通信システムは、ユーザエージェントとしてのＩＰ電話（１０１ａ、１０１ｂ）、通信ゲートウェイとしての家庭用ゲートウェイ（１０２ａ〜１０２ｄ）、ＳＩＰサーバ（１０３ａ、１０３ｂ）、ネットワーク（１０４ａ、１０４ｂ）、及びネットワーク１０４より通信の信頼性が低いネットワーク（たとえばインターネット）１０５から構成される。
【００５０】
家庭用ゲートウェイ１０２は、内部メモリにユーザ設定１０２５を保持する。ユーザ設定１０２５は、たとえばＩＰ電話による通話品質が低くても良い通話先の電話番号である。利用者は、予めこのユーザ設定１０２５を設定しておく。
【００５１】
家庭用ゲートウェイＡ１０２ａは、ＩＰ電話１０１ａからINVITE要求を受信すると、図４のＬ３０１のステップで、（ＳＩＰサーバ１０３ａの応答状態ではなく）ユーザ設定１０２５を確認する。INVITE要求の送信先電話番号がユーザ設定１０２５に設定されていれば、図４のＬ３０５のステップに進む。されていなければ、Ｌ３０２のステップに進む。
【００５２】
なお、ユーザ設定１０２５は、必ずしも家庭用ゲートウェイ１０２が保持していなくても良い。例えば、別のサーバ装置で保持し、家庭用ゲートウェイ１０２がＩＰ電話１０１ａからINVITE要求を受信した際に、そのサーバ装置にネットワーク経由で問い合わせても良い。
【００５３】
その他については、実施例１と同様である。
【００５４】
実施例２によれば、ＳＩＰサーバ及びＳＩＰサーバに接続するネットワークを使わずに、ゲートウェイとユーザエージェントを接続するネットワークを用いてシステムを構築することができる。たとえば、インターネットだけを用いて通話できるＩＰ電話システムを構築することができるので、低コストの通話サービスを利用者に提供できる。
【００５５】
なお、本発明は、上記実施例に限定されず、種々の変形や応用が可能である。
【図面の簡単な説明】
【００５６】
【図１】実施例１の通信ゲートウェイを接続した通信システムの構成例を示す図である。
【図２】通信ゲートウェイで実行する、ＳＩＰ要求受信時の処理フローチャートを示す図である。
【図３】通信ゲートウェイで実行される、REGISTER要求受信時の処理フローチャートを示す図である。
【図４】通信ゲートウェイで実行される、INVITE要求受信時の処理フローチャートを示す図である。
【図５】REGISTER要求の処理シーケンスを示す図である。
【図６】INVITE要求の処理シーケンスを示す図である。
【図７】通信ゲートウェイのハードウェア構成例を示す図である。
【図８】実施例２の通信システムの構成例を示す図である。
【図９】通信ゲートウェイのマッピングテーブル記憶部の例を示す図である。
【図１０】通信ゲートウェイのサーバ状態記憶部の例を示す図である。
【図１１】通信ゲートウェイのキャッシュデータ記憶部の例を示す図である。
【符号の説明】
【００５７】
１００：通信システム、１０１ユーザエージェント、１０２：通信ゲートウェイ、１０３：ＳＩＰサーバ、１０４：ネットワーク、１０５：インターネット、１０２１：通信プロキシ処理部、１０２２：マッピングテーブル記憶部、１０２３：サーバ状態記憶部、１０２４：キャッシュデータ記憶部、１０２５：ユーザ設定、１０００：コンピュータ、１０００１：ＣＰＵ、１０００２：主記憶装置、１０００３：読取装置、１０００４：通信装置、１０００５：外部記憶装置、１０００６：入出力装置、１０００７：内部バス、１０００８：可搬記憶媒体、１０２２１：マッピングテーブル、１０２２２：ハッシュ値、１０２２３：通信ゲートウェイのホスト名、１０２３１：サーバ状態管理テーブル、１０２３２：応答待ち要求数、１０２３３：平均応答時間、１０２４１：キャッシュデータ、１０２４２：ＳＩＰ−ＵＲＩ、１０２４３：コンタクトアドレス、１０２４４：キャッシュ有効期限。
【図１】
0004940163.tif 000002
【図２】
0004940163.tif 000003
【図３】
0004940163.tif 000004
【図４】
0004940163.tif 000005
【図５】
0004940163.tif 000006
【図６】
0004940163.tif 000007
【図７】
0004940163.tif 000008
【図８】
0004940163.tif 000009
【図９】
0004940163.tif 000010
【図１０】
0004940163.tif 000011
【図１１】
0004940163.tif 000012