以下、添付図面を参照しながら、本発明を実施するための最良の形態について説明する
図1に示すように、本発明を実施するための最良の形態に係るIP端末装置としてのIP電話装置100は、インターネットなどのIP網を介して相手装置300に発呼し、または相手装置300から着呼して、通話などの対話的な通信を行う。
図2に、本発明を実施するための最良の形態に係るIP端末装置としてのIP電話装置100のブロック構成について示す。
同図において、IP電話装置100は、CPU2、ROM3、RAM4、パラメータメモリ5、操作表示部6,回線接続I/F、IP手段8、通話回路9,ハンドセット10、音声再生回路11、スピーカ11a、及び、システムバス12により構成されている。
CPU(中央処理装置)2は装置全体を制御するものであり、その実行プログラムはROM3(リード・オンリー・メモリ)に記憶され、CPU2はその実行プログラムをROM3から読み出し、その実行プログラムに含まれる命令を逐次解釈して装置全体の制御を行うものである。
RAM(ランダム・アクセス・メモリ)4は、CPU2の制御に必要なワークエリアが形成されるものである。パラメータメモリ5は、保存パラメータなどの各種パラメータや管理情報等、装置動作に必要な各種情報が記憶されると共に、装置の電源がオフされた状態でもその記憶内容を保持するメモリであり、具体的には、EEPROM(電気的に書き換え可能な読み出し専用メモリ)や、バッテリバックアップされたSRAM(スタティックRAM)などにより構成されるものである。
操作表示部6はユーザからの入力操作を受け入れるための各種の操作キーが配設される一方、操作ガイダンスや装置の動作状態等を表示する表示器や各種インジケータランプを備えたものである。
ハンドセット10は音声通話をするいわゆる送受話器なるものであり、音声を出力するスピーカや音声を入力するマイク等から構成される。通話回路9はハンドセット10のマイク等から入力されたアナログの音声信号をデジタルデータ化してシステムバス12を介してCPU2に渡す一方、システムバス12を介してCPU2から渡されたデジタルの音声データをアナログ信号化してハンドセット10のスピーカ等に出力するものである。
また通話回路9には、音声信号を増幅したりあるいは減衰することにより音量を調整したり、音声信号の周波数特性を変化させることにより音質を良くしたりする回路も含まれているのが一般的である。また送話器から受話器への音の回り込みを制御するいわゆる側音制御も通話回路9で行うのが一般的である。
なお、通話回路9は、後述するように、複数の通話チャンネルで「通話」が行われている場合には、CPU2から渡される各「通話」の受信音声データをデジタルデータの段階、または、アナログ信号への変換後に合成して1つの音声信号としてスピーカ出力する。一方、送信音声データは、各「通話」の相手装置宛に複製送信される。なお、各「通話」の受信音声データの合成は、通話回路9に渡す前にCPU2が行うようにしてもよい。
また、通話音声の入出力は、いわゆるスピーカホンの形態で行うようにしてもよい。つまり、ハンドセット10のスピーカとマイクとは別のスピーカとマイクを備え、ハンドセット10をオンフックしたままでの通話を指示する「オンフックキー」の押下により、通話音声の入出力を、それらの別のスピーカやマイクに切り換えて通話を行うようにしてもよい。
音声再生回路11は、通話回路9とは独立したもので、システムバス12を介してCPU12から渡された音声データをアナログ信号化してスピーカ11aにより可聴出力するものである。音声再生回路11は、後述するように、記録した伝言メッセージの再生のために利用される。なお、音声再生回路11や、スピーカ11aの代わりに、通話回路9の音声再生の機能やハンドセット10のスピーカやスピーカホン構成するスピーカを、通話回路9を使用した通話が行われていないときに使用する構成としてもよい。
IP手段8は、システムバス12を介してCPU2から渡されたIPパケットを回線接続I/F7に適合するデータ形式に変換して渡す一方、回線接続I/Fから渡された所定形式で渡されたデータからIPパケットを抽出してシステムバス12を介してCPU12に渡すためのものである。
CPU2は、通話回路9からのデジタル音声データを必要に応じて符号化圧縮した得た音声信号データを送信用のIPパケットに埋め込んでIP手段8に渡すことで、その音声信号データは、回線接続I/F7を介してIP網200に送り出される。また回線接続I/F7を介してIP網200から入力され受信用のIPパケットは、IP手段8によりCPU2に渡されて、CPU2は、その受信用のIPパケットから音声信号データを取り出し、必要であれば復号伸張して得たデジタルの音声信号データを通話回路9に送出する。
IP手段8の動作制御はシステムバス12を介しCPU2が行う。回線接続I/F7はIP手段8から入力される送信用IPパケットを自装置をIP網200に接続するためのアクセス回線に適合するデータ・信号形式で送出する一方、アクセス回線から入力される受信用IPパケットをIP手段8に送出する。
回線接続I/F7が接続されるアクセス回線としてNTT等が供給している一般の電話網を使用する場合には、デジタル信号とアナログ信号を相互に変換するXDSLモデムが回線接続I/F7に含まれる。また、回線接続I/F7が接続されるアクセス回線がLAN等であれば回線接続I/F7はLAN用のI/F(イーサネット、トークンリング、FTTH等)である。またその両方を備えていてもよい。
システムバス11は、上記各部がデータをやり取りするための信号ラインであり、具体的には、データバス、アドレスバス、I/Oバス、制御バス、割り込み信号ラインなどにより構成されるものである。
図3に、本発明を実施するための最良の形態に係るIP端末装置としてのIPテレビ電話装置100aのブロック構成について示す。
同図に示すIPテレビ電話装置100aは、図2に示したIP電話装置100の変形であり、画像表示部15に画像出力する一方、カメラ14から画像入力される画像処理回路13からの入出力データをも、CPU2がIP手段8を介してIPパケットにより送受信するようにしている。その他の図2と共通の構成については、同一符号を付すと共に重複する説明は省略する。
カメラ14は、被写体からの反射光を2次元CCDイメージセンサなどにより次々に画像データに変換するものであ。その画像データは画像処理回路13で送信データ用に画像処理される。CPU2は、画像処理回路13からのデジタル画像データを必要に応じて符号化圧縮した得た画像信号データを送信用のIPパケットに埋め込んでIP手段8に渡すことで、その画像信号データは、回線接続I/F7を介してIP網200に送り出される。また回線接続I/F7を介してIP網200から入力され受信用のIPパケットは、IP手段8によりCPU2に渡されて、CPU2は、その受信用のIPパケットから画像信号データを取り出し、必要であれば復号伸張して得たデジタルの画像信号データを画像処理回路13に送出する。画像処理回路13は画像表示部15に合わせた画像処理を行い、画像表示部15に画像データを送出し、画像表示部15は、静止画像データを連続的に表示することにより動画像として出力する。
図2に示したIP電話装置100も図3に示したIPテレビ電話装置も、IP網200を介した相手装置との間で、対話的な通信を行うものであり、共に本発明を適用できるものであるが、以下の説明では、本発明をIP電話装置100に適用した場合について説明する。
図4に、IP電話装置100におけるプロトコルスタックについて示す。なお、図においては、回線接続I/F7をイーサネットに接続する場合について示しているが、「物理層」及び「データリンク層」は、前述したように、接続されるアクセス回線に応じて変わるものである。
同図において、「物理層」及び「データリンク層」は、「イーサネット」で、回線接続I/F7に相当するものであり、「ネットワーク層」の「IP」プロトコルから渡された、図5に示すMACヘッダとMACデータとからなるMACパケットの先頭に、プリアンブル及びスタート・フレーム・デリミタを付加すると共にMACパケットの末尾にフレームチェックシーケンスFCSを付加して、電気信号として回線接続I/F7に送出する一方、電気信号として受信した自装置のMACアドレス宛のMACパケットをデジタルデータとして取得して、「ネットワーク層」の「IP」プロトコルに渡す。
「ネットワーク層」の「IP」プロトコル、CPU2が実行する「IP」プロトコルのプログラム及びIP手段8に相当するものであり、「トランスポート層」の「TCP」または「UDP」プロトコルから渡された、図5に示す、TCPヘッダとTCPデータとからなるTCPパケット、または、UDPヘッダとUDPデータとからなるUDPパケットをIPデータの内容として埋め込むと共に、そのIPデータにIPヘッダを付加してIPパケットを構成するところまではCPU2が行い、
MACデータの内容として埋め込み更に、MACデータにMACヘッダを付加してMACパケットを構成する部分はIP手段8が行い、前述したように、「イーサネット」に渡す。一方、「イーサネット」から渡されたMACパケットを構成するMACデータからIPパケットを取り出し(IP手段8が)、そのIPパケットを構成するIPデータからTCPまたはUDPのパケットを取り出して(CPU2が)、「トランスポート層」の「TCP」または「UDP」プロトコルに渡す。
「トランスポート層」の「UDP」プロトコルは、CPU2が実行する「UDP」プロトコルのプログラムに相当するものであり、その上位の「セッション層」、「プレゼンテーション層」及び「アプリケーション層」を構成する、所定の送信元ポート番号とリンクされたアプリケーションプログラムから渡されたデータを、図5に示すUDPヘッダとUDPデータとからなるUDPパケットのUDPデータとして埋め込んで、「IP」プロトコルに渡す一方、「IP」プロトコルから渡されたIPパケットからUDPヘッダ及びUDPデータからなるUDPパケットを取り出して、UDPヘッダに記述されている宛先ポート番号に対応する上位の「アプリケーション」にUDPデータを渡す。
「トランスポート層」の「TCP」プロトコルは、主制御部11または副装置部41が実行する「TCP」プロトコルのプログラムに相当するものであり、「セッション層」、「プレゼンテーション層」及び「アプリケーション層」を構成する、
所定の送信元ポート番号とリンクされたアプリケーションプログラムから渡されたデータを、図5に示すTCPヘッダとTCPデータとからなるTCPパケットのTCPデータとして埋め込んで、「IP」プロトコルに渡す一方、「IP」プロトコルから渡されたIPパケットからTCPヘッダ及びTCPデータからなるTCPパケットを取り出して、TCPヘッダに記述されている宛先ポート番号に対応する上位の「アプリケーション」にTCPデータを渡す。SCTP(Streaming Control Transimssion Protocol)についても、TCPと同様のやりとりが行われる。
トランスポート層(UDP、TCPまたはSCTP)の上には、呼・セッション制御用プロトコルとしてSIPが位置するSIPにおいては、UDP、TCPまたはSCTPのいずれのプロトコルも使用可能であるが、本発明を実施するための最良の形態においては、UDPを使用するものとする。SIP制御用データは、図5に示すように、TCPパケットのTCPデータとして埋め込まれるか、UDPパケットのUDPデータとして埋め込まれた上で更にIPパケットのデータとして埋め込まれてやりとりされる。
また、SIPメッセージを記述する制御情報記述プロトコルとしてはSDP(Session Description Protocol)が使用される。また、SIPによる呼接続確立後の動画/音声の送受信プロトコルとして、RTP(Realtime Transport Protocol)が使用される。本発明を実施するための最良の形態では、RTPについても、遅延が少なくリアルタイム性に優れたUDPをトランスポート層プロトコルして使用する。音声や画像のデータは、RTPパケットが付加されたSIPデータとして、図5に示すように、UDPパケットのUDPデータ中に埋め込まれた上で更にIPパケットのデータとして埋め込まれてやりとりされる。
RTPやSIP、SDPの上位には、アプリケーション層として通話管理や通話制御などの通話動作全体を制御するアプリケーション(処理手順)が位置する。
図6に、MACパケットのデータグラムについて示す。
MACデータグラムは、「MACヘッダ」が付加された「MACデータ」として構成される。「MACヘッダ」は、48ビットの「宛先MACアドレス(例えば回線接続I/F7のMACアドレス)」、48ビットの「送信元MACアドレス」、及び、16ビットの「イーサ・タイプ」により構成される。「イーサ・タイプ」は、例えば、IPプロトコルなら「0800」であり、ARPプロトコルなら「0806」であり、IPv6プロトコルなら「86DD」でありる。
図7にIPパケットのデータグラムについて示す。
IPデータグラム(パケット)は、「IPヘッダ」が付加された「IPデータ」として構成される。「IPヘッダ」は、バージョン、ヘッダ長、サービスタイプ、トータル長、識別子(ID)、フラグ、フラグメント・オフセット、生存時間(TTL)、プロトコルタイプ、ヘッダチェックサム、送信元アドレス、宛先アドレス、オプション、パディング、及び、データの各情報のための領域の集合として構成されている。
そのうちの、それぞれ32ビットの送信元アドレス及び宛先アドレスによりIP網200上でIP電話装置100と相手装置との間でやりとりされるIPパケットが他のIPパケットから区別される。
また、プロトコルタイプは、IPデータとして含まれるパケットのプロトコル種別を示す番号であり、例えば、6がTCP、17がUDPである。
図8に、UDPパケットのデータグラムについて示す。
UDPデータグラム(パケット)は、「UDPヘッダ」が付加された「UDPデータ」として構成される。UDPヘッダには、16ビットの「送信元ポート番号」及び16ビットの「宛先ポート番号」が含まれる。それにより、IPパケット中の送信元IPアドレスや宛先IPアドレスにより特定されるIP端末内においてUDPパケットの送信元または宛先のアプリケーションを区別することができる。
図9に、TCPパケットのデータグラムについて示す。
TCPデータグラム(パケット)は、「TCPヘッダ」が付加された「TCPデータ」として構成される。TCPヘッダには、UDPパケットと同様に、16ビットの「送信元ポート番号」及び16ビットの「宛先ポート番号」が含まれる。それにより、IPパケット中の送信元IPアドレスや宛先IPアドレスにより特定されるIP端末内においてTCPパケットの送信元または宛先のアプリケーションを区別することができる。
図10に、発呼装置と着呼装置との間で行われるSIPによる一般的な通信シーケンスについて示す。
同図において、発呼側から「INVITE」というリクエストメッセージを送出する(フェーズF1)。「INVITE」はセッションの起動信号であり、それには発呼側が受信可能なセッションの属性がSDP(制御情報記述)で示されている。具体的には発呼側の受信条件(コーデック、ポート番号等)と送信条件を提示するものである。
着呼側はフェーズF1で、「INVITE」を受信すると、呼び出し状態になったことを通知するために「180 RINGING」を発呼側へ送信する(フェーズF2)。この180 RINGINGで着呼側の受信条件(コーデック、ポート番号等)と送信条件を提示してもよいが、通常は次の200 OKで提示する。
また、着呼側は、通話可能状態になったことを通知するために「200 OK」を発呼側へ送信する(フェーズF3)。その「200 OK」には、着呼側が受信可能なセッションの属性がSDPで示されている。また、着呼側は、その「200 OK」で着呼側の受信条件(コーデック、ポート番号等)と送信条件を提示する。
次に発呼側が「ACK」を着呼側へ送信し(フェーズF4)、これにより通信に利用可能な属性が発呼側と着呼側とで相互にネゴシエーションされる。本実施の形態では、便宜上ここまでを接続フェーズと定義している。
次にRTPパケットによるメディア(音声、画像、動画等)の転送が開始される(フェーズF5)。本実施の形態ではこのメディアの転送期間中を便宜上、データ送受信フェーズと定義している。
通信を終了するときには止める側(この場合着呼側)が、「BYE」信号を送信することにより通信終了を要求し(フェーズF6)、それを受信した側(この場合発呼側)は、その応答である「200 OK」信号を送信して通信を終了する(フェーズF7)。本実施の形態ではこのフェーズを便宜上、切断フェーズと定義している。なお、切断フェーズは、着呼装置からに限らず発呼装置から起動される場合もある。
図11に、発呼装置と着呼装置との間で行われるSIPによるローカル(非標準)プロトコルによる通信シーケンスについて示す。
なお、図11に示すローカルな通信シーケンスを構成する各フェーズのやりとりのうち、図10に示したSIP標準プロトコルを構成する各フェーズと同等のものには、同一のフェーズ番号を付している。また、図11においては、標準プロトコル信号を大文字(例えば「INVITE」)で表し、それに相当するローカルプロトコル信号を小文字(例えば「invite」)で記述している。
図11に示すローカルな通信シーケンスでは、標準呼設定プロトコルのセッションの属性の他に(重複して持っていてもいいが)、独自のセッションの属性である受信条件(コーデック、ポート番号等)と送信条件と、さらに標準呼設定プロトコルが持っていない、装置に関わる独自の情報(装置が装備している機能、装置の状態を示す情報、相手装置の設定を変更する情報、相手装置の機能を実行する情報等)をIPパケットに挿入し、それを相手装置に送信するものである。
つまり、先ず、発呼端末は発呼する際に自端末に備わっているプロトコルを調査し、最初に送出するプロトコルとして優先設定されているプロトコルで通信を開始するため(この例では標準プロトコルが設定されている)、まず発呼側は標準のプロトコルであるSIPの「INVITE」信号を着呼側へ送信する(フェーズF1)。
また、そのすぐ後にローカルプロトコル信号の1つである「invite」信号を送信する(フェーズF1a)。
着呼側はフェーズF1及びF1aで「INVITE」信号と「invite」信号の両方を受信し(順次メモリに蓄えておくことにより複数の制御信号を受信することが出来る)、「invite」信号を選択するとともに、呼び出し状態になったことを通知するために「180 ringing」を発呼側へ送信する(フェーズF2)。その場合、例えば標準プロトコルを優先設定されている場合等にはINVITE信号のほうを選択してもよい。
それ以後の動作は図10のフェーズF4の「ACK」及びフェーズF5の「BYE」の各標準プロトコルがローカルプロトコル(「ack」及び「bye」)に代わる以外は、同じである。
その他の独自の受信条件としては、前記の他に、装備している通信プロトコルの種類、呼設定の方式に関係するもの、ネゴシエーションに関係するもの、端末の通信能力、データの圧縮方式、デジタル化方式、プロトコルの種類、それに使用するIPパケットの種類、IPパケットの構造、IPパケットの定義、再送処理方式、エラー処理方式、セキュリティ方式等、通信条件に関するあらゆるものが考えられる。また標準プロトコルの「INVITE」信号を送出する前に、すなわち最初からローカルプロトコルの「invite」信号を送信してもよい。
また「invite」信号は接続フェーズまたはデータ送受信フェーズまたは切断フェーズの期間中のどこでも送信してもよい。例えば、データ送受信フェーズの場合には、ユーザが例えば音声の品質がよくないとか、画像の品質がよくない場合に、高品質な方式に切り換えたい場合に、例えば端末の入力手段から方式を切り替える操作を入力した場合に、「invite」信号を送出することが考えられる。
着呼側は標準プロトコルである「INVITE」信号に対して「180 RINGING」信号または「200 OK」信号を送信した場合、すなわち標準プロトコルで接続(ネゴシエーションが成立)した後でも、接続フェーズまたはデータ送受信フェーズまたは切断フェーズの期間中に「invite」信号を受信することが出来、その場合は再びネゴシエーションをやり直すことになる。
装置に関わる独自の情報とは具体的には、装置が装備している機能に関する情報、装置の状態を示す情報、相手装置の設定を変更する情報、相手装置の機能を実行する情報等である。
装置が装備している機能に関する情報としては、例えば、Webブラウザ機能、ストリームデータ再生機能、テレビ電話機能、留守番電話機能、留守番録画機能、録音機能、録画機能、着信メモリー、リダイヤルメモリー、電話帳機能、発信元番号通知機能、発信者名称通知機能、着信拒否機能、着信メロディー変更機能、転送機能、キャッチホン機能等の各機能に関する情報がある。
装置の状態を示す情報としては、例えば、留守番電話がセットされている情報、留守番録画がセットされている情報、装置に不具合があることを示す情報、装置が使用されていることを示す情報、装置のなんらかの機能がセットされていることを示す情報等がある。
相手装置の設定を変更する情報としては、例えば、留守番電話をセットあるいは解除する命令、留守番録画をセットあるいは解除する命令、装置に備わっている機能が動作するようにセットあるいは解除する命令等がある。
相手装置の機能を実行する情報としては、例えば、留守番電話に録音されている音声を再生させ送信させる命令、留守番録画に録画されている画像を再生させ送信させる命令、着信メロディの変更させる命令等がある。
ローカルな通信シーケンスの実現形態としては、図11に示したような、非標準のプロトコル信号を用いる方法の他に、標準の通信シーケンスで使用される標準プロトコルのTCP・UDP/IPパケットに、ローカルプロトコルで使用する情報を含ませる方法がある。
図12(a)にその例を示す。
同図においては、SIP制御用のUDPパケットのSIPメッセージ部分に、ローカルな呼設定用の情報(ローカルプロトコル情報)を含ませている。ローカルプロトコル情報の挿入場所としては、データ部に限らず、IPヘッダのオプションフィールド(図7参照)であってもよい。
標準のSIPプロトコルのみにしか対応していない端末はローカル部分を無視するため、標準のSIPで呼制御を行うが、ローカルプロトコルに対応している端末は、このローカル部分を解釈し、必要に応じてローカルプロトコルで呼制御を行うため、標準のセッションからローカルなセッションへの移行が可能である。
また、図12(b)に別例を示す。
同図おいては、SIPのデータ用パケットのRTPヘッダ以下の音声、画像データを載せる部分に、ローカルな呼設定用の情報(ローカルプロトコル情報)を含ませている。ローカルプロトコル情報の挿入場所としては、データ部に限らず、IPヘッダのオプションフィールド(図7参照)であってもよい。
標準のSIPプロトコルのみにしか対応していない端末はローカル部分を無視するため、標準のSIPで呼制御を行うが、ローカルプロトコルに対応している端末は、このローカル部分を解釈し、必要に応じてローカルプロトコルで呼制御を行うため、標準のセッションからローカルなセッションへの移行が可能である。
このように独自のローカルプロトコルに対応している端末はIPパケットのどの部分にローカルプロトコル情報が載せられているのかは、あらかじめ認識しているので、ローカルプロトコルの搭載形態は任意に構成することが出来る。
またIP端末は発呼側および着呼側にもなりえるように、発呼側および着呼側で使用する両方のプロトコルを備えているのが一般的である。また、標準のプロトコルでセッションが開始されたのか、あるいは独自のプロトコルでセッションが開始されたのかを表示部に表示することができる。例えば「SIP」「H.323」「独自方式」等の表示をする。ユーザをこれを見ることにより通信の状態あるいは使用できる機能等を知ることが出来る。また接続に使用したプロトコルによって使用できる機能等を表示することも出来る。また、発呼する場合、相手装置がどのプロトコルを装備しているか分からない場合には、発呼端末が装備している複数のプロトコルまたはすべてのプロトコルの「INVITE」または「invite」信号を順次送出することが出来る。
着呼側はその複数のプロトコルのうちの1つを選択し、その選択したプロトコルに相当する応答信号を1つだけ返信することが出来る。または複数のプロトコルのうち複数のプロトコルを選択し、その選択した複数のプロトコルに相当する応答信号を複数返信することも出来る。この場合、発呼側は優先順位の高いプロトコルを選択することが出来る。
このように、ローカルプロトコルに対応することにより、標準の呼制御用プロトコルに定義されている標準の通信方式以外の独自の通信あるは通話方式を使用することが出来るため、最適な通信ができる。
IP電話装置100が、発信装置として、発呼して接続された相手装置との間で通信を行い、または、着呼装置として、相手装置からの着呼に応答して通信を行う際には、図10の標準SIPプロトコル、図11のローカルSIPプロトコル、または、図12に示した、ローカルプロトコル情報を用いたプロトコルのいずれかを適用できる。
図13に、IP電話装置100のパラメータメモリ5の本発明に特徴的な記憶内容について示す。
同図において、パラメータメモリ5の記憶領域5aには、ネットワーク関連設定情報、記憶領域5bには、通話中着呼応答モード設定フラグFset、そして、記憶領域5cには、伝言再生完了通知可否フラグFtが予め記憶されている。
記憶領域5cのフラグFtは、伝言再生が完了したことを相手先に通知する(値1)か否(値0)かの設定状態を記憶するものであり、操作表示部6からの操作入力などによりユーザの所望するところに応じて予め設定されるものである。なお、フラグFtは後述する図34の伝言記録再生処理手順において参照される
図14に、ネットワーク関連設定情報5aの具体的な内容について示す。
同図において、情報5aは、自端末IPアドレス(この場合myIPadd)と、通話用のUDPのポート番号(この場合myPort_for_conv)とにより構成されている。
図15に、記憶領域5bの通話中着呼応答モード設定フラグFsetの設定内容について示す。
同図において、フラグFsetは、特定の相手と通話中に別の相手から着呼した場合にどのような応答をすべきかを示すフラグであり、値1は、当該別の相手に対して「通話中」であることを通知するモードに対応し、値2は、当該別の相手からの伝言を記録するモードに対応し、値3は、当該別の相手からの着呼を保留状態にして、現在通話中の相手との通話の終了または中断後の通話を可能となるモードに対応し、値4は、着呼応答のモードを「伝言記録」または「保留」のいずれにするかを当該別の相手に選択させるモードに対応している。
フラグFsetは、操作表示部6からの操作入力などによりユーザの所望するところに応じて予め設定されるものである。また、フラグFsetは、後述する図28ないし図33の通話制御処理手順において参照される。
図16に、IP電話装置100のRAM4の本発明に特徴的な記憶内容について示す。
同図において、RAM4の記憶領域4aには、TCP・UDP/IP通信管理テーブルが、記憶領域4bには、通話管理テーブルが、記憶領域4cには、伝言記録管理テーブル4cが記憶される。
図17にTCP・UDP/IP通信管理テーブル4aの具体的な内容について示す。
同図において、テーブル4aは、1、2及び3の各「通話管理番号」と、「自端末IPアドレス」、「自端末ポート番号」、「相手端末IPアドレス」、「相手端末ポート番号」、及び、「プロトコル番号」との対応付けにより構成されていて、それぞれ、通話制御処理(1)、(2)及び(3)に対応している。
「自端末IPアドレス」、「自端末ポート番号」及び「プロトコル番号」は、各「通話管理番号」に共通の設定である。「自端末IPアドレス」は、図14に示したネットワーク関連設定情報5aとして予め設定された自端末のIPアドレス(myIPadd)である。「自端末ポート番号」は、図14に示したネットワーク関連設定情報5aとして予め設定された通話用UDPポート番号(myPort_for_conv)である。「プロトコル番号」は、各通話制御処理(N=1、2,3)において通話に用いるプロトコル示すもので、図7に示したIPヘッダーのプロトコルタイプとして設定されるものであり、この場合、UDPプロトコルを示す番号「17」が全ての通話制御処理Nについて同一に設定されている。
「相手端末IPアドレス」及び「相手端末ポート番号」は、予め確定できない情報であり、発呼時に後述する通話制御処理手順により設定されるか、または、着呼時に後述するTCP・UDP/IPパケット送受信処理手順により設定される。
なお、並行して行われる通話または着呼応答の各通信を互いに独立して実行するために、受信パケットを区別するには、一般論的には、自端末IPアドレス、自端末ポート番号、相手端末IPアドレス、及び、相手端末ポート番号の組合せを各通信について異ならせればよいが、本発明を実施するための最良の形態では、最も合理的と思われる、相手端末IPアドレス及び相手端末ポート番号により区別するようにしている。その他に、着呼受け付け専用の自端末ポート番号は固定で、着呼受付後に、別のポート番号を割り当てて、相手装置に通知し、以後はその別のポート番号にデータを送信してくるようにさせて区別することも可能である。また、上位のアプリケーションレベルで各通信を区別することも可能である。
図18に、通話管理テーブル4bの具体的な内容について示す。
同図において、テーブル4bは、各「通話管理番号(N=1、2,3)」にそれぞれ対応する通話制御処理(N=1、2,3)に対応した使用中フラグFbusyと優先順位値との対応付けにより構成されている。「通話管理番号」は、図17のテーブル4aのそれと対応するものである。「フラグFbusy」は、値「1」が、対応する通話制御処理が使用中、つまり、待機状態以外の、発呼または着呼の処理途中で、発呼や着呼には使用できない状態を示し、値「0」は、対応する通話制御処理が待機状態で、発呼や着呼に使用可能な状態を示している。
「優先順位値」は、各通話制御処理(N=1、2,3)のうちフラグFbusyの値が1のものが、通話回路9を使用した通話処理を行うことに関する優先順位を示すもので。その値が最小の通話制御処理のみが「通話」を行えることを示すものである。「フラグFbusy」は、後述する通話制御処理(N=1、2,3)のうちの対応する処理によりに1にセットまたは0にリセットされるものである。「優先順位値」も、後述する通話制御処理(N=1、2,3)のうちの対応する処理によりに適切な値に設定され、または0にリセットされるものである。
図19に、伝言記録管理テーブル4cの具体的な内容について示す。
テーブル4cは、各「伝言管理番号」と、「伝言記録有無フラグFd」、「伝言記録アドレス」、「相手端末IPアドレス」及び「相手端末ポート番号」との対応付けにより構成されている。
「伝言記録有無フラグFd」は、対応する「伝言管理番号」について、伝言記録が有る(値1)か無い(値0)かを示すものである。「伝言記録アドレス」は、記録した伝言音声データのRAM4における格納アドレスを示すものである。「相手端末IPアドレス」及び「相手端末ポート番号」は、伝言記録の音声データを記録した際の相手先のIPアドレス及びポート番号(UDP)を示すものである。
それらの登録は、後述する通話制御処理(N=1、2,3)における図31の伝言記録処理(処理S702)において行われる。また、それらの登録の削除は、後述する伝言記録再生処理において行われる。
次に、IP電話装置100における各種処理手順について説明するが、その前に、それら各種処理手順と、それら各種処理手順において参照される各種テーブルとの相互関係について、図20を参照して説明する。
同図において、通話管理処理(図22)は、TCP・UDP/IP通信管理テーブル4a、通信管理テーブル4b、及び、伝言記録管理テーブル4cを初期化した後、TCP・UDP/IPパケット送受信処理(図26、図27)、3つの通話制御処理(N=1、2、3)(図28ないし図33)、伝言記録再生処理(図34)の各処理手順を起動して並行動作させる。
通話制御処理(N=1、2、3)は、互いに並行動作すると共に、通話管理テーブル4bを互いに読み書きすることにより協調動作するもので、IP電話装置100が備える3つの通話チャンネルに相当するものである。通話制御処理(N=1、2、3)は、TCP・UDP/IP通信管理テーブル4aの読み書きも行う。
それらの3つの通話制御処理のうち、通話回路9を用いて相手装置との間で発呼または着呼後の通話を行えるのは、1つの通話制御処理のみであるが、その1つの通話制御処理において通話中でも、他の2つの通話制御処理においては、着呼に応答して所定の動作を行う(詳細は後述)。
TCP・UDP/IPパケット送受信処理(図26、図27)は、IP手段8との間でIPパケットの授受を行う一方、通話制御処理(N=1、2、3)との間でデータの授受を行い、通話制御処理(N=1、2、3)が、UDP/IPプロトコルにより相手装置の通話機能との間で、SIPによる通話機能に係るデータのやりとりを行えるようにする。
伝言記録管理テーブル4cは、通話制御処理(N=1、2、3)により読み書きされる一方、伝言記録再生処理4cにより読み書きされる。
図21に、操作表示部6に配設され、後述する通話制御処理(N=1、2、3)の各制御状態に応じて点灯消灯が行われるインジケータランプ群6aについて示す。後述する通話制御処理(N=1、2、3)では、このランプ群6aの点灯(○)/消灯(●)制御の手順については省いているため、ここで説明しておく。
ランプ群6aは、通話制御処理(N=1、2、3)にそれぞれ対応する「通信CH1」、「通信CH2」及び「通信CH3」の各文字列と、「使用中」、「通話中」、及び「保留中」の各文字列とのマトリクス状の対応付けにより構成されている。
「使用中」は、対応する通話制御処理について、図18に示した通話管理テーブル4bにおける使用中フラグFbusyが1の間点灯され0の場合に消灯して、各通信チャンネルの使用状況を示す。図21においては、全ての通話制御処理(通話チャンネル)について、「使用中」である。
「通話中」は、対応する通話制御処理について、通話中の状態の間点灯されそれ以外の状態で消灯して、その通話チャンネルにおいて「通話中」であるか否かを示す。図21においては、チャンネル1が「通話中」である。なお、「通話中」状態となるのは、1つの通話チャンネルのみであり、図21においてチャンネル2,3は、通話中の着呼に応答することによる「使用中」であることを示している。
「保留中」は、通話中の着呼に応答することによる「使用中」である場合に、対応する通話チャンネル(通話制御処理)において、「保留中」つまり、チャンネル1で通話中のユーザと通話したくて待っている相手がいることを示している。図21では、その相手はチャンネル3で着呼した相手であることを示している。
また、図21において、操作表示部6には、各通話チャンネルにそれぞれ対応した「通話参加」キーにより構成された通話参加キー群6bが配設されている。
詳細は後述するが、各「通話参加」キーは、対応する通話チャンネルが、「使用中」であって、「通話中」ではない状態で押下されると「通話中」に移行させ、「使用中」であって、「通話中」である状態で押下されると「保留中」に移行させるためのキーである。
「通話切換」キー6cは、詳細は後述するが、いわゆるキャッチホン動作のためのキーで、押下されると、現在「使用中」かつ「通話中」の通話チャンネルから「使用中」かつ「通話中」ではない通話チャンネルへの「通話」の切り換えが行われるものである。
次に、図20に示した各処理手順のうちの、通話管理処理手順について、図22に示す。この通話管理処理手順は、IP電話装置100の電源投入後の一連の初期化処理の一部として行われるものである。
図22において、先ず、TCP・UDP/IP通信管理テーブル4aを、図23に示すように初期化する(処理S101)。つまり、全通話制御処理(N=1、2、3)について、相手端末IPアドレスと相手端末ボード番号とを未登録状態とすると共に、全通話制御処理(N=1、2、3)について、図14に示したように、ネットワーク関連設定情報5aとして予め設定された自端末IPアドレス及び通話用UDPポート番号を、それぞれ、自端末IPアドレス及び自端末ポート番号として設定すると共にプロトコル番号に番号17(UDP)を設定する。
その初期化の後、TCP・UDP/IPパケット送受信処理を起動する(処理S102)。
次に、通話管理テーブル4bを、図24に示すように初期化する(処理S103)。つまり、全通話制御処理(N=1、2、3)について、使用中フラグFbusyを0にリセットすると共に優先順位値を0に設定する。
その初期化の後、通話制御処理(1)、(2)及び(3)を起動する(処理S104、処理S105、処理S106)。
次に、伝言記録管理テーブル4cを、図25に示すように初期化する(処理S107)。つまり、全伝言管理番号について、伝言記録有無フラグFdを0にリセットすると共に、伝言記録アドレス、相手端末IPアドレス、及び、相手端末ポート番号を未登録状態とする。
その初期化の後、伝言記録再生処理を起動する(処理S108)。
これにより、TCP・UDP/IPパケット送受信処理、通話制御処理(N=1、2、3)、及び、伝言記録再生処理が図20に示した関連性を持って並行動作を開始する。
TCP・UDP/IPパケット送受信処理手順について図26及び図27に示す。
それらの図において、先ず、IP手段8からのパケット受信があるか否かを判断し(判断S201)、IPパケットの受信があった場合には(判断S201のYes)、テーブル4aを参照しつつ、その受信したIPパケットが「通話」に係るIPパケットか否かを判断する(判断S202)。
判断S202における判断では、宛先IPアドレスがテーブル4aに設定されている自端末IPアドレスであり、かつ、そのIPパケットのヘッダのプロトコル番号がテーブル4aに設定された17(UDP)であり、かつ、IPデータ中のUDPパケットのヘッダの宛先ポート番号がテーブル4aに設定されている自端末ポート番号である場合に、「通話」に係るIPパケットであると判断する。
「通話」のパケットではない、その他の、DHCPプロトコル等の上位プロトコルに係るものである場合には(判断S202のNo)、受信したIPパケットの内容に応じた上位プロトコルに受信パケット中のデータを渡すその他の処理を行い(処理S209)、判断S201に戻る。
判断S202において、「通話」のパケットである場合には(判断S202のYes)、受信したIPパケットからTCP・UDP/IPヘッダ情報、つまり、IPヘッダと、IPヘッダに示めされるプロトコル番号(この場合UDP)により特定されるIPデータ中に含まれる上位プロトコル(UDP)のパケット中のUDPヘッダの情報を取得し(処理S203)、その取得した情報中の送信元IPアドレス及び送信元ポート番号を、それぞれテーブル4aの相手端末IPアドレス及び相手端末ボード番号と照合して、対応する通話制御処理(の通話管理番号)を検索する(処理S204)。
その検索の結果、対応する通話制御処理がある場合には(判断S205のYes)、対応する通話制御処理に受信IPパケット中のTCP・UDPデータ(この場合UDPデータ)を渡し(処理S206)、判断S201に戻る。
判断S205において、対応する通話制御処理がない場合には(判断S205のNo)、相手端末IPアドレス及び相手端末ボード番号が未登録の通話制御処理(の通話管理番号)があるか否かを判断し(判断S207)、ない場合には(判断S207のNo)、判断S201に戻る。つまり、通話制御処理(1)、(2)及び(3)の全てが「使用中」状態で、これ以上の新たな着呼に応答できない場合にはその新たな着呼に係るIPパケットは無視される。
判断S207において、未登録の通話制御処理がある場合は、処理S203で取得した送信元IPアドレス及び送信元ボード番号を相手端末IPアドレス及び相手端末ボード番号として未登録状態の通話制御処理のうちの1つと対応付けてテーブル4aに新規登録した上で(処理S208)、その対応する通話制御処理に受信IPパケット中のTCP・UDPデータ(この場合UDPデータ)を渡し(処理S206)、判断S201に戻る。
これにより、「通話」に係るIPパケットを受信した場合、受信データを3つの通話制御処理のうちの対応する処理に正しく渡すことができ、また、新規の着呼に係る受信IPパケットについては、未使用の通話制御処理と新規の対応付けを行うため、「通話」の着呼を3つの通話制御処理に動的に振り分けて、同時に3つの着呼に応答することができる(ただし「通話」できるのは1つの通話制御処理においてのみ)。
判断S201がNoの場合、図27の判断S301に移行し、上位のアプリケーションからのデータ送信依頼があるかを判断し、ない場合に判断S201に戻るが、ある場合には(判断S301のYes)、さらに、その送信依頼のデータが「通話」のデータか否かを判断する(判断S302)。
判断S302において、「通話」のデータかの判断は、上位のアプリケーションからデータを渡される際に併せて通知されるアプリケーション識別番号により行い、各通話制御処理(N=1,2,3)からのデータには「通話管理番号」が付帯するため、それにより「通話」のデータであると判断される。
「通話」のデータでない場合には(判断S305のNo)、付帯して通知された識別番号の上位アプリケーション(例えばDHCPプロトコル)に応じたその他の処理を行い(処理S305)、判断S201に戻る。
「通話」のデータである場合には(判断S302のYes)、付帯して通知された通話管理番号(N)に対応するテーブル4aの管理情報に基づいて、TCP・UDP/IPヘッダを作成する(処理S303)。具体的には、UDPパケットのヘッダの、送信元ポート番号に自端末ポート番号を設定すると共に宛先ポート番号に相手端末ポート番号を設定する。また、IPパケットのヘッダの、送信元IPアドレスに自端末IPアドレスを設定すると共に宛先IPアドレスに相手端末IPアドレスを設定する。
そうして作成したUDPヘッダ及びIPヘッダに送信依頼の「通話」のデータを付加してIPパケットを作成ししてIP手段8に渡して(処理S304)、判断S201に戻る。
このようにして、通話制御処理(N=1,2,3)の3つの通話制御処理のそれぞれと、相手装置側の通話機能との間でUDP/IPプロトコル上での「通話」に係るデータのやりとりが可能となり、また、着呼については、いずれかの通話制御処理を自動的に選択して処理させることができる。
次に、図20に示した各処理手順のうちの、通話制御処理(1)、(2)及び(3)のそれぞれとして行われる手順について図28ないし図33に示す。なお、通話制御処理(1)、(2)及び(3)はそれぞれ、状況に応じて通信制御手段または通信中着呼処理手段となるものである。
先ず、図28において、着呼があるか(判断S401)を判断し、着呼がない場合には(判断S401のNo)、テーブル4bにおいて、Fbusyが1の、つまり、「使用中」の他処理の有無を確認する(処理S402)。
その結果、「使用中」の他処理がある場合には(判断S403のYes)、判断401に戻り待機状態となる。「使用中」の他処理がない場合に限って(判断S403のNo)、発呼があるかを判断し(判断S404)、発呼がない場合には(判断S404のNo)、判断S401に戻り待機状態となる。
判断404がYesとなるのは、相手先が指定されると共に所定の発呼操作が行われた場合で、その場合、テーブル4bにおいてフラグFbusyが1の他の通話制御処理の有無を確認し(処理S405)、既にある場合には(判断S406のYes)、判断S401に戻り待機状態となるが、まだない場合には(判断S406のNo)、指定された相手先のIPアドレス及びポート番号を自処理の「通話管理番号」に対応させてテーブル4bに登録する(処理S407)。
また、テーブル4bにおいて自処理についてのフラグFbusyを1にセットすると共に(処理S408)、テーブル4bにおいて、優先順位値(N)つまり、自処理についての優先順位値は0のままにして(処理S409)、図29の処理S501に移行する。
つまり、他処理が「使用中」でなく、自処理も「使用中」でない場合に限り、自処理において、自装置から相手装置に対して発呼する形態の「通話」が許されることになる。
なお、互いに並行して動作する、通話制御処理(N=1、2,3)のそれぞれについて、判断S404がほぼ同時にYesとなるが、テーブル4bを最初にアクセスして、最初にFbusy(N)を1にセットした通話制御処理においてのみ、判断S406がNoとなり、それ以外は、判断S406がYesとなるため、1つの通話制御処理のみが、発呼に係る「通話」を担当することができる。なお、発呼は可能な通話制御処理を1つのみに制限するようにしてもよい。
判断401において着呼があった場合(判断S401のYes)、つまり、TCP・UDP/IPパケット送受信処理手順からの「通話」に係るデータの受信が開始された場合は、テーブル4bにおいてフラグFbusy(N)を1にセットすると共に(処理S410)、テーブル4bにおいてFbusyが1の他処理の有無を確認し(処理S411)、既にある場合には(判断S412のYes)、図30の処理S601に移行する。まだない場合には(判断S412のNo)、3つの通話制御処理が「未使用」の状態において、TCP・UDP/IPパケット送受信処理手順において自処理に新規の着呼が割り当てられたことになるため、テーブル4bにおいて優先順位値(N)は0のままにして(処理S413)、図29の処理S501に移行する。
図29の処理S501においては、UDP/IPプロトコル上で、図10に示したSIP通信シーケンスでの接続フェーズ、データ送受信フェーズ、及び、切断フェーズからなる通話処理を行う。その場合のデータ送受信フェーズにおいては、通話回路9を使用する。
処理S501の通話処理を行いつつ、「通話」が終了したか、つまり、図10の切断フェーズが完了したか、または、所定のキャッチホン操作、つまり、現在の「通話」を保留状態にして、保留中を含む着呼中の別の相手からの着呼に切り換え応答することを指示する「通話切換」キー6cの押下操作があるか、または、「通話参加」キー(N)が押下されるかを監視する(判断S502のNo、判断S503のNo、判断S504のNoのループ)。
判断S502において、「通話」が終了した場合には(判断S502のYes)、優先順位値(N)は0のままとし(処理S506)、Fbusy(N)を0にリセットし(処理S507)、更に、テーブル4bにおける、相手端末IPアドレス及び相手端末ポート番号の自処理(に対応する通話管理番号)に対応した登録を削除した上で(処理S508)、図28の判断401に戻り、新規の発呼または着呼に応答可能な待機状態となる。
判断S503においてキャッチホン操作があった場合(判断S503のYes)、または、判断S504において、「通話参加」キー(N)が押下された場合(判断S504のYes)、テーブル4bにおいて、優先順位値(N)を最大値+1にセットした上で(処理S505)、図32の判断801に移行する。なお、優先順位値(N)を最大値+1にセットする処理は、自処理が「通話」に戻れる優先順位を最下位に下げることに相当する。
判断S503のキャッチホン操作は、通話の権限を現在通話中の自チャンネル以外の「使用中」ではあるが「通話中」ではないチャンネルに移譲する操作であり、判断S504の「通話参加」キー(N)の押下は、他チャンネルでの通話と同時に行われていた自チャンネルでの通話のみを終了して当該他チャンネルでの通話のみに戻す操作である。判断S503のキャッチホン操作は、通話制御処理(N=1,2,3)の3つの通話制御処理のうちの複数の処理に同時に作用する場合があるのに対して、「通話参加」キー(N)の押下は、対応する処理にのみ作用する点が異なる。
処理S505における最大値とは、テーブル4bにおいて、通話制御処理(1)、(2)及び(3)のそれぞれに対応した優先順位値であって、Fbusyの値が1であるものの中で最大の値である。Fbusyの値が1のものが1つの場合には、それに対応した優先順位値がそのまま最大値となる。Fbusyの値が1のものが1つの場合というのは、「通話」中の自処理のみが「使用中」である状態である。
図30の処理S601においては、テーブル4bにおいて、Fbusyの値が1の通話制御処理のなかで優先順位値(N)の最大値を検索し(処理S601)、優先順位値(N)をその検索した最大値+1に設定した上で、つまり、自処理を、「通話」に戻れる優先順位の最下位に置いた上で(処理S602)、テーブル4bにおいてFbusy(N)を1にセットし(処理S603)、図15のモード設定フラグFsetを参照する(処理S604)。
そして、「通話中」通知モードに設定されていない場合には(判断S605のNo)、図31の判断S701に移行するが、「通話中」通知モードに設定されている場合には(判断S605のYes)、図10の接続フェーズを行い、データ送受信フェーズにおいて「通話中」を通知する処理を(処理S606)、その「通話中」通知処理が終了するか、つまり、図10の切断フェーズにより通信が終了するか、自処理が優先順位値が最小値となるまで行う(判断S607のNo、処理S608、判断S609、処理S610、判断611のNoのループ)。
処理S606の「通話中」を通知する処理は、具体的には、「ただ今別の相手と通話中です。しばらく待ってからかけ直してください。」との音声応答メッセージデータ(ROM3に予め記憶される)の相手装置への送信である。ビジートーンのようなトーン信号の音声データを送信するようにしてもよい。また、「通話中」を示す音声応答メッセージは、カセットテープにアナログ信号として保存しておいて、送信時に再生してデジタルデータに変換するようにしてもよいが、デジタルデータ、特に、「通話」時にやりとりする音声データにおける符号化方式(例えば、G.711,G.722、G.723等)と同一の符号化方式で予め符号化しておくことが望ましい。あるいは、独自の高符号化効率の符号化方式で符号化・記憶しておいて、再生時に、相手装置に適合するデータ形式に変換して送信するようにして、記憶領域の節減を図るようにしてもよい。また、直接自装置からビジー信号のパケット信号を返送する方法の他に、プロキシサーバから相手装置にパケット信号を送信させる方法も適用可能である。
処理S608の確認は、テーブル4bにおいてFbusyが1の、自処理を含む各通話制御処理についての優先順位値のうちの最小値が、自処理についての優先順位値であるかを確認するものであり、Fbusyが1なのが自処理のみの場合は、自処理についての優先順位値がそのまま最小値として評価される。
自処理の優先順位値(N)が最小値となるのは、自処理よりも優先順位値の高かった他の通話制御処理の全てにおいてFbusyが0にリセットされた時である。
処理S608の確認後、判断S611の間に、「通話参加」キー(N)が押下されたか否かを判断し(判断S609)、押下されていない場合には(判断S609のNo)、判断S611にそのまま進むが、押下された場合には(判断S609のYes)、テーブル4bにおける自処理の優先順位値を最小値(処理S608におけるのと同一定義)と同一値にした上で(処理S510)、判断S611に移行する。
判断S607において、終了した場合、つまり、「通話中」の通知により発信側があきらめて図10の切断フェーズを起動して通信が終了した場合には(判断S607のYes)、Fbusy(N)を0にリセットし(処理S612)、優先順位値(N)を0にリセットし(処理S613)、更に、相手端末IPアドレス及び相手端末ポート番号の自処理(に対応する通話管理番号)に対応したテーブル4bにおける登録を削除した上で(処理S614)、図28の判断401に戻り、新規の発呼または着呼に応答可能な待機状態となる。
判断S611において、自処理の優先順位値が最小値となった場合、つまり、発呼元の相手側が、「通話中」の通知を受けながらも、切断フェーズを起動することなく待ち続け、待っているうちに、自処理が「通話」を行える状況になった場合、または、自処理に係る着呼がユーザによる「通話参加」キー(N)の押下により通話への参加が認められた場合には(判断S611のYes)、図29の処理S501に移行する。
図31の判断S701においては、フラグFsetにおいて伝言記録モードに設定されていない場合には(判断S701のNo)、図32の判断S801に移行するが、伝言記録モードに設定されている場合には(判断S701のYes)、図10の接続フェーズを行い、データ送受信フェーズにおいて伝言記録を行う処理を(処理S702)、その伝言記録処理が終了するか、つまり、図10の切断フェーズにより通信が終了するか、自処理が優先順位値が最小値となるまで行う(判断S703のNo、処理S704、判断S705、処理S706、判断707のNoのループ)。
処理S702の伝言記録を行う処理は、具体的には、「ピーという発信音が鳴ってから10秒間伝言メッセージを録音できます」などの所定の音声応答メッセージの相手装置への送信後に、ピーという発信音に相当する音声データのパケットを送信後に、相手装置から10秒間の間に受信される音声データをそのままの符号化された状態で所定の記憶手段としてのRAM4の空き領域に記憶する。その場合、受信音声データをいったん復号伸張したのち、独自の高符号化効率の符号化方式で符号化してからRAM4に記憶するようにして、記憶領域の節減を図るようにしてもよい。また、受信音声データをアナログ信号に変換してカセットテープに録音するようにしてもよいが、デジタルデータのまま記憶したほうが、音質劣化がなく好ましい。
また、RAM4に伝言の音声データを記憶した際には、図19に示した伝言記録管理テーブル4cの各伝言管理番号のうちの、対応する伝言記録有無フラグFdが0のものに対応付けて、伝言の音声データのRAM4における記憶アドレス、当該伝言の送信元の相手端末IPアドレス及びポート番号(テーブル4bを参照することにより取得できる)を登録する。
処理S704の確認は、テーブル4bにおいてFbusyが1の、自処理を含む各通話制御処理についての優先順位値のうちの最小値が、自処理についての優先順位値であるかを確認するものであり、Fbusyが1なのが自処理のみの場合は、自処理についての優先順位値がそのまま最小値として評価される。
自処理の優先順位値(N)が最小値となるのは、自処理よりも優先順位値の高かった他の通話制御処理の全てにおいてFbusyが0にリセットされた時である。
処理S704の確認後、判断S707の間に、「通話参加」キー(N)が押下されたか否かを判断し(判断S705)、押下されていない場合には(判断S705のNo)、判断S707にそのまま進むが、押下された場合には(判断S705のYes)、テーブル4bにおける自処理の優先順位値を最小値(処理S704におけるのと同一定義)と同一値にした上で(処理S706)、判断S707に移行する。
判断S707において、終了した場合、つまり、伝言記録を完了した後発信側が目的を達したとして図10の切断フェーズを起動して通信が終了した場合には(判断S707のYes)、Fbusy(N)を0にリセットし(処理S708)、優先順位値(N)を0にリセットし(処理S709)、更に、相手端末IPアドレス及び相手端末ポート番号の自処理(に対応する通話管理番号)に対応した登録を削除した上で(処理S710)、図28の判断401に戻り、新規の発呼または着呼に応答可能な待機状態となる。
判断S707において、自処理の優先順位値が最小値となった場合、つまり、発呼元の相手側が、伝言記録を行っている最中やその前後に、自処理が「通話」を行える状況になった場合、または、自処理に係る着呼がユーザによる「通話参加」キー(N)の押下により通話への参加が認められた場合には(判断S707のYes)、図29の処理S501に移行する。
図32の判断S801においては、フラグFsetにおいて保留モードに設定されていない場合、つまり、通信相手が選択モードに設定されている場合には(判断S801のNo)、図33の処理S901に移行するが、保留モードに設定されている場合には(判断S801のYes)、図10の接続フェーズを行い、データ送受信フェーズにおいて保留動作を行う処理を(処理S802)、その保留処理が終了するか、つまり、図10の切断フェーズにより通信が終了すか、自処理が優先順位値が最小値となるまで行う(判断S803のNo、処理S804、判断S805、処理S806、判断807のNoのループ)。
処理S802の保留動作は、具体的には、「ただ今別の相手と通話中です。しばらくお待ちください。」との音声応答メッセージデータ(ROM3に予め記憶される)の相手装置への送信及びそれに続くメロディ音データの送出である。また、保留を示す音声応答メッセージやメロディ音は、カセットテープにアナログ信号として保存しておいて、送信時に再生してデジタルデータに変換するようにしてもよいが、デジタルデータ、特に、「通話」時にやりとりする音声データにおける符号化方式(例えば、G.711,G.722、G.723等)と同一の符号化方式で予め符号化しておくことが望ましい。あるいは、独自の高符号化効率の符号化方式で符号化・記憶しておいて、再生時に、相手装置に適合するデータ形式に変換して送信するようにして、記憶領域の節減を図るようにしてもよい。
処理S804の確認は、テーブル4bにおいてFbusyが1の、自処理を含む各通話制御処理についての優先順位値のうちの最小値が、自処理についての優先順位値であるかを確認するものであり、Fbusyが1なのが自処理のみの場合は、自処理についての優先順位値がそのまま最小値として評価される。
自処理の優先順位値(N)が最小値となるのは、自処理よりも優先順位値の高かった他の通話制御処理の全てにおいてFbusyが0にリセットされた時である。
処理S804の確認後、判断S807の間に、「通話参加」キー(N)が押下されたか否かを判断し(判断S805)、押下されていない場合には(判断S805のNo)、判断S807にそのまま進むが、押下された場合には(判断S805のYes)、テーブル4bにおける自処理の優先順位値を最小値(処理S804におけるのと同一定義)と同一値にした上で(処理S806)、判断S807に移行する。
判断S803において、終了した場合、つまり、保留中に発呼側の相手装置のユーザが待ち切れなくなって図10の切断フェーズを起動して通信が終了した場合には(判断S803のYes)、Fbusy(N)を0にリセットし(処理S808)、優先順位値(N)を0にリセットし(処理S809)、更に、相手端末IPアドレス及び相手端末ポート番号の自処理(に対応する通話管理番号)に対応した登録を削除した上で(処理S810)、図28の判断401に戻り、新規の発呼または着呼に応答可能な待機状態となる。
判断S807において、自処理の優先順位値が最小値となった場合、つまり、発呼元の相手側が、保留中で待っているときに、自処理が「通話」を行える状況になった場合、または、自処理に係る着呼がユーザによる「通話参加」キー(N)の押下により通話への参加が認められた場合には(判断S807のYes)、図29の処理S501に移行する。
図33の処理S901においては、図10の接続フェーズを行い、データ送受信フェーズにおいて伝言記録モードまたは保留モードのいずれか一方を選択させる処理を行い(処理S901)、その選択処理が無選択状態のまま終了した場合には(判断S902のYes)、Fbusy(N)を0にリセットし(処理S904)、優先順位値(N)を0にリセットし(処理S905)、更に、相手端末IPアドレス及び相手端末ポート番号の自処理(に対応する通話管理番号)に対応した登録を削除した上で(処理S905)、図28の判断401に戻り、新規の発呼または着呼に応答可能な待機状態となる。
処理S901における選択させる処理は、具体的には、「ただ今別の相手と通話中です。しばらくお待ち下さい。もし伝言がある場合は「1」を、保留にして待ちたい場合には「3」を押してください」との音声応答メッセージを相手装置に送信した後に、相手装置からの、「1(伝言)」または「3(保留)」に対応したDTMF信号の音声データの受信を一定時間待つ処理であり、一定時間まっても相手装置からの選択がない場合に判断S902がYesとなる。
処理S901の選択処理により、伝言記録モードが選択された場合には(判断S902のNo、判断S903のYes)、図31の判断S701に移行する。保留モードが選択された場合には(判断S902のNo、判断S903のNo)、図32の判断S801に移行する。
このうように、各通話制御処理(1)、(2)、(3)が相互にテーブル4bを介して情報のやりとりを行いつつ協調動作することで、いずかれの通話制御処理が特定の相手装置との間で発呼または着呼に係る「通話」中の時に、別の相手装置から着呼があっても、他の通話制御処理がその着呼を適切に処理して、所定の通話中着呼応答処理、具体的には、「通話中」通知、伝言記録、保留、及び、伝言記録または保留のいずれにするかを発呼元の相手側に選択させた上での伝言記録または保留を行えるため、発呼または着呼に係る通話中に自装置に発呼してきた相手装置に対して便宜を図ることができ、利便性の高いIP端末装置を実現することが可能となる。
また、「通話中」に「キャッチホン操作」があれば、着呼中の別の通信に切り換えて通話を行え、その切り換え後に、更に「キャッチホン操作」を行えば更に別の着呼中の通信、または、元の通話相手との通信に戻って「通話」を行えるため、さらに利便性を高めることができる。
また、ある通話チャンネルにおける「通話中」に別の通話チャンネルについて「通話参加」キーの押下操作があれば、対応する着呼中の相手先が、通話に参加でき、通話参加後、再び「通話参加」キーの押下操作があれば、対応する相手先からの着呼は元の「保留中」などの状態に戻るため、さらに利便性を高めることができる。
なお、各通話チャンネルのそれぞれについてハンドセット10と通話回路9のセットを用意しておき、ある通話チャンネルにおけるあるセットのハンドセット10と通話回路9を使用した「通話中」に別の通話チャンネルについて「通話参加」キーの押下操作が行われた場合に、当該別の通話チャンネルによる「通話」を別のセットのハンドセット10と通話回路9により行うようにしてもよい。その場合、2つのハンドセット10を一人のユーザが使用するようにしてもよいし、別々のユーザが使用するようにして、実質的に1台のIP電話装置100により、複数の相手装置側ユーザのそれぞれと、複数の自装置側ユーザのそれぞれとの個別の「通話」を行えるようにしてもよい。
その場合、通話回路9が複数のハンドセット10にそれぞれ対応したチャンネルのアナログのスピーカ出力及びマイク入力を備える一方、それら各チャンネルに対応した音声のデジタル/アナログ相互変換のための構成を備えれば、1つの通話回路9により、複数のハンドセット10に対応できるのはいうまでもないことである。
IP手段8についても同様のことが言え、複数の通話を同時に行うことによる伝送データ量の増大に対応するために、IP手段8を複数用意して各通信に対応するようにしてもよい。IP手段8の処理能力が十分高ければ、1つで複数の通信に対応するようにしてよい。
また、複数のハンドセット10のうちの1つまたは複数、あるいは全部を、通話回路9と無線のインターフェースを介して接続される、いわゆる「コードレス電話」として構成してもよい。その場合、「通話参加」キー群6bの押下操作や、「通話切換」キー6cの押下操作に相当する信号を各「コードレス電話」からIP電話装置100に送信できるようにして、各「コードレス電話」による個別の相手先との通話を行ったり、いわゆるキャッチホン機能や3者通話などのIP端末装置100の利便性の高い機能を、各「コードレス電話」から利用できるのはいうまでもない。
次に、図20に示した各処理手順のうちの、図31の処理S702の伝言記録処理により記録された伝言の音声データの再生するための処理である伝言記録再生処理手順について、図34に示す。
同図においは、再生指示操作があるまで待ち(判断S1001のNoのループ)、再生指示装置があると(判断S1001のYes)、図19に示した伝言記録管理テーブル4cを参照して、フラグFdが1の伝言管理番号があるかを確認し(処理S1002)、ない場合には(判断S1003のNo)、再生すべき伝言の音声データが1件も記憶されていないため、判断S1001に戻る。
判断S1003において、ある場合には(判断S1003のYes)、フラグFdが1のもののうちの1件を選択して、その選択した伝言の音声データを対応するRAM4の記憶アドレスから読み出して、音声再生回路11に与えて音声信号に変換させてスピーカ11aから可聴出力させて、ユーザに1件分の伝言メッセージを聞かせる(処理S104)。
その際に、テーブル4cにおいて対応する相手端末IPアドレスや相手端末ポート番号や、それらの相手端末関連の情報に対応して予め記憶していた相手先名称の文字列などを操作表示部6に表示して、誰からの伝言の再生であるかを分かりやすくしてもよい。
そのようにして1件分の再生処理が終了すると(判断S1005のYes)、図13に示したように、パラメータメモリ5の記憶領域5cに予め設定されている伝言再生完了通知フラグFtの値が、「通知する」を示す「1」か否(0)を判断し、「通知する(値1)」の場合には、その再生が終了した1件についてテーブル4cに登録されている相手端末IPアドレス及び相手端末ポート番号により特定される相手端末に発呼して、伝言再生完了通知を行う(処理S1008)。なお、相手端末を特定するための情報は相手端末IPアドレス及び相手端末ポート番号に限定されるものではなく、相手端末の電話番号、URLなどのその他の端末識別情報であってもよい。
その伝言再生完了通知は、具体的には、図10の通信シーケンスのデータ送受信フェーズにおいて、「いま伝言が再生されました」との音声データを送信することにより行う。それにより、伝言した相手装置側のユーザは、自分が残した伝言が相手に確かに聞かれたことを知り安心することができる。
また、処理S1008の伝言再生完了通知としては、例えば、相手端末IPアドレス及び相手端末ポート番号により特定される相手端末に対して、伝言再生完了通知用のUDP/IPパケットやTCP/IPパケットにより、伝言再生が完了した旨や、自端末のIPアドレス、名称文字列等の自端末識別情報を送信して、相手装置側において表示器に表示させるようにして、伝言した相手装置側のユーザが、自分が残した伝言が相手に確かに聞かれたことを無鳴動着信で知ることができるようにしてもよい。
判断S1007のNo、または、処理S1008の後は、テーブル4cにおいて、再生完了した伝言についてのフラグFdを0にリセットし(処理S1009)、RAM4上の対応するアドレスに記憶された伝言記録データを削除し(処理S1010)、対応して登録されて相手端末IPアドレス、相手端末ボード番号、伝言記録アドレスのその他の登録も削除して(処理S1011)、判断S1001に戻る。
以上の手順を繰り返すことで、テーブル4cに登録された1件または複数件の伝言は全て再生して確認することができる。
なお、テーブル4cの登録内容やその登録内容に対応して予め設定していた情報を操作表示部6にリスト表示するなどしてそのリストから所望の相手を選択させて、その選択された相手についての伝言を再生したり、再生しないまま削除したりするような対話的なユーザインターフェースを適用するようにしてもよい。
以上説明した、本発明を実施するための最良の形態においては、各着呼を相手端末からのパケットのIPアドレス及びポート番号により区別識別するようにしたが、各着呼の識別は、別の形態により行うこともできる。
つまり、図35に示すような自端末識別情報テーブル5d(パラメータメモリ5に記憶される)に、自装置を識別するための情報として使用できる、1つまたは複数の端末識別情報(端末識別情報Aなど)を予め設定あるいは登録しておく。
そして、ユーザによる操作表示部6からの設定操作などに応じて、対応する使用可否設定フラグFuを値を1(使用する)または0(使用しない)に設定しておく。
そのようにしてテーブル5dが予め設定された上で、複数の相手装置からの着呼を受けようとする場合、最初の(第1の)相手装置は、テーブル5dに登録された端末識別情報であって、対応するフラグFuが1にセットされているもののうちの1つを使用して発呼して通話のための通信路を確保する。第2の相手装置は、現在通話で使用している端末識別情報と異なる端末識別情報を使用して発呼して通信路を確保することにより、第1の相手装置と通話中に第2の相手装置と通話ができる。
このように各通話は端末識別情報によって区別することができるために、複数通話の同時通話を実現できる。また第2の相手装置が第1の相手装置が通話で使用している端末識別情報と同じ端末識別情報で発呼してきた場合には、前述したポート番号により各着呼を識別することで、音声データの記録または同時通話を実現できる。
その場合の端末識別情報とは、特定の端末を別の端末から区別するための情報であり、具体的には電話番号、URL、装置番号、装置名称、エイリアス、ユニークな名称またはそれらに対応した図形、文字等があり、場合によってはIPアドレス、MACアドレスである。その他には前記端末識別情報に対応づけられるものであり、例えば端末識別情報が電話番号である場合に、その電話番号の持ち主(名義人)の名前(名称)などであり、前記の端末識別情報に対して任意に定義される端末識別情報である。
その他に、以下の機能も有効である。
つまり、記憶した伝言の音声データを、これから外出する等のために予めユーザにより設定された転送先に転送する機能が考えられる。その場合転送先の設定は、電話番号、URLなどの各種端末識別情報により行う。それにより、伝言の音声を転送先の端末で再生して確認することができる。
また、通話中の着呼時の呼び出し音を、通話中の着呼ではない場合の呼び出し音と区別できるように、断続の周期などを互いに異ならせたり、メロディー音の種類を互いに異ならせたりして、自装置が別の相手装置との間で通話中に発呼してきた相手装置側のユーザに対して着信応答する前に、その発呼が着信側の自装置のユーザと結果的に通話できない可能性のある発呼であることを予感せさることにより、無駄な着信応答なしに、しばらく経ってから再発呼すべきことを相手装置側のユーザに悟らせることが可能となる。
また、通話中の着呼があると、「ただいま別の相手と通話中です。しばらく待ってから再発呼して下さい」などの応答メッセージを発呼元の相手装置に送信した後に自装置側から通信を切断してしまうことで通話中着呼応答を単純化することも考えられる。その場合、当該応答メッセージを送信した相手装置の端末識別情報を記憶しておいて、自装置において「別の相手」との通話が終了した時に、当該相手装置に対して、自装置における通話が終了した旨を通知用のTCP・UDP/IPパケットにより通知して、再発呼を促すようにすることも考えられる。また、当該相手装置についての端末識別情報を、自装置のユーザと通話したくて発呼してきたが通話できなかった相手先として自装置の表示器に表示するようにして、自装置のユーザによる折り返しの発呼を促すようにすることも考えられる。また、所定のキー操作により、当該相手装置に自動的に発呼するようにすることも考えられる。その自動発呼の際には、前の着呼時に得られた当該相手装置についての端末識別情報が参照される。
また、通話中の着呼におけるやりとりで相手装置から送信されてくる伝言の音声データを記録再生する伝言機能の他に、いわゆる留守番電話機能を備えてもよい。
つまり、これから席を外したり、外出しようとするユーザによる操作により「留守録」モードに設定された状態で、着呼があると、それに応答して「ただいま留守にしています。ピーという発信音が鳴ってから10秒間留守番メッセージを録音できます」などの所定の音声応答メッセージの相手装置への送信後に、ピーという発信音に相当する音声データのパケットを送信後に、相手装置から10秒間の間に受信される音声データをそのままの符号化された状態で所定の記憶手段としてのRAM4の空き領域に記憶する。その場合、受信音声データをいったん復号伸張したのち、独自の高符号化効率の符号化方式で符号化してからRAM4に記憶するようにして、記憶領域の節減を図るようにしてもよい。
その「留守録」モードにおいて複数の相手装置から同時に着呼した場合でも、各相手先装置からの留守番メッセージの記録に対応できるのは明らかである。つまり、図28ないし図33の通話制御処理(N)において、「留守録」モード中には、「通話処理」への移行を禁止すると共に、通話中着呼応答処理のモードの1つとして、「留守録」処理のモードを追加すればよい。「留守録」処理の処理内容は図31の処理S702の「伝言記録」処理と同等であり、再生や再生完了通知も、図34の伝言記録再生処理と同等の処理により行える。
また、「留守録」モードで記録された音声データを予め設定されていた転送先のメールアドレスに、MIME形式などによりメール送信して、転送先端末側で復号再生できるようにしたり、留守番メッセージが記録された旨を、着信時に得られた相手装置についての端末識別情報と共に転送先にメール送信して、転送先端末から相手装置に発呼できるようにするような、メール報知機能を備えていてもよい。
IP電話手段にさらに通常の加入回線の電話(いわゆるアナログ電話)または携帯電話手段またはPHS手段を備えたIP端末装置も考えられる。例えば、携帯電話手段をさらに備えたIP端末装置では、携帯電話の通信回線で通話中に、IP電話の通信回線から電話がかかってきた場合に、IP電話の相手の音声を記録することが出来る。その場合の動作は図28ないし図33に示した動作とほぼ同じである。
また自端末装置は盗聴などのセキュリティ対策のために、IPアドレスを定期的に変更するアドレス変更手段を持つことも考えられる。例を挙げると、IPアドレスの割り当てを要求するIPアドレス要求手段と、IPパケットを使用して通信を行うIPパケット通信手段とを備えたIP端末装置において、あらかじめ定められた規則に従って、前記IPアドレス要求手段が前記IPパケット通信手段を使用して新たなIPアドレスの割り当てを要求するIPアドレス変更要求手段を備えたことを特徴とするIP端末装置である。具体的には、ある一定の通信量(パケット量)を送受した場合に、変更を要求する。前の変更から一定時間経過したあとに要求する。IPパケットの送受信がある時間以上途切れた時に、変更を要求する。通信相手以外のIPアドレスを持った装置からアクセスがあった場合に要求する。DHCPサーバ装置にIPアドレス変更を要求する。自装置で持っている複数のIPアドレスを取り替える等である。
また、以上説明した実施の形態においては、IP電話を、その標準プロトコルとしてSIPを例にとって記載しているが、その他に標準プロトコルとしてH.323、HTTP、MEGACO等があり、また標準プロトコルではなく、その他のローカルのプロトコルでも本発明の実施は可能である。また端末装置としてはIP電話以外にIPテレビ電話、IP携帯電話、IP携帯端末装置、インターネットファックス等に代表されるIP端末装置に適用可能であり、その端末装置で使用される標準プロトコルあるいはローカルプロトコルにも適用できる。
また、以上説明した発明を実施するための最良の形態においては、3チャンネルの各通話制御処理が、それぞれ、図28ないし図33の処理手順を行うことにより、発呼及び着呼に係る通信中の2つまでの着呼に適切に対応できるようにしたが、図28ないし図33に示した通話制御処理は、2チャンネルのみ、または、4チャンネル以上に拡張可能な処理手順であることは明らかであり、本発明を適用するIP端末装置における処理能力、通信中の着呼の頻度、ユーザの所望するところ等に応じて、チャンネル数を2チャンネルのみまたは4チャンネル以上の任意のチャンネル数に設定できるのはいうまでもないことである。
また、通信制御手段及び通信中着呼処理手段の各手段は、CPU、ROM、RAMと若干のハードウェア(レジスタや論理回路等)によって構成されてもよいし、それぞれ専用のハードウェアで構成されてもよいものである。