(57)【要約】ディレクトリサーバ（３８）は、アドレス変換ファイアーウォールのサービスを受けるクライアント（１８）に遠隔クライアント（１４）（１６）からリアルタイムストリーミングメディアデータの伝達のためのメディアセッションチャネルを提供する。ディレクトリサーバは、クライアント（１９０）によって送出された登録データグラムを受信し、登録データグラム（２００）から抽出したソースネットワークアドレスとソースポート番号をオープンチャネルとしてクライアント（１８）に書き込み、遠隔クライアント（１４）（１６）からセッションシグナリングメッセージ（１５０）を受信し、抽出したソースネットワークアドレスとソースポート番号（１５４）を使用してセッションシグナリングメッセージを提供するためのクライアント登録モジュール（４０）を含む。
2004528774.tif 000002
【特許請求の範囲】
【請求項１】
遠隔クライアントからアドレス変換ファイアーウォールのサービスを受けているクライアントに対してリアルタイムストリーミングメディアデータを伝達するためのメディアセッションチャネルを実現する方法において、
クライアントによって送出されたクライアントを識別するピン（ｐｉｎｇ）データグラムを受信するステップと、
ピンデータグラムからソースネットワークアドレスとソースポート番号とを抽出するステップと、
遠隔装置からセッションシグナリングメッセージを受信するステップであって、セッションシグナリングメッセージは、クライアントを識別し、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含むステップと、
遠隔装置からセッションシグナリングメッセージを受信したことに呼応してソースネットワークアドレスとソースポート番号とを使用してクライアントにクライアントセッションシグナリングメッセージを送信するステップと
を含む方法。
【請求項２】
セッションシグナリングメッセージから遠隔装置のソースネットワークアドレスと遠隔装置のソースポート番号とを抽出するステップと、
発信側ネットワークアドレスがソースネットワークアドレスと一致するか否かを判定するステップと、
クライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを決定するステップと
をさらに含み、指定したネットワークアドレスと指定したポート番号は、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、発信側ネットワークアドレスと発信側ポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であり、
クライアントセッションシグナリングメッセージが指定したネットワークアドレスと指定したポート番号とを含む請求項１に記載の方法。
【請求項３】
メディアセッションデータグラムを受信するためのクライアントのネットワークアドレスとクライアントのポート番号とを含む、クライアントによって送出された応答メッセージを受信するステップと、
発信側がメディアセッションデータグラムをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定するステップであって、発信側の指定したネットワークアドレスと発信側の指定したポート番号は、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、クライアントの指定したネットワークアドレスとクライアントの指定したポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であるステップと、
発信側の指定したネットワークアドレスと発信側の指定したポート番号とを含む遠隔装置応答メッセージを遠隔装置に送信するステップと
をさらに含む請求項２に記載の方法。
【請求項４】
クライアントがアドレス変換ファイアーウォールのサービスを受けているか否かに関わらず呼シグナリングメッセージをクライアントに送信する方法において、
クライアントのネットワークアドレスを識別する登録メッセージをクライアントから受信するステップと、
登録メッセージからソースネットワークアドレスとソースポート番号を抽出するステップと、
指定したネットワークアドレスをソースネットワークアドレスと比較するステップと、
クライアントを識別する遠隔装置からディレクトリ照会メッセージを受信するステップと、
シグナリングアドレスを含むディレクトリ照会応答メッセージを遠隔装置に提供するステップと
を含み、シグナリングアドレスが、
ネットワークアドレスとソースネットワークアドレスが同一のネットワークアドレスである場合は、ネットワークアドレスであり、
ネットワークアドレスとソースネットワークアドレスが同一ではない場合は、ディレクトリサーバのネットワークアドレスである方法。
【請求項５】
遠隔装置からクライアントに対するセッションシグナリングメッセージを受信するステップと、
ソースネットワークアドレスとソースポート番号とを使用してクライアントセッションシグナリングメッセージをクライアントに送信するステップと
をさらに含む請求項４に記載の方法。
【請求項６】
セッションシグナリングメッセージはメディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含み、方法は、
セッションシグナリングメッセージから遠隔装置のソースネットワークアドレスと遠隔装置のソースポート番号とを抽出するステップと、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致するか否かを判定するステップと、
クライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを決定するステップと
をさらに含み、指定したネットワークアドレスと指定したポート番号は、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、発信側ネットワークアドレスと発信側ポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であり、
クライアントセッションシグナリングメッセージが、指定したネットワークアドレスと指定したポート番号とを含む請求項５に記載の方法。
【請求項７】
メディアセッションデータグラムを受信するためのクライアントのネットワークアドレスとクライアントのポート番号とを含む、クライアントによって送出された応答メッセージを受信するステップと、
発信側がメディアセッションデータグラムをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定するステップであって、発信側の指定したネットワークアドレスと発信側の指定したポート番号は、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、クライアントのネットワークアドレスとクライアントのポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であるステップと、
発信側の指定したネットワークアドレスと発信側の指定したポート番号とを含む遠隔装置の応答メッセージを遠隔装置に送信するステップと
をさらに含む請求項６に記載の方法。
【請求項８】
ディレクトリ照会に呼応してセッション識別子をセッションに割り当てるステップと、
セッション識別子をクライアントに関連付けるステップと、
ディレクトリ照会応答メッセージで遠隔装置にセッション識別子を提供するステップと
をさらに含む請求項４に記載の方法。
【請求項９】
セッション識別子を含むセッションシグナリングメッセージを遠隔装置から受信するステップと、
セッション識別子が関連付けられたクライアントを識別するステップと、
ソースネットワークアドレスとソースポート番号を使用してクライアントセッションシグナリングメッセージをクライアントに送信するステップと
をさらに含む請求項８に記載の方法。
【請求項１０】
セッションシグナリングメッセージが、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含み、方法が、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致するか否かを判定するステップと、
クライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを決定するステップと
をさらに含み、指定したネットワークアドレスが、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、発信側ネットワークアドレスと発信側ポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であり、
クライアントセッションシグナリングメッセージが、指定したネットワークアドレスと指定したポート番号を含む
請求項９に記載の方法。
【請求項１１】
メディアセッションデータグラムを受信するためにクライアントのネットワークアドレスとクライアントのポート番号を含む、クライアントによって送出された応答メッセージを受信するステップと、
発信側がメディアセッションアドレスをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定するステップであって、発信側の指定したネットワークアドレスと発信側の指定したポート番号が、
発信側のネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、クライアントのネットワークアドレスとクライアントのポート番号であり、
発信側のネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であるステップと、
発信側のネットワークアドレスと発信側のポート番号とを含む遠隔装置応答メッセージを遠隔装置に送信するステップと
をさらに含む請求項１０に記載の方法。
【請求項１２】
遠隔クライアントからアドレス変換ファイアーウォールのサービスを受けるクライアントにリアルタイムストリーミングメディアデータを伝達するためのメディアセッションチャネルを提供するディレクトリサーバにおいて、ディレクトリサーバは、
クライアントを識別する、クライアントによって送出されたピンデータグラムを受信する手段と、
ピンデータグラムからソースネットワークアドレスとソースポート番号とを抽出する手段と、
遠隔装置からセッションシグナリングメッセージを受信する手段であって、セッションシグナリングメッセージはクライアントを識別し、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含む手段と、
遠隔装置からセッションシグナリングメッセージを受信することに呼応して、ソースネットワークアドレスとソースポート番号を使用してクライアントセッションシグナリングメッセージをクライアントに送信する手段と
を含むディレクトリサーバ。
【請求項１３】
セッションシグナリングメッセージから遠隔装置のソースネットワークアドレスと遠隔装置のソースポート番号とを抽出する手段と、
発信側ネットワークアドレスがソースネットワークアドレスと一致するか否かを判定する手段と、
クライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを決定する手段と
をさらに含み、指定したネットワークアドレスと指定したポート番号は、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、発信側ネットワークアドレスと発信側ポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であり、
クライアントセッションシグナリングメッセージは、指定したネットワークアドレスと指定したポート番号と含む請求項１２に記載のディレクトリサーバ。
【請求項１４】
メディアセッションデータグラムを受信するためのクライアントのネットワークアドレスとクライアントのポート番号とを含む、クライアントによって送出された応答メッセージを受信する手段と、
発信側がメディアセッションデータグラムをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定する手段であって、発信側の指定したネットワークアドレスと発信側の指定したポート番号は、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、クライアントの指定したネットワークアドレスとクライアントの指定したポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号である手段と、
発信側の指定したネットワークアドレスと発信側の指定したポート番号とを含む遠隔装置応答メッセージを遠隔装置に送信する手段と
をさらに含む請求項１３に記載のディレクトリサーバ。
【請求項１５】
クライアントがアドレス変換ファイアーウォールのサービスを受けているか否かに関わらずクライアントに呼シグナリングメッセージを送信するためのディレクトリサーバにおいて、
クライアントのネットワークアドレスを識別する登録メッセージをクライアントから受信する手段と、
登録メッセージからソースネットワークアドレスとソースポート番号とを抽出する手段と、
指定したネットワークアドレスをソースネットワークアドレスと比較する手段と、
クライアントを識別する遠隔装置からディレクトリ照会メッセージを受信する手段と、
シグナリングアドレスを含むディレクトリ照会応答メッセージを遠隔装置に提供する手段と
を含み、シグナリングアドレスが、
ネットワークアドレスとソースネットワークアドレスが同一のネットワークアドレスである場合は、ネットワークアドレスであり、
ネットワークアドレスとソースネットワークアドレスが同一でない場合は、ディレクトリサーバのネットワークアドレスであるディレクトリサーバ。
【請求項１６】
遠隔装置からクライアントに対するセッションシグナリングメッセージを受信する手段と、
ソースネットワークアドレスとソースポート番号とを使用してクライアントセッションシグナリングメッセージをクライアントに送信する手段と
をさらに含む請求項１５に記載のディレクトリサーバ。
【請求項１７】
セッションシグナリングメッセージが、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含み、
ディレクトリサーバが、
セッションシグナリングメッセージから遠隔装置のソースネットワークアドレスと遠隔装置のソースポート番号とを抽出する手段と、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致するか否かを判定する手段と、
クライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを決定する手段と
をさらに含み、指定したネットワークアドレスと指定したポート番号が、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、発信側ネットワークアドレスと発信側ポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であり、
クライアントセッションシグナリングメッセージが指定したネットワークアドレスと指定したポート番号とを含む請求項１６に記載のディレクトリサーバ。
【請求項１８】
メディアセッションデータグラムを受信するためのクライアントのネットワークアドレスとクライアントのポート番号を含む、クライアントによって送出された応答メッセージを受信する手段と、
発信側がメディアセッションデータグラムをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定する手段であって、発信側の指定したネットワークアドレスと発信側の指定したポート番号が、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、クライアントのネットワークアドレスとクライアントのポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号である手段と、
発信側の指定したネットワークアドレスと発信側の指定したポート番号を含む遠隔装置応答メッセージを遠隔装置に送信する手段と
をさらに含む請求項１７に記載のディレクトリサーバ。
【請求項１９】
ディレクトリ照会に呼応してセッションにセッション識別子を割り当てる手段と、
クライアントにセッション識別子を関連付ける手段と、
ディレクトリ照会応答メッセージで遠隔装置にセッション識別子を提供する手段と
をさらに含む請求項５に記載のディレクトリサーバ。
【請求項２０】
セッション識別子を含む遠隔装置からのセッションシグナリングメッセージを受信する手段と、
セッション識別子が関連付けられているクライアントを識別する手段と、
ソースネットワークアドレスとソースポート番号とを使用してクライアントにクライアントセッションシグナリングメッセージを送信する手段と
をさらに含む請求項１９に記載のディレクトリサーバ。
【請求項２１】
セッションシグナリングメッセージが、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含み、
ディレクトリサーバは、
発信側ネットワークアドレスと遠隔装置のソースネットワークアドレスが一致するか否かを判定する手段と、
クライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを決定する手段と
をさらに含み、指定したネットワークアドレスは、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、発信側ネットワークアドレスと発信側ポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号であり、
クライアントのセッションシグナリングメッセージが指定したネットワークアドレスと指定したポート番号とを含む請求項２０に記載のディレクトリサーバ。
【請求項２２】
メディアセッションデータグラムを受信するためのクライアントのネットワークアドレスとクライアントのポート番号とを含む、クライアントによって送出された応答メッセージを受信する手段と、
発信側がメディアセッションデータグラムをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定する手段であって、発信側の指定したネットワークアドレスと発信側の指定したポート番号が、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は、クライアントのネットワークアドレスとクライアントのポート番号であり、
発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は、中継サーバのネットワークアドレスと中継サーバのポート番号である手段と、
発信側ネットワークアドレスと発信側ポート番号とを含む遠隔装置応答メッセージを遠隔装置に送信する手段と
をさらに含む請求項２１に記載のディレクトリサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット交換データ網におけるメディアデータの通信に関し、より詳細にはファイアーウォールを介してリアルタイムのメディアデータセッションを確立し維持することに関する。
【背景技術】
【０００２】
長年にわたり、音声電話サービスは、一般に公衆交換電話網（ＰＳＴＮ）として知られる回線交換網を介して実施され、地域の電話サービスプロバイダによって制御されてきた。このようなシステムでは、会話を表すアナログ電子信号は専用ツイストペア銅線回線上の２つの電話送受器間で伝送される。より具体的には、各電話送受器は加入者回線として知られる専用の銅線対上のローカル交換局に結合されている。電話をかける場合、２つの交換局間で各加入者回線を専用の銅線対に動的に結合することによって回線は完成する。
【０００３】
さらに最近では、交換局間の銅線または中継線が光ファイバーケーブルに取って代わった。コンピューティング装置は、複数の会話を同時に同一ファイバーで伝送することができるように、アナログ信号をデジタル化して、そのデジタル化されたデータをフレームにフォーマットする。受信端では、コンピューティング装置がそのアナログ信号を銅線で伝送するように修正する。電話送受器をローカル交換局に結合するために、加入者回線のツイストペア銅線が依然として使用されている。
【０００４】
さらに最近では、音声電話サービスがインターネットを介して実施されるようになった。インターネットのデータ伝送速度の向上およびインターネット帯域幅の拡大により、電話での会話をインターネットのパケット交換アーキテクチャとＴＣＰ／ＩＰプロトコルを使用して伝達することができるようになった。
【０００５】
２つのパーソナル・コンピュータ間（それぞれがエンドポイントまたはクライアントと呼ばれる）でのインターネットデータリンクを介したリアルタイム音声情報の双方向転送を可能にする、パーソナル・コンピュータで使用するためのソフトウェアが入手可能である。各エンドポイントのコンピュータは、マイクロフォンとスピーカーを駆動するために適切なハードウェアを備えている。各エンドポイントは、全二重音声の会話をサポートするために、リアルタイム音声データの送信側とリアルタイム音声データの受信側の双方として同時に動作する。リアルタイム音声データの送信側としてエンドポイントのコンピュータは、音声信号を、マイクロフォンによって検出されるようなアナログ形式からデジタル形式に変換する。ソフトウェアは次いで、エンドポイントのコンピュータのインターネットサービスプロバイダ（ＩＳＰ）へのデータ接続に対応するレートまでデータ圧縮を進めて、そのデジタル化され、圧縮された音声データをユーザデータグラムプロトコルおよびインターネットプロトコル（ＵＤＰ／ＩＰ）に対応するフレームのカプセル化を助け、インターネットを介した他のエンドポイントに対する通信を可能にする。
【０００６】
リアルタイム音声データの受信側として、エンドポイントのコンピュータおよびソフトウェアは、このプロセスを逆に行って、受信側コンピュータに関連付けられたスピーカーを介してオペレータに提示するためにアナログ音声情報を再生する。
【０００７】
インターネットテレフォニーを普及させるために、国際電気通信連合（ＩＴＵ）ではインターネットテレフォニーに関する一組の規格を策定している。ＩＴＵ  Ｑ．９３１標準は呼の信号方式およびセットアップに関係し、ＩＴＵ  Ｈ．２４５標準は２つのエンドポイント間におけるチャネルの使用および圧縮機能の交渉を規定し、ＩＴＵ  Ｈ．３２３標準は、リアルタイム音声データを送信するためにＵＤＰ／ＩＰを使用した、出現すべき２つのエンドポイント間におけるリアルタイム音声データを規定する。
【０００８】
さらに、インターネットエンジニアリングタスクフォース（ＩＥＴＦ：Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）では、セッション開始プロトコル（ＳＩＰ）として知られるリアルタイムメディアデータセッションを開始するための一組の規格を策定している。ＳＩＰは、呼の信号方式および圧縮機能の交渉を規定するために２つエンドポイント間（または２つのエンドポイントおよび複数のプロキシサーバ間）で交換されるべきＵＤＰ／ＩＰメッセージを規定する。
【０００９】
標準ＩＴＵインターネットテレフォニーおよびＳＩＰインターネットテレフォニーに関連する問題は、ネットワークアドレス変換（ＮＡＴ）ファイアーウォールによって、そのファイアーウォール外のエンドポイントコンピュータからそのファイアーウォール内の専用ネットワーク上のエンドポイントコンピュータにＵＤＰ／ＩＰフレームが伝送されることが妨げられることである。
【００１０】
より具体的には、ＩＴＵインターネットテレフォニー標準とＳＩＰ標準の両方は、各エンドポイントが、メディアデータグラムを受信するためのＩＰアドレスとポート番号を含んでいるリアルタイム転送プロトコル（ＲＴＰ）チャネルを指定し、他のエンドポイントへのＲＴＰチャネルを提供することを規定している。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
専用ネットワークのクライアントはグローバルかつ一意のネットワークアドレスを有しないので、そのようなグローバルかつ一意でないＩＰアドレスに送信されたフレームはインターネット上で経路指定することは不可能であり、消失することになる。さらに、専用ネットワークのクライアントがＮＡＴファイアーウォールのＩＰアドレスを識別し、指定することができたとしても、専用ネットワークのクライアントにはメディアデータグラムを受信するためにＮＡＴファイアーウォール上にポートを確立する手段はない。
【００１２】
専用ネットワークからインターネットに対して送信されたすべてのフレームのＩＰアドレス変換とポート変換の両方を通常は提供するＮＡＴファイアーウォールが普及しているため、どちらもＮＡＴファイアーウォールに後置された専用ネットワーク上に配置されている２つのクライアント間でインターネットテレフォニーでの会話を確立し、維持するためのシステムおよび方法が求められている。さらに、ＮＡＴファイアーウォールに後置された専用ネットワーク上に配置されているクライアントと、送信側ＵＤＰチャネルとは異なる受信側ＵＤＰチャネルを運営する、インターネットで経路指定可能なＩＰアドレス（例えば、インターネット上の公開ＩＰアドレス）を有するクライアントとの間でインターネット電話の会話を確立し、維持するためのシステムおよび方法も求められている。
【課題を解決するための手段】
【００１３】
本発明の第１の態様は、遠隔クライアントからアドレス変換ファイアーウォールのサービスを受けているクライアントに対してリアルタイムストリーミングメディアデータを伝達するメディアセッションチャネルを実現するためのディレクトリサーバを提供することである。ディレクトリサーバは、クライアントを識別し、クライアントのネットワークアドレスを識別する、クライアントによって送出された登録および／またはピン（ｐｉｎｇ）データグラムを受信するためのクライアント登録モジュールを含んでいてもよい。ディレクトリサーバは、また、そのピンデータグラムからソースネットワークアドレスとソースポート番号とを抽出するための手段を含むこともできる。クライアントテーブルは、クライアント識別子によってクライアントを、その抽出されたソースネットワークアドレスとソースポート番号とに関連付けることができる。
【００１４】
ディレクトリサーバは、クライアントを受信側として識別する遠隔装置（リモートデバイス）からディレクトリ照会メッセージを受信し、遠隔装置にディレクトリ照会応答メッセージを返すためのセッションセットアップモジュールをさらに含んでいる。ディレクトリ照会応答メッセージは、そのセッションに割り当てられたセッション識別子とシグナリングアドレスとを含むことができる。シグナリングアドレスは、ネットワークアドレスとソースネットワークアドレスが同一のネットワークアドレスである場合はクライアントのネットワークアドレスであってよく、ネットワークアドレスとソースネットワークアドレスが同一でない場合はディレクトリサーバのネットワークアドレスであってよい。
【００１５】
セッションセットアップモジュールは、遠隔装置からセッションシグナリングメッセージを受信し、セッションシグナリングメッセージから遠隔装置のソースネットワークアドレスと遠隔装置のソースポート番号とを抽出し、発信側ネットワークアドレスがソースネットワークアドレスと一致するか否かを判定し、遠隔装置からセッションシグナリングメッセージを受信したことに呼応してソースネットワークアドレスとソースポート番号とを使用してクライアントにクライアントセッションシグナリングメッセージを送信することをさらに提供する。セッションシグナリングメッセージは、クライアント識別子とセッション識別子のうちの少なくとも１つを含み、また、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含む。クライアントセッションシグナリングメッセージは、そのクライアントがメディアセッションデータグラムをそこに送信する指定したネットワークアドレスと指定したポート番号とを含む。セッションセットアップモジュールは、指定したネットワークアドレスと指定したポート番号を、ａ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は発信側ネットワークアドレスと発信側ポート番号であると決定し、ｂ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は中継サーバのネットワークアドレスと中継サーバのポート番号であると決定する。
【００１６】
セッションセットアップモジュールは、クライアントによって送出された応答メッセージを受信し、発信側がメディアセッションデータグラムをそこに送信する発信側の指定したネットワークアドレスと発信側の指定したポート番号とを決定し、発信側の指定したネットワークアドレスと発信側の指定したポート番号とを含む遠隔装置応答メッセージを遠隔装置に送信することをさらに提供する。応答メッセージは、メディアセッションデータグラムを受信するためのクライアントネットワークアドレスとクライアントポート番号とを含む。発信側の指定したネットワークアドレスと発信側の指定したポート番号は、ａ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合はクライアントの指定したネットワークアドレスとクライアントの指定したポート番号であり、ｂ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は中継サーバのネットワークアドレスと中継サーバのポート番号である。
【００１７】
本発明の第２の態様は、アドレス変換ファイアーウォールのサービスを受けているクライアントに遠隔クライアントからリアルタイムストリーミングメディアデータを伝達するメディアセッションチャネルを実現するための方法を提供することである。この方法は、クライアントを識別し、クライアントのネットワークアドレスを識別する、クライアントによって送出された登録および／またはピンデータグラムを受信するステップと、ピンデータグラムからソースネットワークアドレスとソースポート番号とを抽出するステップと、クライアント識別子によってクライアントを抽出されたソースネットワークアドレスとソースポート番号とに関連付けるステップとを含む。
【００１８】
この方法は、クライアントが受信側であることを識別するディレクトリ照会メッセージを遠隔装置から受信し、遠隔装置にディレクトリ照会応答メッセージを返すステップをさらに含むことができる。ディレクトリ照会応答メッセージは、セッションに割り当てられたセッション識別子とシグナリングアドレスを含むことができる。シグナリングアドレスは、ネットワークアドレスとソースネットワークアドレスが同一のネットワークアドレスである場合はクライアントのネットワークアドレスであってよく、ネットワークアドレスとソースネットワークアドレスが同一でない場合はディレクトリサーバのネットワークアドレスであってよい。
【００１９】
この方法は、遠隔装置からセッションシグナリングメッセージを受信するステップと、セッションシグナリングメッセージから遠隔装置のソースネットワークアドレスと遠隔装置のソースポート番号とを抽出するステップと、発信側ネットワークアドレスがソースネットワークアドレスと一致するか否かを判定するステップと、セッションシグナリングメッセージを遠隔装置から受信したことに呼応してソースネットワークアドレスとソースポート番号とを使用してクライアントにクライアントセッションシグナリングメッセージを送信するステップとをさらに含むことができる。セッションシグナリングメッセージは、クライアント識別子とセッション識別子のうちの少なくとも１つを含み、メディアセッションデータグラムを受信するために確立された発信側ネットワークアドレスと発信側ポート番号とを含む。クライアントのセッションシグナリングメッセージは、クライアントがメディアセッションデータグラムを送信するために指定したネットワークアドレスと指定したポート番号とを含む。指定したネットワークアドレスと指定したポート番号は、ａ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合は発信側ネットワークアドレスと発信側ポート番号であり、ｂ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は中継サーバのネットワークアドレスと中継サーバのポート番号である。
【００２０】
この方法は、クライアントによって送出された応答メッセージを受信するステップと、発信側がメディアセッションデータグラムを送信するために発信側が指定したネットワークアドレスと発信側が指定したポート番号とを決定するステップと、発信側が指定したネットワークアドレスと発信側が指定したポート番号とを含む遠隔装置応答メッセージを遠隔装置に送信するステップとを含む。応答メッセージは、メディアセッションデータグラムを受信するためのクライアントのネットワークアドレスとクライアントのポート番号とを含む。発信側が指定したネットワークアドレスと発信側が指定したポート番号は、ａ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致する場合はクライアントが指定したネットワークアドレスとクライアントが指定したポート番号であり、ｂ）発信側ネットワークアドレスが遠隔装置のソースネットワークアドレスと一致しない場合は中継サーバのネットワークアドレスと中継サーバのポート番号である。
【発明を実施するための最良の形態】
【００２１】
本発明を上記以外の態様も併せてよりよく理解するために、添付図面に関してなされた以下の説明を参照するが、本発明の範囲は特許請求の範囲で指摘するものとする。
【００２２】
本発明を、図面を参照しながら詳細に説明する。図面では、参照番号を付した各要素は、それにいかなる文字記号が付属しているかに関わらず同じ参照番号を付した他の要素と類似のものとする。本文では、特別な文字記号が付属した参照番号合はその番号と文字記号を付した特別な要素を示しており、特別な文字記号の付属しない参照番号は、図面の参照番号にいかなる文字記号が付属しているかに関わらず同じ参照番号を付したすべての要素を示す。
【００２３】
本明細書で説明した要素の多くは、１つ以上のハードウェア回路、ソフトウェアコードを実行するプロセッサ、または１つ以上のハードウェア回路、機械可読コードを実行するプロセッサまたは集積回路の制御ブロックの組み合わせで実施することができるということを理解されたい。したがって、本明細書を通して使用される回路、モジュール、サーバという用語または要素に関するこの他のこれに相当する記述は、ハードウェア回路（別個の要素または集積回路ブロック）、コードを実行するプロセッサまたは制御ブロック、または１つ以上のハードウェア回路とコードを実行するプロセッサおよび／または制御ブロックの組み合わせを包含することを意図している。
【００２４】
図１を参照すると、リアルタイムメディア通信ネットワーク１０のブロック図が示されている。リアルタイムメディア通信ネットワーク１０は、複数のネットワーク装置を相互接続するネットワーク１２を含んでいる。ネットワーク１２はインターネットであってよい。本願明細書を通して、ネットワーク１２は「インターネット」と呼ぶが、これは説明を目的としたものであり、ネットワーク１２をインターネットまたは類似のネットワークに限定するものではないということを理解されたい。
【００２５】
インターネット１２に結合されているのは、本発明の目的でリアルタイムメディア通信クライアント１４と、それぞれが専用ネットワーク２４および２６のファイアーウォールとして動作するネットワークアドレス変換プロキシサーバ２８および３０と、ディレクトリサーバ３８および呼制御マネージャ３６を含むテレフォニーサービスプロバイダ３４とを含む。
【００２６】
ネットワーク装置のそれぞれは、ネットワーク装置がインターネット１２を介して他のネットワーク装置とＴＣＰ／ＩＰ論理接続および／またはＵＤＰ／ＩＰチャネルをセットアップすることを可能にするＩＰプロトコルスイート（Ｓｕｉｔｅ）である。各装置には公衆インターネットプロトコル（ＩＰ）アドレスが割り当てられており、ＩＰデータグラムは、そのデータグラムをソース装置から宛先装置に経路指定するために各装置のＩＰネットワークアドレスを使用して様々な装置間で伝達される。
【００２７】
各ネットワークアドレス変換プロキシ２８および３０は、専用ネットワーク２４および２６のそれぞれに結合されるクライアント１６および１８に対するＩＰレイヤプロキシとして動作するネットワークアドレス変換（ＮＡＴ）サーバであってよい。本願明細書を通して、ネットワークアドレス変換プロキシ２８および３０を「ＮＡＴサーバ」と呼ぶが、これは説明のみを目的としたものであり、その構成を従来のＮＡＴサーバの構成に限定するものではないということを理解されたい。
【００２８】
各専用ネットワーク２４および２６は、クライアント１６および１８とそのそれぞれのＮＡＴサーバ２８および３０との間でデータグラムを経路指定するためにＩＰプロトコルを使用してインターネット１２に類似の方法で機能することができる。しかし、専用ネットワーク上の各クライアント１６または１８に割り当てられたＩＰネットワークアドレスは、専用ネットワークのために確保されたＩＰネットワークアドレスの１つのクラスから選択される１つのアドレスであってよく、各クライアント１６または１８に割り当てられたＩＰネットワークアドレスは、別の専用ネットワーク上の別のクライアントに割り当てられたアドレスと同一であってよい。専用ネットワークのクラス内のＩＰアドレスを有するデータグラムはその専用ネットワーク上では経路指定可能だが、インターネット１２上では経路指定可能ではない。グローバルで一意の（インターネット１２上で経路指定可能な）ＩＰアドレスを有するデータグラムは専用ネットワーク上で経路指定可能だが、常にＮＡＴサーバ３０または２８に経路指定され、このＮＡＴサーバ３０または２８はインターネット上のデータグラムをプロキシする。さらに具体的には、ＮＡＴサーバ３０または２８は、専用ネットワーク上の開始装置との接続を開きデータグラムを伝達する際に宛先装置をエミュレートし、インターネット１２を介して開始装置の代わりに宛先装置との接続を開きデータを交換するためにアドレス変換とポート変換の両方を実行することによってＩＰレイヤプロキシとして動作する。
【００２９】
ＮＡＴサーバ２８および３０は、専用ネットワーク上の開始装置によって送信されたコネクションレスデータグラムを、アドレス変換およびポート変換の両方を実行することによって変換し、インターネット１２を介してそのコネクションレスデータグラムを宛先装置に送信することもできる。コネクションレスデータグラムが宛先装置によって返信されるべきものであり、さらにその返信データグラムが、１）コネクションレスデータグラムを変換する際に使用されるＮＡＴサーバと同一のポート番号のＮＡＴサーバで受信され、２）ＮＡＴサーバによって送信されたコネクションレスデータグラムの宛先ネットワークアドレスおよびポート番号と一致するソースネットワークアドレスおよびポート番号を含み、３）ＮＡＴサーバがコネクションレスデータグラムを送信した後で事前定義された時間ウィンドウ内に受信された場合、その応答データグラムは専用ネットワーク上の開始装置に経路指定して返すことができる。
【００３０】
インターネットで受信されたデータグラムの逆変換を可能にするために、ＮＡＴサーバは、インターネット上でＮＡＴサーバによって開かれたＴＣＰ／ＩＰ接続（および送信されたＵＤＰ／ＩＰコネクションレスデータグラム）ごとに、開始装置のソースアドレスおよびポート番号をＮＡＴサーバの対応する変換済みソースアドレスおよびポート番号にマッピングする変換テーブルを維持することができる。したがって、ＮＡＴサーバは、ＮＡＴサーバがインターネット１２上で返信データグラムを受信したポート番号に関連付けられた開始装置のネットワークアドレスおよびポート番号を探すことによって、インターネット１２を介して受信した返信フレームを適切な開始装置に中継するために変換テーブルを使用することができる。
【００３１】
安全性が増したため、変換テーブルの各エントリは、変換済みフレームがインターネット１２を介して送信された宛先ネットワークアドレスおよびポート番号も含めることができる。したがって、ＮＡＴサーバは、返信フレームのソースアドレスおよびポート番号を変換済みフレームが送信された宛先ネットワークアドレスおよびポート番号と比較することによって、返信フレームが本当に変換済みフレームが送信された装置からの返信フレームであることを検証することができる。
【００３２】
電話サービスプロバイダ３４、さらに具体的にはディレクトリサーバ３８および呼制御マネージャ３６は、発信側クライアントおよび／または受信側クライアントが専用ネットワーク２４または２６上で動作するか否かに関わらず一群のクライアント１４、１６および１８からそれぞれが選択され、ＮＡＴサーバ２８または３０のサービスを受けている、発信側クライアントと受信側クライアントの間でのリアルタイムストリーミングメディアセッションのシグナリングと維持を可能にする。さらに具体的には、ディレクトリサーバ３８および呼制御マネージャ３６は、発信側クライアントとして動作するクライアント１４が専用ネットワーク２４および２６上でそれぞれに動作するクライアント１６または１８のどちらかにリアルタイムストリーミングメディアセッションをシグナリングすることを可能にし、また発信側クライアントとして動作するクライアント１６または１８のどちらかがクライアント１４、１６または１８のうちの別のクライアントにリアルタイムストリーミングメディアセッションをシグナリングしてこれを維持することを可能にする。
【００３３】
ディレクトリサーバ３４は、メディアセッションのシグナリングを容易にする。人間のオペレータは、通常、一旦特定人に割り当てられると比較的一定して維持されている１０桁の電話番号を取り扱う。しかし、インターネット１２または専用ネットワーク２４または２６に結合された各クライアント１４、１６および１８は、装置がネットワークにログオンするたびに変更可能な１２桁のネットワークアドレスによってアドレス指定される。したがって、ディレクトリサーバ３４は、各クライアント１４、１６および１８を、一定したクライアント識別子とクライアントに現在割り当てられているネットワークアドレスとに関連付けるクライアントテーブルデータベース４２を維持する。したがって、発信側クライアントは、受信側クライアントにシグナリングするためのネットワークアドレスを入手するために、その一定したクライアント識別子によって受信側クライアントを識別するディレクトリサーバ３４を探索することができる。
【００３４】
ＮＡＴサーバ２８および３０のそれぞれは、発信側クライアントの、専用ネットワーク２４または２６上の受信側クライアント１６または１８に対する直接的なシグナリングを妨げる。何故ならば、ＮＡＴサーバ２８および３０のそれぞれはクライアント１６または１８によって開始されたデータグラムに対する返信であるデータグラムを逆変換することしかできないからである。メディアセッションを開始するための呼シグナリングメッセージは、メディアセッションを開始するために発信側クライアントによって送出された第１のメッセージであり、したがって発信側クライアントに受信側クライアントによって送出されたメッセージに対する返信であるはずはない。したがって、ディレクトリサーバ３４は、専用ネットワーク上に配置された各クライアント１６または１８に対するオープンチャネルも維持する。さらに具体的には、そのＮＡＴサーバ２８または３０がそのデータグラムをそれぞれに変換し、その変換テーブルに適用可能なエントリを書き込むために、クライアント１６または１８はディレクトリサーバ３４にピン（ｐｉｎｇ）データグラムを定期的に送信する。ディレクトリサーバ３４は、各ピンデータグラムからソースネットワークアドレスとソースポート番号とを抽出する。ＮＡＴサーバがディレクトリサーバ３４から送信されたデータグラムを抽出されたソースネットワークアドレスとソースポート番号とに逆変換することができるので、そのような抽出されたソースネットワークアドレスとソースポート番号は、クライアントから次のピンデータグラムが受信されるまでオープンチャネルを識別する。したがって、ディレクトリサーバ３４は、受信側クライアントが専用ネットワーク上で動作している場合でも、発信側クライアントから受信側クライアントにオープンチャネル上で呼シグナリングメッセージを中継することができる。
【００３５】
セッションシグナリングが終了してメディアセッションが開始すると、呼制御マネージャ３６は、発信側クライアントと受信側クライアントの両方が専用ネットワーク２４または２６上にある場合は、発信側クライアントと受信側クライアントの間でセッション中にリアルタイムメディアデータの伝達を容易にする。以上説明したように、ＮＡＴサーバはクライアントによって送出されたデータグラムに応答しない限りデータグラムを逆変換することはできないので、ＮＡＴサーバ３０は逆変換することができないという理由から専用ネットワーク２８上のクライアント１６がクライアント１８へのデータグラムの送信を開始することは不可能であり、ＮＡＴサーバ２８は逆変換することができないという理由からクライアント１８がクライアント１６へのデータグラムの送信を開始することは不可能である。しかし、クライアント１６と１８の両方とも呼制御マネージャ３６へのデータグラムの送信を開始することができ、呼制御マネージャ３６はそれらの間で中継器として動作する。さらに、呼制御マネージャ３６は、ＮＡＴサーバ３０によって逆変換された応答データグラムとしてそこにデータグラムを送信することができる宛先ネットワークアドレスおよびポート番号を識別するために、クライアント１８から送出された（また、ＮＡＴサーバ３０によって変換された）データグラムからソースネットワークアドレスとソースポート番号を抽出することができる。応答データグラムは、クライアント１６から受信したリアルタイムストリーミングメディアデータを含む。同様に、呼制御マネージャ３６は、ＮＡＴサーバ２８によって逆変換される応答データグラムとしてそこにデータグラムを送信することができる宛先ネットワークアドレスとポート番号とを識別するために、クライアント１６によって送出された（また、ＮＡＴサーバ２８によって変換された）データグラムからソースネットワークアドレスとソースポート番号を抽出することができる。応答データグラムは、クライアント１８から受信したリアルタイムメディアセッションデータを含む。
【００３６】
図２ａは、ディレクトリサーバ３８と呼制御マネージャ３６とを使用して、メディアセッションをシグナリングすること、およびＮＡＴサーバ２８のサービスを受ける発信側クライアント１６と、ＮＡＴサーバ３０のサービスを受ける受信側クライアント１８の間でリアルタイムストリーミングメディアデータを中継することを表している。
【００３７】
信号５７は、受信側クライアント１８にシグナリングするためのネットワークアドレスを入手するようディレクトリサーバ３８に対して呼要求メッセージを発信側クライアント１６が送出している様子を表している。呼要求メッセージは、その一定したクライアント識別子によって受信側クライアントを識別する。
【００３８】
信号５９は、発信側クライアント１６に対するオープンチャネル上で、受信側クライアント１８にシグナリングするために使用するネットワークアドレスを含む呼要求確認信号によって、発信側クライアント１６にてディレクトリサーバ３８が応答している様子を表している。受信側クライアント１８は専用ネットワーク３０上にあり、直接的にシグナリングすることができないので、呼要求確認メッセージ内のネットワークアドレスはディレクトリサーバ３８のネットワークアドレスである。
【００３９】
信号６０は、セッション識別子と、メディアセッション中にメディアデータグラムを受信するために発信側クライアント１６によって確立されたリアルタイム転送プロトコルチャネル（発信側クライアントＲＴＰチャネル）を含むメディアセッションシグナリングメッセージをディレクトリサーバ３８に対して発信側クライアント１６が送出している様子を表している。信号６２は、メディアセッションシグナリングメッセージを呼制御マネージャ３６にディレクトリサーバ３８が渡している様子を表している。信号６４は、発信側クライアントＲＴＰチャネルに代わってセッション中にメディアデータグラムを受信するための、呼制御マネージャ３６によって確立されたリアルタイム転送プロトコルチャネル（ＣＣＭ  ＲＴＰチャネル）を含む呼シグナリングメッセージを呼制御マネージャがディレクトリサーバ３８に返している様子を表している。信号６６は、受信側クライアント１８へのオープンチャネル上の受信側クライアント１８に対して呼制御マネージャ２６から受信した呼シグナリングメッセージをディレクトリサーバが送信している様子を表している。発信側クライアント１６は専用ネットワーク２４上に配置されているので、発信側クライアントＲＴＰチャネルは専用ネットワーク２４に対してローカルであり、インターネット１２上では経路指定不可能なネットワークアドレスを含むということを理解されたい。しかし、ＣＣＭ  ＲＴＰチャネルは、グローバル一意のネットワークアドレスを含む。
【００４０】
信号６８は、セッション中にメディアデータグラムを受信するための受信側クライアント１８によって確立された受信側クライアントＲＴＰチャネルを含む応答メッセージを受信側クライアント１８が生成してディレクトリサーバ３８に戻している様子を表している。ここでもまた、受信側クライアントＲＴＰチャネルは、インターネット１２上で経路指定不可能なネットワークアドレスを含んでいる。信号７０は、ディレクトリサーバ３８が応答メッセージを呼制御マネージャ３６に渡している様子を表しており、信号７２は、受信側クライアントＲＴＰチャネルに代わってＣＣＭ  ＲＴＰチャネルを含む、呼制御マネージャ３６から戻す応答メッセージを表している。信号７４は、発信側クライアント１６へのオープンチャネル上の発信側クライアントに応答メッセージをディレクトリサーバが渡している様子を表している。
【００４１】
その後セッションが開始され、発信側クライアント１６および受信側クライアント１８はそれぞれに、信号７６および８０によって表されるようにＣＣＭ  ＲＴＰチャネル上の呼制御マネージャ３６に対してリアルタイムストリーミングメディアフレームをカプセル化しているメディアセッションデータグラムの送信を開始する。呼制御マネージャ３６は、発信側クライアント１６と受信側クライアント１８のそれぞれに対する宛先ネットワークアドレスと宛先ポート番号を決定するために、セッション中に発信側クライアント１６と受信側クライアント１８のそれぞれから受信したデータグラムからソースネットワークアドレスとソースポート番号を抽出する。呼制御マネージャ３６は次いで、発信側クライアント１６から受信したデータグラムを、受信側クライアント１８によって送出されたデータグラムから抽出された宛先ネットワークアドレスと宛先ポート番号を使用して受信側クライアント１８に中継し、受信側クライアント１８から受信したデータグラムを、発信側クライアント１６によって送出されたデータグラムから抽出された宛先ネットワークアドレスと宛先ポート番号を使用して発信側クライアント１６に中継する。
【００４２】
図２ｂは、メディアセッションのシグナリング、およびグローバル一意ネットワークアドレスを有する発信側クライアント１４とＮＡＴサーバ３０のサービスを受ける受信側クライアント１８との間におけるリアルタイムストリーミングメディアデータの伝達を示す。
【００４３】
信号８７は、受信側クライアント１８にシグナリングするためのネットワークアドレスを入手するために、ディレクトリサーバ３８に対して発信側クライアント１４が呼要求メッセージを送出している様子を表している。呼要求メッセージは、その一定したクライアント識別子によって受信側クライアント１８を識別する。
【００４４】
信号８９は、受信側クライアント１８にシグナリングするために使用するネットワークアドレスを含む呼要求確認信号によってディレクトリサーバ３８が発信側クライアント１４に応答している様子を表している。受信側クライアント１８は専用ネットワーク３０上にあって直接的にシグナリングすることができないので、呼要求確認メッセージ内のネットワークアドレスはディレクトリサーバ３８のネットワークアドレスである。
【００４５】
信号９０は、セッション識別子とメディアセッション中にメディアデータグラムを受信するために発信側クライアント１４によって確立された発信側ＲＴＰチャネルとを含む呼シグナリングメッセージをクライアント１４がディレクトリサーバ３８に送出している様子を表している。信号９２は、受信側クライアント１８に対するオープンチャネル上で受信側クライアント１８にディレクトリサーバ３８が呼シグナリングメッセージを渡している様子を表している。
【００４６】
信号９４は、メディアセッション中にメディアデータグラムを受信するために受信側クライアント１８によって確立された受信側ＲＴＰチャネルを含む応答メッセージを受信側クライアント１８が生成してディレクトリサーバ３８に返している様子を表している。信号９６は、ディレクトリサーバ３８が発信側クライアント１４に応答メッセージを渡している様子を表している。
【００４７】
その後、受信側クライアント１８は、信号１００によって表されるリアルタイムストリーミングメディアフレームをカプセル化しているデータグラムの発信側ＲＴＰチャネル上の発信側クライアント１４に対する送出を開始する。発信側クライアント１４は、信号９８によって表されるように、受信側クライアント１８にデータグラムを送信するための宛先ネットワークアドレスと宛先ポート番号として使用するために、受信側クライアント１８から受信したデータグラムからソースネットワークアドレスとソースポート番号とを抽出する。
【００４８】
ディレクトリサーバ
図３ａは、ディレクトリサーバ３８の一例を示すブロック図である。ディレクトリサーバ３８は、クライアント登録サーバアプリケーション４０、クライアントテーブルデータベース４２、およびセッションセットアップサーバアプリケーション４４を操作し、並びにインターネット１２に結合されている他の装置と通信するためにＩＰスイート１３およびネットワークインターフェース回路１２を操作するためのプロセッサ２０を含む一般的なサーバハードウェアに組み込むことができる。クライアント登録サーバアプリケーション４０、クライアントテーブルデータベース４２、セッションセットアップサーバアプリケーション４４のそれぞれの構成および機能は、単一アプリケーションに組み込んでも、またはディレクトリサーバハードウェア上で動作中の複数のアプリケーションに分散して組み込んでもよいということを理解されたい。
【００４９】
クライアントテーブルデータベース４２は、一意のクライアント識別子１８０によって識別される各クライアントを、その現在のネットワークアドレス１８４とクライアントへの現在のオープンチャネル１８２とに関連付ける。クライアントテーブルデータベース４２は、現在のネットワークアドレス１８４がローカルネットワークアドレス「Ｌ」かまたはグローバル一意ネットワークアドレス「Ｇ」か、を識別するグローバル／ローカルインジケータ１８６も含んでいる。
【００５０】
クライアントテーブルデータベース４２を維持するために、クライアント登録サーバアプリケーション４０は、図４ａおよび４ｂのフローチャートに従って動作する。図４ａのフローチャートを図３ａと共に参照すると、ネットワークにログオンしたばかりのクライアントからの登録要求を受信した際にクライアント登録サーバアプリケーション４０によって実行される複数のステップが示されている。ステップ１９０は、そのような要求の受信を示している。この要求にはクライアント識別子が含まれ、またクライアントの現在のネットワークアドレスが含まれる。クライアント１４の場合、これはグローバル一意ネットワークアドレスであり、クライアント１６および１８の場合、これはそれぞれに専用ネットワーク２４および２６上でのみ経路指定可能なローカルネットワークアドレスである。
【００５１】
ステップ１９２は、クライアント識別子フィールド１８０によって識別されるようにクライアントに関連付けられたレコードのフィールド１８４に対してクライアントのネットワークアドレスを書き込むことを表している。
【００５２】
ステップ１９４は、登録要求をカプセル化したＵＤＰ／ＩＰまたはＴＣＰ／ＩＰデータグラムのソースネットワークアドレスを抽出すること、およびクライアントのネットワークアドレスが抽出したソースネットワークアドレスと一致するか否かを判定することを表している。インターネットに直接的に結合されるクライアント１４の場合、これら２つのアドレスは一致する。クライアント１４および１６の場合、これら２つのアドレスは一致しない。何故ならば、クライアントのネットワークアドレスはクライアントのローカルネットワークアドレスだが、抽出されたソースネットワークアドレスはそれぞれにＮＡＴサーバ２８および３０のグローバル一意ネットワークアドレスだからである。
【００５３】
アドレスが一致した場合、ステップ１９６はクライアントテーブルデータベース４２内のローカル／グローバルインジケータフィールド１８６にグローバルインジケータ「Ｇ」を書き込むことを表している。アドレスが一致しない場合、ステップ１９８は、クライアントテーブルデータベース４２内のローカル／グローバルインジケータフィールド１８６にローカルインジケータ「Ｌ」を書き込むことを表している。
【００５４】
ステップ１９８に続いて、ステップ２００は、クライアントテーブルデータベース４２内のオープンチャネルフィールド１８２に抽出したソースネットワークアドレスと抽出したポート番号を書き込むことを表している。上述のように、各ＮＡＴサーバ２８および３０は、変換済みデータグラムが送信されたのと同じポート番号で受信したデータグラムを逆変換する。したがって、ディレクトリサーバ３８はデータグラムを抽出されたソースアドレスと抽出されたソースポート番号に送信することができ、ＮＡＴサーバはそのデータグラムを逆変換して専用ネットワーク上のクライアントにそれを送信する。
【００５５】
ステップ２０６は、キープアライブピン（Ｋｅｅｐ  Ａｌｉｖｅ  Ｐｉｎｇ）間隔をクライアントに割り当てることを表している。前述の通り、ＮＡＴサーバは変換済みフレームの送信に続く僅かな時間ウィンドウ内で受信したデータグラムしか逆変換しない。ピン間隔の目的は、ＮＡＴサーバを介した逆チャネルを開いたままにしておくために、クライアントが連続的にディレクトリサーバ３８の接続を確認するための時間間隔を設定することである。
【００５６】
図４ｂのフローチャートは、クライアントからピンメッセージを受信した際にクライアント登録サーバアプリケーション４０によって実行される複数のステップを表している。ステップ２０８はそのようなメッセージの受信を表している。このメッセージはクライアント識別子を含む。ステップ２１０は、ピンメッセージを含んでいるＵＤＰデータグラムから抽出したソースネットワークアドレスとソースポート番号を反映させるためにクライアントテーブルデータベース４２内のオープンチャネルフィールド１８２を更新することを表している。
【００５７】
図５ａおよび５ｂのフローチャートは、メディアセッションシグナリングを容易にするためにセッションセットアップサーバアプリケーション４４によって実行される複数のステップを表している。図５ａを図３ａと共に参照すると、ステップ１３０は発信側クライアントから呼要求メッセージを受信することを表している。呼要求メッセージは、発信側の識別子と受信側の識別子を含んでいる。セッションセットアップサーバアプリケーション４４は、受信側クライアントがグローバル一意ネットワークアドレスとローカルネットワークアドレスのどちらを有するかに基づいて異なるメッセージを発信側クライアントに返す。受信側クライアントは上記のうちの１つであるはずであり、そうでない場合、受信側はステップ１３８で識別できない。
【００５８】
受信側がグローバル一意ネットワークアドレスを有する場合、ステップ１４０でセッションセットアップサーバアプリケーション４４は呼要求確認メッセージを発信側クライアントに返す。呼要求確認メッセージは、受信側ネットワークアドレス（グローバル一意ネットワークアドレス）とＩＰレイヤ変数１を含む。
【００５９】
受信側がローカルネットワークアドレスを有している場合、ステップ１４４でセッションセットアップサーバアプリケーション４４は呼要求確認メッセージを発信側クライアントに返す。呼要求確認メッセージは、ディレクトリサーバ３８のネットワークアドレス（グローバル一意ネットワークアドレス）とＩＰレイヤ変数１と、セッション参照ＩＤとを含む。
【００６０】
上記教示に従って呼要求確認メッセージを受信した後で、発信側クライアントは、クライアントがグローバル一意ネットワークアドレスを有している場合にはクライアントへの、また受信側クライアントがローカルネットワークアドレスを有している場合にはディレクトリサーバ３８への直接的な呼シグナリングメッセージを開始することができるということを理解されたい。
【００６１】
図５ｂのフローチャートは、ステップ１５０で呼シグナリングメッセージを受信する際にセッションセットアップサーバアプリケーション４４によって実行される複数のステップを表している。呼シグナリングメッセージは、呼要求確認メッセージで発信側クライアントに提供されたセッション参照ＩＤを含み、またそのセッションのための発信側ＲＴＰチャネルを含む。発信側ＲＴＰチャネルは、発信側クライアントのネットワークアドレス（ローカルまたはグローバル一意の）と、そのセッションのために発信側クライアントによって確立されたポート番号とを含む。
【００６２】
ステップ１５２は、ステップ１５０で発信側クライアントによって提供されたネットワークアドレスを、呼シグナリングメッセージを送信する際に発信側クライアントによって送出されたデータグラムから抽出されたソースネットワークアドレスと比較することによって、発信側がグローバル一意ネットワークアドレスを有しているか否かを判定することを表している。
【００６３】
２つのネットワークアドレスが同一の場合、発信側クライアントはグローバル一意ネットワークアドレスを有しており、ステップ１５４でセッションセットアップサーバ４４は、クライアントテーブルデータベース４２内のオープンチャネルフィールド１８２を参照することによって決定された受信側クライアントに対するオープンチャネルを使用して呼シグナリングメッセージを受信側に転送する。ステップ１５４で転送された呼シグナリングメッセージは、セッション参照ＩＤと発信側ＲＴＰチャネルを含む。
【００６４】
２つのネットワークアドレスが同一でない場合、発信側クライアントはローカルネットワークアドレスを有しており、ステップ１５６でセッションセットアップサーバ４４は呼シグナリングメッセージを呼制御マネージャ３６に転送する。ステップ１５８は、ステップ１５８で呼制御マネージャ３６から返された呼シグナリングメッセージを受信することを表している。ステップ１５８で呼制御マネージャ３６から返されたものを受信したシグナリングメッセージはセッション参照ＩＤとＣＣＭ  ＲＴＰチャネルとを含む。ＣＣＭ  ＲＴＰチャネルは、呼制御マネージャ３６のグローバル一意ネットワークアドレスと、そのセッションのために呼制御マネージャ３６によって確立されたポート番号とを含む。
【００６５】
ステップ１６０は、受信側クライアントに対するオープンチャネルを使用してステップ１５８で受信した呼シグナリングメッセージを受信側クライアントに転送することを表している。ステップ１６２は、受信側から応答メッセージを受信することを表している。応答メッセージは、セッション参照ＩＤと受信側ＲＴＰチャネルを含む。受信側ＲＴＰチャネルは、受信側クライアントのネットワークアドレス（ローカルネットワークアドレス）とそのセッションのために受信側によって確立されたポート番号を含む。
【００６６】
ステップ１６２は、ステップ１６２で受信した応答メッセージを呼制御マネージャ３６に渡すことを表しており、ステップ１６６は、呼制御マネージャ３６から返された応答メッセージを受信することを表している。ステップ１６６で呼制御マネージャから返される応答は、セッション参照ＩＤと、そのセッションのために呼制御マネージャ３６によって確立されたＣＡＬＬ  ＣＯＮＴＲＯＬ  ＭＡＮＡＧＥＲ  ＲＴＰチャネルとを含む。
【００６７】
ステップ１６８は、発信側クライアントに対するオープンチャネルを使用して発信側クライアントに応答を送信することを表している。
【００６８】
呼制御マネージャ
図３ｂは、呼制御マネージャ３６の一例を示すブロック図である。呼制御マネージャ３６は、ディレクトリサーバ３８と同様に、セッション中継サーバアプリケーション４６、セッションデータベースアプリケーション４８、セッションセットアップサーバ５０を操作し、並びにインターネット１２に結合されている他の装置と通信するためにＩＰスイート１７およびネットワークインターフェース回路１５を操作するためのプロセッサ２２を含む一般的なサーバハードウェアに組み込むことができる。呼制御マネージャ３６およびディレクトリサーバ３８の構成は、ローカルエリアネットワークによって結合されるかまたはインターネットを介して結合される２つの別個のハードウェアシステムで動作することができると考えられる。また、呼制御マネージャ３６およびディレクトリサーバ３８は、同一のハードウェアシステム上で実施することができるとも考えられる。
【００６９】
図６のフローチャートは、ディレクトリサーバから呼シグナリングメッセージを受信したことに呼応して、セッションセットアップサーバ５０によって実行される複数のステップ（例えば、図５ｂのフローチャートのステップ１５６）を表している。ステップ２１２は、セッション参照ＩＤおよび発信側ＲＴＰチャネルを含む呼シグナリングメッセージを受信することを表している。ステップ２１４は、呼制御マネージャ３６のネットワークアドレスとそのセッションのために確立されたポート番号を含むＣＣＭ  ＲＴＰチャネルを確立するためにそのセッションにポート番号を割り当てることを表している。ステップ２１６は、セッション参照ＩＤと、発信側ＲＴＰチャネルと、ＣＣＭ  ＲＴＰチャネル（または少なくとも１つのポート番号）とをそれぞれセッションテーブル４８のフィールド２３０、２３４、および２３２に書き込むことを表している。
【００７０】
ステップ２１８は、発信側ＲＴＰチャネルを呼シグナリングメッセージ内のＣＣＭ  ＲＴＰチャネルに置き換えることを表しており、ステップ２２０は、ディレクトリサーバに呼シグナリングメッセージを返すこと（例えば、図５ｂのフローチャートのステップ１５８）を表している。
【００７１】
ステップ２２２は、セッション参照ＩＤおよび受信側ＲＴＰチャネルを含むディレクトリサーバ（例えば、図６ｂのステップ１６４）から応答メッセージを受信することを表している。ステップ２２４は、セッションテーブル４８のフィールド２３６に受信側ＲＴＰチャネルを書き込むことを表している。
【００７２】
ステップ２２６は、受信側ＲＴＰチャネルを応答メッセージ内のＣＣＭ  ＲＴＰチャネルに置き換えることを表しており、ステップ２２８は、ディレクトリサーバに応答メッセージを返すこと（例えば、図５ｂのフローチャートのステップ１６６）を表している。
【００７３】
図５ｂおよび図６のフローチャートのステップ終了後、発信側クライアントと受信側クライアントはＣＣＭ  ＲＴＰチャネルにアドレス指定したリアルタイムメディアフレームの送出を開始する。図７のフローチャートは、発信側クライアントと受信側クライアントの両方がＮＡＴサーバのサービスを受けている場合、これらクライアント間でタイムメディアフレームを中継するためにセッション中継サーバ４６によって実行される複数のステップを表している。
【００７４】
ステップ２４０は、発信側によって送出されたリアルタイムメディアフレームの少なくとも一部を組み込んだデータグラムを受信することを表している。ステップ２４２は、データグラムからソースネットワークアドレスを抽出することを表しており、ステップ２４４は、抽出したソースネットワークアドレスを発信側ＲＴＰチャネルのネットワークアドレスと比較することを表している。ステップ２４６で２つのアドレスが同一でない場合、ステップ２４８は、抽出したソースネットワークアドレスと抽出したポート番号をセッションテーブル４８の発信側ＲＴＰチャネルフィールド２３４に書き込むことを表している。ステップ２５０は、その宛先アドレスに対する受信側ＲＴＰチャネルとそのソースアドレスに対するＣＣＭ  ＲＴＰチャネルを使用して受信側にデータグラムを転送することを表している。データグラムはリアルタイムメディアデータを含んでいるので、ステップ２５０でデータグラムを受信側に転送することはステップ２４２から２４８を同時に実行するか、またはステップ２４２から２４８を実行する前に実行することができることを理解されたい。また、ステップ２４２から２４８は各データグラムに対して実行する必要はなく、定期的に実行するだけでよいということも理解されたい。
【００７５】
同様にステップ２５２は、受信側によって送出されたリアルタイムメディアフレームの少なくとも一部を組み込んだデータグラムを受信することを表している。ステップ２５４は、データグラムからソースネットワークアドレスを抽出することを表しており、ステップ２５６は、抽出したソースネットワークアドレスを受信側ＲＴＰチャネルのネットワークアドレスと比較することを表している。ステップ２５８で２つのアドレスが同一でない場合、ステップ２６０は、抽出したソースネットワークアドレスと抽出したポート番号をセッションテーブル４８の受信側ＲＴＰチャネルフィールド２３６に書き込むことを表している。ステップ２６２は、宛先アドレスに対する発信側ＲＴＰチャネルとソースアドレスに対するＣＣＭ  ＲＴＰチャネルを使用して発信側にデータグラムを転送することを表している。ここでもまた、データグラムはリアルタイムメディアデータを含んでいるので、ステップ２６２で発信側にデータグラムを転送することは、ステップ２５４から２６０までとステップ２５４から２５０までを実行するのと同時、またはこれらの実行以前に、あるいはステップ２５４から２６０までを実行する前に実行することができるということを理解されたい。
【００７６】
クライアント
図８を参照すると、クライアント１０２の一例を示すブロック図が示されている。クライアント１０２の構成は図１のクライアント１４、１６または１８に適用することができる。クライアント１０２は、デスクトップコンピュータ１０４と、そのコンピュータに結合されている従来型電話サーバ（ＰＯＴＳ）電話１２４とを含むことができる。デスクトップコンピュータ１０４は、ネットワークに結合された他の装置と通信するためにリアルタイムストリーミングメディアアプリケーション１０８、リアルタイム転送プロトコルエンジン１０６、ＩＰスイート１１０およびネットワークインターフェース回路１１６を操作するためのプロセッサ１１２を含むことができる。プロセッサ１１２は、ＰＯＴＳエミュレーション回路１１４を操作することもできる。
【００７７】
ＰＯＴＳエミュレーション回路１１４は、ＰＯＴＳ電話１２４をＰＯＴＳエミュレーション回路１１４に結合するためのＲＪ−１１雌ジャック１２２を含む。ＰＯＴＳエミュレーション回路１１４は、電話１２４を操作するためのＰＯＴＳチップおよびリング回線上で低周波ＰＯＴＳ信号をエミュレートするためのチップおよびリングエミュレーション回路１２０を含んでいる。ＰＯＴＳエミュレーション回路１１４は、メディア通信アプリケーション１０８によってチップおよびリングエミュレーション回路１２０をインターフェースするためのオーディオシステム１１８をさらに含む。さらに具体的には、オーディオシステム１１８は、電話１２４のマイクロフォンによって生成された（またチップおよびリング回線上のＰＯＴＳエミュレーション回路１１４に装備された）アナログオーディオ信号をデジタル化し、メディア通信アプリケーション１０８にデジタルオーディオ信号を提示する（好適には、直接メモリアクセスシステムを使用してメモリにデジタルオーディオデータを書き込むことによって）ことを規定する。オーディオシステム１１８は、メディア通信アプリケーション１０８からデジタルオーディオ信号を受信し、デジタルオーディオ信号をアナログオーディオ信号に変換し、アナログオーディオ信号をチップおよびリングエミュレーション回路１２０に結合することも同時に規定している。チップおよびリングエミュレーション回路１２０は、オーディオシステム１１８によって生成されたアナログオーディオ信号に従って電話１２４のスピーカーを駆動するためにチップおよびリング回線を変調する。
【００７８】
クライアント１０２がデスクトップコンピュータ１０４および電話１２４上で実施されることに加えて、上記システムすべてを内蔵したクライアント１０２の他の構成が考えられる。他の構成は、限定はしないが、ネットワークインターフェースホーム電話として構成されているインターネットテレフォニー機器、ゲーム装置、または携帯電話ネットワーク、ＰＣＳネットワークまたは他の広域ＲＦネットワークなどの有線接続または無線接続を介してインターネット１２（図１）に結合されたインターネットテレフォニー機能を有する他の家庭用製品を含む。
【００７９】
図８と併せて図９ａのフローチャートを参照すると、他のクライアントとのリアルタイムメディアセッションを開始するためにメディア通信アプリケーション１０８によって実行される複数のステップが示されている。ステップ２７０は、メディアセッションに対して発信側ＲＴＰチャネル（または少なくとも１つのポート番号）を確立することを表している。ステップ２７２は、ディレクトリサーバ３８に呼要求メッセージを送信することを表しており（例えば、図５ａのステップ１３０）、ステップ２７４は、ディレクトリサーバ３８から返される呼要求確認を受信することを表している（例えば、図５ａのステップ１４０、１４２、または１４４）。
【００８０】
ステップ２７４で呼要求確認を受信した後、メディア通信アプリケーション１０８は、ステップ２７６で、呼要求確認メッセージで指定したネットワークアドレスに呼シグナリングメッセージを送信する。受信側がグローバル一意ネットワークアドレスを有している場合、呼要求確認は受信側ネットワークアドレスを含み、ステップ２７６で送信された呼シグナリングメッセージは受信側に直接向かうということを理解されたい。受信側はグローバル一意ネットワークアドレスを有していないがローカル呼制御マネージャのサービスを受けている場合、呼要求確認はローカル呼制御マネージャのネットワークアドレスを含み、ステップ２７６で送信された呼シグナリングメッセージはローカル呼制御マネージャに直接向かう。受信側がグローバル一意ネットワークアドレスを有しておらずローカル呼制御マネージャのサービスも受けていない場合、呼要求確認はディレクトリサーバ３８のネットワークアドレスを含み、ステップ２７６で送信された呼シグナリングメッセージはディレクトリサーバ３８に向かう。
【００８１】
ステップ２７８は、受信側クライアント、ローカル呼制御マネージャ、ディレクトリサーバ３８のどれかからの、リアルタイムストリーミングメディアフレームを送信するためのセッション参照ＩＤおよび指定したＲＴＰチャネルを含む応答メッセージを受信することを表している。
【００８２】
ボックス２８０内の複数のステップは、メディアセッション中に実行される複数のステップを表している。ステップ２８２は、指定したＲＴＰチャネルに対するリアルタイムストリーミングメディアフレームを表すデータグラムを送信することを表している。ステップ２８４は、ステップ２７０で確立された発信側ＲＴＰチャネルのリアルタイムストリーミングメディアフレームを表すデータグラムを受信することを表している。指定したＲＴＰチャネルは受信側のローカルネットワークアドレスを含むことができるので（発信側がグローバル一意ネットワークアドレスを有しており、受信側がローカルネットワークアドレスを有している場合）、指定したＲＴＰチャネルに送信されたフレームは受信側には到達しないことになる。したがって、ステップ２８６で、メディア通信アプリケーション１０８は、発信側ＲＴＰチャネルで受信したデータグラムからソースネットワークアドレスを抽出する。ステップ２８８で、メディア通信アプリケーションは、抽出したソースネットワークアドレスを指定したＲＴＰチャネルのネットワークアドレスと比較する。これらの２つのアドレスが同一でない場合、メディア通信アプリケーション１０８は、ステップ２９０で抽出したソースネットワークアドレスと抽出したソースポート番号を反映するように、指定したＲＴＰチャネルを更新する。
【００８３】
同様に、図９ｂのフローチャートは、受信側として動作する際にメディア通信アプリケーションによって実行される複数のステップを表している。ステップ２９２は、指定したＲＴＰチャネルを含む呼シグナリングメッセージを受信することを表している。指定したＲＴＰチャネルは、発信側クライアントがグローバル一意ネットワークアドレスを有している場合は発信側クライアントのＲＴＰチャネルであってよく、発信側クライアントがローカルネットワークアドレスを有している場合はＣＣＭ  ＲＴＰチャネルであってよい。
【００８４】
ステップ２９４は、セッションのための受信側ＲＴＰチャネルまたはそのセッションのための少なくとも１つのポート番号を確立することを表しており、ステップ２９６は、受信側ＲＴＰチャネルを含む応答メッセージを返すことを表している。ステップ２９８は、図９ｂを参照して説明した複数のステップを含むメディアセッションを表している。
【００８５】
端的に言えば、上記のシステムおよび方法は、２つのクライアントのうち一方または両方のクライアントが専用ネットワークアドレスを有しており、アドレス変換とポート変換を実行するファイアーウォールサーバによってインターネットに結合されている場合は、これら２つのクライアント間のリアルタイムメディア通信を提供する。
【００８６】
提供されたシステムおよび方法は、どのような呼シグナリングプロトコルおよび各クライアントが認識するメディアセッション圧縮プロトコルと共に機能するということを理解されたい。このようなプロトコルは、限定はしないが、上述のＩＴＵプロトコルおよびＩＥＴＦＰプロトコルを含む。以上、本発明を特定の好ましい実施形態に関して示し、説明したが、等価形態および修正形態もなされることは本明細書を読み理解すれば当業者には明らかである。本発明は、そのような等価形態および修正形態をすべて含み、特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００８７】
【図１】本発明の一実施形態に関するリアルタイムメディア通信ネットワークのブロック図である。
【図２ａ】本発明の一実施形態に関する呼セットアップメッセージングを示すブロック図である。
【図２ｂ】本発明の一実施形態に関する呼セットアップメッセージングを示すブロック図である。
【図３ａ】本発明の一実施形態に関するディレクトリサーバのブロック図である。
【図３ｂ】本発明の一実施形態に関する呼制御マネージャのブロック図である。
【図４ａ】本発明の一実施形態に関するクライアント登録アプリケーションの動作例を示すフローチャートである。
【図４ｂ】本発明の一実施形態に関するクライアント登録アプリケーションの動作例を示すフローチャートである。
【図５ａ】本発明の一実施形態に関するディレクトリサーバセットアップアプリケーションの動作例を示すフローチャートである。
【図５ｂ】本発明の一実施形態に関するディレクトリサーバセットアップアプリケーションの動作例を示すフローチャートである。
【図６】本発明の一実施形態に関する呼制御マネージャセッションセットアップアプリケーションの動作例を示すフローチャートである。
【図７】本発明の一実施形態に関するセッション中継サーバの動作例を示すフローチャートである。
【図８】本発明の一実施形態に関するリアルタイムストリーミングメディアクライアントのブロック図である。
【図９ａ】本発明の一実施形態に関するクライアントの動作例を示すフローチャートである。
【図９ｂ】本発明の一実施形態に関するクライアントの動作例を示すフローチャートである。
【図１】
2004528774.tif 000003
【図２ａ】
2004528774.tif 000004
【図２ｂ】
2004528774.tif 000005
【図３ａ】
2004528774.tif 000006
【図３ｂ】
2004528774.tif 000007
【図４ａ】
2004528774.tif 000008
【図４ｂ】
2004528774.tif 000009
【図５ａ】
2004528774.tif 000010
【図５ｂ】
2004528774.tif 000011
【図６】
2004528774.tif 000012
【図７】
2004528774.tif 000013
【図８】
2004528774.tif 000014
【図９ａ】
2004528774.tif 000015
【図９ｂ】
2004528774.tif 000016
【国際公開パンフレット】
2004528774.tif 000017
2004528774.tif 000018
2004528774.tif 000019
2004528774.tif 000020
2004528774.tif 000021
2004528774.tif 000022
2004528774.tif 000023
2004528774.tif 000024
2004528774.tif 000025
2004528774.tif 000026
2004528774.tif 000027
2004528774.tif 000028
2004528774.tif 000029
2004528774.tif 000030
2004528774.tif 000031
2004528774.tif 000032
2004528774.tif 000033
2004528774.tif 000034
2004528774.tif 000035
2004528774.tif 000036
2004528774.tif 000037
2004528774.tif 000038
2004528774.tif 000039
2004528774.tif 000040
2004528774.tif 000041
2004528774.tif 000042
2004528774.tif 000043
2004528774.tif 000044
2004528774.tif 000045
2004528774.tif 000046
2004528774.tif 000047
2004528774.tif 000048
2004528774.tif 000049
2004528774.tif 000050
2004528774.tif 000051
2004528774.tif 000052
2004528774.tif 000053
2004528774.tif 000054
2004528774.tif 000055
2004528774.tif 000056
2004528774.tif 000057
2004528774.tif 000058
2004528774.tif 000059
2004528774.tif 000060
2004528774.tif 000061
【国際調査報告】
2004528774.tif 000062
2004528774.tif 000063
2004528774.tif 000064
2004528774.tif 000065