以下、本発明に係る通信制御装置を具現化した通信制御装置2について、図面を参照して説明する。なおこれらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置、端末の構成、各種処理のフローチャートなどは、特に特定的な記載がない限り、それのみに限定する趣旨ではなく、単なる説明例である。
はじめに、図1を参照し、通信制御装置2を含む通話システム1の概要について説明する。図1に示すように、通話システム1は、インターネット3に接続された携帯通話端末11、携帯通話端末12、PC13、PC14、及び通信制御装置2から構成されている。携帯通話端末11は、ユーザ4によって所有されている。携帯通話端末12及びPC13は、ユーザ5によって所有されている。PC14は、ユーザ6によって所有されている。
携帯通話端末11、携帯通話端末12、PC13、及びPC14について説明する。携帯通話端末11、携帯通話端末12、PC13、及びPC14は何れも、インターネット3を介して他の端末(携帯通話端末及びPC)と通信を行い、端末の所有者間で通話を実行させる機能(IP電話機能)を少なくとも備えている。携帯通話端末11及び12は、インターネット3に接続された図示外のアクセスポイントと無線通信を行うことによって、インターネット3に接続される。携帯通話端末11及び12としては、例えば無線IP電話が使用可能である。PC13及び14は、インターネット3に直接接続される。以下、携帯通話端末11、携帯通話端末12、PC13、PC14を総称して「通話端末10」という。通話端末10では、IP電話機能を実現するための呼制御プロトコルとして、SIP(Session Initiation Protocol)が用いられる。
通話端末10の其々には、ユーザを識別するための識別情報が割り当てられている。SIPにおいては、「SIPアドレス」が識別情報に相当する。ユーザは、SIPアドレスを指定して特定のユーザの通話端末10を呼び出すことによって、特定のユーザと通話を行うことが可能となる。図1に示す例では、携帯通話端末11(ユーザ4が所有)に対してSIPアドレス「hanako@hoge.co.jp」が割り当てられている。携帯通話端末12及びPC13(いずれもユーザ5が所有)に対してSIPアドレス「taro@hogehoge.co.jp」が割り当てられている。PC14(ユーザ6が所有)に対してSIPアドレス「ichiro@hoge.co.jp」が割り当てられている。
図1にて示されているように、ユーザ5の使用する二つの通話端末10(携帯通話端末12、PC13)には、共通のSIPアドレス「taro@hogehoge.co.jp」が割り当てられている。ユーザ5は、共通のSIPアドレスが割り当てられた通話端末を、状況に応じて使い分けることが可能となる。例えば、ユーザ5がPC13に向かって作業を行っている場合には、PC13を通話端末として使用し通話を行う。ユーザ5がPC13から離れて作業を行っている場合には、携帯通話端末12を通話端末として使用し通話を行う。
通信制御装置2について説明する。通信制御装置2は、SIPにおけるSIPサーバとして機能する。本実施の形態では、通信制御装置2の有するSIPサーバとしての機能のうちレジスタ機能及びプロキシ機能について詳説する。しかしながら通信制御装置2は、SIPサーバが通常備える他の機能(相手のSIP UAの移動先を調べる機能(リダイレクト機能)や、SIP UAの情報を管理する機能(ロケーション機能))を備えた構成であってもよい。
通信制御装置2が備えるレジスタ機能について概説する。通話端末10は、通信制御装置2が備える登録リスト(図5参照、詳細後述)への登録を要求する信号(以下「登録要求信号(REGISTER)」という。)を通信制御装置2に対して送信する。通信制御装置2では、登録要求信号(REGISTER)を受信した場合、通話端末10の情報を登録リストに記憶し管理する。登録リストに登録されている通話端末10同士の通話要求を受け付けた場合、通信制御装置2は通話端末10間の通話を実行させる。登録リストに登録されていない通話端末10同士の通話要求を受け付けた場合、通信制御装置2は通話端末10間の通話を実行させない。
通信制御装置2が備えるプロキシ機能について概説する。通話端末10は、通話の開始を要求するための信号(以下「呼び出し要求(INVITE)」という。)を通信制御装置2に対して送信する。通信制御装置2では、呼び出し要求(INVITE)を受信した場合、相手先の通話端末10のIPアドレスなどを調査し、受信した呼び出し要求(INVITE)を調査した通話端末10に対して転送する。以降、SIPに基づき双方の通話端末10から送信される信号を、相手通話端末10に対して転送する。このようにして所定の一連の通信手続きが完了すると、通話端末10間で通話が可能となる。
ここで図1に示すように、同じSIPアドレスが割り当てられた通話端末10が複数存在する場合、通信制御装置2では、両方の通話端末10から登録要求信号(REGISTER)を受信する可能性がある。通信制御装置2において、通話端末10間の通話を実現させるためには、SIPアドレスと通話端末10とが一対一で対応付けられ登録リストに登録されなければならない。本実施の形態における通信制御装置2では、原則として、後で登録要求信号(REGISTER)を送信した通話端末10を優先して登録リストに登録する。先に登録されていた通話端末10は、登録リストから抹消させる。登録リストへの登録/抹消が繰り返し行われないように、一旦登録リストから抹消された通話端末10から再度登録要求信号(REGISTER)を受信した場合、この通話端末10を登録リストに登録させない。
図2を参照し、通信制御装置2の電気的構成について説明する。図2に示すように、通信制御装置2は、通話端末10の登録制御や通話端末10間の呼制御が実行されるCPU21、ブートプログラムやBIOSが記憶されるROM22、フラグ情報やタイマ情報、カウンタ情報等が一時的に記憶されるRAM23、プログラム、登録情報、設定情報などが記憶されるハードディスク(以下「HDD」という。)28を備えている。そして、CPU21とROM22、RAM23、及びHDD28とは、其々電気的に接続されている。CPU21は、ROM22、RAM23、及びHDD28の記憶領域に対してアクセスすることが可能となっている。
HDD28は、アドレスオブレコード(以下「AOR」と略す。)リスト記憶領域281、登録リスト記憶領域282、及びその他の領域を備えている。AORリスト記憶領域281には、登録リストへの登録を認める通話端末10に関する情報がAORリストとして記憶される。登録リスト記憶領域282には、上述した登録リストが記憶される。AORリスト記憶領域281、及び登録リスト記憶領域282に記憶されている情報の詳細については後述する。
通信制御装置2は、インターネット3(図1参照)に接続する為の通信モジュール31を備えている。CPU21と通信モジュール31とは電気的に接続されている。CPU21は、所望のデータをインターネット3に送信することが可能となっている。またCPU21は、インターネット3から受信されるデータを認識することが可能となっている。通信モジュール31としてネットワークカードが使用可能である。
通信制御装置2は、ディスプレイ25に画像を表示させることが可能な表示ドライバ24を備えている。CPU21と表示ドライバ24とは電気的に接続されている。表示ドライバ24とディスプレイ25とは電気的に接続されている。CPU21は、ディスプレイ25に所望の画像を表示させることが可能となっている。
通信制御装置2は、キーボード27を介してユーザによって入力される情報を検出することが可能な入力ドライバ26を備えている。CPU21と入力ドライバ26とは電気的に接続されている。入力ドライバ26とキーボード27とは電気的に接続されている。CPU21は、キーボード27を介して入力される情報を認識することが可能となっている。
通信制御装置2は、CD−ROM30に記憶された情報を読み取ることが可能なCD−ROMドライブ29を備えている。CPU21とCD−ROMドライブ29とは電気的に接続されている。CD−ROM30には、例えばCPU21を駆動させるために必要なプログラムが記憶される。CPU21は、CD−ROM30に記憶されている情報を認識することが可能となっている。
図3を参照し、通話端末10の電気的構成について説明する。図3に示すように、通話端末10は、通信制御装置2への登録要求や通話のための通信制御が実行されるCPU41、CPU41の実行するプログラム等が記憶されるROM42、フラグ情報やタイマ情報、カウンタ情報が一時的に記憶されるRAM43、ディスプレイ49(後述)に表示させる画像データや、スピーカ46(後述)から出力させる音源データなどが記憶されるフラッシュメモリ44を備えている。そして、CPU41とROM42、RAM43、及びフラッシュメモリ44とは、其々電気的に接続されている。CPU41は、ROM42、RAM43、及びフラッシュメモリ44の記憶領域に対してアクセスすることが可能となっている。
通話端末10は、インターネット3(図1参照)に接続する為の通信モジュール45を備えている。CPU41と通信モジュール45とは電気的に接続されている。CPU41は、所望のデータをインターネット3に送信することが可能となっている。またCPU41は、インターネット3から受信されるデータを認識することが可能となっている。通話端末10が携帯通話端末11及び携帯通話端末12である場合、通信モジュール45としてRFモジュールが使用可能である。通話端末10がPC13及びPC14である場合、通信モジュール45としてネットワークカードが使用可能である。
通話端末10は、音声を出力するスピーカ46、及び、音声を入力するマイク47を備えている。CPU41とスピーカ46及びマイク47とは、其々電気的に接続されている。CPU41は、スピーカ46から所望の音声を出力させることが可能となっている。CPU41は、マイク47を介して入力された音声を認識することが可能となっている。
通話端末10は、ディスプレイ49と、画像をディスプレイ49に表示させることが可能な表示ドライバ48とを備えている。CPU41と表示ドライバ48とは電気的に接続されている。表示ドライバ48とディスプレイ49とは電気的に接続されている。CPU41は、ディスプレイ49に所望の画像を表示させることが可能となっている。
通話端末10は、キーボード51と、キーボード51を介してユーザによって入力される情報を検出することが可能な入力ドライバ50とを備えている。CPU41と入力ドライバ50とは電気的に接続されている。入力ドライバ50とキーボード51とは電気的に接続されている。CPU41は、キーボード51を介して入力される情報を認識することが可能となっている。
図4を参照し、AORリスト記憶領域281に記憶されるAORリストについて説明する。図4に示すように、AORリストには、AOR−ID、SIPアドレス、及び保持期間の各情報が記憶される。AORリストへの情報登録は、例えばシステム管理者等がキーボード27(図2参照)を介し入力操作を行うことによって行われる。AOR−IDは、AORリストに情報が記憶される場合に自動的に付加されるインデックス情報である。SIPアドレスとしては、登録リストへの登録が認められた通話端末10のSIPアドレスが記憶される。保持期間としては、通話端末10の情報が登録リストに保持される時間が記憶される。
図4に示す例では、SIPアドレスが「hanako@hoge.co.jp」(AOR−ID:1)である携帯通話端末11と、SIPアドレスが「taro@hogehoge.co.jp」(AOR−ID:2)である携帯通話端末12及びPC13と、SIPアドレスが「ichiro@hoge.co.jp」(AOR−ID:3)であるPC14とが、AORリストに記憶されている。其々の保持期間は、1800s(AOR−ID:1)、1000s(AOR−ID:2)、1200s(AOR−ID:3)である。
図5を参照し、登録リスト記録領域282に記憶される登録リストについて説明する。図5に示すように、登録リストには、ID、AOR−ID、Contact−URI、Call−ID、アクティブフラグ、通話許可フラグ、通話中フラグ、保持期間、及び登録日時の各情報が記憶される。IDは、登録リストに情報が記憶される場合に、自動的に付加されるインデックス情報である。AOR−IDとしては、登録リストに記憶された通話端末10に対して、AORリスト(図4参照)において付加されているAOR−IDが記憶される。
Contact−URIは、通信制御装置2が通話端末10から受信した通話データなどを他の通話端末10に対して転送する場合において、転送先を特定するために参照されるアドレス情報である。Contact−URIは、登録リストに記憶された通話端末10のSIPアドレスの頭に「sip:」が付加され、ドメイン名がIPアドレスに変換されたものである。
Call−IDは、通話端末10間や通話端末10と通信制御装置2との間で通信が行われる場合において、データに付加されるID情報である。Call−IDは、通話端末10からデータが送信される場合に、通話端末10によって付加される。Call−IDは、所定の通話端末10間や通話端末10と通信制御装置2との間で実行される一連の通信において発生する各種データを、他の通信におけるデータと識別するために使用されるものである。
アクティブフラグは、登録リストに記憶されている通話端末10の登録情報が有効であるか無効であるかを示すフラグ情報である(詳細は後述する。)。図5では、記憶されている通話端末10の登録情報が有効である場合に「TRUE」、無効である場合に「FALSE」が模式的に示されている。以下、登録情報が有効であることを示すフラグ情報がアクティブフラグとして記憶されることを「アクティブフラグに「TRUE」が記憶される。」といい、登録情報が無効であることを示すフラグ情報がアクティブフラグとして記憶されることを「アクティブフラグに「FALSE」が記憶される。」という。
通話許可フラグは、登録リストに記憶されている通話端末10の通話が許可されているか否かを示すフラグ情報である。図5では、登録リストに記憶されている通話端末10の通話が許可されていることを表す「TRUE」が模式的に示されている。以下、通話が許可された旨が通話許可フラグに記憶されることを「通話許可フラグに「TRUE」が記憶される。」といい、通話が禁止された旨が通話許可フラグに記憶されることを「通話許可フラグに「FALSE」が記憶される。」という。また、通話許可フラグに「TRUE」が記憶された状態で通話端末10が登録リストに記憶されることを、特に「登録リストに登録される。」といい、記憶された通話端末10の通話許可フラグに「FALSE」が記憶されることを「登録リストから抹消される」という。
通話中フラグは、登録されている通話端末10が通話中であるか否かを示すフラグ情報である。図5では、通話端末10が通話中である場合に「TRUE」、通話中でない場合に「FALSE」が模式的に示されている。以下、通話端末10が通話中であることを示すフラグ情報が通話中フラグとして記憶されることを「通話中フラグに「TRUE」が記憶される。」といい、通話中でないことを示すフラグ情報が通話中フラグとして記憶されることを「通話中フラグに「FALSE」が記憶される。」という。
保持期間としては、通話端末10の登録情報を登録リストに保持する時間が記憶される。登録日時としては、通話端末10から登録要求信号(REGISTER)を受信した際の受信日時の情報が記憶される。
図5に示す例では、Contact−URIが「sip:hanako@192.0.2.4」である携帯通話端末11(AOR−ID:1)が、登録リストに登録されている。携帯通話端末11より受信したデータに付加されたCall−IDは「841234@hoge.co.jp」である。登録情報は有効であり(アクティブフラグ:「TRUE」)、通話は許可されており(通話許可フラグ:「TRUE」)、通話中でない(通話中フラグ:「FALSE」)。携帯通話端末11の保持期間は「1800s」である。携帯通話端末11より登録要求信号(REGISTER)を受信した際の最新日時は「2008年12月18日 10時01分」である。
図6乃至9を参照し、通信制御装置2のCPU21にて実行される処理(登録要求受信処理、リスト更新処理、通信制御処理)について説明する。なおこれらの処理には、予め所定の優先順位が設定される。いずれかの処理が実行状態であって、優先順位がより高い他の処理が起動タイミングとなった場合、実行状態の処理は一旦中断される。そして優先順位がより高い他の処理が代わりに実行される。優先順位がより高い他の処理が実行終了した後、中断された処理が、中断時点から処理を再開する。優先順位は、例えば「通信制御処理:1」「登録要求受信処理:2」「リスト更新処理:3」のように設定される。但し他の設定であってもよい。各処理の起動タイミングについては、下記にて説明する。
はじめに図6を参照し、登録要求受信処理について説明する。登録要求受信処理では、通信制御装置2が通話端末10から登録要求信号(REGISTER)を受信した場合に、登録要求信号(REGISTER)を送信した通話端末10(以下「登録要求端末」という。)を登録リストに登録する為の処理が実行される。登録要求受信処理は、通信制御装置2の電源が投入された場合に、CPU21により起動され実行される。
図6に示すように、登録要求受信処理では、登録要求端末から送信される登録要求信号(REGISTER)を受信したかが判断される(S11)。登録要求信号(REGISTER)を受信していない場合(S11:NO)、S11に戻り、継続して登録要求信号(REGISTER)の受信が監視される。
登録要求信号(REGISTER)を受信した場合(S11:YES)、HDD28の登録リスト記憶領域282に記憶されている登録リストが読みだされる(S13)。そして、登録要求端末のSIPアドレスと同一のSIPアドレスが割り当てられた通話端末10の情報が、登録リストに記憶されているかが判断される(S15)。具体的には、登録リストに記憶されているAOR−IDの全てが抽出される。HDD28のAORリスト記憶領域281に記憶されているAORリストが参照され、抽出されたAOR−IDに対応するSIPアドレスが特定される。登録要求信号(REGISTER)に含まれている送信元SIPアドレスの情報から、登録要求端末のSIPアドレスが特定される。AORリストから特定されたSIPアドレスの中に、登録要求信号(REGISTER)から特定された登録要求端末のSIPアドレスと同一のSIPアドレスが含まれているかが判断される。
登録要求端末のSIPアドレスと同一SIPアドレスの通話端末10の情報が、登録リストに記憶されていないと判断された場合(S15:NO)、登録要求端末を登録リストに登録するために、必要な情報が登録リストに記憶される(S17)。具体的には、HDD28のAORリスト記憶領域281に記憶されているAORリストが参照されて登録要求端末のAOR−IDが特定される。特定されたAOR−IDが登録リストに記憶される。受信した登録要求信号(REGISTER)から特定された登録要求端末のSIPアドレスの先頭に「sip:」が付加される。SIPアドレスのドメイン名部分がIPアドレスに変換される。これによって得られたContact−URIが、登録リストに記憶される。登録要求信号(REGISTER)に含まれているCall−IDが登録リストに記憶される。上述にて記憶された情報が有効であることを示すために、アクティブフラグに「TRUE」が記憶される。通話許可フラグに「TRUE」が記憶される。登録要求端末が通話中でないことを示すために、通話中フラグに「FALSE」が記憶される。AORリストにおいて登録要求端末に対応付けられている保持期間が、登録リストの保持期間として記憶される。登録要求信号(REGISTER)を受信した日時(登録日時)が取得され、登録日時として記憶される。そしてS11に戻り、上述の処理が繰り返し実行される。
一方、登録要求端末のSIPアドレスと同一SIPアドレスの通話端末10の情報が、登録リストに記憶されていると判断された場合(S15:YES)、記憶されている同一SIPアドレスの通話端末10(以下「登録済み端末」という。)が登録要求端末と同一の端末であるかが判断される(S19)。登録済み端末と登録要求端末とが同一の端末であるか否かは、受信した登録要求信号(REGISTER)に含まれているCall−IDと、登録リストの内、登録済み端末に対応付けられたCall−IDとを比較することによって行われる。
Call−IDが同一である場合(S19:YES)、登録済み端末と登録要求端末とは同じ通話端末10であると判断される。この場合、次いで、登録リストの内、登録済み端末に対応付けられたアクティブフラグが参照される(S21)。アクティブフラグに「TRUE」が記憶されている場合(S21:YES)、登録済み端末に対応付けられた登録日時に、登録要求端末から登録要求信号(REGISTER)を受信した日時の情報が上書きされる。これによって、登録リストの登録情報が更新される(S27)。そしてS11に戻り、上述の処理が繰り返し実行される。
一方、登録リストの内、登録済み端末に対応付けられたアクティブフラグに「FALSE」が記憶されている場合(S21:NO)、通話許可フラグに「FALSE」が記憶されて、登録情報が抹消され(S23)、S24に移行される。
S24では、登録リストの内、登録済み端末に対応付けられた登録日時に、登録要求端末から登録要求信号(REGISTER)を受信した日時の情報が上書きされる。これによって、登録リストの情報が更新される(S24)。次いで、登録要求端末の通話は禁止されている旨を通知する為の信号(以下「登録拒否信号」という。)が、登録要求端末に対して送信される(S26)。そしてS11に戻り、上述の処理が繰り返し実行される。
S19においてCall−IDが相違すると判断された場合(S19:NO)、登録済み端末が通話中であるかが判断される(S29)。登録リストの内、登録済み端末に対応付けられた通話中フラグに「FALSE」が記憶されている場合には、登録済み端末は通話中でない(S29:NO)。この場合、登録済み端末に対応付けられているアクティブフラグに「FALSE」が記憶され、登録済み端末の登録情報が無効にされる(S33)。次いで、登録要求端末が登録リストに登録される(S35)。登録リストへの登録方法は、S17における方法と同様である。そしてS11に戻り、上述の処理が繰り返し実行される。
なお上述において、登録リストの内、登録済み端末に対応付けられたアクティブフラグに「FALSE」が記憶されると、次にS11において、登録済み端末から登録要求信号(REGISTER)が受信された場合に、登録済み端末の登録情報のうち通話許可フラグに「FALSE」が記憶され、登録リストから抹消される(S21:YES→S23)。
登録リストの内、登録積み端末に対応付けられた通話中フラグに「TRUE」が記憶されている場合(S29:YES)、登録済み端末は通話中である。この場合、登録済み端末が通話中であり登録要求端末が登録されない旨を通知する為の信号(「通話中通知信号」という。)を、登録要求端末に対して送信する(S31)。そしてS11に戻り、上述の処理が繰り返し実行される。
以上のように、同一のSIPアドレスが割り当てられた複数の通話端末10から登録要求信号(REGISTER)を受信した場合、原則として、後で登録要求信号(REGISTER)を送信した通話端末10を優先して登録リストに登録する。また、一旦登録リストから抹消された通話端末10から、再度登録要求信号(REGISTER)を受信した場合には、この通話端末10を登録リストに登録させない。これによって、登録リストに登録される通話端末10が次々と変更されてしまう不具合を防止することが可能となる。
また、先に登録リストに登録されている通話端末10が通話中である場合には、通話中の通話端末10の登録情報を無効とせず、継続して通話状態を維持させる。これによって、通話端末10の通話を途中で切断させてしまうことを防止できる。
また、先に登録リストに登録されている通話端末10が通話中であり、後から登録要求信号(REGISTER)を送信した通話端末10が登録リストに登録されない場合、この通話端末10に対して通話中通知信号を送信する。これによって、後から登録要求信号(REGISTER)を送信した通話端末10に対して、登録リストに登録されなかった理由を通知することが可能となる。
図7を参照し、リスト更新処理について説明する。リスト更新処理では、登録リストに記憶されている情報の保持期間を監視する処理が一定周期で行われる。登録日時から現在日時迄の経過時間が保持期間を超えた場合に、情報を登録リストから削除する。リスト更新処理は、CPU21により所定の周期(例えば1s周期)で起動され実行される。
図7に示すように、リスト更新処理では、はじめに登録リストのうち一通話端末の情報が選択される(S41)。選択された情報のうち、保持期間と登録日時とが参照される。現在日時から登録日時を差し引いた時間、即ち、登録要求端末から登録要求信号(REGISTER)を最後に受信してから現在までの経過時間が算出される。算出された経過時間が保持期間を超えているかが判断される(S43)。経過時間が保持期間を超えている場合(S43:YES)、該当する情報が登録リストから削除される(S45)。そしてS47に移行される。経過時間が保持期間を超えていない場合(S43:NO)、情報は削除せず、S47に移行される。
S47では、登録リストの全ての情報について、上述の処理が実行されたかが判断される(S47)。処理が実行されていない情報が残存する場合(S47:YES)、S41に戻り、残りの登録情報に対して上述の処理が繰り返し実行される。全ての情報に対して処理が実行された場合(S47:NO)、リスト更新処理は終了される。
図8を参照し、通話制御処理について説明する。通話制御処理では、SIPに基づき、登録リストに登録されている(通話許可フラグに「TRUE」が記憶されている)通話端末10間の通話を実行させる。通話制御処理は、通信制御装置2の電源が投入された場合において、CPU21により起動され実行される。
図8に示すように通話制御処理では、通話開始を望む通話端末10(以下「発呼側端末」という。)から送信される呼び出し要求(INVITE)の受信が監視される(S81)。呼び出し要求(INVITE)を受信していない場合(S81:NO)、S81に戻り、継続して呼び出し要求(INVITE)の受信が監視される。
呼び出し要求(INVITE)を受信した場合(S81:YES)、呼び出し要求(INVITE)を送信した発呼側端末、及び、通話相手先の通話端末10(以下「着呼側端末」という。)が登録リストに登録されているかが判断される(S83)。具体的には、呼び出し要求(INVITE)に含まれている発呼側端末のSIP URIと着呼側端末のSIP URIが参照される。そして其々のSIP URIが、登録リストにSIP URIとして記憶されており、且つその通話許可フラグに「TRUE」が記憶されているかが判断される。発呼側端末及び着呼側端末のうち少なくともいずれかのSIP URIが、通話許可フラグに「TRUE」が記憶されている状態で登録リストに記憶されていない場合(S83:NO)、発呼側端末と着呼側端末との通話を開始させることなくS81に戻り、上述の処理が継続して実行される。
発呼側端末と着呼側端末との両方のSIP URIが登録リストに記憶されており、且つその通話許可フラグに「TRUE」が記憶されている場合(S83:YES)、着呼側端末のSIP URIが登録リストに複数登録されている状態であるかが判断される(S85)。着呼側端末のSIP URIが登録リストに複数記憶されており、且つその通話許可フラグに「TRUE」が記憶されている場合(S85:YES)、後から登録リストに登録された通話端末(登録済み端末)が、呼び出し要求(INVITE)の転送先端末として選択される(S89)。着呼側端末のSIP URIとして記憶されている複数の登録情報のうち、対応するアクティブフラグに「TRUE」が記憶されている登録情報に対応する通話端末10が、後から登録リストに登録されていた通話端末(転送先端末)に相当する。そしてS91に移行される。
一方、登録リストに登録されている着呼側端末のSIP URIが唯一つである場合(S85:NO)、唯一つの着呼側端末が呼び出し要求(INVITE)の転送先端末として選択される(S87)。そしてS91に移行される。
S91では、転送先端末として選択された着呼側端末のSIP URI宛てに、発呼側端末から受信した呼び出し要求(INVITE)が転送される(S91)。
呼び出し要求(INVITE)が着呼側端末に転送された後、着呼側端末から送信される呼び出し中(Ringing)が受信される。受信された呼び出し中(Ringing)は、発呼側端末に対して転送される(S93)。
発呼側端末に対して呼び出し中(Ringing)が転送された後、着呼側端末から送信される呼び出し成功(200 OK)の受信が監視される(S95)。呼び出し成功(200 OK)を受信していない状態では(S95:NO)、着呼側端末において通話拒否されたことを通知する拒否通知(486 BUSY HERE)を受信したかが判断される(S115)。拒否通知(486 BUSY HERE)を受信した場合(S115:YES)、受信した拒否通知(486 BUSY HERE)を発呼側端末に対して転送する(S117)。そしてS81に戻り、上述の処理が繰り返し実行される。拒否通知(486 BUSY HERE)を受信していない状態では(S115:NO)、S95に戻り、着呼側端末から送信される呼び出し信号(200 OK)の受信が継続して監視される。
一方、着信側端末から送信される呼び出し成功(200 OK)を受信した場合(S95:YES)、受信した呼び出し成功(200 OK)が発呼側端末に対して転送される(S97)。次いで、発呼側端末から送信される確認応答(ACK)が受信され、着呼側端末に対して受信した確認応答(ACK)が転送される(S99)。次いで、登録リスト記憶領域282に記憶されている登録リストの内、発呼側端末及び着呼側端末の其々に対応する通話中フラグに「TRUE」が記憶される(S101)。
これによって、発呼側端末と着呼側端末との間で通話が可能な状態となるので、RTP(Real-time Transport protocol)に基づき、発呼側端末と着呼側端末との間で通話が実行される(S139(図10参照)、S169(図11参照)、後述)。
発呼側端末と着呼側端末との間で通話が実行されている最中において、発呼側端末及び着呼側端末のいずれかより送信される終了通知(BYE)を受信したかが監視される(S103)。通話中の通話端末10(発呼側端末、着呼側端末)のうちいずれかから送信される終了通知(BYE)を受信した場合(S103:YES)、受信した終了通知(BYE)が、通話先の通話端末10に対して転送される(S109)。そしてS111に移行される。
発呼側端末及び着呼側端末のいずれからも終了通知(BYE)を受信していない状態では(S103:NO)、登録リスト記憶領域282に記憶されている登録リストの情報が参照される。そして、発呼側端末及び着呼側端末の登録情報が登録リストに記憶されており、且つその通話許可フラグに「TRUE」が記憶されている状態であるかが判断される(S105)。発呼側端末及び着呼側端末のうち少なくとも一方の登録情報が登録リストから抹消された(通話許可フラグに「FALSE」が記憶された)場合(S105:NO)、発呼側端末及び着呼側端末の両方に対して終了通知(BYE)が送信される。これによって、発呼側端末と着呼側端末との間の通話を終了させる(S107)。そしてS111に移行される。発呼側端末及び着呼側端末が登録リストに登録されている場合(S105:YES)、S103に戻り、上述の処理が繰り返し実行される。
S111では、発呼側端末又は着呼側端末に対して送信された終了通知(BYE)(S107、S109)に応じて発呼側端末又は着呼側端末から送信される確認応答(ACK)が受信される。受信された確認応答(ACK)は、通話先の通話端末10に対して転送される(S111)。次いで、登録リスト記憶領域282に記憶されている登録リストの内、発呼側端末及び着呼側端末の其々に対応する通話中フラグに「FALSE」が記憶される(S113)。そしてS81に戻り、上述の処理が繰り返し実行される。
以上のように、同一のSIPアドレスが割り当てられた複数の通話端末10が同時に登録リストに登録されている状態で、このSIPアドレス宛ての呼び出し要求(INVITE)を受信した場合には、後から登録リストに登録された通話端末10に対して呼び出し要求(INVITE)を転送する。これによって通話端末10のユーザは、後から登録リストに登録された通話端末10を優先的に使用して通話を行うことが可能となる。
また、同一のSIPアドレスが割り当てられた複数の通話端末10が同時に登録リストに登録されている状態で、これらの通話端末10から呼び出し要求(INVITE)を受信した場合であっても、通話先の通話端末10に対して呼び出し要求(INVITE)を転送する。これによって通話端末10のユーザは、複数の通話端末10を使用して通話を行うことが可能となる。
図9乃至11を参照し、通話端末10のCPU41にて実行される処理(登録要求送信処理、発呼処理、着呼処理)の詳細について説明する。なおこれらの処理には、予め所定の優先順位が設定される。いずれかの処理が実行状態であって、優先順位がより高い他の処理が起動タイミングとなった場合、実行状態の処理は一旦中断される。そして優先順位がより高い他の処理が代わりに実行される。優先順位がより高い他の処理が実行終了した後、中断された処理が、中断時点から処理を再開する。優先順位は、例えば「発呼処理:1」「着呼処理:2」「登録要求送信処理:3」のように設定される。但し他の設定であってもよい。各処理の起動タイミングについては、下記にて説明する。
はじめに、図9を参照し、登録要求送信処理について説明する。登録要求送信処理では、通信制御装置2に対して登録要求信号(REGISTER)が一定周期(例えば10s)で送信される。これによって、通信制御装置2の登録リストに自身を登録させる。登録要求送信処理は、通話端末10の電源が投入された場合に、CPU41により一定周期で起動され実行される。
図9に示すように、登録要求処理が起動されると、はじめに、登録要求信号(REGISTER)が通信制御装置2に対して送信される(S121)。次いで、送信した登録要求信号(REGISTER)に応じて通信制御装置2から送信される信号を受信する処理が実行される。通信制御装置2から送信される登録拒否信号を受信したかが判断される(S123)。登録拒否信号を受信したと判断された場合(S123:YES)、登録リストに登録されない旨をディスプレイ49に表示させ、通話端末10のユーザに通知する(S125)。そして登録要求送信処理は終了される。
登録拒否信号を受信しなかった場合(S123:NO)、通信制御装置2から送信される通話中通知信号を受信したかが判断される(S127)。通話中通知信号を受信したと判断された場合(S127:YES)、通話中の通話端末10の存在をディスプレイ49に表示させて通話端末10のユーザに通知する(S129)。そして登録要求送信処理は終了される。
送信した登録要求信号(REGISTER)に対し、通信制御装置2から登録拒否信号及び通話中通知信号のいずれも受信していない場合(S127:NO)、通信制御装置2からの応答を待つ所定時間が経過したかが判断される(S130)。所定時間が経過していない場合(S130:NO)、S123に戻り、登録拒否信号及び通話中通知信号の受信を監視する処理が繰り返し実行される。通信制御装置2からの応答を待つ所定時間が経過した場合(S130:YES)、登録要求信号処理は終了される。
図10を参照し、発呼処理について説明する。発呼処理では、自身が発呼することによって他の通話端末10と通話を開始させ、通話を実行させるための処理が実行される。発呼処理は、着呼側端末との通話を開始させるための操作がキーボード51を介してユーザによってなされた場合に、CPU41によって起動され実行される。
図10に示すように、はじめに、着呼側端末を指定した呼び出し要求(INVITE)が、通信制御装置2を介し着呼側端末に対して送信される(S131)。送信された呼び出し要求に応じ、着呼側端末から送信される呼び出し中(Ringing)が、通信制御装置2を介して受信される(S133)。
呼び出し中(Ringing)を受信した後、着呼側端末から送信される呼び出し成功(200 OK)を、通信制御装置2を介して受信したかが監視される(S135)。呼び出し成功(200 OK)を受信していない状態では(S135:NO)、キーボード51を介して通話を終了させるための入力操作がなされたかが監視される(S151)。通話を終了させるための入力操作がなされた場合(S151:YES)、通信制御装置2を介し、着呼側端末に対して終了通知(BYE)が送信される(S153)。次いで、着呼側端末から送信される確認応答(ACK)が、通信制御装置2を介して受信される(S155)。そして発呼処理は終了される。
通話を終了させるための入力操作がなされない状態では(S151:NO)、着信側端末から送信される拒否通知(486 BUSY HERE)を、通信制御装置2を介して受信したかが監視される(S157)。拒否通知(486 BUSY HERE)を受信した場合(S157:YES)、通信制御装置2を介し、着信側端末に対して確認応答(ACK)を送信する(S159)。そして発呼処理は終了される。一方、拒否通知(486 BUSY HERE)を受信していない場合(S157:NO)、S135に戻り、上述の処理が繰り返し実行される。
一方、着呼側端末から送信される呼び出し成功(200 OK)を、通信制御装置2を介して受信した場合(S135:YES)、通信制御装置2を介し、着呼側端末に対して応答確認(ACK)が送信される(S137)。これによって、着呼側端末との間で通話が可能となるので、RTPに基づき、着呼側端末との間で通話が実行される(S139)。
着呼側端末との間で通話が行われている間、キーボード51を介して通話を終了させるための入力操作がなされたかが監視される(S141)。入力操作がなされていない状態では(S141:NO)、着呼側端末から送信される終了通知(BYE)を、通信制御装置2を介して受信したかが監視される(S147)。終了通知(BYE)を受信した場合(S147:YES)、通信制御装置2を介し、確認応答(ACK)が着呼側端末に対して送信される(S149)。そして発呼処理は終了される。一方、終了通知(BYE)を受信していない場合(S147:NO)、S141に戻り、キーボード51を介した入力操作、及び、着呼側端末からの終了通知(BYE)の受信の監視が継続して実行される。
一方、通話を終了させる為の入力操作がなされた場合には(S141:YES)、通信制御装置2を介し、着呼側端末に対して終了通知(BYE)が送信される(S143)。次いで、着呼側端末から送信される確認応答(ACK)が、通信制御装置2を介して受信される(S145)。そして発呼側処理は終了される。
図11を参照し、着呼処理について説明する。着呼処理では、発呼側端末から通話開始の要求があった場合に、発呼側端末との通話を開始させ、通話を実行させるための処理が実行される。着呼処理は、発呼側端末から送信される呼び出し要求(INVITE)を受信した場合に、着呼側端末のCPU41によって起動され実行される。
図11に示すように、呼び出し要求(INVITE)を受信して着呼処理が起動されると、はじめに、通信制御装置2を介し、発呼側端末に対して呼び出し中(Ringing)が送信される(S161)。次いで、ユーザに対して着信を通知する処理(着信音声出力、着信通知画面表示等)が実行される。そして、着信する為の入力操作がユーザによりキーボード51を介してなされたかが監視される(S163)。
着信する為の入力操作がなされない状態では(S163:NO)、通話を拒否するための入力操作がユーザによりキーボード51を介してなされたかが監視される(S181)。通話を拒否するための入力操作がなされた場合(S181:YES)、通信制御装置2を介し、発呼側端末に対して拒否通知(486 BUSY HERE)が送信される(S183)。次いで、着呼側端末から送信される確認応答(ACK)が、通信制御装置2を介して受信される(S185)。そして発呼処理は終了される。一方、通話を拒否するための入力操作がなされない状態では(S181:NO)、発信側端末から送信される終了通知(BYE)を、通信制御装置2を介して受信したかが監視される(S187)。終了通知(BYE)を受信した場合(S187:YES)、通信制御装置2を介し、着信側端末に対して確認応答(ACK)が送信される(S189)。そして発呼処理は終了される。一方、終了通知(BYE)を受信していない場合(S187:NO)、S163に戻り、上述の処理が繰り返し実行される。
一方、着信する為の入力操作が、ユーザによってキーボード51を介してなされた場合(S163:YES)、通信制御装置2を介し、発呼側端末に対して呼び出し成功(200 OK)が送信される(S165)。次いで、発呼側端末から送信される確認応答(ACK)が、通信制御装置2を介して受信される(S167)。これによって、発呼側端末との間で通話が可能となるので、RTPに基づき、発呼側端末との間で通話が実行される(S169)。
発呼側端末との間で通話が行われている間、キーボード51を介し、ユーザによって通話を終了させるための入力操作がなされたかが監視される(S171)。操作入力がなされていない状態では(S171:NO)、発呼側端末から送信される終了通知(BYE)を、通信制御装置2を介して受信したかが監視される(S177)。終了通知(BYE)を受信した場合(S177:YES)、通信制御装置2を介し、確認応答(ACK)が発呼側端末に対して送信される(S179)。そして着呼処理は終了される。一方、終了通知(BYE)を受信していない場合(S177:NO)、S171に戻り、ユーザによる入力操作、及び、通信制御装置2を介した発呼側端末からの終了通知(BYE)の受信の監視が継続して実行される。
一方、キーボード51を介して通話を終了させる為の入力操作がなされた場合には(S171:YES)、通信制御装置2を介し、発呼側端末に対して終了通知(BYE)が送信される(S173)。次いで、発呼側端末から送信される確認応答(ACK)が、通信制御装置2を介して受信される(S175)。そして発呼側処理は終了される。
以上説明したように、通信制御装置2では、同一のSIPアドレスが割り当てられた複数の通話端末10から登録要求信号(REGISTER)を受信した場合、原則として、後から登録要求通知(REGISTER)を送信した通話端末10を優先して登録リストに登録する。これによって、後から登録要求通知を送信した通話端末10が登録リストに登録されない不具合を防止することが可能となる。
なお、図2のHDD28の登録リスト記憶領域282が本発明の「第一記憶手段」に相当する。SIPアドレスが本発明の「識別情報」に相当する。通話端末10から送信される呼び出し要求(INVITE)が本発明の「通話要求信号」に相当する。同一のSIPアドレスが割り当てられた複数の通話端末10(例えば、図1における携帯通話端末12とPC13)が本発明の「第一通話端末」に相当する。第一通話端末のうち、登録リストに登録されている通話端末(登録済み端末)が本発明の「第二通話端末」に相当する。図6のS11の処理を行うCPU21が本発明の「第一受信制御手段」に相当し、S17の処理を行うCPU21が本発明の「第一登録制御手段」に相当し、同一のCall−IDでない場合(S19:NO)の処理を行った後、S23の処理を行うCPU21が本発明の「第二登録制御手段」に相当する。
図6のS33にて登録済み端末のアクティブフラグに「FALSE」を記憶することによって、第二通話端末の再登録を禁止する処理を行うCPU21が本発明の「第三登録制御手段」に相当する。図6のS26の処理を行うCPU21が本発明の「第一送信制御手段」に相当し、S29の処理を行うCPU21が本発明の「通話中判断手段」に相当し、S31の処理を行うCPU21が本発明の「第二送信制御手段」に相当する。
図8のS81の処理を行うCPU21が本発明の「第二受信制御手段」「第三受信制御手段」に相当し、S89の後S91の処理を行うCPU21が本発明の「第三送信制御手段」に相当する。S87の後S91の処理を行うCPU21が本発明の「第四送信制御手段」に相当する。
図6のS11の処理が本発明の「第一受信制御ステップ」に相当し、S17の処理が本発明の「第一登録制御ステップ」に相当する。同一のCall−IDでない場合(S19:NO→S23)の処理が本発明の「第二登録制御ステップ」に相当する。
なお、本発明は上記実施の形態に限定されるものではなく、種々の変更が可能である。上述の実施の形態では、登録済み端末が通話中であった場合には、登録要求端末の登録リストへの登録は行わない構成とした。しかしながら本発明はこれに限定されない。従って例えば、登録済み端末が通話中であっても、登録要求端末を登録リストに登録する構成としてもよい。また登録済み端末の登録情報は、通話が終了するまで登録リストに残存させ、通話終了時に登録を抹消する構成としてもよい。以下、本発明の変形例について説明する。
本発明の変形例における登録要求受信処理について説明する。なお、通話システム1の構成、通信制御装置2及び通話端末10の電気的構成、通信制御装置2及び通話端末10にて実行される各種処理のうち登録要求受信処理を除く処理については、上述の実施の形態と同様であるので、説明を省略する。また、上述した登録要求受信処理と以下に述べる変形例における登録要求受信処理との共通処理部分については、説明を省略し又は簡略化する。
図12を参照し、本実施の形態の変形例における登録要求受信処理について説明する。登録要求受信処理は、通信制御装置2の電源が投入された状態で、CPU21により起動され実行される。
図12に示すように、登録要求受信処理では、はじめに、登録要求端末から登録要求信号(REGISTER)を受信したかが判断される(S11)。登録要求信号(REGISTER)を受信していない場合(S11:NO)、S11に戻り、継続して登録要求信号(REGISTER)を受信したかが判断される。
登録要求信号(REGISTER)を受信した場合(S11:YES)、登録リストに記憶されている情報が読みだされる(S13)。登録要求端末のSIPアドレスと同一SIPアドレスの通話端末10の情報が、登録リストに記憶されているかが判断される(S15)。登録リストに記憶されていないと判断された場合(S15:NO)、登録要求端末を登録する為に必要な情報が登録リストに記憶される(S17)。そしてS11に戻り、上述の処理が繰り返し実行される。
一方、登録要求端末のSIPアドレスと同一SIPアドレスの通話端末10の情報が、登録リストに記憶されていると判断された場合(S15:YES)、記憶されている同一SIPアドレスの通話端末10である登録済み端末が登録要求端末と同一の端末であるかが判断される。受信した登録要求信号(REGISTER)に含まれているCall−IDと、登録リストの内、登録済み端末に対応付けられたCall−IDとが比較される。双方のCall−IDが同一である場合(S19:YES)、登録済み端末に対応付けられたアクティブフラグが参照される(S21)。アクティブフラグに「TRUE」が記憶されている場合(S21:YES)、登録済み端末に対応付けられた登録日時が更新される(S27)。そしてS11に戻り、上述の処理が繰り返し実行される。
一方、登録済み端末に対応付けられたアクティブフラグに「TRUE」が記憶されていない場合(S21:NO)、登録済み端末に対応付けられた通話許可フラグに「FALSE」が記憶される(S23)。そしてS24に移行される。
S24では、登録リストの内、登録済み端末に対応付けられた登録日時が更新される(S24)。次いで、登録要求端末に対して登録拒否信号が送信される(S26)。そしてS11に戻り、上述の処理が繰り返し実行される。
S19において、Call−IDが相違すると判断された場合(S19:NO)、はじめに、登録済み端末が通話中であるかが判断される(S221)。登録済み端末に対応付けられた通話中フラグに「FALSE」が記憶されている場合、登録済み端末は通話中でない(S221:NO)。またこの場合、登録済み端末は、通話中状態から通話が終了した状態に変化したという条件にも該当しない(S223:NO)。そこで、登録済み端末に対応付けられているアクティブフラグに「FALSE」が記憶され、登録済み端末の登録情報が無効にされる(S225)。次いで、登録要求端末を登録リストに登録させるために、必要な情報が登録リストに記憶される(S227)。そしてS11に戻り、上述の処理が繰り返される。
一方、登録済み端末に対応付けられた通話中フラグに「TRUE」が記憶されている場合(S221:YES)、登録済み端末は通話中となっている。このような場合、登録要求端末を登録リストに登録させるために、必要な情報が登録リストに記憶される(S231)。そしてS11に戻り、上述の処理が繰り返される。
そして、登録要求端末から周期的に繰り返し登録要求信号(REGISTER)が送信される中で、登録済み端末での通話が終了した場合(S221:NO)、登録済み端末は通話中状態から通話中でない状態に変化したので(S223:YES)、登録リストの内、登録済み端末に対応付けられているアクティブフラグに「FALSE」が記憶される(S229)。これによって、登録リストに登録されている登録済み端末の登録情報が無効とされる。そしてS11に戻り、上述の処理が繰り返される。
なお、登録リストに登録済み端末の情報が記憶された状態で、上述において、登録済み端末に対応付けられたアクティブフラグに「FALSE」が記憶されると、次にS11において、登録済み端末から登録要求信号(REGISTER)が受信された場合に、登録済み端末の登録情報のうち通話許可フラグに「FALSE」が記憶され、登録リストから抹消される(S21:YES→S23)。
以上説明したように、変形例における通信制御装置2では、登録済み端末が通話中の状態で、登録要求端末から登録要求信号(REGISTER)を受信した場合に、登録要求端末を登録リストに登録する。通話中の登録済み端末の登録情報は何ら変更しない。そして、登録済み端末の通話が終了した時点で、登録済み端末の登録情報を無効とし、登録情報から抹消する。これによって、登録済み端末の通話状態を継続させることが可能であるとともに、登録済み端末の通話が終了した場合、直ぐに登録要求端末のみを通話可能な通話端末として認識することが可能となる。
なお、図12のS29の処理を行った後、図6のS24の処理を行うCPU21が本発明の「第四登録制御手段」に相当する。