以下、本発明に係る通信システム1について、図面を参照して説明する。図面は、本発明が採用し得る技術的特徴を説明する為に用いる。図面に記載している装置の構成、各種処理のフローチャート等は、単なる説明例であり、本発明を限定するものではない。
図1を参照し、通信システム1の概要について説明する。通信システム1は、通信端末11,12,13,14を少なくとも備えている。通信端末11〜14は、ネットワーク15に接続している。通信端末11〜14は、ネットワーク15を介して相互に通信を行うことができる。通信端末11〜14は、他の通信端末との間で所定の手順に基づいた通信を行う。通信端末11〜14は、該通信が成功した場合に、他の通信端末との間で自由に相互通信を行うことが可能な状態となる(以下、相互通信を行うことが可能な状態となることを、「通信が確立する」という。)。通信端末11〜14は、特定の親端末を定めることなく、相互に通信を確立することができる。通信が確立した後、通信端末11〜14間では、例えばテレビ会議を実行するためのデータ(撮影データ、音声データ等)が送受信される。通信端末11〜14は、他の通信端末から受信した撮影データや音声データを出力する。通信端末11〜14を使用する使用者は、他の通信端末を使用する使用者の撮影映像や音声を認識できる。なお通信システム1は、SIP(Session Initiation Protocol)サーバ16を備えていてもよい。SIPサーバ16は、必要に応じて、SIPを利用して通信端末11〜14間の呼制御を行う。
図2を参照し、通信端末11の電気的構成について説明する。通信端末11〜14の電気的構成は同一である。通信端末11は、CPU21、ROM22、RAM23、HDD24を備えている。CPU21は、他の通信端末との通信を制御する。ROM22には、Bootプログラムや初期パラメータが少なくとも記憶される。RAM23は、CPU21の処理時に発生する一時的なデータが少なくとも記憶される。HDD24は、CPU21のプログラムや各種テーブル(図3、4参照)が少なくとも記憶される。CPU21は、ROM22、RAM23、及びHDD24と電気的に接続している。CPU21は、ROM22、RAM23、及びHDD24の記憶領域にアクセスできる。
通信端末11は、表示ドライバ25を備えている。表示ドライバ25は、ディスプレイ26に像を表示させるための制御を行う。CPU21は、表示ドライバ25と電気的に接続している。表示ドライバ25は、ディスプレイ26と電気的に接続する。CPU21は、ディスプレイ26に所望の像を表示させることができる。通信端末11は、入力ドライバ30を備えている。入力ドライバ30は、キーボード31を介して入力された情報を検出する。CPU21は、入力ドライバ30と電気的に接続している。入力ドライバ30は、キーボード31と電気的に接続する。CPU21は、キーボード31を介して入力された情報を認識できる。通信端末11は、スピーカ32を備えている。CPU21は、スピーカ32と電気的に接続している。CPU21は、スピーカ32から所望の音声を出力できる。通信端末11は、マイク33を備えている。CPU21はマイク33と電気的に接続している。CPU21は、マイク33において収録された音声を取得できる。
通信端末11は、通信モジュール27を備えている。通信モジュール27は、ネットワーク15を介した通信を可能とする。CPU21は、通信モジュール27と電気的に接続している。CPU21は、ネットワーク15を介して通信を行うことができる。通信端末11は、ディスクドライブ28を備えている。ディスクドライブ28は、記憶媒体29に記憶された情報にアクセスする為の駆動装置である。CPU21は、ディスクドライブ28と電気的に接続している。CPU21は、ディスクドライブ28に記憶媒体29が挿入された状態で、記憶媒体29に記憶された情報にアクセスできる。記憶媒体29には、例えば、CPU21が実行する通信プログラムが記憶される。通信端末11の導入時に、通信プログラムは記憶媒体29から読み出され、HDD24に記憶される。
HDD24に記憶されるテーブルについて、以下に説明する。確立状態テーブルの一例である確立状態テーブル211について、図3を参照して説明する。確立状態テーブル211には、通信端末IDと、通信端末の通信状態とが対応付けられて記憶される。通信端末11は、他の通信端末との通信状態を三つの状態で管理する。他の通信端末に対して通信確立を要求している場合、通信状態は「要求送信中」とされる。他の通信端末から通信確立の要求を受けている場合、通信状態は「要求受信中」とされる。他の通信端末と相互通信が可能な場合、通信状態は「通信中」とされる。
キー情報テーブルの一例であるキー情報テーブル212について、図4を参照して説明する。キー情報テーブル212には、通信端末ID、Caller ID、及びキー情報が対応付けられて記憶される。通信端末IDは、キー情報(詳細は後述する)を決定した通信端末のIDである。Caller IDは、通信端末IDにて特定される通信端末と通信確立状態にある通信端末のIDである。
図5を参照し、通信端末11と通信端末13との間で通信が確立し、相互通信が実行されるまでの通信手順について説明する。通信端末11の使用者は、通信端末11に対して、通信端末13との通信を確立して相互通信を開始する指示を入力する。通信端末11は、他の通信端末との通信確立を要求する要求パケット(INVITE要求)を、通信端末13に対して送信する。通信端末13は、INVITE要求を受信する(34)。INVITE要求を送信した通信端末11の確立状態テーブルの通信端末IDとして、通信端末13のID「13」が記憶され、通信状態として「要求送信中」が記憶される。INVITE要求を受信した通信端末13の確立状態テーブルの通信端末IDに、通信端末11のID「11」が記憶され、通信状態として「要求受信中」が記憶される。
通信端末13は、通信端末13のディスプレイ26に、通信端末11から通信確立の要求があったことを示す情報を表示する。通信端末13の使用者は、通信端末11との通信確立の許否を判断する。通信端末13の使用者は、通信端末13に対して判断結果を入力する。図5のうち目印Mは、使用者が判断結果を入力可能な時間帯を示す。目印Mが付されている場合、使用者は、INVITE要求(34)等のパケットを受信してから所定の時間内に、判断結果を入力することができる。通信端末11との通信確立を許可する旨の入力がされた場合、通信端末13は、他の通信端末との通信確立を許可する許可パケット(OK応答)を、通信端末11に対して送信する。通信端末11は、OK応答を受信する(35)。通信端末11は、通信端末13に対してACKを送信する。通信端末13は、ACKを受信する(36)。OK応答を受信した通信端末11の確立状態テーブルのうち、通信端末ID「13」に対応する通信状態として「通信中」が記憶される。ACKを受信した通信端末13の確立状態テーブルのうち、通信端末ID「11」に対応する通信状態として「通信中」が記憶される。以上の通信が行われることによって、通信端末11と通信端末13との間の通信は確立する。通信端末11と通信端末13との間で相互通信が実行される(37)。
図6を参照し、通信端末11〜13間で通信が確立して相互通信が実行されるまでの通信手順の第一例について説明する。通信端末11と通信端末13とは既に通信が確立し、相互通信可能な状態にある。通信端末11と通信端末13とは相互通信を行っている(41)。第一例では、通信端末12が、通信端末11との通信を確立させて相互通信を行う場合が示されている。
通信端末12の使用者は、通信端末12に対して、通信端末11との通信を確立して相互通信を開始する指示を入力する。通信端末12は、通信端末11に対してINVITE要求を送信する。通信端末11は、INVITE要求を受信する(42)。通信端末11及び通信端末12の確立状態テーブルが更新される(通信端末11:通信端末ID「12」/通信状態「要求受信中」、通信端末12:通信端末ID「11」/通信状態「要求送信中」)。通信端末11のディスプレイ26に、通信端末12から通信確立の要求があったことを示す情報が表示される。通信端末11の使用者は、通信端末12との通信確立の許否を判断する。通信端末11の使用者は、通信端末11に対して判断結果を入力する。
通信端末12との通信確立を許可する旨の入力がされた場合、通信端末11は、所定のキー情報「xxxx」を決定する。例えば周知のアルゴリズムに基づき乱数を生成させ、生成された乱数をキー情報として決定する。通信端末11は、OK応答を通信端末12に対して送信する。OK応答には、決定されたキー情報「xxxx」が対応付けられる。またOK応答には、通信端末11と通信が確立している通信端末13のID「13」が「Caller ID」として対応付けられる。通信端末12はOK応答を受信する(43)。通信端末12は、OK応答を送信した通信端末のID「11」、OK応答に対応付けられていたCaller ID「13」及びキー情報「xxxx」、を、キー情報テーブルに記憶する。図6のうち「11/13/xxxx」は、其々「通信端末ID/Caller ID/キー情報」を示している。
通信端末11の使用者によって、通信端末12との通信確立を拒否する旨の入力がされた場合、通信端末11は、通信確立を拒否する拒否パケット(BUSY応答)を通信端末12に対して送信する。通信端末12はBUSY応答を受信する。通信端末11及び通信端末12の確立状態テーブルが更新される(通信端末ID及び通信状態が削除される。)。通信端末11と通信端末12との通信は確立しない。このように通信端末11は、通信端末12との通信確立を望まない場合、通信端末12との通信確立を拒否できる。通信端末11は、通信の確立を望む通信端末とのみ通信を確立して相互通信を行うことができるので、通信システムの秘匿性を維持できる。
通信端末12は、通信端末11からOK応答を受信した場合、通信端末11と通信確立が許可されたことを示す情報をディスプレイ26に表示する。また通信端末12は、通信端末11と通信確立状態にある通信端末13を示す情報をディスプレイ26に表示する。通信端末12の使用者は、通信端末13との通信確立の許否を判断する。通信端末12の使用者は、通信端末11に対して判断結果を入力する。
通信端末13との通信確立を許可する旨の入力がされた場合、通信端末12は、通信端末11に対してACKを送信する。通信端末11は、ACKを受信する(44)。通信端末11と通信端末12との間の通信が確立する。通信端末11及び通信端末12の確立状態テーブルが更新される(通信端末11:通信端末ID「12」/通信状態「通信中」、通信端末12:通信端末ID「11」/通信状態「通信中」)。通信端末11と通信端末12との間で相互通信が実行される(45)。
通信端末12の使用者によって、通信端末13との通信確立を拒否する旨の入力がされた場合、通信端末12は、通信を中止する中止パケット(BYE要求)を通信端末11に対して送信する。通信端末11はBYE要求を受信する。通信端末11及び通信端末12の確立状態テーブルが更新される(通信端末ID及び通信状態が削除される。)。通信端末11と通信端末12との通信は確立しない。このように通信端末12は、通信端末11と通信確立状態にある通信端末13を、通信確立前に認識できる。通信端末12は、通信端末13との通信確立を望まない場合、通信端末13との通信の確立を拒否できる。これによって、通信システムの秘匿性を維持できる。
通信端末11が通信端末12からACKを受信した後、通信端末11は、他の通信端末との通信確立を許可した旨を通知する通知パケット(REFER要求)を、通信端末13に対して送信する。REFER要求には、通信端末11が通信端末12に対して送信したOK応答に対応付けたキー情報「xxxx」が対応付けられる。またREFER要求には、OK応答を送信した(自身に対して通信確立を要求した)通信端末12のID「12」が「Callee ID」として対応付けられる。通信端末13は、REFER要求を受信する(46)。通信端末11及び通信端末13の確立状態テーブルが更新される(通信端末11:通信端末ID「13」/通信状態「要求送信中」、通信端末13:通信端末ID「11」/通信状態「要求受信中」)。
通信端末13は、通信端末11が通信端末12との通信確立を許可したことを示す情報を、ディスプレイ26に表示する。通信端末13の使用者は、通信端末12との通信確立の許否を判断する。通信端末13の使用者は、通信端末13に対して判断結果を入力する。通信端末12との通信確立を許可する旨の入力がされた場合、通信端末13は、通信確立を許可する許可パケット(ACCEPT応答)を、通信端末11に対して送信する。通信端末11は、ACCEPT応答を受信する(47)。
通信端末13の使用者によって、通信端末12との通信確立を拒否する旨の入力がされた場合、通信端末13は、BUSY応答を通信端末11に対して送信する。通信端末11はBUSY応答を受信する。通信端末11及び通信端末13の確立状態テーブルが更新される(通信端末ID及び通信状態が削除される。)。通信端末11は、通信端末12に対してBYE要求を送信する。通信端末12はBYE要求を受信する。通信端末11及び通信端末12の確立状態テーブルが更新される(通信端末ID及び通信状態が削除される。)。通信端末12と通信端末13との通信は確立せず、通信端末11と通信端末12との通信確立状態は解消される。このように通信端末13は、通信端末11が通信確立を許可した通信端末12を認識できる。通信端末13は、通信端末12との通信確立を望まない場合、通信端末12との通信の確立を拒否できる。また通信端末11は、通信端末13が通信確立を拒否した場合、通信端末12との通信接続状態を解消する。これによって、通信システムの秘匿性を維持できる。
通信端末13は、通信端末11に対してACCEPT応答を送信した後、通信端末12と通信を確立させるために、通信端末12に対してINVITE要求を送信する。INVITE要求には、受信したREFER要求に対応付けられているキー情報「xxxx」が対応付けられる。通信端末12は、INVITE要求を受信する(48)。通信端末12及び通信端末13の確立状態テーブルが更新される(通信端末12:通信端末ID「13」/通信状態「要求受信中」、通信端末13:通信端末ID「12」/通信状態「要求送信中」)。
通信端末12は、受信したINVITE要求の送信元端末のID「13」が、キー情報テーブルに記憶されている「Caller ID」と一致するか判断する。また通信端末12は、受信したINVITE要求に対応付けられているキー情報「xxxx」が、キー情報テーブルに記憶されているキー情報と一致するか判断する。双方が一致した場合、Caller IDにて特定される通信端末13は、通信端末11と通信確立状態にある通信端末であるということになる。この場合、通信端末12は、使用者に通信確立の許否を問い合わせる表示を行わない。これによって通信端末12は、使用者に対する確認を要することなく迅速に通信を実行できる。
通信端末12は通信端末13に対してOK応答を送信する。通信端末13は、OK応答を受信する(49)。通信端末13は、通信端末12に対してACKを送信する。通信端末12は、ACKを受信する(50)。通信端末12と通信端末13との間の通信が確立する。通信端末12及び通信端末13の確立状態テーブルが更新される(通信端末12:通信端末ID「13」/通信状態「通信中」、通信端末13:通信端末ID「12」/通信状態「通信中」)。通信端末12と通信端末13との間で相互通信が実行される(51)。このように通信端末12は、Caller ID及びキー情報の一致/不一致を判断することで、INVITE要求を送信した通信端末13が、通信端末11と通信確立状態にある通信端末であるか否かを判断できる。通信端末12は、自身が直接通信確立を要求した通信端末11と通信確立状態にある通信端末との間で、確実に通信を確立して相互通信を開始できる。通信端末12は、通信端末11と通信確立状態にない不特定の通信端末と通信を確立させてしまうことを防止できる。従って、不特定の通信端末に情報が漏えいしてしまうことを防止できる。
図7を参照し、通信端末11〜13間で通信が確立して相互通信が可能となるまでの通信手順の第二例について説明する。上述の第一例と同一処理部分は、説明を省略し又は簡略化する。通信端末11と通信端末13とは既に通信が確立し、相互通信可能な状態にある。通信端末11と通信端末13とは相互通信を行っている(61)。第二例では、通信確立状態にある通信端末11,13のうち通信端末11が、通信端末12との通信を確立させて相互通信を行う場合が示されている。
通信端末11の使用者は、通信端末11に対して、通信端末12と通信を確立して相互通信を開始する指示を入力する。通信端末11は、所定のキー情報「xxxx」を決定する。通信端末11は、通信端末12に対してINVITE要求を送信する。INVITE要求には、決定されたキー情報「xxxx」が対応付けられる。またINVITE要求には、通信端末11と通信確立状態にある通信端末13のID「13」が「Caller ID」として対応付けられる。通信端末12は、INVITE要求を受信する(62)。通信端末12は、INVITE要求を送信した通信端末のID「11」、INVITE要求に対応付けられていたCaller ID「13」及びキー情報「xxxx」を、キー情報テーブルに記憶する。
通信端末12は、通信端末11から通信確立の要求があったことを示す情報をディスプレイ26に表示する。また通信端末12は、通信端末11との通信が確立している通信端末13を示す情報をのディスプレイ26に表示する。通信端末12の使用者は、通信端末11,13との通信確立の許否を判断する。通信端末12の使用者は、通信端末12に対して判断結果を入力する。通信端末11,13との通信確立を許可する旨の入力がされた場合、通信端末12は、通信端末11に対してOK応答を送信する。通信端末12は、OK応答を受信する(63)。
通信端末12の使用者によって、通信端末11,13との通信確立を拒否する旨の入力がされた場合、通信端末12は、通信端末11に対してBUSY応答を送信する。通信端末11はBUSY応答を受信する。通信端末11,13と通信端末12との通信は確立しない。このように通信端末12は、通信端末11,13との通信確立を望まない場合、通信端末11,13との通信の確立を拒否できる。これによって、通信システムの秘匿性を維持できる。
通信端末11が通信端末12からOK応答を受信した場合、通信端末11は、通信端末12に対してACKを送信する。通信端末12は、ACKを受信する(64)。通信端末11と通信端末12との間の通信が確立する。通信端末11と通信端末12との間で相互通信が実行される(65)。
通信端末11が通信端末12に対してACKを送信した後、通信端末11は、通信端末13に対してREFER要求を送信する。REFER要求には、通信端末12に対して送信したINVITE要求に対応付けたキー情報「xxxx」が対応付けられる。またREFER要求には、INVITE要求を送信した通信端末12のID「12」が「Callee ID」として対応付けられる。通信端末13は、REFER要求を受信する(66)。
通信端末13は、使用者に対して通信確立の許否を問い合わせる。通信端末13の使用者によって、通信確立を許可する旨の入力がされた場合、通信端末13は、ACCEPT応答を通信端末11に対して送信する。通信端末11はACCEPT応答を受信する(67)。通信端末13は、ACCEPT応答を通信端末11に対して送信した後、通信端末12との通信を確立させるために、通信端末12に対してINVITE要求を送信する。INVITE要求には、受信したREFER要求に対応付けられたキー情報「xxxx」が対応付けられる。通信端末12は、INVITE要求を受信する(68)。通信端末12は、受信したINVITE要求の送信元端末のID「13」が、キー情報テーブルに記憶されている「Caller ID」と一致するか判断する。また通信端末12は、受信したINVITE要求に対応付けられているキー情報「xxxx」が、キー情報テーブルに記憶されているキー情報と一致するか判断する。双方が一致した場合、Caller IDにて特定される通信端末13は、通信端末11と通信確立状態にある通信端末であるということになる。この場合、通信端末12は、使用者に通信確立の許否を問い合わせる表示を行わない。通信端末12は、使用者に通信確立の許否を問い合わせる表示を行わない。これによって通信端末12は、使用者に対する確認を要することなく迅速に通信を実行できる。
通信端末12は、通信端末13に対してOK応答を送信する。通信端末13は、OK応答を受信する(69)。通信端末13は、通信端末12に対してACKを送信する。通信端末12は、ACKを受信する(70)。通信端末12と通信端末13との間の通信が確立する。通信端末12と通信端末13との間で相互通信が実行される(71)。このように通信端末12は、INVITE要求を送信した通信端末13が、通信端末11と通信確立状態にある通信端末であるか否かを判断できる。通信端末12は、通信端末11と通信確立状態にない不特定の通信端末と通信を確立させてしまうことを防止できる。
図8及び図9を参照し、通信端末11〜14間で通信が確立して相互通信が可能となるまでの手順について説明する。上述の第一例及び第二例と同一処理部分は、説明を省略し又は簡略化する。図8に示すように、通信端末11と通信端末13とは相互通信を行っている(81)。通信端末12と通信端末14とは相互通信を行っている(82)。図8及び図9では、通信端末12が通信端末11との通信を確立させて相互通信を行う場合が示されている。
通信端末12の使用者は、通信端末12に対して、通信端末11との通信を確立して相互通信を開始する指示を入力する。通信端末12は、所定のキー情報「aaaa」を決定する。通信端末12は、通信端末11に対してINVITE要求を送信する。INVITE要求には、決定されたキー情報「aaaa」が対応付けられる。またINVITE要求には、通信端末12と通信確立状態にある通信端末14のID「14」がCaller IDとして対応付けられる。通信端末11は、INVITE要求を受信する(83)。通信端末11は、INVITE要求を送信した通信端末ID「12」、INVITE要求に対応付けられていたCaller ID「14」及びキー情報「aaaa」をキー情報テーブルに記憶する。
通信端末11の使用者によって通信端末12,14との通信が許可された場合、通信端末11は、所定のキー情報「bbbb」を決定する。通信端末11は、通信端末12に対してOK応答を送信する。OK応答には、決定されたキー情報「bbbb」が対応付けられる。またOK応答には、通信端末11と通信確立状態にある通信端末13のID「13」がCaller IDとして対応付けられる。通信端末12はOK応答を受信する(84)。通信端末12は、OK応答を送信した通信端末ID「11」、OK応答に対応付けられていたCaller ID「13」及びキー情報「bbbb」をキー情報テーブルに記憶する。通信端末12の使用者によって通信端末11,13との通信確立が許可された場合、通信端末12は、通信端末11に対してACKを送信する。通信端末11は、ACKを受信する(85)。通信端末11と通信端末12との間の通信が確立する。通信端末11と通信端末12との間で相互通信が実行される(86)。
通信端末11が通信端末12からACKを受信した後、通信端末11は、通信端末13に対してREFER要求を送信する。REFER要求には、通信端末12に対して送信したOK応答(84参照)に対応付けたキー情報「bbbb」が対応付けられる。またREFER要求には、OK応答を送信した(自身に対して通信確立を要求した)通信端末12のID「12」が「Callee ID」として対応付けられる。通信端末13は、REFER要求を受信する(87)。通信端末13の使用者によって通信端末12との通信確立が許可された場合、通信端末13は、通信端末11に対してACCEPT応答を送信する。通信端末11は、ACCEPT応答を受信する(88)。
通信端末13は、通信端末12との通信を確立させるために、通信端末12に対してINVITE要求を送信する。INVITE要求には、受信したREFER要求に対応付けられていたキー情報「bbbb」が対応付けられる。通信端末12は、INVITE要求を受信する(89)。通信端末12は、受信したINVITE要求の送信元端末のID「13」が、キー情報テーブルに記憶されている「Caller ID」と一致するか判断する。また通信端末12は、受信したINVITE要求に対応付けられているキー情報「bbbb」が、キー情報テーブルに記憶されているキー情報と一致するか判断する。双方が一致した場合、通信端末12は、使用者に通信確立の許否を問い合わせる表示を行わない。通信端末12は、所定のキー情報「cccc」を決定する。通信端末12は、OK応答を通信端末13に対して送信する。OK応答には、決定されたキー情報「cccc」が対応付けられる。またOK応答には、通信端末12と通信確立状態にある通信端末14のID「14」がCaller IDとして対応付けられる。通信端末13はOK応答を受信する(90)。通信端末13は、OK応答を送信した通信端末ID「12」、OK応答に対応付けられていたCaller ID「14」及びキー情報「cccc」をキー情報テーブルに記憶する。通信端末13は、通信端末12に対してACKを送信する。通信端末12は、ACKを受信する(91)。通信端末12と通信端末13との間の通信が確立する。通信端末12と通信端末13との間で相互通信が実行される(92)。
通信端末12は、ACKを通信端末11に対して送信した(85、図8参照)後、通信端末14に対してREFER要求を送信する。REFER要求には、通信端末11に対して送信したINVITE要求(83参照)に対応付けたキー情報「aaaa」が対応付けられる。またREFER要求には、INVITE要求(83参照)を送信した通信端末11のID「11」がCallee IDとして対応付けられる。通信端末14は、REFER要求を受信する(101)。通信端末14の使用者によって通信端末11との通信確立が許可された場合、通信端末14は、通信端末12に対してACCEPT応答を送信する。通信端末12は、ACCEPT応答を受信する(102)。
図9に示すように、通信端末14は、通信端末11との通信を確立させるために、通信端末11に対してINVITE要求を送信する。INVITE要求には、受信したREFER要求に対応付けられていたキー情報「aaaa」が対応付けられる。通信端末11は、INVITE要求を受信する(103)。通信端末11は、受信したINVITE要求の送信元端末のID「14」が、キー情報テーブルに記憶されているCaller IDと一致するか判断する。また通信端末11は、受信したINVITE要求に対応付けられているキー情報「aaaa」が、キー情報テーブルに記憶されているキー情報と一致するか判断する。双方が一致した場合、通信端末11は、使用者に通信確立の許否を問い合わせる表示を行わない。通信端末11は、所定のキー情報「dddd」を決定する。通信端末11は、OK応答を通信端末14に対して送信する。OK応答には、決定されたキー情報「dddd」が対応付けられる。またOK応答には、通信端末11と通信確立状態にある通信端末13のID「13」がCaller IDとして対応付けられる。通信端末14はOK応答を受信する(104)。通信端末14は、OK応答を送信した通信端末ID「11」、OK応答に対応付けられていたCaller ID「13」及びキー情報「dddd」をキー情報テーブルに記憶する。通信端末14は、通信端末11に対してACKを送信する。通信端末12は、ACKを受信する(105)。通信端末11と通信端末14との間の通信が確立する。通信端末11と通信端末14との間で相互通信が実行される(106)。
通信端末12は、通信端末11からACK(91、図8参照)を受信した後、通信端末14に対してREFER要求を送信する。REFER要求には、通信端末12が通信端末13に対して送信したOK応答(90、図8参照)に対応付けたキー情報「cccc」が対応付けられる。またREFER要求には、自身に対して通信確立を要求した通信端末13のID「13」がCallee IDとして対応付けられる。通信端末14は、REFER要求を受信する(109)。通信端末14の使用者によって通信端末13との通信確立が許可された場合、通信端末14は、通信端末12に対してACCEPT応答を送信する。通信端末12は、ACCEPT応答を受信する(110)。
通信端末14は、通信端末12に対してACCEPT応答を送信した後、通信端末13との通信を確立させるために、通信端末13に対してINVITE要求を送信する。INVITE要求には、REFER要求(109)とともに受信したキー情報「cccc」が対応付けられる。通信端末13は、INVITE要求を受信する(111)。通信端末13は、受信したINVITE要求の送信元端末のID「14」が、キー情報テーブルに記憶されているCaller IDと一致するか判断する。また通信端末13は、受信したINVITE要求に対応付けられているキー情報「cccc」が、キー情報テーブルに記憶されているキー情報と一致するか判断する。双方が一致した場合、通信端末13は、使用者に通信確立の許否を問い合わせる表示を行わない。通信端末13は、所定のキー情報「eeee」を決定する。通信端末13は、OK応答を通信端末14に対して送信する。OK応答には、決定されたキー情報「eeee」が対応付けられる。またOK応答には、通信端末13と通信が確立している通信端末11のID「11」がCaller IDとして対応付けられる。通信端末14はOK応答を受信する(112)。通信端末14は、通信端末13に対してACKを送信する。通信端末13は、ACKを受信する(113)。通信端末13と通信端末14との間の通信が確立する。通信端末13と通信端末14との間で相互通信が実行される(114)。
通信端末11は、通信端末14からACK(105参照)を受信した後、通信端末13に対してREFER要求を送信する。REFER要求には、通信端末14に対して送信したOK応答(104参照)に対応付けたキー情報「dddd」が対応付けられる。またREFER要求には、OK応答を送信した(自身に対して通信確立を要求した)通信端末14のID「14」がCallee IDとして対応付けられる。通信端末13は、REFER要求を受信する(115)。通信端末13は、通信端末11に対してACCEPT応答を送信する。通信端末11は、ACCEPT応答を受信する(116)。ここで、通信端末13と通信端末14とは既に通信確立状態にある(114参照)。通信端末13に記憶された確立状態テーブルのうち通信端末ID「14」の通信状態は「通信中」になっている。この場合通信端末13は、通信端末14に対してINVITE要求を送信しない。このように通信端末13は、通信確立状態にある通信端末に対しては、REFER要求を受信した場合であってもINVITE要求を送信しない。これによって通信端末は、通信確立のために必要な通信量を抑制できるので、ネットワーク15のトラフィックを抑制できる。また通信端末13は、早期に通信端末間で通信を確立できる。
以上のように通信端末11〜14は、親端末による通信制御を経ることなく、通信確立を要求する通信端末との間で通信を確立して相互通信を開始させることができる。親端末が不要となるので、使用者による親端末の設定作業が不要となる。また、確立中端末から親端末が離脱できないという制約を排除できる。さらに、親端末が確立中端末から離脱した場合の親端末の再設定作業が不要となる。
図10から図14のフローチャートを参照し、通信端末11〜14において実行されるメイン処理について説明する。メイン処理は、通信端末11〜14の電源が投入された場合に、CPU21において起動され実行される。
メイン処理が起動されると、はじめに、他の通信端末(以下「要求先端末」という。)との通信確立を行う旨の入力を使用者が行ったかが判断される(S11)。要求先端末との通信確立を行う旨の入力がされた場合(S11:YES)、確立状態テーブルが参照される。通信状態が「通信中」である通信端末のIDが確立状態テーブルに記憶されているか判断される。通信状態が「通信中」である通信端末のIDが確立状態テーブルに記憶されている場合、通信中である通信端末のIDがCaller IDとしてINVITE要求に対応付けられる。通信状態が「通信中」である通信端末のIDが確立状態テーブルに記憶されている場合、所定のキー情報が決定される(S13)。決定されたキー情報は、INVITE要求に対応付けられる。
要求先端末に対し、INVITE要求が送信される(S15)。要求先端末のIDは確立状態テーブルに記憶される。確立状態テーブルのうち要求先端末のIDに対応する通信状態として「要求送信中」が記憶される(S16)。
要求先端末に対してINVITE要求を送信した後、OK応答の受信が監視される(S17)。要求先端末において通信確立が拒否された場合、要求送信端末からBUSY応答が送信される(S96、図14参照)。OK応答が受信されず(S17:NO)、BUSY応答が受信された場合、要求先端末と通信を確立させることができないので、そのままS11の処理に戻る。
要求先端末において通信確立が許可された場合、要求先端末からOK応答が送信される。OK応答が受信された場合(S17:YES)、OK応答にCaller IDが対応付けられているかが判断される。受信したOK応答にCaller IDが対応付けられている場合であって、Caller IDと同一のIDが確立状態テーブルに記憶されている場合、Caller IDにて特定される通信端末(要求先端末と通信確立状態にある通信端末。以下「要求先確立端末」という。)は既に使用者によって通信確立が許可されていることになる。また、OK応答にCaller IDが対応付けられていない場合、要求先端末と通信確立状態にある通信端末は存在しないことになる(S18:YES)。要求先端末に対してACKを送信するために、そのままS21(図11参照)の処理に進む。
OK応答に対応付けられているCaller IDと同一のIDが確立状態テーブルに記憶されていない場合(S18:NO)、要求先確立端末との通信確立の許否を使用者に判断させる必要がある。要求先確立端末を使用者に通知するために、ディスプレイ26にCaller IDが表示される。要求先確立端末との通信を確立するか否かを使用者に問い合わせる問い合わせ表示が、ディスプレイ26に表示される。使用者は、要求先確立端末との通信確立の許否を判断し、判断結果を入力する。要求先確立端末との通信確立を許可する旨が使用者によって入力された場合(S19:YES)、要求先端末に対してACKを送信するために、S21(図11参照)の処理に進む。
要求先確立端末との通信確立を拒否する旨が使用者によって入力された場合(S19:NO)、要求先端末との通信確立通信を中止させる処理(第一拒否処理、S20)が実行される。図13を参照し、第一拒否処理について説明する。第一拒否処理では、確立状態テーブルに記憶した要求先端末のID及び通信状態が削除される(S91)。要求先端末に対し、BYE要求が送信される(S92)。BYE要求に応じて要求先端末から送信されるOK応答の受信が監視される(S93)。要求先端末からOK応答を受信した場合(S93:YES)、要求先端末に対してACKが送信される(S94)。そして第一拒否処理を終了し、メイン処理(図10)に戻る。要求送信端末からOK応答を受信できない場合(S93:NO)、そのまま第一拒否処理を終了し、メイン処理(図10)に戻る。図10に示すように、第一拒否処理の終了後、S11の処理に戻る。
図11に示すように、S21の処理では、要求先端末に対して、S17の処理で受信したOK応答に対するACKが送信される(S21)。要求先端末との間で通信が確立し、相互通信が可能な状態になる。要求先端末との間で相互通信が実行される(S22)。S17(図10参照)の処理で要求先端末から受信したOK応答にCaller IDとキー情報とが対応付けられている場合、要求先端末のID、OK応答に対応付けられていたCaller ID及びキー情報はキー情報テーブルに記憶される(S23)。Caller IDは、確立状態テーブルに記憶される。確立状態テーブルに記憶したCaller IDに対応する通信状態として「通信中」が記憶される(S24)。
S15(図10参照)の処理で送信されたINVITE要求に、Caller IDを対応付けたかが判断される(S25)。INVITE要求にCaller IDを対応付けていない場合(S25:NO)、現時点で自身と通信確立状態にある通信端末は存在しないことになるので、そのままS11(図10参照)の処理に戻る。
S15(図10参照)の処理で送信されたINVITE要求にCaller IDを対応付けている場合(S25:YES)、現時点で自身と通信が確立している通信端末(以下「確立中端末」という。)が存在することになる。要求先端末との通信確立を許可した旨を通知するREFER要求が、確立中端末に対して送信される(S27)。REFER要求には、要求先端末のIDがCallee IDとして対応付けられる。またREFER要求には、S15(図10参照)の処理で送信したINVITE要求に対応付けたキー情報が対応付けられる。INVITE要求に対応付けたCaller IDが確立状態テーブルに記憶される。確立状態テーブルに記憶したCaller IDに対応する通信状態として「要求送信中」が記憶される(S28)。REFER要求に応じ、確立中端末から送信されるACCEPT応答の受信が監視される(S29)。確立中端末からACCEPT応答を受信した場合(S29:YES)、そのままS11(図10参照)の処理に戻る。確立中端末からACCEPT応答を受信できない場合(S29:NO)、確立中端末において通信確立が拒否されていることになる。この場合、確立中端末からBUSY応答が送信される(S96、図14参照)。確立中端末から送信されたBUSY応答が受信される。要求先端末との通信確立状態を解消するために、要求先端末に対してBYE要求が送信される(S31)。要求先端末との間の通信確立状態が解消され、相互通信は終了される(S33)。そしてS11(図10参照)の処理に戻る。
一方、図10に示すように、使用者によって要求先端末との通信確立を行う旨の入力がされていない場合(S11:NO)、確立中端末からREFER要求を受信したかが判断される(S41)。REFER要求を受信した場合(S41:YES)、自身との通信確立を望む通信端末(REFER要求に対応付けられているCallee IDにて特定される通信端末、以下「確立待機端末」という。)が存在していることになる。REFER要求に対応付けられているCallee IDと同一のIDが確立状態テーブルに記憶されているかが判断される(S43)。REFER要求に対応付けられているCallee IDと同一のIDが確立状態テーブルに記憶されている場合(S43:YES)、確立待機端末という。)とは既に通信確立のための通信が実行されていることになる。この場合、自身から確立待機端末に対してINVITE要求を送信することなく、S11に戻る。
REFER要求に対応付けられているCallee IDが確立状態テーブルに記憶されていない場合(S43:NO)、確立待機端末と通信を確立させるための処理が実行される。確立待機端末を使用者に通知するために、REFER要求に対応付けられているCallee ID(確立待機端末のID)がディスプレイ26に表示される。確立待機端末との通信を確立させるか否かを使用者に問い合わせる問い合わせ表示が、ディスプレイ26に表示される。使用者は、確立待機端末との通信確立の許否を判断し、判断結果を入力する。
確立待機端末との通信の確立を拒否する旨が使用者によって入力された場合(S45:NO)、確立待機端末との通信確立を中止させる処理(第二拒否処理)が実行される(S49)。図14を参照し、第二拒否処理について説明する。第二拒否処理では、確立状態テーブルに記憶した確立待機端末のID及び通信状態が削除される(S95)。BUSY応答が確立中端末に対して送信される(S96)。BUSY応答に応じて確立中端末から送信されるACK応答が受信される(S97)。第二拒否処理を終了し、メイン処理(図10)に戻る。図10に示すように、第二拒否処理の終了後、S11の処理に戻る。
S45において、確立待機端末との通信の確立を許可する旨が使用者によって入力された場合(S45:YES)、確立中端末に対してACCEPT応答が送信される(S47)。S41の処理で受信したREFER要求に対応付けられているCallee IDは、確立状態テーブルに記憶される。確立状態テーブルに記憶したCallee IDに対応する通信状態として「要求受信中」が記憶される(S48)。そしてS13の処理に進む。INVITE要求が確立待機端末に対して送信される(S15)。確立待機端末からOK応答が受信される(S17:YES)。確立待機端末に対してACKが送信される(S21、図11参照)。確立待機端末との間で通信が確立し、相互通信が可能な状態になる。確立待機端末との間で相互通信が実行される(S22、図11参照)。確立状態テーブルのうち確立待機端末のIDに対応する通信状態に「通信中」が記憶される(S24、図11参照)。
他方、図10に示すように、使用者によって通信確立を行う旨の入力がされておらず(S11:NO)、且つ確立中端末からREFER要求を受信していない場合(S41:NO)、自身との通信確立を要求する通信端末(以下「要求元端末」という。)が送信したINVITE要求を受信したかが判断される(S51)。INVITE要求を受信していない場合(S51:NO)、そのままS11の処理に戻る。
要求元端末からINVITE要求を受信した場合(S51:YES)、図12に示すように、INVITE要求にCaller ID及びキー情報が対応付けられているかが判断される(S53)。INVITE要求にCaller ID及びキー情報が対応付けられていない場合(S53:NO)、要求元端末と通信が確立している通信端末は存在しないことになるので、そのままS57の処理に進む。INVITE要求にCaller ID及びキー情報が対応付けられている場合(S53:YES)、キー情報テーブルが参照される。INVITE要求に対応付けられているCaller ID及びキー情報と一致する情報が、キー情報テーブルに記憶されているかが判断される(S55)。INVITE要求に対応付けられているCaller ID及びキー情報と、キー情報テーブルに記憶されているCaller ID及びキー情報とが一致する場合(S55:YES)、INVITE要求を送信した要求元端末は、要求先端末と通信確立状態にある通信端末であることになる。この場合、通信確立の要求があった旨を使用者に通知する必要はないので、要求元端末に対してOK応答を送信するために、そのままS60の処理に進む。INVITE要求に対応付けられているCaller ID及びキー情報と、キー情報テーブルに記憶されているCaller ID及びキー情報とが相違する場合(S55:NO)、要求元端末は、要求先端末と通信確立状態にない通信端末であるということになる。この場合、使用者に通信確立の許否を判断させるために、S57の処理に進む。
S57の処理では、要求元端末を使用者に通知するために、ディスプレイ26に要求元端末のID(INVITE要求に対応付けられていたCaller ID)が表示される。要求元端末との通信を確立させるか否かを使用者に問い合わせる問い合わせ表示が、ディスプレイ26に表示される。使用者は、要求元端末との通信確立の許否を判断し、判断結果を入力する。要求元端末との通信の確立を拒否する旨が使用者によって入力された場合(S57:NO)、要求元端末との通信確立を中止させる処理(第二拒否処理)が実行される(S58)。その後S11(図10参照)の処理に戻る。一方、S57において、要求元端末との通信の確立を許可する旨が使用者によって入力された場合(S57:YES)、要求元端末のIDが確立状態テーブルに記憶される。確立状態テーブルのうち、要求元端末のIDに対応する通信状態として「要求受信中」が記憶される(S59)。要求元端末に対してOK応答を送信するために、S60の処理に進む。
S60の処理では、確立状態テーブルが参照される。通信状態が「通信中」である通信端末が確立状態テーブルに記憶されているか判断される。通信状態が「通信中」である通信端末が確立状態テーブルに記憶されている場合、通信中である通信端末のIDがCaller IDとしてOK応答に対応付けられる。通信状態が「通信中」である通信端末が確立状態テーブルに記憶されている場合、所定のキー情報が決定される(S60)。決定されたキー情報は、OK応答に対応付けられる。要求元端末に対してOK応答が送信される(S61)。
要求元端末に対してOK応答を送信した後、ACKの受信が監視される(S63)。要求元端末において通信確立が拒否された場合、要求元端末からBUSY応答が送信される(S96、図14参照)。ACKが受信されず(S63:NO)、BUSY応答が受信された場合、要求元端末と通信を確立させることができないので、そのままS11(図10参照)の処理に戻る。
要求元端末において通信確立が許可された場合、要求元端末からACKが送信される。要求元端末からACKが受信された場合(S63:YES)、要求元端末との間で通信が確立し、相互通信が可能な状態となる。要求元端末との間で相互通信が実行される(S71)。S51(図10参照)において要求元端末から受信したINVITE要求にCaller IDとキー情報とが対応付けられているかが判断される。受信したINVITE要求にCaller IDとキー情報とが対応付けられている場合、要求元端末のID、INVITE要求に対応付けられていたCaller ID及びキー情報はキー情報テーブルに記憶される(S73)。INVITE要求に対応付けられていたCaller ID(要求元端末と通信確立状態にある通信端末のID)は確立状態テーブルに記憶される。確立状態テーブルに記憶したCaller IDに対応する通信状態として「通信中」が記憶される(S75)。
S61の処理で送信されたOK応答に、Caller IDを対応付けたかが判断される(S77)。OK応答にCaller IDを対応付けていない場合(S77:NO)、現時点で自身と通信が確立した通信端末は存在しないことになるので、そのままS11(図10参照)の処理に戻る。S61の処理で送信されたOK応答にCaller IDを対応付けている場合(S77:YES)、現時点で自身と通信が確立している確立中端末が存在することになる。要求元端末との通信確立を許可した旨を通知するREFER要求が、確立中端末に対して送信される(S27、図11参照)。REFER要求に応じ、確立中端末から送信されるACCEPT応答の受信が監視される(S29、図11参照)。確立中端末からACCEPT応答を受信した場合(S29:YES、図11参照)、そのままS11(図10参照)の処理に戻る。
以上説明したように、通信端末11〜14は、親端末による通信制御を経ることなく、通信確立を要求する通信端末との間で通信を確立して相互通信を開始させることができる。
なお、本発明は上記実施の形態に限定されるものではなく、種々の変更が可能である。上述の実施の形態では、通信確立状態の通信端末(確立中端末)が存在する状態で他の通信端末(要求元端末)からINVITE要求を受信した場合、要求元端末との通信を確立させた後、確立中端末にREFER要求を送信していた。確立中端末は、REFER要求を受信した場合に、要求元端末に対してINVITE要求を送信することで、要求元端末との通信を確立させていた。しかしながら本発明はこの方法に限定されない。以下、本発明の変形例について説明する。
図15を参照し、本発明の変形例における通信手順について説明する。上述の実施の形態と同一部分については、説明を省略し又は簡略化する。通信端末11と通信端末13とは既に通信が確立し、相互通信可能な状態にある。通信端末11と通信端末13とは相互通信を行っている(121)。変形例では、通信端末12が通信端末11との通信を確立させて相互通信を行う場合が示されている。
通信端末12は、通信端末11に対してINVITE要求を送信する。通信端末11は、INVITE要求を受信する(122)。通信端末11の使用者によって、通信端末12との通信確立を許可する旨の入力がされた場合、通信端末11は、所定のキー情報「xxxx」を決定する。通信端末11は、他の通信端末との通信確立を許可した旨を通知する通知パケット(UPDATE要求)を、通信端末13に対して送信する。UPDATE要求には、決定したキー情報「xxxx」が対応付けられる。またUPDATE要求には、自身に対して通信確立を要求した通信端末12のID「12」が「Caller ID」として対応付けられる。通信端末13は、UPDATE要求を受信する(123)。
通信端末13の使用者によって、通信端末12との通信確立を許可する旨の入力がされた場合、通信端末13は、通信端末12との通信確立を許可するOK応答を、通信端末11に対して送信する。通信端末11はOK応答を受信する(124)。通信端末13は、UPDATE要求を送信した通信端末のID「11」、UPDATE要求に対応付けられていたCaller ID「12」及びキー情報「xxxx」をキー情報テーブルに記憶する。
通信端末11は、通信端末12に対してOK応答を送信する。OK応答には、通信端末13に対して送信したUPDATE要求に対応付けたキー情報「xxxx」が対応付けられる。またUPDATE要求には、通信確立状態にある通信端末13のID「13」が「Caller ID」として対応付けられる。通信端末12は、OK応答を受信する(125)。通信端末12は、通信端末11に対してACKを送信する。通信端末11は、ACKを受信する(126)。通信端末11と通信端末12との間の通信が確立する。通信端末11と通信端末12との間で相互通信が実行される(127)。
通信端末12は、通信端末11に対してACKを送信した後、通信端末13に対してINVITE要求を送信する。INVITE要求には、受信したOK応答(125参照)に対応付けられていたキー情報「xxxx」が対応付けられる。通信端末13は、INVITE要求を受信する(128)。通信端末13は、受信したINVITE要求の送信元端末のID「12」が、キー情報テーブルに記憶されている「Caller ID」と一致するか判断する。また通信端末12は、受信したINVITE要求に対応付けられているキー情報「xxxx」が、キー情報テーブルに記憶されているキー情報と一致するか判断する。双方が一致した場合、通信端末13は通信端末12に対してOK応答を送信する。通信端末12は、OK応答を受信する(129)。通信端末12は、通信端末13に対してACKを送信する。通信端末12は、ACKを受信する(130)。通信端末12と通信端末13との間の通信が確立する。通信端末12と通信端末13との間で相互通信が実行される(131)。以上のように、REFER要求の代わりにUPDATE要求を使用した場合であっても、通信端末は他の通信端末と通信確立のための通信を直接行うことができる。UPDATE要求を使用することで、通信確立状態にない通信端末からINVITE要求を送信させることができる。これによって、通信確立状態にある通信端末に極力処理負荷を与えることなく、通信端末間で通信を確立させることができる。
なお上述では、通信端末12から送信されたINVITE要求を受信した通信端末11が、通信確立状態にある通信端末13に対してUPDATE要求を送信していた。しかしながら本変形例はこの手順に限定されず、他の手順で通信が確立されてもよい。例えば以下の手順で通信が確立されてもよい。
通信端末11の使用者は、通信端末11に対して、通信端末12との通信確立を要求する旨を入力する。通信端末11から通信端末12に対してINVITE要求が送信され、通信端末12においてINVITE要求が受信される。通信端末12の使用者によって通信確立を許可する旨の入力がされた場合、通信端末11に対してOK応答が送信される。通信端末11は、OK応答を受信した場合に、通信確立状態にある通信端末13に対してUPDATE要求を送信する。UPDATE要求を受信した通信端末13では、通信端末13の使用者に対して、通信端末12との通信確立を許可するか否かを問い合わせる。通信端末12との通信確立が許可された場合、通信端末13は通信端末11に対してOK応答を送信する。通信端末11は、通信端末13から送信されたOK応答を受信した場合、通信端末12に対してACKを送信する。通信端末12は、通信端末11から送信されたACKを受信した後、通信端末13に対してINVITE要求を送信する。通信端末13から送信されたINVITE要求に応じ、通信端末13から通信端末12に対してOK応答が送信され、通信端末12から通信端末13に対してACKが送信される。これによって、通信端末11,13と通信端末12との間で通信が確立し、相互通信が可能となる。
図16から図19のフローチャートを参照し、通信端末11〜14において実行されるメイン処理について説明する。上述の実施の形態と同一部分については、説明を省略し又は簡略化している。メイン処理は、通信端末11〜14の電源が投入された場合に、CPU21において起動され実行される。
メイン処理が起動されると、はじめに、要求先端末との通信確立を行う旨の入力を使用者が行ったかが判断される(S101)。要求先端末との通信確立を行う旨の入力がされた場合(S101:YES)、確立状態テーブルが参照される。通信状態が「通信中」である通信端末(確立中端末)のIDが確立状態テーブルに記憶されているか判断される。確立中端末のIDが確立状態テーブルに記憶されている場合、確立中端末のIDがCallee IDとしてINVITE要求に対応付けられる。確立中端末のIDが確立状態テーブルに記憶されている場合、所定のキー情報が決定される(S103)。決定されたキー情報は、INVITE要求に対応付けられる。要求先端末に対し、INVITE要求が送信される(S105)。要求先端末のIDは確立状態テーブルに記憶される。確立状態テーブルのうち要求先端末のIDに対応する通信状態に「要求送信中」が記憶される(S106)。
要求先端末に対してINVITE要求を送信した後、OK応答の受信が監視される(S107)。要求先端末において通信確立が拒否された場合、OK応答は受信されないので(S107:NO)、要求先端末と通信を確立させることなくS101の処理に戻る。
要求先端末において通信確立が許可された場合、要求先端末からOK応答が送信される。OK応答が受信された場合(S107:YES)、OK応答にCallee IDが対応付けられているかが判断される。受信したOK応答にCallee IDが対応付けられている場合であって、Callee IDと同一のIDが確立状態テーブルに記憶されている場合、Callee IDにて特定される通信端末(要求先確立端末)は既に使用者によって通信確立が許可されていることになる。また、OK応答にCallee IDが対応付けられていない場合、要求先端末と通信確立状態にある通信端末は存在しないことになる(S109:YES)。この場合S115の処理に進む。
OK応答に対応付けられているCallee IDと同一のIDが確立状態テーブルに記憶されていない場合(S109:NO)、要求先確立端末との通信確立の許否を使用者に判断させる必要がある。要求先確立端末を使用者に通知するために、ディスプレイ26にCallee IDが表示される。要求先確立端末との通信を確立するか否かを使用者に問い合わせる問い合わせ表示が、ディスプレイ26に表示される。使用者は、要求先確立端末との通信確立の許否を判断し、判断結果を入力する。要求先確立端末との通信確立を許可する旨が使用者によって入力された場合(S111:YES)、S115の処理に進む。要求先確立端末との通信確立を拒否する旨が使用者によって入力された場合(S111:NO)、要求先端末との通信確立通信を中止させる処理(第一拒否処理)が実行され(S113)、S101の処理に戻る。第一拒否処理は、上述した実施の形態と同一である。
S115の処理では、S105の処理で要求先端末に対して送信したINVITE要求にCallee ID及びキー情報を対応付けたか判断される(S115)。送信したINVITE要求にCallee ID及びキー情報を対応付けていない場合(S115:NO)、そのままS119(図17参照)の処理に進む。送信したINVITE要求にCallee ID及びキー情報を対応付けている場合(S115:YES)、Callee IDにて特定される確立中端末に対してUPDATE要求が送信される(S117)。UPDATE要求には、要求先端末のIDがCaller IDとして対応付けられる。またUPDATE要求には、S105の処理で送信したINVITE要求に対応付けたキー情報が対応付けられる。S107の処理で受信されたOK応答に対応付けられていたCallee ID及びキー情報が、キー情報テーブルに記憶される(S118)。
図17に示すように、UPDATE要求に応じて確立中端末から送信されるOK応答の受信が監視される(S119)。確立中端末からOK応答を受信できない場合(S119:NO)、確立中端末において通信確立が拒否されていることになるので、そのままS101(図16参照)の処理に戻る。確立中端末からOK応答を受信した場合(S119:YES)、要求先端末に対してACKが送信される(S121)。要求先端末との間の通信が確立する。要求先端末との間で相互通信が実行される(S122)。S119において受信されたOK応答に対応付けられていたCallee ID及びキー情報が、キー情報テーブルに記憶される(S123)。確立状態テーブルに、要求先端末のIDと通信状態「通信中」とが記憶される(S124)。
S119の処理で受信したOK応答にCallee IDが対応付けられているかが判断される(S125)。OK応答にCallee IDが対応付けられていない場合(S125:NO)、そのままS101(図16参照)の処理に戻る。OK応答にCallee IDが対応付けられている場合(S125:YES)、Callee IDと同一のIDが確立状態テーブルに記憶されているかが判断される(S127)。Callee IDと同一のIDが確立状態テーブルに記憶されている場合(S127:YES)、そのままS101(図16参照)の処理に戻る。OK応答に対応付けられているCallee IDと同一のIDが確立状態テーブルに記憶されていない場合(S127:NO)、Callee IDにて特定される通信端末対してINVITE要求を送信するために、S103(図16)の処理に戻る。
一方、図16に示すように、使用者によって要求先端末との通信確立を行う旨の入力がされていない場合(S101:NO)、確立中端末からUPDATE要求を受信したかが判断される(S141)。UPDATE要求を受信した場合(S141:YES)、UPDATE要求に対応付けられているCaller IDと同一のIDが確立状態テーブルに記憶されているかが判断される(S143)。UPDATE要求に対応付けられているCaller IDと同一のIDが確立状態テーブルに記憶されている場合(S143:YES)、Caller IDにて特定される通信端末(確立待機端末)は既に自身と通信確立のための通信を行っていることになる。この場合、そのままS101に戻る。UPDATE要求に対応付けられているCaller IDが確立状態テーブルに記憶されていない場合(S143:NO)、確立待機端末を使用者に通知するために、UPDATE要求に対応付けられているCaller ID(確立待機端末のID)がディスプレイ26に表示される。確立待機端末との通信を確立させるか否かを使用者に問い合わせる問い合わせ表示が、ディスプレイ26に表示される。使用者は、確立待機端末との通信確立の許否を判断し、判断結果を入力する。
確立待機端末との通信の確立を拒否する旨が使用者によって入力された場合(S145:NO)、確立待機端末との通信確立を中止させる処理(第二拒否処理)が実行され(S149)、S101の処理に戻る。第二拒否処理は、上述した実施の形態と同一である。確立待機端末との通信の確立を許可する旨が使用者によって入力された場合(S145:YES)、S141の処理で受信したUPDATE要求に対応付けられているCaller ID及びキー情報は、キー情報テーブルに記憶される(S147)。S141の処理で受信したUPDATE要求に対応付けられているCaller IDは確立状態テーブルに記憶され、通信状態として「要求受信中」が記憶される(S148)。そしてS101の処理に戻る。
他方、使用者によって通信確立を行う旨の入力がされておらず(S101:NO)、且つ確立中端末からUPDATE要求を受信していない場合(S141:NO)、図18に示すように、自身との通信確立を要求する要求元端末が送信したINVITE要求を受信したかが判断される(S151)。INVITE要求を受信していない場合(S151:NO)、そのままS101(図16参照)の処理に戻る。
要求元端末からINVITE要求を受信した場合(S151:YES)、INVITE要求にCallee ID及びキー情報が対応付けられているかが判断される(S153)。INVITE要求にCallee ID及びキー情報が対応付けられていない場合(S153:NO)、要求元端末と通信確立状態にある通信端末は存在しないことになるので、そのままS157の処理に進む。INVITE要求にCallee ID及びキー情報が対応付けられている場合(S153:YES)、要求元端末と通信確立状態にある通信端末(以下「要求元確立端末」という。)が存在することになる。キー情報テーブルが参照される。受信したINVITE要求に対応付けられているCallee ID及びキー情報と、キー情報テーブルに記憶された通信端末ID及びキー情報とが一致するかが判断される(S155)。双方が一致する場合(S155:YES)、そのままS161(図19参照)の処理に進む。双方が相違する場合(S155:NO)、使用者に通信確立の許否を判断させるために、S157の処理に進む。
S157の処理では、要求元確立端末を使用者に通知するために、ディスプレイ26に要求元確立端末のID(INVITE要求に対応付けられていたCallee ID)が表示される。要求元確立端末との通信を確立させるか否かを使用者に問い合わせる問い合わせ表示が、ディスプレイ26に表示される。使用者は、要求元確立端末との通信確立の許否を判断し、判断結果を入力する。要求元確立端末との通信の確立を拒否する旨が使用者によって入力された場合(S157:NO)、要求元端末との通信確立を中止させる処理(第二拒否処理)が実行され(S159)、S101(図16参照)の処理に戻る。一方、S157において、要求元確立端末との通信の確立を許可する旨が使用者によって入力された場合(S157:YES)、要求元確立端末のIDが確立状態テーブルに記憶される。確立状態テーブルのうち、要求元確立端末のIDに対応する通信状態として「要求受信中」が記憶される(S158)。そしてS161(図19参照)の処理に進む。
図19に示すように、S161の処理では、確立状態テーブルが参照される。通信状態が「通信中」である通信端末(確立中端末)のIDが確立状態テーブルに記憶されているか判断される(S161)。確立中端末のIDが確立状態テーブルに記憶されていない場合(S161:NO)、そのままS171の処理に進む。確立中端末が存在する場合(S161:YES)、所定のキー情報が決定される(S163)。確立中端末に対してUPDATE要求が送信される(S165)。UPDATE要求には、要求元確立端末のIDがCaller IDとして対応付けられる。またUPDATE要求には、S163の処理で決定されたキー情報が対応付けられる。UPDATE要求に応じて確立中端末から送信されるOK応答の受信が監視される(S167)。要求元確立端末からOK応答を受信できない場合(S167:NO)、要求元確立端末において通信確立が拒否されていることになる。この場合、S101(図16参照)の処理に戻る。確立中端末からOK応答が受信された場合(S167:YES)、S171の処理に進む。
S171の処理では、要求元端末に対してOK応答が送信される(S171)。要求元端末から送信されるACKの受信が監視される(S173)。ACKが受信できない場合(S173:NO)、要求元端末において通信確立が拒否されていることになる。この場合、S101(図16)の処理に戻る。要求元端末から送信されたACKを受信した場合(S173:YES)、要求元端末との間の通信が確立する。要求元端末との間で相互通信が実行される(S175)。要求元端末のID、UPDATE要求に対応付けたCaller ID(要求元確立端末のID)及びキー情報は、キー情報テーブルに記憶される(S176)。要求元端末のIDと通信状態「通信中」が確立状態テーブルに記憶される(S177)。
S151(図18参照)において受信したINVITE要求にCallee IDが対応付けられていたかが判断される(S178)。受信したINVITE要求にCallee IDが対応付けられていない場合(S178:NO)、そのままS101(図16参照)の処理に戻る。受信したINVITE要求にCallee IDが対応付けられている場合(S178:YES)、Callee IDと同一のIDが確立状態テーブルに記憶されているかが判断される(S179)。Callee IDと同一のIDが確立状態テーブルに記憶されている場合(S179:YES)、そのままS101(図16参照)の処理に戻る。INVITE要求に対応付けられているCallee IDと同一のIDが確立状態テーブルに記憶されていない場合(S179:NO)、Callee IDにて特定される通信端末に対してINVITE要求を送信するために、S103(図16)の処理に戻る。
以上説明したように、変形例では、REFER要求の代わりにUPDATE要求が使用される。これによって、上述の実施の形態と同様、通信端末は親端末を介することなく他の通信端末と通信を確立させて相互通信を行うことができる。またREFER要求を使用した上述の実施の形態と比較して、早期に通信を確立して相互通信を開始させることができる。
なお、図10のS15の処理を行うCPU21が本発明の「第一送信手段」「第四送信手段」に相当する。図12のS61の処理を行うCPU21が本発明の「第二送信手段」に相当する。図10のS22、及び図12のS71の処理を行うCPU21が本発明の「第一通信手段」「第二通信手段」に相当する。図11のS27の処理を行うCPU21が本発明の「第三送信手段」に相当する。図12のS57の処理を行うCPU21が本発明の「第一判断手段」に相当する。図10のS19の処理を行うCPU21が本発明の「第二判断手段」に相当する。図13のS92の処理を行うCPU21が本発明の「第五送信手段」に相当する。図10のS45の処理を行うCPU21が本発明の「第三判断手段」に相当する。図14のS96の処理を行うCPU21が本発明の「第六送信手段」に相当する。図11のS33の処理を行うCPU21が本発明の「通信中止手段」に相当する。図10のS16、S48、図11のS24、S28、図12のS59、S75の処理を行うCPU21が本発明の「記憶制御手段」に相当する。図10のS15の処理が本発明の「第一送信ステップ」「第四送信ステップ」に相当する。図12のS61の処理が本発明の「第二送信ステップ」に相当する。図10のS22、及び図12のS71の処理が本発明の「第一通信ステップ」「第二通信ステップ」に相当する。図11のS27の処理が本発明の「第三送信ステップ」に相当する。
なお、本発明は上記実施の形態に限定されるものではなく、種々の変更が可能である。上述では、通信端末11〜14の間で通信を確立させる場合の通信手順について説明したが、本発明は、通信を確立させる場合の通信端末の台数に制約されない。5台以上の通信端末間でも通信を確立させることができる。また、通信可能な通信端末のグループが3つ以上ある場合にも同様に、通信端末間で通信を確立させることができる。
上述では、通信確立のための各種パケットは通信端末間で直接送受信されていた。しかしながら本発明はこの方法に限定されない。各種パケットは、ネットワークに接続するSIPサーバ16を介して通信端末間で送受信されてもよい。通信端末は、SIPサーバ16を介して各種パケット通信を実行できる。通信端末は、標準化されたSIPを利用して、通信確立のための通信を実行できる。NAT装置等によってネットワーク15が分断されている場合でも、通信端末は特段処理を行うことなく、他のNAT装置の配下にある通信端末との間で通信を確立させることができる。
上述において、他の通信端末に対してINVITE要求を送信するまでのタイミングを適宜調整できる構成としてもよい。また例えば、図8に示す構成において、通信端末13と通信端末14とが相手方にINVITE要求を送信するまでのタイミングが異なるように調整されてもよい。INVITE要求を送信するまでのタイミングは、ランダムに定めてもよいし、例えばIDから一義的に特定される値としてもよい。これによって、INVITE要求を相手方に送信するタイミングを異ならせることができるので、INVITE要求の送信タイミングが同時になってしまうことを防止できる。
上述では、通信確立の要求があった場合、通信端末の使用者に問い合わせることで、通信確立の許否が判断されていた。しかしながら本発明はこの方法に限定されない。予め通信確立可能な通信端末のIDを通信端末に記憶させてもよい。通信確立の許否は、記憶させたID情報に基づいて行ってもよい。
上述における相互通信は、例えばRTP(Real-time Transport Protocol)によって実行されてもよい。