説明

UNI接続におけるNAT変換装置およびNAT変換プログラム

【課題】内線側端末と、UNI接続された外線側端末との通信において、中継サーバを用いずにSIPの呼制御とメディアストリームデータとにおいてNAT変換を行う技術を提供する。
【解決手段】NAT変換プログラム2は、コンピュータを、内線端末1からIP網NWへの送信情報の発信先を、レジストラに登録されるIPアドレスへ変換してからIP網NWへ送信し、IP網NWから、登録されたIPアドレスへの送信情報の送信先を逆変換してから内線端末1へ送信するアドレス変換手段、および、ポート番号を含むメディア情報として内線側の情報と外線側の情報とを取得するSIP制御用スレッド、セッション確立後に外線側端末から内線端末1へのマルチメディアデータを中継受信する受信用スレッド、セッション確立後に内線端末1から外線側端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段として機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、UNI(User-Network Interface)接続におけるNAT変換(Network Address Translation)装置およびNAT変換プログラムに係り、特に、SIP(Session Initiation Protocol)を利用した端末間の通信制御サービスにおいて、SIPの呼制御で用いられるアドレスのNAT変換とマルチメディアデータで用いられるアドレスのNAT変換とを提供するNAT変換装置およびNAT変換プログラムに関するものである。
【背景技術】
【0002】
プライドート(内線側)ネットワークの端末(内線側ネットワーク端末)と、外線側ネットワークの端末(外線側ネットワーク端末)との通信においては、一般に、端末間のセッション制御についてはSIPに基づいて行われ、音声などのマルチメディアデータの送受信についてはエンド端末間でRTP(Real-time Transport Protocol)に基づいて行われる。ここで、SIPは、IP(Internet Protocol)に基づいた通信により、セッション制御を行うためのプロトコルであり、RTPは、音声や映像などのメディアを、IPによりリアルタイムに伝送するためのプロトコルである。以下では、マルチメディアデータについて、RTP/RTCP(Real-time Transport Control Protocol)によって送受信が行われるデータストリームのことをメディアストリームデータ(RTP/RTCP)と表記する。
【0003】
内線側ネットワーク端末と、外線側ネットワーク端末との通信においては、例えば、次の3つの課題がある。
(課題1)内線側ネットワークのプライベートなIPアドレスを割り当てられた端末は、グローバルIPアドレスに変換することなしでは外線側ネットワーク端末と接続することができない(NAT越えの問題)。
(課題2)外線側ネットワーク端末のネットワークヘの接続インタフェースがUNI(ユーザの利用する端末機器とネットワークとを接続するためのインタフェース)の場合(一般のIP電話加入者がネットワークに接続する形態と同一の場合)には、外線側ネットワーク端末および内線側ネットワーク端末には、それぞれ、SIPの呼制御で用いられるSIPメッセージ(SIP電文)と共にメディアストリームデータ(RTP/RTCP)が同一LAN(Local Area Network)上に流れる。そのため、SIPメッセージのヘッダ部のデータと、ボディ部のSDP(Session Description Protocol)で記述されたデータとに対してそれぞれ内線側ネットワーク内で割り当てられたプライベートなIPアドレスおよびポート番号を、外線側ネットワークに対するIPアドレスおよびポート番号へと透過的に変換する必要がある。
(課題3)SIPとメディアストリームデータ(RTP/RTCP)との両方の制御を考慮すると、ポート番号については、呼確立時のポート番号が、メディアストリームデータ(RTP/RTCP)の送受信時においても維持され続けるとは限らず、メディア変更により変わる場合がある。つまり、呼確立時のポート番号(アドレス)は不変であるとは言えない。そのため、呼確立時のポート番号を、呼確立以降、動的に変換する仕組みが必要となっている。
【0004】
このような課題を解決するものとして、従来、例えば、次の4つの方法が知られている。
1)UPnP−IGD(Universal Plug and Play−Internet Gateway Device)を利用する方法(例えば、特許文献1、特許文献2参照)。
2)STUN(Simple Traversal of UDP Through NATs)を利用する方法(非特許文献1参照)。
3)TURN(Traversal Using Relay NAT)を利用する方法(非特許文献2参照)。
4)トランザクションやダイアログ状態や変換アドレスの管理を工夫する方法(特許文献3参照)。
【特許文献1】特開2004−254010号公報
【特許文献2】特開2007−43374号公報
【特許文献3】特開2005−198156号公報
【非特許文献1】J. Rosenberg, J. Weinberger, ”STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)”, RFC3489, IETF, (2003)
【非特許文献2】J. Rosenberg, R. Mahy, and C. Huitema, "Traversal using relay NAT (TURN)", Internet-Draft, IETF, (2005)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の方法には、例えば、次の4つの問題がある。
1)外部に、グローバルなIPアドレスを取得するための中継サーバを必要とする。
2)SIP、RTP、RTCP用にそれぞれIPアドレスを取得する必要がある。
3)IPアドレス取得のためのプロトコルシーケンスを端末側プログラムで実装する必要がある。
4)中継サーバを利用するクライアントが増えるほど、その中継サーバの負荷が高くなり、メディアストリームデータ(RTP/RTCP)の遅延や損失の恐れがある。
【0006】
そこで、本発明では、前記した問題を解決し、内線側ネットワーク端末と、ネットワークの接続インタフェースがUNIである外線側ネットワー端末との通信において、外線側にグローバルなIPアドレスを取得するための中継サーバを用いることなく、SIPの呼制御で用いられるアドレスのNAT変換とメディアストリームデータで用いられるアドレスのNAT変換とを行うことができる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、前記目的を達成するために創案されたものであり、本発明のうち請求項1に記載のNAT変換装置は、第1のIPアドレスが付与された内線端末と、その外線側のIP網への接続インタフェースがUNIである第2のIPアドレスが付与された外線側ネットワーク端末との間において、SIPの呼制御で用いられるアドレスのNAT変換と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのNAT変換とを行うNAT変換装置であって、前記内線端末から外線側へ送信される情報の発信先を、前記IP網に含まれるSIPサーバへ登録されるIPアドレスへと変換し、前記発信先が変換された情報を前記IP網へ送信すると共に、前記IP網から前記登録されたIPアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段と、前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うSIP制御用スレッドと、SIPセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッドと、SIPセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段と、を備えることを特徴とする。
【0008】
また、前記課題を解決するために、請求項3に記載のNAT変換プログラムは、第1のIPアドレスが付与された内線端末と、その外線側のIP網への接続インタフェースがUNIである第2のIPアドレスが付与された外線側ネットワーク端末との間において、SIPの呼制御で用いられるアドレスのNAT変換と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのNAT変換とを行うために、コンピュータを、前記内線端末から外線側へ送信される情報の発信先を、前記IP網に含まれるSIPサーバへ登録されるIPアドレスへと変換し、前記発信先が変換された情報を前記IP網へ送信すると共に、前記IP網から前記登録されたIPアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段、前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うSIP制御用スレッド、SIPセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッド、SIPセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段として機能させることを特徴とする。
【0009】
請求項1に記載のNAT変換装置、または、請求項3に記載のNAT変換プログラムによれば、アドレス変換手段によって、内線端末から外線側へ送信される情報の発信先をSIPサーバへ登録されるIPアドレスへと変換してから、発信先が変換された情報をIP網へ送信する。ここで、SIPサーバへ登録されるIPアドレスは、重複しなければ、登録時に決定してもよいし、事前に決定しておいてもよい。また、NAT変換装置またはNAT変換プログラムは、アドレス変換手段によって、IP網から、登録されたIPアドレスへ送信される情報の送信先を逆に第1のIPアドレスへと変換してから内線端末へ送信する。そして、NAT変換装置またはNAT変換プログラムは、セッション制御手段によって、SIP制御用スレッドと、マルチメディアデータの受信用スレッドと、マルチメディアデータの送信用スレッドとを個別に作成する。ここで、SIP制御用スレッドは、SIPセッションを確立する制御を行うときに送受信されるINVITEメッセージとその応答メッセージとを中継することで、SIPセッション確立後にマルチメディアデータを送受信するための内線端末用のメディア情報と、外線側ネットワーク端末用のメディア情報とを取得することができる。そして、外線側から内線側へ送られるマルチメディアデータの受信用スレッドと、内線側から外線側へ送られるマルチメディアデータの送信用スレッドとは、SIPセッション確立後に、SIP制御用スレッドの制御の下にそれぞれ個別に機能する。したがって、NAT変換装置またはNAT変換プログラムは、外線側にグローバルなIPアドレスを取得するための中継サーバを用いることなく、SIPの呼制御で用いられるアドレスのNAT変換とメディアストリームデータで用いられるアドレスのNAT変換とを行うことができる。
【0010】
また、請求項2に記載のNAT変換装置は、請求項1に記載のNAT変換装置において、前記セッション制御手段が、前記SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたIPアドレスまたはポート番号に対応して、前記SIP制御用スレッドを新たにSIP制御用新規スレッドとして作成し、作成された前記SIP制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記SIP制御用スレッドを破棄することを特徴とする。
【0011】
また、請求項4に記載のNAT変換プログラムは、請求項3に記載のNAT変換プログラムにおいて、前記セッション制御手段が、前記SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたIPアドレスまたはポート番号に対応して、前記SIP制御用スレッドを新たにSIP制御用新規スレッドとして作成し、作成された前記SIP制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記SIP制御用スレッドを破棄することを特徴とする。
【0012】
請求項2に記載のNAT変換装置、または、請求項4に記載のNAT変換プログラムによれば、NAT変換装置またはNAT変換プログラムでは、SIPセッション確立後において、セッション制御手段が、SIPメッセージのSDPデータを監視することでメディア変更がなされたか否かを判別する。ここで、例えば、SDPデータのバージョン番号(v)の変化を検出すれば、メディア変更を検出することができる。そして、変更が確認された場合には、NAT変換装置またはNAT変換プログラムは、セッション制御手段によって、SIP制御用新規スレッドを新たに作成する。したがって、セッション制御手段は、SIP制御用新規スレッドから、新たな受信用スレッドおよび新たな送信用スレッドを作成することができる。そのため、NAT変換装置またはNAT変換プログラムは、呼確立時のポート番号を、呼確立以降、動的に変換することができる。そして、端末間の新たなネゴシエーション後には、NAT変換装置またはNAT変換プログラムは、不要となった以前のSIP制御用スレッドを破棄するので、処理負荷を低減できる。
【0013】
また、前記課題を解決するために、請求項5に記載のNAT変換プログラムは、第1のIPアドレスが付与された内線端末と、その外線側のIP網への接続インタフェースがUNIである第2のIPアドレスが付与された外線側ネットワーク端末との間において、SIPの呼制御で用いられるアドレスのNAT変換と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのNAT変換とを行うために、コンピュータを、前記内線端末から外線側のIP網を介してSIPサーバへ送信されるSIPメッセージの発信先を、前記SIPサーバへ登録されるIPアドレスへと変換し、前記発信先が変換されたSIPメッセージを前記SIPサーバへ送信すると共に、前記SIPサーバから前記登録されたIPアドレスへ送信されるSIPメッセージの送信先を逆変換し、前記送信先が逆変換されたSIPメッセージを前記内線端末へ送信するアドレス変換手段、前記内線端末から前記外線側ネットワーク端末へ送信されるINVITEメッセージの発信先を、前記登録されたIPアドレスへと変換すると共に、前記INVITEメッセージで指定されたポート番号を変換し、変換前後のポート番号の対応付けを前記変換されたIPアドレスに関連付けて保持することによりSIPセッションを確立するセッション制御手段、前記IP網から前記登録されたIPアドレスへ送信される応答メッセージを受信し、前記受信した応答メッセージの送信先を逆変換し、前記送信先が逆変換された応答メッセージを前記内線端末へ送信すると共に、前記ポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うセッション応答手段、前記SIPセッション確立後に、前記外線側ネットワーク端末から前記登録されたIPアドレスおよび前記確立されたSIPセッションにより指定されたポート番号へ送信されるマルチメディアデータを受信して前記内線端末に送信する変更先アドレス用メディア応答手段、前記SIPセッション確立後に、前記内線端末から前記外線側ネットワーク端末へ送信されるマルチメディアデータを受信し、その発信先を前記登録されたIPアドレスおよび前記確立されたSIPセッションにより変更されたポート番号へと変換し、前記発信先が変換されたマルチメディアデータを前記外線側ネットワーク端末に送信する変更元アドレス用メディア応答手段として機能させることを特徴とする。
【0014】
かかる構成によれば、NAT変換プログラムは、アドレス変換手段によって、内線端末から外線側へ送信される情報の発信先をSIPサーバへ登録されるIPアドレスへと変換してから、発信先が変換された情報をIP網へ送信する。また、NAT変換プログラムは、アドレス変換手段によって、IP網から、登録されたIPアドレスへ送信される情報の送信先を逆に第1のIPアドレスへと変換してから内線端末へ送信する。そして、NAT変換プログラムは、セッション制御手段によって、内線端末から外線側ネットワーク端末へ送信されるINVITEメッセージの発信先およびポート番号を変換しそれぞれ関連付けて保持することによりSIPセッションを確立する。そして、NAT変換プログラムは、SIPセッションを確立するために、セッション応答手段によって、IP網から受信した応答メッセージの送信先を逆変換してから内線端末へ送信すると共に、SIPセッションを確立する制御を行うときに送受信されるINVITEメッセージとその応答メッセージとを中継することで、内線端末用のメディア情報と、外線側ネットワーク端末用のメディア情報とを取得する。そして、NAT変換プログラムは、SIPセッション確立後においては、変更先アドレス用メディア応答手段によって、外線側から送信されるマルチメディアデータを受信して内線端末に送信し、変更元アドレス用メディア応答手段によって、内線端末から外線側へ送信されるマルチメディアデータを中継して、その発信先を示すIPアドレスおよびポート番号を変換する。したがって、NAT変換プログラムは、外線側にグローバルなIPアドレスを取得するための中継サーバを用いることなく、SIPの呼制御で用いられるアドレスのNAT変換とメディアストリームデータで用いられるアドレスのNAT変換とを行うことができる。
【0015】
また、請求項6に記載のNAT変換プログラムは、請求項5に記載のNAT変換プログラムにおいて、前記セッション制御手段が、スレッドとして前記セッション応答手段を作成し、前記作成したセッション応答手段から、スレッドとして前記変更先アドレス用メディア応答手段および前記変更元アドレス用メディア応答手段を作成し、前記SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたIPアドレスまたはポート番号に対応して、前記セッション応答手段を新たに新規スレッドとして作成し、作成された前記新規スレッドが端末間の新たなネゴシエーションを行った後に、変更される以前に作成された前記スレッドとしての前記セッション応答手段を破棄することを特徴とする。
【0016】
かかる構成によれば、NAT変換プログラムは、セッション制御手段によって、スレッドとしてセッション応答手段を作成し、作成されたセッション応答手段からスレッドとして変更先アドレス用メディア応答手段および変更元アドレス用メディア応答手段を作成する。そして、セッション制御手段は、SIPセッション確立後において、SIPメッセージのSDPデータを監視することでメディア変更がされたか否かを判別する。そして、変更が確認された場合には、セッション制御手段は、セッション応答手段を新たに新規スレッドとして作成する。これにより、セッション制御手段は、新たなセッション応答手段から、新たなスレッドとして新たな変更先アドレス用メディア応答手段および変更元アドレス用メディア応答手段を作成することができる。そのため、NAT変換プログラムは、呼確立時のポート番号を、呼確立以降、動的に変換することができる。そして、端末間の新たなネゴシエーション後には、NAT変換プログラムは、不要なスレッドとなった以前のセッション応答手段を破棄するので、処理負荷を低減できる。
【0017】
また、請求項7に記載のNAT変換プログラムは、請求項3ないし請求項6のいずれか一項に記載のNAT変換プログラムであって、前記内線端末の第1のIPアドレスの変換先としてのIPアドレスを前記SIPサーバへ登録するアドレス登録手段、前記SIPサーバへ登録されたIPアドレスを発信先URI情報として記述したINVITEメッセージを作成するセッション要求手段、前記作成されたINVITEメッセージに記述された発信先URI情報を、当該INVITEメッセージのヘッダ部に拡張ヘッダとして登録するSIP制御手段として機能するSIP処理プログラムとの間でプログラム間通信を行い、前記SIP処理プログラムから受信した前記INVITEメッセージから前記拡張ヘッダを取り出し、前記拡張ヘッダに登録された発信先URI情報を、前記INVITEメッセージ以降の前記IP網に対するSIPメッセージにおける送信元アドレスとして記述することを特徴とする。
【0018】
かかる構成によれば、NAT変換プログラムは、SIP処理プログラムとの間でプログラム間通信を行うことで、SIP処理プログラムがSIPサーバへアドレスを登録するために送信するSIPメッセージであるREGISTERリクエストや、その応答を示すSIPメッセージであるREGISTERレスポンスをNAT変換することができる。同様に、NAT変換プログラムは、SIP処理プログラムが送信するSIPメッセージであるINVITEリクエストや、その応答を示すSIPメッセージであるINVITEレスポンスをNAT変換することができる。そして、NAT変換プログラムは、INVITEリクエストの拡張ヘッダから取り出した発信先URI情報を保持しておくことでINVITEリクエスト以降のSIPメッセージにおいて、取り出した発信先URI情報を外線側のIP網に対する送信元アドレスとして記述することができる。ここで、プログラム間通信にはソケットを用いることができる。
【発明の効果】
【0019】
本発明によれば、外線側にグローバルなIPアドレスを取得するための中継サーバを用いることなく、SIPの呼制御で用いられるアドレスのNAT変換とメディアストリームデータで用いられるアドレスのNAT変換とを行うことができる。その結果、このような中継サーバを不必要とすることにより、SIP、RTP、RTCP用にそれぞれIPアドレスを取得する必要もなく、IPアドレス取得のためのプロトコルシーケンスを端末側プログラムで実装する必要もなく、中継サーバによるメディアストリームデータの遅延や損失がない。
【発明を実施するための最良の形態】
【0020】
以下、図面を参照して本発明のNAT変換プログラムを実施するための最良の形態(以下「実施形態」という)について詳細に説明する。
【0021】
図1は、本発明の実施形態に係るNAT変換プログラムの概要を模式的に示す図であり、図2は、本発明の実施形態に係るNAT変換プログラムの動作の一例を示すシーケンス図であり、図3は、本発明の実施形態に係るNAT変換プログラムを備える内線側ネットワーク端末の構成例を示す図である。
【0022】
[NAT変換プログラムの前提および位置づけ]
図1に示すアプリケーション1には、内線端末1と同じ符号が付されているが、アプリケーション1と表記したときには、内線端末1の機能(ソフトウェア)を表すものとする。内線端末1は、例えば、IP電話等であり、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、通信を行うためのNIC(Network Interface Card)等のコンピュータ、および、HDD(Hard Disk Drive)に記憶されRAMに展開されるプログラム(アプリケーション1)を備えている。本実施形態では、内線端末1は、さらにNAT変換プログラム(変換アダプタ)2を備えている。
【0023】
アプリケーション(内線端末)1は、端末装置の構成として、図3に示すように、入力部3と、出力部4と、記憶部5と、通信部6と、制御部7とを備えている。各部3〜7はバスライン8に接続されている。また、各部3〜7は、前記したハードウェア資源とソフトウェアとが協働することにより実現されるものである。なお、各部の詳細については後記する。
【0024】
内線端末1は、図3に示すように、例えば、LAN(Local Area Network)で、内線側ネットワーク端末30や、ファイアウォール(FW)機能を備えたルータ31と共に内線側ネットワークN1を形成している。また、内線端末1は、図3に示すように、外線側ネットワークN2としてのIP網NWを介して、例えば外線側ネットワーク端末40やSIPサーバ50に通信可能に接続されている。
【0025】
図3に示すように、内線側ネットワーク端末30は、アプリケーション1と、NAT変換プログラム(変換アダプタ)2とを備える。なお、内線側ネットワーク端末30において、図示は省略したが、入力部3、出力部4、記憶部5、通信部6および制御部7を備えているものとする。つまり、内線側ネットワーク端末30は、内線端末1と同じ構成である。ただし、内線側ネットワーク端末30は、内線専用の通信機能だけを利用する場合には、NAT変換プログラム(変換アダプタ)2を保持しない構成とすることもできる。
【0026】
外線側ネットワーク端末40は、IP網NWへの接続インタフェースがUNIである。この外線側ネットワーク端末40は、内線側ネットワーク端末30と同様な構成とすることができる。
【0027】
SIPサーバ50は、IP網NW上で、マルチメディアデータ送受信のためにSIPセッションの確立などの処理を仲介するサーバであって、プロキシサーバ(Proxy server)、リダイレクトサーバ(Redirect server)、登録サーバ(Registrar server:以下、レ単にレジストラという)の機能を有している。なお、内線側ネットワーク端末30、外線側ネットワーク端末40、SIPサーバ50等の台数は特に限定されるものではない。
【0028】
以下では、内線端末1が、発呼元のエンドポイント(UA:User Agent)、外線側ネットワーク端末40が着呼先のUAであるものとして説明する。また、内線端末1には第1のIPアドレス(変換前の登録するIPアドレス)、すなわち、発呼側のドメイン値が付与され、発呼側のユーザ名や電話番号が付与されているものとする。また、外線側ネットワーク端末40には第2のIPアドレス、すなわち、着呼側のドメイン値が付与され、着呼側のユーザ名や電話番号が付与されているものとする。
【0029】
NAT変換プログラム(変換アダプタ)2は、内線端末1と、その外線側の外線側ネットワーク端末40との間において、SIPの呼制御で用いられるアドレスのNAT変換と、両端末1,40の間で送受信されるマルチメディアデータで用いられるアドレスのNAT変換とを行うものである。
【0030】
図1では、NAT変換プログラム2の位置づけを示している。本実施形態では、NAT変換プログラム2は、SIPセッションの確立においてはSIPの呼制御を行うプログラム(アプリケーション1)とインタフェースを持ち、SIPセッション確立後はメディアストリームデータ(RTP/RTCP)を制御するアプリケーション(メディアアプリケーション13;図3参照)とインタフェースを持つ位置付けとした。なお、プログラムの実装方法はこれに限定されるものではない。
【0031】
アプリケーション1は、SIPセッションの確立のための機能としてSIPアプリケーション11と、SIP制御部12を備えている。なお、アプリケーション1の構成の詳細については後記する。
【0032】
[NAT変換プログラムの概要]
NAT変換プログラム2は、以下に示す方法で外線側ネットワーク端末40との接続およびメディアストリームデータの送受信を実現する。ここで、一連の動作は、1)レジストラヘの登録、2)SIPセッション確立、3)メディアストリームデータの送受信、4)SIPセッション切断、の各処理により分けることができる。まず、図1を参照(適宜図3参照)して、1)レジストラヘの登録、2)SIPセッション確立、の各処理を説明する。
【0033】
1)レジストラヘの登録
ここでは、SIPサーバ50(図3参照)を、その登録サーバの機能に着目してレジストラ(レジストラサーバの略)と呼ぶことにする。また、内線端末1の第1のIPアドレス(登録する変換前のIPアドレス)、すなわち、発呼側のドメイン値が、例えば「172.26.118.1」であり、レジストラに登録する変換後のIPアドレス(SIPアドレス)が例えば「A」であるものとする。また、外線側ネットワーク端末40の第2のIPアドレス、すなわち、着呼側のドメイン値が、例えば「192.168.0.1」であるものとする。
【0034】
SIPアプリケーション11は、レジストラに登録するIPアドレスを指定するSIP電文(SIPメッセージ)を示すREGISTERリクエストを作成する(ステップS1)。そして、NAT変換プログラム2は、SIPアプリケーション11からSIP制御部12を経由してREGISTERリクエストを受信すると、SIP電文(SIPメッセージ)を解析し、発信先(例えば「172.26.118.1」)を、Contactヘッダ(コンタクト)に記述されている発呼元UAのIPアドレス(例えば「A」)に変更し(ステップS2)、この発呼元UAのIPアドレス情報(例えば「A」)に紐づけてスレッド(スレッドT1)を生成する(ステップS3)。NAT変換プログラム2は、発信先を変換したREGISTERリクエストをレジストラに送信する(ステップS4:Register)。REGISTERリクエストのNAT変換例を図4に示す。なお、図4の具体的な説明は後記する。
【0035】
図1のステップS4に続いて、NAT変換プログラム2は、スレッドT1によって、レジストラからのREGISTERレスポンスを受信する(ステップS5:200 OK)。このとき、スレッドT1は、スレッドT1で保持した発呼元UAのIPアドレス情報(例えば「A」)を元に、EGISTERレスポンスのSIPヘッダの書き換えを行う。REGISTERレスポンスのNAT変換例を図5に示す。なお、図5の具体的な説明は後記する。ステップS5に続いて、NAT変換プログラム2は、Register時のコンタクトに記述されていたIPアドレス(例えば「A」)と、REGISTERレスポンス(200 OK)に設定される「P-Associated-URI」の先頭を保持する(ステップS6)。そして、NAT変換プログラム2は、SIPヘッダの書き換えを行った変換後のREGISTERレスポンスを、SIP制御部12を経由してSIPアプリケーション11に送信する。
【0036】
2)SIPセッション確立
SIPアプリケーション11は、Register登録したIPアドレス(レジストラに登録したIPアドレス)を発信先情報とするSIPメッセージを示すINVITEリクエストを作成する(ステップS7)。この場合、INVITEリクエストのヘッダ部に、例えば、「sip:001@192.168.0.1;ipaddr=172.26.118.1」が記述される。ここで、「001」は着呼側のユーザ名、「192.168.0.1」は着呼側のドメイン値、「172.26.118.1」は発呼側のドメイン値をそれぞれ示す。ステップS7に続いて、SIP制御部12は、INVITEリクエストに記述された発信先URI(Uniform Resource Identifier;例えば「172.26.118.1」)に対応したアドレス情報(例えば「A」)を、INVITEリクエストのヘッダ部に、拡張ヘッダとして登録する(ステップS8)。NAT変換前のINVITEリクエストの例を図6に示す。なお、図6の具体的な説明は後記する。
【0037】
ステップS8に続いて、NAT変換プログラム2は、SIPアプリケーション11からSIP制御部12を経由してINVITEリクエストを受信すると、INVITEリクエストのSIPヘッダのアドレスおよびボディ部のSDPで記述されたデータのメディアストリームデータ用のアドレスを、レジストラヘの登録の際に保持した発呼元UAのアドレス(例えば「A」)で書き換える。このとき、NAT変換プログラム2は、INVITEリクエストの拡張ヘッダに記述されたアドレス情報(例えば「A」)を取り出して送信元アドレスを確定し、ダイアログを生成すると共に、書き換えの前にボディ部のSDPで記述されたデータのうちのメディアストリームデータ(RTP)用のIPアドレスとポート番号(アドレス)を保持する(ステップS9)。INVITE以降のSIP電文はこのダイアログに保持されたIPアドレスで、外→内送信、内→外送信(外⇔内送信)を行う。NAT変換後のINVITEリクエストの例を図7に示す。なお、図7の具体的な説明は後記する。そして、NAT変換プログラム2は、送信元を「A」としたSIP電文を示すINVITEリクエストを送信する(ステップS10)。このINVITEリクエストは、IP網NWを介して外線側ネットワーク端末40に送信される(ステップS11:INVITE)。
【0038】
ステップS11に続いて、NAT変換プログラム2は、スレッドT1によって、INVITEレスポンス(180 Ringing/200 OK)をそれぞれ受信する(ステップS12:180/200 OK)と、INVITEレスポンスのSIPヘッダのアドレスおよびボディ部のSDPで記述されたデータのうちメディアストリームデータ用のアドレスを、レジストラヘの登録の際に保持した発呼元UAのアドレス(例えば「A」)で書き換え、SIP制御部12を経由してSIPアプリケーション11に送信する。そして、NAT変換プログラム2は、INVITEレスポンス(200 OK)の受信時には、200 OK受信時に取得したSDP情報と、ステップS9で保持したSDP情報とを元にして、スレッドT1から、新たにメディアストリームデータ(RTP)用に、NATスレッドとして2つのスレッドT2,T3を生成する(ステップS13)。なお、「180 Ringing」、「200 OK」は、応答コードを示す。
【0039】
ここで、スレッドT2は、外線側ネットワークN2からの受信専用スレッド(外→内用)であり、スレッドT3は、外線側ネットワークN2への送信専用スレッド(内→外用)である。スレッドT2はRTP用のIPアドレスとポート番号(例えばRTP#1)と、RTCP用のIPアドレスとポート番号(例えばRTCP#1)とをスレッドT1から引き継いで保持する。同様に、スレッドT3はRTP/RTCP用のIPアドレスとポート番号(例えばRTP#2/RTCP#2)をスレッドT1から引き継いで保持する。SIPセッション確立後はスレッドT1、スレッドT2、スレッドT3がそれぞれ単独で動作する。なお、スレッドT2とスレッドT3で保持する値は異なる。
【0040】
次に、図2を参照(適宜図1および図3参照)して、NAT変換プログラム2が行う各処理のうち、2)SIPセッション確立、3)メディアストリームデータの送受信、の各処理について各スレッドT1,T2,T3単位の動作を含めて説明する。なお、2)SIPセッション確立、については、図1の説明と重複する内容については適宜省略して説明する。図2に示すステップS21〜ステップS31は、SIPセッション確立までの各処理動作を示している。ただし、この例では、例えば、3PCC(3rd Party Call Control)通信を考慮しており、アプリケーション(内線端末)1から、NAT変換プログラム(変換アダプタ)2で中継したSIPメッセージは、内線側ネットワーク端末30に送信され、その後に、外線側ネットワーク端末40に送信される。
【0041】
まず、アプリケーション1は、内線側ネットワークN1にINVITEリクエストを送信する(ステップS21)。NAT変換プログラム2では、スレッドT1が、このINVITEリクエストを受信し、INVITEリクエストのボディ部のSDPで記述されたデータ(以下、SDP部という)より、内線端末1のRTP/RTCP情報を取得する(ステップS22)。これにより、図2に示すように、NAT変換プログラム2(スレッドT1)では、RTP/RTCP情報として内線端末用のメディア情報(例えばポート番号)が保持される。
【0042】
そして、NAT変換プログラム2は、INVITEリクエストをそのまま内線側ネットワーク端末30に送信する(ステップS23)。内線側ネットワーク端末30は、SDP情報付きのINVITEレスポンス(200 OK)を内線端末1側に返信する(ステップS24)。NAT変換プログラム2では、スレッドT1が、SDP情報付きのINVITEレスポンス(200 OK)を受信し、INVITEレスポンス(200 OK)をアプリケーション1に送信する(ステップS25)。
【0043】
次に、アプリケーション1は、外線側ネットワーク端末40に向けてINVITEリクエストを送信する(ステップS26)。その途中で、NAT変換プログラム2では、スレッドT1が、このINVITEリクエストを受信し、IP網NWを介して、NAT変換したINVITEリクエストを外線側ネットワーク端末40に送信する(ステップS27)。外線側ネットワーク端末40は、IP網NWを介して、SDP情報付きのINVITEレスポンス(200 OK)を内線端末1側に向けて返信する(ステップS28)。NAT変換プログラム2では、スレッドT1が、このINVITEレスポンス(200 OK)を受信し、INVITEレスポンス(200 OK)のSDP部より、外線端末(外線側ネットワーク端末40)のRTP/RTCP情報を取得する(ステップS29)。これにより、図2に示すように、NAT変換プログラム2(スレッドT1)では、RTP/RTCP情報として外線端末用の情報(例えばポート番号)が保持される。
【0044】
そして、NAT変換プログラム2は、NAT変換したINVITEレスポンス(200 OK)をアプリケーション1に送信する(ステップS30)。また、スレッドT1は、ステップS29に続いて、スレッドT1より、スレッドT2,T3を生成する(ステップS31)。ここで、図2に示すように、スレッドT2は、NAT変換プログラム2(スレッドT1)より、RTP/RTCP情報として内線端末用のメディア情報を引き継ぐ。同様に、スレッドT3は、NAT変換プログラム2(スレッドT1)より、RTP/RTCP情報として外線端末用の情報を引き継ぐ。
【0045】
SIPセッション確立後、アプリケーション(内線端末)1と、外線側ネットワーク端末40(外線端末)との間でメディアストリームデータ(RTP/RTPC)の送受信が行われる。例えば、外線側ネットワーク端末40がメディアストリームデータ(RTP/RTPC)を送信すると(ステップS32)、スレッドT2が中継受信し、このスレッドT2がメディアストリームデータ(RTP/RTPC)をアプリケーション1に送信する(ステップS33)。また、例えば、アプリケーション1がメディアストリームデータ(RTP/RTPC)を送信すると(ステップS34)、スレッドT3が中継受信し、このスレッドT3がメディアストリームデータ(RTP/RTPC)を外線側ネットワーク端末40に送信する(ステップS35)。なお、ステップS30とステップS31との順序は任意であり、ステップS32,S33とステップS34,S35との順序も任意である。
【0046】
NAT変換プログラム2は、後記するように、メディアストリームデータの送受信において、メディアが変更される場合にも対応して制御することができる。そして、通信終了時には、NAT変換プログラム2は、スレッドT1、スレッドT2、スレッドT3を終了させ、ポート番号の管理情報リソースを解放する。これにより、SIPセッションが切断される。
【0047】
[内線端末の各部の構成]
次に、NAT変換プログラム2を含む内線端末1の各部の構成について図3を参照して説明する。
入力部3は、ユーザの操作によるコマンドやデータ等の情報を受け付けるものであり、例えば、キーボード、マウス、ディスクドライブ装置などから構成される。また、入力部3は、ユーザの音声や映像等の情報を受け付けるために、例えば、マイク(音声入力装置)やカメラ(画像入力装置)を備える。
【0048】
出力部4は、入力として受け付けた各種情報、あるいは、処理結果(例えば通話相手の映像)を出力するものであり、例えば、グラフィックボード(出力インタフェース)およびそれに接続された液晶ディスプレイ等のモニタ(画像表示装置)から構成される。また、出力部4は、処理結果として、例えば、通話相手の音声を出力するスピーカ(音声出力装置)を備える。なお、入力部3および出力部4として、例えば音声については、通話者の頭部に装着可能なマイクとスピーカとを備えたヘッドセットから構成されるようにしてもよい。
【0049】
記憶部5は、例えば、一般的なハードディスク装置などから構成され、制御部7がアプリケーション1やNAT変換プログラム2として機能するための動作プログラムや、この動作プログラム等が参照する各種データ等を記憶する。
【0050】
通信部6は、所定のインタフェースから構成され、制御部7に制御され、内線側ネットワークN1内において内線側ネットワーク端末30と通信を行ったり、IP網NWを介して外線側ネットワークN2(外線側ネットワーク端末40)やSIPサーバ50との通信を行うものである。
【0051】
制御部7は、例えば、CPUおよびRAMから構成される。制御部7は、アプリケーション1として、SIPアプリケーション11と、SIP制御部12と、メディアアプリケーション13と、メディア制御部14とを備えている。
【0052】
SIPアプリケーション(SIP処理プログラム)11は、サービスアプリケーションとして、アドレス登録手段15と、セッション要求手段16とを備えている。
アドレス登録手段15は、内線端末1の第1のIPアドレスの変換先としてのIPアドレスをSIPサーバ50へ登録するものである。このアドレス登録手段15は、REGISTERリクエストを作成する。
セッション要求手段16は、SIPサーバ50へ登録されたIPアドレス(変換後のIPアドレス)を発信先URI情報として記述したINVITEメッセージを作成する。
【0053】
SIP制御部(SIP制御手段)12は、セッション要求手段16で作成されたINVITEメッセージに記述された発信先URI情報を、当該INVITEメッセージのヘッダ部に拡張ヘッダとして登録する。このSIP制御部12は、SIPセッションを確立する際にNAT変換プログラム2とのインタフェースとして機能する。
【0054】
メディアアプリケーション13は、端末間のマルチメディアデータの送受信処理を実行するアプリケーションプログラムである。このメディアアプリケーション13は、メディア制御部14を介してメディアストリームデータ(RTP/RTCP)の送受信処理を実行する。メディア制御部14は、SIPセッションを確立後、メディアストリームデータ(RTP/RTCP)を送受信する際に、NAT変換プログラム2とのインタフェースとして機能する。
【0055】
なお、SIPアプリケーション11、SIP制御部12、メディアアプリケーション13およびメディア制御部14は、CPUがハードディスク等に格納された所定のプログラムをRAMに展開して実行することによりその機能が実現されるものである。
【0056】
また、制御部7は、NAT変換プログラム(変換アダプタ)2として、アドレス変換手段21と、セッション制御手段22と、セッション応答手段23と、変更先アドレス用メディア応答手段24と、変更元アドレス用メディア応答手段25とを備えている。
【0057】
アドレス変換手段21は、内線端末1から外線側へ送信される情報の発信先を、SIPサーバ50へ登録されるIPアドレスへと変換し、発信先が変換された情報をIP網NWへ送信するものである。このアドレス変換手段21は、IP網NWから、登録されたIPアドレスへ送信される情報の送信先を逆変換し、送信先が逆変換された情報を内線端末1へ送信する。
【0058】
このアドレス変換手段21は、例えば、内線端末1から外線側のIP網NWを介してSIPサーバ50へ送信されるSIPメッセージの発信先を、SIPサーバ50へ登録されるIPアドレス(NAT変換後のIPアドレス)へと変換し、発信先が変換されたSIPメッセージをSIPサーバ50へ送信する。また、アドレス変換手段21は、例えば、SIPサーバ50から、登録されたIPアドレス(NAT変換後のIPアドレス)へ送信されるSIPメッセージの送信先を逆変換し、送信先が逆変換されたSIPメッセージを内線端末1へ送信する。
【0059】
セッション制御手段22は、SIP制御用スレッドと、マルチメディアデータの受信用スレッド(単に受信スレッドという)と、マルチメディアデータの送信用スレッド(単に送信スレッドという)とを作成するものである。本実施形態では、セッション制御手段22は、まず、SIP制御用スレッドを作成し、作成したSIP制御用スレッドから受信用スレッドおよび送信用スレッドを作成する。
【0060】
SIP制御用スレッドは、マルチメディアデータを送受信するためのポート番号を含むメディア情報(単にメディア情報という)として、内線端末用のメディア情報と、外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うものである。このSIP制御用スレッドは、セッション応答手段23に対応する。また、SIP制御用スレッドは、具体的には前記したスレッドT1のことである。
【0061】
受信用スレッドは、SIPセッション確立後に、内線端末用のメディア情報に基づいて、外線側ネットワーク端末40から内線端末1へのマルチメディアデータを中継受信するものである。この受信用スレッドは、変更先アドレス用メディア応答手段24に対応する。また、受信用スレッドは、具体的には前記したスレッドT2のことである。
【0062】
送信用スレッドは、SIPセッション確立後に、外線側ネットワーク端末用のメディア情報に基づいて、内線端末1から外線側ネットワーク端末40へのマルチメディアデータを中継送信するものである。この送信用スレッドは、変更元アドレス用メディア応答手段25に対応する。また、送信用スレッドは、具体的には前記したスレッドT3のことである。
【0063】
また、本実施形態では、セッション制御手段22は、内線端末1から外線側ネットワーク端末40へ送信されるINVITEメッセージの発信先を、登録されたIPアドレス(変換後のIPアドレス)へと変換すると共に、INVITEメッセージで指定されたポート番号を変換し、変換前後のポート番号の対応付けを、変換されたIPアドレスに関連付けて保持することによりSIPセッションを確立する。
【0064】
また、本実施形態では、セッション制御手段22は、SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別する。変更された場合には、セッション制御手段22は、変更されたIPアドレスまたはポート番号に対応して、SIP制御用スレッドを新たに作成し、端末間の新たなネゴシエーション後に、変更される以前に作成されたSIP制御用スレッドを破棄する。セッション制御手段22は、例えば、SDPデータのバージョン番号(v)の変化を検出することで、メディア変更を検出する。
【0065】
セッション応答手段23は、前記したSIP制御用スレッドに対応する。このセッション応答手段23は、例えば、IP網NWから、登録されたIPアドレス(変換後のIPアドレス)へ送信される応答メッセージを受信し、受信した応答メッセージの送信先を逆変換し、送信先が逆変換された応答メッセージを内線端末1へ送信する。
【0066】
変更先アドレス用メディア応答手段24は、前記した受信用スレッドに対応する。この変更先アドレス用メディア応答手段24は、例えば、SIPセッション確立後に、外線側ネットワーク端末40から、登録されたIPアドレス(変換後のIPアドレス)および確立されたSIPセッションにより指定されたポート番号へ送信されるマルチメディアデータ(RTP/RTCP)を受信して内線端末1に送信する。
【0067】
変更元アドレス用メディア応答手段25は、前記した送信用スレッドに対応する。この変更元アドレス用メディア応答手段25は、例えば、SIPセッション確立後に、内線端末1から外線側ネットワーク端末40へ送信されるメディアストリームデータ(RTP/RTCP)を受信し、その発信先を、登録されたIPアドレス(変換後のIPアドレス)および確立されたSIPセッションにより変更されたポート番号へと変換し、発信先が変換されたメディアストリームデータ(RTP/RTCP)を外線側ネットワーク端末40に送信する。
【0068】
本実施形態のNAT変換プログラム2は、SIPアプリケーション11との間で、ソケット等のプログラム間通信を行い、SIPアプリケーション11からSIP制御部12を経由して受信したINVITEメッセージから拡張ヘッダを取り出し、拡張ヘッダに登録された発信先URI情報(変換後のIPアドレス)を、INVITEメッセージ以降のIP網NWに対するSIPメッセージにおける送信元アドレスとして記述する。
【0069】
なお、アドレス変換手段21、セッション制御手段22、セッション応答手段23、変更先アドレス用メディア応答手段24および変更元アドレス用メディア応答手段25は、CPUがハードディスク等に格納された所定のプログラムをRAMに展開して実行することによりその機能が実現されるものである。NAT変換プログラム2は、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0070】
[メディア変更時の制御]
NAT変換プログラム2によるメディア変更時の制御について、図2を参照して説明する。図2のステップS32〜S35のようにメディアストリームデータ(RTP/RTCP)が送受信されているときに、NAT変換プログラム2は、スレッドT1において、SDP部が存在するSIP電文を受信すると、セッション制御手段22によって、SDP部のプロパティバージョン(v)ラインからバージョンをチェックする。例えば、図6および図7に示した例では、SDP部の1行目に「v=0」が記述されている。
【0071】
仮に、SDP部のプロパティバージョン(v)ラインのバージョンがSIPセッション確立時に保持したバージョンと異なる場合、NAT変換プログラム2は、セッション制御手段22によって、メディアのポート番号に変更がないかチェックする。SIP電文が外線側ネットワークN2から受信したものである場合には、スレッドT2で保持しているRTPのポート番号が比較対象となる。例えば、図7に示した例では、SDP部の6行目に、ポート番号として「m=audio 54656 RTP/AVP 0」が記述されているので、「54656」が比較される数値である。一方、外線側ネットワークN2ヘのSIP電文の場合、スレッドT3で保持しているRTPのポート番号と比較を行う。例えば、図6に示した例では、SDP部の6行目に、ポート番号として「m=audio 7170 RTP/AVP 0」が記述されているので、「7170」が比較される数値である。
【0072】
仮に、SDP部のポート番号がSIPセッション確立時に保持したポート番号と異なる場合、NAT変換プログラム2は、セッション制御手段22によって、受信したSIP電文のSDP部に記述されたポート情報を保持し、そのポート情報を保持したまま待機し、メディア変更処理を終了させる。ここで、メディア変更処理とは、図2に示すステップS22の処理やステップS29の処理によって、メディア変更後の内線端末用のメディア情報および外線端末用のメディア情報を新たに取得することを意味する。このメディア変更処理が終了したときに、すなわち、RTP/RTCP用のポート情報が新たに揃うと、NAT変換プログラム2は、セッション制御手段22によって、以前作成したスレッドT1からスレッドT2,T3までを終了させ、新たにメディア変更で保持したポート番号を使用して新たにSIP制御用新規スレッド(新規スレッドT1)を作成し、この新規スレッドT1から、新たな送信用スレッドと新たな受信用スレッドとを起動する。
【0073】
[SIPメッセージの具体例]
次に、SIPメッセージの具体例について図4ないし図7を参照して説明する。なお、図4ないし図7に示すSIP電文の例は、図1に示した例とは異なるものであって、例えば、発呼側および着呼側のアドレス(ドメイン値)が異なっている。また、SIP電文中の「X」は、値を秘匿するための記号であり、一般的にそれぞれ異なる数値を示す。
【0074】
図4に示すREGISTERリクエストのNAT変換例では、「Call-ID」におけるIPアドレスは「172.X.X.10」である。NAT変換前のREGISTERリクエストにおいて、図4(a)の401で示す発信先の情報から、IPアドレスは「172.26.118.1」、ポート番号は「5070」であることが分かる。また、図4(a)において402で示すように、Contactヘッダ(コンタクト)に記述されている発呼元UAのIPアドレスは、「118.XXX.XXX.14」である。一方、NAT変換後のREGISTERリクエストにおいて、図4(b)の403で示す発信先の情報から、IPアドレスは「118.XXX.XXX.14」、ポート番号は「5060」であることが分かる。すなわち、図4(a)の401で示す発信先の情報は、図4(b)の403で示す発信先の情報へと変換されている。
【0075】
図5に示すREGISTERレスポンスのNAT変換例では、NAT変換前のREGISTERレスポンスにおいて、図5(a)の501で示す発信先の情報から、IPアドレスは「118.XXX.XXX.14」、ポート番号は「5060」であることが分かる。また、REGISTERレスポンスのヘッダ部の最終の2行には、「P-Associated-URI」が記述されている。このうち、1番目(先頭)の「P-Associated-URI」が、NAT変換プログラム2に保持されることとなる。一方、NAT変換後のREGISTERレスポンスにおいて、図5(b)の502で示す発信先の情報から、IPアドレスは「172.X.X.10」、ポート番号は「5070」であることが分かる。すなわち、図5(a)の501で示す発信先の情報は、図5(b)の502で示す発信先の情報へと変換されている。
【0076】
図6に示すNAT変換前のINVITEリクエストの例、および、図7に示すNAT変換後のINVITEリクエストの例は、図4および図5に示したREGISTERメッセージに対応している。図6の符号601で示す拡張ヘッダには、図4の符号402で示した登録IPアドレス(変換後のIPアドレス)として「118.XXX.XXX.14」が記述されている。
【0077】
NAT変換前には、ヘッダ部においては、図6の符号602,603で示すように、発信先の情報として、IPアドレスは「172.X.X.10」、ポート番号は「5070」であることが記述されている。また、NAT変換前には、SDP部においては、図6の符号604〜606で示すように、RTP/RTCPの発信先の情報として、IPアドレスは「172.X.X.13」であることが記述されている。
【0078】
一方、NAT変換後には、ヘッダ部においては、図7の符号702,703で示すように、NAT変換された発信先の情報として、IPアドレスは「118.XXX.XXX.14」、ポート番号は「5060」であることが記述されている。また、NAT変換後には、SDP部においては、図7の符号704〜705で示すように、RTP/RTCPの発信先の情報として、変換されたIPアドレスは「118.XXX.XXX.14」であることが記述されている。
【0079】
本実施形態によれば、外線側にグローバルなIPアドレスを取得するための中継サーバを用いることなく、SIPの呼制御で用いられるアドレスのNAT変換とメディアストリームデータで用いられるアドレスのNAT変換とを行うことができる。その結果、このような中継サーバを不必要とすることにより、SIP、RTP、RTCP用にそれぞれIPアドレスを取得する必要もなく、IPアドレス取得のためのプロトコルシーケンスを端末側プログラムで実装する必要もなく、中継サーバによるメディアストリームデータの遅延や損失がない。
【0080】
また、本実施形態によれば、送信用スレッドと受信用スレッドとを別々に有してメモリ上でIPアドレス情報のマッピングを行うので、メディアストリームデータ遅延がなく、品質を損なわない。また、本実施形態によれば、呼確立時のポート番号を、呼確立以降、動的に変換することができる。さらに、本実施形態によれば、IPアドレスを登録したりセッションの要求を行ったりするSIP処理プログラム等のソフトウェアに対して別のソフトウェアとしてNAT変換プログラムをアダプタとして利用することが可能なので、実装や運用に際して柔軟に対応することができる。
【0081】
以上、本発明の好ましい実施形態について説明したが、本発明は前記した実施形態に限定されるものではなく、本実施形態で説明した実装方法、用途、運用方法以外にも本発明は実施することができる。例えば、NAT変換プログラム2は、SIP電文のSDP部の情報を参照して変更を行うことから以下の用途にも適用可能である。
(1)異なるネットワークプロトコルの端末間の通信(IPv4からIPv6のアドレスヘの変換)に対応してもよい。
(2)メディアの帯域を変更する機能を追加することによってQoS(Quality of Service)を実装するようにしてもよい。
(3)SIP電文のうちSIPヘッダのみのNAT変換をしてSDP部の変換を行わないような限定されたシステムの用途に対応した実装としてもよい。
(4)NAT変換プログラム2の一連の動作処理のうち、「SIPセッション確立」の処理までにおいて、SIP電文のうちSDP部のみNAT変換をしてヘッダ部の変換を行わないような限定されたシステムの用途に対応した実装としてもよい。
【0082】
また、本実施形態では、NAT変換装置(変換アダプタ)が、内線端末1の制御部7として機能するNAT変換プログラム2であるものとして説明したが、NAT変換プログラム2がインストールされた一般的なコンピュータを、NAT変換装置(変換アダプタ)として構成し、このNAT変換装置(変換アダプタ)を、アプリケーション1のみがインストールされた内線端末1に接続して利用することも可能である。
【図面の簡単な説明】
【0083】
【図1】本発明の実施形態に係るNAT変換プログラムの概要を模式的に示す図である。
【図2】本発明の実施形態に係るNAT変換プログラムの動作の一例を示すシーケンス図である。
【図3】本発明の実施形態に係るNAT変換プログラムを備える内線側ネットワーク端末の構成例を示す図である。
【図4】本発明の実施形態に係るNAT変換プログラムが受信するREGISTERリクエストの一例を示す図であって、(a)はNAT変換前、(b)はNAT変換後をそれぞれ示している。
【図5】本発明の実施形態に係るNAT変換プログラムが受信するREGISTERレスポンスの一例を示す図であって、(a)はNAT変換前、(b)はNAT変換後をそれぞれ示している。
【図6】本発明の実施形態に係るNAT変換プログラムが受信するINVITEリクエストのNAT変換前の一例を示す図である。
【図7】本発明の実施形態に係るNAT変換プログラムが受信するINVITEリクエストのNAT変換後の一例を示す図である。
【符号の説明】
【0084】
1 アプリケーション(内線端末)
2 NAT変換プログラム(変換アダプタ)
3 入力部
4 出力部
5 記憶部
6 通信部
7 制御部
8 バス
11 SIPアプリケーション(SIP処理プログラム)
12 SIP制御部(SIP制御手段)
13 メディアアプリケーション
14 メディア制御部
15 アドレス登録手段
16 セッション要求手段
21 アドレス変換手段
22 セッション制御手段
23 セッション応答手段(SIP制御用スレッド)
24 変更先アドレス用メディア応答手段(受信用スレッド)
25 変更元アドレス用メディア応答手段(送信用スレッド)
30 内線側ネットワーク端末
31 ルータ
40 外線側ネットワーク端末
50 SIPサーバ(レジストラ)
NW IP網

