(57)【要約】【課題】通信中にサーバ・クライアント間の通信が切断された場合にも、アプリケーションレイヤにおいてデータ損失を生じさせることなく短時間で通信を再接続できるＴＣＰを用いた呼制御を行うＶｏＩＰシステム及びＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法を提供する。【解決手段】送受信する場合には、ＶｏＩＰ呼制御装置１０からの接続要求に応じてＶｏＩＰ端末装置１００がソケットを作成してＴＣＰリンクを確立し、データ送受信中にＴＣＰリンクが切断されると、ＶｏＩＰ端末装置１００が未送信のデータを保持するとともに切断されたＴＣＰリンクに用いていたソケットをクローズし、ＶｏＩＰ呼制御装置１０がＶｏＩＰ端末装置１００にＴＣＰリンクの確立を再要求し、ＶｏＩＰ端末装置１００が、切断されたＴＣＰリンクとは異なるソケットを別のポートを用いて作成してＴＣＰリンクを確立し、保存したデータをＶｏＩＰ呼制御装置１０へ送信する。【選択図】        図１
2004186799.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と少なくとも一つの端末装置とがＩＰネットワーク網を介して接続され、ＴＣＰを用いて呼制御を行うＶｏＩＰシステムであって、前記制御装置と前記端末装置のいずれかとの間でデータを送受信する場合には、前記制御装置からの接続要求に応じて前記端末装置がソケットを作成して接続を確立し、
データの送受信の途中で接続が切断されると、
前記端末装置が、前記制御装置に送信するデータを保持するとともに、切断された接続に用いていたソケットをクローズし、
前記制御装置が前記端末装置に接続の確立を再要求し、
前記制御装置から接続の再要求を受けた前記端末装置が、切断された接続とは異なるソケットを別のポートを用いて作成して該制御装置との接続を確立し、保存したデータを前記制御装置へ送信することを特徴とするＴＣＰを用いた呼制御を行うＶｏＩＰシステム。
【請求項２】
前記端末装置は、データの送受信中にキープ・アライブ・パケットを前記制御装置へ送信し、前記キープ・アライブ・パケットに対しての返信を所定の時間内に前記制御装置から受信しなかった場合には接続が切断されたと判断して接続に用いていたソケットをクローズし、前記制御装置へ送信するデータを保持することを特徴とする請求項１記載のＴＣＰを用いた呼制御を行うＶｏＩＰシステム。
【請求項３】
前記端末装置は、前記制御装置からのデータを最後に受信した後所定の時間内に該制御装置からデータを受信しなかった場合に、前記キープ・アライブ・パケットを前記制御装置へ送信することを特徴とする請求項２記載のＴＣＰを用いた呼制御を行うＶｏＩＰシステム。
【請求項４】
制御装置と少なくとも一つの端末装置とがＩＰネットワーク網を介して接続されたＶｏＩＰシステムにおいてＴＣＰを用いて呼制御を行う方法であって、
前記制御装置と前記端末装置との間でデータを送受信する場合には、
前記制御装置が前記端末装置へ接続要求を送信する工程と、
該接続要求を受信した前記端末装置がソケットを作成し、前記制御装置との接続を確立させる工程とを有する接続処理を行い、
データの送受信の途中で接続が切断された場合には、
前記端末装置が、前記制御装置に送信するデータを保持するデータ保持工程と、
前記端末装置が切断された接続に用いていたソケットをクローズする工程と、
前記制御装置が前記端末装置に接続の確立を再要求する工程と、
前記制御装置から接続の再要求を受けた前記端末装置が、切断された接続とは異なるソケットを別のポートを用いて作成して、前記制御装置との接続を確立する工程と、
前記端末装置が、前記データ保持工程において保持したデータを前記制御装置へ送信する工程とを有する再接続処理を行うことを特徴とするＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法。
【請求項５】
前記端末装置が前記制御装置にキープ・アライブ・パケットを送信する工程と、
前記キープ・アライブ・パケットに対しての返信を所定の時間内に前記制御装置から受信しなかった場合に接続が切断されていると判断する判断工程とを有する接続判断処理をデータの送受信中に実行し、前記判断工程において接続が切断されていると判断した場合に、前記再接続処理を実行することを特徴とする請求項４記載のＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法。
【請求項６】
前記端末装置が、前記制御装置からのデータを最後に受信した後所定の時間内に該制御装置からデータを受信しなかった場合に、前記再接続処理を実行することを特徴とする請求項５記載のＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットやイントラネットのようなＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ）ネットワークを利用して音声信号を送受信するＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ  ）システム及びＶｏＩＰシステムにおける呼制御方法に関し、特に、通信の途中で通信が切断された場合でも、データ損失が発生することのないＴＣＰを用いた呼制御を行うＶｏＩＰシステム及びＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法に関する。
【０００２】
【従来の技術】
インターネットやイントラネットのようなＩＰネットワークを利用して音声信号を送る「ＶｏＩＰ」と呼ばれる技術を用いた通信方式が近年普及している。
従来のＶｏＩＰシステムとしては、特許文献１に開示される「ＶｏＩＰプロトコル・ベースの音声システム」がある。
【０００３】
ＶｏＩＰシステムでの呼制御においては、ネットワーク内でのデータ損失を防ぐために、ＶｏＩＰ端末装置とそれを制御するＶｏＩＰ呼制御装置との間の通信に、信頼性の高いコネクション型であるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ  ）が用いられることがある。
【０００４】
ＶｏＩＰシステムでは、送受信の対象である音声となるメディアをリアルタイムに制御することが必須であると同時に、呼制御においても即時応答が要求されるため、ＶｏＩＰ端末装置とＶｏＩＰ呼制御装置との間の通信にＴＣＰを用いる場合には常時ＴＣＰリンクを張っておく必要がある。
【０００５】
呼制御に使用しているＴＣＰリンクが、ネットワーク障害やＶｏＩＰ端末装置又はＶｏＩＰ呼制御装置の機器障害によって切断された場合には、ＶｏＩＰ呼制御装置は、障害が除かれた後にＴＣＰリンクの再接続を行う。
【０００６】
この場合、切断前と同一のポートを使用してＴＣＰリンクを再接続しようとすると、呼制御プログラム（アプリケーションレイヤ）からプロトコルスタック（トランスミッションレイヤ及びネットワークレイヤ）に対してデータの送受信を行うための機構（ソケット）の再接続手順を行うこととなる。しかし、ＴＣＰリンク切断前に使用していたソケットをクローズする処理には時間を要するため、ソケットをクローズしてから再使用可能となるまで待機すると、ＴＣＰリンクの再接続が完了するまでには膨大な時間を要してしまう。
【０００７】
よって、ＴＣＰリンクを再接続する場合には、ＶｏＩＰ呼制御装置は切断前とは異なるポートにて通信を行う必要がある。
【０００８】
ＶｏＩＰ呼制御装置がポートの切換を実現する場合には、ＶｏＩＰ呼制御装置がＶｏＩＰ端末装置を制御するため、接続に関しては制御する側とされる側との関係となる。換言すると、ＴＣＰの接続の形態には、サーバ・クライアントモデルが採用されることとなる。
【０００９】
図１６に示すように、一般的には、従来のＴＣＰ／ＩＰのサーバ・クライアントモデルは、サーバ対クライアントが１対Ｎという関係、すなわち、一つのサーバに対して複数のクライアントが接続される構成である。このような構成においては、サーバはクライアントの数を認識している必要が無く、また、アクセスしてくるクライアントの数も不定数となる。
【００１０】
サーバ・クライアントモデルのＶｏＩＰシステムにおける呼制御にＴＣＰを採用する場合、通信が切断された際はＶｏＩＰ端末装置とそれを制御するＶｏＩＰ呼制御装置とは通信を保持して再接続する必要がある。換言すると、通信時に何らかの障害が発生して接続が切断されたとしても、通信状態を維持したまま再接続して通信を継続する必要がある。
しかし、従来のサーバ・クライアントモデルのＶｏＩＰシステムにおいては、クライアントがサーバと接続して通信を開始した後に、ＴＣＰ通信用のポートの切り替えを行い、別のポートを利用して通信の再接続を行うことはない。
【００１１】
また、従来のサーバ・クライアントモデルのＶｏＩＰシステムにおけるＴＣＰを用いた通信では、サーバは、新規ポートによる接続が発生した場合には、それまで接続していたポートとは別の接続であると認識する。
【００１２】
よって、従来のサーバ・クライアントモデルのＶｏＩＰシステムにおいて、ポート切り替えて通信を再接続したとしても、その接続は別の接続であるとみなされてしまうため、通信終了と同時に呼制御プログラムにおいてデータが消失し、アプリケーションレイヤでデータ損失が発生する可能性がある。
【００１３】
アプリケーションレイヤでデータ損失が発生すると、通信障害が発生してしまい、最悪の場合には、通話中の呼を復旧することができなくなってしまう。この場合、公衆網に接続されるＶｏＩＰゲートウェイ装置では、公衆網を介した接続に「呼残り」が発生して、通信料金を課金される恐れがある。
【００１４】
【特許文献１】
特開２００２−５７７２４号公報
【００１５】
【発明が解決しようとする課題】
このように、従来のＶｏＩＰシステムでは、呼制御にＴＣＰを採用した場合には、何らかの原因で切断されたＶｏＩＰ端末装置とＶｏＩＰ呼制御装置との間の通信を再接続する際に、接続待ち時間が増加してしまったり、データ損失が発生してしまうという問題があった。
【００１６】
本発明はかかる問題に鑑みてなされたものであり、通信中にサーバ・クライアント間の通信が切断された場合にも、アプリケーションレイヤにおいてデータ損失を生じさせることなく短時間で通信を再接続できるＴＣＰを用いた呼制御を行うＶｏＩＰシステム及びＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記目的を達成するため、本発明は、第１の態様として、制御装置と少なくとも一つの端末装置とがＩＰネットワーク網を介して接続され、ＴＣＰを用いて呼制御を行うＶｏＩＰシステムであって、制御装置と端末装置のいずれかとの間でデータを送受信する場合には、制御装置からの接続要求に応じて端末装置がソケットを作成して接続を確立し、データの送受信の途中で接続が切断されると、端末装置が、制御装置に送信するデータを保持するとともに、切断された接続に用いていたソケットをクローズし、制御装置が端末装置に接続の確立を再要求し、制御装置から接続の再要求を受けた端末装置が、切断された接続とは異なるソケットを別のポートを用いて作成して該制御装置との接続を確立し、保存したデータを制御装置へ送信することを特徴とするＴＣＰを用いた呼制御を行うＶｏＩＰシステムを提供するものである。
【００１８】
上記本発明の第１の態様において、端末装置は、データの送受信中にキープ・アライブ・パケットを制御装置へ送信し、キープ・アライブ・パケットに対しての返信を所定の時間内に制御装置から受信しなかった場合には接続が切断されたと判断して接続に用いていたソケットをクローズし、制御装置へ送信するデータを保持することが好ましい。
また、これに加えて、端末装置は、制御装置からのデータを最後に受信した後所定の時間内に該制御装置からデータを受信しなかった場合に、キープ・アライブ・パケットを制御装置へ送信することがより好ましい。
【００１９】
また、上記目的を達成するため、本発明は、第２の態様として、制御装置と少なくとも一つの端末装置とがＩＰネットワーク網を介して接続されたＶｏＩＰシステムにおいてＴＣＰを用いて呼制御を行う方法であって、制御装置と端末装置との間でデータを送受信する場合には、制御装置が端末装置へ接続要求を送信する工程と、該接続要求を受信した端末装置がソケットを作成し、制御装置との接続を確立させる工程とを有する接続処理を行い、データの送受信の途中で接続が切断された場合には、端末装置が、制御装置に送信するデータを保持するデータ保持工程と、端末装置が切断された接続に用いていたソケットをクローズする工程と、制御装置が端末装置に接続の確立を再要求する工程と、制御装置から接続の再要求を受けた端末装置が、切断された接続とは異なるソケットを別のポートを用いて作成して、制御装置との接続を確立する工程と、端末装置が、データ保持工程において保持したデータを制御装置へ送信する工程とを有する再接続処理を行うことを特徴とするＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法を提供するものである。
【００２０】
上記本発明の第２の態様においては、端末装置が制御装置にキープ・アライブ・パケットを送信する工程と、キープ・アライブ・パケットに対しての返信を所定の時間内に制御装置から受信しなかった場合に接続が切断されていると判断する判断工程とを有する接続判断処理をデータの送受信中に実行し、判断工程において接続が切断されていると判断した場合に、再接続処理を実行することが好ましい。
また、これに加えて、端末装置が、制御装置からのデータを最後に受信した後所定の時間内に該制御装置からデータを受信しなかった場合に、再接続処理を実行することがより好ましい。
【００２１】
【発明の実施の形態】
本発明の好適な実施の形態について説明する。
図１に、本実施形態に係るＶｏＩＰシステムの構成を示す。このＶｏＩＰシステムは、ＶｏＩＰ呼制御装置１０及びＶｏＩＰ端末装置１００、１０１をＩＰネットワーク上に有し、電話機５００と電話機５０１との間で音声通話を行うシステムである。
【００２２】
ＶｏＩＰ呼制御装置１０は、ＶｏＩＰ端末装置１００と１０１との呼を制御する装置であり、ＴＣＰリンクによってＶｏＩＰ呼制御装置とＶｏＩＰ端末装置１００，１０１とが接続された際には、ＶｏＩＰ呼制御装置１０がＴＣＰクライアント、ＶｏＩＰ端末装置１００、１０１がＴＣＰサーバとして動作する。ＶｏＩＰ端末装置１００とＶｏＩＰ端末装置１０１との間では、ＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）によってメディア（音声）が送受信される。また、ＴＣＰクライアントであるＶｏＩＰ呼制御装置１０は、ＴＣＰリンクを接続する際にポート番号によってＴＣＰサーバであるＶｏＩＰ端末装置１００，１０１を識別している。
【００２３】
図２に、ＶｏＩＰ端末装置１００がＴＣＰを用いた呼制御を行うために装置内に備える呼処理モジュールの機能構成を示す。ＶｏＩＰ端末装置１００は、接続受付モジュールＭ１、ＴＣＰ送信モジュールＭ２及びＴＣＰ受信モジュールＭ３を備えている。これらのモジュールは、ＶｏＩＰ端末装置１００が備えるいずれも不図示のＣＰＵがＲＡＭを作業領域として、記憶装置に格納されたプログラムを実行することにより、ＣＰＵ上に実現されるものである。
【００２４】
接続受付モジュールＭ１は、ＶｏＩＰ呼制御装置１０からの接続要求を受け付け、通信用のソケット（ＩＰアドレスとポート番号を組み合わせたネットワーク・アドレス）を作成するモジュールである。ＴＣＰ送信モジュールＭ２は、ＶｏＩＰ呼制御装置１０へデータを送信するためのモジュールである。ＴＣＰ受信モジュールＭ３は、ＶｏＩＰ呼制御装置１０から送られてきたデータを受信するためのモジュールである。
【００２５】
接続受付モジュールＭ１は、クライアントであるＶｏＩＰ呼制御装置１０からの接続要求を常に待ち受けている。ＶｏＩＰ呼制御装置１０からの接続要求を受信した場合には、通信用のソケットを作成して、ＴＣＰ送信モジュールＭ２とＴＣＰ受信モジュールＭ３とにそのソケットに関するソケット情報（ポート番号など）を通知する。
【００２６】
ＴＣＰ送信モジュールＭ２には、ソケット情報受信状態Ｍ２−１と通信状態との二種類の動作状態がある。ソケット情報受信状態Ｍ２−１は、接続受付モジュールＭ１から通信用ソケットの情報を受け取る状態である。通信状態Ｍ２−２は、ＶｏＩＰ呼制御装置１０へデータを送信する状態である。
なお、図２、６、７、１０及び１１においては、図中でハッチングを施して示したものは、ＴＣＰ送信モジュールＭ２の状態を示している。例えば、図２においては、ソケット情報受信状態Ｍ２−１にハッチングが施されているため、ＴＣＰ送信モジュールＭ２がソケット情報を受信する状態にあることを示している。
【００２７】
一方、ＴＣＰ受信モジュールＭ３には、ソケット情報受信状態Ｍ３−１、遷移待機状態Ｍ３−２及び通信状態Ｍ３−３の三種類の動作状態がある。ソケット情報受信状態Ｍ３−１は、接続受付モジュールＭ１から通信用ソケットの情報を受け取る状態である。遷移待機状態Ｍ３−２は、ＴＣＰ送信ソケットＭ２が、通信状態Ｍ２−１からソケット情報受信状態Ｍ２−２へ遷移するのを待機している状態である。通信状態Ｍ３−３は、ＶｏＩＰ呼制御装置１０から送られてきたデータを受信する状態である。
【００２８】
ＴＣＰ受信モジュールＭ３は、ＴＣＰ送信モジュールＭ２との同期を取って動作するために、通信状態Ｍ３−３からソケット情報受信状態Ｍ３−１へ遷移する際には、通信状態Ｍ３−３から遷移待機状態Ｍ３−２に一旦移行し、ＴＣＰ送信モジュールＭ２が通信状態Ｍ２−２からソケット情報受信状態Ｍ２−１へ遷移するのを待ってからソケット情報受信状態Ｍ３−１へ遷移する。
ＴＣＰ受信モジュールＭ３もＴＣＰ送信モジュールＭ２と同様に、図中においてハッチングを施して示したものがＴＣＰ受信モジュールＭ３の状態を示している。例えば、図２においては、ソケット情報受信状態Ｍ３−１にハッチングが施されているため、ＴＣＰ受信モジュールＭ３がソケット情報を受信する状態にあることを示している。
【００２９】
なお、ＴＣＰ送信モジュールＭ２とＴＣＰ受信モジュールＭ３とが同期していない状態で接続受付モジュールＭ１から通信用ソケットを受け取ると、異なったソケットでデータの送受信を行うこととなってしまい、正常にデータ通信を行うことができなくなってしまう。よって、ＴＣＰ送信モジュールＭ２とＴＣＰ受信モジュールＭ３とは、同期した状態で動作させる。
【００３０】
〈通信開始時の動作〉
次に、通信開始時のＶｏＩＰシステムの動作について説明する。
図３に、ＶｏＩＰシステムを起動した際の接続受付モジュールＭ１の動作の流れを、図４に、ＶｏＩＰシステムを起動した際のＴＣＰ送信モジュールＭ２の動作の流れを、図５に、ＶｏＩＰシステムを起動した際のＴＣＰ受信モジュールＭ３の動作の流れをそれぞれ示す。
【００３１】
ＶｏＩＰシステムを起動するといずれも不図示のＣＰＵが記憶装置に格納されたプログラムを読み出して、メモリ上に接続受付モジュールＭ１、ＴＣＰ送信モジュールＭ２及びＴＣＰ受信モジュールＭ３を実装する（ステップＳ１０１、ステップＳ２０１、ステップＳ３０１）。ＶｏＩＰシステムを起動した際には、ＴＣＰ送信モジュールＭ２はソケット情報受信状態Ｍ２−１、ＴＣＰ受信モジュールＭ３はソケット情報受信状態Ｍ３−１となっており、接続受付モジュールＭ１からの接続情報を待機している（ステップＳ２１１、ステップＳ３１１）。
【００３２】
接続受付モジュールＭ１は、ＶｏＩＰ呼制御装置１０からの接続要求を待機しており（ステップＳ１０２）、ＶｏＩＰ呼制御装置１０からの接続要求を受信すると（ステップＳ１０３／ＹＥＳ）、通信用ソケットを作成し（ステップＳ１０４）、そのソケットに関するソケット情報（ポート番号など）をＴＣＰ送信モジュールＭ２とＴＣＰ受信モジュールＭ３とに同報で通知する（ステップＳ１０５）。この時のＴＣＰ端末装置１００の呼処理モジュールの状態を図６に示す。
なお、ＶｏＩＰ呼制御装置１０からの接続要求を受信していない場合は（ステップＳ１０３／ＮＯ）、ステップＳ１０２に進みＶｏＩＰ呼制御装置１０からの接続要求を待機する。
【００３３】
ＴＣＰ送信モジュールＭ２及びＴＣＰ受信モジュールＭ３は、接続受付モジュールＭ１からソケット情報を通知されるのを待機しており（ステップＳ２１１、ステップＳ３１１）、接続受付モジュールＭ１から接続情報を通知されると（ステップＳ２１２／ＹＥＳ、ステップＳ３１２／ＹＥＳ）、通知されたＴＣＰ通信用ポート番号を基に、ＶｏＩＰ呼制御装置１０との通信を開始する（ステップＳ２１３、ステップＳ３１３）。この時のＴＣＰ端末装置１００内の呼処理モジュールの状態を図７に示す。
【００３４】
通信を開始した後は、ＴＣＰ送信モジュールＭ２は送信待ちの状態となり（ステップＳ２２１）、送信データがある場合には（ステップＳ２２２／ＹＥＳ）、送信処理を実行してＴＣＰ呼制御装置１０にデータを送信する（ステップＳ２２３）。また、通信を開始した後、ＴＣＰ受信モジュールＭ３は、ＴＣＰ呼制御装置１０からの受信データを待機しており（ステップＳ３２１）、データを受信すると（ステップＳ３２２／ＹＥＳ）、受信したデータを処理する（ステップＳ３２３）。
【００３５】
〈障害発生時の動作〉
次に、通信の途中で障害（ケーブル抜け）が発生した場合のＴＣＰ送信モジュールＭ２及びＴＣＰ受信モジュールＭ３の動作について説明する。
図８に、ＴＣＰ受信モジュールＭ３の動作の流れを、図９に、ＴＣＰ送信モジュールＭ２の動作の流れを示す。
【００３６】
通信中、ＴＣＰ受信モジュールＭ３は、プロトコルスタックの内部において、ＴＣＰ送信モジュールＭ２及びＴＣＰ受信モジュールＭ３が何らかのデータを送受信してから経過した時間をタイマで監視しており、何らかのデータ（アプリレイやパケットなど）を送受信するとタイマをクリアする（ステップＳ４０１）。何らかのデータを受信したから所定の時間が経過すると（ステップＳ４０２／ＹＥＳ）、ＴＣＰ受信モジュールＭ３は、キープ・アライブ・パケット（ＫＡＰ）をＴＣＰ呼制御装置１０に送信する（ステップＳ４０３）。
【００３７】
キープ・アライブ・パケットに対してＴＣＰ呼制御装置１０から所定時間内に返信があった場合（ステップＳ４０４／ＹＥＳ）、ＴＣＰ受信モジュールＭ３はＴＣＰリンクが切断されていないと判断し、ステップＳ４０１に進んでタイマをクリアする。
一方、キープ・アライブ・パケットに対してＴＣＰ呼制御装置１０から所定時間内に返信が無かった場合（ステップＳ４０４／ＮＯ）、ＴＣＰ受信モジュールＭ３は、ＴＣＰリンクが切断されたと判断する。
【００３８】
この時、ＴＣＰ受信モジュールＭ３は受信データ待ちの状態であるが（ステップＳ３２３１）、ＴＣＰリンクが切断されたと判断したことにより、ソケットエラーを検出する（ステップＳ３２３２）。換言すると、ＴＣＰリンクが切断されたことにより、それまで使用していたソケットは使用不可になったものと判断する。
【００３９】
ＴＣＰ受信モジュールＭ３は、エラーを検出したソケットをクローズすると共に（ステップＳ３２３３）、ソケットをクローズしたことをＴＣＰ送信モジュールＭ２に通知する（ステップＳ３２３４）。この時の呼制御モジュールの状態を図１０に示す。
【００４０】
ＴＣＰ受信モジュールＭ３は、ＴＣＰ送信モジュールＭ２にソケットのクローズを通知した後は、ＴＣＰ送信モジュールがソケット情報受信待ちの状態（Ｍ２−１）に移行するのを待機する状態（Ｍ３−２）に遷移する（ステップＳ３３１）。
【００４１】
一方、ＴＣＰ送信モジュールＭ２は通信中は送信データを待機しており（ステップＳ２２３１）、送信するデータがある場合は（ステップＳ２２３２／ＹＥＳ）送信処理を実行し（ステップＳ２２３３）、その後再び送信データを待機する（ステップＳ２２３４／ＹＥＳ、Ｓ２２３１）。
【００４２】
ＴＣＰ送信モジュールＭ２はデータの送信に失敗した場合でも（Ｓ２２３４／ＮＯ）、自身ではＴＣＰリンクが切断されたとは判断せず、ソケットのクローズをＴＣＰ受信モジュールＭ３から通知されていなければ、所定の時間（例えば、数ミリｓｅｃ）が経過した後にアプリケーションレイヤで再度送信する（ステップＳ２２３５、Ｓ２２３６／ＮＯ）。この時もデータの送信に失敗した場合には、さらに所定の時間が経過した後にアプリケーションレイヤでデータを再送信する。ＴＣＰ送信モジュールＭ２は、データの送信に成功するか、ＴＣＰ受信モジュールＭ３からキープ・アライブのタイムアウト（すなわちＴＣＰリンクの切断、ソケットのクローズ）を通知されるまで、データの再送信を繰り返す（ステップＳ２２３３〜Ｓ２２３６／ＮＯ）。
【００４３】
一方、ＴＣＰ受信モジュールＭ３からソケットのクローズが通知された場合には、所定時間待機した後、ＴＣＰ呼制御装置１０へ送信すべき未送信の送信データ（送信に失敗した送信データ）を保存してから、接続受付モジュールＭ１から新たにソケット情報を受信するのを待つ状態（Ｍ２−１）に遷移する（ステップＳ２２３５、Ｓ２２３６／ＹＥＳ、Ｓ２２３７、Ｓ２１０）。
【００４４】
ＴＣＰ送信モジュールＭ２がソケット情報の受信待ち状態（Ｍ２−１）に遷移すると、ＴＣＰ受信モジュールＭ３も接続受付モジュールＭ１から新たなソケット情報の受信を待つ状態（Ｍ３−１）に移行する（ステップＳ３１０）。この時の呼制御モジュールの状態を図１１に示す。
【００４５】
〈再接続時の動作〉
次に、切断されたＴＣＰリンクを再接続する際の各モジュールの動作について説明する。
図１２に、接続受付モジュールＭ１の動作の流れを、図１３に、ＴＣＰ送信モジュールＭ２の動作の流れを、図１４に、ＴＣＰ受信モジュールＭ３の動作の流れをそれぞれ示す。
【００４６】
ＶｏＩＰ呼制御装置１０とＶｏＩＰ端末装置とのＴＣＰリンクを再接続する際には、ＴＣＰ送信モジュールＭ２はソケット情報受信状態Ｍ２−１、ＴＣＰ受信モジュールＭ３はソケット情報受信状態Ｍ３−１となっており、接続受付モジュールＭ１からのソケット情報を待機している（ステップＳ２１１、ステップＳ３１１）。
【００４７】
接続受付モジュールＭ１は、ＶｏＩＰ呼制御装置１０からの接続要求を待機しており（ステップＳ１０２’）、ＶｏＩＰ呼制御装置１０からの接続要求を受信すると（ステップＳ１０３’／ＹＥＳ）、切断されたＴＣＰリンクとは別のポートを用いて通信用ソケットを作成し（ステップＳ１０４’）、そのソケットに関するの接続情報（ポート番号など）をＴＣＰ送信モジュールＭ２とＴＣＰ受信モジュールＭ３とに同報で通知する（ステップＳ１０５’）。
なお、ＶｏＩＰ呼制御装置１０からの接続要求を受信していない場合は（ステップＳ１０３’／ＮＯ）、ステップＳ１０２’に進みＶｏＩＰ呼制御装置１０からの接続要求を待機する。
【００４８】
ＴＣＰ送信モジュールＭ２及びＴＣＰ受信モジュールＭ３は、接続受付モジュールＭ１からソケット情報を通知されるのを待機しており（ステップＳ２１１’、ステップＳ３１１’）、接続受付モジュールＭ１からソケット情報を通知されると（ステップＳ２１２’／ＹＥＳ、ステップＳ３１２’／ＹＥＳ）、通知されたＴＣＰ通信用ポート番号を基に、ＶｏＩＰ呼制御装置１０との通信を開始する（ステップＳ２１３’、ステップＳ３１３’）。
【００４９】
通信を開始した後、ＴＣＰ送信モジュールＭ２が未送信の送信データを保存していれば（ステップＳ２２４／ＹＥＳ）、そのデータを即時にＴＣＰ呼制御装置１０に送信する（ステップＳ２２５）。なお、この際にＴＣＰ送信モジュールＭ２がデータの送信に失敗した場合には、上記同様に、データの送信に成功するか、ＴＣＰ受信モジュールＭ３からＴＣＰリンクの切断を通知されるまで所定の時間間隔を置いてデータの送信を繰り返し実行する。
【００５０】
その後は起動時と同様に、ＴＣＰ送信モジュールＭ２は送信待ちの状態となり（ステップＳ２２１）、送信データがある場合には（ステップＳ２２２／ＹＥＳ）、送信処理を実行してＴＣＰ呼制御装置１０にデータを送信する（ステップＳ２２３）。
また、ＴＣＰ受信モジュールＭ３は、通信を開始した後は起動時と同様に、ＴＣＰ呼制御装置１０からの受信データを待機し（ステップＳ３２１）、データを受信すると（ステップＳ３２２／ＹＥＳ）、受信したデータを処理する（ステップＳ３２３）。
【００５１】
なお、ＴＣＰ受信モジュールＭ３が、ＶｏＩＰ端末装置１００とＶｏＩＰ呼制御装置１０との接続がマルチリンクとはならないように制御しているため、接続受付モジュールＭ１がＶｏＩＰ呼制御装置１０から新たに接続要求を受信した場合は、常に、以前に使用していたポートが使用不可となっている。
【００５２】
図１５に、ＴＣＰ端末装置１００とＴＣＰ呼制御装置１０との動作シーケンスの一例を示す。
【００５３】
このシーケンスについて説明する。ＴＣＰクライアントであるＶｏＩＰ呼制御装置１０は、ＴＣＰポートを使用して接続処理を開始すると、ＴＣＰサーバであるＶｏＩＰ端末装置１００へ接続要求を送信してＴＣＰポート番号を通知する。接続要求を受信したＶｏＩＰ端末装置１００は、ＶｏＩＰ呼制御装置１０から通知されたＴＣＰポート番号に基づいてデータ送受信用のソケットを生成する。これによりＶｏＩＰ呼制御装置１０とＶｏＩＰ端末装置１０とはＴＣＰリンクで接続される。
【００５４】
ＴＣＰリンクが接続されると、ＶｏＩＰ呼制御装置１０及びＶｏＩＰ端末装置１００はそれぞれ送信タイマを起動し、最後にデータを送受信してからの時間を監視し、所定の時間が経過したらキープ・アライブ・パケットを相手側の装置へ送信する。なお、アプリレイやパケットの送受信があるたびに送信タイマはリセットされる。
【００５５】
ケーブル抜けが発生すると、相手側の装置からのデータを受信できない状態となるため、送信タイマがタイムアウトする。よって、ＶｏＩＰ呼制御装置１０及びＶｏＩＰ端末装置１００は、相手側の装置へキープ・アライブ・パケットを送信し、所定の時間内に返信が有るか否かを監視する。
このキープ・アライブ・パケットは、ケーブル抜けのため相手側の端末には届かない。よって、このシーケンスにおいては、キープ・アライブ・パケットに対する返信が所定の時間内に相手側の端末から届くことはない。
【００５６】
キープ・アライブ・パケットに対する返信を所定の時間内に相手側の装置から受信しなかったため、ＶｏＩＰ呼制御装置１０及びＶｏＩＰ端末装置１００は、ＴＣＰリンクが切断されたと判断し、ＴＣＰリンクの接続に用いたソケットをクローズする。
【００５７】
その後、ＶｏＩＰ呼制御装置１０は、ＴＣＰポートを使用して接続処理を開始するが、ソケットをクローズする処理を完了するまでには時間を要するため、別のＴＣＰポートを用いて接続処理を行う。ＶｏＩＰ呼制御装置１０は、この処理をＴＣＰリンクが再接続されるまで繰り返し実行する。
【００５８】
ケーブル抜けが解消されると、ＶｏＩＰ呼制御装置１０が送信した接続要求がＶｏＩＰ端末装置１０に届くため、上記同様にしてＶｏＩＰ呼制御装置１０とＶｏＩＰ端末装置１００とのＴＣＰリンクが接続される。
【００５９】
ＶｏＩＰ端末装置１００において呼制御モジュールが上記動作を行うことにより、図１５に示したシーケンスのような処理を行うことが可能となる。換言すると、ＴＣＰクライアントとなるＴＣＰ呼制御装置１０からの接続要求に応じてＴＣＰリンクを接続し、通信中に切断されたＴＣＰリンクを、ＴＣＰ呼制御装置１０に送信すべきデータをアプリケーションレイヤ上で損失することなく再接続できる。
【００６０】
本実施形態にかかるＶｏＩＰシステムは、ＶｏＩＰ呼制御装置１０がＶｏＩＰ端末装置１００に対して指示を出す関係にあり、ＴＣＰポートの切り替え要求もＶｏＩＰ呼制御装置１０が行う。よって、要求する側のＶｏＩＰ呼制御装置１０がクライアントとなり、要求される側のＶｏＩＰ端末装置１００がサーバという関係となる。
ＴＣＰサーバであるＶｏＩＰ端末装置１００に接続されているクライアントはＶｏＩＰ呼制御装置１０のみであるから、ＶｏＩＰ端末装置１００側から見れば、サーバ対クライアントが１対１の関係で接続されていることとなる。よって、ＴＣＰクライアントであるＶｏＩＰ呼制御装置１０は、接続時のポート番号に基づいてサーバを識別できるため、アプリケーションレイヤでのデータ損失を防ぐことができる。
【００６１】
このように、本実施形態に係るＶｏＩＰシステムによれば、クライアントとなるＶｏＩＰ呼制御装置１０側からＴＣＰ通信用のポート番号を切り替えて通信を行う場合でも、サーバとなるＶｏＩＰ端末装置１００は柔軟にポートの切り替え処理を行い、アプリケーションレイヤでのデータ損失を発生させることなく通信を再開させることが可能となる。
【００６２】
なお、上記実施形態は、本発明の好適な実施の一例であり、本発明はこれに限定されるものではない。
例えば、上記実施形態では、ＶｏＩＰ端末装置１００を例に説明を行ったが、ＶｏＩＰ端末装置１０１も同様の動作を行うことができることは言うまでもない。
また、上記実施形態では、ＶｏＩＰ端末装置を二つ備えたＶｏＩＰシステムを例に説明を行ったが、これは、ＶｏＩＰ端末装置の数を限定するものではない。
このように、本発明は様々な変形が可能である。
【００６３】
【発明の効果】
以上の説明によって明らかなように、本発明によれば、通信中にサーバ・クライアント間の通信が切断された場合にも、アプリケーションレイヤにおいてデータ損失を生じさせることなく短時間で通信を再接続できるＴＣＰを用いた呼制御を行うＶｏＩＰシステム及びＴＣＰを用いた呼制御を行うＶｏＩＰシステムにおける呼制御方法を提供できる。
【図面の簡単な説明】
【図１】本発明を好適に実施したＴＣＰシステムの構成を示す図である。
【図２】ＴＣＰサーバとなるＶｏＩＰ端末装置に実装された呼処理モジュールの状態を示す図である（ＴＣＰクライアントからの接続要求待機時）。
【図３】ＶｏＩＰ端末装置を起動した際の接続受付モジュールの動作の流れを示すフローチャートである。
【図４】ＶｏＩＰ端末装置を起動した際のＴＣＰ送信モジュールの動作の流れを示すフローチャートである。
【図５】ＶｏＩＰ端末装置を起動した際のＴＣＰ受信モジュールの動作の流れを示すフローチャートである。
【図６】ＴＣＰサーバとなるＶｏＩＰ端末装置に実装された呼処理モジュールの状態を示す図である（ソケット情報通知時）。
【図７】ＴＣＰサーバとなるＶｏＩＰ端末装置に実装された呼処理モジュールの状態を示す図である（通信時）。
【図８】障害発生時のＴＣＰ受信モジュールの動作の流れを示す図である。
【図９】障害発生時のＴＣＰ送信モジュールの動作の流れを示す図である。
【図１０】ＴＣＰサーバとなるＶｏＩＰ端末装置に実装された呼処理モジュールの状態を示す図である（障害発生時）。
【図１１】ＴＣＰサーバとなるＶｏＩＰ端末装置に実装された呼処理モジュールの状態を示す図である（ＴＣＰクライアントからの再接続要求待機時）。
【図１２】ＴＣＰリンクを再接続する際の接続受付モジュールの動作の流れを示すフローチャートである。
【図１３】ＴＣＰリンクを再接続する際のＴＣＰ送信モジュールの動作の流れを示すフローチャートである。
【図１４】ＴＣＰリンクを再接続する際のＴＣＰ受信モジュールの動作の流れを示すフローチャートである。
【図１５】ＴＣＰ端末装置とＴＣＰ呼制御装置との動作シーケンスの一例を示す図である。
【図１６】従来のサーバ・クライアントモデルの構成を示す図である。
【符号の説明】
１０  ＴＣＰ呼制御装置
１００、１０１  ＴＣＰ端末装置
５００、５０１  電話機
Ｍ１  接続受付モジュール
Ｍ２  ＴＣＰ送信モジュール
Ｍ３  ＴＣＰ受信モジュール
【図１】
2004186799.tif 000003
【図２】
2004186799.tif 000004
【図３】
2004186799.tif 000005
【図４】
2004186799.tif 000006
【図５】
2004186799.tif 000007
【図６】
2004186799.tif 000008
【図７】
2004186799.tif 000009
【図８】
2004186799.tif 000010
【図９】
2004186799.tif 000011
【図１０】
2004186799.tif 000012
【図１１】
2004186799.tif 000013
【図１２】
2004186799.tif 000014
【図１３】
2004186799.tif 000015
【図１４】
2004186799.tif 000016
【図１５】
2004186799.tif 000017
【図１６】
2004186799.tif 000018