(57)【要約】【課題】  ＮＡＴルータの処理負荷を低減させること。【解決手段】  第２端末装置１００は、第１端末装置６０の第１グローバルＩＰアドレスと第２端末装置１００の第２グローバルＩＰアドレスとが一致する場合に、ＳＩＰサーバ１０から第１端末装置６０の第１ローカルＩＰアドレスと公開鍵とを取得する。第２端末装置１００は、第１ローカルＩＰアドレスを用いて通信可能である特定の端末装置が第１端末装置６０であるのか否かを、公開鍵を利用して判断する。第２端末装置１００は、肯定的な判断結果が得られた場合に、第１ローカルＩＰアドレスを用いて、第１端末装置６０と音声データを通信する。第１ＮＡＴルータ５２を経由せずに音声データを通信することができる。【選択図】  図１
2010212792.tif 000002
【特許請求の範囲】
【請求項１】
接続管理サーバと第１端末装置と第２端末装置とを含むシステムで利用される前記第２端末装置であって、
前記第１端末装置の第１グローバルＩＰアドレスと前記第２端末装置の第２グローバルＩＰアドレスとが一致する場合に、前記第１端末装置の第１ローカルＩＰアドレスと第１認証情報とが登録されている前記接続管理サーバから、前記第１ローカルＩＰアドレスと前記第１認証情報とを取得するローカルアドレス取得部と、
取得済みの前記第１ローカルＩＰアドレスを用いて前記第２端末装置が通信可能である第１の特定の端末装置が、目的の前記第１端末装置であるのか否かを、取得済みの前記第１認証情報を利用して判断する判断部と、
前記第１の特定の端末装置が目的の前記第１端末装置であると前記判断部によって判断される場合に、前記第１ローカルＩＰアドレスを用いて、前記第１端末装置と目的の第１データを通信する目的データ通信部と、
を備える第２端末装置。
【請求項２】
前記第１端末装置の前記第１グローバルＩＰアドレスとポート番号との組合せを取得するグローバルアドレス取得部をさらに備え、
前記目的データ通信部は、前記第１の特定の端末装置が目的の前記第１端末装置でないと前記判断部によって判断される場合に、前記第１グローバルＩＰアドレスと前記ポート番号との前記組合せを用いて、前記第１端末装置と第２データを通信する
ことを特徴とする請求項１に記載の第２端末装置。
【請求項３】
前記第１の特定の端末装置に第１チャレンジデータを送信し、前記第１の特定の端末装置が前記第１チャレンジデータに応じて送信する第１レスポンスデータであって、前記第１チャレンジデータが暗号化された前記第１レスポンスデータを受信する第１チャレンジデータ通信部をさらに備え、
前記第１認証情報は、前記第１端末装置の第１公開鍵を含み、
前記判断部は、前記第１レスポンスデータを前記第１公開鍵で復号化することによって、第１復号化データを生成し、前記第１復号化データと前記第１チャレンジデータとが一致する場合に、前記第１の特定の端末装置が目的の前記第１端末装置であると判断する
ことを特徴とする請求項１又は２に記載の第２端末装置。
【請求項４】
前記判断部は、さらに、前記第１レスポンスデータが前記第１チャレンジデータ通信部によって受信されない場合に、前記第１の特定の端末装置が目的の前記第１端末装置でないと判断する
ことを特徴とする請求項３に記載の第２端末装置。
【請求項５】
記憶部に前記第１ローカルＩＰアドレスを保持させる記憶制御部をさらに備え、
前記目的データ通信部は、前記第１データの通信が終了した後に前記第１端末装置と第３データを通信すべき際に、前記記憶部に保持されている前記第１ローカルＩＰアドレスを再度用いて、前記第１端末装置と前記第３データを通信する
ことを特徴とする請求項１から４のいずれかに記載の第２端末装置。
【請求項６】
前記記憶制御部は、さらに、前記記憶部に前記第１認証情報を保持させ、
前記判断部は、前記第１端末装置と前記第３データを通信すべき際に、前記記憶部に保持されている前記第１ローカルＩＰアドレスを用いて前記第２端末装置が通信可能である第２の特定の端末装置が、目的の前記第１端末装置であるのか否かを、前記記憶部に保持されている前記第１認証情報を利用して判断し、
前記目的データ通信部は、前記第２の特定の端末装置が目的の前記第１端末装置であると前記判断部によって判断される場合に、前記記憶部に保持されている前記第１ローカルＩＰアドレスを再度用いて、前記第１端末装置と前記第３データを通信する
ことを特徴とする請求項５に記載の第２端末装置。
【請求項７】
前記第１の特定の端末装置が目的の前記第１端末装置であると前記判断部によって判断される場合に、前記第２端末装置の第２公開鍵を前記第１端末装置に送信する公開鍵送信部と、
前記第１端末装置が前記第２端末装置の第２ローカルＩＰアドレスを送信先として送信する第２チャレンジデータを受信し、前記第２端末装置の秘密鍵を利用して前記第２チャレンジデータを暗号化することによって、第２レスポンスデータを生成し、前記第２レスポンスデータを前記第１端末装置に送信する第２チャレンジデータ通信部と、
をさらに備え、
前記目的データ通信部は、前記第１端末装置が前記第２公開鍵を利用して前記第２レスポンスデータを復号化することによって生成する第２復号化データと、前記第２チャレンジデータと、が一致する場合に、前記第２ローカルＩＰアドレスを用いて、前記第１端末装置と第４データを通信する
ことを特徴とする請求項１から６のいずれかに記載の第２端末装置。
【請求項８】
前記接続管理サーバと、前記第１端末装置と、請求項１から７のいずれかに記載の前記第２端末装置と、を備えるシステム。
【請求項９】
接続管理サーバと第１端末装置と第２端末装置とを含むシステムで利用される前記接続管理サーバであって、
前記第１端末装置の第１グローバルＩＰアドレスと第１ローカルＩＰアドレスと第１認証情報とを対応づけてサーバ側記憶部に保持させるサーバ側記憶制御部と、
前記第２端末装置が前記第１端末装置を送信先として送信する接続要求であって、前記第２端末装置の第２グローバルＩＰアドレスを含む前記接続要求を受信するサーバ側受信部と、
前記サーバ側記憶部に保持されている前記第１端末装置の前記第１グローバルＩＰアドレスと、前記接続要求に含まれる前記第２端末装置の前記第２グローバルＩＰアドレスと、が一致するのか否かを判断するサーバ側判断部と、
前記第１グローバルＩＰアドレスと前記第２グローバルＩＰアドレスとが一致すると前記サーバ側判断部によって判断される場合に、前記サーバ側記憶部に保持されている前記第１端末装置の前記第１ローカルＩＰアドレスと前記第１認証情報とを前記第２端末装置に送信するサーバ側送信部と、
を備える接続管理サーバ。
【請求項１０】
前記第１グローバルＩＰアドレスと前記第２グローバルＩＰアドレスとが一致しないと前記サーバ側判断部によって判断される場合に、前記接続要求を前記第１端末装置に転送するサーバ側転送部
をさらに備えることを特徴とする請求項９に記載の接続管理サーバ。
【請求項１１】
接続管理サーバと第１端末装置と第２端末装置とを含むシステムで利用される前記第２端末装置のためのコンピュータプログラムであって、
前記第１端末装置の第１グローバルＩＰアドレスと前記第２端末装置の第２グローバルＩＰアドレスとが一致する場合に、前記第１端末装置の第１ローカルＩＰアドレスと第１認証情報とが登録されている前記接続管理サーバから、前記第１ローカルＩＰアドレスと前記第１認証情報とを取得するローカルアドレス取得処理と、
取得済みの前記第１ローカルＩＰアドレスを用いて前記第２端末装置が通信可能である第１の特定の端末装置が、目的の前記第１端末装置であるのか否かを、取得済みの前記第１認証情報を利用して判断する判断処理と、
前記第１の特定の端末装置が目的の前記第１端末装置であると前記判断処理によって判断される場合に、前記第１ローカルＩＰアドレスを用いて、前記第１端末装置と目的の第１データを通信する目的データ通信処理と、
をコンピュータに実行させるコンピュータプログラム。
【請求項１２】
接続管理サーバと第１端末装置と第２端末装置とを含むシステムで利用される前記第２端末装置であって、
前記第１端末装置の第１ローカルＩＰアドレスが登録されている前記接続管理サーバから、前記第１ローカルＩＰアドレスを取得するローカルアドレス取得部と、
前記第１端末装置の第１グローバルＩＰアドレスと前記第２端末装置の第２グローバルＩＰアドレスとが一致する場合に、取得済みの前記第１ローカルＩＰアドレスを用いて、前記第１端末装置と目的の第１データを通信する第１目的データ通信部と、
前記第１端末装置の前記第１グローバルＩＰアドレスと前記第２端末装置の前記第２グローバルＩＰアドレスとが一致しない場合に、前記第１端末装置の前記第１グローバルＩＰアドレスを用いて、前記第１端末装置と目的の第２データを通信する第２目的データ通信部と、
を備える第２端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、別の端末装置と通信する端末装置に関する。
【背景技術】
【０００２】
ＮＡＴ（Network Address Translation）ルータが広く知られている。ＮＡＴルータは、インターネットとローカルネットワークとの間に配置される。ＮＡＴルータは、グローバルアドレス（グローバルＩＰアドレスとポート番号）とローカルアドレス（ローカルＩＰアドレスとポート番号）との間でアドレスを変換する処理を実行する。例えば、第１ローカルネットワークに存在する第１端末装置と第２ローカルネットワークに存在する第２端末装置との間でデータを通信するためには、通常、第１端末装置と第２端末装置のそれぞれのグローバルアドレスが用いられる。この場合、第１ローカルネットワークに対応する第１ＮＡＴルータは、第１端末装置とインターネット側（即ち第２端末装置）との間で通信されるデータのアドレス変換処理を実行する。また、第２ローカルネットワークに対応する第２ＮＡＴルータは、第２端末装置とインターネット側（即ち第１端末装置）との間で通信されるデータのアドレス変換処理を実行する。なお、例えば、下記の特許文献１には、一対の端末装置の間でデータを通信することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３０４７１１号公報
【特許文献２】特開２００６−１４０９０３号公報
【特許文献３】特開２００８−１６９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ローカルネットワークに存在する端末装置の数が多くなれば、ＮＡＴルータの処理負荷が大きくなる。本明細書では、ＮＡＴルータの処理負荷を低減させることができる技術を提供する。
【課題を解決するための手段】
【０００５】
ところで、一対の端末装置の一方のグローバルＩＰアドレスと他方のグローバルＩＰアドレスとが一致する場合がある。この場合には、上記の一対の端末装置が同一のローカルネットワーク内に存在し得る。同一のネットワーク内に存在する一対の端末装置は、グローバルアドレスを用いて目的のデータ（換言すれば、通信対象のデータ）を通信することもできるし、ローカルアドレスを用いて目的のデータを通信することもできる。前者の場合、ＮＡＴルータがアドレス変換処理を実行する必要がある。一方において、後者の場合、アドレス変換処理の必要がないことから、ＮＡＴルータを経由せずに目的のデータを通信することができる。本明細書では、一対の端末装置が同一のローカルネットワーク内に存在する場合に、ＮＡＴルータを経由せずに目的のデータを通信することを実現することによって、ＮＡＴルータの処理負荷を低減させる。
【０００６】
本明細書で開示される一つの技術は、接続管理サーバと第１端末装置と第２端末装置とを含むシステムで利用される第２端末装置である。この第２端末装置は、ローカルアドレス取得部と判断部と目的データ通信部とを備える。ローカルアドレス取得部は、第１端末装置の第１グローバルＩＰアドレスと第２端末装置の第２グローバルＩＰアドレスとが一致する場合に、第１端末装置の第１ローカルＩＰアドレスと第１認証情報とが登録されている接続管理サーバから、第１ローカルＩＰアドレスと第１認証情報とを取得する。なお、第１グローバルＩＰアドレスと第２グローバルＩＰアドレスとの一致判断の主体は、第２端末装置であってもよいし、他のデバイス（例えば接続管理サーバ）であってもよい。
【０００７】
判断部は、取得済みの第１ローカルＩＰアドレスを用いて第２端末装置が通信可能である第１の特定の端末装置が、目的の第１端末装置であるのか否かを、取得済みの第１認証情報を利用して判断する。目的データ通信部は、第１の特定の端末装置が目的の第１端末装置であると判断部によって判断される場合に、第１ローカルＩＰアドレスを用いて、第１端末装置と目的の第１データを通信する。上記の「通信」は、受信及び／又は送信を意味する。なお、上記の「第１ローカルＩＰアドレスを用いて、第１端末装置と第１データを通信する」という文章は、「第１ローカルＩＰアドレスを用いて、第１端末装置と第２端末装置との間に通信セッションを確立する」と言い換えてもよい。また、「通信セッションを確立する」という文章は、「目的のデータを通信するために必要である少なくとも１つのコマンドを通信（送信及び／又は受信）する」と言い換えてもよい。
【０００８】
上記の構成によると、第２端末装置は、第１端末装置の第１グローバルＩＰアドレスと第２端末装置の第２グローバルＩＰアドレスとが一致する場合に、第１端末装置の第１ローカルＩＰアドレスと第１認証情報とを接続管理サーバから取得する。第２端末装置が取得済みの第１ローカルＩＰアドレスを用いて通信しても、目的の第１端末装置と通信することができない可能性がある。例えば、過去に第１端末装置に第１ローカルＩＰアドレスが割り当てられており、その第１ローカルＩＰアドレスが接続管理サーバに登録されているが、現在は第１端末装置に別のローカルＩＰアドレスが割り当てられている可能性がある。このような可能性があることに鑑みて、第２端末装置は、第１ローカルＩＰアドレスを用いて第１端末装置と実際に通信することができるのか否かを、第１認証情報を利用して判断する。ここで肯定的な判断結果が得られた場合に、第２端末装置は、第１ローカルＩＰアドレスを用いて、第１端末装置と第１データを通信する。この技術によると、第１端末装置と第２端末装置が同一のローカルネットワーク内に存在する場合に、第２端末装置は、ＮＡＴルータを経由せずに、目的のデータ（上記の第１データ）を第１端末装置と通信することができる。ＮＡＴルータの処理負荷を低減させることができる。
【０００９】
第２端末装置は、第１端末装置の第１グローバルＩＰアドレスとポート番号との組合せを取得するグローバルアドレス取得部をさらに備えていてもよい。この場合、目的データ通信部は、第１の特定の端末装置が目的の第１端末装置でないと判断部によって判断される場合に、第１グローバルＩＰアドレスとポート番号との組合せを用いて、第１端末装置と第２データを通信してもよい。この構成によると、第１ローカルＩＰアドレスを用いて第１端末装置と通信することができない場合に、第１端末装置の第１グローバルＩＰアドレスとポート番号との組合せを用いて第１端末装置と通信することができる。
【００１０】
第２端末装置は、第１の特定の端末装置に第１チャレンジデータを送信し、第１の特定の端末装置が第１チャレンジデータに応じて送信する第１レスポンスデータであって、第１チャレンジデータが暗号化された第１レスポンスデータを受信する第１チャレンジデータ通信部をさらに備えていてもよい。また、上記の第１認証情報は、第１端末装置の第１公開鍵を含んでいてもよい。この場合、判断部は、第１レスポンスデータを第１公開鍵で復号化することによって、第１復号化データを生成し、第１復号化データと第１チャレンジデータとが一致する場合に、第１の特定の端末装置が目的の第１端末装置であると判断してもよい。この構成によると、第１の特定の端末装置が目的の第１端末装置であるのか否かを確実に判断することができる。
【００１１】
判断部は、さらに、第１レスポンスデータが第１チャレンジデータ通信部によって受信されない場合に、第１の特定の端末装置が目的の第１端末装置でないと判断してもよい。
【００１２】
第２端末装置は、第１データの通信が終了した後に記憶部に第１ローカルＩＰアドレスを保持させる記憶制御部をさらに備えていてもよい。なお、上記の「第１データの通信が終了した後に・・・保持させる」という文章は、第１データの通信の終了後の期間に少なくとも保持させることを意味している。従って、上記の文章は、第１データの通信の終了前から終了後の期間に亘って継続して保持させることを含む。なお、上記の文章は、「第１データの通信が終了した直後に記憶部に第１ローカルＩＰアドレスを保持させる」と言い換えてもよい。また、上記の「第１データの通信が終了した後」という文章は、「第１データを通信するための通信セッションが切断された後」と言い換えてもよい。目的データ通信部は、第１データの通信が終了した後に第１端末装置と第３データを通信すべき際に、記憶部に保持されている第１ローカルＩＰアドレスを再度用いて、第１端末装置と第３データを通信してもよい。この構成によると、第２端末装置は、ＮＡＴルータを経由せずに、目的のデータ（上記の第３データ）を第１端末装置と通信することができる。なお、記憶制御部は、例えば、第１データの通信が終了してから所定期間が経過するまで第１ローカルＩＰアドレスを保持させてもよいし、第１データの通信が終了してから第１端末装置以外の端末装置と別のデータの通信が開始されるまで第１ローカルＩＰアドレスを保持させてもよい。
【００１３】
例えば、第１データの通信が終了した後に、第１端末装置に第１ローカルＩＰアドレスに代えて別のローカルＩＰアドレスが割り当てられる可能性がある。このような可能性があることに鑑みて、以下の構成を採用してもよい。即ち、記憶制御部は、さらに、記憶部に第１認証情報を保持させてもよい。判断部は、第１データの通信が終了した後に第１端末装置と第３データを通信すべき際に、記憶部に保持されている第１ローカルＩＰアドレスを用いて第２端末装置が通信可能である第２の特定の端末装置が、目的の第１端末装置であるのか否かを、記憶部に保持されている第１認証情報を利用して判断してもよい。目的データ通信部は、第２の特定の端末装置が目的の第１端末装置であると判断部によって判断される場合に、記憶部に保持されている第１ローカルＩＰアドレスを再度用いて、第１端末装置と第３データを通信してもよい。この構成によると、第２端末装置は、第３データを通信すべき際に、第１ローカルＩＰアドレスを用いて第１端末装置と実際に通信することができるのか否かを、第１認証情報を利用して判断することができる。ここで肯定的な判断結果が得られた場合には、ＮＡＴルータを経由せずに、第１端末装置と第２端末装置との間で第３データを通信することができる。
【００１４】
記憶制御部は、第１ローカルＩＰアドレスを所定期間継続して記憶部に保持させてもよい。即ち、記憶制御部は、上記の所定期間が経過すると、第１ローカルＩＰアドレスを削除することを許容してもよい。目的データ通信部は、第１端末装置と第３データを通信すべき際に、第１ローカルＩＰアドレスが記憶部に保持されている場合に、記憶部に保持されている第１ローカルＩＰアドレスを再度用いて、第１端末装置と第３データを通信してもよい。
【００１５】
第１データの通信が終了した後に、第１端末装置からの要求によって、第１端末装置と第２端末装置との間でデータを再度通信すべきことがあり得る。この場合も、第１端末装置と第２端末装置との間でローカルＩＰアドレスを用いて通信することができれば、ＮＡＴルータの処理負荷をより低減させることができる。これを実現するために、以下の構成を採用してもよい。即ち、第２端末装置は、公開鍵送信部と第２チャレンジデータ通信部とをさらに備えていてもよい。公開鍵送信部は、第１の特定の端末装置が目的の第１端末装置であると判断部によって判断される場合に、第２端末装置の第２公開鍵を第１端末装置に送信してもよい。第２チャレンジデータ通信部は、第１端末装置が第２端末装置の第２ローカルＩＰアドレスを送信先として送信する第２チャレンジデータを受信し、第２端末装置の秘密鍵を利用して第２チャレンジデータを暗号化することによって、第２レスポンスデータを生成し、第２レスポンスデータを第１端末装置に送信してもよい。目的データ通信部は、第１端末装置が第２公開鍵を利用して第２レスポンスデータを復号化することによって生成する第２復号化データと、第２チャレンジデータと、が一致する場合に、第２ローカルＩＰアドレスを用いて、第１端末装置と第４データを通信してもよい。この構成によると、第１端末装置は、第４データを通信すべき際に、第２ローカルＩＰアドレスを用いて第２端末装置と実際に通信することができるのか否かを、第２公開鍵を利用して判断することができる。ここで肯定的な判断結果が得られた場合には、ＮＡＴルータを経由せずに、第１端末装置と第２端末装置との間で第４データを通信することができる。
【００１６】
上記の接続管理サーバと上記の第１端末装置と上記の第２端末装置とを備えるシステムも、新規で有用である。また、上記の第２端末装置を実現するための制御方法及びコンピュータプログラムも新規で有用である。
【００１７】
なお、上記の接続管理サーバも、新規で有用である。上記の接続管理サーバは、以下のように表現することができる。接続管理サーバは、サーバ側記憶制御部とサーバ側受信部とサーバ側判断部とサーバ側送信部とを備える。サーバ側記憶制御部は、第１端末装置の第１グローバルＩＰアドレスと第１ローカルＩＰアドレスと第１認証情報とを対応づけてサーバ側記憶部に保持させる。サーバ側受信部は、第２端末装置が第１端末装置を送信先として送信する接続要求であって、第２端末装置の第２グローバルＩＰアドレスを含む接続要求を受信する。サーバ側判断部は、サーバ側記憶部に保持されている第１端末装置の第１グローバルＩＰアドレスと、接続要求に含まれる第２端末装置の第２グローバルＩＰアドレスと、が一致するのか否かを判断する。サーバ側送信部は、第１グローバルＩＰアドレスと第２グローバルＩＰアドレスとが一致するとサーバ側判断部によって判断される場合に、サーバ側記憶部に保持されている第１端末装置の第１ローカルＩＰアドレスと第１認証情報とを第２端末装置に送信する。この接続管理サーバを用いると、上記のシステムを実現することができる。
【００１８】
なお、サーバ側記憶制御部は、予め第２端末装置の第２グローバルＩＰアドレスをサーバ側記憶部に保持させてもよい。この場合、第２端末装置から送信される接続要求に含まれる第２端末装置の第２グローバルＩＰアドレスは、サーバ側記憶部に保持されている第２端末装置の第２グローバルＩＰアドレスと一致するはずである。従って、サーバ側判断部は、第１端末装置の第１グローバルＩＰアドレスと、サーバ側記憶部に保持されている第２端末装置の第２グローバルＩＰアドレスと、が一致するのか否かを判断してもよい。この場合も「サーバ側記憶部に保持されている第１端末装置の第１グローバルＩＰアドレスと、接続要求に含まれる第２端末装置の第２グローバルＩＰアドレスと、が一致するのか否かを判断する」ことに等しい。
【００１９】
接続管理サーバは、第１グローバルＩＰアドレスと第２グローバルＩＰアドレスとが一致しないとサーバ側判断部によって判断される場合に、接続要求を第１端末装置に転送するサーバ側転送部をさらに備えていてもよい。この構成によると、第１端末装置と第２端末装置は、グローバルＩＰアドレスを用いて、目的のデータを通信することができる。
【００２０】
なお、本明細書によって開示される技術は、以下の第２端末装置として表現することもできる。この第２端末装置も、第１端末装置と第２端末装置が同一のローカルネットワーク内に存在する場合に、ＮＡＴルータを経由せずに目的のデータを通信するという技術的特徴を有する。この第２端末装置は、ローカルアドレス取得部と第１目的データ通信部と第２目的データ通信部とを備える。ローカルアドレス取得部は、第１端末装置の第１ローカルＩＰアドレスが登録されている接続管理サーバから、第１ローカルＩＰアドレスを取得する。第１目的データ通信部は、第１端末装置の第１グローバルＩＰアドレスと第２端末装置の第２グローバルＩＰアドレスとが一致する場合に、取得済みの第１ローカルＩＰアドレスを用いて、第１端末装置と目的の第１データを通信する。第２目的データ通信部は、第１端末装置の第１グローバルＩＰアドレスと第２端末装置の第２グローバルＩＰアドレスとが一致しない場合に、第１端末装置の第１グローバルＩＰアドレスを用いて、第１端末装置と目的の第２データを通信する。なお、この第２端末装置を実現するための制御方法及びコンピュータプログラムも新規で有用である。
【図面の簡単な説明】
【００２１】
【図１】電話ネットワークシステムの構成の一例を示す。
【図２】ＳＩＰサーバの構成の一例を示す。
【図３】第１端末装置の構成の一例を示す。
【図４】第２端末装置の構成の一例を示す。
【図５】ＳＩＰサーバに情報を登録する処理のシーケンス図を示す。
【図６】ローカルアドレスを用いて通信する処理のシーケンス図を示す。
【図７】ローカルアドレスを用いて再度通信する処理のシーケンス図を示す。
【図８】ＳＩＰサーバのＩＮＶＩＴＥ受信処理のフローチャートを示す。
【図９】端末装置のＩＮＶＩＴＥ送信処理のフローチャートを示す。
【図１０】図９の続きのフローチャートを示す。
【図１１】図９の続きのフローチャートを示す。
【図１２】端末装置のＩＮＶＩＴＥ受信処理のフローチャートを示す。
【発明を実施するための形態】
【００２２】
ここでは、以下の実施例に記載の技術の一部を列挙しておく。
（形態１）目的データ通信部は、第１端末装置の第１グローバルＩＰアドレスと第２端末装置の第２グローバルＩＰアドレスとが一致しない場合に、第１端末装置の第１グローバルＩＰアドレスとポート番号との組合せを用いて、第１端末装置とデータを通信してもよい。
【００２３】
（形態２）目的データ通信部は、第２の特定の端末装置が目的の第１端末装置でないと判断部によって判断される場合に、第１端末装置の第１グローバルＩＰアドレスとポート番号との組合せを用いて、第１端末装置と上記の第３データを通信してもよい。
【００２４】
（形態３）目的データ通信部は、第１端末装置と上記の第３データを通信すべき際に、第１ローカルＩＰアドレスが記憶部に保持されていない場合に、第１端末装置の第１グローバルＩＰアドレスとポート番号との組合せを用いて、第１端末装置と上記の第３データを通信してもよい。
【００２５】
（形態４）サーバ側記憶制御部は、複数の端末装置のそれぞれについて、識別情報（例えばＳＩＰＵＲＩ）と、グローバルＩＰアドレスと、ローカルＩＰアドレスと、認証情報とを対応づけてサーバ側記憶部に保持させてもよい。サーバ側判断部は、送信元のグローバルＩＰアドレスと送信先の識別情報とを含む接続要求が受信された場合に、当該接続要求に含まれる送信元のグローバルＩＰアドレスと、当該接続要求に含まれる送信先の識別情報に対応づけられているグローバルＩＰアドレスと、が一致するのか否かを判断してもよい。
【実施例】
【００２６】
（システムの構成）
図面を参照して実施例を説明する。図１は、本実施例の電話ネットワークシステム２の概略図を示す。電話ネットワークシステム２は、インターネット４とＳＩＰサーバ１０とＳＴＵＮサーバ４０と複数のローカルネットワーク５０，１５０等を有する。インターネット４には、ＳＩＰ（Session Initiation Protocol）サーバ１０とＳＴＵＮ(Simple Traversal of UDP through NATs)サーバ４０と複数のローカルネットワーク５０，１５０とが接続されている。
【００２７】
（ＳＩＰサーバ１０の構成）
図２は、ＳＩＰサーバ１０の構成の一例を示す。ＳＩＰサーバ１０は、制御部１２とネットワークインターフェイス１４とプログラム記憶領域１６と登録データ記憶領域１８とを備える。制御部１２は、プログラム記憶領域１６に記憶されているプログラムに従って処理を実行する。ネットワークインターフェイス１４は、インターネット４に接続されている。プログラム記憶領域１６は、制御部１２によって実行されるべきプログラムを記憶する。プログラム記憶領域１６は、プログラム記憶媒体からインストールされたプログラムを記憶してもよいし、インターネット４等からダウンロードされたプログラムを記憶してもよい。
【００２８】
登録データ記憶領域１８は、登録データ２０，２２，２４を記憶する。登録データ２０は第１端末装置６０に関するデータであり、登録データ２２は第２端末装置１００に関するデータであり、登録データ２４は第３端末装置１６０に関するデータである。各登録データ２０，２２，２４は、ＳＩＰＵＲＩ３０と、グローバルＩＰ＋ポート３２と、ローカルＩＰ＋ポート３４と、公開鍵３６と、フラグ３８とが対応づけられたものである。ＳＩＰＵＲＩ３０は、ＳＩＰを利用する個々の端末装置に割り当てられるユニークなＵＲＩである。本実施例では、例えば、第１端末装置６０にＳＩＰＵＲＩ「ｓｉｐ：ｔ１＠ｓｅｒｖｅｒ．ｃｏｍ」が割り当てられている。第１端末装置６０と同様に、第２端末装置１００と第３端末装置１６０のそれぞれにも、ＳＩＰＵＲＩが割り当てられている。
【００２９】
グローバルＩＰ＋ポート３２は、グローバルＩＰアドレスとグローバルポート番号との組合せである。例えば、第１端末装置６０には、グローバルＩＰアドレスＧ１とグローバルポート番号ＧＰ１との組合せが割り当てられている。なお、以下では、グローバルＩＰアドレスとグローバルポート番号との組合せのことを「グローバルアドレス」と呼ぶことがある。後で詳しく説明するが、第２端末装置１００は、第１端末装置６０と同じローカルネットワーク５０内に存在する。従って、第２端末装置１００のグローバルＩＰアドレスＧ１は、第１端末装置６０のグローバルＩＰアドレスＧ１と同じである。ただし、第２端末装置１００のグローバルポート番号ＧＰ２は、第１端末装置６０のグローバルポート番号ＧＰ１と異なる。一方において、第３端末装置１６０は、ローカルネットワーク５０とは別のローカルネットワーク１５０内に存在する。従って、第３端末装置１６０のグローバルＩＰアドレスＧ２は、第１及び第２端末装置６０，１００のグローバルＩＰアドレスＧ１と異なる。第３端末装置１６０には、グローバルポート番号ＧＰ３が割り当てられている。
【００３０】
ローカルＩＰ＋ポート３４は、ローカルＩＰアドレスとローカルポート番号との組合せである。例えば、第１端末装置６０には、ローカルＩＰアドレスＬ１とローカルポート番号ＬＰ１との組合せが割り当てられている。なお、以下では、ローカルＩＰアドレスとローカルポート番号との組合せのことを「ローカルアドレス」と呼ぶことがある。第２端末装置１００と第３端末装置１６０のそれぞれにも、ローカルアドレスが割り当てられている。なお、グローバルＩＰアドレスの場合と異なり、複数の端末装置が同じローカルネットワーク内に存在していても、それらの端末装置のローカルＩＰアドレスは、互いに異なる。従って、第１端末装置６０のローカルＩＰアドレスＬ１は、第２端末装置１００のローカルＩＰアドレスＬ２と異なる。
【００３１】
公開鍵３６は、後述する暗号化されたレスポンスコードを復号化するために利用されるものである。各端末装置６０，１００，１６０は、互いに異なる公開鍵Ｋ１，Ｋ２，Ｋ３を有する。また、フラグ３８は、ローカルアドレスを用いてＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）通信セッションを確立する機能を有するのか否かを示すものである。なお、以下では、上記の機能のことを「ローカル通信機能」と呼ぶ。フラグ３８が「ＯＮ」の場合、ローカル通信機能を有することを意味する。本実施例では、各端末装置６０，１００，１６０は、ローカル通信機能を有する。
【００３２】
（ＳＴＵＮサーバ４０の構成）
ＳＴＵＮサーバ４０は、ローカルネットワーク５０，１５０内の端末装置から送信される問い合わせコマンドを受信する。ＳＴＵＮサーバ４０は、上記の問い合わせコマンドを解析することによって、上記の問い合わせコマンドの送信元（例えば第１端末装置６０）のグローバルＩＰアドレスとグローバルポート番号との組合せ（即ちグローバルアドレス）を取得する。ＳＴＵＮサーバ４０は、グローバルアドレスを上記の問い合わせコマンドの送信元に送信する。これにより、上記の問い合わせコマンドの送信元は、自身に割り当てられているグローバルアドレスを知ることができる。
【００３３】
（ローカルネットワーク５０の構成）
図１に示されるように、ローカルネットワーク５０は、第１ＮＡＴルータ５２を介してインターネット４に接続されている。第１ＮＡＴルータ５２は、インターネット４に接続されているとともに、ＬＡＮ５４に接続されている。ローカルネットワーク５０は、ＬＡＮ５４に接続されている各端末装置によって構成されている。本実施例では、第１及び第２端末装置６０，１００がＬＡＮ５４に接続されている。
【００３４】
第１ＮＡＴルータ５２は、ＮＡＴと呼ばれるアドレス変換処理を実行する。第１ＮＡＴルータ５２は、ローカルＩＰアドレスとローカルポート番号との第１の組合せを送信元としてローカルネットワーク５０から送信されてくるデータをインターネット４に送信する。この際に、第１ＮＡＴルータ５２は、送信元である上記の第１の組合せを、グローバルＩＰアドレスとグローバルポート番号との第２の組合せに変換する。逆に、上記の第２の組合せを送信先としてインターネット４から送信されてくるデータが存在する場合、第１ＮＡＴルータ５２は、送信先である上記の第２の組合せを上記の第１の組合せに変換する。
【００３５】
（第１端末装置６０の構成）
図３は、第１端末装置６０の構成の一例を示す。第１端末装置６０は、制御部６２とネットワークインターフェイス６４とマイク６６とスピーカ６８と記憶部７０等を備える。なお、図示省略しているが、第１端末装置６０は、表示部や操作部等も備える。制御部６２は、記憶部７０に記憶されているプログラムに従って処理を実行する。ネットワークインターフェイス６４は、ＬＡＮ５４に接続されている。また、第１端末装置６０のユーザは、マイク６６とスピーカ６８を利用して電話通信（音声データの通信）を実行することができる。
【００３６】
記憶部７０は、複数の記憶領域７２〜９２を備える。グローバルＩＰ＋ポート記憶領域７２は、第１端末装置６０に割り当てられているグローバルアドレス（Ｇ１＋ＧＰ１）を記憶する。ローカルＩＰ＋ポート記憶領域７４は、第１端末装置６０に割り当てられているローカルアドレス（Ｌ１＋ＬＰ１）を記憶する。鍵記憶領域７６は、第１端末装置６０の秘密鍵Ｊ１と公開鍵Ｋ１とを記憶する。ＳＩＰＵＲＩ記憶領域７８は、第１端末装置６０に割り当てられているＳＩＰＵＲＩ（ｓｉｐ：ｔ１＠ｓｅｒｖｅｒ．ｃｏｍ）を記憶する。通信情報記憶領域８０は、通信情報８２を記憶する。通信情報８２は、ローカル通信機能が実行された通信相手に関する情報である。通信情報８２は、ＳＩＰＵＲＩ８４とローカルＩＰ＋ポート８６と公開鍵８８とが対応づけられたものである。図３の例では、通信情報８２は、第２端末装置１００に関する情報である。これは、第１端末装置６０は、第２端末装置１００を通信相手としてローカル通信機能が過去に実行されたことを意味する。プログラム記憶領域９０は、制御部６２によって実行されるべきプログラムを記憶する。プログラム記憶領域９０は、プログラム記憶媒体からインストールされたプログラムを記憶してもよいし、インターネット４等からダウンロードされたプログラムを記憶してもよい。記憶領域９２は、上記の記憶領域７２〜９０に記憶されるべき情報以外の情報を記憶する。記憶領域９２に記憶されるべき情報の内容については、必要に応じて後で説明する。
【００３７】
（第２端末装置１００の構成）
図４は、第２端末装置１００の構成の一例を示す。第２端末装置１００は、第１端末装置６０と同様の構成１０２，１０４，１０６，１０８，１１０を有する。記憶部１１０の記憶領域１１２〜１３２も、第１端末装置６０と同様である。各記憶領域１１２，１１４，１１６，１１８には、第２端末装置１００に関する情報が記憶される。例えば、鍵記憶領域１１６のＪ２は、第２端末装置１００の秘密鍵である。図４の例では、通信情報記憶領域１２０の通信情報１２２は、第１端末装置６０に関する情報１２４，１２６，１２８である。
【００３８】
（ローカルネットワーク１５０の構成）
図１に示されるように、ローカルネットワーク１５０は、第２ＮＡＴルータ１５２を介してインターネット４に接続されている。第２ＮＡＴルータ１５２は、インターネット４に接続されているとともに、ＬＡＮ１５４に接続されている。ローカルネットワーク１５０は、ＬＡＮ１５４に接続されている各端末装置によって構成されている。本実施例では、第３端末装置１６０がＬＡＮ１５４に接続されている。第３端末装置１６０は、第１及び第２端末装置６０，１６０と同様の構成を有する。
【００３９】
（登録処理の概要）
続いて、各デバイス１０，４０，６０，１００等が実行する処理の内容について説明する。まず、第１端末装置６０がＳＩＰサーバ１０に情報を登録する処理の内容について説明する。図５は、この処理のシーケンス図を示す。
【００４０】
第１端末装置６０の記憶領域９２（図３参照）は、ＳＴＵＮサーバ４０のアドレスを記憶している。第１端末装置６０は、ＳＴＵＮサーバ４０のアドレスを送信先として、問い合わせコマンド２００を送信する。問い合わせコマンド２００は、第１端末装置６０のローカルアドレスＬ１＋ＬＰ１を含んでいる。問い合わせコマンド２００は、図５では図示省略されている第１ＮＡＴルータ５２を経由して、ＳＴＵＮサーバ４０に送信される。第１ＮＡＴルータ５２は、問い合わせコマンド２００に含まれるローカルアドレスＬ１＋ＬＰ１をグローバルアドレスＧ１＋ＧＰ１に変換する。
【００４１】
ＳＴＵＮサーバ４０は、問い合わせコマンド２００を受信する。ＳＴＵＮサーバ４０は、問い合わせコマンド２００を解析することによって、問い合わせコマンド２００に含まれるグローバルアドレスＧ１＋ＧＰ１を特定する。ＳＴＵＮサーバ４０は、グローバルアドレスＧ１＋ＧＰ１を含むレスポンス２０２を第１端末装置６０に送信する。
【００４２】
第１端末装置６０は、レスポンス２０２を受信する。第１端末装置６０は、レスポンス２０２に含まれるグローバルアドレスＧ１＋ＧＰ１をグローバルＩＰ＋ポート記憶領域７２（図３参照）に記憶させる（記憶領域７２の記憶内容を更新する）。第１端末装置６０の記憶領域９２は、ＳＩＰサーバ１０のアドレスを記憶している。第１端末装置６０は、ＳＩＰサーバ１０のアドレスを送信先として、ＲＥＧＩＳＴＥＲコマンド２１０を送信する。ＲＥＧＩＳＴＥＲコマンド２１０は、第１端末装置６０のＳＩＰＵＲＩと、グローバルアドレスＧ１＋ＧＰ１と、ローカルアドレスＬ１＋ＬＰ１と、公開鍵Ｋ１と、ローカル通信機能に対応していることを示すフラグ２１２とを含む。
【００４３】
ＳＩＰサーバ１０は、ＲＥＧＩＳＴＥＲコマンド２１０を受信する。ＳＩＰサーバ１０は、“２００  ＯＫ”２１４を第１端末装置６０に送信する。ＳＩＰサーバ１０は、ＲＥＧＩＳＴＥＲコマンド２１０に含まれる各情報を登録データ記憶領域１８（図２参照）に記憶する。これにより、図２に示される登録データ２０が登録される。
【００４４】
第１端末装置６０は、図５に示される処理を定期的に実行する。この結果、第１端末装置６０は、自身に割り当てられている最新のグローバルアドレスを取得することができる。また、ＳＩＰサーバ１０は、第１端末装置６０の最新の登録データ２０を取得することができる。なお、第２及び第３端末装置１００，１６０も、第１端末装置６０と同様に、図５に示される処理を定期的に実行する。この結果、ＳＩＰサーバ１０は、第２及び第３端末装置１００，１６０の最新の登録データ２２，２４も取得することができる。
【００４５】
（ＩＮＶＩＴＥ送信処理の概要）
続いて、第２端末装置１００が第１端末装置６０にＩＮＶＩＴＥを送信する処理について説明する。図６は、この処理のシーケンス図を示す。第２端末装置１００のユーザは、第２端末装置１００の操作部（図示省略）を操作することによって、第１端末装置６０のＳＩＰＵＲＩを入力することができる。これにより、第２端末装置１００は、図６に示される処理を開始する。
【００４６】
第２端末装置１００の記憶領域１３２（図４参照）は、ＳＩＰサーバ１０のアドレスを記憶している。第２端末装置１００は、ＳＩＰサーバ１０のアドレスを送信先として、ＩＮＶＩＴＥ２２０を送信する。ＩＮＶＩＴＥ２２０は、送信先である第１端末装置６０のＳＩＰＵＲＩと、送信元である第２端末装置１００のＳＩＰＵＲＩと、第２端末装置１００のグローバルアドレスＧ１＋ＧＰ２と、ローカル通信機能に対応していることを示すフラグ２２２とを含む。
【００４７】
ＳＩＰサーバ１０は、ＩＮＶＩＴＥ２２０を受信する。ＳＩＰサーバ１０は、登録データ記憶領域１８（図２参照）を参照することによって、ＩＮＶＩＴＥ２２０に含まれる送信先のＳＩＰＵＲＩ（第１端末装置６０のＳＩＰＵＲＩ）に対応づけられているグローバルＩＰアドレスＧ１を特定する。次いで、ＳＩＰサーバ１０は、特定されたグローバルＩＰアドレスＧ１と、ＩＮＶＩＴＥ２２０に含まれる送信元のグローバルＩＰアドレスＧ１と、が一致するのか否かを判断する判断処理を実行する（Ｓ４）。２つのグローバルＩＰアドレスが一致する場合、ＳＩＰサーバ１０は、登録データ記憶領域１８（図２参照）を参照することによって、第１端末装置６０のＳＩＰＵＲＩに対応づけられているローカルアドレスＬ１＋ＬＰ１と公開鍵Ｋ１とを特定する。次いで、ＳＩＰサーバ１０は、特定されたローカルアドレスＬ１＋ＬＰ１と公開鍵Ｋ１とを含む特定レスポンス２２４を第２端末装置１００に送信する。特定レスポンス２２４は、ローカル通信機能に対応するレスポンスであることを示すフラグ２２６も含む。一方において、２つのグローバルＩＰアドレスが一致しない場合、ＳＩＰサーバ１０は、ＩＮＶＩＴＥ２２８を第１端末装置６０に転送する。ＩＮＶＩＴＥ２２８は、ＩＮＶＩＴＥ２２０と同様の内容を含む。
【００４８】
第２端末装置１００は、特定レスポンス２２４を受信する。第２端末装置１００は、特定レスポンス２２４に含まれる第１端末装置６０のローカルアドレスＬ１＋ＬＰ１を送信先として、ＩＮＶＩＴＥ２３０を送信する。ＩＮＶＩＴＥ２３０は、ローカルアドレスＬ１＋ＬＰ１が送信先であるために、第１ＮＡＴルータ５２を経由しない。ＩＮＶＩＴＥ２３０は、第２端末装置１００のＳＩＰＵＲＩと、第２端末装置１００のローカルアドレスＬ２＋ＬＰ２と、ローカル通信機能に対応するＩＮＶＩＴＥであることを示すフラグ２３２と、チャレンジコード２３４とを含む。
【００４９】
第１端末装置６０は、ＩＮＶＩＴＥ２３０を受信する。これにより、第１端末装置６０は、自身宛に電話がかけられたことを知ることができる。第１端末装置６０は、例えば、所定の音を出力させたり、所定の光を発光させたりする。以下では、これらの動作のことを通話要求通知と呼ぶ。通話要求通知が実行されることによって、ユーザは、電話がかけられたことを知ることができる。通話要求通知が実行されている間に、ユーザによって通話開始操作（例えばフックキーの操作）が実行された場合に、第１端末装置６０は、レスポンスコード生成処理を実行する（Ｓ６）。即ち、第１端末装置６０は、自身の秘密鍵Ｊ１（図３の鍵記憶領域７６参照）を利用して、ＩＮＶＩＴＥ２３０に含まれるチャレンジコード２３４を暗号化することによって、レスポンスコード２４０を生成する。次いで、第１端末装置６０は、ＩＮＶＩＴＥ２３０に含まれるローカルアドレスＬ２＋ＬＰ２を送信先として、２００  ＯＫ２３６を送信する。２００  ＯＫ２３６は、ローカルアドレスＬ２＋ＬＰ２が送信先であるために、第１ＮＡＴルータ５２を経由しない。２００  ＯＫ２３６は、ローカル通信機能に対応する２００  ＯＫであることを示すフラグ２３８と、レスポンスコード２４０とを含む。
【００５０】
第２端末装置１００は、２００  ＯＫ２３６を受信する。第２端末装置１００は、上記の特定レスポンス２２４に含まれる公開鍵Ｋ１を利用して、２００  ＯＫ２３６に含まれるレスポンスコード２４０を復号化することによって、復号化データを生成する。次いで、第２端末装置１００は、上記のチャレンジコード２３４と復号化データとが一致するのか否かを判断する判断処理を実行する（Ｓ８）。２つのデータが一致する場合、第２端末装置１００は、ローカルアドレスＬ１＋ＬＰ１を送信先として、ＡＣＫ２４２を送信する。ＡＣＫ２４２は、ローカルアドレスＬ１＋ＬＰ１が送信先であるために、第１ＮＡＴルータ５２を経由しない。ＡＣＫ２４２は、ローカル通信機能に対応するＡＣＫであることを示すフラグ２４４と、第２端末装置１００の公開鍵Ｋ２（図４の鍵記憶領域１１６参照）とを含む。
【００５１】
第１端末装置６０は、ＡＣＫ２４２を受信する。第１端末装置６０は、第２端末装置１００のＳＩＰＵＲＩと、ローカルアドレスＬ２＋ＬＰ２と、公開鍵Ｋ２とが対応づけられている通信情報８２（図３参照）を通信情報記憶領域８０に記憶する記憶処理を実行する（Ｓ１０）。第１端末装置６０がＡＣＫ２４２を受信すると、第１端末装置６０と第２端末装置１００との間でＲＴＰ通信セッションが確立される。このようにして確立されたＲＴＰ通信セッションでは、ローカルアドレスＬ１＋ＬＰ１，Ｌ２＋ＬＰ２を送信先又は送信元としてデータが通信される。即ち、第１ＮＡＴルータ５２を経由せずにデータが通信される。第１端末装置６０は、音声データ通信処理を実行する（Ｓ１２）。即ち、第１端末装置６０は、マイク６６に入力された音声データを第２端末装置１００に送信するととともに、第２端末装置１００からの音声データをスピーカ６８から出力する。同様に、第２端末装置１００も、音声データ通信処理を実行する（Ｓ１４）。
【００５２】
ＲＴＰ通信セッションが確立されることによって、第１端末装置６０と第２端末装置１００との間で電話通信を実行することができる。なお、図６では、第２端末装置１００が第１端末装置６０にＩＮＶＩＴＥを送信する例を示している。第１端末装置６０が第２端末装置１００にＩＮＶＩＴＥを送信する場合でも、図６の例と同様に、ローカルアドレスＬ１＋ＬＰ１，Ｌ２＋ＬＰ２を送信先又は送信元としてデータが通信されるＲＴＰ通信セッションが確立される。なお、第２端末装置１００（又は第１端末装置６０）が第３端末装置１６０にＩＮＶＩＴＥを送信する場合には、ＳＩＰサーバ１０は、Ｓ４の判断処理において否定的に判断する。第３端末装置１６０は、第２端末装置１００と異なるグローバルＩＰアドレスＧ２が割り当てられているからである。この場合、第２端末装置１００と第３端末装置１６０との間には、グローバルアドレスＧ１＋ＧＰ２，Ｇ２＋ＧＰ３を送信先又は送信元としてデータが通信されるＲＴＰ通信セッションが確立される。
【００５３】
続いて、図６で確立されたＲＴＰ通信セッションが切断された後（即ち電話通信が終了した後）に、第１端末装置６０が第２端末装置１００にＩＮＶＩＴＥを送信する処理について説明する。図７は、この処理のシーケンス図を示す。第１端末装置６０のユーザは、第１端末装置６０の操作部（図示省略）を操作することによって、第２端末装置１００のＳＩＰＵＲＩを入力することができる。これにより、第１端末装置６０は、図７に示される処理を開始する。
【００５４】
第１端末装置６０は、ユーザによって入力された第２端末装置１００のＳＩＰＵＲＩを含む通信情報８２（図３参照）が通信情報記憶領域８０に記憶されているのか否かを判断する。ここで肯定的に判断された場合、第１端末装置６０は、通信情報８２に含まれるローカルアドレスＬ２＋ＬＰ２を送信先として、ＩＮＶＩＴＥ２５０を送信する。ＩＮＶＩＴＥ２５０は、第１ＮＡＴルータ５２を経由しない。ＩＮＶＩＴＥ２５０は、第２端末装置１００のＳＩＰＵＲＩと、第１端末装置６０のローカルアドレスＬ１＋ＬＰ１と、ローカル通信機能に対応することを示すフラグ２５２と、チャレンジコード２５４とを含む。
【００５５】
第２端末装置１００は、ＩＮＶＩＴＥ２５０を受信する。第２端末装置１００は、通話要求通知（例えば所定の音の出力）を実行する。通話要求通知が実行されている間に、ユーザによって通話開始操作が実行された場合に、第２端末装置１００は、レスポンスコード生成処理を実行する（Ｓ１６）。即ち、第２端末装置１００は、自身の秘密鍵Ｊ２（図４参照）を利用して、ＩＮＶＩＴＥ２５０に含まれるチャレンジコード２５４を暗号化することによって、レスポンスコード２６０を生成する。次いで、第２端末装置１００は、ＩＮＶＩＴＥ２５０に含まれるローカルアドレスＬ１＋ＬＰ１を送信先として、２００  ＯＫ２５６を送信する。２００  ＯＫ２５６は、第１ＮＡＴルータ５２を経由しない。２００  ＯＫ２５６は、ローカル通信機能に対応することを示すフラグ２５８と、レスポンスコード２６０とを含む。
【００５６】
第１端末装置６０は、２００  ＯＫ２５６を受信する。第１端末装置６０は、通信情報８２に含まれる公開鍵Ｋ２を利用して、２００  ＯＫ２５６に含まれるレスポンスコード２６０を復号化することによって、復号化データを生成する。次いで、第１端末装置６０は、上記のチャレンジコード２５４と復号化データとが一致するのか否かを判断する判断処理を実行する（Ｓ１８）。２つのデータが一致する場合、第１端末装置６０は、ローカルアドレスＬ２＋ＬＰ２を送信先として、ＡＣＫ２６２を送信する。ＡＣＫ２６２は、第１ＮＡＴルータ５２を経由しない。ＡＣＫ２６２は、ローカル通信機能に対応することを示すフラグ２６４と、第１端末装置６０の公開鍵Ｋ１とを含む。
【００５７】
第２端末装置１００は、ＡＣＫ２６２を受信する。第２端末装置１００は、第１端末装置６０のＳＩＰＵＲＩと、ローカルアドレスＬ１＋ＬＰ１と、公開鍵Ｋ１とが対応づけられている通信情報１２２（図４参照）を通信情報記憶領域１２０に記憶する記憶処理を実行する（Ｓ２０）。なお、第２端末装置１００は、上記の図６のＡＣＫ２４２を送信した後に、通信情報１２２を通信情報記憶領域１２０に記憶してもよい。第２端末装置１００がＡＣＫ２６２を受信すると、第１端末装置６０と第２端末装置１００との間でＲＴＰ通信セッションが確立される。このＲＴＰ通信セッションも、ローカルアドレスＬ１＋ＬＰ１，Ｌ２＋ＬＰ２を送信先又は送信元としてデータが通信される。即ち、第１ＮＡＴルータ５２を経由せずにデータが通信される。第１端末装置６０と第２端末装置１００は、音声データ通信処理を実行する（Ｓ２２，Ｓ２４）。
【００５８】
（ＳＩＰサーバのＩＮＶＩＴＥ受信処理）
続いて、ＳＩＰサーバ１０の制御部１２（図２参照）が実行する処理について、詳しく説明する。図８は、制御部１２が実行するＩＮＶＩＴＥ受信処理のフローチャートを示す。図８の処理は、ＩＮＶＩＴＥ（例えば図６のＩＮＶＩＴＥ２２０）が受信されたことをトリガとして開始される。
【００５９】
制御部１２は、受信されたＩＮＶＩＴＥに含まれる送信先のＳＩＰＵＲＩ（例えば図６のＩＮＶＩＴＥ２２０に含まれる「ｓｉｐ：ｔ１＠ｓｅｒｖｅｒ．ｃｏｍ」）が登録データ記憶領域１８（図２参照）に登録されているのか否かを判断する（Ｓ３０）。ここでＮＯの場合、制御部１２は、受信されたＩＮＶＩＴＥの送信元にエラーレスポンスを送信する（Ｓ３２）。この場合、ＩＮＶＩＴＥ受信処理が終了する。
【００６０】
一方において、Ｓ３０でＹＥＳの場合、制御部１２は、受信されたＩＮＶＩＴＥに、ローカル通信機能に対応していることを示すフラグ（例えば図６のフラグ２２２）が含まれているのか否かを判断する（Ｓ３４）。ここでＮＯの場合、Ｓ４２に進み、ＹＥＳの場合、Ｓ３６に進む。Ｓ３６では、制御部１２は、登録データ記憶領域１８を参照することによって、受信されたＩＮＶＩＴＥに含まれる送信先のＳＩＰＵＲＩに対応づけられているフラグ３８（図２参照）がＯＮであるのか否かを判断する。ここでＮＯの場合、Ｓ４２に進み、ＹＥＳの場合、Ｓ３８に進む。
【００６１】
Ｓ３８では、制御部１２は、登録データ記憶領域１８を参照することによって、受信されたＩＮＶＩＴＥに含まれる送信先のＳＩＰＵＲＩに対応づけられているグローバルＩＰアドレス（例えばＧ１）を特定する。次いで、制御部１２は、特定されたグローバルＩＰアドレスと、受信されたＩＮＶＩＴＥに含まれる送信元のグローバルアドレス（例えば図６のＩＮＶＩＴＥ２２０に含まれるＧ１）とが一致するのか否かを判断する。ここでＮＯの場合、Ｓ４２に進み、ＹＥＳの場合、Ｓ４０に進む。
【００６２】
Ｓ４０では、制御部１２は、登録データ記憶領域１８を参照することによって、受信されたＩＮＶＩＴＥに含まれる送信先のＳＩＰＵＲＩに対応づけられているローカルアドレス（例えばＬ１＋ＬＰ１）と公開鍵（例えばＫ１）とを特定する。次いで、制御部１２は、受信されたＩＮＶＩＴＥの送信元に、特定されたローカルアドレスと公開鍵とを含む特定レスポンス（例えば図６の特定レスポンス２２４）を送信する。この場合、ＩＮＶＩＴＥ受信処理が終了する。
【００６３】
Ｓ４２では、制御部１２は、登録データ記憶領域１８を参照することによって、受信されたＩＮＶＩＴＥに含まれる送信先のＳＩＰＵＲＩに対応づけられているグローバルアドレス（例えばＧ１＋ＧＰ１）を特定する。続いて、制御部１２は、特定されたグローバルアドレスを送信先としてＩＮＶＩＴＥを転送する。図８では、この後の処理については図示省略しているが、制御部１２は、転送されたＩＮＶＩＴＥに対するレスポンスである２００  ＯＫが受信された場合には、２００  ＯＫをＩＮＶＩＴＥの送信元に転送する。また、制御部１２は、転送された２００  ＯＫに対するレスポンスであるＡＣＫが受信された場合には、ＡＣＫをＩＮＶＩＴＥの送信先に転送する。ここでの２００  ＯＫ及びＡＣＫは、グローバルアドレスを送信先として送信（転送）される。
【００６４】
（端末装置のＩＮＶＩＴＥ送信処理）
続いて、第２端末装置１００の制御部１０２（図４参照）が実行する処理について、詳しく説明する。なお、第１端末装置６０の制御部６２と第３端末装置の制御部（図示省略）は、第２端末装置１００の制御部１０２と同様の処理を実行する。まず、制御部１０２が実行するＩＮＶＩＴＥ送信処理について説明する。図９〜１１は、ＩＮＶＩＴＥ送信処理のフローチャートを示す。図９〜１１の処理は、ＩＮＶＩＴＥの送信先のＳＩＰＵＲＩがユーザによって入力されたことをトリガとして開始される。
【００６５】
制御部１０２は、ユーザによって入力された送信先のＳＩＰＵＲＩを含む通信情報が通信情報記憶領域１２０（図４参照）に記憶されているのか否かを判断する（Ｓ６０）。ここでＹＥＳの場合、図１１のＳ１２０に進み、ＮＯの場合、Ｓ６２に進む。Ｓ６２では、制御部１０２は、ローカル通信機能に対応していることを示すフラグ（例えば図６のフラグ２２２参照）を含むＩＮＶＩＴＥをＳＩＰサーバ１０に送信する。
【００６６】
制御部１０２は、Ｓ６２で送信されたＩＮＶＩＴＥに対するレスポンスとしてエラーレスポンスが受信されることを監視している（Ｓ６４）。ここでＹＥＳの場合、制御部１０２は、図示省略の表示部にエラーを表示させる（Ｓ６６）。この場合、ＩＮＶＩＴＥ送信処理が終了する。
【００６７】
制御部１０２は、Ｓ６２で送信されたＩＮＶＩＴＥに対するレスポンスとして２００  ＯＫが受信されることを監視している（Ｓ６８）。ここでＹＥＳの場合、制御部１０２は、ＡＣＫをＳＩＰサーバ１０に送信する（Ｓ７０）。この結果、ＩＮＶＩＴＥの送信先と第２端末装置１００との間でＲＴＰ通信セッションが確立される。上述したように、このＲＴＰ通信セッションを確立するために通信される各コマンド（ＩＮＶＩＴＥ、２００  ＯＫ、及び、ＡＣＫ）は、ＳＩＰサーバ１０を経由して通信される。この場合、これらのコマンドは、ＩＮＶＩＴＥの送信先と第２端末装置１００のそれぞれのグローバルアドレスを用いて通信される。この結果、ＩＮＶＩＴＥの送信先と第２端末装置１００のそれぞれのグローバルアドレスを送信先又は送信元としてデータが通信されるＲＴＰ通信セッションが確立される。制御部１０２は、確立されたＲＴＰ通信セッションを利用して、音声データを通信する（Ｓ７２）。この場合、音声データは、第１ＮＡＴルータ５２を経由して通信される。
【００６８】
制御部１０２は、Ｓ６２で送信されたＩＮＶＩＴＥに対するレスポンスとして特定レスポンスが受信されることを監視している（Ｓ７４）。ここでＹＥＳの場合、制御部１０２は、ランダムに数値を取得することによって、チャレンジコードを生成する。次いで、制御部１０２は、特定レスポンスに含まれるローカルアドレスを送信先として、ＩＮＶＩＴＥを送信する（Ｓ７６）。このＩＮＶＩＴＥは、第２端末装置１００のＳＩＰＵＲＩと、ローカル通信機能に対応していることを示すフラグ（例えば図６のフラグ２３２参照）と、チャレンジコードと、第２端末装置１００のローカルアドレスＬ２＋ＬＰ２とを含む。Ｓ７６を終えると、図１０のＳ９０に進む。
【００６９】
制御部１０２は、図９のＳ７６で送信されたＩＮＶＩＴＥに対するレスポンスとしてエラーレスポンスが受信されることを監視している（Ｓ９０）。また、Ｓ９０では、制御部１０２は、Ｓ７６でＩＮＶＩＴＥが送信されてから所定時間が経過することを監視している。Ｓ９０でＹＥＳの場合、Ｓ９２に進む。
【００７０】
Ｓ９２では、制御部１０２は、ローカル通信機能に対応していることを示すフラグを含まないＩＮＶＩＴＥ（フラグ以外については図９のＳ６２で送信されるＩＮＶＩＴＥと同様の内容を含む）をＳＩＰサーバ１０に送信する（Ｓ９２）。制御部１０２は、Ｓ９２で送信されたＩＮＶＩＴＥに対するレスポンスとしてエラーレスポンスが受信されることを監視している（Ｓ９４）。ここでＹＥＳの場合、制御部１０２は、図９のＳ６６に進み、エラーを表示部に表示させる。また、制御部１０２は、Ｓ９２で送信されたＩＮＶＩＴＥに対するレスポンスとして２００  ＯＫが受信されることを監視している（Ｓ９６）。ここでＹＥＳの場合、制御部１０２は、図９のＳ７０に進み、ＡＣＫをＳＩＰサーバ１０に送信する。
【００７１】
制御部１０２は、図９のＳ７６で送信されたＩＮＶＩＴＥに対するレスポンスとして２００  ＯＫが受信されることを監視している（Ｓ９８）。ここでＹＥＳの場合、制御部１０２は、図９のＳ７４で受信された特定レスポンスに含まれる公開鍵を利用して、Ｓ９８で受信された２００  ＯＫに含まれるレスポンスコードを復号化することによって、復号化データを生成する（Ｓ１００）。次いで、制御部１０２は、復号化データと、図９のＳ７６で送信されたチャレンジコードとが一致するのか否かを判断する（Ｓ１０２）。ここでＮＯの場合、制御部１０２は、Ｓ９２に進み、ローカル通信機能に対応していることを示すフラグを含まないＩＮＶＩＴＥをＳＩＰサーバ１０に送信する。
【００７２】
一方において、Ｓ１０２でＹＥＳの場合、制御部１０２は、図９のＳ７４で受信された特定レスポンスに含まれるローカルアドレスを送信先として、第２端末装置１００の公開鍵Ｋ２を含むＡＣＫを送信する（Ｓ１０４）。次いで、制御部１０２は、ユーザによって入力された送信先のＳＩＰＵＲＩと、図９のＳ７４で受信された特定レスポンスに含まれるローカルアドレスと、その特定レスポンスに含まれる公開鍵とを含む通信情報を通信情報記憶領域１２０（図４参照）に記憶する（Ｓ１０６）。Ｓ１０４でＡＣＫを送信することによって、ＩＮＶＩＴＥの送信先と第２端末装置１００との間でＲＴＰ通信セッションが確立される。ＩＮＶＩＴＥ、２００  ＯＫ、及び、ＡＣＫが、ローカルアドレスを用いて通信された場合、ＩＮＶＩＴＥの送信先と第２端末装置１００のそれぞれのローカルアドレスを送信先又は送信元としてデータが通信されるＲＴＰ通信セッションが確立される。制御部１０２は、確立されたＲＴＰ通信セッションを利用して、音声データを通信する（Ｓ１０８）。この場合、音声データは、第１ＮＡＴルータ５２を経由せずに通信される。
【００７３】
上述したように、図９のＳ６０でＹＥＳの場合（ユーザによって入力された送信先のＳＩＰＵＲＩが通信情報記憶領域１２０（図４参照）に記憶されている場合）、図１１のＳ１２０に進む。Ｓ１２０では、制御部１０２は、通信情報記憶領域１２０を参照することによって、ユーザによって入力された送信先のＳＩＰＵＲＩに対応づけられているローカルアドレスを特定する。また、制御部１０２は、チャレンジコードを生成する。次いで、制御部１０２は、特定されたローカルアドレスを送信先として、ＩＮＶＩＴＥを送信する。このＩＮＶＩＴＥは、第２端末装置１００のＳＩＰＵＲＩと、ローカル通信機能に対応していることを示すフラグと、チャレンジコードと、第２端末装置１００のローカルアドレスＬ２＋ＬＰ２とを含む。
【００７４】
制御部１０２は、Ｓ１２０で送信されたＩＮＶＩＴＥに対するレスポンスとしてエラーレスポンスが受信されることを監視している（Ｓ１２２）。また、Ｓ１２２では、制御部１０２は、Ｓ１２０でＩＮＶＩＴＥが送信されてから所定時間が経過することを監視している。Ｓ１２２でＹＥＳの場合、制御部１０２は、図９のＳ６２に進み、ローカル通信機能に対応していることを示すフラグを含むＩＮＶＩＴＥをＳＩＰサーバ１０に送信する。
【００７５】
制御部１０２は、Ｓ１２０で送信されたＩＮＶＩＴＥに対するレスポンスとして２００  ＯＫが受信されることを監視している（Ｓ１２４）。ここでＹＥＳの場合、制御部１０２は、ユーザによって入力された送信先のＳＩＰＵＲＩを含む通信情報の公開鍵（例えばＫ１）を利用して、Ｓ１２４で受信された２００  ＯＫに含まれるレスポンスコードを復号化することによって、復号化データを生成する（Ｓ１２６）。制御部１０２は、復号化データと、Ｓ１２０で送信されたチャレンジコードとが一致するのか否かを判断する（Ｓ１２８）。ここでＮＯの場合、制御部１０２は、図９のＳ６２に進み、ローカル通信機能に対応していることを示すフラグを含むＩＮＶＩＴＥをＳＩＰサーバ１０に送信する。
【００７６】
一方において、Ｓ１２８でＹＥＳの場合、制御部１０２は、Ｓ１２０で特定されたローカルアドレス（ユーザによって入力された送信先のＳＩＰＵＲＩに対応づけられているローカルアドレス）を送信先として、第２端末装置１００の公開鍵Ｋ２を含むＡＣＫを送信する（Ｓ１３０）。Ｓ１３０でＡＣＫを送信することによって、ＩＮＶＩＴＥの送信先と第２端末装置１００との間でＲＴＰ通信セッションが確立される。このＲＴＰ通信セッションでは、ＩＮＶＩＴＥの送信先と第２端末装置１００のそれぞれのローカルアドレスを送信先又は送信元としてデータが通信される。制御部１０２は、確立されたＲＴＰ通信セッションを利用して、音声データを通信する（Ｓ１３２）。この場合、音声データは、第１ＮＡＴルータ５２を経由せずに通信される。
【００７７】
（端末装置のＩＮＶＩＴＥ受信処理）
続いて、第２端末装置１００の制御部１０２が実行するＩＮＶＩＴＥ受信処理について説明する。図１２は、ＩＮＶＩＴＥ受信処理のフローチャートを示す。図１２の処理は、ＩＮＶＩＴＥが受信されたことをトリガとして開始される。
【００７８】
制御部１０２は、受信されたＩＮＶＩＴＥに、ローカル通信機能に対応していることを示すフラグとチャレンジコードとが含まれるのか否かを判断する（Ｓ１５０）。即ち、制御部１０２は、例えば、第１端末装置６０が図９のＳ７６又は図１１のＳ１２０の処理を実行することによって、第２端末装置１００のローカルアドレスＬ２＋ＬＰ２を送信先として送信したＩＮＶＩＴＥが受信されたのか否かを判断する。ここでＹＥＳの場合、Ｓ１６２に進み、ＮＯの場合、Ｓ１５２に進む。
【００７９】
Ｓ１５２では、制御部１０２は、受信されたＩＮＶＩＴＥが、ＳＩＰサーバ１０から送信されたものであるのか否かを判断する。ここでＮＯの場合、制御部１０２は、受信されたＩＮＶＩＴＥの送信元にエラーレスポンスを送信する（Ｓ１５４）。この場合、ＩＮＶＩＴＥ受信処理が終了する。
【００８０】
フローチャートには示していないが、Ｓ１５２でＹＥＳの場合、制御部１０２は、通話要求通知を実行する。ユーザによって通話開始操作が実行された場合、制御部１０２は、２００  ＯＫをＳＩＰサーバ１０に送信する（Ｓ１５６）。ここで送信された２００  ＯＫは、ＳＩＰサーバ１０によってＩＮＶＩＴＥの送信元（例えば第３端末装置１６０）に転送される。ＩＮＶＩＴＥの送信元は、ＡＣＫをＳＩＰサーバ１０に送信する（図９のＳ７０参照）。ここで送信されたＡＣＫは、ＳＩＰサーバ１０によって第２端末装置１００に転送される。第２端末装置１００は、ＡＣＫを受信する（Ｓ１５８）。この結果、ＩＮＶＩＴＥの送信元と第２端末装置１００との間でＲＴＰ通信セッションが確立される。このＲＴＰ通信セッションでは、ＩＮＶＩＴＥの送信元と第２端末装置１００のそれぞれのグローバルアドレスを送信先又は送信元としてデータが通信される。制御部１０２は、確立されたＲＴＰ通信セッションを利用して、音声データを通信する（Ｓ１６０）。この場合、音声データは、第１ＮＡＴルータ５２を経由して通信される。
【００８１】
フローチャートには示していないが、Ｓ１５０でＹＥＳの場合、制御部１０２は、通話要求通知を実行する。ユーザによって通話開始操作が実行された場合、制御部１０２は、秘密鍵Ｊ２（図４参照）を利用して、受信されたＩＮＶＩＴＥに含まれるチャレンジコードを暗号化することによって、レスポンスコードを生成する（Ｓ１６２）。受信されたＩＮＶＩＴＥには、ＩＮＶＩＴＥの送信元（例えば第１端末装置６０）のローカルアドレスが含まれている。制御部１０２は、ＩＮＶＩＴＥの送信元のローカルアドレスを送信先として、Ｓ１６２で生成されたレスポンスコードを含む２００  ＯＫを送信する（Ｓ１６４）。この結果、ＩＮＶＩＴＥの送信元は、自身の公開鍵を含むＡＣＫを第２端末装置１００に送信する（図１０のＳ１０４、図１１のＳ１３０参照）。第２端末装置１００は、ＡＣＫを受信する（Ｓ１６６）。
【００８２】
次いで、制御部１０２は、ＩＮＶＩＴＥの送信元（例えば第１端末装置６０）のＳＩＰＵＲＩと、ＩＮＶＩＴＥの送信元のローカルアドレスと、Ｓ１６６で受信されたＡＣＫに含まれる公開鍵とが対応づけられている通信情報を通信情報記憶領域１２０に記憶する（Ｓ１６８）。Ｓ１６６でＡＣＫが受信されると、ＩＮＶＩＴＥの送信元と第２端末装置１００との間でＲＴＰ通信セッションが確立される。このＲＴＰ通信セッションでは、ＩＮＶＩＴＥの送信元と第２端末装置１００のそれぞれのローカルアドレスを送信先又は送信元としてデータが通信される。制御部１０２は、確立されたＲＴＰ通信セッションを利用して、音声データを通信する（Ｓ１７０）。この場合、音声データは、第１ＮＡＴルータ５２を経由せずに通信される。
【００８３】
（端末装置の通信情報管理処理）
続いて、制御部１０２が実行する通信情報管理処理（フローチャートは図示省略している）について説明する。制御部１０２は、通信情報記憶領域１２０に記憶されている各通信情報（例えば通信情報１２２）について、当該通信情報が記憶されてからの経過時間を管理している。制御部１０２は、経過時間が予め決められている所定時間に達した通信情報が存在する場合に、その通信情報を通信情報記憶領域１２０から削除する。これにより、多数の通信情報が通信情報記憶領域１２０に記憶され続けて、記憶部１１０の残存メモリ量を圧迫することを抑制することができる。
【００８４】
本実施例の電話ネットワークシステム２について詳しく説明した。本実施例によると、第２端末装置１００は、第１端末装置６０のグローバルＩＰアドレスＧ１と第２端末装置１００のグローバルＩＰアドレスＧ１とが一致する場合に、第１端末装置６０のローカルアドレスＬ１＋ＬＰ１と公開鍵Ｋ１とをＳＩＰサーバ１０から取得する。第２端末装置１００は、取得されたローカルアドレスＬ１＋ＬＰ１を利用して通信すると、実際に第１端末装置６０と通信することができるのか否かを判断するために、取得された公開鍵Ｋ１を利用してチャレンジ認証を実行する（図１０のＳ１０２）。チャレンジ認証が成功した場合に、第２端末装置１００は、取得されたローカルアドレスＬ１＋ＬＰ１を送信先としてＡＣＫを送信する（図１０のＳ１０４）。この結果、ＲＴＰ通信セッションが確立される。ここで確立されたＲＴＰ通信セッションでは、第１端末装置６０と第２端末装置１００は、それぞれのローカルアドレスＬ１＋ＬＰ１，Ｌ２＋ＬＰ２を用いて、音声データを通信することができる。第１ＮＡＴルータ５２を経由せずに音声データを通信することができる。第１ＮＡＴルータ５２の処理負荷を低減させることができる。また、第１ＮＡＴルータ５２を介在させずに通信することができるために、第１端末装置６０と第２端末装置１００との間の通信の遅延を低減することができる（換言すると端末間の通信を高速化することができる）。
【００８５】
また、本実施例によると、第１端末装置６０のグローバルＩＰアドレスＧ１と第２端末装置１００のグローバルＩＰアドレスＧ１とが一致する場合、ＳＩＰサーバ１０は、２００  ＯＫ及びＡＣＫを転送する処理を実行する必要がない。ＳＩＰサーバ１０の処理負荷も低減させることができる。
【００８６】
また、仮に、第１端末装置６０のグローバルＩＰアドレスと第２端末装置１００の第２グローバルＩＰアドレスとが一致しない場合に、ＳＩＰサーバ１０は、第２端末装置１００から送信されるＩＮＶＩＴＥを第１端末装置６０に転送する。この結果、第１端末装置６０と第２端末装置１００との間では、２００  ＯＫ及びＡＣＫがＳＩＰサーバ１０を介して通信される（図９のＳ６８，Ｓ７０）。また、チャレンジ認証に失敗した場合も、ＩＮＶＩＴＥ、２００  ＯＫ、及びＡＣＫがＳＩＰサーバ１０を介して通信される（図１０のＳ９２，Ｓ９６，図９のＳ７０）。この結果、ＲＴＰ通信セッションが確立される。ここで確立されたＲＴＰ通信セッションでは、第１端末装置６０と第２端末装置１００は、それぞれのグローバルアドレスを用いて、音声データを通信することができる。
【００８７】
また、第１端末装置６０と第２端末装置１００は、それぞれのローカルアドレスＬ１＋ＬＰ１，Ｌ２＋ＬＰ２を利用して通信した場合に、相手の通信情報８２，１２２（図３及び図４参照）を記憶する。通信情報８２，１２２は、所定期間継続して記憶される。例えば、第２端末装置１００は、第１端末装置６０と再度通信することがユーザによって指示された際に、通信情報１２２を利用して（ローカルアドレスＬ１＋ＬＰ１を利用して）、第１端末装置６０と通信することができる。同様に、第１端末装置６０は、第２端末装置１００と再度通信することがユーザによって指示された際に、通信情報８２を利用して（ローカルアドレスＬ２＋ＬＰ２を利用して）、第２端末装置１００と通信することができる。第１ＮＡＴルータ５２の処理負荷をより低減させることができる。なお、この場合は、ＳＩＰサーバ１０を全く介さないことから（ＩＮＶＩＴＥすらＳＩＰサーバに送信されない）、ＳＩＰサーバ１０は処理を実行する必要がない。
【００８８】
なお、第２端末装置１００は、チャレンジ認証が成功した場合に、自身の公開鍵Ｋ２を含むＡＣＫを第１端末装置６０に送信する（図１０のＳ１０４）。このために、第１端末装置６０は、第２端末装置１００と再度通信することをユーザによって指示された際に、公開鍵Ｋ２を利用してチャレンジ認証を実行することができる。
【００８９】
以上の説明から分かるように、本実施例の第１端末装置６０、第２端末装置１００、ＳＩＰサーバ１０が、それぞれ、本発明の第１端末装置、第２端末装置、接続管理サーバに対応する。図９のＳ７４において特定レスポンスを受信する処理が、本発明のローカルアドレス取得部が実行する処理に対応する。図１０のＳ９０、Ｓ９８、図１１のＳ１２０、Ｓ１２４においてレスポンスの受信を監視する処理、図１０のＳ１００、図１１のＳ１２６においてレスポンスコードを復号化する処理、及び、図１０のＳ１０２、図１１のＳ１２８において復号化データとチャレンジデータとを比較する処理が、本発明の判断部が実行する処理に対応する。図１０のＳ１０８においてローカルアドレスを用いて音声データを通信する処理が、本発明の目的データ通信部（第１目的データ通信部）が第１ローカルＩＰアドレスを用いて第１データを通信する処理に対応する。
【００９０】
また、図１０のＳ９６においてＳＩＰサーバ１０から２００  ＯＫを受信する処理が、本発明のグローバルアドレス取得部が実行する処理に対応する。図９のＳ７２においてグローバルアドレスを用いて音声データを通信する処理が、本発明の目的データ通信部（第２目的データ通信部）が第１グローバルＩＰアドレスを用いて第２データを通信する処理に対応する。さらに、図９のＳ７６においてチャレンジコードを送信し、図１０のＳ９８において２００  ＯＫを受信する処理が、本発明の第１チャレンジデータ通信部が実行する処理に対応する。また、図１０のＳ１０６において通信情報を記憶する処理が、本発明の記憶制御部が実行する処理に対応する。図１０のＳ１３２においてローカルアドレスを用いて音声データを通信する処理が、本発明の目的データ通信部が第１ローカルＩＰアドレスを再度用いて第３データを通信する処理に対応する。
【００９１】
また、図１０のＳ１０４において公開鍵を含むＡＣＫを送信する処理が、本発明の公開鍵送信部が実行する処理に対応する。図１２のＳ１５０においてチャレンジコードを受信する処理、Ｓ１６２においてレスポンスコードを生成する処理、及び、Ｓ１６４においてレスポンスコードを送信する処理が、本発明の第２チャレンジデータ通信部が実行する処理に対応する。また、図１２のＳ１７０においてローカルアドレスを用いて音声データを通信する処理が、本発明の目的データ通信部が第２ローカルＩＰアドレスを用いて第４データを通信する処理に対応する。また、図２の制御部１２が本発明のサーバ側記憶制御部とサーバ側判断部とサーバ側送信部とサーバ側転送部に対応し、登録データ記憶領域１８がサーバ側記憶部に対応する。
【００９２】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００９３】
（１）上記の実施例の技術は、電話通信以外の通信システムにも適用することができる。例えば、ＦＡＸデータの通信システム、映像データ及び音声データの通信システムにも適用することができる。
【００９４】
（２）ＳＩＰサーバ１０とＳＴＵＮサーバ４０は、一体に構成されていてもよい。また、実施例に記載された他の２以上のデバイス（例えば第１ＮＡＴルータ５２とＳＴＵＮサーバ４０）が一体に構成されてもよい。
【００９５】
（３）上記の実施例では、第２端末装置１００から第３端末装置１６０にＩＮＶＩＴＥを送信する場合に、ＳＩＰサーバ１０が、第２端末装置１００のグローバルＩＰアドレスＧ１と、第３端末装置１６０のグローバルＩＰアドレスＧ２とが一致しないと判断する。この場合、ＳＩＰサーバ１０は、ＩＮＶＩＴＥを転送する。２００  ＯＫ及びＡＣＫもＳＩＰサーバ１０を経由して通信される。この形態に代えて、ＳＩＰサーバ１０は、第３端末装置１６０のグローバルアドレスＧ２＋ＧＰ３を第２端末装置１００に送信してもよい。この場合、第２端末装置１００は、第３端末装置１６０のグローバルアドレスＧ２＋ＧＰ３を送信先として、ＩＮＶＩＴＥを送信してもよい。即ち、第２端末装置１００は、ＳＩＰサーバ１０を経由せずに、第３端末装置１６０にＩＮＶＩＴＥを送信してもよい。この場合、２００  ＯＫ及びＡＣＫもＳＩＰサーバ１０を経由せずに通信されてもよい。本変形例によると、ＳＩＰサーバ１０の処理負荷を低減させることができる。
【００９６】
（４）上記の実施例では、各端末装置６０，１００，１６０は、自身のグローバルアドレスをＳＴＵＮサーバ４０に問い合わせする。しかしながら、各端末装置６０，１００，１６０は、ＵＰｎＰを利用して、自身のグローバルアドレスをＮＡＴルータ５２，１５２に問い合わせてもよい。
【００９７】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００９８】
１０：ＳＩＰサーバ、４０：ＳＴＵＮサーバ、５２：第１ＮＡＴルータ、６０：第１端末装置、１００：第２端末装置、Ｇ１，Ｇ２：グローバルＩＰアドレス、ＧＰ１〜ＧＰ３：グローバルポート番号、Ｌ１〜Ｌ３：ローカルＩＰアドレス、ＬＰ１〜ＬＰ３：ローカルポート番号、Ｊ１，Ｊ２：秘密鍵、Ｋ１〜Ｋ３：公開鍵
【図１】
2010212792.tif 000003
【図２】
2010212792.tif 000004
【図３】
2010212792.tif 000005
【図４】
2010212792.tif 000006
【図５】
2010212792.tif 000007
【図６】
2010212792.tif 000008
【図７】
2010212792.tif 000009
【図８】
2010212792.tif 000010
【図９】
2010212792.tif 000011
【図１０】
2010212792.tif 000012
【図１１】
2010212792.tif 000013
【図１２】
2010212792.tif 000014