【特許請求の範囲】
【請求項1】
第1のIPアドレスが付与された内線端末と、その外線側のIP網への接続インタフェースがUNI(User-Network Interface)である第2のIPアドレスが付与された外線側ネットワーク端末との間において、SIP(Session Initiation Protocol)の呼制御で用いられるアドレスのNAT変換(Network Address Translation)と、両端末の間で送受信されるマルチメディアデータで用いられるアドレスのNAT変換とを行うNAT変換装置であって、
前記内線端末から外線側へ送信される情報の発信先を、前記IP網に含まれるSIPサーバへ登録されるIPアドレスへと変換し、前記発信先が変換された情報を前記IP網へ送信すると共に、前記IP網から前記登録されたIPアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段と、
前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うSIP制御用スレッドと、SIPセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッドと、SIPセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段と、
を備えることを特徴とするNAT変換装置。
【請求項2】
前記セッション制御手段は、前記SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたIPアドレスまたはポート番号に対応して、前記SIP制御用スレッドを新たにSIP制御用新規スレッドとして作成し、作成された前記SIP制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記SIP制御用スレッドを破棄する、
ことを特徴とする請求項1に記載のNAT変換装置。
【請求項3】
第1のIPアドレスが付与された内線端末と、その外線側のIP網への接続インタフェースがUNIである第2のIPアドレスが付与された外線側ネットワーク端末との間において、SIPの呼制御で用いられるアドレスのNAT変換と、両端末の間で送受信されるマルチメディアデータのNAT変換とを行うために、コンピュータを、
前記内線端末から外線側へ送信される情報の発信先を、前記IP網に含まれるSIPサーバへ登録されるIPアドレスへと変換し、前記発信先が変換された情報を前記IP網へ送信すると共に、前記IP網から前記登録されたIPアドレスへ送信される情報の送信先を逆変換し、前記送信先が逆変換された情報を前記内線端末へ送信するアドレス変換手段、
前記マルチメディアデータを送受信するためのポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うSIP制御用スレッド、SIPセッション確立後に前記内線端末用のメディア情報に基づいて前記外線側ネットワーク端末から前記内線端末へのマルチメディアデータを中継受信する受信用スレッド、SIPセッション確立後に前記外線側ネットワーク端末用のメディア情報に基づいて前記内線端末から前記外線側ネットワーク端末へのマルチメディアデータを中継送信する送信用スレッドとを作成するセッション制御手段、
として機能させることを特徴とするNAT変換プログラム。
【請求項4】
前記セッション制御手段は、前記SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたIPアドレスまたはポート番号に対応して、前記SIP制御用スレッドを新たにSIP制御用新規スレッドとして作成し、作成された前記SIP制御用新規スレッドが端末間の新たなネゴシエーションを行った後に前記SIP制御用スレッドを破棄する、
ことを特徴とする請求項3に記載のNAT変換プログラム。
【請求項5】
第1のIPアドレスが付与された内線端末と、その外線側のIP網への接続インタフェースがUNIである第2のIPアドレスが付与された外線側ネットワーク端末との間において、SIPの呼制御で用いられるアドレスのNAT変換と、両端末の間で送受信されるマルチメディアデータのNAT変換とを行うために、コンピュータを、
前記内線端末から外線側のIP網を介してSIPサーバへ送信されるSIPメッセージの発信先を、前記SIPサーバへ登録されるIPアドレスへと変換し、前記発信先が変換されたSIPメッセージを前記SIPサーバへ送信すると共に、前記SIPサーバから前記登録されたIPアドレスへ送信されるSIPメッセージの送信先を逆変換し、前記送信先が逆変換されたSIPメッセージを前記内線端末へ送信するアドレス変換手段、
前記内線端末から前記外線側ネットワーク端末へ送信されるINVITEメッセージの発信先を、前記登録されたIPアドレスへと変換すると共に、前記INVITEメッセージで指定されたポート番号を変換し、変換前後のポート番号の対応付けを前記変換されたIPアドレスに関連付けて保持することによりSIPセッションを確立するセッション制御手段、
前記IP網から前記登録されたIPアドレスへ送信される応答メッセージを受信し、前記受信した応答メッセージの送信先を逆変換し、前記送信先が逆変換された応答メッセージを前記内線端末へ送信すると共に、前記ポート番号を含むメディア情報として、前記内線端末用のメディア情報と、前記外線側ネットワーク端末用のメディア情報とを取得することで端末間のネゴシエーションを行うセッション応答手段、
前記SIPセッション確立後に、前記外線側ネットワーク端末から前記登録されたIPアドレスおよび前記確立されたSIPセッションにより指定されたポート番号へ送信されるマルチメディアデータを受信して前記内線端末に送信する変更先アドレス用メディア応答手段、
前記SIPセッション確立後に、前記内線端末から前記外線側ネットワーク端末へ送信されるマルチメディアデータを受信し、その発信先を前記登録されたIPアドレスおよび前記確立されたSIPセッションにより変更されたポート番号へと変換し、前記発信先が変換されたマルチメディアデータを前記外線側ネットワーク端末に送信する変更元アドレス用メディア応答手段、
として機能させることを特徴とするNAT変換プログラム。
【請求項6】
前記セッション制御手段は、
スレッドとして前記セッション応答手段を作成し、前記作成したセッション応答手段から、スレッドとして前記変更先アドレス用メディア応答手段および前記変更元アドレス用メディア応答手段を作成し、前記SIPセッション確立後に、SIPメッセージのボディ部のSDPで記述されたデータ内のIPアドレスまたはポート番号が変更されたか否かを判別し、変更された場合には、前記変更されたIPアドレスまたはポート番号に対応して、前記セッション応答手段を新たに新規スレッドとして作成し、作成された前記新規スレッドが端末間の新たなネゴシエーションを行った後に、変更される以前に作成された前記スレッドとしての前記セッション応答手段を破棄する、
ことを特徴とする請求項5に記載のNAT変換プログラム。
【請求項7】
請求項3ないし請求項6のいずれか一項に記載のNAT変換プログラムであって、
前記内線端末の第1のIPアドレスの変換先としてのIPアドレスを前記SIPサーバへ登録するアドレス登録手段、前記SIPサーバへ登録されたIPアドレスを発信先URI情報として記述したINVITEメッセージを作成するセッション要求手段、前記作成されたINVITEメッセージに記述された発信先URI情報を、当該INVITEメッセージのヘッダ部に拡張ヘッダとして登録するSIP制御手段として機能するSIP処理プログラムとの間でプログラム間通信を行い、
前記SIP処理プログラムから受信した前記INVITEメッセージから前記拡張ヘッダを取り出し、前記拡張ヘッダに登録された発信先URI情報を、前記INVITEメッセージ以降の前記IP網に対するSIPメッセージにおける送信元アドレスとして記述する、
ことを特徴とするNAT変換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−11120(P2010−11120A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−168434(P2008−168434)
【出願日】平成20年6月27日(2008.6.27)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【出願人】(595125421)沖通信システム株式会社 (131)
【Fターム(参考)】