(57)【要約】【課題】内線側端末と、UNI接続された外線側端末との通信において、中継サーバを用いずにSIPの呼制御とメディアストリームデータとにおいてNAT変換を行う技術を提供する。【解決手段】NAT変換プログラム２は、コンピュータを、内線端末１からＩＰ網NWへの送信情報の発信先を、レジストラに登録されるＩＰアドレスへ変換してからＩＰ網NWへ送信し、ＩＰ網NWから、登録されたＩＰアドレスへの送信情報の送信先を逆変換してから内線端末１へ送信するアドレス変換手段、および、ポート番号を含むメディア情報として内線側の情報と外線側の情報とを取得するSIP制御用スレッド、セッション確立後に外線側端末から内線端末１へのマルチメディアデータを中継受信する受信用スレッド、セッション確立後に内線端末１から外線側端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段として機能させる。【選択図】図１
2010011120.tif 000002
【特許請求の範囲】
【請求項１】
第１のＩＰアドレスが付与された内線端末と、その外線側のＩＰ網への接続インタフェースがＵＮＩ（User-Network Interface）である第２のＩＰアドレスが付与された外線側ネットワーク端末との間において、ＳＩＰ（Session Initiation Protocol）の呼制御で用いられるアドレスのＮＡＴ変換（Network Address Translation）と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのＮＡＴ変換とを行うＮＡＴ変換装置であって、
前記内線端末から外線側へ送信される情報の発信先を、前記ＩＰ網に含まれるＳＩＰサーバへ登録されるＩＰアドレスへと変換し、前記発信先が変換された情報を前記ＩＰ網へ送信すると共に、前記ＩＰ網から前記登録されたＩＰアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段と、
前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うＳＩＰ制御用スレッドと、ＳＩＰセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッドと、ＳＩＰセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段と、
を備えることを特徴とするＮＡＴ変換装置。
【請求項２】
前記セッション制御手段は、前記ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたＩＰアドレスまたはポート番号に対応して、前記ＳＩＰ制御用スレッドを新たにＳＩＰ制御用新規スレッドとして作成し、作成された前記ＳＩＰ制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記ＳＩＰ制御用スレッドを破棄する、
ことを特徴とする請求項１に記載のＮＡＴ変換装置。
【請求項３】
第１のＩＰアドレスが付与された内線端末と、その外線側のＩＰ網への接続インタフェースがＵＮＩである第２のＩＰアドレスが付与された外線側ネットワーク端末との間において、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換と、両端末の間で送受信されるマルチメディアデータのＮＡＴ変換とを行うために、コンピュータを、
前記内線端末から外線側へ送信される情報の発信先を、前記ＩＰ網に含まれるＳＩＰサーバへ登録されるＩＰアドレスへと変換し、前記発信先が変換された情報を前記ＩＰ網へ送信すると共に、前記ＩＰ網から前記登録されたＩＰアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段、
前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うＳＩＰ制御用スレッド、ＳＩＰセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッド、ＳＩＰセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段、
として機能させることを特徴とするＮＡＴ変換プログラム。
【請求項４】
前記セッション制御手段は、前記ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたＩＰアドレスまたはポート番号に対応して、前記ＳＩＰ制御用スレッドを新たにＳＩＰ制御用新規スレッドとして作成し、作成された前記ＳＩＰ制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記ＳＩＰ制御用スレッドを破棄する、
ことを特徴とする請求項３に記載のＮＡＴ変換プログラム。
【請求項５】
第１のＩＰアドレスが付与された内線端末と、その外線側のＩＰ網への接続インタフェースがＵＮＩである第２のＩＰアドレスが付与された外線側ネットワーク端末との間において、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換と、両端末の間で送受信されるマルチメディアデータのＮＡＴ変換とを行うために、コンピュータを、
前記内線端末から外線側のＩＰ網を介してＳＩＰサーバへ送信されるＳＩＰメッセージの発信先を、前記ＳＩＰサーバへ登録されるＩＰアドレスへと変換し、前記発信先が変換されたＳＩＰメッセージを前記ＳＩＰサーバへ送信すると共に、前記ＳＩＰサーバから前記登録されたＩＰアドレスへ送信されるＳＩＰメッセージの送信先を逆変換し、前記送信先が逆変換されたＳＩＰメッセージを前記内線端末へ送信するアドレス変換手段、
前記内線端末から前記外線側ネットワーク端末へ送信されるＩＮＶＩＴＥメッセージの発信先を、前記登録されたＩＰアドレスへと変換すると共に、前記ＩＮＶＩＴＥメッセージで指定されたポート番号を変換し、変換前後のポート番号の対応付けを前記変換されたＩＰアドレスに関連付けて保持することによりＳＩＰセッションを確立するセッション制御手段、
前記ＩＰ網から前記登録されたＩＰアドレスへ送信される応答メッセージを受信し、前記受信した応答メッセージの送信先を逆変換し、前記送信先が逆変換された応答メッセージを前記内線端末へ送信すると共に、前記ポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うセッション応答手段、
前記ＳＩＰセッション確立後に、前記外線側ネットワーク端末から前記登録されたＩＰアドレスおよび前記確立されたＳＩＰセッションにより指定されたポート番号へ送信されるマルチメディアデータを受信して前記内線端末に送信する変更先アドレス用メディア応答手段、
前記ＳＩＰセッション確立後に、前記内線端末から前記外線側ネットワーク端末へ送信されるマルチメディアデータを受信し、その発信先を前記登録されたＩＰアドレスおよび前記確立されたＳＩＰセッションにより変更されたポート番号へと変換し、前記発信先が変換されたマルチメディアデータを前記外線側ネットワーク端末に送信する変更元アドレス用メディア応答手段、
として機能させることを特徴とするＮＡＴ変換プログラム。
【請求項６】
前記セッション制御手段は、
スレッドとして前記セッション応答手段を作成し、前記作成したセッション応答手段から、スレッドとして前記変更先アドレス用メディア応答手段および前記変更元アドレス用メディア応答手段を作成し、前記ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたＩＰアドレスまたはポート番号に対応して、前記セッション応答手段を新たに新規スレッドとして作成し、作成された前記新規スレッドが端末間の新たなネゴシエーションを行った後に、変更される以前に作成された前記スレッドとしての前記セッション応答手段を破棄する、
ことを特徴とする請求項５に記載のＮＡＴ変換プログラム。
【請求項７】
請求項３ないし請求項６のいずれか一項に記載のＮＡＴ変換プログラムであって、
前記内線端末の第１のＩＰアドレスの変換先としてのＩＰアドレスを前記ＳＩＰサーバへ登録するアドレス登録手段、前記ＳＩＰサーバへ登録されたＩＰアドレスを発信先ＵＲＩ情報として記述したＩＮＶＩＴＥメッセージを作成するセッション要求手段、前記作成されたＩＮＶＩＴＥメッセージに記述された発信先ＵＲＩ情報を、当該ＩＮＶＩＴＥメッセージのヘッダ部に拡張ヘッダとして登録するＳＩＰ制御手段として機能するＳＩＰ処理プログラムとの間でプログラム間通信を行い、
前記ＳＩＰ処理プログラムから受信した前記ＩＮＶＩＴＥメッセージから前記拡張ヘッダを取り出し、前記拡張ヘッダに登録された発信先ＵＲＩ情報を、前記ＩＮＶＩＴＥメッセージ以降の前記ＩＰ網に対するＳＩＰメッセージにおける送信元アドレスとして記述する、
ことを特徴とするＮＡＴ変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＮＩ（User-Network Interface）接続におけるＮＡＴ変換（Network Address Translation）装置およびＮＡＴ変換プログラムに係り、特に、ＳＩＰ（Session Initiation Protocol）を利用した端末間の通信制御サービスにおいて、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換とマルチメディアデータで用いられるアドレスのＮＡＴ変換とを提供するＮＡＴ変換装置およびＮＡＴ変換プログラムに関するものである。
【背景技術】
【０００２】
プライドート（内線側）ネットワークの端末（内線側ネットワーク端末）と、外線側ネットワークの端末（外線側ネットワーク端末）との通信においては、一般に、端末間のセッション制御についてはＳＩＰに基づいて行われ、音声などのマルチメディアデータの送受信についてはエンド端末間でＲＴＰ（Real-time Transport Protocol）に基づいて行われる。ここで、ＳＩＰは、ＩＰ（Internet Protocol）に基づいた通信により、セッション制御を行うためのプロトコルであり、ＲＴＰは、音声や映像などのメディアを、ＩＰによりリアルタイムに伝送するためのプロトコルである。以下では、マルチメディアデータについて、ＲＴＰ／ＲＴＣＰ（Real-time Transport Control Protocol）によって送受信が行われるデータストリームのことをメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）と表記する。
【０００３】
内線側ネットワーク端末と、外線側ネットワーク端末との通信においては、例えば、次の３つの課題がある。
（課題１）内線側ネットワークのプライベートなＩＰアドレスを割り当てられた端末は、グローバルＩＰアドレスに変換することなしでは外線側ネットワーク端末と接続することができない（ＮＡＴ越えの問題）。
（課題２）外線側ネットワーク端末のネットワークヘの接続インタフェースがＵＮＩ（ユーザの利用する端末機器とネットワークとを接続するためのインタフェース）の場合（一般のＩＰ電話加入者がネットワークに接続する形態と同一の場合）には、外線側ネットワーク端末および内線側ネットワーク端末には、それぞれ、ＳＩＰの呼制御で用いられるＳＩＰメッセージ（ＳＩＰ電文）と共にメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）が同一ＬＡＮ（Local Area Network）上に流れる。そのため、ＳＩＰメッセージのヘッダ部のデータと、ボディ部のＳＤＰ（Session Description Protocol）で記述されたデータとに対してそれぞれ内線側ネットワーク内で割り当てられたプライベートなＩＰアドレスおよびポート番号を、外線側ネットワークに対するＩＰアドレスおよびポート番号へと透過的に変換する必要がある。
（課題３）ＳＩＰとメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）との両方の制御を考慮すると、ポート番号については、呼確立時のポート番号が、メディアストリームデータ（ＲＴＰ／ＲＴＣＰ）の送受信時においても維持され続けるとは限らず、メディア変更により変わる場合がある。つまり、呼確立時のポート番号（アドレス）は不変であるとは言えない。そのため、呼確立時のポート番号を、呼確立以降、動的に変換する仕組みが必要となっている。
【０００４】
このような課題を解決するものとして、従来、例えば、次の４つの方法が知られている。
１）ＵＰｎＰ−ＩＧＤ（Universal Plug and Play−Internet Gateway Device）を利用する方法（例えば、特許文献１、特許文献２参照）。
２）ＳＴＵＮ（Simple Traversal of UDP Through NATs）を利用する方法（非特許文献１参照）。
３）ＴＵＲＮ（Traversal Using Relay NAT）を利用する方法（非特許文献２参照）。
４）トランザクションやダイアログ状態や変換アドレスの管理を工夫する方法（特許文献３参照）。
【特許文献１】特開２００４−２５４０１０号公報
【特許文献２】特開２００７−４３３７４号公報
【特許文献３】特開２００５−１９８１５６号公報
【非特許文献１】J. Rosenberg, J. Weinberger, ”STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)”, RFC3489, IETF, (2003)
【非特許文献２】J. Rosenberg, R. Mahy, and C. Huitema, "Traversal using relay NAT (TURN)"， Internet-Draft, IETF, (2005)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法には、例えば、次の４つの問題がある。
１）外部に、グローバルなＩＰアドレスを取得するための中継サーバを必要とする。
２）ＳＩＰ、ＲＴＰ、ＲＴＣＰ用にそれぞれＩＰアドレスを取得する必要がある。
３）ＩＰアドレス取得のためのプロトコルシーケンスを端末側プログラムで実装する必要がある。
４）中継サーバを利用するクライアントが増えるほど、その中継サーバの負荷が高くなり、メディアストリームデータ（ＲＴＰ／ＲＴＣＰ）の遅延や損失の恐れがある。
【０００６】
そこで、本発明では、前記した問題を解決し、内線側ネットワーク端末と、ネットワークの接続インタフェースがＵＮＩである外線側ネットワー端末との通信において、外線側にグローバルなＩＰアドレスを取得するための中継サーバを用いることなく、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換とメディアストリームデータで用いられるアドレスのＮＡＴ変換とを行うことができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、前記目的を達成するために創案されたものであり、本発明のうち請求項１に記載のＮＡＴ変換装置は、第１のＩＰアドレスが付与された内線端末と、その外線側のＩＰ網への接続インタフェースがＵＮＩである第２のＩＰアドレスが付与された外線側ネットワーク端末との間において、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのＮＡＴ変換とを行うＮＡＴ変換装置であって、前記内線端末から外線側へ送信される情報の発信先を、前記ＩＰ網に含まれるＳＩＰサーバへ登録されるＩＰアドレスへと変換し、前記発信先が変換された情報を前記ＩＰ網へ送信すると共に、前記ＩＰ網から前記登録されたＩＰアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段と、前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うＳＩＰ制御用スレッドと、ＳＩＰセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッドと、ＳＩＰセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段と、を備えることを特徴とする。
【０００８】
また、前記課題を解決するために、請求項３に記載のＮＡＴ変換プログラムは、第１のＩＰアドレスが付与された内線端末と、その外線側のＩＰ網への接続インタフェースがＵＮＩである第２のＩＰアドレスが付与された外線側ネットワーク端末との間において、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのＮＡＴ変換とを行うために、コンピュータを、前記内線端末から外線側へ送信される情報の発信先を、前記ＩＰ網に含まれるＳＩＰサーバへ登録されるＩＰアドレスへと変換し、前記発信先が変換された情報を前記ＩＰ網へ送信すると共に、前記ＩＰ網から前記登録されたＩＰアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段、前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うＳＩＰ制御用スレッド、ＳＩＰセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッド、ＳＩＰセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段として機能させることを特徴とする。
【０００９】
請求項１に記載のＮＡＴ変換装置、または、請求項３に記載のＮＡＴ変換プログラムによれば、アドレス変換手段によって、内線端末から外線側へ送信される情報の発信先をＳＩＰサーバへ登録されるＩＰアドレスへと変換してから、発信先が変換された情報をＩＰ網へ送信する。ここで、ＳＩＰサーバへ登録されるＩＰアドレスは、重複しなければ、登録時に決定してもよいし、事前に決定しておいてもよい。また、ＮＡＴ変換装置またはＮＡＴ変換プログラムは、アドレス変換手段によって、ＩＰ網から、登録されたＩＰアドレスへ送信される情報の送信先を逆に第１のＩＰアドレスへと変換してから内線端末へ送信する。そして、ＮＡＴ変換装置またはＮＡＴ変換プログラムは、セッション制御手段によって、ＳＩＰ制御用スレッドと、マルチメディアデータの受信用スレッドと、マルチメディアデータの送信用スレッドとを個別に作成する。ここで、ＳＩＰ制御用スレッドは、ＳＩＰセッションを確立する制御を行うときに送受信されるＩＮＶＩＴＥメッセージとその応答メッセージとを中継することで、ＳＩＰセッション確立後にマルチメディアデータを送受信するための内線端末用のメディア情報と、外線側ネットワーク端末用のメディア情報とを取得することができる。そして、外線側から内線側へ送られるマルチメディアデータの受信用スレッドと、内線側から外線側へ送られるマルチメディアデータの送信用スレッドとは、ＳＩＰセッション確立後に、ＳＩＰ制御用スレッドの制御の下にそれぞれ個別に機能する。したがって、ＮＡＴ変換装置またはＮＡＴ変換プログラムは、外線側にグローバルなＩＰアドレスを取得するための中継サーバを用いることなく、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換とメディアストリームデータで用いられるアドレスのＮＡＴ変換とを行うことができる。
【００１０】
また、請求項２に記載のＮＡＴ変換装置は、請求項１に記載のＮＡＴ変換装置において、前記セッション制御手段が、前記ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたＩＰアドレスまたはポート番号に対応して、前記ＳＩＰ制御用スレッドを新たにＳＩＰ制御用新規スレッドとして作成し、作成された前記ＳＩＰ制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記ＳＩＰ制御用スレッドを破棄することを特徴とする。
【００１１】
また、請求項４に記載のＮＡＴ変換プログラムは、請求項３に記載のＮＡＴ変換プログラムにおいて、前記セッション制御手段が、前記ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたＩＰアドレスまたはポート番号に対応して、前記ＳＩＰ制御用スレッドを新たにＳＩＰ制御用新規スレッドとして作成し、作成された前記ＳＩＰ制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記ＳＩＰ制御用スレッドを破棄することを特徴とする。
【００１２】
請求項２に記載のＮＡＴ変換装置、または、請求項４に記載のＮＡＴ変換プログラムによれば、ＮＡＴ変換装置またはＮＡＴ変換プログラムでは、ＳＩＰセッション確立後において、セッション制御手段が、ＳＩＰメッセージのＳＤＰデータを監視することでメディア変更がなされたか否かを判別する。ここで、例えば、ＳＤＰデータのバージョン番号（ｖ）の変化を検出すれば、メディア変更を検出することができる。そして、変更が確認された場合には、ＮＡＴ変換装置またはＮＡＴ変換プログラムは、セッション制御手段によって、ＳＩＰ制御用新規スレッドを新たに作成する。したがって、セッション制御手段は、ＳＩＰ制御用新規スレッドから、新たな受信用スレッドおよび新たな送信用スレッドを作成することができる。そのため、ＮＡＴ変換装置またはＮＡＴ変換プログラムは、呼確立時のポート番号を、呼確立以降、動的に変換することができる。そして、端末間の新たなネゴシエーション後には、ＮＡＴ変換装置またはＮＡＴ変換プログラムは、不要となった以前のＳＩＰ制御用スレッドを破棄するので、処理負荷を低減できる。
【００１３】
また、前記課題を解決するために、請求項５に記載のＮＡＴ変換プログラムは、第１のＩＰアドレスが付与された内線端末と、その外線側のＩＰ網への接続インタフェースがＵＮＩである第２のＩＰアドレスが付与された外線側ネットワーク端末との間において、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのＮＡＴ変換とを行うために、コンピュータを、前記内線端末から外線側のＩＰ網を介してＳＩＰサーバへ送信されるＳＩＰメッセージの発信先を、前記ＳＩＰサーバへ登録されるＩＰアドレスへと変換し、前記発信先が変換されたＳＩＰメッセージを前記ＳＩＰサーバへ送信すると共に、前記ＳＩＰサーバから前記登録されたＩＰアドレスへ送信されるＳＩＰメッセージの送信先を逆変換し、前記送信先が逆変換されたＳＩＰメッセージを前記内線端末へ送信するアドレス変換手段、前記内線端末から前記外線側ネットワーク端末へ送信されるＩＮＶＩＴＥメッセージの発信先を、前記登録されたＩＰアドレスへと変換すると共に、前記ＩＮＶＩＴＥメッセージで指定されたポート番号を変換し、変換前後のポート番号の対応付けを前記変換されたＩＰアドレスに関連付けて保持することによりＳＩＰセッションを確立するセッション制御手段、前記ＩＰ網から前記登録されたＩＰアドレスへ送信される応答メッセージを受信し、前記受信した応答メッセージの送信先を逆変換し、前記送信先が逆変換された応答メッセージを前記内線端末へ送信すると共に、前記ポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うセッション応答手段、前記ＳＩＰセッション確立後に、前記外線側ネットワーク端末から前記登録されたＩＰアドレスおよび前記確立されたＳＩＰセッションにより指定されたポート番号へ送信されるマルチメディアデータを受信して前記内線端末に送信する変更先アドレス用メディア応答手段、前記ＳＩＰセッション確立後に、前記内線端末から前記外線側ネットワーク端末へ送信されるマルチメディアデータを受信し、その発信先を前記登録されたＩＰアドレスおよび前記確立されたＳＩＰセッションにより変更されたポート番号へと変換し、前記発信先が変換されたマルチメディアデータを前記外線側ネットワーク端末に送信する変更元アドレス用メディア応答手段として機能させることを特徴とする。
【００１４】
かかる構成によれば、ＮＡＴ変換プログラムは、アドレス変換手段によって、内線端末から外線側へ送信される情報の発信先をＳＩＰサーバへ登録されるＩＰアドレスへと変換してから、発信先が変換された情報をＩＰ網へ送信する。また、ＮＡＴ変換プログラムは、アドレス変換手段によって、ＩＰ網から、登録されたＩＰアドレスへ送信される情報の送信先を逆に第１のＩＰアドレスへと変換してから内線端末へ送信する。そして、ＮＡＴ変換プログラムは、セッション制御手段によって、内線端末から外線側ネットワーク端末へ送信されるＩＮＶＩＴＥメッセージの発信先およびポート番号を変換しそれぞれ関連付けて保持することによりＳＩＰセッションを確立する。そして、ＮＡＴ変換プログラムは、ＳＩＰセッションを確立するために、セッション応答手段によって、ＩＰ網から受信した応答メッセージの送信先を逆変換してから内線端末へ送信すると共に、ＳＩＰセッションを確立する制御を行うときに送受信されるＩＮＶＩＴＥメッセージとその応答メッセージとを中継することで、内線端末用のメディア情報と、外線側ネットワーク端末用のメディア情報とを取得する。そして、ＮＡＴ変換プログラムは、ＳＩＰセッション確立後においては、変更先アドレス用メディア応答手段によって、外線側から送信されるマルチメディアデータを受信して内線端末に送信し、変更元アドレス用メディア応答手段によって、内線端末から外線側へ送信されるマルチメディアデータを中継して、その発信先を示すＩＰアドレスおよびポート番号を変換する。したがって、ＮＡＴ変換プログラムは、外線側にグローバルなＩＰアドレスを取得するための中継サーバを用いることなく、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換とメディアストリームデータで用いられるアドレスのＮＡＴ変換とを行うことができる。
【００１５】
また、請求項６に記載のＮＡＴ変換プログラムは、請求項５に記載のＮＡＴ変換プログラムにおいて、前記セッション制御手段が、スレッドとして前記セッション応答手段を作成し、前記作成したセッション応答手段から、スレッドとして前記変更先アドレス用メディア応答手段および前記変更元アドレス用メディア応答手段を作成し、前記ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたＩＰアドレスまたはポート番号に対応して、前記セッション応答手段を新たに新規スレッドとして作成し、作成された前記新規スレッドが端末間の新たなネゴシエーションを行った後に、変更される以前に作成された前記スレッドとしての前記セッション応答手段を破棄することを特徴とする。
【００１６】
かかる構成によれば、ＮＡＴ変換プログラムは、セッション制御手段によって、スレッドとしてセッション応答手段を作成し、作成されたセッション応答手段からスレッドとして変更先アドレス用メディア応答手段および変更元アドレス用メディア応答手段を作成する。そして、セッション制御手段は、ＳＩＰセッション確立後において、ＳＩＰメッセージのＳＤＰデータを監視することでメディア変更がされたか否かを判別する。そして、変更が確認された場合には、セッション制御手段は、セッション応答手段を新たに新規スレッドとして作成する。これにより、セッション制御手段は、新たなセッション応答手段から、新たなスレッドとして新たな変更先アドレス用メディア応答手段および変更元アドレス用メディア応答手段を作成することができる。そのため、ＮＡＴ変換プログラムは、呼確立時のポート番号を、呼確立以降、動的に変換することができる。そして、端末間の新たなネゴシエーション後には、ＮＡＴ変換プログラムは、不要なスレッドとなった以前のセッション応答手段を破棄するので、処理負荷を低減できる。
【００１７】
また、請求項７に記載のＮＡＴ変換プログラムは、請求項３ないし請求項６のいずれか一項に記載のＮＡＴ変換プログラムであって、前記内線端末の第１のＩＰアドレスの変換先としてのＩＰアドレスを前記ＳＩＰサーバへ登録するアドレス登録手段、前記ＳＩＰサーバへ登録されたＩＰアドレスを発信先ＵＲＩ情報として記述したＩＮＶＩＴＥメッセージを作成するセッション要求手段、前記作成されたＩＮＶＩＴＥメッセージに記述された発信先ＵＲＩ情報を、当該ＩＮＶＩＴＥメッセージのヘッダ部に拡張ヘッダとして登録するＳＩＰ制御手段として機能するＳＩＰ処理プログラムとの間でプログラム間通信を行い、前記ＳＩＰ処理プログラムから受信した前記ＩＮＶＩＴＥメッセージから前記拡張ヘッダを取り出し、前記拡張ヘッダに登録された発信先ＵＲＩ情報を、前記ＩＮＶＩＴＥメッセージ以降の前記ＩＰ網に対するＳＩＰメッセージにおける送信元アドレスとして記述することを特徴とする。
【００１８】
かかる構成によれば、ＮＡＴ変換プログラムは、ＳＩＰ処理プログラムとの間でプログラム間通信を行うことで、ＳＩＰ処理プログラムがＳＩＰサーバへアドレスを登録するために送信するＳＩＰメッセージであるREGISTERリクエストや、その応答を示すＳＩＰメッセージであるREGISTERレスポンスをＮＡＴ変換することができる。同様に、ＮＡＴ変換プログラムは、ＳＩＰ処理プログラムが送信するＳＩＰメッセージであるＩＮＶＩＴＥリクエストや、その応答を示すＳＩＰメッセージであるＩＮＶＩＴＥレスポンスをＮＡＴ変換することができる。そして、ＮＡＴ変換プログラムは、ＩＮＶＩＴＥリクエストの拡張ヘッダから取り出した発信先ＵＲＩ情報を保持しておくことでＩＮＶＩＴＥリクエスト以降のＳＩＰメッセージにおいて、取り出した発信先ＵＲＩ情報を外線側のＩＰ網に対する送信元アドレスとして記述することができる。ここで、プログラム間通信にはソケットを用いることができる。
【発明の効果】
【００１９】
本発明によれば、外線側にグローバルなＩＰアドレスを取得するための中継サーバを用いることなく、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換とメディアストリームデータで用いられるアドレスのＮＡＴ変換とを行うことができる。その結果、このような中継サーバを不必要とすることにより、ＳＩＰ、ＲＴＰ、ＲＴＣＰ用にそれぞれＩＰアドレスを取得する必要もなく、ＩＰアドレス取得のためのプロトコルシーケンスを端末側プログラムで実装する必要もなく、中継サーバによるメディアストリームデータの遅延や損失がない。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明のＮＡＴ変換プログラムを実施するための最良の形態（以下「実施形態」という）について詳細に説明する。
【００２１】
図１は、本発明の実施形態に係るＮＡＴ変換プログラムの概要を模式的に示す図であり、図２は、本発明の実施形態に係るＮＡＴ変換プログラムの動作の一例を示すシーケンス図であり、図３は、本発明の実施形態に係るＮＡＴ変換プログラムを備える内線側ネットワーク端末の構成例を示す図である。
【００２２】
［ＮＡＴ変換プログラムの前提および位置づけ］
図１に示すアプリケーション１には、内線端末１と同じ符号が付されているが、アプリケーション１と表記したときには、内線端末１の機能（ソフトウェア）を表すものとする。内線端末１は、例えば、ＩＰ電話等であり、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、通信を行うためのＮＩＣ（Network Interface Card）等のコンピュータ、および、ＨＤＤ（Hard Disk Drive）に記憶されＲＡＭに展開されるプログラム（アプリケーション１）を備えている。本実施形態では、内線端末１は、さらにＮＡＴ変換プログラム（変換アダプタ）２を備えている。
【００２３】
アプリケーション（内線端末）１は、端末装置の構成として、図３に示すように、入力部３と、出力部４と、記憶部５と、通信部６と、制御部７とを備えている。各部３〜７はバスライン８に接続されている。また、各部３〜７は、前記したハードウェア資源とソフトウェアとが協働することにより実現されるものである。なお、各部の詳細については後記する。
【００２４】
内線端末１は、図３に示すように、例えば、ＬＡＮ（Local Area Network）で、内線側ネットワーク端末３０や、ファイアウォール（ＦＷ）機能を備えたルータ３１と共に内線側ネットワークＮ1を形成している。また、内線端末１は、図３に示すように、外線側ネットワークＮ2としてのＩＰ網ＮＷを介して、例えば外線側ネットワーク端末４０やＳＩＰサーバ５０に通信可能に接続されている。
【００２５】
図３に示すように、内線側ネットワーク端末３０は、アプリケーション１と、ＮＡＴ変換プログラム（変換アダプタ）２とを備える。なお、内線側ネットワーク端末３０において、図示は省略したが、入力部３、出力部４、記憶部５、通信部６および制御部７を備えているものとする。つまり、内線側ネットワーク端末３０は、内線端末１と同じ構成である。ただし、内線側ネットワーク端末３０は、内線専用の通信機能だけを利用する場合には、ＮＡＴ変換プログラム（変換アダプタ）２を保持しない構成とすることもできる。
【００２６】
外線側ネットワーク端末４０は、ＩＰ網ＮＷへの接続インタフェースがＵＮＩである。この外線側ネットワーク端末４０は、内線側ネットワーク端末３０と同様な構成とすることができる。
【００２７】
ＳＩＰサーバ５０は、ＩＰ網ＮＷ上で、マルチメディアデータ送受信のためにＳＩＰセッションの確立などの処理を仲介するサーバであって、プロキシサーバ（Proxy server）、リダイレクトサーバ（Redirect server）、登録サーバ（Registrar server：以下、レ単にレジストラという）の機能を有している。なお、内線側ネットワーク端末３０、外線側ネットワーク端末４０、ＳＩＰサーバ５０等の台数は特に限定されるものではない。
【００２８】
以下では、内線端末１が、発呼元のエンドポイント（ＵＡ：User Agent）、外線側ネットワーク端末４０が着呼先のＵＡであるものとして説明する。また、内線端末１には第１のＩＰアドレス（変換前の登録するＩＰアドレス）、すなわち、発呼側のドメイン値が付与され、発呼側のユーザ名や電話番号が付与されているものとする。また、外線側ネットワーク端末４０には第２のＩＰアドレス、すなわち、着呼側のドメイン値が付与され、着呼側のユーザ名や電話番号が付与されているものとする。
【００２９】
ＮＡＴ変換プログラム（変換アダプタ）２は、内線端末１と、その外線側の外線側ネットワーク端末４０との間において、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換と、両端末１，４０の間で送受信されるマルチメディアデータで用いられるアドレスのＮＡＴ変換とを行うものである。
【００３０】
図１では、ＮＡＴ変換プログラム２の位置づけを示している。本実施形態では、ＮＡＴ変換プログラム２は、ＳＩＰセッションの確立においてはＳＩＰの呼制御を行うプログラム（アプリケーション１）とインタフェースを持ち、ＳＩＰセッション確立後はメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）を制御するアプリケーション（メディアアプリケーション１３；図３参照）とインタフェースを持つ位置付けとした。なお、プログラムの実装方法はこれに限定されるものではない。
【００３１】
アプリケーション１は、ＳＩＰセッションの確立のための機能としてＳＩＰアプリケーション１１と、ＳＩＰ制御部１２を備えている。なお、アプリケーション１の構成の詳細については後記する。
【００３２】
［ＮＡＴ変換プログラムの概要］
ＮＡＴ変換プログラム２は、以下に示す方法で外線側ネットワーク端末４０との接続およびメディアストリームデータの送受信を実現する。ここで、一連の動作は、１）レジストラヘの登録、２）ＳＩＰセッション確立、３）メディアストリームデータの送受信、４）ＳＩＰセッション切断、の各処理により分けることができる。まず、図１を参照（適宜図３参照）して、１）レジストラヘの登録、２）ＳＩＰセッション確立、の各処理を説明する。
【００３３】
１）レジストラヘの登録
ここでは、ＳＩＰサーバ５０（図３参照）を、その登録サーバの機能に着目してレジストラ（レジストラサーバの略）と呼ぶことにする。また、内線端末１の第１のＩＰアドレス（登録する変換前のＩＰアドレス）、すなわち、発呼側のドメイン値が、例えば「172.26.118.1」であり、レジストラに登録する変換後のＩＰアドレス（ＳＩＰアドレス）が例えば「Ａ」であるものとする。また、外線側ネットワーク端末４０の第２のＩＰアドレス、すなわち、着呼側のドメイン値が、例えば「192.168.0.1」であるものとする。
【００３４】
ＳＩＰアプリケーション１１は、レジストラに登録するＩＰアドレスを指定するＳＩＰ電文（ＳＩＰメッセージ）を示すREGISTERリクエストを作成する（ステップＳ１）。そして、ＮＡＴ変換プログラム２は、ＳＩＰアプリケーション１１からＳＩＰ制御部１２を経由してREGISTERリクエストを受信すると、ＳＩＰ電文（ＳＩＰメッセージ）を解析し、発信先（例えば「172.26.118.1」）を、Contactヘッダ（コンタクト）に記述されている発呼元ＵＡのＩＰアドレス（例えば「Ａ」）に変更し（ステップＳ２）、この発呼元ＵＡのＩＰアドレス情報（例えば「Ａ」）に紐づけてスレッド（スレッドＴ1）を生成する（ステップＳ３）。ＮＡＴ変換プログラム２は、発信先を変換したREGISTERリクエストをレジストラに送信する（ステップＳ４：Register）。REGISTERリクエストのＮＡＴ変換例を図４に示す。なお、図４の具体的な説明は後記する。
【００３５】
図１のステップＳ４に続いて、ＮＡＴ変換プログラム２は、スレッドＴ1によって、レジストラからのREGISTERレスポンスを受信する（ステップＳ５：200 OK）。このとき、スレッドＴ1は、スレッドＴ1で保持した発呼元ＵＡのＩＰアドレス情報（例えば「Ａ」）を元に、EGISTERレスポンスのＳＩＰヘッダの書き換えを行う。REGISTERレスポンスのＮＡＴ変換例を図５に示す。なお、図５の具体的な説明は後記する。ステップＳ５に続いて、ＮＡＴ変換プログラム２は、Register時のコンタクトに記述されていたＩＰアドレス（例えば「Ａ」）と、REGISTERレスポンス（200 OK）に設定される「P-Associated-URI」の先頭を保持する（ステップＳ６）。そして、ＮＡＴ変換プログラム２は、ＳＩＰヘッダの書き換えを行った変換後のREGISTERレスポンスを、ＳＩＰ制御部１２を経由してＳＩＰアプリケーション１１に送信する。
【００３６】
２）ＳＩＰセッション確立
ＳＩＰアプリケーション１１は、Register登録したＩＰアドレス（レジストラに登録したＩＰアドレス）を発信先情報とするＳＩＰメッセージを示すINVITEリクエストを作成する（ステップＳ７）。この場合、INVITEリクエストのヘッダ部に、例えば、「sip:001@192.168.0.1;ipaddr=172.26.118.1」が記述される。ここで、「001」は着呼側のユーザ名、「192.168.0.1」は着呼側のドメイン値、「172.26.118.1」は発呼側のドメイン値をそれぞれ示す。ステップＳ７に続いて、ＳＩＰ制御部１２は、INVITEリクエストに記述された発信先ＵＲＩ（Uniform Resource Identifier；例えば「172.26.118.1」）に対応したアドレス情報（例えば「Ａ」）を、INVITEリクエストのヘッダ部に、拡張ヘッダとして登録する（ステップＳ８）。ＮＡＴ変換前のINVITEリクエストの例を図６に示す。なお、図６の具体的な説明は後記する。
【００３７】
ステップＳ８に続いて、ＮＡＴ変換プログラム２は、ＳＩＰアプリケーション１１からＳＩＰ制御部１２を経由してINVITEリクエストを受信すると、INVITEリクエストのＳＩＰヘッダのアドレスおよびボディ部のＳＤＰで記述されたデータのメディアストリームデータ用のアドレスを、レジストラヘの登録の際に保持した発呼元ＵＡのアドレス（例えば「Ａ」）で書き換える。このとき、ＮＡＴ変換プログラム２は、INVITEリクエストの拡張ヘッダに記述されたアドレス情報（例えば「Ａ」）を取り出して送信元アドレスを確定し、ダイアログを生成すると共に、書き換えの前にボディ部のＳＤＰで記述されたデータのうちのメディアストリームデータ（ＲＴＰ）用のＩＰアドレスとポート番号（アドレス）を保持する（ステップＳ９）。INVITE以降のＳＩＰ電文はこのダイアログに保持されたＩＰアドレスで、外→内送信、内→外送信（外⇔内送信）を行う。ＮＡＴ変換後のINVITEリクエストの例を図７に示す。なお、図７の具体的な説明は後記する。そして、ＮＡＴ変換プログラム２は、送信元を「Ａ」としたＳＩＰ電文を示すINVITEリクエストを送信する（ステップＳ１０）。このINVITEリクエストは、ＩＰ網ＮＷを介して外線側ネットワーク端末４０に送信される（ステップＳ１１：INVITE）。
【００３８】
ステップＳ１１に続いて、ＮＡＴ変換プログラム２は、スレッドＴ1によって、INVITEレスポンス（180 Ringing／200 OK）をそれぞれ受信する（ステップＳ１２：180／200 OK）と、INVITEレスポンスのＳＩＰヘッダのアドレスおよびボディ部のＳＤＰで記述されたデータのうちメディアストリームデータ用のアドレスを、レジストラヘの登録の際に保持した発呼元ＵＡのアドレス（例えば「Ａ」）で書き換え、ＳＩＰ制御部１２を経由してＳＩＰアプリケーション１１に送信する。そして、ＮＡＴ変換プログラム２は、INVITEレスポンス（200 OK）の受信時には、200 OK受信時に取得したＳＤＰ情報と、ステップＳ９で保持したＳＤＰ情報とを元にして、スレッドＴ1から、新たにメディアストリームデータ（ＲＴＰ）用に、ＮＡＴスレッドとして２つのスレッドＴ2，Ｔ3を生成する（ステップＳ１３）。なお、「180 Ringing」、「200 OK」は、応答コードを示す。
【００３９】
ここで、スレッドＴ2は、外線側ネットワークＮ2からの受信専用スレッド（外→内用）であり、スレッドＴ3は、外線側ネットワークＮ2への送信専用スレッド（内→外用）である。スレッドＴ2はＲＴＰ用のＩＰアドレスとポート番号（例えばＲＴＰ＃１）と、ＲＴＣＰ用のＩＰアドレスとポート番号（例えばＲＴＣＰ＃１）とをスレッドＴ1から引き継いで保持する。同様に、スレッドＴ3はＲＴＰ／ＲＴＣＰ用のＩＰアドレスとポート番号（例えばＲＴＰ＃２／ＲＴＣＰ＃２）をスレッドＴ1から引き継いで保持する。ＳＩＰセッション確立後はスレッドＴ1、スレッドＴ2、スレッドＴ3がそれぞれ単独で動作する。なお、スレッドＴ2とスレッドＴ3で保持する値は異なる。
【００４０】
次に、図２を参照（適宜図１および図３参照）して、ＮＡＴ変換プログラム２が行う各処理のうち、２）ＳＩＰセッション確立、３）メディアストリームデータの送受信、の各処理について各スレッドＴ1，Ｔ2，Ｔ3単位の動作を含めて説明する。なお、２）ＳＩＰセッション確立、については、図１の説明と重複する内容については適宜省略して説明する。図２に示すステップＳ２１〜ステップＳ３１は、ＳＩＰセッション確立までの各処理動作を示している。ただし、この例では、例えば、３ＰＣＣ（3rd Party Call Control）通信を考慮しており、アプリケーション（内線端末）１から、ＮＡＴ変換プログラム（変換アダプタ）２で中継したＳＩＰメッセージは、内線側ネットワーク端末３０に送信され、その後に、外線側ネットワーク端末４０に送信される。
【００４１】
まず、アプリケーション１は、内線側ネットワークＮ1にINVITEリクエストを送信する（ステップＳ２１）。ＮＡＴ変換プログラム２では、スレッドＴ1が、このINVITEリクエストを受信し、INVITEリクエストのボディ部のＳＤＰで記述されたデータ（以下、ＳＤＰ部という）より、内線端末１のＲＴＰ／ＲＴＣＰ情報を取得する（ステップＳ２２）。これにより、図２に示すように、ＮＡＴ変換プログラム２（スレッドＴ1）では、ＲＴＰ／ＲＴＣＰ情報として内線端末用のメディア情報（例えばポート番号）が保持される。
【００４２】
そして、ＮＡＴ変換プログラム２は、INVITEリクエストをそのまま内線側ネットワーク端末３０に送信する（ステップＳ２３）。内線側ネットワーク端末３０は、ＳＤＰ情報付きのINVITEレスポンス（200 OK）を内線端末１側に返信する（ステップＳ２４）。ＮＡＴ変換プログラム２では、スレッドＴ1が、ＳＤＰ情報付きのINVITEレスポンス（200 OK）を受信し、INVITEレスポンス（200 OK）をアプリケーション１に送信する（ステップＳ２５）。
【００４３】
次に、アプリケーション１は、外線側ネットワーク端末４０に向けてINVITEリクエストを送信する（ステップＳ２６）。その途中で、ＮＡＴ変換プログラム２では、スレッドＴ1が、このINVITEリクエストを受信し、ＩＰ網ＮＷを介して、ＮＡＴ変換したINVITEリクエストを外線側ネットワーク端末４０に送信する（ステップＳ２７）。外線側ネットワーク端末４０は、ＩＰ網ＮＷを介して、ＳＤＰ情報付きのINVITEレスポンス（200 OK）を内線端末１側に向けて返信する（ステップＳ２８）。ＮＡＴ変換プログラム２では、スレッドＴ1が、このINVITEレスポンス（200 OK）を受信し、INVITEレスポンス（200 OK）のＳＤＰ部より、外線端末（外線側ネットワーク端末４０）のＲＴＰ／ＲＴＣＰ情報を取得する（ステップＳ２９）。これにより、図２に示すように、ＮＡＴ変換プログラム２（スレッドＴ1）では、ＲＴＰ／ＲＴＣＰ情報として外線端末用の情報（例えばポート番号）が保持される。
【００４４】
そして、ＮＡＴ変換プログラム２は、ＮＡＴ変換したINVITEレスポンス（200 OK）をアプリケーション１に送信する（ステップＳ３０）。また、スレッドＴ1は、ステップＳ２９に続いて、スレッドＴ1より、スレッドＴ2，Ｔ3を生成する（ステップＳ３１）。ここで、図２に示すように、スレッドＴ2は、ＮＡＴ変換プログラム２（スレッドＴ1）より、ＲＴＰ／ＲＴＣＰ情報として内線端末用のメディア情報を引き継ぐ。同様に、スレッドＴ3は、ＮＡＴ変換プログラム２（スレッドＴ1）より、ＲＴＰ／ＲＴＣＰ情報として外線端末用の情報を引き継ぐ。
【００４５】
ＳＩＰセッション確立後、アプリケーション（内線端末）１と、外線側ネットワーク端末４０（外線端末）との間でメディアストリームデータ（ＲＴＰ／ＲＴＰＣ）の送受信が行われる。例えば、外線側ネットワーク端末４０がメディアストリームデータ（ＲＴＰ／ＲＴＰＣ）を送信すると（ステップＳ３２）、スレッドＴ2が中継受信し、このスレッドＴ2がメディアストリームデータ（ＲＴＰ／ＲＴＰＣ）をアプリケーション１に送信する（ステップＳ３３）。また、例えば、アプリケーション１がメディアストリームデータ（ＲＴＰ／ＲＴＰＣ）を送信すると（ステップＳ３４）、スレッドＴ3が中継受信し、このスレッドＴ3がメディアストリームデータ（ＲＴＰ／ＲＴＰＣ）を外線側ネットワーク端末４０に送信する（ステップＳ３５）。なお、ステップＳ３０とステップＳ３１との順序は任意であり、ステップＳ３２，Ｓ３３とステップＳ３４，Ｓ３５との順序も任意である。
【００４６】
ＮＡＴ変換プログラム２は、後記するように、メディアストリームデータの送受信において、メディアが変更される場合にも対応して制御することができる。そして、通信終了時には、ＮＡＴ変換プログラム２は、スレッドＴ1、スレッドＴ2、スレッドＴ3を終了させ、ポート番号の管理情報リソースを解放する。これにより、ＳＩＰセッションが切断される。
【００４７】
［内線端末の各部の構成］
次に、ＮＡＴ変換プログラム２を含む内線端末１の各部の構成について図３を参照して説明する。
入力部３は、ユーザの操作によるコマンドやデータ等の情報を受け付けるものであり、例えば、キーボード、マウス、ディスクドライブ装置などから構成される。また、入力部３は、ユーザの音声や映像等の情報を受け付けるために、例えば、マイク（音声入力装置）やカメラ（画像入力装置）を備える。
【００４８】
出力部４は、入力として受け付けた各種情報、あるいは、処理結果（例えば通話相手の映像）を出力するものであり、例えば、グラフィックボード（出力インタフェース）およびそれに接続された液晶ディスプレイ等のモニタ（画像表示装置）から構成される。また、出力部４は、処理結果として、例えば、通話相手の音声を出力するスピーカ（音声出力装置）を備える。なお、入力部３および出力部４として、例えば音声については、通話者の頭部に装着可能なマイクとスピーカとを備えたヘッドセットから構成されるようにしてもよい。
【００４９】
記憶部５は、例えば、一般的なハードディスク装置などから構成され、制御部７がアプリケーション１やＮＡＴ変換プログラム２として機能するための動作プログラムや、この動作プログラム等が参照する各種データ等を記憶する。
【００５０】
通信部６は、所定のインタフェースから構成され、制御部７に制御され、内線側ネットワークＮ1内において内線側ネットワーク端末３０と通信を行ったり、ＩＰ網ＮＷを介して外線側ネットワークＮ2（外線側ネットワーク端末４０）やＳＩＰサーバ５０との通信を行うものである。
【００５１】
制御部７は、例えば、ＣＰＵおよびＲＡＭから構成される。制御部７は、アプリケーション１として、ＳＩＰアプリケーション１１と、ＳＩＰ制御部１２と、メディアアプリケーション１３と、メディア制御部１４とを備えている。
【００５２】
ＳＩＰアプリケーション（ＳＩＰ処理プログラム）１１は、サービスアプリケーションとして、アドレス登録手段１５と、セッション要求手段１６とを備えている。
アドレス登録手段１５は、内線端末１の第１のＩＰアドレスの変換先としてのＩＰアドレスをＳＩＰサーバ５０へ登録するものである。このアドレス登録手段１５は、REGISTERリクエストを作成する。
セッション要求手段１６は、ＳＩＰサーバ５０へ登録されたＩＰアドレス（変換後のＩＰアドレス）を発信先ＵＲＩ情報として記述したINVITEメッセージを作成する。
【００５３】
ＳＩＰ制御部（ＳＩＰ制御手段）１２は、セッション要求手段１６で作成されたINVITEメッセージに記述された発信先ＵＲＩ情報を、当該INVITEメッセージのヘッダ部に拡張ヘッダとして登録する。このＳＩＰ制御部１２は、ＳＩＰセッションを確立する際にＮＡＴ変換プログラム２とのインタフェースとして機能する。
【００５４】
メディアアプリケーション１３は、端末間のマルチメディアデータの送受信処理を実行するアプリケーションプログラムである。このメディアアプリケーション１３は、メディア制御部１４を介してメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）の送受信処理を実行する。メディア制御部１４は、ＳＩＰセッションを確立後、メディアストリームデータ（ＲＴＰ／ＲＴＣＰ）を送受信する際に、ＮＡＴ変換プログラム２とのインタフェースとして機能する。
【００５５】
なお、ＳＩＰアプリケーション１１、ＳＩＰ制御部１２、メディアアプリケーション１３およびメディア制御部１４は、ＣＰＵがハードディスク等に格納された所定のプログラムをＲＡＭに展開して実行することによりその機能が実現されるものである。
【００５６】
また、制御部７は、ＮＡＴ変換プログラム（変換アダプタ）２として、アドレス変換手段２１と、セッション制御手段２２と、セッション応答手段２３と、変更先アドレス用メディア応答手段２４と、変更元アドレス用メディア応答手段２５とを備えている。
【００５７】
アドレス変換手段２１は、内線端末１から外線側へ送信される情報の発信先を、ＳＩＰサーバ５０へ登録されるＩＰアドレスへと変換し、発信先が変換された情報をＩＰ網ＮＷへ送信するものである。このアドレス変換手段２１は、ＩＰ網ＮＷから、登録されたＩＰアドレスへ送信される情報の送信先を逆変換し、送信先が逆変換された情報を内線端末１へ送信する。
【００５８】
このアドレス変換手段２１は、例えば、内線端末１から外線側のＩＰ網ＮＷを介してＳＩＰサーバ５０へ送信されるＳＩＰメッセージの発信先を、ＳＩＰサーバ５０へ登録されるＩＰアドレス（ＮＡＴ変換後のＩＰアドレス）へと変換し、発信先が変換されたＳＩＰメッセージをＳＩＰサーバ５０へ送信する。また、アドレス変換手段２１は、例えば、ＳＩＰサーバ５０から、登録されたＩＰアドレス（ＮＡＴ変換後のＩＰアドレス）へ送信されるＳＩＰメッセージの送信先を逆変換し、送信先が逆変換されたＳＩＰメッセージを内線端末１へ送信する。
【００５９】
セッション制御手段２２は、ＳＩＰ制御用スレッドと、マルチメディアデータの受信用スレッド（単に受信スレッドという）と、マルチメディアデータの送信用スレッド（単に送信スレッドという）とを作成するものである。本実施形態では、セッション制御手段２２は、まず、ＳＩＰ制御用スレッドを作成し、作成したＳＩＰ制御用スレッドから受信用スレッドおよび送信用スレッドを作成する。
【００６０】
ＳＩＰ制御用スレッドは、マルチメディアデータを送受信するためのポート番号を含むメディア情報（単にメディア情報という）として、内線端末用のメディア情報と、外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うものである。このＳＩＰ制御用スレッドは、セッション応答手段２３に対応する。また、ＳＩＰ制御用スレッドは、具体的には前記したスレッドＴ1のことである。
【００６１】
受信用スレッドは、ＳＩＰセッション確立後に、内線端末用のメディア情報に基づいて、外線側ネットワーク端末４０から内線端末１へのマルチメディアデータを中継受信するものである。この受信用スレッドは、変更先アドレス用メディア応答手段２４に対応する。また、受信用スレッドは、具体的には前記したスレッドＴ2のことである。
【００６２】
送信用スレッドは、ＳＩＰセッション確立後に、外線側ネットワーク端末用のメディア情報に基づいて、内線端末１から外線側ネットワーク端末４０へのマルチメディアデータを中継送信するものである。この送信用スレッドは、変更元アドレス用メディア応答手段２５に対応する。また、送信用スレッドは、具体的には前記したスレッドＴ3のことである。
【００６３】
また、本実施形態では、セッション制御手段２２は、内線端末１から外線側ネットワーク端末４０へ送信されるINVITEメッセージの発信先を、登録されたＩＰアドレス（変換後のＩＰアドレス）へと変換すると共に、INVITEメッセージで指定されたポート番号を変換し、変換前後のポート番号の対応付けを、変換されたＩＰアドレスに関連付けて保持することによりＳＩＰセッションを確立する。
【００６４】
また、本実施形態では、セッション制御手段２２は、ＳＩＰセッション確立後に、ＳＩＰメッセージのボディ部のＳＤＰで記述されたデータ内のＩＰアドレスまたはポート番号が変更されたか否かを判別する。変更された場合には、セッション制御手段２２は、変更されたＩＰアドレスまたはポート番号に対応して、ＳＩＰ制御用スレッドを新たに作成し、端末間の新たなネゴシエーション後に、変更される以前に作成されたＳＩＰ制御用スレッドを破棄する。セッション制御手段２２は、例えば、ＳＤＰデータのバージョン番号（ｖ）の変化を検出することで、メディア変更を検出する。
【００６５】
セッション応答手段２３は、前記したＳＩＰ制御用スレッドに対応する。このセッション応答手段２３は、例えば、ＩＰ網ＮＷから、登録されたＩＰアドレス（変換後のＩＰアドレス）へ送信される応答メッセージを受信し、受信した応答メッセージの送信先を逆変換し、送信先が逆変換された応答メッセージを内線端末１へ送信する。
【００６６】
変更先アドレス用メディア応答手段２４は、前記した受信用スレッドに対応する。この変更先アドレス用メディア応答手段２４は、例えば、ＳＩＰセッション確立後に、外線側ネットワーク端末４０から、登録されたＩＰアドレス（変換後のＩＰアドレス）および確立されたＳＩＰセッションにより指定されたポート番号へ送信されるマルチメディアデータ（ＲＴＰ／ＲＴＣＰ）を受信して内線端末１に送信する。
【００６７】
変更元アドレス用メディア応答手段２５は、前記した送信用スレッドに対応する。この変更元アドレス用メディア応答手段２５は、例えば、ＳＩＰセッション確立後に、内線端末１から外線側ネットワーク端末４０へ送信されるメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）を受信し、その発信先を、登録されたＩＰアドレス（変換後のＩＰアドレス）および確立されたＳＩＰセッションにより変更されたポート番号へと変換し、発信先が変換されたメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）を外線側ネットワーク端末４０に送信する。
【００６８】
本実施形態のＮＡＴ変換プログラム２は、ＳＩＰアプリケーション１１との間で、ソケット等のプログラム間通信を行い、ＳＩＰアプリケーション１１からＳＩＰ制御部１２を経由して受信したINVITEメッセージから拡張ヘッダを取り出し、拡張ヘッダに登録された発信先ＵＲＩ情報（変換後のＩＰアドレス）を、INVITEメッセージ以降のＩＰ網ＮＷに対するＳＩＰメッセージにおける送信元アドレスとして記述する。
【００６９】
なお、アドレス変換手段２１、セッション制御手段２２、セッション応答手段２３、変更先アドレス用メディア応答手段２４および変更元アドレス用メディア応答手段２５は、ＣＰＵがハードディスク等に格納された所定のプログラムをＲＡＭに展開して実行することによりその機能が実現されるものである。ＮＡＴ変換プログラム２は、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。
【００７０】
［メディア変更時の制御］
ＮＡＴ変換プログラム２によるメディア変更時の制御について、図２を参照して説明する。図２のステップＳ３２〜Ｓ３５のようにメディアストリームデータ（ＲＴＰ／ＲＴＣＰ）が送受信されているときに、ＮＡＴ変換プログラム２は、スレッドＴ1において、ＳＤＰ部が存在するＳＩＰ電文を受信すると、セッション制御手段２２によって、ＳＤＰ部のプロパティバージョン（ｖ）ラインからバージョンをチェックする。例えば、図６および図７に示した例では、ＳＤＰ部の１行目に「ｖ＝０」が記述されている。
【００７１】
仮に、ＳＤＰ部のプロパティバージョン（ｖ）ラインのバージョンがＳＩＰセッション確立時に保持したバージョンと異なる場合、ＮＡＴ変換プログラム２は、セッション制御手段２２によって、メディアのポート番号に変更がないかチェックする。ＳＩＰ電文が外線側ネットワークＮ2から受信したものである場合には、スレッドＴ2で保持しているＲＴＰのポート番号が比較対象となる。例えば、図７に示した例では、ＳＤＰ部の６行目に、ポート番号として「m=audio 54656 RTP/AVP 0」が記述されているので、「54656」が比較される数値である。一方、外線側ネットワークＮ2ヘのＳＩＰ電文の場合、スレッドＴ3で保持しているＲＴＰのポート番号と比較を行う。例えば、図６に示した例では、ＳＤＰ部の６行目に、ポート番号として「m=audio 7170 RTP/AVP 0」が記述されているので、「7170」が比較される数値である。
【００７２】
仮に、ＳＤＰ部のポート番号がＳＩＰセッション確立時に保持したポート番号と異なる場合、ＮＡＴ変換プログラム２は、セッション制御手段２２によって、受信したＳＩＰ電文のＳＤＰ部に記述されたポート情報を保持し、そのポート情報を保持したまま待機し、メディア変更処理を終了させる。ここで、メディア変更処理とは、図２に示すステップＳ２２の処理やステップＳ２９の処理によって、メディア変更後の内線端末用のメディア情報および外線端末用のメディア情報を新たに取得することを意味する。このメディア変更処理が終了したときに、すなわち、ＲＴＰ／ＲＴＣＰ用のポート情報が新たに揃うと、ＮＡＴ変換プログラム２は、セッション制御手段２２によって、以前作成したスレッドＴ1からスレッドＴ2，Ｔ3までを終了させ、新たにメディア変更で保持したポート番号を使用して新たにＳＩＰ制御用新規スレッド（新規スレッドＴ1）を作成し、この新規スレッドＴ1から、新たな送信用スレッドと新たな受信用スレッドとを起動する。
【００７３】
［ＳＩＰメッセージの具体例］
次に、ＳＩＰメッセージの具体例について図４ないし図７を参照して説明する。なお、図４ないし図７に示すＳＩＰ電文の例は、図１に示した例とは異なるものであって、例えば、発呼側および着呼側のアドレス（ドメイン値）が異なっている。また、ＳＩＰ電文中の「X」は、値を秘匿するための記号であり、一般的にそれぞれ異なる数値を示す。
【００７４】
図４に示すREGISTERリクエストのＮＡＴ変換例では、「Call-ID」におけるＩＰアドレスは「172.X.X.10」である。ＮＡＴ変換前のREGISTERリクエストにおいて、図４（ａ）の４０１で示す発信先の情報から、ＩＰアドレスは「172.26.118.1」、ポート番号は「5070」であることが分かる。また、図４（ａ）において４０２で示すように、Contactヘッダ（コンタクト）に記述されている発呼元ＵＡのＩＰアドレスは、「118.XXX.XXX.14」である。一方、ＮＡＴ変換後のREGISTERリクエストにおいて、図４（ｂ）の４０３で示す発信先の情報から、ＩＰアドレスは「118.XXX.XXX.14」、ポート番号は「5060」であることが分かる。すなわち、図４（ａ）の４０１で示す発信先の情報は、図４（ｂ）の４０３で示す発信先の情報へと変換されている。
【００７５】
図５に示すREGISTERレスポンスのＮＡＴ変換例では、ＮＡＴ変換前のREGISTERレスポンスにおいて、図５（ａ）の５０１で示す発信先の情報から、ＩＰアドレスは「118.XXX.XXX.14」、ポート番号は「5060」であることが分かる。また、REGISTERレスポンスのヘッダ部の最終の２行には、「P-Associated-URI」が記述されている。このうち、１番目（先頭）の「P-Associated-URI」が、ＮＡＴ変換プログラム２に保持されることとなる。一方、ＮＡＴ変換後のREGISTERレスポンスにおいて、図５（ｂ）の５０２で示す発信先の情報から、ＩＰアドレスは「172.X.X.10」、ポート番号は「5070」であることが分かる。すなわち、図５（ａ）の５０１で示す発信先の情報は、図５（ｂ）の５０２で示す発信先の情報へと変換されている。
【００７６】
図６に示すＮＡＴ変換前のINVITEリクエストの例、および、図７に示すＮＡＴ変換後のINVITEリクエストの例は、図４および図５に示したREGISTERメッセージに対応している。図６の符号６０１で示す拡張ヘッダには、図４の符号４０２で示した登録ＩＰアドレス（変換後のＩＰアドレス）として「118.XXX.XXX.14」が記述されている。
【００７７】
ＮＡＴ変換前には、ヘッダ部においては、図６の符号６０２，６０３で示すように、発信先の情報として、ＩＰアドレスは「172.X.X.10」、ポート番号は「5070」であることが記述されている。また、ＮＡＴ変換前には、ＳＤＰ部においては、図６の符号６０４〜６０６で示すように、ＲＴＰ／ＲＴＣＰの発信先の情報として、ＩＰアドレスは「172.X.X.13」であることが記述されている。
【００７８】
一方、ＮＡＴ変換後には、ヘッダ部においては、図７の符号７０２，７０３で示すように、ＮＡＴ変換された発信先の情報として、ＩＰアドレスは「118.XXX.XXX.14」、ポート番号は「5060」であることが記述されている。また、ＮＡＴ変換後には、ＳＤＰ部においては、図７の符号７０４〜７０５で示すように、ＲＴＰ／ＲＴＣＰの発信先の情報として、変換されたＩＰアドレスは「118.XXX.XXX.14」であることが記述されている。
【００７９】
本実施形態によれば、外線側にグローバルなＩＰアドレスを取得するための中継サーバを用いることなく、ＳＩＰの呼制御で用いられるアドレスのＮＡＴ変換とメディアストリームデータで用いられるアドレスのＮＡＴ変換とを行うことができる。その結果、このような中継サーバを不必要とすることにより、ＳＩＰ、ＲＴＰ、ＲＴＣＰ用にそれぞれＩＰアドレスを取得する必要もなく、ＩＰアドレス取得のためのプロトコルシーケンスを端末側プログラムで実装する必要もなく、中継サーバによるメディアストリームデータの遅延や損失がない。
【００８０】
また、本実施形態によれば、送信用スレッドと受信用スレッドとを別々に有してメモリ上でＩＰアドレス情報のマッピングを行うので、メディアストリームデータ遅延がなく、品質を損なわない。また、本実施形態によれば、呼確立時のポート番号を、呼確立以降、動的に変換することができる。さらに、本実施形態によれば、ＩＰアドレスを登録したりセッションの要求を行ったりするＳＩＰ処理プログラム等のソフトウェアに対して別のソフトウェアとしてＮＡＴ変換プログラムをアダプタとして利用することが可能なので、実装や運用に際して柔軟に対応することができる。
【００８１】
以上、本発明の好ましい実施形態について説明したが、本発明は前記した実施形態に限定されるものではなく、本実施形態で説明した実装方法、用途、運用方法以外にも本発明は実施することができる。例えば、ＮＡＴ変換プログラム２は、ＳＩＰ電文のＳＤＰ部の情報を参照して変更を行うことから以下の用途にも適用可能である。
（１）異なるネットワークプロトコルの端末間の通信（ＩＰｖ４からＩＰｖ６のアドレスヘの変換）に対応してもよい。
（２）メディアの帯域を変更する機能を追加することによってＱｏＳ（Quality of Service）を実装するようにしてもよい。
（３）ＳＩＰ電文のうちＳＩＰヘッダのみのＮＡＴ変換をしてＳＤＰ部の変換を行わないような限定されたシステムの用途に対応した実装としてもよい。
（４）ＮＡＴ変換プログラム２の一連の動作処理のうち、「ＳＩＰセッション確立」の処理までにおいて、ＳＩＰ電文のうちＳＤＰ部のみＮＡＴ変換をしてヘッダ部の変換を行わないような限定されたシステムの用途に対応した実装としてもよい。
【００８２】
また、本実施形態では、ＮＡＴ変換装置（変換アダプタ）が、内線端末１の制御部７として機能するＮＡＴ変換プログラム２であるものとして説明したが、ＮＡＴ変換プログラム２がインストールされた一般的なコンピュータを、ＮＡＴ変換装置（変換アダプタ）として構成し、このＮＡＴ変換装置（変換アダプタ）を、アプリケーション１のみがインストールされた内線端末１に接続して利用することも可能である。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態に係るＮＡＴ変換プログラムの概要を模式的に示す図である。
【図２】本発明の実施形態に係るＮＡＴ変換プログラムの動作の一例を示すシーケンス図である。
【図３】本発明の実施形態に係るＮＡＴ変換プログラムを備える内線側ネットワーク端末の構成例を示す図である。
【図４】本発明の実施形態に係るＮＡＴ変換プログラムが受信するREGISTERリクエストの一例を示す図であって、（ａ）はＮＡＴ変換前、（ｂ）はＮＡＴ変換後をそれぞれ示している。
【図５】本発明の実施形態に係るＮＡＴ変換プログラムが受信するREGISTERレスポンスの一例を示す図であって、（ａ）はＮＡＴ変換前、（ｂ）はＮＡＴ変換後をそれぞれ示している。
【図６】本発明の実施形態に係るＮＡＴ変換プログラムが受信するINVITEリクエストのＮＡＴ変換前の一例を示す図である。
【図７】本発明の実施形態に係るＮＡＴ変換プログラムが受信するINVITEリクエストのＮＡＴ変換後の一例を示す図である。
【符号の説明】
【００８４】
１      アプリケーション（内線端末）
２      ＮＡＴ変換プログラム（変換アダプタ）
３      入力部
４      出力部
５      記憶部
６      通信部
７      制御部
８      バス
１１    ＳＩＰアプリケーション（ＳＩＰ処理プログラム）
１２    ＳＩＰ制御部（ＳＩＰ制御手段）
１３    メディアアプリケーション
１４    メディア制御部
１５    アドレス登録手段
１６    セッション要求手段
２１    アドレス変換手段
２２    セッション制御手段
２３    セッション応答手段（ＳＩＰ制御用スレッド）
２４    変更先アドレス用メディア応答手段（受信用スレッド）
２５    変更元アドレス用メディア応答手段（送信用スレッド）
３０    内線側ネットワーク端末
３１    ルータ
４０    外線側ネットワーク端末
５０    ＳＩＰサーバ（レジストラ）
ＮＷ    ＩＰ網
【図１】
2010011120.tif 000003
【図２】
2010011120.tif 000004
【図３】
2010011120.tif 000005
【図４】
2010011120.tif 000006
【図５】
2010011120.tif 000007
【図６】
2010011120.tif 000008
【図７】
2010011120.tif 000009