特許第5655009号(P5655009)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サゲムコム カナダ インコーポレイテッドの特許一覧

<>
  • 特許5655009-拡縮可能なNAT通過 図000006
  • 特許5655009-拡縮可能なNAT通過 図000007
  • 特許5655009-拡縮可能なNAT通過 図000008
  • 特許5655009-拡縮可能なNAT通過 図000009
  • 特許5655009-拡縮可能なNAT通過 図000010
  • 特許5655009-拡縮可能なNAT通過 図000011
  • 特許5655009-拡縮可能なNAT通過 図000012
  • 特許5655009-拡縮可能なNAT通過 図000013
  • 特許5655009-拡縮可能なNAT通過 図000014
  • 特許5655009-拡縮可能なNAT通過 図000015
  • 特許5655009-拡縮可能なNAT通過 図000016
  • 特許5655009-拡縮可能なNAT通過 図000017
  • 特許5655009-拡縮可能なNAT通過 図000018
  • 特許5655009-拡縮可能なNAT通過 図000019
  • 特許5655009-拡縮可能なNAT通過 図000020
  • 特許5655009-拡縮可能なNAT通過 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5655009
(24)【登録日】2014年11月28日
(45)【発行日】2015年1月14日
(54)【発明の名称】拡縮可能なNAT通過
(51)【国際特許分類】
   H04L 12/70 20130101AFI20141218BHJP
   H04L 12/66 20060101ALI20141218BHJP
   H04M 3/00 20060101ALI20141218BHJP
【FI】
   H04L12/70 A
   H04L12/66 B
   H04M3/00 B
