(58)【調査した分野】(Int.Cl.,DB名)
SIP(Session Initiation Protocol)サーバを介して、複数のSIPクライアントが互いに通話処理を行う通話システムにおける通信方法であって、
前記SIPクライアントを一意的に識別するSIP URI(Uniform Resource Identifier)とユーザを一意的に識別するユーザ識別子とを関連付けて記憶するクライアント情報テーブルを保持する電話帳サーバを有し、
前記SIPサーバは、SIP URIと、前記SIPクライアントのIPアドレスとを関連付けて記憶するSIP−IP対応テーブルを保持し、
前記SIPクライアントから他のSIPクライアントに発信するとき、発信する前記SIPクライアントは、前記電話帳サーバに、前記他のSIPクライアントのユーザ識別子を送信し、前記電話帳サーバは、前記クライアント情報テーブルを検索して、送信されてきた前記他のSIPクライアントのユーザ識別子に対応するSIP URIを求めて、前記SIPクライアントに、送信されてきた前記他のSIPクライアントのユーザ識別子に対応するSIP URIを送信するステップと、
前記SIPクライアントは、前記電話帳サーバから送信されてきた前記SIP URIを、前記SIPサーバに送信するステップと、
前記SIPサーバは、前記SIP−IP対応テーブルを検索して、前記SIPクライアントから送信されてきた前記SIP URIに対応するIPアドレスを求めて、求められたIPアドレスにより、前記他のSIPクライアントに着信するステップと、を含み、
前記SIPクライアントと、前記他のSIPクライアントと、前記SIPサーバと、前記電話帳サーバとは、互いにネットワークにより接続され、IPプロトコルにより通信し、
前記他のSIPクライアントは、当該他のSIPクライアントからログインされたユーザのユーザ識別子と、当該他のSIPクライアントのSIP URIとを、前記電話帳サーバに送信し、前記SIPクライアントは、当該SIPクライアントからログインされたユーザのユーザ識別子と、当該SIPクライアントのSIP URIとを、前記電話帳サーバに送信し、
前記電話帳サーバは、送信されてきた前記他のSIPクライアントからログインされたユーザ識別子と、当該他のSIPクライアントのSIP URIとを対応付けて、前記クライアント情報テーブルに記憶し、送信されてきた前記SIPクライアントからログインされたユーザ識別子と、当該SIPクライアントのSIP URIとを対応付けて、前記クライアント情報テーブルに記憶し、
前記他のSIPクライアントは、当該他のSIPクライアントのSIP URIと当該他のSIPクライアントのIPアドレスを前記SIPサーバに送信し、前記SIPサーバは、送信されてきた当該SIP URIと当該IPアドレスとを対応付けて、前記SIP−IP対応テーブルに記憶し、前記SIPクライアントは、当該SIPクライアントのSIP URIと当該SIPクライアントのIPアドレスを前記SIPサーバに送信し、前記SIPサーバは、送信されてきた当該SIP URIと当該IPアドレスとを対応付けて、前記SIP−IP対応テーブルに記憶する、
ことを特徴とする通信方法。
【発明を実施するための形態】
【0019】
以下、本発明に係る一実施形態を、
図1ないし
図16を用いて説明する。
図1は、一実施形態に係る通話システムの構成図である。通話システムは、SIPサーバ100、電話帳サーバ200、アクセスポイント40、SIPクライアント300を有して構成される。SIPサーバ100、電話帳サーバ200は、各々データベースとして、SIP DB190、電話帳サーバDB290を有している。
【0020】
SIPサーバ100、電話帳サーバ200、アクセスポイント40は、各々ネットワーク60により接続されている。ここで、ネットワーク60は、インターネットのようなグローバル網でもよいし、ローカル網でもよいが、IPプロトコルがサポートされていることを前提とする。
【0021】
SIPクライアント300と、アクセスポイント40は、例えば、IEEE 802.11b, g, aのような伝送規格に則り、無線により通信する。また、CDMA2000、W−CDMA、LTE、モバイルWiMAXなどの移動体の通信規格により、SIPクライアント300が、基地局と通信する形態でもよい。
【0022】
SIPサーバ100は、SIPによりSIPクライアント300間の通話を仲介するサーバである。
【0023】
電話帳サーバ200は、ユーザのシステムへのログインを認証し、ユーザ情報を管理するサーバである。
【0024】
SIPクライアント300は、SIPにより通話の発信、着信を行う携帯端末である。本実施形態では、スマートフォンを例にとり説明するが、その他の携帯電話端末、PHS、タブレット、ノートパソコンなどSIPをサポートする携帯可能な端末であればよい。本実施形態のSIPクライアント300は、後に説明するように、システムにログインする機能と、電話帳により通話発信する機能を有する。
【0025】
次に、
図2を用いて一実施形態に係る通話システムの処理の概要について説明する。
ここで、SIPクライアント300が複数あり、SIPクライアント300a、SIPクライアント300bなどと表記するものとする。
【0026】
先ず、SIPクライアント300bを使用するBさん(USER ID=”userb”)がシステムにログインする(S1)。このとき、電話帳サーバ200に、USER ID、パスワード、SIP URIが送信される。USER ID、パスワードは、ユーザであるBさんが入力する。SIP URIは、SIPクライアント300bに固有に割り当てられた識別子である。
【0027】
電話帳サーバ200は、ログイン認証処理をおこない、電話帳サーバDB290の中のクライアント情報テーブルに、USER IDとSIP URIが関連付けて格納する。
【0028】
また、ログイン時に、SIPクライアント300bは、SIPサーバ100に対して、自身のSIP URIと、IPアドレスを送信する(S2)。SIPサーバ100は、SIP DB190の中のSIP−IP対応テーブルに、SIP URIと、IPアドレスを関連付けて格納する。
【0029】
ここで、SIPクライアント300aを使用するAさん(USER ID=”usera”)が、Bさんに発信する状態を想定する。
【0030】
SIPクライアント300は、電話帳機能を有し、各々の電話帳のエントリに対して、USER IDが格納されている。
【0031】
そこで、Aさんは、SIPクライアント300aに表示されたBさんのエントリを選択し、発信操作を行う。SIPクライアント300aは、USER IDをキーにして、電話帳サーバ200に対して問合せをおこない(S3)、電話帳サーバ200は、関連付けられたSIP URIを返答する(S4)。
【0032】
次に、SIPクライアント300aは、SIPサーバ100に対して、SIP URIをキーにして、発信メッセージを送信する(S5)。
【0033】
SIPサーバ100は、送信されたSIP URIと関連付けられたIPアドレスに対して、すなわち、SIPクライアント300bに対して、発信メッセージを転送する(S6)。
【0034】
着信したSIPクライアント300bは、SIPサーバ100より、発信元のSIPクライアント300aを知らされる。以降では、SIPクライアント300aとSIPクライアント300bは、お互いのIPアドレスによって、直接、RTP(Real-time Transport Protocol)により音声通話を行う(S7)。
【0035】
次に、
図3ないし
図5を用いて、通話システムの各部のハードウェア・ソフトウェアの詳細な構成について説明する。ここで、
図3は、SIPサーバのハードウェア・ソフトウェアを示す構成図である。
図4は、電話帳サーバのハードウェア・ソフトウェアを示す構成図である。
図5は、SIPクライアントのハードウェア・ソフトウェアを示す構成図である。
【0036】
図3に示されるように、SIPサーバ100は、CPU102、主記憶装置108、表示I/F104、入出力I/F106、ネットワークI/F110、補助記憶I/F112がバスにより接続して構成される。
【0037】
表示装置130には、稼動状況のモニタや出力結果が表示される。入出力I/F106には、キーボード120やマウス122などの入出力装置が接続され、管理者は、これらの入出力装置からコマンドなどを入力する。ネットワークI/F110には、LAN、WANなどのネットワーク60が接続され、このI/Fを介して外部の装置と通信を行う。補助記憶I/F112には、データやプログラムを格納するハードディスク装置160などの記憶装置が接続される。ハードディスク装置160は、アレイ上に接続されてディスクアレイを構成する場合もある。
【0038】
業務処理のアプリケーションプログラム、OSなどは、ハードディスク装置160に格納されており、実行されるときに主記憶装置108にロードされて、CPU102により実行される。
【0039】
特に、SIPサーバ100として実行されるプログラムとしては、SIP DB190にアクセスし、SIPに関する処理を行うSIP処理プログラム180と、TCP/IPに関する処理を行うTCP/IP処理プログラム182、電話帳サーバ200とやり取りするための電話帳サーバインタフェースプログラム184がある。また、ハードディスク装置160には、SIP DB190があり、データベースのテーブルとして、SIP−IP対応テーブル192を有する。
【0040】
図4に示されるように、電話帳サーバ200は、
図3に示したSIPサーバ100と同じような構成でよい。
特に、電話帳サーバ200として実行されるプログラムとしては、電話帳DB290にアクセスし、ユーザのログイン認証を行うユーザ管理プログラム280と、TCP/IPに関する処理を行うTCP/IP処理プログラム282、SIPサーバ100とやり取りするためのSIPサーバインタフェースプログラム284がある。
【0041】
また、ハードディスク装置260には、電話帳サーバDB290が格納されており、データベースのテーブルとして、アカウントテーブル292、クライアント情報テーブル294を有する。
【0042】
SIPクライアント300としては、
図5に示される構造を有するスマートフォンを利用することができる。
図5に示されるように、SIPクライアント300は、アプリケーションプロセッサ302、ベースバンドプロセッサ304、無線LANI/F306、表示I/F308、外部I/F310、主記憶装置312、フラッシュメモリ314、オーディオI/F316がバスにより結合された形態になっている。
【0043】
アプリケーションプロセッサ302は、スマートフォンの各部を制御し、主記憶装置312に必要なプログラムをロードして実行する。
ベースバンドプロセッサ304は、デジタルデータをベースバンド信号に載せて送信する処理、また、逆に、高周波信号からデジタル信号を取り出す処理をするプロセッサである。
【0044】
主記憶装置312は、通常、RAMなどの揮発メモリで構成され、アプリケーションプロセッサ302が実行するプログラム、参照するデータが記憶される。
ネットワークI/F306は、ネットワーク60と接続するためのインタフェースである。
外部I/Fは、外部装置として、タッチパネル330やUSB機器340を接続するためのインタフェースである。
【0045】
表示I/F308は、LCD(Liquid Crystal Display)320などの表示装置を接続するためのインタフェースである。
フラッシュメモリ314は、補助記憶として機能するメモリであり、通常、主記憶装置312より大容量である。
【0046】
フラッシュメモリ314には、SIPクライアントとして実行されるプログラムとして、SIPサーバ100にアクセスし、SIPに関する処理を行うSIP処理プログラム380と、電話帳に関する処理を行う電話帳処理プログラム382、他のSIPクライアントと音声通話を行うためのストリーミング処理を行う通話プログラム384と、電話帳に関するデータが格納される電話帳テーブル386を有する。
【0047】
オーディオI/F316は、スピーカ350やヘッドフォン、イヤフォンなどの音声出力機器、マイク352などの音声入力機器を接続するためのインタフェースである。
【0048】
次に、
図6ないし
図8を用いて、通話システムのデータ構造について説明する。ここで、
図6は、SIP−IP対応テーブルを示す図である。
図7は、アカウントテーブルを示す図である。
図8は、クライアント情報テーブルを示す図である。
図9は、電話帳テーブルを示す図である。
【0049】
図6に示されるように、SIP−IP対応テーブル192は、SIPクライアント300のSIP URIとIPアドレスを関連付けたレコードを格納するテーブルであり、SIPサーバ100のSIP DB190に格納される。図の例では、例えば、あるSIPクライアント300では、SIP URI:usera@yy.ne.jp、IPアドレス:192.168.1.10の状態で使用されていることを示している。
【0050】
図7に示されるように、アカウントテーブル292は、システムのユーザのアカウント情報を格納するためのテーブルであり、USER ID、PASSWORD、ユーザ名、所属などの情報が記憶される。このアカウントテーブル292は、電話帳サーバDB290に格納される。図の例では、ユーザ名がAさんである人は、所属が総務部であり、USER ID:usera、PASSWORD:xy124zであることを示している。
【0051】
クライアント情報テーブル294は、現在のSIPクライアント300の情報を格納するためのテーブルであり、あるSIPクライアントにおけるUSER ID、SIP URI、クライアント状態が記憶される。このクライアント情報テーブル294も、電話帳サーバDB290に格納される。
【0052】
この項目の内で、USER ID、SIP URIは、USER IDに示されるユーザが、SIP URIのSIPクライアントでログイン中であることを示している。そして、ユーザがログアウトすると、このテーブルのエントリから削除される。クライアント状態は、そのログインしているユーザが、通話中であるか、待受け中(通話をしておらず、着信できる状態)であるかを示す項目である。図示の例では、USER ID:useraのユーザが、SIP URI:usera@yy.ne.jpのクライアントを使用して、ログイン中であり、しかも、通話中であることを示している。
【0053】
電話帳テーブル386は、SIPクライアント300から電話帳を表示して、利用するために必要な情報を格納するためのテーブルであり、電話をかける相手のUSER ID、ユーザ名、所属、クライアント状態が記憶される。この電話帳テーブル386は、SIPクライアント300のメモリ中(例えば、
図5のフラッシュメモリ314中)に格納される。
【0054】
この項目の内で、クライアント状態は、電話をかける相手が、ログインしているか、ログアウトしているか、通話中であるか、待受け中であるかを示す項目である。図の例では、ユーザ名がAさんである人は、所属が総務部であり、USER ID:usera、現在の状態は、ログイン中であり、待受け中であることを示している。
【0055】
次に、
図10Aないし
図16を用いて、通話システムにおける処理について説明する。ここで、
図10A、
図10Bは、通話システムにおける処理を示すシーケンス図である。
図11は、SIPクライアントにおいて、電話帳テーブルを設定する処理を示すフローチャートである。
図12は、電話帳サーバにおいて、クライアント情報テーブルを検索し、クライアント状態を返答する処理を示すフローチャートである。
図13は、SIPクライアントにおけるログイン画面を示す図である。
図14は、SIPクライアントにおけるポータル画面を示す図である。
図15は、SIPクライアントにおける電話帳画面を示す図である。
図16は、SIPクライアントにおける通話呼出し画面を示す図である。
【0056】
図10A及び
図10Bを参照するに、Aさん(USER ID:usera)の使うSIPクライアント300aから、発信し、Bさん(USER ID:userb)の使うSIPクライアント300bに着信して通話を開始する状況を想定する。また、SIPクライアント300は、SIPサーバ100、電話帳サーバ200のIPアドレスを、知っているものとする。なお、両者のIPアドレスは、ドメインネームにより、DNSサーバに問い合わせて得る仕組みにしてもよい。
【0057】
先ず、Bさんは、SIPクライアント300bから、ログインする(A10)。すなわち、
図13に示したログイン画面において、ユーザID欄402に、自分のUSER IDであるuserbを入力し、パスワード欄404に、パスワードの65abc1を入力する。これにより、SIPクライアント300bは、入力されたUSER ID、PASSWORD、自分のSIP URIを電話帳サーバ200に送信する。
【0058】
電話帳サーバ200は、これを受け、送信されてくるUSER ID、PASSWORDが、アカウントテーブルに存在するか調べて(SQ200)、存在するときには、ログインを許可する(A12)。
【0059】
そして、クライアント情報テーブル294に、USER ID:userb、SIP URI:userb@yy.ne.jp、クライアント状態:待受け中のレコードを追加する(SQ202)。
【0060】
また、SIPクライアント300bは、ログインと同時に、SIPサーバ100に、自分のSIP URIと、IPアドレスを送信する(A14)。
【0061】
SIPサーバ100は、SIP−IPテーブル192に送られてきたSIP URIと、IPアドレスを、クライアント情報テーブル294に記憶する(SQ100)。
【0062】
図では示さなかったが、SIPクライアント300aは、Aさん(USER ID:usera)が既にログインしているものとする。
【0063】
ここで、Aさんは、
図14に示すポータル画面から電話帳ボタン502を、タップするなどして選択する。
【0064】
SIPクライアント300aは、電話帳を表示するため、電話帳テーブル386のデータを更新する必要があるので、先ず、SIPクライアント300aは、クライアント状態を電話帳サーバ200に問い合わせる(A20)。
【0065】
そして、電話帳サーバ200は、問い合わせを受けたユーザのSIPクライアント300の状態を検索し(SQ204)、SIPクライアント300aに返答する(A22)。
【0066】
SIPクライアント300aは、各々のエントリごとのクライアント状態を更新し(SQ300)、それに基づき、
図15の電話帳画面600を表示する(SQ302)。
【0067】
なお、SQ204とSQ300の処理は、後に詳説する。
【0068】
次に、Aさんは、電話帳画面600のBさんのエントリ602をタップすることにより、Bさんに対して発信する。電話帳画面600の状態表示欄604には、相手がログイン通話中、ログイン待受中、ログアウトのいずれかが表示されており、ログイン待受中のときのみ発信が可能である。
【0069】
この電話帳画面600は、一定時間ごとに、SIPクライアント300aから電話帳サーバ200にポーリングして、電話帳テーブル386を書き換え、それに基づいて再表示する必要がある。
【0070】
SIPクライアント300aは、電話帳サーバ200に対して、USER IDをキーにして、対応するSIP URIを問い合わせる(A30)。
【0071】
電話帳サーバ200は、クライアント情報テーブル294の中から送信されてくるUSER IDに対応するSIP URIを検索し(SQ206)、SIPクライアント300aに返答する(A32)。
【0072】
SIPクライアント300aは、返答されたSIP URIによって、SIPサーバ100に発信処理を依頼する(A34)。
【0073】
このとき、SIPクライアント300aは、
図16に示した呼出画面700が表示されている。呼出画面700には、呼び出した人のユーザ名表示702、状態表示704がある。Aさんは、呼出キャンセルボタン706により、Bさんへの呼び出しをキャンセルすることも可能である。
【0074】
SIPサーバ100は、SIP−IP対応テーブルの中から送信されてくるSIP URIに対応するIPアドレスを検索し(SQ102)、対応するIPアドレス(192.168.1.12)を持つクライアント300bに着信する(A36)。このとき、SIPサーバ100は、発信側のSIPクライアント300aのIPアドレス(192.168.1.10)を送信する。
【0075】
また、SIPサーバ100は、電話帳サーバ200に対して、クライアント状態の報告をし(A38)、これにより、SIPクライアント300aと、SIPクライアント300bの対応するエントリのクライアント状態は、通話中に書き換えられる(SQ208)。
【0076】
以降では、SIPクライアント300aとSIPクライアント300bは、お互いのIPアドレスによって、直接、RTPにより音声通話を行う(A40)。
【0077】
通話が終了すると、SIPクライアント300aから、電話帳サーバ200に報告をする(A50)。
【0078】
これにより、SIPクライアント300aと、SIPクライアント300bの対応するエントリのクライアント状態は、待受け中に書き換えられる(SQ210)。
【0079】
そして、Bさんが、ログアウトしたときには(A60)、Bさんのエントリ(USER ID:userb)を削除する(SQ212)。
【0080】
次に、
図11により、SQ300のSIPクライアント300における電話帳テーブル設定の処理について説明する。
【0081】
先ず、電話帳テーブルのエントリを読み出し(S100)、電話帳テーブルにエントリがないときは、終了し、あるときには、次のS102に行く(S102)。
【0082】
次に、対応するUSER IDにより、電話中サーバ200に問い合わせる(S104)。
【0083】
次に、電話中サーバ200から返答されたクライアント状態を電話中テーブルにセットし(S106)、S100に戻る。
【0084】
次に、
図11により、SQ300のSIPクライアント300における電話帳テーブル設定の処理について詳細に説明する。
先ず、電話帳テーブル386の次のエントリを読み出し(S100)、電話帳テーブルにエントリがないときは、終了し、あるときには、次のS102に行く(S102)。電話帳テーブル386にエントリがあるときには、対応するUSER IDにより、電話中サーバ200に問い合わせる(S104)。
次に、電話中サーバ200から返答されたクライアント状態を電話帳テーブル386にセットし(S106)、S100に戻る。
【0085】
次に、
図12により、SQ204の電話帳サーバ200におけるクライアント情報テーブル検索の処理について詳細に説明する。
先ず、クライアント情報テーブル294の次のエントリを読み出し(S200)、クライアント情報テーブル294にエントリがないときは、返答をログアウトに設定し(S206)、処理を終了する。
【0086】
クライアント情報テーブル294にエントリがあるときには、問合せのUSER IDとクライアント情報テーブル294のUSER IDを調べて(S206)、両者が一致するときには、クライアント情報テーブル294の中の対応するクライアント状態により、返答として、ログイン通話中、ログイン待受け中のいずれかを返答して(S208)、処理を終了する。両者が一致しないときには、S200に戻る。
【0087】
以上、説明したように、スマートフォンなどのSIPクライアントが複数あり、それを使うユーザが可変の場合であっても、電話帳サーバがその各々のクライアントの状態を保持しているため、システムのユーザは、相手のSIP URIを意識することなく、ユーザ識別子により、簡単に発信でき、スマートフォンなどのSIPクライアントを複数人で共有して使用することができる。具体的には、発信時には、電話帳を表示して、発信する相手を選択するだけでよく、使い勝手がよくなる。
また、電話帳に相手のログイン状態、通話状態が表示されるため、発信時に便利で分かりやすいユーザインタフェースが提供される。