(57)【特許請求の範囲】
【請求項１】
発呼者のプライベートネットワークにおけるファイアウォールを通過する方法であって、
パブリックネットワークにおけるＳＩＰプロキシにより、発呼者からのＳＩＰ勧誘要求を受信するステップと、
前記発呼者のための中継エージェントに、前記ＳＩＰプロキシのパブリックアドレス及び前記ＳＩＰ勧誘要求から得られる発呼者プライベートＳＩＰアドレスを含む第１ファイアウォール穴開け要求を送信して、前記ファイアウォールに前記ＳＩＰプロキシからのＳＩＰ信号伝達メッセージを送信するためのポートを開けるステップと、
前記中継エージェントから、前記ファイアウォールにおける前記ＳＩＰプロキシからのＳＩＰ信号伝達メッセージのために開けられたポートのパブリックアドレスを含む第１穴開け応答メッセージを受信するステップと、
前記ＳＩＰ勧誘要求を、前記ＳＩＰプロキシから受呼者に送信するステップと、
前記ＳＩＰプロキシにおいて、前記ＳＩＰ勧誘要求に応答するＳＩＰ応答メッセージを受信するステップと、
前記ＳＩＰ応答メッセージを、前記ＳＩＰプロキシから前記ＳＩＰ信号伝達メッセージのために開けられたポートのパブリックアドレスに送信するステップと、
を有する方法。
【請求項２】
同一のＳＩＰ対話内の前記受呼者からのＳＩＰ信号伝達が前記発呼者に前記ＳＩＰプロキシを介して送信されることを保証するために、前記ＳＩＰ勧誘を前記受呼者に送信する前に該ＳＩＰ勧誘を修正するステップを更に有する請求項１に記載の方法。
【請求項３】
前記ＳＩＰ勧誘を前記ＳＩＰプロキシから前記受呼者に関連付けられた所定のアドレスに送信する前に前記ＳＩＰ勧誘を修正するステップが、
前記ＳＩＰ応答メッセージが前記ＳＩＰプロキシに伝送されるように、ＶＩＡヘッダフィールドに前記ＳＩＰプロキシのパブリックアドレスを最上位アドレスとして追加するステップと、
同一のＳＩＰ対話内の前記発呼者からの後続のＳＩＰ要求が前記発呼者のための中継エージェントを介して送信されるように、前記発呼者のための中継エージェントのアドレスを含む第１記録経路を前記ＳＩＰ勧誘要求に追加するステップと、
前記受呼者がパブリックネットワーク内にある場合に、該受呼者からの新たなＳＩＰ要求が前記ＳＩＰプロキシを介して送信されるように、前記ＳＩＰプロキシのアドレスを含む第２記録経路を前記ＳＩＰ勧誘要求に追加するステップと、
前記受呼者がプライベートネットワーク内にある場合に、該受呼者からの新たなＳＩＰ要求が前記受呼者のための中継エージェントを介して送信されるように、前記受呼者の中継エージェントのアドレスを含む第２記録経路を前記ＳＩＰ勧誘要求に追加するステップと、
を有する請求項２に記載の方法。
【請求項４】
前記ＳＩＰ勧誘を前記ＳＩＰプロキシから前記受呼者に関連付けられた所定のアドレスに送信する前に前記ＳＩＰ勧誘を修正するステップが、前記ＳＩＰ勧誘要求の要求ＵＲＩを前記受呼者の宛先ＵＲＩと合致するように修正するステップを更に有する請求項３に記載の方法。
【請求項５】
前記受呼者からのメディアパケットを受信するためのファイアウォールポートを開けるために、前記受呼者により送信されるメディアパケットの見掛けパブリック送信元アドレスを含む第２ファイアウォール穴開け要求を前記発呼者のための中継エージェントに送信するステップと、
前記発呼者のための中継エージェントから、前記ファイアウォールにおける前記受呼者からのメディアパケットを受信するために開けられたポートのパブリックアドレスを含む第２穴開け応答メッセージを受信するステップと、
を更に有する請求項１に記載の方法。
【請求項６】
前記受呼者からのメディアパケットを受信するための１以上のポートを予約するために、各々が前記受呼者からのメディアパケットを中継するために前記発呼者の宛先アドレスを含む１以上のポート予約要求を前記受呼者のための中継エージェントに送信するステップと、
前記ポート予約要求に応答して前記受呼者のための中継エージェントから、各々が予約されたポートのアドレスを含む１以上のポート予約応答を受信するステップと、
を更に有する請求項５に記載の方法。
【請求項７】
メディア接続のための宛先アドレスが、
前記発呼者のための中継エージェントにおけるプロキシアドレス、又は
前記ファイアウォールにおいて前記受呼者からのメディアパケットを受信するために開けられたポートのパブリックアドレス、
となるように、前記ＳＩＰ勧誘要求を送信する前に該ＳＩＰ勧誘要求におけるメディア記述を修正するステップを更に有する請求項６に記載の方法。
【請求項８】
受呼者のネットワークにおけるファイアウォールを通過する方法であって、
パブリックネットワークにおけるＳＩＰプロキシにより、発呼者からのＳＩＰ勧誘要求を受信するステップと、
前記受呼者のための中継エージェントに、前記ＳＩＰプロキシのパブリックアドレス及び前記受呼者のプライベートアドレスを含む第１ファイアウォール穴開け要求を送信して、前記ＳＩＰプロキシからのＳＩＰ勧誘要求を送信するためのファイアウォールポートを開けるステップと、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記ＳＩＰプロキシからのＳＩＰ勧誘要求のために開けられたポートのパブリックアドレスを含む第１穴開け応答メッセージを受信するステップと、
前記ＳＩＰ勧誘要求を、ＳＩＰ勧誘要求を該ＳＩＰ勧誘要求のために開けられた前記ファイアウォールポートのパブリックアドレスに送信することにより、前記ＳＩＰプロキシから前記受呼者に送信するステップと、
前記ＳＩＰプロキシにおいて、前記ＳＩＰ勧誘要求に応答した前記受呼者からのＳＩＰ応答メッセージを受信するステップと、
前記ＳＩＰ応答メッセージを、前記ＳＩＰプロキシから前記発呼者に送信するステップと、
を有する方法。
【請求項９】
同一のＳＩＰ対話内の前記受呼者からのＳＩＰ信号伝達メッセージが前記発呼者に前記ＳＩＰプロキシを介して送信されることを保証するために、前記ＳＩＰ勧誘を前記ＳＩＰプロキシから前記受呼者に関連付けられた所定のアドレスに送信する前に該ＳＩＰ勧誘を修正するステップを更に有する請求項８に記載の方法。
【請求項１０】
前記ＳＩＰ勧誘要求を修正するステップが、
前記ＳＩＰ応答メッセージが前記ＳＩＰプロキシに伝送されるように、ＶＩＡヘッダフィールドに前記ＳＩＰプロキシのパブリックアドレスを最上位アドレスとして追加するステップと、
前記発呼者がパブリックネットワーク内に位置する場合に、同一のＳＩＰ対話内の前記発呼者からの後続のＳＩＰ要求が前記ＳＩＰプロキシを介して送信されるように、前記ＳＩＰプロキシのアドレスを含む第１記録経路を前記ＳＩＰ勧誘要求に追加するステップと、
前記発呼者が第２プライベートネットワーク内に位置する場合に、同一のＳＩＰ対話内の前記発呼者からの後続のＳＩＰ要求が該発呼者のための中継エージェントを介して送信されるように、前記発呼者のための中継エージェントのアドレスを含む第１記録経路を前記ＳＩＰ勧誘要求に追加するステップと、
前記受呼者からの新たなＳＩＰ要求が該受呼者のための中継エージェントを介して送信されるように、前記受呼者のための中継エージェントのアドレスを含む第２記録経路を前記ＳＩＰ勧誘要求に追加するステップと、
を有する請求項９に記載の方法。
【請求項１１】
前記発呼者からのメディアパケットを受信するための１以上のファイアウォールポートを開けるために、前記発呼者により送信されるメディアパケットの見掛けパブリック送信元アドレスを含む第２ファイアウォール穴開け要求を前記受呼者のための中継エージェントに送信するステップと、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記発呼者からのメディアパケットを受信するために開けられたファイアウォールポートのパブリックアドレスを含む第２穴開け応答メッセージを受信するステップと、
を更に有する請求項８に記載の方法。
【請求項１２】
前記発呼者からのメディアパケットを受信するための１以上のポートを予約するために、各々が前記発呼者からのメディアパケットを中継するために前記受呼者の宛先アドレスを含む１以上のポート予約要求を前記発呼者のための中継エージェントに送信するステップと、
前記ポート予約要求に応答して前記発呼者のための中継エージェントから、各々が予約されたポートのアドレスを含む１以上のポート予約応答を受信するステップと、
を更に有する請求項１１に記載の方法。
【請求項１３】
メディア接続の宛先アドレスが、
前記発呼者に関連付けられた中継エージェントにおけるプロキシアドレス、又は
前記ファイアウォールにおいて前記発呼者からのメディアパケットを受信するために開けられたポートのパブリックアドレス、
となるように、前記ＳＩＰ応答メッセージを前記ＳＩＰプロキシから前記中継エージェントに送信する前に該ＳＩＰ応答メッセージにおけるメディア記述を修正するステップを更に有する請求項１３に記載の方法。
【請求項１４】
前記ＳＩＰプロキシからのＳＩＰ信号伝達メッセージを送信するためのファイアウォールポートを開くために、該ＳＩＰプロキシのパブリックアドレス及び前記ＳＩＰ応答メッセージから得られる前記受呼者のプライベートアドレスを含む第３ファイアウォール穴開け要求を前記受呼者のための中継エージェントに送信するステップと、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記ＳＩＰプロキシからのＳＩＰ信号伝達メッセージのために開けられたポートのパブリックアドレスを含む第３穴開け応答メッセージを受信するステップと、
を更に有する請求項８に記載の方法。
【請求項１５】
プライベートネットワークのファイアウォールにおけるポートを開く方法であって、
プライベートネットワークを保護するファイアウォール内のポートを開くために、外部ネットワークにおけるアプリケーションサーバから、データパケットが送出されるパブリックネットワーク内の指定された目標アドレス及び前記データパケットが送られる前記プライベートネットワーク内の指定されたプライベート宛先アドレスを含むファイアウォール穴開け要求を受信するステップと、
前記ファイアウォール内のファイアウォールポートを、前記ファイアウォール穴開け要求で指定された前記目標アドレスにファイアウォール穴開けパケットを送信することにより開くステップと、
前記ファイアウォール穴開けパケットに対する前記ファイアウォールポートのパブリックアドレスを含む応答を受信するステップと、
前記ファイアウォール穴開け要求に応答して、前記ファイアウォールポートのパブリックアドレスを含む穴開け応答メッセージを前記アプリケーションサーバに送信するステップと、
を有する方法。
【請求項１６】
ファイアウォールにおけるポートを開く方法であって、
ファイアウォールポートを介してパブリックネットワーク内の目標アドレスに送信されるファイアウォール穴開けパケットを捕捉するステップであって、前記ファイアウォール穴開けパケットが、該パケットが伝送された前記ファイアウォールポートを示すパブリック送信元アドレスを含むようなステップと、
前記ファイアウォール穴開けパケットに応答して、前記ファイアウォール穴開けパケットのパブリック送信元アドレスを含んだペイロードを有する応答メッセージを、前記ファイアウォール穴開けパケットで指定されたパブリック送信元アドレスに送信するステップと、
を有する方法。
【請求項１７】
発呼者のプライベートネットワークにおけるファイアウォールを通過するためのシステムであって、
発呼者からＳＩＰ勧誘要求を受信すると共に、該ＳＩＰ勧誘要求を当該ＳＩＰプロキシから受呼者に送信し、
前記ＳＩＰ勧誘要求に応答したＳＩＰ応答メッセージを当該ＳＩＰプロキシにおいて受信すると共に、該ＳＩＰ応答メッセージを当該ＳＩＰプロキシから前記発呼者に送信する、
ように構成されたＳＩＰプロキシと、
前記発呼者のための中継エージェントに、前記ＳＩＰプロキシのパブリックアドレス及び前記ＳＩＰ勧誘要求から得られる前記発呼者のプライベートアドレスを含む第１ファイアウォール穴開け要求を送信して、前記ファイアウォールにＳＩＰ信号伝達メッセージを前記ＳＩＰプロキシから前記発呼者に送信するためのポートを開け、
前記中継エージェントから、前記ファイアウォールにおける前記ＳＩＰプロキシからのＳＩＰ信号伝達メッセージのために開けられたポートのパブリックアドレスを含む第１穴開け応答メッセージを受信する、
ように構成されたサーバと、
を有するシステム。
【請求項１８】
受呼者のネットワークにおけるファイアウォールを通過するためのシステムであって、
発呼者からＳＩＰ勧誘要求を受信し、
前記ＳＩＰ勧誘要求を該ＳＩＰ勧誘要求のために開けられたファイアウォールポートのパブリックアドレスに送信することにより、前記ＳＩＰ勧誘要求を当該ＳＩＰプロキシから受呼者に送信し、
前記ＳＩＰ勧誘要求に応答した前記受呼者からのＳＩＰ応答メッセージを受信し、
前記ＳＩＰ応答メッセージを当該ＳＩＰプロキシから前記発呼者へ送信する、
ように構成されたＳＩＰプロキシと、
前記受呼者のための中継エージェントに、前記ＳＩＰプロキシのパブリックアドレス及び前記受呼者のプライベートアドレスを含む第１ファイアウォール穴開け要求を送信して、前記ＳＩＰプロキシから前記ＳＩＰ勧誘要求を送信するためのファイアウォールポートを開け、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記ＳＩＰプロキシからの前記ＳＩＰ勧誘要求のために開けられたポートのパブリックアドレスを含む第１穴開け応答メッセージを受信する、
ように構成されたサーバと、
を有するシステム。
【請求項１９】
ファイアウォールにおけるポートを開ける装置であって、
当該装置を前記ファイアウォールにより保護されたプライベートネットワークと接続するためのネットワークインターフェースと、
前記ネットワークインターフェースに接続されたプロセッサであって、
プライベートネットワークを保護するファイアウォール内のポートを開くために、外部ネットワークにおけるアプリケーションサーバから、データパケットが送出されるパブリックネットワーク内の指定された目標アドレス及び前記データパケットが送られる前記プライベートネットワーク内の指定されたプライベート宛先アドレスを含むファイアウォール穴開け要求を受信し、
前記ファイアウォール穴開け要求に応答して、前記ファイアウォール内のファイアウォールポートを、前記ファイアウォール穴開け要求で指定された前記目標アドレスにファイアウォール穴開けパケットを送信することにより開き、
前記ファイアウォール穴開けパケットに対する前記ファイアウォールポートのパブリックアドレスを含む応答を受信し、
前記ファイアウォール穴開け要求に応答して、前記ファイアウォールポートのパブリックアドレスを含む穴開け応答メッセージを前記アプリケーションサーバに送信する、
ように構成されたプロセッサと、
を有する装置。
【請求項２０】
ファイアウォールにおけるポートを開けるための装置であって、
当該装置を前記ファイアウォールにより保護されたプライベートネットワークと接続するためのネットワークインターフェースと、
前記ネットワークインターフェースに接続されたプロセッサであって、
ファイアウォールポートを介してパブリックネットワーク内の目標アドレスに送信されるファイアウォール穴開けパケットであって、当該ファイアウォール穴開けパケットが伝送された前記ファイアウォールポートを示すパブリック送信元アドレスを含むようなファイアウォール穴開けパケットを捕捉し、
前記ファイアウォール穴開けパケットに応答して、前記ファイアウォール穴開けパケットのパブリック送信元アドレスを含んだペイロードを有する応答メッセージを、前記ファイアウォール穴開けパケットで指定されたパブリック送信元アドレスに送信する、
ように構成されたプロセッサと、
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００９年２月６日に出願された米国仮特許出願６１／１５０３７８の利益を享受し、この仮出願は参照のため本願明細書の一部とする。
【０００２】
本発明は、広くはネットワークアドレス変換器の通過に係り、更に詳細には、ＶｏＩＰ（Voice Over Internet Protocol）及び他の通信セッション用の対称ネットワークアドレス変換器を通過する（越える）ための拡縮可能（スケーラブル）な解決策に関する。
【背景技術】
【０００３】
インターネットは、公衆的（パブリック）及び私的（プライベート）な多くの相互接続されたコンピュータネットワークの全世界的システムである。インターネットは、インターネットプロトコル（ＩＰ）、伝送制御プロトコル（ＴＣＰ）及びユーザデータグラムプロトコル（ＵＤＰ）等の標準プロトコルを用いた２つの装置又は端点間の直接的端間接続性を可能にする。インターネットに接続された各装置にはＩＰアドレスが割り当てられ、該ＩＰアドレスはデータパケットの経路指定（ルーティング）を可能にする。現在のところ、殆どの装置はインターネットプロトコルバージョン４（ＩＰｖ４）で指定されたアドレス方式を用いている。インターネットの開放型アーキテクチャ及び準世界的アクセス可能性の結果、業務及び個人によりインターネットが広く採用され使用されるようになった。
【０００４】
インターネットを流行させたフィーチャは、その欠点の幾つかの要因ともなる。例えば、全世界的アクセス及び直接的端間接続性は、地球の反対側のユーザが互いに直接通信するのを可能にするが、コンピュータをハッカ及び他の悪意のある第三者に曝させる。直接的端間接続性は、各端部装置に固有のインターネットＩＰアドレスが付与されるべきことも要する。しかしながら、インターネットの広く普及した採用の結果、ＩＰｖ４アドレス空間における利用可能なアドレスが枯渇している。
【０００５】
セキュリティの問題に対処するために、殆どの民間事業及び家庭ネットワークは今や何らかの形のファイアウォールを導入している。ファイアウォールは、保護されたネットワークへの権限のないアクセスを阻止する一方、ファイアウォールの外側のユーザとの認可された通信を許可するハードウェア及び／又はソフトウェアを有する。ファイアウォールは、保護されたネットワークに侵入するパケットに所定のセキュリティ・ポリシ（security policy）を適用することにより、権限のないアクセスから保護する。斯かるセキュリティ・ポリシは、当該保護されたネットワークに入る又は該ネットワークから出るデータパケットを支配する一群の規則及び手順を含む。ファイアウォールは、定められたポリシの特定の規則に基づいて、パケットが当該ファイアウォールを通過するのを許可する。殆どの場合、ファイアウォールは保護されたネットワーク内で発生した殆どの外に向かうパケットが当該ファイアウォールを通過するのを許可する一方、パブリック（公衆）ネットワークからの到来パケットを阻止する。パブリックネットワークからのデータトラフィックは、定められたアクセス制御フィルタに従う場合、送出データパケットに応答して送られた場合、又は既に確立された通信セッションの一部である場合にのみ、通過するのを許可される。
【０００６】
アドレス消尽の問題は、典型的には、ネットワークアドレス変換（ＮＡＴ）と呼ばれる技術を使用することにより処理される。ネットワークアドレス変換は、通常、全体のネットワークセキュリティ構成の一部としてファイアウォールと一緒に実施される。ネットワークアドレス変換は、プライベートネットワークに接続された装置が単一のＩＰアドレスを共用することを可能にする。ネットワークアドレス変換の背後に存する基本的思想は、プライベートアドレス空間のプライベートアドレスを当該プライベートネットワークに接続された装置に割り当てるというものである。プライベートアドレスは公衆のインターネットとは異なるアドレス空間を使用するので、プライベートアドレスを含むパケットはインターネットを介して経路指定することはできない。プライベートＩＰアドレスを持つ装置がインターネット上の他の装置と通信するのを可能にするために、ＮＡＴ（ネットワークアドレス変換機構）は、当該プライベートアドレス空間内で有効なパケットのプライベートな送信元（ソース）及び宛先（デスティネーション）アドレスを、パブリックアドレス空間内で有効なパブリックの送信元及び宛先アドレスに変換する。
【０００７】
各々が一層高いレイヤの通信プロトコルに異なるように影響を与えるような、多くの異なるＮＡＴ構成が存在する。本発明は対称ＮＡＴを越える（通過する）場合の問題に対処するものであるが、本発明は他のタイプのＮＡＴ構成に対しても使用することができる。対称ＮＡＴにおいては、同一のプライベートＩＰアドレス及びポートから特定の宛先ＩＰアドレス及びポートへの各要求（リクエスト）は、固有のパブリック送信元ＩＰアドレス及びポートにマッピングされる。同一の内部ホストが同一のプライベート送信元アドレス及びポートを持つデータパケットを、異なるパブリックＩＰアドレス又はポートに送る場合、異なるマッピングが使用される。対称ＮＡＴにおいては、外部ホストにより送られたデータパケットは、内部ホストが当該データパケットを送る外部ホストからの応答を以前に誘った場合にのみ、通過されるであろう。外部ホストからの誘われていないデータパケットは、ＮＡＴにより阻止されるであろう。
【０００８】
ネットワークアドレス変換は、ＨＴＴ、ＰＯＰ及びＳＭＴＲ等の通常に使用されるプロトコルに対しては良好に動作するが、明示的なネットワークアドレスをペイロード内で送る幾つかのアプリケーションレベルの通信プロトコルに対しては問題を生じ得る。例えば、セッション確立プロトコル（ＳＩＰ）はボイスオーバＩＰ（ＶｏＩＰ）セッションを設定、維持及び終了させるために使用される信号伝達プロトコルである。典型的なＶｏＩＰアプリケーションは、音声、ビデオ及びｆａｘトラフィック等の信号伝達トラフィック（signaling traffic）及びメディアトラフィックのために異なるアドレス及び／又はポートを使用するであろう。ＶｏＩＰセッションを設定するために、発呼者は受呼者（着呼者：called party）を、ＳＩＰ勧誘（INVITE）要求を送出することにより呼に参加するように勧誘する。受呼者は該勧誘を、ＳＩＰ応答（RESPONSE）メッセージを送出することにより受諾する。ＳＩＰ勧誘及びＳＩＰ応答メッセージは、典型的には、特定のアドレス及びＲＴＰ（メディア）トラフィックに対して開かれているポートを含んでいる。
【０００９】
受呼者が対称ＮＡＴの背後にいる場合、ＳＩＰ勧誘要求は該ＮＡＴにより阻止され、該受呼者に決して届くことはない。受呼者に到達可能であったとしても、該受呼者からのＳＩＰ応答は、発呼者が対称ファイアウォール／ＮＡＴの背後にいる状況では、阻止され得る。更に、ＶｏＩＰアプリケーションは、典型的には、例えば音声データ等のＲＴＰ又はＲＴＣＰトラフィックを送信及び受信するために異なるＩＰアドレス及びポートを使用する。ＶｏＩＰクライアントは、斯かるＲＴＰ及びＲＴＣＰトラフィックのためにＮＡＴにより割り当てられた外部アドレスを知る方法を有さない。
【００１０】
ボイスオーバＩＰ通信に対する上記のＮＡＴ（通過）問題を解決するために、多数の技術が使用されている。１つの解決策は、アプリケーションレベルのゲートウェイ（ＡＬＧ）を使用することである。アプリケーションレベルゲートウェイは、ＮＡＴを通過するデータパケットの調査及び変更を可能にするソフトウェアコンポーネントである。ＳＩＰプロトコルパケットの場合、ＡＬＧは、ＳＩＰメッセージのペイロードに含まれるプライベート送信元及び宛先アドレスをパブリック送信元及び宛先アドレスにより置換することができる。この技術は、セキュリティ及び正真性（authenticity）を保証するものでなく、ＡＬＧがアプリケーションレベルのプロトコルの知識を有さねばならないので、配備することが困難である。このように、典型的には各アプリケーションに対して別個のＡＬＧが必要となる。
【００１１】
RFC5389に記載されたＳＴＵＮ（Session Traversal Utility
for NAT：ＮＡＴ用のセッション通過ユーティリティ）と称されるネットワークプロトコルは、プライベートネットワーク内のホスト装置が、ネットワークアドレス変換機構の存在を発見すると共に、遠隔ホストに対するユーザのＵＤＰ接続のために割り当てられたパブリックＮＡＴアドレスを取得するのを可能にする。クライアント装置は、遠隔ホストとの通信を確立する前に、ＳＴＵＮ要求を発生し、該要求をパブリックネットワーク内のＳＴＵＮアプリケーションサーバに送出する。この要求は、ＮＡＴにパブリックアドレスを割り付けさせると共に、当該ＳＴＵＮ要求のパブリックアドレスとプライベート送信元アドレスとの間の結びつきを生成させる。ＳＴＵＮアプリケーションサーバは、上記クライアントに対してＳＴＵＮ応答を送信し、該応答のペイロード内で前記ＮＡＴにより割り当てられたパブリックＮＡＴアドレスを返送する。次いで、当該クライアントは、このアドレスをＵＤＰパケット（信号伝達パケット及びメディアパケットの両方のための）を受信するアドレスとして公示することができる。該ＳＴＵＮプロトコルは、当該クライアントがＳＴＵＮアプリケーションサーバのパブリックアドレス以外のパブリックアドレスからパケットを受信しようとしているような状況においては、対称ファイアウォールに対して動作しない。
【００１２】
ＴＵＲＮ（Traversal Using Relay NAT：中継ＮＡＴを用いる通過）と称されるプロトコルは、ＮＡＴの背後のクライアントに対して、該クライアントがＴＣＰ又はＵＤＰ接続を介して到来データを受信するのを可能にするアプリケーションサーバ機能を提供する。ＳＴＵＮと同様に、クライアントは、遠隔ホストとの通信を確立する前にＴＵＲＮアプリケーションサーバに要求を送信する。該ＴＵＲＮアプリケーションサーバは当該クライアントに対して、該クライアントがメディアに関する宛先として使用することが可能なアドレスを返送し、当該クライアントは該アドレスを上記遠隔ホストに送られるパケット用の宛先アドレスとして使用する。上記の返送された宛先アドレスは、上記遠隔ホストのアドレスではなく、代わりに、当該ＴＵＲＮアプリケーションサーバに関連するアドレスである。該ＴＵＲＮアプリケーションサーバは中継器として作用し、上記パケットを送付する。ＴＵＲＮは、ＮＡＴ通過問題に対する解決策は提供するが、全てのパケットがＴＵＲＮアプリケーションサーバにより中継されることを要し、従って、容易にスケーラブルにすることができない。追加のネットワークホップの導入により生じるネットワーク遅延は、典型的には、ＳＩＰ信号伝達に影響を与えるほど重大ではないが、メディアパケットは最小の遅延で配信されるべきである。従って、ホップの数を、従って全体の遅延を減少させる解決策が好ましい。
【００１３】
セッションボーダコントローラ（ＳＢＣ：Session Border Controller）は、幾つかのＶｏＩＰネットワークでネットワークアドレス変換機構を通過するために使用されている装置である。ＳＢＣは、メディアプロキシ機能及びセッション制御機能の両方を提供するセッション認識装置（session-aware device）である。ＳＢＣは、本質的に、２つの異なるネットワークにおける呼の脚路（コールレグ：call legs）を確立するプロキシである。ＳＢＣは、一方のコールレグ上のパケットを受信し、これらパケットを他方のコールレグ上の宛先に向かって送信する。ＳＢＣはアドレスを変更するので、幾つかのセキュリティ機構を壊し得る。また、セキュリティボーダコントローラは高価で、配備が困難であり、全パケットが当該ＳＢＣを介して中継されねばならないので容易にスケーラブルとすることができない。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明は、ＶｏＩＰ及び他の通信セッション用の対称ＮＡＴを通過するためのシステム及び方法を提供するものである。
【課題を解決するための手段】
【００１５】
本システム及び方法は、４つの主たる構成要素：即ち、中継エージェント、ＮＡＴエージェント、ＳＩＰプロキシ及びアプリケーションサーバを使用する。上記中継エージェントは、プライベートネットワークにおけるファイアウォール／ＮＡＴの背後に配置され、パブリックネットワークに配置されたＳＩＰプロキシと通信するように構成される。上記中継エージェントは、ＳＩＰ信号伝達メッセージを、上記ＳＩＰプロキシを介して通過させる。上記アプリケーションサーバは、上記中継エージェントに、上記ＳＩＰプロキシと該中継エージェントとの間の信号伝達のために上記ファイアウォール／ＮＡＴにおける信号伝達ポートを開くよう要求する。また、該アプリケーションサーバは、上記中継エージェントに、メディアトラフィックのために該ファイアウォール／ＮＡＴにポートを開くようにも要求する。上記ファイアウォール／ＮＡＴからインターネットへの経路内に配置されたＮＡＴエージェントは、メディアパケットをフィルタし、到来するメディアパケットのパブリック送信元アプリケーションを上記の開いたメディアポートに関連する所定のアドレスに変更する。
【図面の簡単な説明】
【００１６】
【図１】図１は、一実施例によるＮＡＴ通過システムを組み込んだ例示的通信ネットワークを示す。
【図２】図２は、一実施例発明によるＮＡＴ通過システムの主構成要素及び構成要素間の信号の流れを示す。
【図３】図３は、アプリケーションサーバにユーザを登録するために使用されると共に、該アプリケーションサーバと中継エージェントとの間の接続を開通させるための登録手順を示す。
【図４】図４は、ＮＡＴアプリケーションサーバと中継エージェントとの間の信号伝達接続を維持するための手順を示す。
【図５Ａ】図５Ａは、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
【図５Ｂ】図５Ｂも、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
【図５Ｃ】図５Ｃも、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
【図５Ｄ】図５Ｄも、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
【図６】図６は、ファイアウォールを介して信号伝達又はメディア接続を開通させるための手順を示す。
【図７】図７は、ファイアウォールを介して信号伝達又はメディア接続を維持するための手順を示す。
【図８】図８は、本発明の一実施例における信号伝達トラフィックのためのメッセージ配信を示す。
【図９】図９は、本発明の一実施例におけるメディアトラフィックのためのメッセージ配信を示す。
【図１０】図１０は、他の実施例におけるルータを示す。
【図１１Ａ】図１１Ａは、他の実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
【図１１Ｂ】図１１Ｂも、他の実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
【図１２】図１２は、中継エージェント、ＮＡＴエージェント、ＳＩＰプロキシ及びアプリケーションサーバ等の、本発明の機能的構成要素を実施化するための例示的ホスト装置を示す。
【発明を実施するための形態】
【００１７】
ここで図面を参照すると、図１は本発明の一実施例により構成された通信ネットワーク１０を示す。通信ネットワーク１０は、インターネット等のパブリックネットワーク４０に相互接続された２つのプライベートネットワーク２０を有している。明瞭化のために、以下の説明における符号には、発呼者（calling party、ここでは、ユーザＡと称する）に関連する構成要素を示すための文字Ａ、又は受呼者（着呼者：called party、ここでは、ユーザＢと称する）に関連する構成要素を示すための文字Ｂの何れかが付され得る。従って、プライベートネットワーク２０Ａは発呼側（calling party）のネットワークを示す一方、プライベートネットワーク２０Ｂは受呼者側（called party）のプライベートネットワークを示す。構成要素を総称的に議論する場合、符号は文字なしで使用され得る。また、ここで使用される“アドレス”なる用語は、ＩＰアドレス及びポート番号の両方を含む完全に適格なネットワークアドレスを指すことに注意されたい。また、“ＩＰアドレス”なる用語は、ポート番号を伴わないネットワークアドレスを指す。
【００１８】
各プライベートネットワーク２０Ａ、２０Ｂは、セキュリティを提供すると共に、当該プライベートネットワーク２０Ａ、２０Ｂに対する権限のないアクセスに対して保護するためのファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを含んでいる。この実施例において、ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂは対称ＮＡＴを実施化するためのハードウェア及び／又はソフトウェアを含んでいるが、対称ＮＡＴの使用は本発明にとり重要ではない。本発明は、他のＮＡＴ構成と共に使用することもできる。
【００１９】
各ネットワーク２０Ａ、２０Ｂは、ＩＰ（インターネット・プロトコル）ＰＢＸ（プライベート内線交換機：構内交換機）５０Ａ、５０Ｂを含み、該ＰＢＸは公衆交換電話網（ＰＳＴＮ）と相互接続して、該ＰＳＴＮを介して音声及びデータが伝送されるのを可能にする。ＩＰ
ＰＢＸ ５０Ａ、５０Ｂは、セッション確立プロトコル（ＳＩＰ）及びＲＴＰ等の標準のＶｏＩＰプロトコルを実施する如何なる通常のＶｏＩＰゲートウェイを有することもできる。ＩＰ
ＰＢＸ ５０Ａ、５０Ｂは、ＰＳＴＮよりもパブリックネットワーク４０を介してネットワーク２０Ａ、２０Ｂにおけるユーザ６０Ａ、６０Ｂの間の呼（call）を確立するために使用することができる。背景技術で説明したように、各プライベートネットワーク２０Ａ、２０Ｂの境界における対称ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂの存在は、ボイスオーバＩＰセッションが確立されるのを妨害し得る。
【００２０】
通信ネットワーク１０は、図２に示されるようなＶｏＩＰ通信に関してファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを通過するためのシステム１００を含んでいる。本発明は、データパケットのペイロードにおいてアドレス情報が伝達されるような他のアプリケーションにも適用することができる。システム１００は、４つのタイプの構成要素：即ち、プライベートネットワーク２０Ａ、２０Ｂに各々存在する中継エージェント１１０Ａ、１１０Ｂ；パブリックネットワーク４０から到来するパケットをファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを通過する前に捕捉（intercept）するＮＡＴエージェント１２０Ａ、１２０Ｂ；パブリックネットワーク４０内のプロキシサーバ１３０；及びパブリックネットワーク４０内のアプリケーションサーバ１４０を有している。ＮＡＴエージェント１２０Ａ、１２０Ｂは、ファイアウォール３０Ａ、３０Ｂにおけるポートを開く役割も果たす。
【００２１】
中継エージェント１１０Ａ、１１０Ｂは、プライベートネットワーク２０Ａ、２０Ｂ内のホスト装置（例えば、コンピュータ）上のソフトウェアとして実施化することができる。中継エージェント１１０Ａ、１１０Ｂは、例えば、ＩＰ
ＰＢＸ ５０Ａ、５０Ｂと同一のホスト装置内に存在することができるか、又は別のホスト装置内に存在することもできる。中継エージェント１１０Ａ、１１０Ｂは、ユーザ装置（ＵＥ）内に存在することもできる。中継エージェント１１０Ａ、１１０Ｂは、耐故障アーキテクチャを形成するためにクラスタ配置で動作することができる。
【００２２】
ＳＩＰプロキシ１３０及びアプリケーションサーバ１４０は、パブリックネットワーク４０に接続されたコンピュータ上のソフトウェアとして実施化することができる。ＳＩＰプロキシ１３０及びアプリケーションサーバ１４０は、同一のコンピュータ内に又は別個のコンピュータ内に存在することができる。また、ＳＩＰプロキシ１３０及び／又はアプリケーションサーバ１４０の機能は、幾つかのコンピュータ若しくはプロセッサの間に、又はアプリケーションサーバのクラスタ内に分散させることができる。
【００２３】
ＮＡＴエージェント１２０Ａ、１２０Ｂは、本質的に、ソフトウェアにより実施化することが可能な幾つかの相対的に簡単な機能を備えるパケットフィルタである。中継エージェント１１０Ａ、１１０Ｂ及びＮＡＴエージェント１２０Ａ、１２０Ｂは、幾つかの相対的に簡単な機能を実行する一方、ＳＩＰプロキシ１３０及びアプリケーションサーバ１４０には大量の論理が含まれる。このアーキテクチャは、対称ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを通過するための容易にスケーラブルな解決策を提供する。
【００２４】
以下に更に詳細に説明するように、中継エージェント１１０Ａ、１１０Ｂは、ＳＩＰの信号伝達を、対応するＩＰ
ＰＢＸ ５０Ａ、５０Ｂへ、及び対応するＩＰ ＰＢＸ ５０Ａ、５０Ｂから中継する。中継エージェント１１０Ａ、１１０Ｂは、ＩＰ ＰＢＸ ５０Ａ、５０Ｂから受信された出力（outgoing）信号伝達パケットを、パブリックネットワーク４０内のＳＩＰプロキシ１３０に中継する。同様に、中継エージェント１１０Ａ、１１０Ｂは、ＳＩＰプロキシ１３０からのＳＩＰ信号伝達パケットを、対応するＩＰ
ＰＢＸ ５０Ａ、５０Ｂに代わって受信すると共に、到来するＳＩＰ信号伝達メッセージをＩＰ ＰＢＸ ５０Ａ、５０Ｂに中継する。中継エージェント１１０Ａ、１１０Ｂは、上記中継機能を実行するために、パケットの内容を分析する必要はない。
【００２５】
ＮＡＴエージェント１２０Ａ、１２０Ｂは、プライベートネットワーク２０Ａ、２０Ｂとパブリックネットワーク４０との間のトラフィック経路に配置され、到来するパケットを、保護されたネットワーク２０Ａ、２０Ｂのファイアウォールを横切る前に捕捉する。図１に示された実施例において、ＮＡＴエージェント１２０ＡはユーザＢによりユーザＡに対して送信されたメディアパケットを捕捉する一方、ＮＡＴエージェント１２０ＢはユーザＡによりユーザＢに対して送信されたメディアパケットを捕捉する。ＮＡＴエージェント１２０Ａ、１２０Ｂは、斯かるメディアパケットに含まれる送信元アドレスを変換して、当該アドレスがファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにより実施されるポリシ及び規則に準拠することを確実にする。
【００２６】
ＳＩＰプロキシ１３０及びアプリケーションサーバ１４０は、ＶｏＩＰセッションの確立を容易化する。全てのＳＩＰの信号伝達は、ＳＩＰプロキシ１３０を通過する。ＳＩＰプロキシ１３０は、中継エージェント１１０Ａ又は中継エージェント１１０ＢからＳＩＰ信号伝達メッセージを受信し、これらＳＩＰ信号伝達メッセージに含まれるアドレス情報を修正し、該信号伝達メッセージを中継エージェント１１０Ｂ又は中継エージェント１１０Ａに送信する。
【００２７】
アプリケーションサーバ１４０は、ＳＩＰプロキシ１３０及び両プライベートネットワーク２０Ａ、２０Ｂ内の中継エージェント１１０Ａ、１１０Ｂと通信する。ＴＣＰ接続が、中継エージェント１１０Ａ、１１０Ｂとアプリケーションサーバ１４０との間にファイアウォール３０Ａ、３０Ｂを介して確立される。この接続は、以下に説明されるように、アプリケーションサーバ１４０が中継エージェント１１０Ａ、１１０Ｂに要求を送信することができるように開通状態に維持される。アプリケーションサーバ１４０の主たる機能は、ＳＩＰセッションを許可及び容易にすると共に、中継エージェント１１０Ａ、１１０Ｂと協調して信号伝達トラフィック及びメディアトラフィックの両方ためにファイアウォール／ＮＡＴ
３０Ａ、３０Ｂ内のポートを開き、該開かれたポートに関連するパブリックアドレスを取得し、信号伝達のために開かれた該ポートのアドレスをＳＩＰプロキシ１３０に供給することである。
【００２８】
図３〜９は、対称ＮＡＴを用いるファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを通過するための、本発明の一実施例による例示的手順を示す。この例においては、プライベートネットワークＡ上のユーザＡがプライベートネットワークＢ上の第２のユーザＢとの呼を確立しようと試みていると仮定する。更に、両プライベートネットワーク２０Ａ及び２０Ｂは、対称ＮＡＴを用いたファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを含んでいると仮定する。これらの状況は、ＮＡＴ通過にとり恐らくは最も困難なものである。本発明は、ファイアウォール／ＮＡＴが当該通信の一方の側にのみ存在する場合にも、又は他のタイプのＮＡＴ構成に対しても使用することができる。従って、ここで説明する実施例は、本発明を限定するものとみなしてはならない。
【００２９】
ＮＡＴ通過を果たすために、中継エージェント１１０Ａ、１１０Ｂは、先ずアプリケーションサーバ１４０に登録すると共に該アプリケーションサーバ１４０との通信チャンネルを確立しなければならない。ユーザアカウントは、既に加入手続の間に確立されていると仮定する。図３は、例示的な登録手順を示す。登録手順を開始するために、中継エージェント１１０Ａ、１１０Ｂはファイアウォール穴開け（パンチング）手順を実行してファイアウォール／ＮＡＴ
３０Ａ、３０ＢのパブリックＩＰアドレス（natip）を見付ける。ファイアウォール穴開け手順は下記に詳細に説明される。中継エージェント１１０Ａ、１１０Ｂはファイアウォール／ＮＡＴ
３０Ａ、３０ＢのＩＰアドレスを発見することにしか関心がないので、該ファイアウォール穴開け手順により開通された接続は維持されない。中継エージェント１１０Ａ、１１０Ｂは、ファイアウォール／ＮＡＴ
３０Ａ、３０ＢのＩＰアドレスを記憶する。次に、中継エージェント１１０Ａ、１１０Ｂは、１以上のローカルポートを開き、該開かれたポート上で受信される外向け（outbound）パケットをＳＩＰプロキシ１３０に中継するプロキシプロセッサを開始する（ステップ２）。一例として、中継エージェント１１０Ａ、１１０Ｂは他のＳＩＰ装置との統合を容易にするためにポート５０６０及び７０００を選択することができる。アプリケーションサーバ１４０とのＴＣＰ接続を確立するために、中継エージェント１１０Ａ、１１０Ｂは該アプリケーションサーバ１４０に登録要求を送信する（ステップ３）。該登録要求は、登録されるユーザのためのアカウントＩＤ（AccountID）及びパスワード、前記ファイアウォール穴開け手順の間に発見されたファイアウォール／ＮＡＴ ３０Ａ、３０ＢのＩＰアドレス（natip）、並びにＰＢＸエージェント１１０Ａ、１１０ＢがＳＩＰ要求を受信したいプライベートアドレスを含む。
【００３０】
上記外向け登録要求を受信すると、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは該ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂ上のポートを割り当てると共に、該ポートのパブリックアドレスを、上記登録要求が送出された中継エージェント１１０Ａ、１１０Ｂのプライベートアドレスに関係づけるエントリを自身のＮＡＴテーブル（NATing table）に作成する（ステップ４）。ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂは、上記登録要求をアプリケーションサーバ１４０に送信する（ステップ５）。サーバ１４０が該登録要求を受信すると、該サーバは、上記アカウントＩＤにより指定されるアカウントを見付けると共に、当該登録要求内の前記パスワードを用いて認証（authentication）を実行する。該認証が成功した場合、アプリケーションサーバ１４０は当該登録要求のパブリック送信元アドレス及び当該登録要求に含まれるファイアウォール／ＮＡＴ
３０Ａ、３０ＢのパブリックＩＰアドレス（natip）を記憶する（ステップ６）。アプリケーションサーバ１４０は、当該登録が成功したことを示すために、中継エージェント１１０Ａ、１１０Ｂに登録応答を送信する。
【００３１】
アプリケーションサーバ１４０とのＴＣＰ接続が一旦開通されたら、中継エージェント１１０Ａ、１１０Ｂは、図４に示されるような存在維持手順を周期的に実行して、アプリケーションサーバ１４０との該ＴＣＰ接続を維持する。該存在維持手順は、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにおける前記ポートが開いたままとなることも保証する。中継エージェント１１０Ａ、１１０Ｂは、存在維持メッセージをアプリケーションサーバ１４０に送信する（ステップ１）。ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、上記パケットを捕捉し、当該中継エージェントのパブリック及びプライベートアドレスの間のＴＣＰ接続のために存在時間（有効期間：time to live）をリセットし（ステップ２）、上記存在維持メッセージをアプリケーションサーバ１４０に送信する（ステップ３）。該存在維持メッセージはアプリケーションサーバ１４０に、中継エージェント１１０Ａ、１１０Ｂが依然として利用可能であること及びＶｏＩＰの呼のための信号伝達を上記中継エージェントに送信することができることを示す。アプリケーションサーバ１４０は、当該ＴＣＰ接続が依然として開通されていることを中継エージェント１１０Ａ、１１０Ｂに示すために存在維持応答を送信することができる。
【００３２】
アプリケーションサーバ１４０は、上記登録手順の間に開通されたＴＣＰ接続を、以下に説明するように、ファイアウォール／ＮＡＴ
３０Ａ、３０ＢにＶｏＩＰセッション用の信号伝達及びメディア接続のためのポートを開くために中継エージェント１１０Ａ、１１０Ｂに対して将来のファイアウォール穴開け要求を送信するために使用することができる。中継エージェント１１０Ａ、１１０Ｂとアプリケーションサーバ１４０との間のＴＣＰ接続は、ＳＳＬ伝送を用いて安全を確保することができる。
【００３３】
図５Ａ〜５Ｄは、ユーザＡとユーザＢとの間にＶｏＩＰの呼を確立するための手順を示す。具体的な例を示すために、当該呼に関わる主体のアドレスは下記の通りとする：
ユーザＡの装置のプライベートアドレス（ＲＴＰのための）  192.168.1.200:24580
ＩＰ ＰＢＸ Ａのプライベートアドレス                    192.168.1.100:5060
中継エージェント１１０Ａのプライベートアドレス          192.168.1.50.5060
ユーザＢの装置のプライベートアドレス（ＲＴＰのための）  192.168.2.200:24582
ＩＰ ＰＢＸ Ｂのプライベートアドレス                    192.168.2.100:5060
中継エージェント１１０Ｂのプライベートアドレス          192.168.2.50.5060
ＳＩＰプロキシ１３０のパブリックアドレス                216.218.42.170:7000
アプリケーションサーバ１４０のパブリックアドレス        216.218.42.170:8888
ファイアウォール／ＮＡＴ ３０ＡのパブリックＩＰアドレスは216.218.42.173であり、ファイアウォール／ＮＡＴ ３０ＢのパブリックＩＰアドレスは216.218.42.172である。
【００３４】
当該手順は、ユーザＡ（発呼者）がユーザＢのパブリック電話番号（例えば、514-666-1000）を呼び出すことによりＶｏＩＰの呼を開始した場合（ステップ１）に始まる。該呼が開始された場合、ＩＰ
ＰＢＸ Ａ ５０ＡはＳＩＰ勧誘要求（SIP Invite request）を発生し、該ＳＩＰ勧誘要求をＳＩＰトランク（通信路）上で中継エージェント１１０Ａまで送信する（ステップ２）。ユーザＡのＩＰ
ＰＢＸ ５０Ａは、中継エージェント１１０Ａのアドレスを指すＳＩＰトランクを使用するように構成されている。例示的なＳＩＰ勧誘要求を下記に示す。
【００３５】
【数１】
0005655009.tif 000002
この時点で、該ＳＩＰ勧誘要求のリクエストラインはユーザＢ（受呼者）のＳＩＰ
ＵＲＩを含み、CONTACTヘッダフィールド及びＶＩＡヘッダフィールドはＩＰ ＰＢＸ ５０Ａのプライベートアドレスを含んでいる。メディア記述は、メディア接続のためにユーザＡのユーザ装置（ＵＥ
Ａ）のプライベートアドレスを含んでいる。
【００３６】
中継エージェント１１０Ａは上記ＳＩＰ勧誘要求をポート５０６０上で受信し、該ＳＩＰ勧誘要求をパブリックネットワーク４０におけるＳＩＰプロキシ１３０のパブリックアドレス（216.218.42.170:7000）に中継する（ステップ３）。中継エージェント１１０Ａは、ポート５０６０上で受信された全てのパケットを変更しないでＳＩＰプロキシ１３０に中継するように構成されている。ファイアウォール／ＮＡＴ
３０Ａは、出て行くパケットを捕捉し、これらパケットの送信元アドレスをファイアウォール／ＮＡＴ ３０Ａのパブリックアドレス（216.218.42.173：何れか）に変更し、該パケットをＳＩＰプロキシに送信する（ステップ４）。
【００３７】
ＳＩＰプロキシ１３０はアプリケーションサーバ１４０に、ユーザＡから新しいＳＩＰ勧誘要求が受信されたことを通知する（ステップ５）。アプリケーションサーバ１４０は、該ＳＩＰ勧誘要求を伝達するパケットの送信元アドレスに基づいて、該ＳＩＰ勧誘要求はプライベートネットワーク２０Ａ上のユーザから生じたものであると判断するが、これは、これらパケットの送信元ＩＰアドレスが、登録の間にアプリケーションサーバ１４０により取得されたアドレスと一致するためである（ステップ６）。また、アプリケーションサーバ１４０は、当該要求のＵＲＩ内の電話番号が、プライベートネットワーク２０Ｂに関連する登録された番号に対応すると判断する（ステップ７）。
【００３８】
ＶｏＩＰセッションを可能にするために、アプリケーションサーバ１４０は、プライベートネットワーク２０Ａに対して信号伝達及びメディアの両方のトラフィックのためにファイアウォール／ＮＡＴ
３０Ａを経る接続を開通させる必要がある。発呼側では、２つの信号伝達接続及び２つのメディア接続が必要とされる。一方の信号伝達接続は、ＩＰ ＰＢＸ ５０Ｂが新しいＳＩＰ要求を送信することを可能にすべく、元のＳＩＰ勧誘要求で指定されたCONTACTのために必要とされる。他方の信号伝達接続は、ＩＰ ＰＢＸ ５０ＢがＳＩＰ勧誘に対する応答を送信することを可能にすべく、元のＳＩＰ勧誘で指定されたＶＩＡのために必要とされる。新しいＳＩＰ要求及び応答の両者は、ＳＩＰプロキシ１３０を介して送信されるであろう。また、ＲＴＰ及びＲＴＣＰトラフィックのために、別個のメディア接続も各々必要とされる。
【００３９】
ファイアウォール／ＮＡＴ ３０Ａのポートを開けるために、アプリケーションサーバ１４０は、登録手順の間に確立されたＴＣＰ接続を用いて、中継エージェント１１０Ａに対し１以上のファイアウォール穴開け要求を送信する（ステップ８）。典型的には、アプリケーションサーバ１４０は、各信号伝達及びメディア接続のために別個のファイアウォール穴開け要求を送信するであろう。しかしながら、当該手順は、複数の接続が単一のファイアウォール穴開け要求により確立されるのを可能にするように変更することができる。ファイアウォール穴開け要求は、当該ファイアウォール穴開け要求の目標装置を示すための目標情報エレメント（ＩＥ）を有する。斯かる目標ＩＥは、パケットが送出されるであろう目標装置のパブリックアドレス（又は見掛けパブリックアドレス：apparent public address）を指定する。ファイアウォール穴開け要求は宛先ＩＥも含み、該宛先ＩＥはパケットが中継されるであろう宛先装置のプライベート宛先アドレスを指定する。
【００４０】
CONTACTのための接続を開通させるために、アプリケーションサーバ１４０は、ＳＩＰプロキシ１３０のパブリックアドレス（216.218.42.170:5060）を上記目標ＩＥに挿入すると共に、元のＳＩＰ勧誘のCONTACTヘッダフィールドで指定されたプライベートアドレス（192.168.1.100:5060）を上記宛先ＩＥに挿入する。ＶＩＡのための接続を開通させるために、アプリケーションサーバ１４０は、ＳＩＰプロキシ１３０のパブリックアドレス（216.218.42.170:5060）を上記目標ＩＥに挿入すると共に、元のＳＩＰ勧誘のＶＩＡヘッダフィールドで指定されたプライベートアドレス（192.168.1.100:5060）を上記宛先ＩＥに挿入する。ＲＴＰ及びＲＴＣＰ接続のために、アプリケーションサーバ１４０は、ファイアウォール／ＮＡＴ
３０ＢのＩＰアドレス（216.218.42.172）にポート５３５３を付加し、その結果を目標ＩＥに挿入する。生成されたアドレスは、受呼者からのメディアパケットのための見掛けパブリック送信元アドレスである。以下に説明されるように、ファイアウォール／ＮＡＴ
３０Ａに到達するメディアパケットは、上記見掛けパブリック送信元アドレスから生じたように見える。ＲＴＰ及びＲＴＣＰ接続のために、アプリケーションサーバ１４０は、発呼者のＩＰ電話のプライベートアドレス（ＲＴＰ用の192.168.1.200:24580及びＲＴＣＰ用の192.168.1.200:24581）を宛先ＩＥに挿入する。発呼者のＩＰ電話のプライベートアドレスは、元のＳＩＰ勧誘要求のＳＤＰに含まれている。
【００４１】
各ファイアウォール穴開け要求に応答して、中継エージェント１１０Ａは、以下に詳細に説明するファイアウォール穴開け手順を実施して、該ファイアウォール穴開け要求の目標ＩＥにおいてアプリケーションサーバ１４０により指定された目標装置のためのポートを開く。該ファイアウォール穴開け手順の間において、中継エージェント１１０Ａはファイアウォール／ＮＡＴ
３０Ａにより開かれたパブリックアドレスを知る。要求された接続の全てに対してポートが開かれた後、中継エージェント１１０Ａはアプリケーションサーバ１４０に対し、１以上のファイアウォール穴開け応答において、ファイアウォール／ＮＡＴ
３０Ａにより開かれたポートのパブリックアドレスを報告する。本例においては、下記のポートがファイアウォール／ＮＡＴ ３０Ａにより開かれる：
ＣＯＮＴＡＣＴ  216.218.42.173:2062
ＶＩＡ         
216.218.42.173:2064
ＲＴＰ          216.218.42.173:2066
ＲＴＣＰ        216.218.42.173:2068
以下に詳述するように、ＲＴＰ及びＲＴＣＰ接続用のファイアウォール穴開け手順はＮＡＴエージェント１２０Ａのための変換テーブルにもエントリを作成し、これは、ファイアウォール／ＮＡＴ
３０Ａに到達する発呼者からのメディアパケットの送信元アドレスを変更するために使用される。
【００４２】
アプリケーションサーバ１４０は、ネットワーク２０Ｂにファイアウォールポートを開くと共に、中継エージェント１１０ＢにＳＩＰ信号伝達のための信号伝達接続を開通させるよう要求する必要もある。更に詳細には、ＳＩＰ勧誘要求が送信されるのを可能にするために、ファイアウォール／ＮＡＴ
３０Ｂに開かれたポートが必要である。上記信号接続は、ファイアウォール穴開け要求をアプリケーションサーバ１４０から中継エージェント１１０Ｂに送信することにより開かれる（ステップ１０）。前述したように、ファイアウォール穴開け要求は目標ＩＥ及び宛先ＩＥを含む。アプリケーションサーバ１４０は、ＳＩＰプロキシ１３０のアドレス（216.218.42.170:5060）を目標ＩＥに挿入して、ＳＩＰ信号伝達メッセージが該ＳＩＰプロキシ１３０のパブリックアドレスから送信されるであろうことを示す。宛先ＩＥはＩＰ
ＰＢＸ ５０Ｂのプライベートアドレス（192.168.2.100:5060）を含む。ファイアウォール穴開け手順は、中継エージェント１１０Ｂがファイアウォール／ＮＡＴ
３０Ｂにおいて信号伝達のために開かれたパブリックアドレス（ファイアウォール穴開け応答で返送される（ステップ１１））を知るのを可能にする。この例では、当該信号伝達のために返送されるアドレスは、216.218.42.172:4811である。
【００４３】
アプリケーションサーバ１４０は、中継エージェント１１０Ｂが外に向かうＲＴＰ及びＴＲＣＰトラフィックの各々のための２つのポートを予約することも要求する。中継エージェント１１０Ｂにおいてポートを予約するために、アプリケーションサーバ１４０は中継エージェント１１０Ｂに対してポート予約要求を送信する。該ポート予約要求は、ファイアウォール／ＮＡＴ
３０Ａにより開かれ、ＲＴＰ及びＲＴＣＰパケットが送信されるであろうパブリックアドレスを示す宛先ＩＥを含む。上記ポート予約要求に応答して、中継エージェント１１０Ｂは、外に向かうＲＴＰ及びＲＴＣＰトラフィックのためのポートを予約する。外に向かうＲＴＰトラフィックのために予約されたポートは、偶数ポートでなければならず、ＲＴＣＰ用のポートは次の連続する奇数ポートである。中継エージェント１１０Ｂは、上記ポート予約要求に応答して、アプリケーションサーバ１４０にＲＴＰ及びＲＴＣＰのために予約されたプライベートアドレスを報告する（ステップ１３）。本例では、中継エージェント１１０Ｂは、ＲＴＰトラフィックのために192.168.2.50:4814を予約し、ＲＴＣＰトラフィックのために192.162.2.50:4815を予約する。
【００４４】
ＳＩＰプロキシ１３０からの通知に応答して、アプリケーションサーバ１４０は、得られた予約されたアドレスをＳＩＰプロキシ１３０に戻し（ステップ１４）、該ＳＩＰプロキシ１３０はＳＩＰ勧誘要求を修正する（ステップ１５）。音声メディア記述を含む簡単なＳＩＰ勧誘に関しては、ＳＩＰ勧誘に対して下記の修正がなされる：
（１）要求ＵＲＩは、プライベートＩＰ
ＰＢＸアドレスにおけるＵＥ Ｂのためのプライベート電話内線番号を含むように修正される。このアドレスは、アプリケーションサーバ１４０上のアカウントが確立された場合に構成される。
（２）メディア記述は、ＲＴＰアドレスがＲＴＰトラフィック用に開かれた中継エージェント１１０Ｂのアドレス（192.168.2.50:4814）を指し、これによりメディアトラフィックが該中継エージェントを介して送信されるように、修正される。
（３）同じＳＩＰ対話内でのＩＰ
ＰＢＸ ５０Ａからの将来のＳＩＰ要求が中継エージェント１１０Ａを介して送信されるように、該中継エージェント１１０Ａのプライベートアドレス（192.168.1.50:7000）を指す第１のRECORD ROUTE（記録経路）が追加される。
（４）同じＳＩＰ対話内でのＩＰ
ＰＢＸ ５０Ｂからの将来のＳＩＰ要求が中継エージェント１１０Ｂを介して送信されるように、該中継エージェント１１０Ｂのプライベートアドレス（192.168.2.50:7000）を指す第２のRECORD ROUTE（記録経路）が追加される（上記のものに加えて）。
（５）ＳＩＰ応答がＳＩＰプロキシ１３０を介して送られるように、ＳＩＰプロキシ１３０のパブリックアドレス（216.218.42.170:7000）を指すが最上位のＶＩＡが追加される。
【００４５】
強調表示された変更を伴う、修正されたＳＩＰ勧誘要求が、下記に示される。
【００４６】
【数２】
0005655009.tif 000003
ＳＩＰプロキシ１３０は、ＳＩＰ勧誘を受信するためにファイアウォール／ＮＡＴ
３０Ｂに開けられたポートのパブリックアドレス（216.218.42.172:4811）に、上記の修正されたＳＩＰ勧誘を送信する（ステップ１６）。中継エージェント１１０Ｂにより先に実行されたファイアウォール穴開け手順は、上記ポートのパブリックアドレスの、中継エージェント１１０Ｂのプライベートアドレスとの結合を形成した。ファイアウォール／ＮＡＴ３０Ｂは、ＳＩＰ勧誘要求のパブリック宛先アドレスを中継エージェント１１０Ｂのプライベートアドレスにマッピングし、上記ＳＩＰ勧誘要求を中継エージェント１１０Ｂに対し、ステップ１０でＦＷＰＰを送信するために使用されたポートで送信する（ステップ１７）。中継エージェント１１０Ｂは、該修正されたＳＩＰ勧誘要求を受信し、該ＳＩＰ勧誘要求をＩＰ
ＰＢＸ ５０Ｂに対し192.168.2.100:5060（ステップ１０において送信されたファイアウォール穴開け要求の宛先ＩＥで指定されたアドレスである）で送信する（ステップ１８）。ＩＰ
ＰＢＸ ５０Ｂは、当該電話を内線番号１０００で呼び出す（ステップ１９）。ＩＰ ＰＢＸ ５０Ｂは、ユーザＢが応答するのを待つ間に、ＳＩＰプロキシ１３０に対して１以上の仮の応答を送信することができる。
【００４７】
ユーザＢが当該電話に応答した場合、指示情報がＩＰ
ＰＢＸ ５０Ｂに送信される（ステップ２０）。ＩＰ ＰＢＸ ５０Ｂは当該ＳＩＰ勧誘要求を、メディア記述を伴うＳＩＰ200ＯＫ応答を当該ＳＩＰ勧誘要求の最上位ＶＩＡで指定されたアドレス（216.218.42.170:7000）に送信することにより受諾する。これは、ＳＩＰプロキシ１３０のパブリックアドレスである。上記ＳＩＰ200ＯＫ応答を下記に示す。
【００４８】
【数３】
0005655009.tif 000004
該ＳＩＰ200ＯＫ応答のメディア記述は、メディア接続のためのユーザＢのユーザ装置（ＵＥ Ｂ）のＩＰアドレス（192.168.2.200）及びポート（24582）を含む。CONTACTのヘッダフィールドは、ＩＰ ＰＢＸ ５０Ｂのプライベートアドレス（192.168.2.100:5060）を含む。
【００４９】
上記ＳＩＰ200ＯＫ応答は、中継エージェントに送信される（ステップ２１）。このＳＩＰ勧誘応答を受信すると、中継エージェント１１０Ｂは該ＳＩＰ勧誘応答を中継する（ステップ２２）。ファイアウォール／ＮＡＴ
３０Ｂは、このＳＩＰ200ＯＫ応答を捕捉し、該応答をＳＩＰプロキシ１３０に送信する（ステップ２３）。ＳＩＰプロキシ１３０は、アプリケーションサーバ１４０に、当該ＳＩＰ処理に関してＳＩＰ200ＯＫ応答が受信されたことを通知する（ステップ２４）。
【００５０】
この時点で、アプリケーションサーバ１４０は、ＲＴＰ及びＲＴＣＰトラフィックのためにファイアウォール／ＮＡＴ
３０Ｂを介して接続を開通させる必要がある。また、発呼者が上記ＳＩＰ200ＯＫ応答に肯定応答（アクノレッジ）するＳＩＰ
ＡＣＫ要求を送信するのを可能にするために信号伝達接続が必要となる。アプリケーションサーバ１４０は中継エージェント１１０Ｂに１以上のファイアウォール穴開け要求を送信して、ＲＴＰ及びＲＴＣＰトラフィックのため並びにＳＩＰ要求のために開いたポートが必要であることを示す（ステップ２５）。ＲＴＰ及びＲＰＣＰの両方のための上記ファイアウォール穴開け要求の目標ＩＥは、ポート番号５３５３が付加されたファイアウォール／ＮＡＴ
３０ＡのＩＰアドレスを含んでいる。これは、ユーザＡにより送信されるメディアパケットのための見掛けパブリック送信元アドレスである。ＲＴＰ接続のために、上記ファイアウォール穴開け要求の宛先ＩＥは、ＲＴＰトラフィックのためのユーザＢの電話のプライベートアドレス（192.168.2.200:24582）を含む。ＲＴＣＰ接続のために、上記ファイアウォール穴開け要求の宛先ＩＥは、ＲＴＣＰトラフィックのためのユーザＢの電話のプライベートアドレス（192.168.2.200:24583）を含む。ＳＩＰ要求のためのポートを開くために、上記ファイアウォール穴開け要求の目標ＩＥはＳＩＰプロキシ１３０のパブリックアドレス（216.218.42.170:7000）であり、宛先ＩＥはＳＩＰ200ＯＫ応答のCONTACTヘッダフィールドで識別されるプライベートアドレス（192.168.2.100:5060）である。中継エージェント１１０Ｂは、ファイアウォール穴開け手順を実施してＲＴＰ及びＲＴＣＰトラフィックのための接続を開通させると共に、ＲＴＰ及びＴＲＣＰトラフィックのために開かれたパブリックアドレスをアプリケーションサーバ１４０に報告する（ステップ２６）。この例において、ＲＴＰトラフィックのためのパブリックアドレスは、216.218.42.172:4816である。また、ＲＴＣＰトラフィックのためのパブリックアドレスは、216.218.42.172:4818である。また、中継エージェント１１０Ｂは、受呼者のCONTACTのために開かれたパブリックアドレスも報告するが、該アドレスは、本例では、216.218.42.172:4812である。
【００５１】
ＲＴＰ及びＲＴＣＰトラフィックのために、中継エージェント１１０Ａによりポートが予約される必要もある。アプリケーションサーバ１４０は、中継エージェント１１０Ａにおいてメディアトラフィックのためにポートを予約すべく、該中継エージェント１１０Ａにポート予約要求を送信する（ステップ２７）。該ポート予約要求は、ステップ２６において宛先ＩＥで返送されたファイアウォール／ＮＡＴ
３０Ｂにおけるパブリックアドレスを含む。該ポート予約要求に応答して、中継エージェント１１０Ａは、ＲＴＰ及びＲＴＣＰトラフィックの各々のための２つの連続したポートを予約すると共に、当該ポート予約要求に対する応答内で、アプリケーションサーバ１４０に対して、予約されたポートのプライベートアドレスを返送する（ステップ２８）。本例では、ＲＴＰに対してポート２０７０が予約され、ＲＴＣＰに対してポート２０７１が予約される。アプリケーションサーバ１４０は、ＳＩＰ応答の修正のためにＳＩＰプロキシ１３０にプライベートアドレスを中継する（ステップ２９）。
【００５２】
ＳＩＰプロキシ１３０は、中継エージェント１１０Ａから受信されたアドレス情報を含めるためにＳＩＰ応答を修正する（ステップ３０）。更に詳細には、ＳＩＰプロキシ１３０は、最上位のＶＩＡを削除し、ＲＴＰアドレスがＲＴＰトラフィックのために中継エージェント１１０Ａにより予約されたポートのアドレス（192.168.1.50:2070）を指すようにメディア記述を修正する。修正された該ＳＩＰ200ＯＫ応答が、強調表示された変更を伴って下記に示される。
【００５３】
【数４】
0005655009.tif 000005
ＳＩＰプロキシ１３０は、上記の修正されたＳＩＰ200ＯＫ応答を、ＶＩＡ接続のために開かれたファイアウォール／ＮＡＴ ３０Ａにおけるポートのパブリックアドレス（216.218.42.173:2064）に送信する（ステップ３１）。中継エージェント１１０Ａにより先に実行されたファイアウォール穴開け手順は、該ファイアウォール／ＮＡＴ
３０Ａにより開けられたポートのパブリックアドレスと、ＶＩＡ接続のための該中継エージェント１１０Ａにおけるプライベートアドレスとの間の結合を形成している。このようにして、ファイアウォール／ＮＡＴ
３０Ａは上記パブリックアドレスを中継エージェント１１０Ａのプライベートアドレスに変換し、上記応答を該中継エージェント１１０Ａに配信する（ステップ３２）。中継エージェント１１０Ａは、該修正されたＳＩＰ200ＯＫ応答を受信し、該ＳＩＰ応答をＩＰ ＰＢＸ ５０Ａに、元のＳＩＰ勧誘要求のＶＩＡヘッダで元々指定されているアドレス192.168.1.100:5060で配信する（ステップ３３）。
【００５４】
ＩＰ ＰＢＸ ５０Ａは、該ＳＩＰ応答を処理する（ステップ３４）。当該ＳＩＰ対話を完了するために、ＩＰ
ＰＢＸ ５０Ａは中継エージェント１１０ＡにＳＩＰ ＡＣＫ要求を送信する（ステップ３５）。ＳＩＰにおいて、ＡＣＫは要求であり、応答ではないことに注意されたい。従って、該ＡＣＫ要求は、中継エージェント１１０Ａを指す、ＳＩＰ勧誘にRECORD ROUTEエントリを追加することにより作成された第１の記録経路で指定されたアドレスに送信される。中継エージェント１１０Ａは、該ＳＩＰ
ＡＣＫ要求をＳＩＰプロキシ１３０に中継する（ステップ３６）。ファイアウォール／ＮＡＴ ３０Ａは該ＳＩＰ ＡＣＫ要求を受信し、該要求をＳＩＰプロキシに配信する（ステップ３７）。ＳＩＰプロキシ１３０は、アプリケーションサーバ１４０に、該ＡＣＫ要求が受信されたことを通知する（ステップ３８）。アプリケーションサーバ１４０は、ＳＩＰプロキシ１３０に対して、上記ＳＩＰ
ＡＣＫ要求が送信されるべき中継エージェント１１０Ｂにおけるアドレスを含む応答を送信する（ステップ３９）。ＳＩＰプロキシ１３０は、上記ＳＩＰ ＡＣＫ要求を中継エージェント１１０Ｂに中継する（ステップ４０）。中継エージェント１１０Ｂは、該ＡＣＫ要求をＩＰ
ＰＢＸ ５０Ｂに送信する（ステップ４１）。ＩＰ ＰＢＸ ５０Ｂは上記ＡＣＫ供給を処理し、当該対話は完了する（ステップ４２）。この時点において、ファイアウォール／ＮＡＴ
３０Ａ及び３０Ｂ上には信号伝達及びメディア接続のための開いたポートが存在し、ユーザＡとユーザＢとの間の呼が確立される。
【００５５】
図６は、ファイアウォールを介して接続を開通させるためのファイアウォール穴開け手順を示す。ファイアウォール穴開け手順は、中継エージェント１１０Ａ、１１０Ｂによりイベントに応答して起動される。例えば、斯かるイベントは、インターネット内の目標装置から到来するパケットがプライベートネットワーク内の内部装置（宛先装置）に配信されるように、会社のファイアウォール／ＮＡＴ
３０Ａ、３０Ｂに“穴”を開けるための要求（例えば、アプリケーションサーバ１４０からのファイアウォール穴開け要求）を含み得る。対称ＮＡＴの場合、中継エージェント１１０Ａ、１１０Ｂは宛先装置に代わって斯かる穴を簡単に開けることはできず、目標装置から到来するパケットの経路内に留まる必要がある。
【００５６】
ファイアウォール穴開け手順を開始するために、中継エージェント１１０Ａ、１１０Ｂはソケットを開き、該ソケットをポートに結合する（ステップ１）。中継エージェント１１０Ａ、１１０Ｂは、ファイアウォール穴開けパケット（ＦＷＰＰ）と呼ばれる特別に形成されたパケットを、ステップ１で開かれたポートから目標装置アドレスに送信する（ステップ２）。上記ＦＷＰＰの送信元アドレスは、該ＦＷＰＰが送出されるプライベート中継エージェントアドレス（agentip:agentport）であり、該ＦＷＰＰの宛先アドレスは、目標装置のアドレス（targetip:targetport）である。ファイアウォール穴開け手順がアプリケーションサーバ１４０からのファイアウォール穴開け要求に応答して開始された場合、目標装置アドレスは該ファイアウォール穴開け要求の目標ＩＥで指定されるアドレスである。
【００５７】
会社のファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは上記ＦＷＰＰをＬＡＮ側で受信し、自身のNATingテーブルを検索して、該ＦＷＰＰのプライベート送信元アドレスと該ＦＷＰＰのパブリック宛先アドレスとの間の関連が既に存在するかを調べる（ステップ３）。一致するエントリが見つかったら、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、このNATingエントリの有効期間（time to
live）を更新し、当該ＦＷＰＰを上記テーブルで見つかったのと同じパブリック送信元アドレスを用いてパブリック宛先アドレスに送信する。一致するエントリが見つからなかったら、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、パブリック送信元アドレス（natip:natport）を予約し、自身のNATingテーブルに該パブリック送信元アドレス（natip:natport）を中継エージェントアドレス（agentip:agentport）及び目標装置アドレス（targetip:targetport）と関連付ける新たなエントリを作成し、上記ＦＷＰＰを、上記の予約したパブリック送信元アドレス（natip:natport）から宛先アドレス（targetip:targetport）に送信する（ステップ４）。かくして、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、internetipからnatip:natportに到来する如何なるパケットも、agentip:agentportに伝送する。
【００５８】
ＮＡＴエージェント１２０Ａ、１２０Ｂは、ファイアウォール／ＮＡＴ
３０Ａ、３０ＢのＷＡＮ側からインターネットサービスプロバイダに送信される全てのパケットを分析し、ＦＷＰＰを即座に認識することができる。ＦＷＰＰ（及び幾つかの下記の他のパケット）を除く殆どのパケットは、変更されずにＮＡＴエージェント１２０Ａ、１２０Ｂを通過される。しかしながら、ＮＡＴエージェント１２０Ａ、１２０ＢはＦＷＰＰを捕捉し、目標装置アドレスに依存した行動をとる。目標装置アドレスが所定の“固定”ポート（本例では、ポート５３５３）を含む場合、ＮＡＴエージェント１２０Ａ、１２０Ｂは自身の変換テーブルにエントリを作成するか、又は該テーブルにおけるエントリを更新する（ステップ５）。該エントリは、３つの要素を含む。即ち、ＦＷＰＰのパブリック送信元アドレス（natip:natport）、目標装置のＩＰアドレス（targetip）、及び使用されていない又は古いエントリを削除するために使用されるタイムスタンプである。全てのＦＷＰＰに関して、ＮＡＴエージェント１２０Ａ、１２０Ｂは、当該ＦＷＰＰのパブリック送信元アドレスを抽出し、ＦＷＰＰ応答（ＦＷＰＰＲ）を構築する（ステップ６）。該ＦＷＰＰＲは自身のペイロードにＦＷＰＰのパブリック送信元アドレス（natip:natport）を含むが、これはファイアウォール／ＮＡＴ ３０Ａ、３０Ｂで開かれたポートである。ＦＷＰＰは破棄される。
【００５９】
ＮＡＴエージェント１２０Ａ、１２０Ｂは、上記ＦＷＰＰＲを、当該ＦＷＰＰのために開かれたパブリック送信元アドレス（natip:natport）に返送する（ステップ７）。上記ＦＷＰＰＲを作成する際に、当該ＦＷＰＰにおける送信元及び宛先アドレスは入れ換えられる。ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、当該ＦＷＰＰ用に開かれたパブリックアドレス上で上記ＦＷＰＰＲを受信し、該ＦＷＰＰＲのパブリック宛先アドレスを中継エージェント１１０Ａ、１１０Ｂのプライベートアドレス（agentip:agentport）に変換し（ステップ８）、該ＦＷＰＰＲを中継エージェントに送る（ステップ９）。
【００６０】
中継エージェント１１０Ａ、１１０Ｂは、上記ＦＷＰＰＲを前記ＦＷＰＰを送信するために使用されたポート（ステップ１で開かれた）上で受信し、該ＦＷＰＰＲのペイロードに含まれるパブリック送信元アドレスを読み取る（ステップ１０）。次いで、中継エージェント１１０Ａ、１１０Ｂは、ＮＡＴエージェント１２０Ａ、１２０Ｂにより当該ＦＷＰＰＲ内で返送された該パブリックアドレスを記憶する。この時点で、中継エージェント１１０Ａ、１１０Ｂは、もし目標装置からファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにnatip:natportでパケットが送信されたら、該パケットはファイアウォール／ＮＡＴ ３０Ａ、３０Ｂから中継エージェントにagnetip:agentportで中継されるであろうことが分かる。中継エージェント１１０Ａ、１１０Ｂは、この接続のためのソケットを開かれたままに保ち、このソケットを介して受信されるパケットを当該プライベートネットワーク内の宛先装置に配信する。前記アプリケーションサーバにより、開いたポートが要求された場合、宛先装置のアドレスが前記ファイアウォール穴開け要求の宛先ＩＥにおいて指定され、中継エージェント１１０Ａ、１１０Ｂが、アプリケーションサーバ１４０に対してパブリック送信元アドレス（natip:natport）を含むファイアウォール穴開け応答を送信する。
【００６１】
ＦＷＰＰの設計構造は、ＮＡＴエージェント１２０Ａ、１２０ＢがＦＷＰＰを即座に識別することを可能にするようなものでなければならない。これらの目的を達成するために、ＦＷＰＰの設計構造は、固定長を有すると共に、所定の署名で開始することができる。また、ＦＷＰＰは、即座の解析を可能にするような所定のフォーマットを有することができる。同様に、ＦＷＰＰＲも、容易に構築することができるように設計される。このような目的を念頭において、ＦＷＰＰは、ＮＡＴエージェント１２０Ａ、１２０Ｂによりパブリック送信元アドレスを挿入するために使用することができるような幾つかの不使用バイトを伴って設計される。ＦＷＰＰは、送信元及び宛先アドレスが容易に入れ換えられるのを可能にするように設計される。更に、パケットの設計構造は、ＮＡＴエージェント１２０Ａ、１２０Ｂが、全体のパケットチェックサムを再計算することなく、ＩＰ及びＵＤＰ用のチェックサムを即座に再計算するのを可能にするものとする。
【００６２】
一実施例において、ＦＷＰＰは正確に２７バイト長である。バイト０〜１５（１６バイト）は、固有の識別子（例えば、ＧＵＩＤ）を含む。バイト１６はパケットタイプ識別子を含み、該パケットタイプ識別子はＦＷＰＰに対しては０１に設定され、ＦＷＰＰＲに対しては０２に設定される。バイト１７〜２０（４バイト）は、ＦＷＰＰＲ応答をＦＷＰＰ要求に整合させ、古い要求に対する応答を破棄するのを可能にするために使用される、中継エージェント１１０Ａ、１１０Ｂにより発生される連番の固有ＩＤを含む。バイト２１〜２４（４バイト）は、ＦＷＰＰＲパケットにファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにより開かれたパブリックＩＰアドレスを含ませるために予約されている。バイト２６〜２７（２バイト）は、ＦＷＰＰＲパケットにファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにより開かれたパブリックポートを含ませるために予約されている。
【００６３】
ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂに穴が開けられると、当該開いたポートを維持するために、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂに対して存在維持メッセージが周期的に送信されねばならない。図７は、ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂ上に開いたポートを維持するための例示的手順を示す。数秒ごとに、中継エージェント１１０Ａ、１１０Ｂはファイアウォール／ＮＡＴ
３０Ａ、３０Ｂに対してファイアウォール存在維持（ＦＷＫＡ）メッセージを送信する（ステップ１）。該ＦＷＫＡメッセージは、前のＦＷＰＰと同じ目標アドレスに同じ送信元アドレスから送信される。ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、当該ＦＷＫＡの宛先アドレスに対応する既存のエントリを自身の結合テーブル内で見付け、有効期間を更新する（ステップ２）。ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、当該ＦＷＫＡを宛先アドレスに送信する（ステップ３）。ＮＡＴエージェント１２０Ａ、１２０Ｂは該ＦＷＫＡを捕捉する。該ＦＷＫＡパケットの宛先アドレスがaddrNATx:5353なら、該ＮＡＴエージェント１２０Ａ、１２０Ｂは、自身の変換テーブル内の対応するエントリに関して有効期間を更新する（ステップ４）。次いで、該ＮＡＴエージェント１２０Ａ、１２０Ｂは当該ＦＷＫＡを捨てる（ステップ５）。
【００６４】
一実施例において、上記ＦＷＫＡパケットは１７バイト長である。バイト０〜１５（１６バイト）はＧＵＩＤ（固有識別子）を含む。バイト１６（１バイト）はパケットタイプ指示子（例えば、ＦＷＫＡを示すための０３）を含む。
【００６５】
図８は、本発明により信号伝達接続が確立された後のＳＩＰ信号伝達メッセージの経路を示す。ＩＰ
ＰＢＸ ５０Ａ，５０Ｂにより発生されたＳＩＰ信号伝達メッセージは、ローカルな（近くの）中継エージェント１１０Ａ、１１０Ｂに送信される（ステップ１）。該ローカルな中継エージェント１１０Ａ、１１０Ｂは上記ＳＩＰ信号伝達メッセージをＳＩＰプロキシ１３０に送信し（ステップ２）、該中継エージェントは上記メッセージをファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにおける信号伝達のために開かれたポートのパブリックアドレスに中継する（ステップ３）。ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂは、自身の結合テーブル内の対応するプライベートアドレスをルックアップする（ステップ４）。前述したように、遠方の中継エージェントのプライベートアドレスに対するパブリックアドレスの結合は、前記ファイアウォール穴開け手順の間に形成されている。ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、遠方の中継エージェント１１０Ａ、１１０Ｂにパケットを送信する（ステップ５）。該中継エージェント１１０Ａ、１１０Ｂも、ＳＩＰ信号伝達メッセージが受信されるポートをＩＰ
ＰＢＸ ５０Ａ，５０Ｂのプライベートアドレスに関連付ける経路指定テーブルを含む。中継エージェント１１０Ａ、１１０Ｂは、当該信号伝達ポートに関連付けられた内部アドレス（ＩＰ
ＰＢＸ ５０Ａ，５０Ｂの内部アドレスである）をルックアップする（ステップ６）。該中継エージェント１１０Ａ、１１０Ｂは、上記ＳＩＰメッセージを当該遠方のＩＰ ＰＢＸに配信する（ステップ７）。
【００６６】
図９は、メディア接続が確立された後のＲＴＰパケットにより辿られる経路を示す。この場合、ユーザ装置から発したＲＴＰパケットは、中継エージェント１１０Ａ、１１０Ｂにより、遠方のユーザのＮＡＴエージェント１２０Ａ、１２０Ｂへ送信される（ステップ１）。該遠方ユーザのＮＡＴエージェント１２０Ａ、１２０Ｂは、当該パケットのパブリック送信元ＩＰアドレスを宛先アドレスに関連付ける変換テーブルを含んでいる。ＮＡＴエージェント１２０Ａ、１２０Ｂは、当該パケットの送信元ポートを５３５３に変更し（ステップ２）、修正された送信元アドレスを伴うパケットをファイアウォール／ＮＡＴ
３０Ａ、３０Ｂに送信する（ステップ３）。該ファイアウォール／ＮＡＴ ３０Ａ、３０Ｂは、当該パケットのパブリック宛先アドレスをプライベート宛先アドレスに関連付ける結合テーブルを含んでいる。該ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂは、当該パブリック宛先アドレスを自身の結合テーブル内のプライベート宛先アドレスで置換し（ステップ４）、当該パケットを中継エージェント１１０Ａ、１１０Ｂに送信する（ステップ５）。中継エージェント１１０Ａ、１１０Ｂは、特定のポートで受信されるパケットが、先のファイアウォール穴開け要求で指定された他のプライベートアドレスに送信されることを要することを記憶している（ステップ６）。該プライベートアドレスは、ユーザのＩＰ電話のプライベートアドレスである。該遠方の中継エージェント１１０Ａ、１１０Ｂは、当該データパケットに含まれる宛先アドレスをユーザの電話のプライベートアドレスに置換し、該パケットをユーザの電話に送信する（ステップ７）。
【００６７】
他の実施例において、中継エージェント１１０Ａ、１１０Ｂ及びＮＡＴエージェント１２０Ａ、１２０Ｂの機能は、図１０に示されるように、ルータ７０Ａ，７０Ｂ又はファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを実施化する他のホスト装置に組み込むことができる。この場合、前述したようにＦＷＰＰ／ＦＷＫＡを用いてファイアウォールに穴開けを行う必要は無いであろう。代わりに、ルータ７０Ａ，７０Ｂ自身が接続を開通させることができる。ルータ７０Ａ，７０Ｂとアプリケーションサーバ１４０との間の通信チャンネルは、ファイアウォール／ＮＡＴ
３０Ａ、３０Ｂを迂回するためのルータコードに直接組み込むことができる。ルータ７０Ａ，７０Ｂは、内部ＳＩＰトラフィックをアプリケーションサーバ１４０に送信するために１以上のポート（例えば、ポート５０６０）を予約することができる。ルータ７０Ａ，７０Ｂは、現状技術において知られているように、ブラウザインターフェースを介して構成（コンフィギュレーション）することができる。
【００６８】
中継エージェント１１０Ａ、１１０Ｂ及びＮＡＴエージェント１２０Ａ、１２０Ｂを含むルータ７０Ａ，７０Ｂが有効状態にされると、該ルータは開始（スタートアップ）手順を実行し、アプリケーションサーバ１４０との接続を確立する。上記開始手順の間において、ルータ７０Ａ，７０Ｂは、トラフィックをアプリケーションサーバ１４０に中継するために内部ネットワーク側にポート（例えば、ポート５０６０）を予約する。このプライベートルータアドレスは、ＩＰ
ＰＢＸ ５０Ａ，５０ＢにおけるＳＩＰトランクとして構成することができる。ルータ７０Ａ，７０Ｂは、該ルータ７０Ａ，７０ＢのＷＡＮ側の接続を直接使用することにより、オプションとしてＳＳＬによるＣＯＢＲＡ（CORBA over SSL）等の安全保護プロトコルを用いてアプリケーションサーバ１４０につながり、かくして、ＮＡＴ通過の必要性を取り除く。ルータ７０Ａ，７０Ｂ内の中継エージェント機能１１０Ａ、１１０Ｂは、アプリケーションサーバ１４０とのＴＣＰ接続を維持するために、該アプリケーションサーバ１４０に対して存在維持信号を依然として送信する。アプリケーションサーバ１４０がファイアウォール／ＮＡＴ
３０Ａ、３０Ｂにおけるポートの開きを必要とする場合、ルータ７０Ａ，７０Ｂ内の中継エージェント機能１１０Ａ、１１０Ｂは、到来するＳＩＰ信号伝達パケットがＩＰ ＰＢＸ
５０Ａ，５０Ｂに直接配信されるように、該ルータのNATingテーブルの更新を直接開示させることができる。
【００６９】
ＲＴＰ／ＲＴＣＰポートの連続要件は、ルータ７０Ａ，７０Ｂのコード内で、ファイアウォール／ＮＡＴ
３０Ａ、３０ＢにＲＴＰ及びＲＴＣＰ接続のための２つの連続したパブリックポートを予約させることにより、直接対処することができる。このように、遠端における中継エージェント１１０Ａ、１１０ＢがＲＴＰ及びＲＴＣＰトラフィックのための外向きプロキシとして機能する必要性はない。一端が内蔵された中継エージェント１１０Ａ、１１０Ｂ及びＮＡＴエージェント１２０Ａ、１２０Ｂを備えるルータ７０Ａ，７０Ｂを使用し、他端が別個の中継エージェント１１０Ａ、１１０Ｂ及びＮＡＴエージェント１２０Ａ、１２０Ｂを使用するような混合システムにおいては、アプリケーションサーバ１４０は、内蔵システムを備える端部上のパブリックポートが連続していることを検出し、かくして他方の端部において中継エージェント１１０Ａ、１１０Ｂ内にプロキシポートを作成することを回避することができる。この場合、アプリケーションサーバ１４０は、メディアパケットが、中継エージェント１１０Ａ、１１０Ｂを介して送信される代わりに、インターネットを介して直接送信されるべきことを指令することができる。
【００７０】
到来するメディアトラフィックの特別な処理の必要性が依然として存在するが、解決策は異なる。アプリケーションサーバ１４０は、ルータ７０Ａ，７０Ｂにパブリックポートを予約すると共に、特定のＩＰアドレス（遠方のファイアウォールアドレス）から到来する該ポート上のトラフィックをプライベートネットワーク２０Ａ，２０Ｂ内のメディア端点（エンドポイント）に送信するように単に要求することができる。このように、到来するメディアパケットのポート番号を修正する必要性はなくなる。
【００７１】
図１１は、中継エージェント１１０Ａ、１１０Ｂ及びＮＡＴエージェント１２０Ａ、１２０Ｂ及びファイアウォール／ＮＡＴ
３０Ａ、３０Ｂの機能がルータ７０Ａ，７０Ｂ内に含まれた筋書きにおいてファイアウォールを通過する例示的手順を示す。該手順はユーザＡがユーザＢの電話番号をダイヤルすることにより呼を開始した場合に始まる（ステップ１）。ユーザＡ用のＩＰ
ＰＢＸ ５０ＢはＳＩＰ勧誘要求を発生し、該ＳＩＰ勧誘要求をＳＩＰトランク上にルータ７０Ａに向かって送信する（ステップ２）。ルータ７０Ａは、該ＳＩＰ勧誘要求をＳＩＰプロキシ１３０に送信する（ステップ３）。ＳＩＰプロキシ１３０はアプリケーションサーバ１４０に、新たな呼がなされていることを通知する（ステップ４）。アプリケーションサーバ１４０は、前述したようにして、上記ＳＩＰ勧誘要求の内容からユーザＡの素性（識別情報）を決定する（ステップ５）と共にユーザＢの素性を決定する（ステップ６）。次いで、アプリケーションサーバ１４０は、ルータ７０Ａに対して、信号伝達及びメディア接続用のポートを開くための要求を送信する（ステップ７）。４つのポートが必要とされる。即ち、前述したように、１つはＳＩＰ勧誘要求におけるCONTACT用であり、１つはＳＩＰ勧誘要求におけるＶＩＡ用であり、１つはＲＴＰ用であり、１つはＲＴＣＰ用である。ルータ７０Ａはファイアウォールにおけるポートを開き（ステップ８）、アプリケーションサーバ１４０に斯かるポートのアドレスを返送する（ステップ９）。
【００７２】
アプリケーションサーバ１４０は、次いで、ルータ７０ＢにＳＩＰ勧誘要求のためのポートを開くように要求する（ステップ１０）。ルータ７０Ｂは、ポートを開き（ステップ１１）、アプリケーションサーバ１４０に対して該ポートのアドレスを返送する（ステップ１２）。次いで、アプリケーションサーバ１４０は、ＳＩＰ勧誘を修正するためにＳＩＰプロキシ１３０に値を返送する（ステップ１３）。ＳＩＰプロキシ１３０は、ＳＩＰ勧誘を修正し（ステップ１４）、該修正されたＳＩＰ勧誘を、ルータ７０Ｂにより開かれたポートに送信する（ステップ１５）。ルータ７０Ｂは、上記の修正されたＳＩＰ勧誘をＩＰ
ＰＢＸ ５０Ｂに送信し（ステップ１６）、該ＩＰ ＰＢＸ ５０ＢはユーザＢの電話内線番号を呼び出す（ステップ１７）。
【００７３】
ユーザＢが応答した場合（ステップ１８）、ＩＰ
ＰＢＸ ５０Ｂはルータ７０ＢにＳＩＰ ＯＫ応答を送信する（ステップ１９）。ルータ７０Ｂは、該ＳＩＰ ＯＫをＳＩＰプロキシ１３０に送信する（ステップ２０）。該ＳＩＰプロキシ１３０はアプリケーションサーバ１４０に、ＳＩＰ
ＯＫ応答が受信されたことを通知する（ステップ２１）。次いで、アプリケーションサーバ１４０はルータ７０Ｂに対して、ＲＴＰ及びＲＴＣＰ接続のための、並びにＳＩＰ応答メッセージの肯定応答用の追加の信号伝達接続のためのポートを開く要求を送信する（ステップ２２）。ルータ７０Ｂは、ＲＴＰ及びＲＴＣＰのためのポートを開き（ステップ２３）、アドレスをアプリケーションサーバ１４０に返送する（ステップ２４）。アプリケーションサーバ１４０はＳＩＰプロキシ１３０に上記ＳＩＰ
ＯＫ応答を修正するための値を返送する（ステップ２５）。ＳＩＰプロキシ１３０は、上記ＳＩＰ ＯＫ応答を修正し（ステップ２６）、該修正されたＳＩＰ ＯＫ応答をルータ７０Ａに送信する（ステップ２７）。ルータ７０Ａは、上記の修正されたＳＩＰ
ＯＫ応答をＩＰ ＰＢＸ ５０Ａに送信する（ステップ２８）。尚、図１１には示されていないが、ＩＰ ＰＢＸ ５０ＡはＳＩＰ対話を確立するためにＳＩＰ ＡＣＫ要求を送信する。
【００７４】
図１２は、中継エージェント１１０Ａ、１１０Ｂ、ＮＡＴエージェント１２０Ａ、１２０Ｂ、ＳＩＰプロキシ１３０、アプリケーションサーバ１４０及びルータ７０Ａ，７０Ｂ等の本発明の機能的構成要素を実施化する例示的なホスト装置２００を示す。該ホスト装置２００は、当該ホスト装置をプライベートネットワーク、パブリックネットワーク又はこれら両方に接続するための１以上のネットワークインターフェース２０６と、本明細書で説明された手順を実施するためのプロセッサ２０４と、本明細書で説明された手順を実施するためのプログラムコード及びデータを記憶するためのメモリ２０２とを有している。上記プロセッサ２０４は、１以上のマイクロプロセッサ、ハードウェア又はこれらの組み合わせを有することができる。メモリ２０２は、一時的データを記憶するための揮発性メモリ（例えば、ＲＡＭ）オプションヨーロッパ特許出願第簿インターフェースプログラムコード及び構成データを記憶するための不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ）の両方を有することができる。
【００７５】
尚、本発明は、本発明の範囲及び必須の特徴から逸脱することなしに、ここで述べられたもの以外の他の特定の方法で実施することも勿論可能である。従って、上記実施例は全ての点において限定するものではなく解説的なものであると見なされるべきであり、添付請求項の意味及び均等範囲内に入る全ての変更は、請求項内に含まれるものとする。
【図１】
0005655009.tif 000006
【図２】
0005655009.tif 000007
【図３】
0005655009.tif 000008
【図４】
0005655009.tif 000009
【図５Ａ】
0005655009.tif 000010
【図５Ｂ】
0005655009.tif 000011
【図５Ｃ】
0005655009.tif 000012
【図５Ｄ】
0005655009.tif 000013
【図６】
0005655009.tif 000014
【図７】
0005655009.tif 000015
【図８】
0005655009.tif 000016
【図９】
0005655009.tif 000017
【図１０】
0005655009.tif 000018
【図１１Ａ】
0005655009.tif 000019
【図１１Ｂ】
0005655009.tif 000020
【図１２】
0005655009.tif 000021