(57)【要約】【課題】ＩＰ通信装置が、相手装置と互いにＮＡＴ機能を有する中継機器を介して行う通信において、中継機器のＮＡＴ種別の組合せに対し、ＮＡＴ越えを簡易かつ確実に実現可能な範囲を向上させる。【解決手段】ＩＰ通信装置Ａ〜Ｈが、相手装置との接続を確立すべく呼制御メッセージの送受信を行うＳＩＰ制御部３４と、その接続の確立後のメディアセッションにおいて相手装置との間でメディアデータの送受信を行うＵＤＰパケット制御部３５と、ＵＤＰパケット制御部３５が相手装置から受信したメディアデータのパケットの送信元ポート番号の情報を取得し、相手装置に送信するパケットの宛先ポート番号の設定値をその取得した送信元ポート番号と同一の値に変更するＲＴＰ管理部４２とを備えた構成とし、中継機器の少なくとも一方のＮＡＴ種別が対称型である場合でも、ＮＡＴ越えを簡易かつ確実に実現可能な範囲を向上させる。【選択図】図３
2008236297.tif 000002
【特許請求の範囲】
【請求項１】
広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置であって、
前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、
前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信手段と、
前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段と
を備えたことを特徴とするＩＰ通信装置。
【請求項２】
前記通信管理手段は、前記送信元ポート番号の情報と前記宛先ポート番号の設定値とを比較し、それらのポート番号の値が異なる場合にのみ、前記宛先ポート番号の設定値を変更することを特徴とする請求項１に記載のＩＰ通信装置。
【請求項３】
前記通信管理手段は、前記データ通信手段が前記接続の確立後に前記相手装置から最初に受信したパケットについてのみ、前記宛先ポート番号の設定値の変更を実行することを特徴とする請求項１または請求項２に記載のＩＰ通信装置。
【請求項４】
前記通信管理手段は、前記データ通信手段に前記相手装置からのパケットを受信する所定のポート番号を維持すべくダミーパケットを周期的に送信させることを特徴とする請求項１に記載のＩＰ通信装置。
【請求項５】
前記広域ネットワークに接続されたアドレス情報提供用サーバとの通信により、自装置が接続された前記中継機器のＮＡＴ種別の情報を取得するＮＡＴ情報取得手段を更に備え、
前記通信管理手段は、前記中継機器のＮＡＴ種別が対称型ではない場合、前記ダミーパケットの送信を実行することを特徴とする請求項４に記載のＩＰ通信装置。
【請求項６】
広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置であって、
予め取得した自ＩＰ通信装置側のグローバルアドレスとポート番号とを前記相手装置に送信する送信手段と、
前記相手装置のグローバルアドレスとポート番号とを含む応答を前記相手装置から受信する受信手段と、
前記受信した前記相手装置のポート番号に向けてメディアデータの送信を開始するとともに前記相手装置からのメディアデータの受信を開始するデータ通信手段と、
前記メディアデータの送信を開始した前記相手装置のポート番号と前記相手装置から受信したメディアデータのパケットの送信元ポート番号とが異なる場合、前記送信元ポート番号を前記メディアデータの送信先のポート番号に変更する変更手段とを備えたことを特徴とするＩＰ通信装置。
【請求項７】
広域ネットワークにおいて、互いにＮＡＴ機能を有する中継機器を介して通信を行う複数のＩＰ通信装置を有するＩＰ通信システムであって、
前記ＩＰ通信装置は、
他のＩＰ通信装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、
前記接続の確立後に前記他のＩＰ通信装置との間でメディアデータの送受信を行うデータ通信手段と、
前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記他のＩＰ通信装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段と
を備えたことを特徴とするＩＰ通信システム。
【請求項８】
広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置のＩＰ通信方法であって、
前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリングステップと、
前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信ステップと
を有し、
前記データ通信ステップは、受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理ステップを含むことを特徴とするＩＰ通信装置のＩＰ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＴ(Network Address Translation)機能を有する中継機器を介して広域ネットワークに接続されるＩＰ(Internet Protocol)通信装置及びこれを備えたＩＰ通信システム並びにこれらのＩＰ通信方法に関する。
【背景技術】
【０００２】
従来、企業や家庭内のＬＡＮ(Local Area Network)に接続されたＩＰ通信装置（ＩＰ電話等）は、所定の中継機器（ルータ等）を介してＷＡＮ(Wide-Area Network)に接続されるのが一般的である。そのような中継機器として、ＬＡＮのみで通用するプライベートなＩＰアドレスと、外部のＷＡＮへのアクセスに利用できるグローバルなＩＰアドレスとを透過的に相互変換するためのＮＡＴ機能を搭載しているものが存在し、これによれば、ＬＡＮに接続される機器に対するＩＰアドレスの付与の自由度が高まり、またＬＡＮのセキュリティも高まるという利点がある。
【０００３】
しかし、例えば、上記ＮＡＴ機能を有する中継機器を介してＷＡＮに接続されたＩＰ通信装置によりＩＰ電話サービスを利用する場合、呼制御プロトコルとして用いるＳＩＰ(Session Initiation Protocol)等ではＩＰパケットのデータ部にプライベートＩＰアドレスやポート番号を付加して通信を行うため、ＩＰパケットのヘッダ部分のＩＰアドレスのみを変換するＮＡＴ機能では対応できず、また、ＩＰパケットのデータ部にグローバルＩＰアドレスを付加しようとした場合でも、ＩＰ通信装置は自らが利用するグローバルアドレスやポート番号の情報を自身では把握できないという問題があった。その結果、中継機器が壁となってＷＡＮ側からの通信パケットがＬＡＮ側に到達しないという、いわゆるＮＡＴ越え問題が生じていた。
【０００４】
そのような問題を解決するための方法として、ＵＰｎＰ(Universal Plug and Play)やＳＴＵＮ(Simple Traversal of User Datagram Protocol)といったプロトコルを利用するものが知られている。ＵＰｎＰによる方法の場合、例えば、ＵＰｎＰ機能を有するＩＰ通信装置であれば、ＵＰｎＰ ＩＧＤ(Internet Gateway Device)に対応している中継機器からグローバルＩＰアドレス及びポート番号等の情報を取得することが可能となる。しかしながら、この方法は、ＩＰ通信装置や中継機器等がＵＰｎＰに対応可能であることが前提であり、ＵＰｎＰ機能を有していない装置等に適用することは困難であった。また、ＵＰｎＰ機能を有していても中継機器が複数介在している場合には、全ての中継機器の所在を把握することは容易ではなく、必要なグローバルＩＰアドレス及びポート番号等の情報を取得することは困難であった。一方、ＳＴＵＮによる方法の場合、ネットワーク上にＩＰ通信装置からの要求に応じて必要な情報（グローバルＩＰアドレス、ポート番号及びＮＡＴの種別等）を提供するＳＴＵＮサーバを設置することで実現可能となるので、ＵＰｎＰ機能の有無等とは無関係に適用することができる。しかし、ＳＴＵＮによる方法であっても適用される環境によっては一定の限界があることが知られている。
【０００５】
例えば、ＵＰｎＰやＳＴＵＮを利用してＮＡＴ越えを実現する従来技術として、異なるルータにそれぞれ接続され、インターネットを介してＰ２Ｐ(Peer to Peer)通信を行う複数の情報処理装置を備えた情報通信システムにおいて、各情報処理装置は、その接続されたルータがＵＰｎＰ機能を有している場合には、ＵＰｎＰのプロトコルに基づきグローバルＩＰアドレス及びポート番号を取得して、それらを交換情報としてインターネット上の情報管理装置に登録する一方、接続されたルータがＵＰｎＰ機能を有していない場合には、ＳＴＵＮのプロトコルに基づきグローバルＩＰアドレス及びポート番号を取得して、それらを交換情報として情報管理装置に登録し、各情報処理装置間で通信を実行する際には、情報管理装置から通信相手の交換情報を互いに取得し、当該取得した交換情報に基づきＮＡＴ越え通信を実現するようにしたものが知られている（特許文献１参照）。
【特許文献１】特開２００５−１５１１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上述のＮＡＴは、実装上の挙動から完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)、及び対称型(Symmetric)の４つの種別に分類される。ここで、対称型ＮＡＴは、送信元の端末のプライベートなＩＰアドレス及びポート番号を、送信先となる外部装置の宛先が異なるのに応じて、複数のグローバルなＩＰアドレス及びポート番号の組に対応づけるものである。従って、特許文献１に記載のような従来技術では、通信を行う情報処理装置の少なくとも一方のＮＡＴ種別が対称型である場合には、ＳＴＵＮのプロトコルに基づき取得するグローバルＩＰアドレス及びポート番号は宛先毎に異なるので、そのＮＡＴによる対応づけの方法を事前に把握している等の特別の事情がない限り、ポート番号を正確に判定することができず、ＮＡＴ越え処理を確実に実行することは困難であった。
【０００７】
本発明は、このような従来技術の課題を鑑みて案出されたものであり、相手装置と互いにＮＡＴ機能を有する中継機器を介して行う通信において、中継機器のＮＡＴ種別の組み合わせに対し、ＮＡＴ越えを簡易かつ確実に実現可能な範囲を向上させるＩＰ通信装置及びＩＰ通信システム並びにこれらのＩＰ通信方法を提供することを主目的とする。
【課題を解決するための手段】
【０００８】
本発明のＩＰ通信装置は、広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置であって、前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信手段と、前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段とを備えたことを特徴とする。
【発明の効果】
【０００９】
このように本発明によれば、ＩＰ通信装置が、相手装置と互いにＮＡＴ機能を有する中継機器を介して行う通信において、中継機器の少なくとも一方のＮＡＴ種別が対称型である場合でも、ＮＡＴ越えを簡易かつ確実に実現可能な範囲を向上させることができるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００１０】
上記課題を解決するためになされた第１の発明は、広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置であって、  前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信手段と、前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段とを備えた構成とする。
【００１１】
これによると、相手装置と互いにＮＡＴ機能を有する中継機器を介して行う通信において、中継機器のＮＡＴ種別の組み合わせに対し、ＮＡＴ越えを簡易かつ確実に実現可能な範囲を向上させることができる。
【００１２】
特に、ＩＰ通信装置及び相手装置が接続される中継装置の一方のＮＡＴ種別が対称型である場合でも、完全コーン型と対称型との組み合わせ、または制限付きコーン型と対称型の組み合わせであるときは、専用に設けられた中継サーバ（セッションボーダコントローラ等）を利用することなくメディアデータ通信におけるＮＡＴ越えが可能となる。従って、比較的処理負荷が高く設備コストも嵩む専用の中継サーバを利用した処理を低減できるという利点がある。
【００１３】
上記課題を解決するためになされた第２の発明は、前記通信管理手段は、前記送信元ポート番号の情報と前記宛先ポート番号の設定値とを比較し、それらのポート番号の値が異なる場合にのみ、前記宛先ポート番号の設定値を変更する構成とすることができる。
【００１４】
これによると、必要な場合にのみ宛先ポート番号の設定値の変更を実行するので、より簡易な処理によりＮＡＴ越えを実現可能な範囲を向上させることができる。
【００１５】
上記課題を解決するためになされた第３の発明は、前記通信管理手段は、前記データ通信手段が前記接続の確立後に前記相手装置から最初に受信したパケットについてのみ、前記宛先ポート番号の設定値の変更を実行する構成とすることができる。
【００１６】
これによると、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。この場合、最初に受信したパケットの送信元ＩＰアドレスと、データ通信手段が相手装置に送信するパケットの宛先ＩＰアドレスの設定値とが同一であるときのみ、宛先ポート番号の設定値の変更を実行するようにすることで、セキュリティをより高めることができる。
【００１７】
上記課題を解決するためになされた第４の発明は、前記通信管理手段は、前記データ通信手段に前記相手装置からのパケットを受信する所定のポート番号を維持すべくダミーパケットを送信させる構成とすることができる。
【００１８】
これによると、ダミーパケットの送信によりＮＡＴの変換テーブル上に登録されたエントリ（ポート番号等）の消滅を防ぐことで、相手装置からのパケットを確実に受信することができる。この相手装置からのパケットを受信するためのポート番号の情報は、例えば、シグナリング手段が呼制御メッセージの送信を開始する前、或いはシグナリング手段が呼制御メッセージの受信を開始した後に、広域ネットワークに接続されたＳＴＵＮサーバとの通信により取得することができる。これにより、最新の適切なポート番号の情報を取得することが可能となる。
【００１９】
この場合、通信管理手段は、データ通信手段によるダミーパケットの送信を、相手装置との通信が終了するまで継続的に実行させることができる。これにより、相手装置との接続を確立する場合だけでなく、相手装置との間でメディアデータの送受信を行う際にも相手装置からのパケットを確実に受信することができる。
【００２０】
上記課題を解決するためになされた第５の発明は、前記広域ネットワークに接続されたアドレス情報提供用サーバとの通信により、自装置が接続された前記中継機器のＮＡＴ種別の情報を取得するＮＡＴ情報取得手段を更に備え、前記通信管理手段は、前記中継機器のＮＡＴ種別が対称型である場合、前記ダミーパケットの送信を実行しない構成とすることができる。
【００２１】
これによると、不要なダミーパケットの送信を防ぎ、より簡易な処理により相手装置からのパケットを確実に受信することができる。
【００２２】
上記課題を解決するためになされた第６の発明は、広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置であって、予め取得した自ＩＰ通信装置側のグローバルアドレスとポート番号とを前記相手装置に送信する送信手段と、前記相手装置のグローバルアドレスとポート番号とを含む応答を前記相手装置から受信する受信手段と、前記受信した前記相手装置のポート番号に向けてメディアデータの送信を開始するとともに前記相手装置からのメディアデータの受信を開始するデータ通信手段と、前記メディアデータの送信を開始した前記相手装置のポート番号と前記相手装置から受信したメディアデータのパケットの送信元ポート番号とが異なる場合、前記送信元ポート番号を前記メディアデータの送信先のポート番号に変更する変更手段とを備えた構成とする。
【００２３】
上記課題を解決するためになされた第７の発明は、広域ネットワークにおいて、互いにＮＡＴ機能を有する中継機器を介して通信を行う複数のＩＰ通信装置を有するＩＰ通信システムであって、前記ＩＰ通信装置は、他のＩＰ通信装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリング手段と、前記接続の確立後に前記他のＩＰ通信装置との間でメディアデータの送受信を行うデータ通信手段と、前記接続の確立後に前記データ通信手段が受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記データ通信手段が前記他のＩＰ通信装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理手段とを備えた構成とする。
【００２４】
上記課題を解決するためになされた第８の発明は、広域ネットワークにおいて、相手装置と互いにＮＡＴ機能を有する中継機器を介して通信を行うＩＰ通信装置のＩＰ通信方法であって、前記相手装置との接続を確立すべく呼接続用サーバを介して呼制御メッセージの送受信を行うシグナリングステップと、前記接続の確立後に前記相手装置との間でメディアデータの送受信を行うデータ通信ステップとを有し、前記データ通信ステップは、受信したメディアデータのパケットの送信元ポート番号の情報を取得し、前記相手装置に送信するパケットの宛先ポート番号の設定値を前記送信元ポート番号と同一の値に変更する通信管理ステップを含む構成とする。
【００２５】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００２６】
図１は、本願発明に係るＩＰ通信システムの概略を示す構成図である。このＩＰ通信システム１は、複数の端末装置（ＩＰ通信装置）Ａ〜Ｈ、ＳＩＰサーバ（呼接続用サーバ）２、ＳＴＵＮサーバ（アドレス情報提供用サーバ）３が、広域ネットワークとしてのインターネット５を介してそれぞれ通信可能に接続された構成を有する。
【００２７】
端末装置Ａ〜Ｈは、インターネット５を介して音声や映像等のデータ（以下、「メディアデータ」という。）を通信するためのＩＰ通信機能を有しており、それぞれ異なるＬＡＮ（図示せず）に属し、各ルータ（中継機器）１１〜１８を介してインターネット５に接続される。これら端末装置Ａ〜Ｈは、ＳＩＰクライアントとして機能する。
【００２８】
本実施形態では、以下で端末装置Ａ〜Ｈの機能及び動作等の詳細を説明する際に、必要に応じて端末装置Ａ〜ＨをＳＩＰ対応のＩＰ電話装置として取り扱うこととするが、これに限らず端末装置Ａ〜Ｈには、ＩＰ通信機能を有する任意の情報処理装置を用いることができる。また、本実施形態では、便宜上、端末装置間の通信を説明する際に端末装置Ａ〜Ｄを発呼側とし、端末装置Ｅ〜Ｈを着呼側とするが、これに限定されるものではない。
【００２９】
ルータ１１〜１８は、端末装置Ａ〜Ｈが各ＬＡＮにおいて通信に使用するプライベートなＩＰアドレス（以下、「プライベートアドレス」という。）と、その外部のインターネット５を介した通信に使用するグローバルなＩＰアドレス（以下、「グローバルアドレス」という。）とを透過的に相互変換するためのＮＡＴ機能を搭載したブロードバンドルータである。ルータ１１〜１８は、そのＮＡＴ機能により、ＮＡＴの内側から外側へ開始されるアウトバウンド通信を許容する一方、ＮＡＴの外側から内側へ開始されるインバウンド通信を原則として拒否し、また、時間経過等によりＮＡＴの変換テーブルのエントリ（登録内容）を消滅させることで、ファイアウォール的な役割も果たす。なお、ここで用いる用語「ＮＡＴ」は、プライベートアドレスとグローバルアドレスとを変換する技術に限定されるものではなく、ＩＰアドレスの変換に加えてポート番号を変換するＮＡＰＴ(Network Address Port Translation)等の類似技術を含むものとする。
【００３０】
ここで、各ルータ１１〜１８のＮＡＴ機能は、４種類のＮＡＴ種別のうちの何れかに属し、ルータ１１，１５は完全コーン型（Full Cone）であり、ルータ１２，１６は制限付きコーン型（Restricted Cone）であり、ルータ１３，１７はポート制限付きコーン型（Port Restricted Cone）であり、ルータ１４，１８は対称型（Symmetric）である。従って、端末装置Ａ〜Ｈ同士の通信には、図２に示すように、１６通りの組み合わせパターンが存在する。以下では、端末装置Ａ〜Ｈ同士の通信の組み合わせを示す場合には、図２に示した記号（「Ｆ−Ｆ」等）を用いる。
【００３１】
ＳＩＰサーバ２は、各端末装置Ａ〜ＨとのＳＩＰメッセージ（呼制御メッセージ）の送受により端末装置Ａ〜Ｈ間の接続を仲介する。ＳＩＰサーバ２は、各端末装置Ａ〜Ｈからのリクエストに応じて、それら端末装置間の呼接続のための位置情報並びに発呼要求及び応答等の中継を行うプロキシサーバ機能、また、各端末装置Ａ〜Ｈに関するグローバルアドレスの情報を管理（所定のデータベースへの登録、更新、削除処理等を実行）するレジストラ機能を有する。このＳＩＰサーバ２により接続が確立された端末装置同士は、メディアセッションにおいてメディアデータのＰ２Ｐ(Peer to Peer)通信が可能となる。ここでは、全ての端末装置Ａ〜ＨがＳＩＰサーバ２を利用する構成としているが、各端末装置が互いに異なるプロキシサーバを利用して通信を行う構成も可能である。
【００３２】
ＳＴＵＮサーバ３は、端末装置Ａ〜Ｈからのリクエストに応じて、そのグローバルアドレス及びポート番号等の情報を通知する機能を有しており、端末装置Ａ〜ＨからのBindingリクエスト（ＵＤＰパケット）を受信すると、そのBindingリクエストの送信元のアドレス情報を抽出し、その情報を付加したBindingレスポンスを返信する。これにより、端末装置Ａ〜Ｈは、自身が接続されたルータのグローバルアドレス及びポート番号を認識することができる。なお、端末装置Ａ〜Ｈは、ＲＦＣ３４８９に定義されたアルゴリズムに従った周知の方法により、ＳＴＵＮサーバに対してBindingリクエストを試験的に送信することで、自身が接続されたルータのＮＡＴ種別（完全コーン型、制限付きコーン型、ポート制限付きコーン型、対称型、またはＮＡＴ無しのいずれか）の判定を行うことができる。
【００３３】
図３は、図１に示した端末装置Ａ〜Ｈの主要部の構成を示すブロック図である。各端末装置Ａ〜Ｈは、アプリケーション３１、呼制御部３２、ＳＴＵＮ制御部３３、ＳＩＰ制御部（シグナリング手段）３４、ＵＤＰパケット制御部（データ通信手段）３５、ミドルウエア３６及びネットワークスタック３７を有している。ここでは、本発明に関連する主要な構成について示しているが、各端末装置Ａ〜Ｈは、図３に示す他、例えば、ＩＰ電話装置として機能するための周知の構成を備えているものとする。
【００３４】
アプリケーション３１は、ユーザの操作に基づき端末装置が提供する各種機能（ここでは、ＩＰ電話装置として動作するための機能）を実行する。
【００３５】
呼制御部３２は、ＳＩＰ制御部３４、ＳＴＵＮ制御部３３及びＵＤＰパケット制御部３５の動作を管理するシグナリング管理部４１及びＲＴＰ管理部（通信管理手段）４２を有している。シグナリング管理部４１は、主としてＳＩＰ制御部３４によるシグナリング動作、及びＳＴＵＮ制御部３３による情報取得動作を管理し、また、ＲＴＰ管理部４２は、主としてＵＤＰパケット制御部３５によるパケット通信動作を管理する。
【００３６】
ＳＴＵＮ制御部３３は、ＳＴＵＮサーバ３との通信により、ＳＴＵＮのプロトコルに基づくＮＡＴ越えに関する処理を実行するものであり、ＮＡＴ越えのためのアドレス情報及びＮＡＴ種別の情報の取得を行う。また、ＳＩＰ制御部３４は、ＳＩＰサーバ２との通信により、ＳＩＰのプロトコルに基づくシグナリング処理を実行するものであり、相手装置（通信相手となる他の端末装置）との通信を開始する際に、相手装置との間に通信路を設定して呼接続を行う。また、ＵＤＰパケット制御部３５は、ＵＤＰまたはＲＴＰのプロトコルに基づく通信処理を実行するものであり、ＵＤＰパケットやメディアデータ（ここでは、通話音声）をパケット化したＲＴＰパケットの生成及び送受信を実行する。
【００３７】
ミドルウエア３６は、端末装置がネットワークに接続する際に必要な情報を取得するためのＤＨＣＰ(Dynamic Host Configuration Protocol)やＤＮＳ(Domain Name System)に関連する処理を実行する。
【００３８】
ネットワークスタック３７は、ＬＡＮに接続するためのネットワークアダプタを制御し、所定のプロトコルに基づきインターネット５を介した通信を実現する。
【００３９】
図３に示した各構成要素の機能は、例えば、図示しないＣＰＵ(Central Processing Unit)が所定の制御プログラムに従って処理を実行することにより実現することが可能である。
【００４０】
図４は、端末装置Ａ〜ＨのＮＡＴ種別の格納の流れを示すフロー図である。まず、端末装置が起動すると、シグナリング管理部（ＮＡＴ情報取得手段）４１は、周知の方法により、ＳＴＵＮサーバに対してBindingリクエストを試験的に送信し、自身が接続されたルータのＮＡＴ種別の判定を行う（ＳＴ１０１）。
【００４１】
そこで、端末装置は、取得したＮＡＴ種別の情報を装置内部のメモリあるいはネットワーク上の他装置等に保存する（ＳＴ１０２）。その後、端末装置は、待機状態となり（ＳＴ１０３）、所定の時間間隔（例えば、１０分間隔）で、上記ＳＴ１０１及びＳＴ１０２を繰り返し実行する。
ＮＡＴ種別の情報は、例えば、図５に示すように、各端末装置Ａ〜ＨのＩＤと、それに対応する電話番号とともに記憶されても良い。
【００４２】
図６は、図１に示した端末装置Ａ〜Ｈの発呼処理の流れを示すフロー図である。まず、端末装置のシグナリング管理部４１は、ＳＴＵＮサーバ３にBindingリクエストを送信し、これに対するＳＴＵＮサーバ３からのBindingレスポンスにより、通信に利用するルータのグローバルアドレス及びポート番号の情報を取得する（ＳＴ４０１）。そこで、シグナリング管理部４１は、グローバルアドレス及びポート番号の情報を正常に取得できたか否かを判定し（ＳＴ４０２）、情報を正常に取得できていない場合にはＳＩＰサーバ２または自装置に不具合が生じていると判断して呼を切断する（ＳＴ４０３）。一方、情報を正常に取得できている場合には、シグナリング管理部４１は、それらグローバルアドレス及びポート番号の情報を付加したINVITEリクエストを、ＳＩＰサーバ２を介して相手装置に送信する（ＳＴ４０４）。
【００４３】
そこで、端末装置のＲＴＰ管理部４２は、予め調査した自身のＮＡＴ種別が対称型でない場合（ＳＴ４０５：ＮＯ）には、ＳＴ４０１でBindingリクエストを送信したポート番号（即ち、ＮＡＴ変換テーブルのエントリ）を維持するために、ＵＤＰパケット制御部３５によりＳＩＰサーバ２に向けてＵＤＰパケット（ダミーパケット）の送信を開始する（ＳＴ４０６）。このＵＤＰパケットの送信は、所定の時間間隔で継続的に実行される。自身のＮＡＴ種別が対称型の場合には、ＵＤＰパケットの送信は不要であるのでＳＴ４０６は実行しない。続いて、端末装置は、相手装置からの200 OKメッセージを受信し、この200 OKメッセージに付加された相手装置のグローバルアドレス及びポート番号の情報を、相手装置の宛先のアドレス情報として設定する（ＳＴ４０７）。
【００４４】
このような処理により、相手装置との接続が確立されると、ＲＴＰ管理部４２は、ＳＴ４０７で取得した相手装置のグローバルアドレス及びポート番号に向けてメディアデータ（ＲＴＰパケット）の送信を開始する（ＳＴ４０８）。さらに、ＲＴＰ管理部４２は、ＳＴ４０４のINVITEリクエストで相手装置に通知したポート番号でメディアデータの受信を開始する（ＳＴ４０９）。
そこで、ＲＴＰ管理部４２は、相手装置からのＲＴＰパケットを受信すると、当該ＲＴＰパケットの送信元ポート番号の情報と、自身が相手装置に対して送信するＲＴＰパケットの宛先ポート番号の設定値とが同一か否かを判定する（ＳＴ４１０）。このとき、それらのポート番号が同一である場合には、ＲＴＰ管理部４２は、ＳＴ４０７で取得した相手装置のポート番号に向けてＲＴＰパケットの送信を継続する。一方、それらのポート番号が異なる場合には、ＲＴＰ管理部４２は、ＳＴ４０７で取得したアドレス情報により設定した宛先ポート番号の設定値を相手装置から新たに受信したＲＴＰパケットの送信元ポート番号と同一の値に変更し、ＲＴＰパケットの送信を開始する（ＳＴ４１１）。これにより、通話が成功すると端末装置の着呼処理は終了する。
【００４５】
なお、ＳＴ４１０において、ＲＴＰパケットの送信元のグローバルアドレスと、自身が相手装置に対してＲＴＰパケットを送信する宛先のグローバルアドレスとが同一か否かを判定することで、ＲＴＰパケットの送信元を特定してセキュリティをより高めることができる。また、ＳＴ４１０においてポート番号の判定を行う対象を、ＳＴ４０７において相手装置から200 OKメッセージを受信した後（即ち、相手装置との接続を確立した後）、最初に受信したＲＴＰパケットのみとすることで、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。
【００４６】
図７は、図１に示した端末装置Ａ〜Ｈの着呼処理の流れを示すフロー図である。まず、端末装置のシグナリング管理部４１は、ＳＩＰサーバ２を介して相手装置からのINVITEリクエストを受信し、当該メッセージ中に付加された相手装置のグローバルアドレス及びポート番号の情報を取得する（ＳＴ５０１）。ここで取得したグローバルアドレス及びポート番号は、相手装置の宛先のアドレス情報として設定される。続いて、シグナリング管理部４１は、ＳＴＵＮサーバ３にBindingリクエストを送信し、これに対するＳＴＵＮサーバ３からのBindingレスポンスにより、通信に利用するルータのグローバルアドレス及びポート番号の情報を取得する（ＳＴ５０２）。そこで、シグナリング管理部４１は、グローバルアドレス及びポート番号の情報を正常に取得できたか否かを判定し（ＳＴ５０３）、情報を正常に取得できていない場合にはＳＩＰサーバ２または自装置に不具合が生じていると判断して呼を切断する（ＳＴ５０４）。一方、情報を正常に取得できた場合には、次の処理に移行する。
【００４７】
端末装置のＲＴＰ管理部４２は、予め調査した自身のＮＡＴ種別が対称型でない場合（Ｓ５０５：ＮＯ）、ＳＴ５０２でBindingリクエストを送信したポート番号を維持するために、ＳＴ５０１でINVITEリクエストを受け取った相手装置に向けてＵＤＰパケットの送信を開始する（ＳＴ５０６）。自身のＮＡＴ種別が対称型の場合には、ＵＤＰパケットの送信は不要であるのでＳＴ５０６は実行しない。さらに、シグナリング管理部４１は、ＳＴ５０２で取得した自身のグローバルアドレス及びポート番号の情報を付加した200 OKメッセージを相手装置に対して送信する（ＳＴ５０７）。
【００４８】
このような処理により、相手装置との接続が確立されると、ＲＴＰ管理部４２は、ＳＴ５０１で取得した相手装置のグローバルアドレス及びポート番号に向けてメディアデータ（ＲＴＰパケット）の送信を開始する（Ｓ５０８）。さらに、ＲＴＰ管理部４２は、ＳＴ５０７の200 OKメッセージで相手装置に通知したポート番号でメディアデータの受信を開始する（ＳＴ５０９）。
そこで、ＲＴＰ管理部４２は、相手装置からのＲＴＰパケットを受信すると、当該ＲＴＰパケットの送信元ポート番号の情報と、自身が相手装置に対して送信するＲＴＰパケットの宛先ポート番号の設定値とが同一か否かを判定する（ＳＴ５１０）。このとき、それらのポート番号が同一である場合には、ＲＴＰ管理部４２は、ＳＴ５０１で取得した相手装置のポート番号に向けてＲＴＰパケットの送信を継続する。一方、それらのポート番号が異なる場合には、ＲＴＰ管理部４２は、ＳＴ５０１で取得したアドレス情報により設定した宛先ポート番号の設定値を相手装置から新たに受信したＲＴＰパケットの送信元ポート番号と同一の値に変更し、ＲＴＰパケットの送信を開始する（ＳＴ５１１）。これにより、通話が成功すると端末装置の着呼処理は終了する。
【００４９】
なお、ＳＴ５１０において、ＲＴＰパケットの送信元のグローバルアドレスと、自身が相手装置に対してＲＴＰパケットを送信する宛先のグローバルアドレスとが同一か否かを判定することで、ＲＴＰパケットの送信元を特定してセキュリティをより高めることができる。また、ＳＴ５１０においてポート番号の判定を行う対象を、ＳＴ５０７において相手装置から200 OKメッセージを送信した後（即ち、相手装置との接続を確立した後）、最初に受信したＲＴＰパケットのみとすることで、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。
【００５０】
図８は、図１に示したＩＰ通信システムで実行される通信処理の一例を示すシーケンス図である。ここでは、主として端末装置のＮＡＴ種別の組合せによらずに実行される通信処理について示しており、ＮＡＴ種別の組み合わせに応じて実行される通信処理の詳細については、図９〜図１４に示すこととする。
【００５１】
まず、発呼側の端末装置は、ＳＴＵＮサーバ３にBindingリクエストを送信し（１００１）、これを受けたＳＴＵＮサーバ３は、そのBindingリクエストの送信元のグローバルアドレス及びポート番号Ｓ１の情報を付加したBindingレスポンスを端末装置に対して送信する（１００２）。次に、発呼側の端末装置は、自身のグローバルアドレス及びポート番号Ｓ１の情報を付加したINVITEリクエストをＳＩＰサーバ２に対して送信し（１００３）、続いて、Bindingリクエストを送信したポート番号Ｓ１を維持するために、ＳＩＰサーバ２に向けてＵＤＰパケット（ダミーパケット）の送信を開始する（１００４）。このＵＤＰパケットの送信は、所定の時間間隔（例えば、３０ｓｅｃ間隔）で通信が終了するまで継続的に実行される。
【００５２】
発呼側の端末装置からINVITEリクエストを受信したＳＩＰサーバ２は、呼び出し中を通知するための180 Ringingメッセージを端末装置に送信し（１００５）、さらに、受信したINVITEリクエストを着呼側の端末装置に転送する（１００６）。
【００５３】
INVITEリクエストを受信した着呼側の端末装置は、発呼側の端末装置と同様に、ＳＴＵＮサーバ３にBindingリクエストを送信し（１００７）、ＳＴＵＮサーバ３からのBindingレスポンスにより自身のグローバルアドレス及びポート番号Ｓ２の情報を取得する（１００８）。続いて、着呼側の端末装置は、Bindingリクエストを送信したポート番号Ｓ２を維持するために、INVITEで指定されている送信元IPポートに向けてＵＤＰパケット（ダミーパケット）の送信を開始する（１００９）。この１００９のＵＤＰパケット（ダミーパケット）は、発呼側の端末装置のＮＡＴ種別がポート制限付きコーン型の場合は破棄されるが、着呼側の端末装置のＳ２ポートをキープすることができる。さらに、着呼側の端末装置は、呼び出しをする準備ができると、呼び出し中を通知するための180 RingingメッセージをＳＩＰサーバ２に送信する（１０１０）。
【００５４】
次に、着呼側の端末装置は、ユーザによるオフフックを検出すると（１０１１）、ユーザの応答を通知するための200 OKメッセージをＳＩＰサーバ２に対して送信し（１０１２）、これを受けたＳＩＰサーバ２は、その200 OKメッセージを発呼側の端末装置に対して送信する（１０１３）。この200 OKメッセージには、通信１００８でＳＴＵＮサーバ３から取得した着呼側の端末装置のグローバルアドレス及びポート番号Ｓ２の情報が付加されている。ただし、ここで付加されるグローバルアドレス及びポート番号は、着呼側のＮＡＴ種別が対称型である場合、通信１００８でＳＴＵＮサーバ３から取得した値とは異なるものとなる。
【００５５】
このような通信により端末装置間の接続が確立されると、端末装置は、メディアセッションにおいて互いにメディアデータ（ここでは、通話音声）をＲＴＰパケットとして互いに送受する（１０１４）。なお、オンフック後のセッションの終了等については説明を省略する。
【００５６】
図９〜図１４は、ＮＡＴ種別の組み合わせに応じて実行される通信処理の詳細を示すシーケンス図である。これらの通信処理におけるメディアセッションでのＮＡＴ越え方法は、ＳＩＰサーバ２または相手装置に向けてＵＤＰパケットを送信することによりポート番号を維持するポートキープ処理によって実現するもの（方法Ａ）、相手装置から受信したＲＴＰパケットの送信元ポート番号の情報を取得し、相手装置に送信するＲＴＰパケットの宛先ポート番号の設定値をその送信元ポート番号と同一の値に変更するポート変更処理（ポートキープ処理を併せて実行する場合も含む）によって実現するもの（方法Ｂ）に分類することができる。これらのＮＡＴ越え方法とＮＡＴ種別の組み合わせとの関係を図１５に示す。
【００５７】
図９〜図１１は、ＮＡＴ越え方法Ａを用いる通信処理の例として、ＮＡＴ種別がＦ−Ｆ、Ａ−Ｆ及びＦ−Ａの場合をそれぞれ示す。図９〜図１１では、説明の簡単のため、ＳＴＵＮサーバ３及びＳＩＰサーバ２については図示を省略してある（図１２〜図１４についても同様）。また、図９〜図１１において、図８に示したシーケンス図と概ね同様の処理については同一の符号を付してあり、以下で特に言及しない事項については、図８の場合と同様とする（図１２〜図１５についても同様）。
【００５８】
図９に示すように、ＮＡＴ種別がＦ−Ｆの場合、まず、発呼側の端末装置Ａは、自身のグローバルアドレス及びポート番号Ｓ１の情報をＳＴＵＮサーバ３に問い合わせて取得する（１００１，１００２）。次に、端末装置Ａは、自身のグローバルアドレス及びポート番号Ｓ１の情報を付加したINVITEリクエストを着呼側の端末装置Ｅに対して送信し（１００３，１００６）、続いて、ポート番号Ｓ１を維持するために、ＳＩＰサーバ２に向けてＵＤＰパケットの送信を開始する（１００４）。このＵＤＰパケットの送信は、所定の時間間隔で継続的に実行される。
【００５９】
INVITEリクエストを受信した端末装置Ｅは、端末装置Ａと同様に、自身のグローバルアドレス及びポート番号Ｓ２の情報をＳＴＵＮサーバ３に問い合わせて取得する（１００７，１００８）。端末装置Ｅは、端末装置Ａと同様に、ポート番号Ｓ２を維持するために、端末装置Ａに向けてＵＤＰパケットの送信を開始する（１００９）。さらに、端末装置Ｅは、呼び出し中を通知するための180 Ringingメッセージを端末装置Ａに送信し（１０１０）、続いてオフフックを検出すると（１０１１）、応答を通知するための200 OKメッセージを端末装置Ａに送信する（１０１２，１０１３）。この200 OKメッセージには、端末装置Ｅのグローバルアドレス及びポート番号Ｓ２の情報が付加されている。
【００６０】
その後のメディアセッションでは、着呼側の端末装置ＥのＲＴＰパケットが発呼側に先に着く場合（ケース１）と、逆に発呼側の端末装置ＡのＲＴＰパケットが着呼側に先に着く場合（ケース２）とが考えられ、これら２つのケースを分けて図示してある。また、図において、各通信の矢印上に付された記号●及びそれと破線の矢印で結ばれた記号○は、記号●が付されたアウトバウンド通信によって記号○が付されたインバウンド通信が可能となる（既に存在するＮＡＴ変換テーブル上のエントリの消滅を防ぐ場合を含む）ことを示している（図１２〜図１７についても同様）。また、各通信を示す矢印の先に付された記号×は、その通信が相手装置に到達しないことを示している。
【００６１】
ケース１では、端末装置Ｅは、先のINVITEリクエストにより取得した端末装置Ａのポート番号Ｓ１に対してＲＴＰパケットを送信する（２００１）。この場合、端末装置ＡのＮＡＴ種別は完全コーン型であり、ポート番号Ｓ１は、端末装置Ａが継続的に送信するＵＤＰパケットによって維持されているため、端末装置ＥからのＲＴＰパケットは端末装置Ａに到達する。次に、端末装置Ａは、先の200 OKメッセージにより取得した端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（２００２）。この場合、端末装置ＥのＮＡＴ種別は完全コーン型であり、ポート番号Ｓ２は、直前に端末装置Ｅが端末装置Ａに対して行った通信２００１（或いは、端末装置Ｅが継続的に送信するＵＤＰパケット）によって維持されているため、端末装置ＡからのＲＴＰパケットは端末装置Ｅに到達する。その後は、通常の通信が可能となる。
【００６２】
一方、ケース２では、端末装置Ａは、先の200 OKメッセージにより通知された端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（２００３）。このポート番号Ｓ２は、端末装置Ｅが継続的に送信するＵＤＰパケットによって維持されているため、ＲＴＰパケットは端末装置Ａに到達する。次に、端末装置Ｅは、先のINVITEリクエストにより取得した端末装置Ａのポート番号Ｓ１に対してＲＴＰパケットを送信する（２００４）。このポート番号Ｓ１は、直前に端末装置Ａが端末装置Ｅに対して行った通信２００３（或いは、端末装置Ａが継続的に送信するＵＤＰパケット）によって維持されているため、端末装置ＥからのＲＴＰパケットは端末装置Ａに到達する。その後は、通常の通信が可能となる。
【００６３】
図１０に示すように、ＮＡＴ種別がＡ−Ｆの場合、図９と同様に端末装置同士の接続が確立される（１００１〜１０１１）。その後のメディアセッションにおいて、ケース１では、着呼側の端末装置Ｅは、先のINVITEリクエストにより取得した発呼側の端末装置Ｂのポート番号Ｓ１に対してＲＴＰパケットを送信する（３００１）。この場合、ポート番号Ｓ１は、端末装置Ｂが継続的に送信するＵＤＰパケットによって維持されているが、発呼側の端末装置ＢのＮＡＴ種別は制限付きコーン型（ポート制限付きコーン型の場合も同様）であるので、ＩＰアドレスの制限により端末装置ＥからのＲＴＰパケットは端末装置Ｂ（ルータ１２）に拒否される。
【００６４】
次に、端末装置Ｂは、先の200 OKメッセージにより取得した端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（３００２）。この場合、端末装置ＥのＮＡＴ種別は完全コーン型であり、ポート番号Ｓ２は、直前に端末装置Ｅが端末装置Ｂに対して行った通信３００１（或いは、端末装置Ｅが継続的に送信するＵＤＰパケット）によって維持されているため、端末装置ＢからのＲＴＰパケットは端末装置Ｅに到達する。続いて、端末装置Ｅは、先のINVITEリクエストにより取得した端末装置Ｂのポート番号Ｓ１に対してＲＴＰパケットを送信する（３００３）。この場合、直前に端末装置Ｂが端末装置Ｅに対して行った通信３００２によりＩＰアドレスの制限が解除され、端末装置ＥからのＲＴＰパケットは端末装置Ｂに到達する。その後は、通常の通信が可能となる。
【００６５】
一方、ケース２では、端末装置Ｂは、先の200 OKメッセージにより取得した端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（３００４）。この場合、ポート番号Ｓ２は、端末装置Ｅが継続的に送信するＵＤＰパケットによって維持されているため、端末装置ＢからのＲＴＰパケットは端末装置Ｅに到達する。次に、端末装置Ｅは、先のINVITEリクエストにより取得した端末装置Ｂのポート番号Ｓ１に対してＲＴＰパケットを送信する（３００４）。この場合、直前に端末装置Ｂが端末装置Ｅに対して行った通信３００４によって、端末装置Ｅに対するＩＰアドレスの制限が解除されるとともにポート番号Ｓ１が維持されるため、端末装置ＥからのＲＴＰパケットは端末装置Ｂに到達する。その後は、通常の通信が可能となる。
【００６６】
図１１に示すように、ＮＡＴ種別がＦ−Ａ場合、図９と同様に端末装置同士の接続が確立される（１００１〜１０１１）。その後のメディアセッションにおいて、ケース１では、着呼側の端末装置Ｆは、先のINVITEリクエストにより取得した発呼側の端末装置Ａのポート番号Ｓ１に対してＲＴＰパケットを送信する（４００１）。この場合、発呼側の端末装置ＡのＮＡＴ種別は完全コーン型であり、ポート番号Ｓ１は、端末装置Ａが継続的に送信するＵＤＰパケットによって維持されているため、ＲＴＰパケットは端末装置Ａに到達する。次に、端末装置Ａは、先の200 OKメッセージにより取得した端末装置Ｆのポート番号Ｓ２に対してＲＴＰパケットを送信する（４００２）。この場合、端末装置ＦのＮＡＴ種別は制限付きコーン型（ポート制限付きコーン型の場合も同様）であるが、直前に端末装置Ｆが端末装置Ａに対して行った通信４００１によって、端末装置Ａに対するＩＰアドレスの制限が解除されるとともにポート番号Ｓ２が維持されるため、端末装置ＡからのＲＴＰパケットは端末装置Ｆに到達する。その後は、通常の通信が可能となる。
【００６７】
一方、ケース２では、端末装置Ａは、先の200 OKメッセージにより取得した端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（４００３）。この場合、ポート番号Ｓ２は、端末装置Ｆが継続的に送信するＵＤＰパケットによって維持されているため、端末装置ＡからのＲＴＰパケットは端末装置Ｆに到達する。次に、端末装置Ｆは、先のINVITEリクエストにより取得した端末装置Ａのポート番号Ｓ１に対してＲＴＰパケットを送信する（４００４）。この場合、直前に端末装置Ａが端末装置Ｆに対して行った通信４００３によって、端末装置Ｆに対するＩＰアドレスの制限が解除されるとともにポート番号Ｓ１が維持されるため、端末装置ＦからのＲＴＰパケットは端末装置Ａに到達する。その後は、通常の通信が可能となる。
【００６８】
なお、上記Ｆ−Ｆ、Ａ−Ｆ及びＦ−Ａ以外の方法Ａを適用可能な他のＮＡＴ種別の組み合わせについても同様の通信を実行することが可能である。
【００６９】
図１２〜図１４は、ＮＡＴ越え方法Ｂを用いる通信処理の例として、ＮＡＴ種別がＦ−Ｓ、Ａ−Ｓ及びＳ−Ｆの場合をそれぞれ示す。
【００７０】
図１２に示すように、ＮＡＴ種別がＦ−Ｓの場合、着呼側の端末装置Ｈは、ＮＡＴ種別が対称型であるために、ポート番号Ｓ２を維持するためのＵＤＰパケットの送信を実行しない点、及び端末装置Ａと通信する際のポート番号が、ＳＴＵＮサーバ３に問い合わせたポート番号Ｓ２から変更（ポート番号Ｓ３に変更）される点を除けば、図９と同様に端末装置同士の接続が確立される（１００１〜１０１１）。
【００７１】
その後のメディアセッションにおいて、ケース１では、着呼側の端末装置Ｈは、先のINVITEリクエストにより取得した発呼側の端末装置Ａのポート番号Ｓ１に対してＲＴＰパケットを送信する（５００１）。この場合、端末装置ＡのＮＡＴ種別は完全コーン型であり、ポート番号Ｓ１は、端末装置Ａが継続的に送信するＵＤＰパケットによって維持されているため、ＲＴＰパケットは端末装置Ａに到達する。このとき、端末装置Ａが、先の200 OKメッセージにより取得した端末装置Ｈのポート番号Ｓ２に対してＲＴＰパケットを送信すると（５００２）、端末装置ＡからのＲＴＰパケットを受信可能なポート番号はＳ３となっているので、そのポート番号Ｓ２に向けたＲＴＰパケットは端末装置Ｈ（ルータ１８）に拒否される。
【００７２】
通信５００１でＲＴＰパケットを受信した端末装置Ａは、そのＲＴＰパケットの送信元ポート番号Ｓ３の情報と、端末装置Ｈに向けてＲＴＰパケットを送信する宛先ポート番号の設定値Ｓ２とを比較し、それらのポート番号が異なるため、宛先ポート番号の設定値Ｓ２をＳ３（即ち、通信５００１で受信したＲＴＰパケットの送信元ポート番号と同一の値）に変更してＲＴＰパケットを送信する（５００３）。この場合、ポート番号Ｓ３は、直前に端末装置Ｈが端末装置Ａに対して行った通信５００１によって維持されているため、端末装置ＡからのＲＴＰパケットは端末装置Ｈに到達する。その後は、通常の通信が可能となる。
【００７３】
一方、ケース２では、端末装置Ａは、先の200 OKメッセージにより取得した端末装置Ｈのポート番号Ｓ２に対してＲＴＰパケットを送信するが（５００４）、５００２と同様に端末装置Ｈに拒否される。次に、端末装置Ｈは、先のINVITEリクエストにより取得した端末装置Ａのポート番号Ｓ１に対してＲＴＰパケットを送信し（５００５）、このＲＴＰパケットは直前に端末装置Ａが端末装置Ｅに対して行った通信５００４によって端末装置Ａに到達する。
【００７４】
通信５００５でＲＴＰパケットを受信した端末装置Ａは、通信５００３の場合と同様に、宛先ポート番号の設定値Ｓ２をＳ３に変更してＲＴＰパケットを送信する（５００６）。この場合、ポート番号Ｓ３は、直前に端末装置Ｈが端末装置Ａに対して行った通信５００５によって維持されているため、端末装置ＡからのＲＴＰパケットは端末装置Ｈに到達する。その後は、通常の通信が可能となる。
【００７５】
ここでは、ポート変更処理の判定を行う対象となるＲＴＰパケットは、相手装置との接続を確立した後に最初に受信したＲＴＰパケット（図中、「1stRTP」）のみとする（図１３及び図１４についても同様）。これにより、不正なパケットを正規のパケットとして受信して不適切にポート番号の変更が行われる可能性を最小限にしてセキュリティを高めることができる。
【００７６】
図１３に示すように、ＮＡＴ種別がＡ−Ｓの場合、着呼側の端末装置Ｈは、ＮＡＴ種別が対称型であり、図１２と同様に端末装置同士の接続が確立される（１００１〜１０１１）。
【００７７】
その後のメディアセッションにおいて、ケース１では、着呼側の端末装置Ｈは、先のINVITEリクエストにより取得した発呼側の端末装置Ｂのポート番号Ｓ１に対してＲＴＰパケットを送信する（６００１）。この場合、ポート番号Ｓ１は、端末装置Ｂが継続的に送信するＵＤＰパケットによって維持されているが、端末装置ＢのＮＡＴ種別は制限付きコーン型（ポート制限付きコーン型の場合も同様）であるので、ＩＰアドレスの制限により端末装置ＥからのＲＴＰパケットは端末装置Ｂ（ルータ１２）に拒否される。次に、端末装置Ｂは、先の200 OKメッセージにより取得した端末装置Ｈのポート番号Ｓ２に対してＲＴＰパケットを送信する（６００２）。この場合、端末装置ＡからのＲＴＰパケットを受信可能なポート番号はＳ３となっているので、そのポート番号Ｓ２に向けたＲＴＰパケットは端末装置Ｈ（ルータ１８）に拒否される。そこで、端末装置Ｈが、通信６００１と同様に端末装置Ｂのポート番号Ｓ１に対してＲＴＰパケットを送信すると（６００３）、直前に端末装置Ｂが端末装置Ｈに対して行った通信６００２によって、端末装置Ｈに対するＩＰアドレスの制限が解除されるとともにポート番号Ｓ１が維持されるため、端末装置ＨからのＲＴＰパケットは端末装置Ｂに到達する。
【００７８】
通信６００３でＲＴＰパケットを受信した端末装置Ｂは、そのＲＴＰパケットの送信元ポート番号Ｓ３の情報と、端末装置Ｈに向けてＲＴＰパケットを送信する宛先ポート番号の設定値Ｓ２とを比較し、それらのポート番号が異なるため、宛先ポート番号の設定値Ｓ２をＳ３に変更してＲＴＰパケットを送信する（６００４）。この場合、ポート番号Ｓ３は、直前に端末装置Ｈが端末装置Ａに対して行った通信６００３によって維持されているため、端末装置ＡからのＲＴＰパケットは端末装置Ｈに到達する。その後は、通常の通信が可能となる。
【００７９】
一方、ケース２では、端末装置Ｂは、先の200 OKメッセージにより取得した端末装置Ｈのポート番号Ｓ２に対してＲＴＰパケットを送信するが（６００５）、６００２と同様に端末装置Ｈに拒否される。次に、端末装置Ｈは、先のINVITEリクエストにより取得した端末装置Ｂのポート番号Ｓ１に対してＲＴＰパケットを送信し（６００６）、ＲＴＰパケットは６００３と同様に端末装置Ｂに到達する。
【００８０】
通信６００６でＲＴＰパケットを受信した端末装置Ｂは、通信６００４の場合と同様に、宛先ポート番号の設定値Ｓ２をＳ３に変更してＲＴＰパケットを送信する（６００７）。この場合、ポート番号Ｓ３は、直前に端末装置Ｈが端末装置Ａに対して行った通信６００６によって維持されているため、端末装置ＡからのＲＴＰパケットは端末装置Ｈに到達する。その後は、通常の通信が可能となる。
【００８１】
図１４に示すように、ＮＡＴ種別がＳ−Ｆの場合、発呼側の端末装置ＤのＮＡＴ種別が対称型である点を除けば、図１２と概ね同様に端末装置同士の接続が確立される（１００１〜１０１１）。
【００８２】
その後のメディアセッションにおいて、ケース１では、着呼側の端末装置Ｅは、先のINVITEリクエストにより取得した発呼側の端末装置Ｄのポート番号Ｓ１に対してＲＴＰパケットを送信する（７００１）。この場合、端末装置ＥからのＲＴＰパケットを受信可能なポート番号はＳ４となっており、そのポート番号Ｓ１に向けたＲＴＰパケットは端末装置Ｓ（ルータ１４）に拒否される。次に、端末装置Ｄは、先の200 OKメッセージにより取得した端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（７００２）。この場合、端末装置ＥのＮＡＴ種別は完全コーン型であり、直前に端末装置Ｅが端末装置Ｂに対して行った通信７００１（或いは、端末装置Ｅが継続的に送信するＵＤＰパケット）により、ポート番号Ｓ２が維持されるため、端末装置ＢからのＲＴＰパケットは端末装置Ｅに到達する。
【００８３】
通信７００２でＲＴＰパケットを受信した端末装置Ｅは、そのＲＴＰパケットの送信元ポート番号Ｓ４の情報と、端末装置Ｄに向けてＲＴＰパケットを送信する宛先ポート番号の設定値Ｓ１とを比較し、それらのポート番号が異なるため、宛先ポート番号の設定値Ｓ１をＳ４に変更してＲＴＰパケットを送信する（７００３）。この場合、ポート番号Ｓ４は、直前に端末装置Ｄが端末装置Ｅに対して行った通信７００２によって維持されているため、端末装置ＥからのＲＴＰパケットは端末装置Ｄに到達する。その後は、通常の通信が可能となる。
【００８４】
一方、ケース２では、端末装置Ｄは、先の200 OKメッセージにより取得した着呼側の端末装置Ｅのポート番号Ｓ２に対してＲＴＰパケットを送信する（７００４）。この場合、ポート番号Ｓ２は、端末装置Ｅが継続的に送信するＵＤＰパケットによって維持されているため、端末装置ＤからのＲＴＰパケットは端末装置Ｅに到達する。このとき、端末装置Ｅが、先のINVITEリクエストにより取得した端末装置Ｄのポート番号Ｓ１に対してＲＴＰパケットを送信すると（７００５）、通信７００１と同様に端末装置Ｂに拒否される。
【００８５】
通信７００４でＲＴＰパケットを受信した端末装置Ｅは、通信７００３の場合と同様に、宛先ポート番号の設定値Ｓ１をＳ４に変更してＲＴＰパケットを送信する（７００６）。この場合、ポート番号Ｓ４は、直前に端末装置Ｄが端末装置Ｅに対して行った通信７００５によって維持されているため、端末装置ＤからのＲＴＰパケットは端末装置Ｅに到達する。その後は、通常の通信が可能となる。
【００８６】
なお、上記Ｆ−Ｓ、Ａ−Ｓ及びＳ−Ｆ以外の方法Ｂを適用可能な他のＮＡＴ種別の組合せについても同様の通信を実行することが可能である。
【００８７】
本発明を特定の実施形態に基づいて詳細に説明したが、これらの実施形態はあくまでも例示であって本発明はこれらの実施形態によって限定されるものではない。例えば、本実施形態では、端末装置Ａ〜Ｈ間で実行される通信について説明したが、端末装置Ａ〜Ｈは、インターネット５以外の他のＩＰ網やＰＳＴＮ網に接続された装置と同様に通信することが可能である。この場合、本発明を実施可能な機能を有する端末装置を識別するために端末装置間で送受される呼制御メッセージに識別情報を付加することができる。
【産業上の利用可能性】
【００８８】
本発明に係るＩＰ通信装置及びＩＰ通信システム並びにこれらのＩＰ通信方法は、ＩＰ通信装置が、相手装置と互いにＮＡＴ機能を有する中継機器を介して行う通信において、中継機器のＮＡＴ種別の組合せに対し、ＮＡＴ越えを簡易かつ確実に実現可能な範囲を向上させることを可能とするので、ＮＡＴ機能を有する中継機器を介して広域ネットワークに接続されるＩＰ通信装置及びこれを備えたＩＰ通信システム並びにこれらのＩＰ通信方法として有用である。
【図面の簡単な説明】
【００８９】
【図１】本願発明に係るＩＰ通信システムの概略を示す構成図
【図２】端末装置間のＮＡＴ種別の組合せパターンを示す図
【図３】端末装置Ａ〜Ｈの主要部の構成を示すブロック図
【図４】端末装置Ａ〜ＨのＳＩＰサーバへの登録処理を示すフロー図
【図５】端末装置Ａ〜ＨのＳＩＰサーバへの登録データの一例を示す図
【図６】端末装置Ａ〜Ｈの発呼処理を示すフロー図
【図７】端末装置Ａ〜Ｈの着呼処理を示すフロー図
【図８】ＩＰ通信システムで実行される通信処理の一例を示すシーケンス図
【図９】ＮＡＴ種別の組合せがＦ−Ｆの場合の通信処理を示すシーケンス図
【図１０】ＮＡＴ種別の組合せがＡ−Ｆの場合の通信処理を示すシーケンス図
【図１１】ＮＡＴ種別の組合せがＦ−Ａの場合の通信処理を示すシーケンス図
【図１２】ＮＡＴ種別の組合せがＦ−Ｓの場合の通信処理を示すシーケンス図
【図１３】ＮＡＴ種別の組合せがＡ−Ｓの場合の通信処理を示すシーケンス図
【図１４】ＮＡＴ種別の組合せがＳ−Ｆの場合の通信処理を示すシーケンス図
【図１５】ＮＡＴ種別の組合せに対するＮＡＴ越え方法を示す図
【符号の説明】
【００９０】
１  ＩＰ通信システム
２  ＳＩＰサーバ（呼接続用サーバ）
３  ＳＴＵＮサーバ（アドレス情報提供用サーバ）
３２  呼制御部
３３  ＳＴＵＮ制御部
３４  ＳＩＰ制御部（シグナリング手段）
３５  ＵＤＰパケット制御部（データ通信手段）
４１  シグナリング管理部
４２  ＲＴＰ管理部（通信管理手段）
１１〜１８  ルータ（中継機器）
Ａ〜Ｈ  端末装置（ＩＰ通信装置）
【図１】
2008236297.tif 000003
【図２】
2008236297.tif 000004
【図３】
2008236297.tif 000005
【図４】
2008236297.tif 000006
【図５】
2008236297.tif 000007
【図６】
2008236297.tif 000008
【図７】
2008236297.tif 000009
【図８】
2008236297.tif 000010
【図９】
2008236297.tif 000011
【図１０】
2008236297.tif 000012
【図１１】
2008236297.tif 000013
【図１２】
2008236297.tif 000014
【図１３】
2008236297.tif 000015
【図１４】
2008236297.tif 000016
【図１５】
2008236297.tif 000017