上記課題を解決するためになされた第1の発明は、NAT機能を有する中継装置を介して広域ネットワークに接続される複数のIP電話装置とこれらIP電話装置の呼を制御する呼制御サーバとを有するIP電話システムで用いられる中継機能付きIP電話装置であって、前記中継機能付きIP電話装置は、前記IP電話装置と音声通信を行う通常モードと、他のIP電話装置間で実行される音声通信を中継する中継モードとの2つの動作モードを有し、前記中継モードにある場合、前記呼制御サーバに対し、当該呼制御サーバを介して他のIP電話装置間で送受信される呼制御メッセージの転送を指示する転送指示手段と、前記転送指示に基づき前記呼制御サーバから転送された呼制御メッセージを受信し、当該呼制御メッセージに含まれる音声通信の通信先のIPアドレスおよびポート番号を自装置のIPアドレスおよびポート番号にそれぞれ書き換え、当該書き換え後の呼制御メッセージを前記呼制御サーバに返送するメッセージ中継手段と、前記呼制御メッセージの送受信により前記他のIP電話装置間で音声通信を実行するための接続が確立された後、当該IP電話装置の一方から前記自装置のIPアドレスおよびポート番号宛に送信される通信データを他方に転送することにより前記音声通信を中継する音声中継手段とを備えた構成とする。
これによると、中継機能付きIP電話装置が自ら音声通信を行わない場合に他のIP電話装置間の音声通信を中継することで、音声通信を行うIP電話装置が接続される中継装置のNATの種別によらず、簡易かつ安価な構成によりIP電話装置間の音声通信を実現できる。また、音声通信を行うIP電話装置は、特別な機能を必要とすることなく、従来と同様の手順で音声通信を実行できるという利点もある。
この場合、中継機能付きIP電話装置は、自ら音声通信を行わない場合に中継処理(中継モード)を実行することで、自装置の通常の音声通信処理(通常モード)への影響(処理遅延等)を抑制することができる。
上記課題を解決するためになされた第2の発明は、前記中継機能付きIP電話装置は、完全コーン型のNAT機能を有する中継装置を介して前記広域ネットワークに接続され、前記転送指示手段は、前記呼制御サーバに対して転送指示要求パケットを継続的に繰り返し送信することで前記呼制御メッセージの転送を指示する一方、前記パケットの送信を停止することで前記転送の指示を解除する構成とする。
これによると、他のIP電話装置間の音声通信を中継する際のインバウンド通信を可能とするために継続的にパケットを送信し、このパケット送信の有無により、呼制御サーバに対する呼制御メッセージの転送の指示または解除を行うので、外部から自装置の所定ポートにアクセス可能な時間を必要最小限としてセキュリティを高めることができる。
上記課題を解決するためになされた第3の発明は、前記転送指示要求パケットは自装置において音声中継に使用するポートから送信する構成とする。
これによると、呼制御メッセージの指示または解除と、音声通信の中継のためのUDPホールパンチングを連動して行うことが可能となり、動作の簡易化と高能率化を図ることができる。
上記課題を解決するためになされた第4の発明は、前記中継モードを実行中に前記通常モードへ移行する場合、前記音声通信を実行するIP電話装置の一方に対して前記IP電話装置間の接続を再度確立するための呼制御メッセージの送出を指示するとともに、前記呼制御サーバに対して前記IP電話装置間で送受信される呼制御メッセージを他の中継機能付きIP電話装置へ転送するように指示する中継変更指示手段を更に備えた構成とする。
これによると、中継機能付きIP電話装置は、音声通信の中継を実行中に自ら音声通信を行う必要が生じた場合、その中継処理を他の中継機能付きIP電話装置に容易に引き継ぐことができ、中継していた音声通信が中止されるという不都合を回避することができる。
上記課題を解決するためになされた第5の発明は、上記第1乃至第4の発明のいずれかに係る中継機能付きIP電話装置を備えたIP電話システムである。
上記課題を解決するためになされた第6の発明は、前記呼制御サーバは、前記IP電話装置からの登録要求を受信して前記IP電話装置を呼制御メッセージまたは通信データを中継する中継端末として中継端末登録テーブルに登録する中継端末登録手段と、他のIP電話装置間で送受信される呼制御メッセージを前記中継端末登録テーブルに登録された中継端末に転送する転送手段とを備えた前記呼制御サーバは呼制御メッセージまたは通信データを中継する端末を登録する中継端末登録テーブル手段と、前記端末からの登録要求を受信して前記端末を中継端末として登録する中継端末登録手段とを備えた構成とする。
これによると、呼制御サーバは、呼制御メッセージをどの端末に中継させるか、自動的に判別することができ、システムの設定操作性が向上する。
上記課題を解決するためになされた第7の発明は、NAT機能を有する中継装置を介して広域ネットワークに接続される複数のIP電話装置とこれらIP電話装置の呼を制御する呼制御サーバとを有するIP電話システムで用いられる通信中継方法であって、前記IP電話装置の少なくとも一つは、前記IP電話装置と音声通信を行う通常モードと、他のIP電話装置間で実行される音声通信を中継する中継モードとの2つの動作モードを有し、前記中継モードにある場合、前記呼制御サーバに対し、当該呼制御サーバを介して他のIP電話装置間で送受信される呼制御メッセージの転送を指示し、前記転送指示に基づき前記呼制御サーバから転送された呼制御メッセージを受信し、当該呼制御メッセージに含まれる音声通信の通信先のIPアドレスおよびポート番号を自装置のIPアドレスおよびポート番号にそれぞれ書き換え、当該書き換え後の呼制御メッセージを前記呼制御サーバに返送し、前記呼制御メッセージの送受信により前記他のIP電話装置間で音声通信を実行するための接続が確立された後、当該IP電話装置の一方から前記自装置のIPアドレスおよびポート番号宛に送信される通信データを他方に転送することにより前記音声通信を中継する。
これによると、中継機能付きIP電話装置が自ら音声通信を行わない場合に他のIP電話装置間の音声通信を中継することで、音声通信を行うIP電話装置が接続される中継装置のNATの種別によらず、簡易かつ安価な構成によりIP電話装置間の音声通信を実現できる。
以下、本発明の実施の形態について図面を参照しながら説明する。
図1は本願発明に係る中継機能付きIP電話端末を備えたIP電話システムの概略を示すシステム構成図であり、図2はIP電話端末の機能ブロック図であり、図3はSIPサーバの機能ブロック図である。
このIP電話システム1は、複数のIP電話端末A〜E及びSIPサーバ(呼制御サーバ)2が、インターネット(広域ネットワーク)3を介してそれぞれ通信可能に接続された構成を有する。IP電話端末A〜Eは、それぞれLAN(Local Area Network)4〜8に属しており、NATルータ(NAT機能を有する中継装置)A〜Eを介してインターネット3に接続される。
IP電話端末A〜Eは、SIP(Session Initiation Protocol)のUAC(User Agent Client)として機能する。IP電話端末C,Dは、IP電話端末A,B,Eと同様に他のIP電話端末と音声通信を行う通常モードと、他のIP電話端末間で実行される音声通信を中継する中継モードとの2つの動作モードを有する中継機能付きIP電話端末(以下、「中継端末」という。)であり、自ら音声通信を行わない場合には中継モードを実行して他のIP電話端末間の音声通信を中継可能である。
中継端末C,Dは、図2に示すように、呼制御部11、ダイヤル操作部12、音声パケット送受信部13、ハンドセット部14、中継端末登録部(転送指示手段)15、中継動作設定部16、SIPメッセージ中継部(メッセージ中継手段、中継変更指示手段)17、中継用アドレス情報格納部18、音声パケット中継部(音声中継手段)19、及びネットワークI/F部20を備える。ここで、中継端末登録部15、中継動作設定部16、SIPメッセージ中継部17、中継用アドレス情報格納部18、及び音声パケット中継部19については、中継端末C,Dが有する中継機能に関わるものであり、その他についてはIP電話端末A,B,Eと共通の構成である。
呼制御部11は、ユーザによるダイヤル操作部12の操作に応じて、SIPに基づき相手装置(他のIP電話端末)との間でSIPサーバ2を介してSIPメッセージを交換しながら呼接続を確立するシグナリング処理を行う。また、呼制御部11は、上記通常モード及び中継モードの2つの動作モードを選択的に実行すべく各部の処理を制御する。動作モードの選択には、IP電話システム1の使用形態に応じて種々の方法を用いることができる。例えば、各動作モードについて予め実行時間を設定したり、或いは、自装置が他のIP電話端末と音声通信を行わない場合には常に中継モードを実行させたりすることができる。
音声パケット送受信部13は、呼接続確立後の音声パケットの送受信を始めとして、VoIP(voice over internet protocol)に基づき相手装置との間で実行される音声通信に関する種々の処理を実行する。音声パケット送受信部13は、送信データ及び受信データのA/D及びD/A変換機能と、所定の音声符号化方式(例えば、ITU−T勧告G.711、G.729等)に基づく音声コーデック機能とを有しており、ユーザが使用するハンドセット部14から入力される音声のアナログ信号をA/D変換及び符号化して送信データとする一方、符号化された受信データを復号化及びD/A変換して生成したアナログ信号をハンドセット部14に出力する。
中継端末登録部15は、SIPサーバ2に対して自装置が中継モードにあることを登録(以下、「中継端末登録」という。)するための処理を実行する。より詳細には、中継端末登録部15は、自装置が中継モードにある場合、SIPサーバ2に対して中継端末登録のリクエストを含むパケットを継続的に繰り返し送信する一方、自装置が通常モードにある場合、そのパケットの送信を停止する。中継動作設定部16には、中継端末登録部15が実行する中継端末登録に必要な情報が設定され、例えば、パケットの送信先の情報、パケットの送信タイミング、パケットを送出するポート番号の情報等が設定される。
後述するように、この中継動作設定部16によるパケット送信は、SIPサーバ2に対するSIPメッセージの転送指示として機能し、これを受けたSIPサーバ2は、他のIP電話端末間で送受信されるSIPメッセージを登録中の中継端末(即ち、SIPサーバ2がパケットを受信中の中継端末)に対して適宜転送する。この転送指示は、中継端末の登録が解除される(即ち、中継端末からのパケットの受信が停止する)ことで解除される。また、パケットは、UDPホールパンチング(UDP hole punching)として後の音声通信を中継する際に使用するポート(以下、「音声中継ポート」という。)から送出され、これにより、音声中継ポートの穴あけが行われ、他のIP電話端末からのインバウンド通信が可能となる。
SIPメッセージ中継部17は、上記中継端末登録に基づきSIPサーバ2から転送されたSIPメッセージを受信し、そのSIPメッセージ上のSDP(Session Description Protocol)記述文書(以下、単に「SDP」という。)に含まれる音声通信の通信先を示すIPアドレス及びポート番号を自装置の所定のIPアドレス及びポート番号にそれぞれ書き換え、その書き換え後のSIPメッセージを再びSIPサーバ2に返送する。ここで、書き換え用いられる自装置のIPアドレス及びポート番号は、中継用アドレス情報として中継用アドレス情報格納部18に予め格納される。ここで用いられる自装置のポート番号は、上述の音声中継ポートの番号である。なお、SIPメッセージ中継部17が上記IPアドレス及びポート番号の書き換え処理のみを実行し、その書き換え処理に関わるSIPメッセージの送受信の処理を、通常のSIPメッセージと同様に呼制御部11が実行する構成とすることもできる。
音声パケット中継部19は、上述の中継モードの実行によって他のIP電話端末間の呼接続が確立された後、メディアセッションにおいてそれらIP電話端末間で送受信される音声パケットの中継処理を行う。
ネットワークI/F部20は、LANに接続され、所定の通信プロトコルに従って相手装置との間でSIPメッセージ及び音声パケットの送受信を実行する。
NATルータA〜Eは、IP電話端末A〜Eが各LAN4〜8において通信に使用するプライベートなIPアドレスと、その外部のインターネット3を介した通信に使用するグローバルなIPアドレスとを透過的に相互変換するためのNAT機能を搭載したブロードバンドルータである。NATルータA〜Eは、そのNAT機能により、NATの内側から外側へ開始されるアウトバウンド通信を許容する一方、NATの外側から内側へ開始されるインバウンド通信を原則として拒否し、また、時間経過等によりNATの変換テーブルのエントリ(登録内容)を消滅させることで、ファイアウォール的な役割も果たす。なお、ここで用いる用語「NAT」は、プライベートアドレスとグローバルアドレスとを変換する技術に限定されるものではなく、IPアドレスの変換に加えてポート番号を変換するNAPT(Network Address Port Translation)等の類似技術を含むものとする。
ここで、NATルータA,B,EのNAT機能は、実装上の挙動から分類されるNAT種別(完全コーン型(Full Cone)、制限付きコーン型(Restricted Cone)、ポート制限付きコーン型(Port Restricted Cone)、対称型(Symmetric))のうちの何れに属するものでもよい。一方、中継端末C,Dが接続されるNATルータC,DのNAT機能は、同一のプライベートなIPアドレス及びポート番号と同一のグローバルなIPアドレス及びポート番号とのマッピングが任意の通信相手に対して保持される完全コーン型であることが必要である。場合によっては、中継端末C,DがNATルータを介さずにインターネット3に接続される構成も可能である。
SIPサーバ2は、SIPのUAS(User Agent Server)として機能する。SIPサーバ2は、図3に示すように、端末登録部31、端末テーブル32、SIPメッセージ中継部33、中継端末登録部34、及び中継端末テーブル35を備える。
端末登録部31は、各IP電話端末A〜EからREGISTERメッセージを受信することにより、IP電話端末A〜Eの位置情報(IPアドレス、ポート番号等)を取得し、それらを登録及び管理するレジストラ機能を有する。IP電話端末A〜Eの位置情報は、端末テーブル32に記憶され、必要に応じて適宜更新される。
SIPメッセージ中継部33は、各IP電話端末A〜Eからのリクエストに応じて、それら装置間の呼接続のためのSIPメッセージの中継を行う。
中継端末登録部34は、中継端末C,Dの中継端末登録部15からのリクエストに従って中継端末登録を実行する。より詳細には、中継端末登録部34は、中継端末から中継端末登録のリクエストを含むパケットを継続的に受信している間は、当該中継端末が中継モードにあると認識し、その位置情報(IPアドレス、ポート番号等)を中継端末テーブル35に記憶する。一方、そのパケットの受信が停止すると、当該中継端末の登録を解除するために、その位置情報を中継端末テーブル35から消去する。
なお、中継端末登録部34は、中継モードにある複数の中継端末を登録した場合、それら中継端末に対して所定の優先順位(例えば、登録順)を設定し、その優先順位に基づき各中継端末に中継処理を実行させることができる。また、後述するように、中継端末登録部34は、中継端末が中継モードを実行中に前記通常モードへ移行する場合、他の中継端末にその中継処理を引き継ぐための処理を実行する。
ネットワークI/F部36は、インターネット3に接続され、所定の通信プロトコルに従ってネット上の各IP電話端末A〜Eとの間でSIPメッセージ等の送受信を実行する。
図4は本願発明に係るIP電話システムの基本動作を示すシーケンス図である。ここでは、IP電話端末A及びIP電話端末Bをそれぞれ発信側及び着信側とし、それらの音声通信を中継端末Cが中継する場合を示している。
図4に示すように、IP電話端末A,B及び中継端末Cは、それぞれ起動後にSIPサーバ2に対してREGISTERメッセージを適宜送信し、SIPサーバ2から200 OKメッセージを受信することで位置情報等の登録処理を行う(1001)。この登録処理において、SIPサーバ2は、各REGISTERメッセージのヘッダ情報から、IP電話端末AのIPアドレスIP−A及びポート番号P−A、IP電話端末BのIPアドレスIP−B及びポート番号P−B、中継端末CのIPアドレスIP−C及びポート番号P−Cをそれぞれ取得する。
中継端末Cは、自ら音声通信を行わないと判断して中継モードに移行すると、SIPサーバ2に対して中継端末登録のリクエストを含むパケットの送信を開始する(1002)。このパケットの送信は、後の音声通信を中継する際に使用する音声中継ポートS3から送出され、音声通信が終了するまで継続的に繰り返し実行される。
次に、IP電話端末Aは、ユーザによるダイヤル操作を受けて(1003)、SIPサーバ2に対してIP電話端末B宛のINVITEメッセージを送信する(1004)。ここで、1004のINVITE(SDP:IP−A,S1)における「SDP:IP−A,S1」の表記は、INVITEメッセージ上のSDPに後の音声通信の通信先となるIPアドレスIP−A及びポート番号S1が含まれていることを示す(以下、200 OKメッセージの場合を含め同様)。
SIPサーバ2は、そのINVITEメッセージを受信すると、そのメッセージを中継端末Cに対して転送する(1005)。中継端末Cは、転送されたINVITEメッセージを受信すると、そのINVITEメッセージ上のSDPに含まれる音声通信の通信先のIPアドレスIP−A及びポート番号S1を自装置のIPアドレスIP−C及びポート番号S3にそれぞれ書き換え、その書き換え後のINVITEメッセージをSIPサーバ2に返送する(1006)。SIPサーバ2は、そのINVITEメッセージをそのままIP電話端末Bに対して転送する(1007)。
そのINVITEメッセージを受信したIP電話端末Bは、呼び出し中を通知するIP電話端末A宛の180 RingingメッセージをSIPサーバ2に対して送信し、その180 Ringingメッセージは、先のINVITEメッセージと同様に、中継端末C経由でIP電話端末Aに送られる(1008)。続いて、IP電話端末Bでオフフックが実行されると(1009)、IP電話端末Bは、SIPサーバ2に対してIP電話端末A宛の200 OKメッセージを送信する。この200 OKメッセージ上のSDPには、後の音声通信の通信先となるIPアドレスIP−B及びポート番号S2が含まれる(1010)。SIPサーバ2は、その200 OKメッセージを受信すると、中継端末Cに対して転送する(1011)。中継端末Cは、転送された200 OKメッセージを受信すると、その200 OKメッセージ上のSDPに含まれるIPアドレスIP−B及びポート番号S2を自装置のIPアドレスIP−C及びポート番号S3にそれぞれ書き換え、その書き換え後の200 OKメッセージをSIPサーバ2に返送する(1012)。SIPサーバ2は、その200 OKメッセージをそのままIP電話端末Aに対して転送する(1013)。
その200 OKメッセージを受信したIP電話端末Aは、その受信を通知するために、IP電話端末B宛のACK メッセージをSIPサーバ2に対して送信し、そのACKメッセージは、先の180 Ringingメッセージと同様に、中継端末C経由でIP電話端末Bに送られる(1014)。
このような一連のSIPメッセージの交換により(1015)、IP電話端末A,B間の呼接続が確立される。また、IP電話端末A、Bは、その後のメディアセッションで実行する音声パケットの送信先が中継端末CのIPアドレスIP−C及びポート番号S3であることを認識する。
音声通信が開始されると、IP電話端末Bは、自装置のポートS2から中継端末CのポートS3宛に音声パケットの送信を開始する(1016)。同様に、IP電話端末Aは、自装置のポートS1から中継端末CのポートS3宛に音声パケットの送信を開始する(1017)。ここで、図4における各メッセージ等の送信を示す矢印上に付された記号●及びそれと破線の矢印で結ばれた記号○は、記号●が付されたアウトバウンド通信によって記号○が付されたインバウンド通信が可能となることを示している(図9の場合も同様)。即ち、1016のIP電話端末Bからの音声パケットは、1002のパケット送信が継続的に実行されることにより中継端末CのポートS3に到達可能となる。同様に、1017のIP電話端末Aからの音声パケットは、1002のパケット送信が継続的に実行されることにより中継端末CのポートS3に到達可能となる。このような構成により、外部から自装置の音声中継ポートS3にアクセス可能な時間を必要最小限としてセキュリティを高めることができる。
1016のIP電話端末Bからの音声パケットを受信した中継端末Cは、音声パケットの転送先の情報としてIP電話端末Bのポート番号S2を取得する。同様に、1017のIP電話端末Aからの音声パケットを受信した中継端末Cは、音声パケットの転送先の情報としてIP電話端末Aのポート番号S1を取得する。これにより、中継端末Cは、1016のIP電話端末Bからの音声パケットをIP電話端末AのポートS1宛に転送し(1018)、また、1017のIP電話端末Bからの音声パケットをIP電話端末AのポートS1宛に転送することが可能となる(1019)。このとき、1018の音声パケットは、1017の音声パケットの送信によりIP電話端末AのポートS1に到達可能となり、また、1019の音声パケットは、1016の音声パケットの送信によりIP電話端末BのポートS2に到達可能となる。その後は、同様の音声パケットの送受信が、メディアセッションにおける音声通信の終了まで繰り返し実行される(1020)。
音声通信が終了すると、IP電話端末Aは、セッションの切断を通知するために、IP電話端末B宛のBYEメッセージをSIPサーバ2に対して送信し、そのBYEメッセージは、先の180 Ringingメッセージ等と同様に、中継端末C経由でIP電話端末Bに送られる(1021)。このBYEメッセージを受信したIP電話端末Bは、その受信を通知するために、IP電話端末A宛の200 OKメッセージをSIPサーバ2に対して送信し、その200 OKメッセージは、先の180 Ringingメッセージ等と同様に、中継端末C経由でIP電話端末Aに送られる(1022)。
このように、中継端末Cが、自らが音声通信を行わない場合にIP電話端末A,B間の音声通信を中継することで、IP電話端末A,Bが接続されるNATルータA,BのNATの種別によらず、しかもSBC(Session Border Controller)等の中継サーバを必要とせずに簡易かつ安価な構成により音声通信を実現することが可能となる。また、音声通信を行うIP電話端末A,Bは、特別な機能を必要とすることなく、従来と同様の手順で音声通信を実行できる。
次に、図5〜図8を参照して、上記IP電話システムの基本動作におけるIP電話端末A,B、中継端末C、及びSIPサーバの処理の詳細について示す。ここでは、説明の便宜上、図4に示したIP電話システムにおける動作に準じて処理を説明する。
図5は発信側であるIP電話端末Aの処理手順を示すフロー図である。まず、IP電話端末Aが起動すると、呼制御部11はSIPサーバ2に対してREGISTERメッセージを送信し(ST101)、SIPサーバ2から200 OKメッセージを受信することで位置情報等の登録処理を行う(ST102)。その後、ダイヤル操作部12がユーザのダイヤル操作を検出すると(ST103:YES)、呼制御部11は発信先のIP電話端末B宛のINVITEメッセージを生成し、SIPサーバ2に対して送信する(ST104)。このとき、INVITEメッセージ上のSDPには、後の音声通信の通信先となるIP電話端末AのIPアドレスIP−A及びポート番号S1が設定される。
次に、呼制御部11は、中継端末C経由でIP電話端末Bからの180 Ringingメッセージ及び200 OKメッセージを順次受信する(ST105,ST106)。このとき、200 OKメッセージ上のSDPには、後の音声通信の通信先となる中継端末CのIPアドレスIP−C及びポート番号S3が設定されている。200 OKメッセージを受信した呼制御部11は、SIPサーバ2に対してIP電話端末B宛のACK メッセージを送信する(ST107)。
その後、音声パケット送受信部13は、IP電話端末B宛の音声パケットの送信を開始する(ST108)。この音声パケットは、IP電話端末AのポートS1から中継端末CのポートS3宛に送出される。続いて、音声パケット送受信部13は、IP電話端末Bからの音声パケットを受信する(ST109)。この受信した音声パケットは、中継端末CのポートS3からIP電話端末AのポートS1宛に送出されたものである。
上記のようなIP電話端末Bとの音声パケットの送受信が繰り返し実行され、最終的に終話となると(ST110:YES)、呼制御部11は、SIPサーバ2に対してIP電話端末B宛のBYEメッセージを送信し(ST111)、中継端末C経由でIP電話端末Bからの200 OKメッセージを受信する(ST112)。その後は、ST103に戻り、IP電話端末Aは上述と同様の処理を繰り返し実行する。
図6は着信側であるIP電話端末Bの処理手順を示すフロー図である。まず、IP電話端末Bが起動すると、呼制御部11は図5のST101及びST102と同様の登録処理を実行する(ST201,ST202)。その後、呼制御部11は、着信を検出(IP電話端末AからのINVITEメッセージを受信)すると(ST203:YES)、SIPサーバ2に対してIP電話端末A宛の180 Ringingメッセージを送信する(ST204)。
次に、ダイヤル操作部12がオフフックを検出すると、呼制御部11はSIPサーバ2に対してIP電話端末A宛の200 OKメッセージを送信する(ST205)。このとき、200 OKメッセージ上のSDPには、後の音声通信の通信先となる中継端末CのIPアドレスIP−C及びポート番号S3が設定される。続いて、呼制御部11は、中継端末C経由でIP電話端末AからのACK メッセージを受信する(ST206)。
その後、図5のST108,ST109と同様に、音声パケット送受信部13による音声パケットの送受信が実行される(ST207,ST208)。そして、最終的に終話となると(ST209:YES)、呼制御部11は、中継端末C経由でIP電話端末AからのBYEメッセージを受信し(ST210)、SIPサーバ2に対してIP電話端末A宛の200 OKメッセージを送信する(ST211)。その後は、ST203に戻り、IP電話端末Bは、上述と同様の処理を繰り返し実行する。
図7は中継端末Cの処理手順を示すフロー図である。まず、中継端末Cが起動すると、呼制御部11は図5のST101,ST102と同様の登録処理を実行する(ST301,ST302)。その後、中継端末登録部15は、自装置が通話状態にないことを確認すると中継モードへ移行するために、音声中継ポートS3からSIPサーバ2に対して中継端末登録のリクエストを含むパケットの送信を開始する(ST303)。
続いて、SIPメッセージ中継部17は、SIPサーバ2から転送されたIP電話端末B宛のINVITEメッセージを受信すると(ST304)、そのINVITEメッセージ上のSDPに含まれる音声通信の通信先を示すIPアドレスIP−A及びポート番号S1を自装置のIPアドレスIP−C及びポート番号S3にそれぞれ書き換え、その書き換え後のINVITEメッセージをSIPサーバ2に返送する(ST305)。
次に、SIPメッセージ中継部17は、SIPサーバ2から転送されたIP電話端末A宛の180 Ringingメッセージを受信し、その180 RingingメッセージをSIPサーバ2に返送する(ST306)。続いて、SIPメッセージ中継部17は、SIPサーバ2から転送されたIP電話端末A宛の200 OKメッセージを受信すると、その200 OKメッセージ上のSDPに含まれる音声通信の通信先のIPアドレスIP−B及びポート番号S2を自装置のIPアドレスIP−C及びポート番号S3にそれぞれ書き換え、その書き換え後の200 OKメッセージをSIPサーバ2に返送する(ST307)。さらに、SIPメッセージ中継部17は、SIPサーバ2から転送されたIP電話端末B宛のACKメッセージを受信し、そのACKメッセージをSIPサーバ2に返送する(ST308)。
次に、音声パケット中継部19は、IP電話端末BからIP電話端末A宛の音声パケットを受信し、その発信元IPアドレスIP−B及びポート番号S2を取得する(ST309)。続いて、音声パケット中継部19は、IP電話端末AからIP電話端末B宛の音声パケットを受信し、その発信元IPアドレスIP−A及びポート番号S1を取得する(ST310)。さらに、音声パケット中継部19は、ST310においてIP電話端末Aから受信した音声パケットを、ST309で取得したIP電話端末BのIPアドレスIP−B及びポート番号S2に対して転送する(ST311)。また、音声パケット中継部19は、ST309においてIP電話端末Bから受信した音声パケットを、ST310で取得したIP電話端末AのIPアドレスIP−A及びポート番号S1に対して転送する(ST312)。音声パケット中継部19は、このような音声パケットの転送処理を終話まで繰り返し実行する。
最終的に終話になると(ST313:YES)、音声パケット中継部19は、IP電話端末AからのIP電話端末B宛のBYEメッセージを受信し(ST314)、そのBYEメッセージをSIPサーバ2に返送する(ST315)。続いて、音声パケット中継部19は、IP電話端末BからのIP電話端末A宛の200 OKメッセージを受信し(ST315)、その200 OKメッセージをSIPサーバ2に返送する(ST316)。その後は、ST304に戻り、中継端末Cは上述と同様の処理を繰り返し実行する。
図8はSIPサーバの処理手順を示すフロー図である。SIPサーバ2の端末登録部31は、IP電話端末A,B及び中継端末CからREGISTERメッセージを適宜受信し、それらの位置情報を取得して登録処理を行う(ST401)。登録が成功すると、端末登録部31はIP電話端末A,B及び中継端末Cに対して200 OKメッセージを適宜送信する(ST402)。
次に、中継端末登録部34は、中継端末Cから中継端末登録のリクエストを含むパケットを受信する(ST403)。これにより、中継端末登録部34は、中継端末Cを中継端末登録すべく中継端末テーブル35に中継端末Cの位置情報等を記録する。なお、中継端末登録部34は、同様のパケット受信により中継端末C以外の登録を適宜受け付けることができる。
次に、SIPメッセージ中継部33は、IP電話端末AからのIP電話端末B宛のINVITEメッセージを受信すると(ST404:YES)、中継端末テーブル35を参照して中継端末CのIPアドレス及びポート番号を取得し、中継端末Cに対してそのINVITEメッセージを転送する(ST405)。続いて、SIPメッセージ中継部33は、中継端末Cから返送されたINVITEメッセージを受信し、IP電話端末Bに対してそのまま転送する(ST406)。
その後、SIPメッセージ中継部33は、IP電話端末BからのIP電話端末A宛の180 Ringingメッセージを中継端末Cに転送し、中継端末Cから返送された180 RingingメッセージをIP電話端末Aに転送する(ST407,ST408)。同様に、SIPメッセージ中継部33は、IP電話端末Bからの200 OKメッセージを中継端末Cに転送し、中継端末Cから返送された200 OKメッセージをIP電話端末Aに転送する(ST409,ST410)。さらに、SIPメッセージ中継部33は、IP電話端末AからのACKメッセージを中継端末Cに転送し、中継端末Cから返送されたACKメッセージをIP電話端末Bに転送する(ST411,ST412)。
この後、IP電話端末AとIP電話端末Bは、中継端末Cの中継により音声通信を行うが、この間、SIPサーバ2は介在しない。
オンフック等により終話となった場合、SIPメッセージ中継部33は、IP電話端末AからのBYEメッセージを受信して中継端末Cに転送し、中継端末Cから返送されたBYEメッセージを受信してIP電話端末Bに転送する(ST413,ST414)。同様に、SIPメッセージ中継部33は、IP電話端末Bからの200 OKメッセージを中継端末Cに転送し(ST415)、中継端末Cから返送された200 OKメッセージをIP電話端末Aに転送する(ST416)。その後は、ST404に戻り、SIPサーバ2は上述と同様の処理を繰り返し実行する。
次に、図4に示したIP電話システムの動作において、中継端末Cが中継モードを実行中に通常モードへの移行が必要となった場合の中継変更動作について示す。
図9は本願発明に係るIP電話システムの中継変更動作を示すシーケンス図である。ここでは、図4に示した動作においてIP電話端末Eから中継端末Cへの着信があり、中継端末Cが実行中の中継処理を中継端末Dに引き継ぐ場合を示している。また、図9に示すIP電話システムの動作は、図4の1020の音声通信の処理中に開始されるものとする。
中継端末Dは、図4の1001と同様の登録処理を実行後、中継モードに移行すると、SIPサーバ2に対して中継端末登録のリクエストを含むパケットの送信を開始する(2001)。このパケットの送信は、後の音声通信を中継する際に使用する音声中継ポートS4から送出され、音声通信が終了するまで継続的に繰り返し実行される。
SIPサーバ2は、中継端末Dからの中継端末登録のリクエストを含むパケットを受信すると、中継端末Dの位置情報(IPアドレス、ポート番号等)を中継端末Cの位置情報に加えて中継端末テーブルに記憶する。
中継端末Cが中継を行っている状態でIP電話端末Eが中継端末Cに発信を行った場合について以下説明する。IP電話端末Eは、ユーザによるダイヤル操作を受けて(2002)、SIPサーバ2に対して中継端末C宛のINVITEメッセージを送信する(2003)。このとき、INVITEメッセージ上のSDPには、後の音声通信の通信先となるIP電話端末EのIPアドレスIP−E及びポート番号S5が設定される。
SIPサーバ2は、そのINVITEメッセージを受信すると、中継端末Cに対して転送する(2004)。これにより、IP電話端末Eからの着信を確認した中継端末Cは、SIPサーバ2を介してIP電話端末Aに対してREFERメッセージを送信する(2005)。中継端末CがREFERメッセージを送信するのは、IP電話装置間で送受信されるSIPメッセージを他の中継端末へ転送することをSIPサーバ2に指示するためである。また、このREFERメッセージには、IP電話端末Aに対するRE-INVITEメッセージ(IP電話装置A,B間の接続を再度確立するための呼制御メッセージ)の送出命令が含まれる。
IP電話端末Aは、そのREFERメッセージを受信すると、SIPサーバ2に対してIP電話端末B宛のRE-INVITEメッセージを送信する(2006)。SIPサーバ2は、そのRE-INVITEメッセージを受信すると、そのメッセージを中継端末Dに対して転送する(2007)。中継端末Dは、転送されたINVITEメッセージのSDPに含まれる音声通信の通信先を示すIPアドレスIP−A及びポート番号S1を自装置のIPアドレスIP−D及びポート番号S4にそれぞれ書き換え、その書き換え後のINVITEメッセージをSIPサーバ2に返送する(2008)。SIPサーバ2は、そのINVITEメッセージをそのままIP電話端末Bに対して転送する(2009)。
次に、IP電話端末Bは、SIPサーバ2に対してIP電話端末A宛の200 OKメッセージを送信する(2010)。SIPサーバ2は、その200 OKメッセージを中継端末Dに対して転送する(2011)。中継端末Dは、転送された200 OKメッセージを上のSDPに含まれるIPアドレスIP−B及びポート番号S2を自装置のIPアドレスIP−D及びポート番号S4にそれぞれ書き換え、その書き換え後の200 OKメッセージをSIPサーバ2に返送する(2012)。SIPサーバ2は、その200 OKメッセージをそのままIP電話端末Aに対して転送する(2013)。
その200 OKメッセージを受信したIP電話端末Aは、SIPサーバ2に対してIP電話端末B宛のACK メッセージを送信し、そのACKメッセージは中継端末Dを介してIP電話端末Bに送られる(2014)。続いて、IP電話端末Aは、先の2013で、SDPが中継端末DのIPアドレス及びポート番号に書き換えられた200OKメッセージをIP電話端末Bから受信したことを契機として、SIPサーバ2を介して中継端末Cに対してNOTIFYメッセージを送信する(2015)。このNOTIFYメッセージには、中継端末Cに対する中継終了許可(即ち、先のREFERメッセージによるRE-INVITEメッセージの送出命令を受け付けた旨)の情報が含まれる。このNOTIFYメッセージを受信した中継端末Cは、他の中継端末への中継処理の引き継ぎが成功したと判断してIP電話端末Eとの接続を開始し(2016)、SIPサーバ2を介してIP電話端末Aに対して200 OKメッセージを送信する(2017)。SIPサーバ2は、2015でNOTIFYメッセージを中継した際に、中継端末テーブルから中継端末Cを削除する。
上記RE-INVITEメッセージ及び200 OKメッセージの交換を実行することにより、IP電話端末A,B間の呼接続が再度確立される。また、IP電話端末A、Bは、その後のメディアセッションで実行する音声パケットの送信先が中継端末DのIPアドレスIP−D及びポート番号S4であることを認識する。
音声通信開始後の2018〜2021処理は、中継端末Cの代わりに中継端末Dが音声パケットの中継を行うことを除いて、それぞれ図4の1016〜1019の処理と概ね同様であり、ここでは説明を省略する。また、図9では図示しないが、終話の際には、図4の1021及び1022と同様の処理が実行される。なお、中継端末Cは、IP電話端末Eとの通話が終了すると、再び中継モードに移行してSIPサーバ2に対する中継端末登録のリクエストを含むパケットの送信を開始することができる。
このような構成により、中継端末Cは、音声通信の中継を実行中に自ら音声通信を行う必要が生じた場合、その中継処理を中継端末Dに容易に引き継ぐことができ、中継していたIP電話端末A,B間の音声通信が中止されるという不都合を回避することができる。なお、ここでは、IP電話端末Eからの着信を受けて中継処理を引き継ぐ場合を示したが、中継端末Cから他のIP電話端末に発信する場合にも同様の処理を実行することが可能である。
次に、図10〜図14を参照して、上記IP電話システムの中継変更動作におけるIP電話端末A,B,E、中継端末C,D、及びSIPサーバの処理の詳細について示す。ここでは、説明の便宜上、図9に示したIP電話システムにおける動作に準じて処理を説明する。
図10は発信側であるIP電話端末Aの処理手順を示すフロー図である。IP電話端末Aは、図5のST101〜ST103と同様のST501〜ST503を実行後、図5のST104〜ST110と同様の処理を実行してIP電話端末Bと中継端末Cを介して通話中となる(ST504)。
IP電話端末Bとの通話中に、呼制御部11が、中継端末CからREFERメッセージを受信し(ST505)、このREFERメッセージに含まれるRE-INVITEメッセージの送出命令に基づき、SIPサーバ2に対してIP電話端末B宛のRE-INVITEメッセージを送信する(ST506)。このとき、RE-INVITEメッセージ上のSDPには、後の音声通信の通信先となるIP電話端末AのIPアドレスIP−A及びポート番号S1が設定される。
次に、呼制御部11は、中継端末D経由でIP電話端末Bからの200 OKメッセージを受信する(ST507)。このとき、200 OKメッセージ上のSDPには、後の音声通信の通信先となる中継端末DのIPアドレスIP−D及びポート番号S4が設定されている。200 OKメッセージを受信した呼制御部11は、SIPサーバ2に対してIP電話端末B宛のACK メッセージを送信する(ST508)。
次に、呼制御部11は、先に2013で端末Bからの200OKメッセージの受信を契機として中継端末が端末Cから端末Dに変更されたことを認識し、中継端末Cに対して中継終了許可を含むNOTIFYメッセージを送信し(ST509)し、中継端末Cからの200 OKメッセージを受信する(ST510)。
音声通信開始後のST511〜ST515の処理は、中継端末Cの代わりに中継端末Dが音声パケットの中継を行うことを除いて、それぞれ図5のST108〜ST112の処理と概ね同様であり、ここでは説明を省略する。
図11は着信側であるIP電話端末Bの処理手順を示すフロー図である。IP電話端末Bは、図6のST201〜ST203と同様のST601〜ST603を実行後、図5のST204〜ST209と同様の処理を実行してIP電話端末Aと中継端末Cを介して通話中となる(ST604)。
通話中に呼制御部11が、中継端末D経由でIP電話端末AからのRE-INVITEメッセージを受信する(ST605)。このとき、RE-INVITEメッセージ上のSDPには、後の音声通信の通信先となる中継端末DのIPアドレスIP−D及びポート番号S4が設定されている。、呼制御部11は、SIPサーバ2に対して中継端末DのIPアドレスIP−D及びポート番号S4をSDPに設定した200 OKメッセージをIP電話端末A宛に送信する(ST606)。さらに、呼制御部11は、中継端末D経由でIP電話端末AからACK メッセージを受信する(ST607)。
その後、音声パケット送受信部13は、図6のST207,ST208と同様に、音声パケットの送受信を実行する(ST608,ST609)。そして、最終的に終話となると(ST610:YES)、呼制御部11は、中継端末D経由でIP電話端末AからのBYEメッセージを受信し(ST611)、IP電話端末A宛の200 OKメッセージをSIPサーバ2に対して送信する(ST612)。その後は、ST603に戻り、IP電話端末Bは上述と同様の処理を繰り返し実行する。
図12は中継端末Cの処理手順を示すフロー図である。中継端末Cは、図7のST301〜ST304と同様のST701〜ST704を実行後、図7のST405〜ST413と同様の処理を実行してIP電話端末AとIP電話端末Bとの間の中継処理の実行中となる(ST705)。
次に、呼制御部11はIP電話端末EからのINVITEメッセージを受信し(ST706)、これにより、SIPメッセージ中継部17は、IP電話装置間で送受信されるSIPメッセージを他の中継端末へ転送することをSIPサーバ2に指示するために、SIPサーバ2に対してIP電話端末A宛のREFERメッセージを送信する(ST707)。続いて、SIPメッセージ中継部17は、IP電話端末AからのNOTIFYメッセージを受信し(ST708)、IP電話端末Aに対して200 OKメッセージを送信する(ST709)。このNOTIFYメッセージの受信により、SIPメッセージ中継部17は、他の中継端末への中継処理の引き継ぎが成功したと判断して中継処理を終了する(ST710)。これと同時に、中継端末登録部15は、SIPサーバ2に対するパケットの送信を停止する。
その後、呼制御部11は、図6のST204〜ST208におけるIP電話端末Bと同様の処理を実行し、IP電話端末Eとの間で音声通信を実行する(ST711)。そして、最終的に終話となると(ST712:YES)、呼制御部11は再び中継モードを実行可能であると判断し、これにより、中継端末登録部15がSIPサーバ2に対する中継端末登録のリクエストを含むパケットの送信を再び開始する(ST713)。その後は、ST704に戻り、中継端末Cは、上述と同様の処理を繰り返し実行する。
図13はIP電話端末AとIP電話端末Bの間の中継処理を中継端末Cから引き継ぐ中継端末Dの処理手順を示すフロー図である。中継端末Dは、図7の中継端末CによるST301〜ST303と同様のST801〜ST803を実行後、SIPメッセージ中継部17が、SIPサーバ2から転送されたIP電話端末B宛のRE-INVITEメッセージを受信する(ST804)。これにより、中継端末Dは自装置が中継端末として選択されたことを認識する。続いて、SIPメッセージ中継部17は、そのRE-INVITEメッセージ上のSDPに含まれる音声通信の通信先となるIPアドレスIP−A及びポート番号S1を自装置のIPアドレスIP−D及びポート番号S4にそれぞれ書き換え、その書き換え後のRE-INVITEメッセージをSIPサーバ2に返送する(ST805)。
次に、SIPメッセージ中継部17は、SIPサーバ2から転送されたIP電話端末A宛の200 OKメッセージを受信すると、その200 OKメッセージ上のSDPに含まれる音声通信の通信先となるIPアドレスIP−B及びポート番号S2を自装置のIPアドレスIP−D及びポート番号S4にそれぞれ書き換え、その書き換え後の200 OKメッセージをSIPサーバ2に返送する(ST806)。
その後のST807〜ST814の処理は、図7の中継端末CによるST308〜ST315とそれぞれ同様の処理であり、ここでは説明を省略する。
なお、IP電話端末E及び中継端末Cは、従来のIP電話と同様に、中継端末を介さずに呼接続を確立して音声通信を実行することができる。或いは、IP電話端末E及び中継端末Cは、図示しない別の中継端末を介して図5のIP電話端末A及びIP電話端末Bの場合と同様の処理を実行することもできる。
図14はSIPサーバの処理手順を示すフロー図である。SIPサーバ2は、図8のST401〜ST404と同様のST901〜ST904を実行後、図8のST405〜ST416に相当するIP電話端末AとIP電話端末Bとの間の呼接続処理を実行する(ST905)。
続いて、中継端末登録部34は、ST903の場合と同様に、中継端末Dから中継端末登録のリクエストを含むパケットの受信し、中継端末Dを中継端末Cに加えて中継端末テーブルに登録する(ST906)。
次に、SIPメッセージ中継部33は、IP電話端末EからのIP電話端末C宛のINVITEメッセージを受信し、そのメッセージを中継端末Cに転送する(ST907)。続いて、SIPメッセージ中継部33は、中継端末CからのREFERメッセージを受信し、このメッセージをIP電話端末Aに転送する(ST908)。ここで、SIPメッセージ中継部33は、IP電話端末C宛のINVITEメッセージの受信後に中継端末Cから受信するREFERメッセージを、IP電話装置間で送受信されるSIPメッセージを他の中継端末へ転送することを指示する中継変更指示として認識する。
次に、SIPメッセージ中継部33は、IP電話端末AからのIP電話端末B宛のRE-INVITEメッセージを受信し(ST909)、中継端末テーブル35を参照して中継端末DのIPアドレス及びポート番号を取得し、中継端末Dに対してそのRE-INVITEメッセージを転送する(ST910)。
その後、SIPメッセージ中継部33は、図8のST409〜ST412とそれぞれ同様にST911〜ST914を実行する。続いて、SIPメッセージ中継部33は、IP電話端末Aからの中継端末C宛のNOTIFYメッセージを受信し、このメッセージを中継端末Cに転送する(ST915)。さらに、SIPメッセージ中継部33は、中継端末Cからの200 OKメッセージをIP電話端末Aに転送する(ST916)。
次に、中継端末登録部34は、中継端末Cから中継端末登録のリクエストを含むパケットを受信する(ST917)。これにより、中継端末登録部34は、中継端末Cを再び中継端末登録する。その後は、ST904に戻り、SIPサーバ2は上述と同様の処理を繰り返し実行する。
本発明を特定の実施形態に基づいて詳細に説明したが、これらの実施形態はあくまでも例示であって本発明はこれらの実施形態によって限定されるものではない。例えば、上記IP電話システムにおいては、IP電話端末間の音声通信が従来のNAT越え方法により実現できない場合にのみ中継端末による中継処理を実行する構成とすることができる。この場合、例えば、音声通信を行うIP電話端末が接続される中継装置のNAT種別に基づき、中継端末による中継処理の実行の要否を判断することができる。