【請求項の数】20
【全頁数】32
(21)【出願番号】特願2011-548510(P2011-548510)
(86)(22)【出願日】2010年2月5日
(65)【公表番号】特表2012-517161(P2012-517161A)
(43)【公表日】2012年7月26日
(86)【国際出願番号】CA2010000167
(87)【国際公開番号】WO2010088774
(87)【国際公開日】20100812
【審査請求日】2012年11月20日
(31)【優先権主張番号】61/150,378
(32)【優先日】2009年2月6日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】511190937
【氏名又は名称】サゲムコム カナダ インコーポレイテッド
【氏名又は名称原語表記】SAGEMCOM CANADA INC.
(74)【代理人】
【識別番号】100097490
【弁理士】
【氏名又は名称】細田 益稔
(74)【代理人】
【識別番号】100113354
【弁理士】
【氏名又は名称】石井 総
(74)【代理人】
【識別番号】100097504
【弁理士】
【氏名又は名称】青木 純雄
(72)【発明者】
【氏名】ボワール−ラヴィーン, セバスチャン
(72)【発明者】
【氏名】コレット, リチャード
(72)【発明者】
【氏名】ラロンデ, セバスチャン
(72)【発明者】
【氏名】マレンファント,エリック
【審査官】 松崎 孝大
(56)【参考文献】
【文献】 特表2007−528649(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/70
H04L 12/66
H04M 3/00
(57)【特許請求の範囲】
【請求項1】
発呼者のプライベートネットワークにおけるファイアウォールを通過する方法であって、
パブリックネットワークにおけるSIPプロキシにより、発呼者からのSIP勧誘要求を受信するステップと、
前記発呼者のための中継エージェントに、前記SIPプロキシのパブリックアドレス及び前記SIP勧誘要求から得られる発呼者プライベートSIPアドレスを含む第1ファイアウォール穴開け要求を送信して、前記ファイアウォールに前記SIPプロキシからのSIP信号伝達メッセージを送信するためのポートを開けるステップと、
前記中継エージェントから、前記ファイアウォールにおける前記SIPプロキシからのSIP信号伝達メッセージのために開けられたポートのパブリックアドレスを含む第1穴開け応答メッセージを受信するステップと、
前記SIP勧誘要求を、前記SIPプロキシから受呼者に送信するステップと、
前記SIPプロキシにおいて、前記SIP勧誘要求に応答するSIP応答メッセージを受信するステップと、
前記SIP応答メッセージを、前記SIPプロキシから前記SIP信号伝達メッセージのために開けられたポートのパブリックアドレスに送信するステップと、
を有する方法。
【請求項2】
同一のSIP対話内の前記受呼者からのSIP信号伝達が前記発呼者に前記SIPプロキシを介して送信されることを保証するために、前記SIP勧誘を前記受呼者に送信する前に該SIP勧誘を修正するステップを更に有する請求項1に記載の方法。
【請求項3】
前記SIP勧誘を前記SIPプロキシから前記受呼者に関連付けられた所定のアドレスに送信する前に前記SIP勧誘を修正するステップが、
前記SIP応答メッセージが前記SIPプロキシに伝送されるように、VIAヘッダフィールドに前記SIPプロキシのパブリックアドレスを最上位アドレスとして追加するステップと、
同一のSIP対話内の前記発呼者からの後続のSIP要求が前記発呼者のための中継エージェントを介して送信されるように、前記発呼者のための中継エージェントのアドレスを含む第1記録経路を前記SIP勧誘要求に追加するステップと、
前記受呼者がパブリックネットワーク内にある場合に、該受呼者からの新たなSIP要求が前記SIPプロキシを介して送信されるように、前記SIPプロキシのアドレスを含む第2記録経路を前記SIP勧誘要求に追加するステップと、
前記受呼者がプライベートネットワーク内にある場合に、該受呼者からの新たなSIP要求が前記受呼者のための中継エージェントを介して送信されるように、前記受呼者の中継エージェントのアドレスを含む第2記録経路を前記SIP勧誘要求に追加するステップと、
を有する請求項2に記載の方法。
【請求項4】
前記SIP勧誘を前記SIPプロキシから前記受呼者に関連付けられた所定のアドレスに送信する前に前記SIP勧誘を修正するステップが、前記SIP勧誘要求の要求URIを前記受呼者の宛先URIと合致するように修正するステップを更に有する請求項3に記載の方法。
【請求項5】
前記受呼者からのメディアパケットを受信するためのファイアウォールポートを開けるために、前記受呼者により送信されるメディアパケットの見掛けパブリック送信元アドレスを含む第2ファイアウォール穴開け要求を前記発呼者のための中継エージェントに送信するステップと、
前記発呼者のための中継エージェントから、前記ファイアウォールにおける前記受呼者からのメディアパケットを受信するために開けられたポートのパブリックアドレスを含む第2穴開け応答メッセージを受信するステップと、
を更に有する請求項1に記載の方法。
【請求項6】
前記受呼者からのメディアパケットを受信するための1以上のポートを予約するために、各々が前記受呼者からのメディアパケットを中継するために前記発呼者の宛先アドレスを含む1以上のポート予約要求を前記受呼者のための中継エージェントに送信するステップと、
前記ポート予約要求に応答して前記受呼者のための中継エージェントから、各々が予約されたポートのアドレスを含む1以上のポート予約応答を受信するステップと、
を更に有する請求項5に記載の方法。
【請求項7】
メディア接続のための宛先アドレスが、
前記発呼者のための中継エージェントにおけるプロキシアドレス、又は
前記ファイアウォールにおいて前記受呼者からのメディアパケットを受信するために開けられたポートのパブリックアドレス、
となるように、前記SIP勧誘要求を送信する前に該SIP勧誘要求におけるメディア記述を修正するステップを更に有する請求項6に記載の方法。
【請求項8】
受呼者のネットワークにおけるファイアウォールを通過する方法であって、
パブリックネットワークにおけるSIPプロキシにより、発呼者からのSIP勧誘要求を受信するステップと、
前記受呼者のための中継エージェントに、前記SIPプロキシのパブリックアドレス及び前記受呼者のプライベートアドレスを含む第1ファイアウォール穴開け要求を送信して、前記SIPプロキシからのSIP勧誘要求を送信するためのファイアウォールポートを開けるステップと、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記SIPプロキシからのSIP勧誘要求のために開けられたポートのパブリックアドレスを含む第1穴開け応答メッセージを受信するステップと、
前記SIP勧誘要求を、SIP勧誘要求を該SIP勧誘要求のために開けられた前記ファイアウォールポートのパブリックアドレスに送信することにより、前記SIPプロキシから前記受呼者に送信するステップと、
前記SIPプロキシにおいて、前記SIP勧誘要求に応答した前記受呼者からのSIP応答メッセージを受信するステップと、
前記SIP応答メッセージを、前記SIPプロキシから前記発呼者に送信するステップと、
を有する方法。
【請求項9】
同一のSIP対話内の前記受呼者からのSIP信号伝達メッセージが前記発呼者に前記SIPプロキシを介して送信されることを保証するために、前記SIP勧誘を前記SIPプロキシから前記受呼者に関連付けられた所定のアドレスに送信する前に該SIP勧誘を修正するステップを更に有する請求項8に記載の方法。
【請求項10】
前記SIP勧誘要求を修正するステップが、
前記SIP応答メッセージが前記SIPプロキシに伝送されるように、VIAヘッダフィールドに前記SIPプロキシのパブリックアドレスを最上位アドレスとして追加するステップと、
前記発呼者がパブリックネットワーク内に位置する場合に、同一のSIP対話内の前記発呼者からの後続のSIP要求が前記SIPプロキシを介して送信されるように、前記SIPプロキシのアドレスを含む第1記録経路を前記SIP勧誘要求に追加するステップと、
前記発呼者が第2プライベートネットワーク内に位置する場合に、同一のSIP対話内の前記発呼者からの後続のSIP要求が該発呼者のための中継エージェントを介して送信されるように、前記発呼者のための中継エージェントのアドレスを含む第1記録経路を前記SIP勧誘要求に追加するステップと、
前記受呼者からの新たなSIP要求が該受呼者のための中継エージェントを介して送信されるように、前記受呼者のための中継エージェントのアドレスを含む第2記録経路を前記SIP勧誘要求に追加するステップと、
を有する請求項9に記載の方法。
【請求項11】
前記発呼者からのメディアパケットを受信するための1以上のファイアウォールポートを開けるために、前記発呼者により送信されるメディアパケットの見掛けパブリック送信元アドレスを含む第2ファイアウォール穴開け要求を前記受呼者のための中継エージェントに送信するステップと、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記発呼者からのメディアパケットを受信するために開けられたファイアウォールポートのパブリックアドレスを含む第2穴開け応答メッセージを受信するステップと、
を更に有する請求項8に記載の方法。
【請求項12】
前記発呼者からのメディアパケットを受信するための1以上のポートを予約するために、各々が前記発呼者からのメディアパケットを中継するために前記受呼者の宛先アドレスを含む1以上のポート予約要求を前記発呼者のための中継エージェントに送信するステップと、
前記ポート予約要求に応答して前記発呼者のための中継エージェントから、各々が予約されたポートのアドレスを含む1以上のポート予約応答を受信するステップと、
を更に有する請求項11に記載の方法。
【請求項13】
メディア接続の宛先アドレスが、
前記発呼者に関連付けられた中継エージェントにおけるプロキシアドレス、又は
前記ファイアウォールにおいて前記発呼者からのメディアパケットを受信するために開けられたポートのパブリックアドレス、
となるように、前記SIP応答メッセージを前記SIPプロキシから前記中継エージェントに送信する前に該SIP応答メッセージにおけるメディア記述を修正するステップを更に有する請求項13に記載の方法。
【請求項14】
前記SIPプロキシからのSIP信号伝達メッセージを送信するためのファイアウォールポートを開くために、該SIPプロキシのパブリックアドレス及び前記SIP応答メッセージから得られる前記受呼者のプライベートアドレスを含む第3ファイアウォール穴開け要求を前記受呼者のための中継エージェントに送信するステップと、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記SIPプロキシからのSIP信号伝達メッセージのために開けられたポートのパブリックアドレスを含む第3穴開け応答メッセージを受信するステップと、
を更に有する請求項8に記載の方法。
【請求項15】
プライベートネットワークのファイアウォールにおけるポートを開く方法であって、
プライベートネットワークを保護するファイアウォール内のポートを開くために、外部ネットワークにおけるアプリケーションサーバから、データパケットが送出されるパブリックネットワーク内の指定された目標アドレス及び前記データパケットが送られる前記プライベートネットワーク内の指定されたプライベート宛先アドレスを含むファイアウォール穴開け要求を受信するステップと、
前記ファイアウォール内のファイアウォールポートを、前記ファイアウォール穴開け要求で指定された前記目標アドレスにファイアウォール穴開けパケットを送信することにより開くステップと、
前記ファイアウォール穴開けパケットに対する前記ファイアウォールポートのパブリックアドレスを含む応答を受信するステップと、
前記ファイアウォール穴開け要求に応答して、前記ファイアウォールポートのパブリックアドレスを含む穴開け応答メッセージを前記アプリケーションサーバに送信するステップと、
を有する方法。
【請求項16】
ファイアウォールにおけるポートを開く方法であって、
ファイアウォールポートを介してパブリックネットワーク内の目標アドレスに送信されるファイアウォール穴開けパケットを捕捉するステップであって、前記ファイアウォール穴開けパケットが、該パケットが伝送された前記ファイアウォールポートを示すパブリック送信元アドレスを含むようなステップと、
前記ファイアウォール穴開けパケットに応答して、前記ファイアウォール穴開けパケットのパブリック送信元アドレスを含んだペイロードを有する応答メッセージを、前記ファイアウォール穴開けパケットで指定されたパブリック送信元アドレスに送信するステップと、
を有する方法。
【請求項17】
発呼者のプライベートネットワークにおけるファイアウォールを通過するためのシステムであって、
発呼者からSIP勧誘要求を受信すると共に、該SIP勧誘要求を当該SIPプロキシから受呼者に送信し、
前記SIP勧誘要求に応答したSIP応答メッセージを当該SIPプロキシにおいて受信すると共に、該SIP応答メッセージを当該SIPプロキシから前記発呼者に送信する、
ように構成されたSIPプロキシと、
前記発呼者のための中継エージェントに、前記SIPプロキシのパブリックアドレス及び前記SIP勧誘要求から得られる前記発呼者のプライベートアドレスを含む第1ファイアウォール穴開け要求を送信して、前記ファイアウォールにSIP信号伝達メッセージを前記SIPプロキシから前記発呼者に送信するためのポートを開け、
前記中継エージェントから、前記ファイアウォールにおける前記SIPプロキシからのSIP信号伝達メッセージのために開けられたポートのパブリックアドレスを含む第1穴開け応答メッセージを受信する、
ように構成されたサーバと、
を有するシステム。
【請求項18】
受呼者のネットワークにおけるファイアウォールを通過するためのシステムであって、
発呼者からSIP勧誘要求を受信し、
前記SIP勧誘要求を該SIP勧誘要求のために開けられたファイアウォールポートのパブリックアドレスに送信することにより、前記SIP勧誘要求を当該SIPプロキシから受呼者に送信し、
前記SIP勧誘要求に応答した前記受呼者からのSIP応答メッセージを受信し、
前記SIP応答メッセージを当該SIPプロキシから前記発呼者へ送信する、
ように構成されたSIPプロキシと、
前記受呼者のための中継エージェントに、前記SIPプロキシのパブリックアドレス及び前記受呼者のプライベートアドレスを含む第1ファイアウォール穴開け要求を送信して、前記SIPプロキシから前記SIP勧誘要求を送信するためのファイアウォールポートを開け、
前記受呼者のための中継エージェントから、前記ファイアウォールにおける前記SIPプロキシからの前記SIP勧誘要求のために開けられたポートのパブリックアドレスを含む第1穴開け応答メッセージを受信する、
ように構成されたサーバと、
を有するシステム。
【請求項19】
ファイアウォールにおけるポートを開ける装置であって、
当該装置を前記ファイアウォールにより保護されたプライベートネットワークと接続するためのネットワークインターフェースと、
前記ネットワークインターフェースに接続されたプロセッサであって、
プライベートネットワークを保護するファイアウォール内のポートを開くために、外部ネットワークにおけるアプリケーションサーバから、データパケットが送出されるパブリックネットワーク内の指定された目標アドレス及び前記データパケットが送られる前記プライベートネットワーク内の指定されたプライベート宛先アドレスを含むファイアウォール穴開け要求を受信し、
前記ファイアウォール穴開け要求に応答して、前記ファイアウォール内のファイアウォールポートを、前記ファイアウォール穴開け要求で指定された前記目標アドレスにファイアウォール穴開けパケットを送信することにより開き、
前記ファイアウォール穴開けパケットに対する前記ファイアウォールポートのパブリックアドレスを含む応答を受信し、
前記ファイアウォール穴開け要求に応答して、前記ファイアウォールポートのパブリックアドレスを含む穴開け応答メッセージを前記アプリケーションサーバに送信する、
ように構成されたプロセッサと、
を有する装置。
【請求項20】
ファイアウォールにおけるポートを開けるための装置であって、
当該装置を前記ファイアウォールにより保護されたプライベートネットワークと接続するためのネットワークインターフェースと、
前記ネットワークインターフェースに接続されたプロセッサであって、
ファイアウォールポートを介してパブリックネットワーク内の目標アドレスに送信されるファイアウォール穴開けパケットであって、当該ファイアウォール穴開けパケットが伝送された前記ファイアウォールポートを示すパブリック送信元アドレスを含むようなファイアウォール穴開けパケットを捕捉し、
前記ファイアウォール穴開けパケットに応答して、前記ファイアウォール穴開けパケットのパブリック送信元アドレスを含んだペイロードを有する応答メッセージを、前記ファイアウォール穴開けパケットで指定されたパブリック送信元アドレスに送信する、
ように構成されたプロセッサと、
を有する装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2009年2月6日に出願された米国仮特許出願61/150378の利益を享受し、この仮出願は参照のため本願明細書の一部とする。
【0002】
本発明は、広くはネットワークアドレス変換器の通過に係り、更に詳細には、VoIP(Voice Over Internet Protocol)及び他の通信セッション用の対称ネットワークアドレス変換器を通過する(越える)ための拡縮可能(スケーラブル)な解決策に関する。
【背景技術】
【0003】
インターネットは、公衆的(パブリック)及び私的(プライベート)な多くの相互接続されたコンピュータネットワークの全世界的システムである。インターネットは、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)及びユーザデータグラムプロトコル(UDP)等の標準プロトコルを用いた2つの装置又は端点間の直接的端間接続性を可能にする。インターネットに接続された各装置にはIPアドレスが割り当てられ、該IPアドレスはデータパケットの経路指定(ルーティング)を可能にする。現在のところ、殆どの装置はインターネットプロトコルバージョン4(IPv4)で指定されたアドレス方式を用いている。インターネットの開放型アーキテクチャ及び準世界的アクセス可能性の結果、業務及び個人によりインターネットが広く採用され使用されるようになった。
【0004】
インターネットを流行させたフィーチャは、その欠点の幾つかの要因ともなる。例えば、全世界的アクセス及び直接的端間接続性は、地球の反対側のユーザが互いに直接通信するのを可能にするが、コンピュータをハッカ及び他の悪意のある第三者に曝させる。直接的端間接続性は、各端部装置に固有のインターネットIPアドレスが付与されるべきことも要する。しかしながら、インターネットの広く普及した採用の結果、IPv4アドレス空間における利用可能なアドレスが枯渇している。
【0005】
セキュリティの問題に対処するために、殆どの民間事業及び家庭ネットワークは今や何らかの形のファイアウォールを導入している。ファイアウォールは、保護されたネットワークへの権限のないアクセスを阻止する一方、ファイアウォールの外側のユーザとの認可された通信を許可するハードウェア及び/又はソフトウェアを有する。ファイアウォールは、保護されたネットワークに侵入するパケットに所定のセキュリティ・ポリシ(security policy)を適用することにより、権限のないアクセスから保護する。斯かるセキュリティ・ポリシは、当該保護されたネットワークに入る又は該ネットワークから出るデータパケットを支配する一群の規則及び手順を含む。ファイアウォールは、定められたポリシの特定の規則に基づいて、パケットが当該ファイアウォールを通過するのを許可する。殆どの場合、ファイアウォールは保護されたネットワーク内で発生した殆どの外に向かうパケットが当該ファイアウォールを通過するのを許可する一方、パブリック(公衆)ネットワークからの到来パケットを阻止する。パブリックネットワークからのデータトラフィックは、定められたアクセス制御フィルタに従う場合、送出データパケットに応答して送られた場合、又は既に確立された通信セッションの一部である場合にのみ、通過するのを許可される。
【0006】
アドレス消尽の問題は、典型的には、ネットワークアドレス変換(NAT)と呼ばれる技術を使用することにより処理される。ネットワークアドレス変換は、通常、全体のネットワークセキュリティ構成の一部としてファイアウォールと一緒に実施される。ネットワークアドレス変換は、プライベートネットワークに接続された装置が単一のIPアドレスを共用することを可能にする。ネットワークアドレス変換の背後に存する基本的思想は、プライベートアドレス空間のプライベートアドレスを当該プライベートネットワークに接続された装置に割り当てるというものである。プライベートアドレスは公衆のインターネットとは異なるアドレス空間を使用するので、プライベートアドレスを含むパケットはインターネットを介して経路指定することはできない。プライベートIPアドレスを持つ装置がインターネット上の他の装置と通信するのを可能にするために、NAT(ネットワークアドレス変換機構)は、当該プライベートアドレス空間内で有効なパケットのプライベートな送信元(ソース)及び宛先(デスティネーション)アドレスを、パブリックアドレス空間内で有効なパブリックの送信元及び宛先アドレスに変換する。
【0007】
各々が一層高いレイヤの通信プロトコルに異なるように影響を与えるような、多くの異なるNAT構成が存在する。本発明は対称NATを越える(通過する)場合の問題に対処するものであるが、本発明は他のタイプのNAT構成に対しても使用することができる。対称NATにおいては、同一のプライベートIPアドレス及びポートから特定の宛先IPアドレス及びポートへの各要求(リクエスト)は、固有のパブリック送信元IPアドレス及びポートにマッピングされる。同一の内部ホストが同一のプライベート送信元アドレス及びポートを持つデータパケットを、異なるパブリックIPアドレス又はポートに送る場合、異なるマッピングが使用される。対称NATにおいては、外部ホストにより送られたデータパケットは、内部ホストが当該データパケットを送る外部ホストからの応答を以前に誘った場合にのみ、通過されるであろう。外部ホストからの誘われていないデータパケットは、NATにより阻止されるであろう。
【0008】
ネットワークアドレス変換は、HTT、POP及びSMTR等の通常に使用されるプロトコルに対しては良好に動作するが、明示的なネットワークアドレスをペイロード内で送る幾つかのアプリケーションレベルの通信プロトコルに対しては問題を生じ得る。例えば、セッション確立プロトコル(SIP)はボイスオーバIP(VoIP)セッションを設定、維持及び終了させるために使用される信号伝達プロトコルである。典型的なVoIPアプリケーションは、音声、ビデオ及びfaxトラフィック等の信号伝達トラフィック(signaling traffic)及びメディアトラフィックのために異なるアドレス及び/又はポートを使用するであろう。VoIPセッションを設定するために、発呼者は受呼者(着呼者:called party)を、SIP勧誘(INVITE)要求を送出することにより呼に参加するように勧誘する。受呼者は該勧誘を、SIP応答(RESPONSE)メッセージを送出することにより受諾する。SIP勧誘及びSIP応答メッセージは、典型的には、特定のアドレス及びRTP(メディア)トラフィックに対して開かれているポートを含んでいる。
【0009】
受呼者が対称NATの背後にいる場合、SIP勧誘要求は該NATにより阻止され、該受呼者に決して届くことはない。受呼者に到達可能であったとしても、該受呼者からのSIP応答は、発呼者が対称ファイアウォール/NATの背後にいる状況では、阻止され得る。更に、VoIPアプリケーションは、典型的には、例えば音声データ等のRTP又はRTCPトラフィックを送信及び受信するために異なるIPアドレス及びポートを使用する。VoIPクライアントは、斯かるRTP及びRTCPトラフィックのためにNATにより割り当てられた外部アドレスを知る方法を有さない。
【0010】
ボイスオーバIP通信に対する上記のNAT(通過)問題を解決するために、多数の技術が使用されている。1つの解決策は、アプリケーションレベルのゲートウェイ(ALG)を使用することである。アプリケーションレベルゲートウェイは、NATを通過するデータパケットの調査及び変更を可能にするソフトウェアコンポーネントである。SIPプロトコルパケットの場合、ALGは、SIPメッセージのペイロードに含まれるプライベート送信元及び宛先アドレスをパブリック送信元及び宛先アドレスにより置換することができる。この技術は、セキュリティ及び正真性(authenticity)を保証するものでなく、ALGがアプリケーションレベルのプロトコルの知識を有さねばならないので、配備することが困難である。このように、典型的には各アプリケーションに対して別個のALGが必要となる。
【0011】
RFC5389に記載されたSTUN(Session Traversal Utility
for NAT:NAT用のセッション通過ユーティリティ)と称されるネットワークプロトコルは、プライベートネットワーク内のホスト装置が、ネットワークアドレス変換機構の存在を発見すると共に、遠隔ホストに対するユーザのUDP接続のために割り当てられたパブリックNATアドレスを取得するのを可能にする。クライアント装置は、遠隔ホストとの通信を確立する前に、STUN要求を発生し、該要求をパブリックネットワーク内のSTUNアプリケーションサーバに送出する。この要求は、NATにパブリックアドレスを割り付けさせると共に、当該STUN要求のパブリックアドレスとプライベート送信元アドレスとの間の結びつきを生成させる。STUNアプリケーションサーバは、上記クライアントに対してSTUN応答を送信し、該応答のペイロード内で前記NATにより割り当てられたパブリックNATアドレスを返送する。次いで、当該クライアントは、このアドレスをUDPパケット(信号伝達パケット及びメディアパケットの両方のための)を受信するアドレスとして公示することができる。該STUNプロトコルは、当該クライアントがSTUNアプリケーションサーバのパブリックアドレス以外のパブリックアドレスからパケットを受信しようとしているような状況においては、対称ファイアウォールに対して動作しない。
【0012】
TURN(Traversal Using Relay NAT:中継NATを用いる通過)と称されるプロトコルは、NATの背後のクライアントに対して、該クライアントがTCP又はUDP接続を介して到来データを受信するのを可能にするアプリケーションサーバ機能を提供する。STUNと同様に、クライアントは、遠隔ホストとの通信を確立する前にTURNアプリケーションサーバに要求を送信する。該TURNアプリケーションサーバは当該クライアントに対して、該クライアントがメディアに関する宛先として使用することが可能なアドレスを返送し、当該クライアントは該アドレスを上記遠隔ホストに送られるパケット用の宛先アドレスとして使用する。上記の返送された宛先アドレスは、上記遠隔ホストのアドレスではなく、代わりに、当該TURNアプリケーションサーバに関連するアドレスである。該TURNアプリケーションサーバは中継器として作用し、上記パケットを送付する。TURNは、NAT通過問題に対する解決策は提供するが、全てのパケットがTURNアプリケーションサーバにより中継されることを要し、従って、容易にスケーラブルにすることができない。追加のネットワークホップの導入により生じるネットワーク遅延は、典型的には、SIP信号伝達に影響を与えるほど重大ではないが、メディアパケットは最小の遅延で配信されるべきである。従って、ホップの数を、従って全体の遅延を減少させる解決策が好ましい。
【0013】
セッションボーダコントローラ(SBC:Session Border Controller)は、幾つかのVoIPネットワークでネットワークアドレス変換機構を通過するために使用されている装置である。SBCは、メディアプロキシ機能及びセッション制御機能の両方を提供するセッション認識装置(session-aware device)である。SBCは、本質的に、2つの異なるネットワークにおける呼の脚路(コールレグ:call legs)を確立するプロキシである。SBCは、一方のコールレグ上のパケットを受信し、これらパケットを他方のコールレグ上の宛先に向かって送信する。SBCはアドレスを変更するので、幾つかのセキュリティ機構を壊し得る。また、セキュリティボーダコントローラは高価で、配備が困難であり、全パケットが当該SBCを介して中継されねばならないので容易にスケーラブルとすることができない。
【発明の概要】
【発明が解決しようとする課題】
【0014】
本発明は、VoIP及び他の通信セッション用の対称NATを通過するためのシステム及び方法を提供するものである。
【課題を解決するための手段】
【0015】
本システム及び方法は、4つの主たる構成要素:即ち、中継エージェント、NATエージェント、SIPプロキシ及びアプリケーションサーバを使用する。上記中継エージェントは、プライベートネットワークにおけるファイアウォール/NATの背後に配置され、パブリックネットワークに配置されたSIPプロキシと通信するように構成される。上記中継エージェントは、SIP信号伝達メッセージを、上記SIPプロキシを介して通過させる。上記アプリケーションサーバは、上記中継エージェントに、上記SIPプロキシと該中継エージェントとの間の信号伝達のために上記ファイアウォール/NATにおける信号伝達ポートを開くよう要求する。また、該アプリケーションサーバは、上記中継エージェントに、メディアトラフィックのために該ファイアウォール/NATにポートを開くようにも要求する。上記ファイアウォール/NATからインターネットへの経路内に配置されたNATエージェントは、メディアパケットをフィルタし、到来するメディアパケットのパブリック送信元アプリケーションを上記の開いたメディアポートに関連する所定のアドレスに変更する。
【図面の簡単な説明】
【0016】
図1図1は、一実施例によるNAT通過システムを組み込んだ例示的通信ネットワークを示す。
図2図2は、一実施例発明によるNAT通過システムの主構成要素及び構成要素間の信号の流れを示す。
図3図3は、アプリケーションサーバにユーザを登録するために使用されると共に、該アプリケーションサーバと中継エージェントとの間の接続を開通させるための登録手順を示す。
図4図4は、NATアプリケーションサーバと中継エージェントとの間の信号伝達接続を維持するための手順を示す。
図5A図5Aは、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
図5B図5Bも、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
図5C図5Cも、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
図5D図5Dも、一実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
図6図6は、ファイアウォールを介して信号伝達又はメディア接続を開通させるための手順を示す。
図7図7は、ファイアウォールを介して信号伝達又はメディア接続を維持するための手順を示す。
図8図8は、本発明の一実施例における信号伝達トラフィックのためのメッセージ配信を示す。
図9図9は、本発明の一実施例におけるメディアトラフィックのためのメッセージ配信を示す。
図10図10は、他の実施例におけるルータを示す。
図11A図11Aは、他の実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
図11B図11Bも、他の実施例によるファイアウォールを介して通信セッションを確立するための手順を示す。
図12図12は、中継エージェント、NATエージェント、SIPプロキシ及びアプリケーションサーバ等の、本発明の機能的構成要素を実施化するための例示的ホスト装置を示す。
【発明を実施するための形態】
【0017】
ここで図面を参照すると、図1は本発明の一実施例により構成された通信ネットワーク10を示す。通信ネットワーク10は、インターネット等のパブリックネットワーク40に相互接続された2つのプライベートネットワーク20を有している。明瞭化のために、以下の説明における符号には、発呼者(calling party、ここでは、ユーザAと称する)に関連する構成要素を示すための文字A、又は受呼者(着呼者:called party、ここでは、ユーザBと称する)に関連する構成要素を示すための文字Bの何れかが付され得る。従って、プライベートネットワーク20Aは発呼側(calling party)のネットワークを示す一方、プライベートネットワーク20Bは受呼者側(called party)のプライベートネットワークを示す。構成要素を総称的に議論する場合、符号は文字なしで使用され得る。また、ここで使用される“アドレス”なる用語は、IPアドレス及びポート番号の両方を含む完全に適格なネットワークアドレスを指すことに注意されたい。また、“IPアドレス”なる用語は、ポート番号を伴わないネットワークアドレスを指す。
【0018】
各プライベートネットワーク20A、20Bは、セキュリティを提供すると共に、当該プライベートネットワーク20A、20Bに対する権限のないアクセスに対して保護するためのファイアウォール/NAT
30A、30Bを含んでいる。この実施例において、ファイアウォール/NAT 30A、30Bは対称NATを実施化するためのハードウェア及び/又はソフトウェアを含んでいるが、対称NATの使用は本発明にとり重要ではない。本発明は、他のNAT構成と共に使用することもできる。
【0019】
各ネットワーク20A、20Bは、IP(インターネット・プロトコル)PBX(プライベート内線交換機:構内交換機)50A、50Bを含み、該PBXは公衆交換電話網(PSTN)と相互接続して、該PSTNを介して音声及びデータが伝送されるのを可能にする。IP
PBX 50A、50Bは、セッション確立プロトコル(SIP)及びRTP等の標準のVoIPプロトコルを実施する如何なる通常のVoIPゲートウェイを有することもできる。IP
PBX 50A、50Bは、PSTNよりもパブリックネットワーク40を介してネットワーク20A、20Bにおけるユーザ60A、60Bの間の呼(call)を確立するために使用することができる。背景技術で説明したように、各プライベートネットワーク20A、20Bの境界における対称ファイアウォール/NAT
30A、30Bの存在は、ボイスオーバIPセッションが確立されるのを妨害し得る。
【0020】
通信ネットワーク10は、図2に示されるようなVoIP通信に関してファイアウォール/NAT
30A、30Bを通過するためのシステム100を含んでいる。本発明は、データパケットのペイロードにおいてアドレス情報が伝達されるような他のアプリケーションにも適用することができる。システム100は、4つのタイプの構成要素:即ち、プライベートネットワーク20A、20Bに各々存在する中継エージェント110A、110B;パブリックネットワーク40から到来するパケットをファイアウォール/NAT
30A、30Bを通過する前に捕捉(intercept)するNATエージェント120A、120B;パブリックネットワーク40内のプロキシサーバ130;及びパブリックネットワーク40内のアプリケーションサーバ140を有している。NATエージェント120A、120Bは、ファイアウォール30A、30Bにおけるポートを開く役割も果たす。
【0021】
中継エージェント110A、110Bは、プライベートネットワーク20A、20B内のホスト装置(例えば、コンピュータ)上のソフトウェアとして実施化することができる。中継エージェント110A、110Bは、例えば、IP
PBX 50A、50Bと同一のホスト装置内に存在することができるか、又は別のホスト装置内に存在することもできる。中継エージェント110A、110Bは、ユーザ装置(UE)内に存在することもできる。中継エージェント110A、110Bは、耐故障アーキテクチャを形成するためにクラスタ配置で動作することができる。
【0022】
SIPプロキシ130及びアプリケーションサーバ140は、パブリックネットワーク40に接続されたコンピュータ上のソフトウェアとして実施化することができる。SIPプロキシ130及びアプリケーションサーバ140は、同一のコンピュータ内に又は別個のコンピュータ内に存在することができる。また、SIPプロキシ130及び/又はアプリケーションサーバ140の機能は、幾つかのコンピュータ若しくはプロセッサの間に、又はアプリケーションサーバのクラスタ内に分散させることができる。
【0023】
NATエージェント120A、120Bは、本質的に、ソフトウェアにより実施化することが可能な幾つかの相対的に簡単な機能を備えるパケットフィルタである。中継エージェント110A、110B及びNATエージェント120A、120Bは、幾つかの相対的に簡単な機能を実行する一方、SIPプロキシ130及びアプリケーションサーバ140には大量の論理が含まれる。このアーキテクチャは、対称ファイアウォール/NAT
30A、30Bを通過するための容易にスケーラブルな解決策を提供する。
【0024】
以下に更に詳細に説明するように、中継エージェント110A、110Bは、SIPの信号伝達を、対応するIP
PBX 50A、50Bへ、及び対応するIP PBX 50A、50Bから中継する。中継エージェント110A、110Bは、IP PBX 50A、50Bから受信された出力(outgoing)信号伝達パケットを、パブリックネットワーク40内のSIPプロキシ130に中継する。同様に、中継エージェント110A、110Bは、SIPプロキシ130からのSIP信号伝達パケットを、対応するIP
PBX 50A、50Bに代わって受信すると共に、到来するSIP信号伝達メッセージをIP PBX 50A、50Bに中継する。中継エージェント110A、110Bは、上記中継機能を実行するために、パケットの内容を分析する必要はない。
【0025】
NATエージェント120A、120Bは、プライベートネットワーク20A、20Bとパブリックネットワーク40との間のトラフィック経路に配置され、到来するパケットを、保護されたネットワーク20A、20Bのファイアウォールを横切る前に捕捉する。図1に示された実施例において、NATエージェント120AはユーザBによりユーザAに対して送信されたメディアパケットを捕捉する一方、NATエージェント120BはユーザAによりユーザBに対して送信されたメディアパケットを捕捉する。NATエージェント120A、120Bは、斯かるメディアパケットに含まれる送信元アドレスを変換して、当該アドレスがファイアウォール/NAT
30A、30Bにより実施されるポリシ及び規則に準拠することを確実にする。
【0026】
SIPプロキシ130及びアプリケーションサーバ140は、VoIPセッションの確立を容易化する。全てのSIPの信号伝達は、SIPプロキシ130を通過する。SIPプロキシ130は、中継エージェント110A又は中継エージェント110BからSIP信号伝達メッセージを受信し、これらSIP信号伝達メッセージに含まれるアドレス情報を修正し、該信号伝達メッセージを中継エージェント110B又は中継エージェント110Aに送信する。
【0027】
アプリケーションサーバ140は、SIPプロキシ130及び両プライベートネットワーク20A、20B内の中継エージェント110A、110Bと通信する。TCP接続が、中継エージェント110A、110Bとアプリケーションサーバ140との間にファイアウォール30A、30Bを介して確立される。この接続は、以下に説明されるように、アプリケーションサーバ140が中継エージェント110A、110Bに要求を送信することができるように開通状態に維持される。アプリケーションサーバ140の主たる機能は、SIPセッションを許可及び容易にすると共に、中継エージェント110A、110Bと協調して信号伝達トラフィック及びメディアトラフィックの両方ためにファイアウォール/NAT
30A、30B内のポートを開き、該開かれたポートに関連するパブリックアドレスを取得し、信号伝達のために開かれた該ポートのアドレスをSIPプロキシ130に供給することである。
【0028】
図3〜9は、対称NATを用いるファイアウォール/NAT
30A、30Bを通過するための、本発明の一実施例による例示的手順を示す。この例においては、プライベートネットワークA上のユーザAがプライベートネットワークB上の第2のユーザBとの呼を確立しようと試みていると仮定する。更に、両プライベートネットワーク20A及び20Bは、対称NATを用いたファイアウォール/NAT
30A、30Bを含んでいると仮定する。これらの状況は、NAT通過にとり恐らくは最も困難なものである。本発明は、ファイアウォール/NATが当該通信の一方の側にのみ存在する場合にも、又は他のタイプのNAT構成に対しても使用することができる。従って、ここで説明する実施例は、本発明を限定するものとみなしてはならない。
【0029】
NAT通過を果たすために、中継エージェント110A、110Bは、先ずアプリケーションサーバ140に登録すると共に該アプリケーションサーバ140との通信チャンネルを確立しなければならない。ユーザアカウントは、既に加入手続の間に確立されていると仮定する。図3は、例示的な登録手順を示す。登録手順を開始するために、中継エージェント110A、110Bはファイアウォール穴開け(パンチング)手順を実行してファイアウォール/NAT
30A、30BのパブリックIPアドレス(natip)を見付ける。ファイアウォール穴開け手順は下記に詳細に説明される。中継エージェント110A、110Bはファイアウォール/NAT
30A、30BのIPアドレスを発見することにしか関心がないので、該ファイアウォール穴開け手順により開通された接続は維持されない。中継エージェント110A、110Bは、ファイアウォール/NAT
30A、30BのIPアドレスを記憶する。次に、中継エージェント110A、110Bは、1以上のローカルポートを開き、該開かれたポート上で受信される外向け(outbound)パケットをSIPプロキシ130に中継するプロキシプロセッサを開始する(ステップ2)。一例として、中継エージェント110A、110Bは他のSIP装置との統合を容易にするためにポート5060及び7000を選択することができる。アプリケーションサーバ140とのTCP接続を確立するために、中継エージェント110A、110Bは該アプリケーションサーバ140に登録要求を送信する(ステップ3)。該登録要求は、登録されるユーザのためのアカウントID(AccountID)及びパスワード、前記ファイアウォール穴開け手順の間に発見されたファイアウォール/NAT 30A、30BのIPアドレス(natip)、並びにPBXエージェント110A、110BがSIP要求を受信したいプライベートアドレスを含む。
【0030】
上記外向け登録要求を受信すると、ファイアウォール/NAT
30A、30Bは該ファイアウォール/NAT 30A、30B上のポートを割り当てると共に、該ポートのパブリックアドレスを、上記登録要求が送出された中継エージェント110A、110Bのプライベートアドレスに関係づけるエントリを自身のNATテーブル(NATing table)に作成する(ステップ4)。ファイアウォール/NAT 30A、30Bは、上記登録要求をアプリケーションサーバ140に送信する(ステップ5)。サーバ140が該登録要求を受信すると、該サーバは、上記アカウントIDにより指定されるアカウントを見付けると共に、当該登録要求内の前記パスワードを用いて認証(authentication)を実行する。該認証が成功した場合、アプリケーションサーバ140は当該登録要求のパブリック送信元アドレス及び当該登録要求に含まれるファイアウォール/NAT
30A、30BのパブリックIPアドレス(natip)を記憶する(ステップ6)。アプリケーションサーバ140は、当該登録が成功したことを示すために、中継エージェント110A、110Bに登録応答を送信する。
【0031】
アプリケーションサーバ140とのTCP接続が一旦開通されたら、中継エージェント110A、110Bは、図4に示されるような存在維持手順を周期的に実行して、アプリケーションサーバ140との該TCP接続を維持する。該存在維持手順は、ファイアウォール/NAT
30A、30Bにおける前記ポートが開いたままとなることも保証する。中継エージェント110A、110Bは、存在維持メッセージをアプリケーションサーバ140に送信する(ステップ1)。ファイアウォール/NAT
30A、30Bは、上記パケットを捕捉し、当該中継エージェントのパブリック及びプライベートアドレスの間のTCP接続のために存在時間(有効期間:time to live)をリセットし(ステップ2)、上記存在維持メッセージをアプリケーションサーバ140に送信する(ステップ3)。該存在維持メッセージはアプリケーションサーバ140に、中継エージェント110A、110Bが依然として利用可能であること及びVoIPの呼のための信号伝達を上記中継エージェントに送信することができることを示す。アプリケーションサーバ140は、当該TCP接続が依然として開通されていることを中継エージェント110A、110Bに示すために存在維持応答を送信することができる。
【0032】
アプリケーションサーバ140は、上記登録手順の間に開通されたTCP接続を、以下に説明するように、ファイアウォール/NAT
30A、30BにVoIPセッション用の信号伝達及びメディア接続のためのポートを開くために中継エージェント110A、110Bに対して将来のファイアウォール穴開け要求を送信するために使用することができる。中継エージェント110A、110Bとアプリケーションサーバ140との間のTCP接続は、SSL伝送を用いて安全を確保することができる。
【0033】
図5A〜5Dは、ユーザAとユーザBとの間にVoIPの呼を確立するための手順を示す。具体的な例を示すために、当該呼に関わる主体のアドレスは下記の通りとする:
ユーザAの装置のプライベートアドレス(RTPのための) 192.168.1.200:24580
IP PBX Aのプライベートアドレス 192.168.1.100:5060
中継エージェント110Aのプライベートアドレス 192.168.1.50.5060
ユーザBの装置のプライベートアドレス(RTPのための) 192.168.2.200:24582
IP PBX Bのプライベートアドレス 192.168.2.100:5060
中継エージェント110Bのプライベートアドレス 192.168.2.50.5060
SIPプロキシ130のパブリックアドレス 216.218.42.170:7000
アプリケーションサーバ140のパブリックアドレス 216.218.42.170:8888
ファイアウォール/NAT 30AのパブリックIPアドレスは216.218.42.173であり、ファイアウォール/NAT 30BのパブリックIPアドレスは216.218.42.172である。
【0034】
当該手順は、ユーザA(発呼者)がユーザBのパブリック電話番号(例えば、514-666-1000)を呼び出すことによりVoIPの呼を開始した場合(ステップ1)に始まる。該呼が開始された場合、IP
PBX A 50AはSIP勧誘要求(SIP Invite request)を発生し、該SIP勧誘要求をSIPトランク(通信路)上で中継エージェント110Aまで送信する(ステップ2)。ユーザAのIP
PBX 50Aは、中継エージェント110Aのアドレスを指すSIPトランクを使用するように構成されている。例示的なSIP勧誘要求を下記に示す。
【0035】
【数1】
この時点で、該SIP勧誘要求のリクエストラインはユーザB(受呼者)のSIP
URIを含み、CONTACTヘッダフィールド及びVIAヘッダフィールドはIP PBX 50Aのプライベートアドレスを含んでいる。メディア記述は、メディア接続のためにユーザAのユーザ装置(UE
A)のプライベートアドレスを含んでいる。
【0036】
中継エージェント110Aは上記SIP勧誘要求をポート5060上で受信し、該SIP勧誘要求をパブリックネットワーク40におけるSIPプロキシ130のパブリックアドレス(216.218.42.170:7000)に中継する(ステップ3)。中継エージェント110Aは、ポート5060上で受信された全てのパケットを変更しないでSIPプロキシ130に中継するように構成されている。ファイアウォール/NAT
30Aは、出て行くパケットを捕捉し、これらパケットの送信元アドレスをファイアウォール/NAT 30Aのパブリックアドレス(216.218.42.173:何れか)に変更し、該パケットをSIPプロキシに送信する(ステップ4)。
【0037】
SIPプロキシ130はアプリケーションサーバ140に、ユーザAから新しいSIP勧誘要求が受信されたことを通知する(ステップ5)。アプリケーションサーバ140は、該SIP勧誘要求を伝達するパケットの送信元アドレスに基づいて、該SIP勧誘要求はプライベートネットワーク20A上のユーザから生じたものであると判断するが、これは、これらパケットの送信元IPアドレスが、登録の間にアプリケーションサーバ140により取得されたアドレスと一致するためである(ステップ6)。また、アプリケーションサーバ140は、当該要求のURI内の電話番号が、プライベートネットワーク20Bに関連する登録された番号に対応すると判断する(ステップ7)。
【0038】
VoIPセッションを可能にするために、アプリケーションサーバ140は、プライベートネットワーク20Aに対して信号伝達及びメディアの両方のトラフィックのためにファイアウォール/NAT
30Aを経る接続を開通させる必要がある。発呼側では、2つの信号伝達接続及び2つのメディア接続が必要とされる。一方の信号伝達接続は、IP PBX 50Bが新しいSIP要求を送信することを可能にすべく、元のSIP勧誘要求で指定されたCONTACTのために必要とされる。他方の信号伝達接続は、IP PBX 50BがSIP勧誘に対する応答を送信することを可能にすべく、元のSIP勧誘で指定されたVIAのために必要とされる。新しいSIP要求及び応答の両者は、SIPプロキシ130を介して送信されるであろう。また、RTP及びRTCPトラフィックのために、別個のメディア接続も各々必要とされる。
【0039】
ファイアウォール/NAT 30Aのポートを開けるために、アプリケーションサーバ140は、登録手順の間に確立されたTCP接続を用いて、中継エージェント110Aに対し1以上のファイアウォール穴開け要求を送信する(ステップ8)。典型的には、アプリケーションサーバ140は、各信号伝達及びメディア接続のために別個のファイアウォール穴開け要求を送信するであろう。しかしながら、当該手順は、複数の接続が単一のファイアウォール穴開け要求により確立されるのを可能にするように変更することができる。ファイアウォール穴開け要求は、当該ファイアウォール穴開け要求の目標装置を示すための目標情報エレメント(IE)を有する。斯かる目標IEは、パケットが送出されるであろう目標装置のパブリックアドレス(又は見掛けパブリックアドレス:apparent public address)を指定する。ファイアウォール穴開け要求は宛先IEも含み、該宛先IEはパケットが中継されるであろう宛先装置のプライベート宛先アドレスを指定する。
【0040】
CONTACTのための接続を開通させるために、アプリケーションサーバ140は、SIPプロキシ130のパブリックアドレス(216.218.42.170:5060)を上記目標IEに挿入すると共に、元のSIP勧誘のCONTACTヘッダフィールドで指定されたプライベートアドレス(192.168.1.100:5060)を上記宛先IEに挿入する。VIAのための接続を開通させるために、アプリケーションサーバ140は、SIPプロキシ130のパブリックアドレス(216.218.42.170:5060)を上記目標IEに挿入すると共に、元のSIP勧誘のVIAヘッダフィールドで指定されたプライベートアドレス(192.168.1.100:5060)を上記宛先IEに挿入する。RTP及びRTCP接続のために、アプリケーションサーバ140は、ファイアウォール/NAT
30BのIPアドレス(216.218.42.172)にポート5353を付加し、その結果を目標IEに挿入する。生成されたアドレスは、受呼者からのメディアパケットのための見掛けパブリック送信元アドレスである。以下に説明されるように、ファイアウォール/NAT
30Aに到達するメディアパケットは、上記見掛けパブリック送信元アドレスから生じたように見える。RTP及びRTCP接続のために、アプリケーションサーバ140は、発呼者のIP電話のプライベートアドレス(RTP用の192.168.1.200:24580及びRTCP用の192.168.1.200:24581)を宛先IEに挿入する。発呼者のIP電話のプライベートアドレスは、元のSIP勧誘要求のSDPに含まれている。
【0041】
各ファイアウォール穴開け要求に応答して、中継エージェント110Aは、以下に詳細に説明するファイアウォール穴開け手順を実施して、該ファイアウォール穴開け要求の目標IEにおいてアプリケーションサーバ140により指定された目標装置のためのポートを開く。該ファイアウォール穴開け手順の間において、中継エージェント110Aはファイアウォール/NAT
30Aにより開かれたパブリックアドレスを知る。要求された接続の全てに対してポートが開かれた後、中継エージェント110Aはアプリケーションサーバ140に対し、1以上のファイアウォール穴開け応答において、ファイアウォール/NAT
30Aにより開かれたポートのパブリックアドレスを報告する。本例においては、下記のポートがファイアウォール/NAT 30Aにより開かれる:
CONTACT 216.218.42.173:2062
VIA
216.218.42.173:2064
RTP 216.218.42.173:2066
RTCP 216.218.42.173:2068
以下に詳述するように、RTP及びRTCP接続用のファイアウォール穴開け手順はNATエージェント120Aのための変換テーブルにもエントリを作成し、これは、ファイアウォール/NAT
30Aに到達する発呼者からのメディアパケットの送信元アドレスを変更するために使用される。
【0042】
アプリケーションサーバ140は、ネットワーク20Bにファイアウォールポートを開くと共に、中継エージェント110BにSIP信号伝達のための信号伝達接続を開通させるよう要求する必要もある。更に詳細には、SIP勧誘要求が送信されるのを可能にするために、ファイアウォール/NAT
30Bに開かれたポートが必要である。上記信号接続は、ファイアウォール穴開け要求をアプリケーションサーバ140から中継エージェント110Bに送信することにより開かれる(ステップ10)。前述したように、ファイアウォール穴開け要求は目標IE及び宛先IEを含む。アプリケーションサーバ140は、SIPプロキシ130のアドレス(216.218.42.170:5060)を目標IEに挿入して、SIP信号伝達メッセージが該SIPプロキシ130のパブリックアドレスから送信されるであろうことを示す。宛先IEはIP
PBX 50Bのプライベートアドレス(192.168.2.100:5060)を含む。ファイアウォール穴開け手順は、中継エージェント110Bがファイアウォール/NAT
30Bにおいて信号伝達のために開かれたパブリックアドレス(ファイアウォール穴開け応答で返送される(ステップ11))を知るのを可能にする。この例では、当該信号伝達のために返送されるアドレスは、216.218.42.172:4811である。
【0043】
アプリケーションサーバ140は、中継エージェント110Bが外に向かうRTP及びTRCPトラフィックの各々のための2つのポートを予約することも要求する。中継エージェント110Bにおいてポートを予約するために、アプリケーションサーバ140は中継エージェント110Bに対してポート予約要求を送信する。該ポート予約要求は、ファイアウォール/NAT
30Aにより開かれ、RTP及びRTCPパケットが送信されるであろうパブリックアドレスを示す宛先IEを含む。上記ポート予約要求に応答して、中継エージェント110Bは、外に向かうRTP及びRTCPトラフィックのためのポートを予約する。外に向かうRTPトラフィックのために予約されたポートは、偶数ポートでなければならず、RTCP用のポートは次の連続する奇数ポートである。中継エージェント110Bは、上記ポート予約要求に応答して、アプリケーションサーバ140にRTP及びRTCPのために予約されたプライベートアドレスを報告する(ステップ13)。本例では、中継エージェント110Bは、RTPトラフィックのために192.168.2.50:4814を予約し、RTCPトラフィックのために192.162.2.50:4815を予約する。
【0044】
SIPプロキシ130からの通知に応答して、アプリケーションサーバ140は、得られた予約されたアドレスをSIPプロキシ130に戻し(ステップ14)、該SIPプロキシ130はSIP勧誘要求を修正する(ステップ15)。音声メディア記述を含む簡単なSIP勧誘に関しては、SIP勧誘に対して下記の修正がなされる:
(1)要求URIは、プライベートIP
PBXアドレスにおけるUE Bのためのプライベート電話内線番号を含むように修正される。このアドレスは、アプリケーションサーバ140上のアカウントが確立された場合に構成される。
(2)メディア記述は、RTPアドレスがRTPトラフィック用に開かれた中継エージェント110Bのアドレス(192.168.2.50:4814)を指し、これによりメディアトラフィックが該中継エージェントを介して送信されるように、修正される。
(3)同じSIP対話内でのIP
PBX 50Aからの将来のSIP要求が中継エージェント110Aを介して送信されるように、該中継エージェント110Aのプライベートアドレス(192.168.1.50:7000)を指す第1のRECORD ROUTE(記録経路)が追加される。
(4)同じSIP対話内でのIP
PBX 50Bからの将来のSIP要求が中継エージェント110Bを介して送信されるように、該中継エージェント110Bのプライベートアドレス(192.168.2.50:7000)を指す第2のRECORD ROUTE(記録経路)が追加される(上記のものに加えて)。
(5)SIP応答がSIPプロキシ130を介して送られるように、SIPプロキシ130のパブリックアドレス(216.218.42.170:7000)を指すが最上位のVIAが追加される。
【0045】
強調表示された変更を伴う、修正されたSIP勧誘要求が、下記に示される。
【0046】
【数2】
SIPプロキシ130は、SIP勧誘を受信するためにファイアウォール/NAT
30Bに開けられたポートのパブリックアドレス(216.218.42.172:4811)に、上記の修正されたSIP勧誘を送信する(ステップ16)。中継エージェント110Bにより先に実行されたファイアウォール穴開け手順は、上記ポートのパブリックアドレスの、中継エージェント110Bのプライベートアドレスとの結合を形成した。ファイアウォール/NAT30Bは、SIP勧誘要求のパブリック宛先アドレスを中継エージェント110Bのプライベートアドレスにマッピングし、上記SIP勧誘要求を中継エージェント110Bに対し、ステップ10でFWPPを送信するために使用されたポートで送信する(ステップ17)。中継エージェント110Bは、該修正されたSIP勧誘要求を受信し、該SIP勧誘要求をIP
PBX 50Bに対し192.168.2.100:5060(ステップ10において送信されたファイアウォール穴開け要求の宛先IEで指定されたアドレスである)で送信する(ステップ18)。IP
PBX 50Bは、当該電話を内線番号1000で呼び出す(ステップ19)。IP PBX 50Bは、ユーザBが応答するのを待つ間に、SIPプロキシ130に対して1以上の仮の応答を送信することができる。
【0047】
ユーザBが当該電話に応答した場合、指示情報がIP
PBX 50Bに送信される(ステップ20)。IP PBX 50Bは当該SIP勧誘要求を、メディア記述を伴うSIP200OK応答を当該SIP勧誘要求の最上位VIAで指定されたアドレス(216.218.42.170:7000)に送信することにより受諾する。これは、SIPプロキシ130のパブリックアドレスである。上記SIP200OK応答を下記に示す。
【0048】
【数3】
該SIP200OK応答のメディア記述は、メディア接続のためのユーザBのユーザ装置(UE B)のIPアドレス(192.168.2.200)及びポート(24582)を含む。CONTACTのヘッダフィールドは、IP PBX 50Bのプライベートアドレス(192.168.2.100:5060)を含む。
【0049】
上記SIP200OK応答は、中継エージェントに送信される(ステップ21)。このSIP勧誘応答を受信すると、中継エージェント110Bは該SIP勧誘応答を中継する(ステップ22)。ファイアウォール/NAT
30Bは、このSIP200OK応答を捕捉し、該応答をSIPプロキシ130に送信する(ステップ23)。SIPプロキシ130は、アプリケーションサーバ140に、当該SIP処理に関してSIP200OK応答が受信されたことを通知する(ステップ24)。
【0050】
この時点で、アプリケーションサーバ140は、RTP及びRTCPトラフィックのためにファイアウォール/NAT
30Bを介して接続を開通させる必要がある。また、発呼者が上記SIP200OK応答に肯定応答(アクノレッジ)するSIP
ACK要求を送信するのを可能にするために信号伝達接続が必要となる。アプリケーションサーバ140は中継エージェント110Bに1以上のファイアウォール穴開け要求を送信して、RTP及びRTCPトラフィックのため並びにSIP要求のために開いたポートが必要であることを示す(ステップ25)。RTP及びRPCPの両方のための上記ファイアウォール穴開け要求の目標IEは、ポート番号5353が付加されたファイアウォール/NAT
30AのIPアドレスを含んでいる。これは、ユーザAにより送信されるメディアパケットのための見掛けパブリック送信元アドレスである。RTP接続のために、上記ファイアウォール穴開け要求の宛先IEは、RTPトラフィックのためのユーザBの電話のプライベートアドレス(192.168.2.200:24582)を含む。RTCP接続のために、上記ファイアウォール穴開け要求の宛先IEは、RTCPトラフィックのためのユーザBの電話のプライベートアドレス(192.168.2.200:24583)を含む。SIP要求のためのポートを開くために、上記ファイアウォール穴開け要求の目標IEはSIPプロキシ130のパブリックアドレス(216.218.42.170:7000)であり、宛先IEはSIP200OK応答のCONTACTヘッダフィールドで識別されるプライベートアドレス(192.168.2.100:5060)である。中継エージェント110Bは、ファイアウォール穴開け手順を実施してRTP及びRTCPトラフィックのための接続を開通させると共に、RTP及びTRCPトラフィックのために開かれたパブリックアドレスをアプリケーションサーバ140に報告する(ステップ26)。この例において、RTPトラフィックのためのパブリックアドレスは、216.218.42.172:4816である。また、RTCPトラフィックのためのパブリックアドレスは、216.218.42.172:4818である。また、中継エージェント110Bは、受呼者のCONTACTのために開かれたパブリックアドレスも報告するが、該アドレスは、本例では、216.218.42.172:4812である。
【0051】
RTP及びRTCPトラフィックのために、中継エージェント110Aによりポートが予約される必要もある。アプリケーションサーバ140は、中継エージェント110Aにおいてメディアトラフィックのためにポートを予約すべく、該中継エージェント110Aにポート予約要求を送信する(ステップ27)。該ポート予約要求は、ステップ26において宛先IEで返送されたファイアウォール/NAT
30Bにおけるパブリックアドレスを含む。該ポート予約要求に応答して、中継エージェント110Aは、RTP及びRTCPトラフィックの各々のための2つの連続したポートを予約すると共に、当該ポート予約要求に対する応答内で、アプリケーションサーバ140に対して、予約されたポートのプライベートアドレスを返送する(ステップ28)。本例では、RTPに対してポート2070が予約され、RTCPに対してポート2071が予約される。アプリケーションサーバ140は、SIP応答の修正のためにSIPプロキシ130にプライベートアドレスを中継する(ステップ29)。
【0052】
SIPプロキシ130は、中継エージェント110Aから受信されたアドレス情報を含めるためにSIP応答を修正する(ステップ30)。更に詳細には、SIPプロキシ130は、最上位のVIAを削除し、RTPアドレスがRTPトラフィックのために中継エージェント110Aにより予約されたポートのアドレス(192.168.1.50:2070)を指すようにメディア記述を修正する。修正された該SIP200OK応答が、強調表示された変更を伴って下記に示される。
【0053】
【数4】
SIPプロキシ130は、上記の修正されたSIP200OK応答を、VIA接続のために開かれたファイアウォール/NAT 30Aにおけるポートのパブリックアドレス(216.218.42.173:2064)に送信する(ステップ31)。中継エージェント110Aにより先に実行されたファイアウォール穴開け手順は、該ファイアウォール/NAT
30Aにより開けられたポートのパブリックアドレスと、VIA接続のための該中継エージェント110Aにおけるプライベートアドレスとの間の結合を形成している。このようにして、ファイアウォール/NAT
30Aは上記パブリックアドレスを中継エージェント110Aのプライベートアドレスに変換し、上記応答を該中継エージェント110Aに配信する(ステップ32)。中継エージェント110Aは、該修正されたSIP200OK応答を受信し、該SIP応答をIP PBX 50Aに、元のSIP勧誘要求のVIAヘッダで元々指定されているアドレス192.168.1.100:5060で配信する(ステップ33)。
【0054】
IP PBX 50Aは、該SIP応答を処理する(ステップ34)。当該SIP対話を完了するために、IP
PBX 50Aは中継エージェント110AにSIP ACK要求を送信する(ステップ35)。SIPにおいて、ACKは要求であり、応答ではないことに注意されたい。従って、該ACK要求は、中継エージェント110Aを指す、SIP勧誘にRECORD ROUTEエントリを追加することにより作成された第1の記録経路で指定されたアドレスに送信される。中継エージェント110Aは、該SIP
ACK要求をSIPプロキシ130に中継する(ステップ36)。ファイアウォール/NAT 30Aは該SIP ACK要求を受信し、該要求をSIPプロキシに配信する(ステップ37)。SIPプロキシ130は、アプリケーションサーバ140に、該ACK要求が受信されたことを通知する(ステップ38)。アプリケーションサーバ140は、SIPプロキシ130に対して、上記SIP
ACK要求が送信されるべき中継エージェント110Bにおけるアドレスを含む応答を送信する(ステップ39)。SIPプロキシ130は、上記SIP ACK要求を中継エージェント110Bに中継する(ステップ40)。中継エージェント110Bは、該ACK要求をIP
PBX 50Bに送信する(ステップ41)。IP PBX 50Bは上記ACK供給を処理し、当該対話は完了する(ステップ42)。この時点において、ファイアウォール/NAT
30A及び30B上には信号伝達及びメディア接続のための開いたポートが存在し、ユーザAとユーザBとの間の呼が確立される。
【0055】
図6は、ファイアウォールを介して接続を開通させるためのファイアウォール穴開け手順を示す。ファイアウォール穴開け手順は、中継エージェント110A、110Bによりイベントに応答して起動される。例えば、斯かるイベントは、インターネット内の目標装置から到来するパケットがプライベートネットワーク内の内部装置(宛先装置)に配信されるように、会社のファイアウォール/NAT
30A、30Bに“穴”を開けるための要求(例えば、アプリケーションサーバ140からのファイアウォール穴開け要求)を含み得る。対称NATの場合、中継エージェント110A、110Bは宛先装置に代わって斯かる穴を簡単に開けることはできず、目標装置から到来するパケットの経路内に留まる必要がある。
【0056】
ファイアウォール穴開け手順を開始するために、中継エージェント110A、110Bはソケットを開き、該ソケットをポートに結合する(ステップ1)。中継エージェント110A、110Bは、ファイアウォール穴開けパケット(FWPP)と呼ばれる特別に形成されたパケットを、ステップ1で開かれたポートから目標装置アドレスに送信する(ステップ2)。上記FWPPの送信元アドレスは、該FWPPが送出されるプライベート中継エージェントアドレス(agentip:agentport)であり、該FWPPの宛先アドレスは、目標装置のアドレス(targetip:targetport)である。ファイアウォール穴開け手順がアプリケーションサーバ140からのファイアウォール穴開け要求に応答して開始された場合、目標装置アドレスは該ファイアウォール穴開け要求の目標IEで指定されるアドレスである。
【0057】
会社のファイアウォール/NAT
30A、30Bは上記FWPPをLAN側で受信し、自身のNATingテーブルを検索して、該FWPPのプライベート送信元アドレスと該FWPPのパブリック宛先アドレスとの間の関連が既に存在するかを調べる(ステップ3)。一致するエントリが見つかったら、ファイアウォール/NAT
30A、30Bは、このNATingエントリの有効期間(time to
live)を更新し、当該FWPPを上記テーブルで見つかったのと同じパブリック送信元アドレスを用いてパブリック宛先アドレスに送信する。一致するエントリが見つからなかったら、ファイアウォール/NAT
30A、30Bは、パブリック送信元アドレス(natip:natport)を予約し、自身のNATingテーブルに該パブリック送信元アドレス(natip:natport)を中継エージェントアドレス(agentip:agentport)及び目標装置アドレス(targetip:targetport)と関連付ける新たなエントリを作成し、上記FWPPを、上記の予約したパブリック送信元アドレス(natip:natport)から宛先アドレス(targetip:targetport)に送信する(ステップ4)。かくして、ファイアウォール/NAT
30A、30Bは、internetipからnatip:natportに到来する如何なるパケットも、agentip:agentportに伝送する。
【0058】
NATエージェント120A、120Bは、ファイアウォール/NAT
30A、30BのWAN側からインターネットサービスプロバイダに送信される全てのパケットを分析し、FWPPを即座に認識することができる。FWPP(及び幾つかの下記の他のパケット)を除く殆どのパケットは、変更されずにNATエージェント120A、120Bを通過される。しかしながら、NATエージェント120A、120BはFWPPを捕捉し、目標装置アドレスに依存した行動をとる。目標装置アドレスが所定の“固定”ポート(本例では、ポート5353)を含む場合、NATエージェント120A、120Bは自身の変換テーブルにエントリを作成するか、又は該テーブルにおけるエントリを更新する(ステップ5)。該エントリは、3つの要素を含む。即ち、FWPPのパブリック送信元アドレス(natip:natport)、目標装置のIPアドレス(targetip)、及び使用されていない又は古いエントリを削除するために使用されるタイムスタンプである。全てのFWPPに関して、NATエージェント120A、120Bは、当該FWPPのパブリック送信元アドレスを抽出し、FWPP応答(FWPPR)を構築する(ステップ6)。該FWPPRは自身のペイロードにFWPPのパブリック送信元アドレス(natip:natport)を含むが、これはファイアウォール/NAT 30A、30Bで開かれたポートである。FWPPは破棄される。
【0059】
NATエージェント120A、120Bは、上記FWPPRを、当該FWPPのために開かれたパブリック送信元アドレス(natip:natport)に返送する(ステップ7)。上記FWPPRを作成する際に、当該FWPPにおける送信元及び宛先アドレスは入れ換えられる。ファイアウォール/NAT
30A、30Bは、当該FWPP用に開かれたパブリックアドレス上で上記FWPPRを受信し、該FWPPRのパブリック宛先アドレスを中継エージェント110A、110Bのプライベートアドレス(agentip:agentport)に変換し(ステップ8)、該FWPPRを中継エージェントに送る(ステップ9)。
【0060】
中継エージェント110A、110Bは、上記FWPPRを前記FWPPを送信するために使用されたポート(ステップ1で開かれた)上で受信し、該FWPPRのペイロードに含まれるパブリック送信元アドレスを読み取る(ステップ10)。次いで、中継エージェント110A、110Bは、NATエージェント120A、120Bにより当該FWPPR内で返送された該パブリックアドレスを記憶する。この時点で、中継エージェント110A、110Bは、もし目標装置からファイアウォール/NAT
30A、30Bにnatip:natportでパケットが送信されたら、該パケットはファイアウォール/NAT 30A、30Bから中継エージェントにagnetip:agentportで中継されるであろうことが分かる。中継エージェント110A、110Bは、この接続のためのソケットを開かれたままに保ち、このソケットを介して受信されるパケットを当該プライベートネットワーク内の宛先装置に配信する。前記アプリケーションサーバにより、開いたポートが要求された場合、宛先装置のアドレスが前記ファイアウォール穴開け要求の宛先IEにおいて指定され、中継エージェント110A、110Bが、アプリケーションサーバ140に対してパブリック送信元アドレス(natip:natport)を含むファイアウォール穴開け応答を送信する。
【0061】
FWPPの設計構造は、NATエージェント120A、120BがFWPPを即座に識別することを可能にするようなものでなければならない。これらの目的を達成するために、FWPPの設計構造は、固定長を有すると共に、所定の署名で開始することができる。また、FWPPは、即座の解析を可能にするような所定のフォーマットを有することができる。同様に、FWPPRも、容易に構築することができるように設計される。このような目的を念頭において、FWPPは、NATエージェント120A、120Bによりパブリック送信元アドレスを挿入するために使用することができるような幾つかの不使用バイトを伴って設計される。FWPPは、送信元及び宛先アドレスが容易に入れ換えられるのを可能にするように設計される。更に、パケットの設計構造は、NATエージェント120A、120Bが、全体のパケットチェックサムを再計算することなく、IP及びUDP用のチェックサムを即座に再計算するのを可能にするものとする。
【0062】
一実施例において、FWPPは正確に27バイト長である。バイト0〜15(16バイト)は、固有の識別子(例えば、GUID)を含む。バイト16はパケットタイプ識別子を含み、該パケットタイプ識別子はFWPPに対しては01に設定され、FWPPRに対しては02に設定される。バイト17〜20(4バイト)は、FWPPR応答をFWPP要求に整合させ、古い要求に対する応答を破棄するのを可能にするために使用される、中継エージェント110A、110Bにより発生される連番の固有IDを含む。バイト21〜24(4バイト)は、FWPPRパケットにファイアウォール/NAT
30A、30Bにより開かれたパブリックIPアドレスを含ませるために予約されている。バイト26〜27(2バイト)は、FWPPRパケットにファイアウォール/NAT
30A、30Bにより開かれたパブリックポートを含ませるために予約されている。
【0063】
ファイアウォール/NAT 30A、30Bに穴が開けられると、当該開いたポートを維持するために、ファイアウォール/NAT
30A、30Bに対して存在維持メッセージが周期的に送信されねばならない。図7は、ファイアウォール/NAT 30A、30B上に開いたポートを維持するための例示的手順を示す。数秒ごとに、中継エージェント110A、110Bはファイアウォール/NAT
30A、30Bに対してファイアウォール存在維持(FWKA)メッセージを送信する(ステップ1)。該FWKAメッセージは、前のFWPPと同じ目標アドレスに同じ送信元アドレスから送信される。ファイアウォール/NAT
30A、30Bは、当該FWKAの宛先アドレスに対応する既存のエントリを自身の結合テーブル内で見付け、有効期間を更新する(ステップ2)。ファイアウォール/NAT
30A、30Bは、当該FWKAを宛先アドレスに送信する(ステップ3)。NATエージェント120A、120Bは該FWKAを捕捉する。該FWKAパケットの宛先アドレスがaddrNATx:5353なら、該NATエージェント120A、120Bは、自身の変換テーブル内の対応するエントリに関して有効期間を更新する(ステップ4)。次いで、該NATエージェント120A、120Bは当該FWKAを捨てる(ステップ5)。
【0064】
一実施例において、上記FWKAパケットは17バイト長である。バイト0〜15(16バイト)はGUID(固有識別子)を含む。バイト16(1バイト)はパケットタイプ指示子(例えば、FWKAを示すための03)を含む。
【0065】
図8は、本発明により信号伝達接続が確立された後のSIP信号伝達メッセージの経路を示す。IP
PBX 50A,50Bにより発生されたSIP信号伝達メッセージは、ローカルな(近くの)中継エージェント110A、110Bに送信される(ステップ1)。該ローカルな中継エージェント110A、110Bは上記SIP信号伝達メッセージをSIPプロキシ130に送信し(ステップ2)、該中継エージェントは上記メッセージをファイアウォール/NAT
30A、30Bにおける信号伝達のために開かれたポートのパブリックアドレスに中継する(ステップ3)。ファイアウォール/NAT 30A、30Bは、自身の結合テーブル内の対応するプライベートアドレスをルックアップする(ステップ4)。前述したように、遠方の中継エージェントのプライベートアドレスに対するパブリックアドレスの結合は、前記ファイアウォール穴開け手順の間に形成されている。ファイアウォール/NAT
30A、30Bは、遠方の中継エージェント110A、110Bにパケットを送信する(ステップ5)。該中継エージェント110A、110Bも、SIP信号伝達メッセージが受信されるポートをIP
PBX 50A,50Bのプライベートアドレスに関連付ける経路指定テーブルを含む。中継エージェント110A、110Bは、当該信号伝達ポートに関連付けられた内部アドレス(IP
PBX 50A,50Bの内部アドレスである)をルックアップする(ステップ6)。該中継エージェント110A、110Bは、上記SIPメッセージを当該遠方のIP PBXに配信する(ステップ7)。
【0066】
図9は、メディア接続が確立された後のRTPパケットにより辿られる経路を示す。この場合、ユーザ装置から発したRTPパケットは、中継エージェント110A、110Bにより、遠方のユーザのNATエージェント120A、120Bへ送信される(ステップ1)。該遠方ユーザのNATエージェント120A、120Bは、当該パケットのパブリック送信元IPアドレスを宛先アドレスに関連付ける変換テーブルを含んでいる。NATエージェント120A、120Bは、当該パケットの送信元ポートを5353に変更し(ステップ2)、修正された送信元アドレスを伴うパケットをファイアウォール/NAT
30A、30Bに送信する(ステップ3)。該ファイアウォール/NAT 30A、30Bは、当該パケットのパブリック宛先アドレスをプライベート宛先アドレスに関連付ける結合テーブルを含んでいる。該ファイアウォール/NAT
30A、30Bは、当該パブリック宛先アドレスを自身の結合テーブル内のプライベート宛先アドレスで置換し(ステップ4)、当該パケットを中継エージェント110A、110Bに送信する(ステップ5)。中継エージェント110A、110Bは、特定のポートで受信されるパケットが、先のファイアウォール穴開け要求で指定された他のプライベートアドレスに送信されることを要することを記憶している(ステップ6)。該プライベートアドレスは、ユーザのIP電話のプライベートアドレスである。該遠方の中継エージェント110A、110Bは、当該データパケットに含まれる宛先アドレスをユーザの電話のプライベートアドレスに置換し、該パケットをユーザの電話に送信する(ステップ7)。
【0067】
他の実施例において、中継エージェント110A、110B及びNATエージェント120A、120Bの機能は、図10に示されるように、ルータ70A,70B又はファイアウォール/NAT
30A、30Bを実施化する他のホスト装置に組み込むことができる。この場合、前述したようにFWPP/FWKAを用いてファイアウォールに穴開けを行う必要は無いであろう。代わりに、ルータ70A,70B自身が接続を開通させることができる。ルータ70A,70Bとアプリケーションサーバ140との間の通信チャンネルは、ファイアウォール/NAT
30A、30Bを迂回するためのルータコードに直接組み込むことができる。ルータ70A,70Bは、内部SIPトラフィックをアプリケーションサーバ140に送信するために1以上のポート(例えば、ポート5060)を予約することができる。ルータ70A,70Bは、現状技術において知られているように、ブラウザインターフェースを介して構成(コンフィギュレーション)することができる。
【0068】
中継エージェント110A、110B及びNATエージェント120A、120Bを含むルータ70A,70Bが有効状態にされると、該ルータは開始(スタートアップ)手順を実行し、アプリケーションサーバ140との接続を確立する。上記開始手順の間において、ルータ70A,70Bは、トラフィックをアプリケーションサーバ140に中継するために内部ネットワーク側にポート(例えば、ポート5060)を予約する。このプライベートルータアドレスは、IP
PBX 50A,50BにおけるSIPトランクとして構成することができる。ルータ70A,70Bは、該ルータ70A,70BのWAN側の接続を直接使用することにより、オプションとしてSSLによるCOBRA(CORBA over SSL)等の安全保護プロトコルを用いてアプリケーションサーバ140につながり、かくして、NAT通過の必要性を取り除く。ルータ70A,70B内の中継エージェント機能110A、110Bは、アプリケーションサーバ140とのTCP接続を維持するために、該アプリケーションサーバ140に対して存在維持信号を依然として送信する。アプリケーションサーバ140がファイアウォール/NAT
30A、30Bにおけるポートの開きを必要とする場合、ルータ70A,70B内の中継エージェント機能110A、110Bは、到来するSIP信号伝達パケットがIP PBX
50A,50Bに直接配信されるように、該ルータのNATingテーブルの更新を直接開示させることができる。
【0069】
RTP/RTCPポートの連続要件は、ルータ70A,70Bのコード内で、ファイアウォール/NAT
30A、30BにRTP及びRTCP接続のための2つの連続したパブリックポートを予約させることにより、直接対処することができる。このように、遠端における中継エージェント110A、110BがRTP及びRTCPトラフィックのための外向きプロキシとして機能する必要性はない。一端が内蔵された中継エージェント110A、110B及びNATエージェント120A、120Bを備えるルータ70A,70Bを使用し、他端が別個の中継エージェント110A、110B及びNATエージェント120A、120Bを使用するような混合システムにおいては、アプリケーションサーバ140は、内蔵システムを備える端部上のパブリックポートが連続していることを検出し、かくして他方の端部において中継エージェント110A、110B内にプロキシポートを作成することを回避することができる。この場合、アプリケーションサーバ140は、メディアパケットが、中継エージェント110A、110Bを介して送信される代わりに、インターネットを介して直接送信されるべきことを指令することができる。
【0070】
到来するメディアトラフィックの特別な処理の必要性が依然として存在するが、解決策は異なる。アプリケーションサーバ140は、ルータ70A,70Bにパブリックポートを予約すると共に、特定のIPアドレス(遠方のファイアウォールアドレス)から到来する該ポート上のトラフィックをプライベートネットワーク20A,20B内のメディア端点(エンドポイント)に送信するように単に要求することができる。このように、到来するメディアパケットのポート番号を修正する必要性はなくなる。
【0071】
図11は、中継エージェント110A、110B及びNATエージェント120A、120B及びファイアウォール/NAT
30A、30Bの機能がルータ70A,70B内に含まれた筋書きにおいてファイアウォールを通過する例示的手順を示す。該手順はユーザAがユーザBの電話番号をダイヤルすることにより呼を開始した場合に始まる(ステップ1)。ユーザA用のIP
PBX 50BはSIP勧誘要求を発生し、該SIP勧誘要求をSIPトランク上にルータ70Aに向かって送信する(ステップ2)。ルータ70Aは、該SIP勧誘要求をSIPプロキシ130に送信する(ステップ3)。SIPプロキシ130はアプリケーションサーバ140に、新たな呼がなされていることを通知する(ステップ4)。アプリケーションサーバ140は、前述したようにして、上記SIP勧誘要求の内容からユーザAの素性(識別情報)を決定する(ステップ5)と共にユーザBの素性を決定する(ステップ6)。次いで、アプリケーションサーバ140は、ルータ70Aに対して、信号伝達及びメディア接続用のポートを開くための要求を送信する(ステップ7)。4つのポートが必要とされる。即ち、前述したように、1つはSIP勧誘要求におけるCONTACT用であり、1つはSIP勧誘要求におけるVIA用であり、1つはRTP用であり、1つはRTCP用である。ルータ70Aはファイアウォールにおけるポートを開き(ステップ8)、アプリケーションサーバ140に斯かるポートのアドレスを返送する(ステップ9)。
【0072】
アプリケーションサーバ140は、次いで、ルータ70BにSIP勧誘要求のためのポートを開くように要求する(ステップ10)。ルータ70Bは、ポートを開き(ステップ11)、アプリケーションサーバ140に対して該ポートのアドレスを返送する(ステップ12)。次いで、アプリケーションサーバ140は、SIP勧誘を修正するためにSIPプロキシ130に値を返送する(ステップ13)。SIPプロキシ130は、SIP勧誘を修正し(ステップ14)、該修正されたSIP勧誘を、ルータ70Bにより開かれたポートに送信する(ステップ15)。ルータ70Bは、上記の修正されたSIP勧誘をIP
PBX 50Bに送信し(ステップ16)、該IP PBX 50BはユーザBの電話内線番号を呼び出す(ステップ17)。
【0073】
ユーザBが応答した場合(ステップ18)、IP
PBX 50Bはルータ70BにSIP OK応答を送信する(ステップ19)。ルータ70Bは、該SIP OKをSIPプロキシ130に送信する(ステップ20)。該SIPプロキシ130はアプリケーションサーバ140に、SIP
OK応答が受信されたことを通知する(ステップ21)。次いで、アプリケーションサーバ140はルータ70Bに対して、RTP及びRTCP接続のための、並びにSIP応答メッセージの肯定応答用の追加の信号伝達接続のためのポートを開く要求を送信する(ステップ22)。ルータ70Bは、RTP及びRTCPのためのポートを開き(ステップ23)、アドレスをアプリケーションサーバ140に返送する(ステップ24)。アプリケーションサーバ140はSIPプロキシ130に上記SIP
OK応答を修正するための値を返送する(ステップ25)。SIPプロキシ130は、上記SIP OK応答を修正し(ステップ26)、該修正されたSIP OK応答をルータ70Aに送信する(ステップ27)。ルータ70Aは、上記の修正されたSIP
OK応答をIP PBX 50Aに送信する(ステップ28)。尚、図11には示されていないが、IP PBX 50AはSIP対話を確立するためにSIP ACK要求を送信する。
【0074】
図12は、中継エージェント110A、110B、NATエージェント120A、120B、SIPプロキシ130、アプリケーションサーバ140及びルータ70A,70B等の本発明の機能的構成要素を実施化する例示的なホスト装置200を示す。該ホスト装置200は、当該ホスト装置をプライベートネットワーク、パブリックネットワーク又はこれら両方に接続するための1以上のネットワークインターフェース206と、本明細書で説明された手順を実施するためのプロセッサ204と、本明細書で説明された手順を実施するためのプログラムコード及びデータを記憶するためのメモリ202とを有している。上記プロセッサ204は、1以上のマイクロプロセッサ、ハードウェア又はこれらの組み合わせを有することができる。メモリ202は、一時的データを記憶するための揮発性メモリ(例えば、RAM)オプションヨーロッパ特許出願第簿インターフェースプログラムコード及び構成データを記憶するための不揮発性メモリ(例えば、ROM、EEPROM)の両方を有することができる。
【0075】
尚、本発明は、本発明の範囲及び必須の特徴から逸脱することなしに、ここで述べられたもの以外の他の特定の方法で実施することも勿論可能である。従って、上記実施例は全ての点において限定するものではなく解説的なものであると見なされるべきであり、添付請求項の意味及び均等範囲内に入る全ての変更は、請求項内に含まれるものとする。
図1
図2
図3
図4
図5A
図5B
図5C
図5D
図6
図7
図8
図9
図10
図11A
図11B
図12