通信装置および通信方法
【課題】簡単な手続きにより通話していた相手との間でデータ通信を開始する。
【解決手段】携帯電話100は、マッチングサーバに他の携帯電話100とデータを交わすために開設されたルームをアクセスすることにより、他の携帯電話100とデータ通信する端末通信部1061と、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部103と、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするためのTEL用通話部102と、P2P通信の要求を入力するために操作されるP2Pボタンと、記憶部103から読出した識別情報に基づきルーム名を生成するルーム名生成部1072とを備える。動作において、P2P通信要求を入力したことに応答して、ルーム名に基づきマッチングサーバに開設されるルームを検索し、検索によって特定されたルームを端末通信部1061によりアクセスする。
【解決手段】携帯電話100は、マッチングサーバに他の携帯電話100とデータを交わすために開設されたルームをアクセスすることにより、他の携帯電話100とデータ通信する端末通信部1061と、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部103と、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするためのTEL用通話部102と、P2P通信の要求を入力するために操作されるP2Pボタンと、記憶部103から読出した識別情報に基づきルーム名を生成するルーム名生成部1072とを備える。動作において、P2P通信要求を入力したことに応答して、ルーム名に基づきマッチングサーバに開設されるルームを検索し、検索によって特定されたルームを端末通信部1061によりアクセスする。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は通信装置および通信方法に関し、特に、通話機能を備える通信装置および通信方法に関する。
【背景技術】
【0002】
近年、携帯電話機の普及により、様々な場所で携帯電話機を利用する機会が増えている。それに伴い、公共の場所で携帯電話機を利用する場合の使用者のマナーや、会話内容の漏洩が社会問題となっている。
【0003】
特に、人の多い街中で携帯電話機を使って通話する場合、自然と声が大きくなり、周囲への迷惑となるばかりでなく、個人情報の流出につながるおそれがある。また、使用環境や場所によっては、周辺の騒音によって音声が聞き取りにくい場合、あるいは話すのを躊躇する場合がある。
【0004】
このような場合には、通話からデータ通信に切換えれば、コミュニケーションを継続することができる。データ通信としては、たとえば電子メールやチャットシステムがある。
【0005】
電話機能とデータ通信機能の切り換えや、通話中に行なわれるデータ通信に関して、特許文献1(特開2008−109595号公報)では、端末から受信した音声データに基づいて、周辺環境の騒音レベルを測定し、騒音レベルに応じて音声通話からテキスト通話(チャット)に切換える。
【0006】
また、特許文献2(特開2001−127899号公報)では、通話中に入力された音声以外の情報(たとえば、カメラで撮影された画像データ)を、通話後、その通話相手にメールに添付して送信する。
【0007】
また、特許文献3(特開2002−330234号公報)では、電話の着信時または発信時に、その通話相手の電話番号をメールシステムに通知し、メールシステムでは、通知された電話番号に対応するメールアドレスをアドレス帳から検索して、検索したメールアドレスを電子メールの宛先欄に自動挿入する。
【0008】
また、特許文献4(特開2002−132694号公報)には、チャットしたい相手方の電話番号をサーバに通知してチャット要求すれば、サーバはそれに応じて相手方の端末にチャット依頼を送信するチャットシステムが開示される。
【特許文献1】特開2008−109595号公報
【特許文献2】特開2001−127899号公報
【特許文献3】特開2002−330234号公報
【特許文献4】特開2002−132694号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
通話機能からデータ通信機能に切換えて、コミュニケーションを継続する上で、特許文献1による、周辺環境の騒音レベルに応じた音声通話かテキスト通話かの自動選択は、利用シーンに応じて細かに制御されなければならない。
【0010】
つまり、図書館に居る(周辺環境の雑音レベルが低い)ときは、話し手側はテキスト通信が選択されるべきであるが、聞き手側はスピーカから出力される音量が小さければ、音声通話でも構わないはずである。また、道路工事現場の周辺に居る(周辺環境の雑音レベルが高い)ときは、話し手側は音声通話でも構わないが、聞き手側はテキスト通信が選択されるべきである。したがって、通話のように聞き手側・話し手側が常に入れ替わり得る、コミュニケーションツール(機能)としては、使い勝手の悪いシステムに成り得る。
【0011】
また、騒音レベルにのみ応じて、音声通話からテキスト通信に自動切換えされると、歩行中の通話が一方的にテキスト通信に切換わることもあり、歩きながらの文字入力は困難であることに鑑みると、特許文献1のシステムは利便性に優れない。
【0012】
通話機能からデータ通信機能に切換えて、コミュニケーションを継続する上で、特許文献3では、メールシステムを前提としていることから、以下の点が問題となる。
【0013】
メールシステムでは、複数文字列から成るメッセージ単位(送信操作までに入力された文字列単位)でのメッセージ交換であることから、電話(声によるコミュニケーション)時の、リアルタイムなコミュニケーションが維持できない。
【0014】
そこで、通話機能から切換えるデータ通信機能としては、チャットシステムとする方が好ましいが、従来のチャットシステムでは、特許文献4の「発明が解決しようとする課題」欄に記載されているとおり、互いに、所定のチャットルームへ入室する操作が必要となる。すなわち、電話(通話機能稼動)中に、たとえば、「一旦電話を切って、○○というチャットルームに入室しよう!」というメッセージにより相手の意思を確認するネゴシエーションのための特別な操作および通信が必要であり、また、このチャットルームに入室するための操作が必要となる。
【0015】
特許文献4では、電話(通話機能稼動)時のいずれの端末側がサーバに通知するかの取り決めがない。そのため、両方の端末がサーバに通知するとした場合には、サーバからのチャット依頼に対して、両方端末が依頼を不許可とするケース、すなわち、互いにチャットができない状況に陥るケースが生じる。
【0016】
また、特許文献4のシステムでは、電話番号をチャットシステムを利用する上で必要な情報(たとえば、IP(Internet Protocol)アドレス)に変換するための機構が必要となる。この場合には、変換のために参照される個人情報をサーバで管理する必要があるために、サーバ運用事業者は利用者からの信頼性が高い事業者に限定される。また、端末は、サーバから「チャット依頼」情報を受信するために常時、インターネットに接続される必要があるが、端末同士は1度、チャットシステム(たとえばP2P(peer to peer)通信)のためのIPアドレス情報を交換すればよく、サーバを経由する必要はない。
【0017】
したがって、特許文献4は、特定者(知人、直前まで電話で通話していた相手)との間での接続には不向きなシステムと言える。
【0018】
それゆえに、この発明の目的は、簡単な手続きにより通話していた相手との間でデータ通信を開始することができる通信装置を提供することである。
【課題を解決するための手段】
【0019】
この発明のある局面に従うと、無線電話網およびデータ通信網を接続する通信装置は、データ通信網のサーバ装置に他の通信装置とデータを交わすために開設されたルームをアクセスすることにより、他の通信装置とデータ通信するデータ通信部と、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部と、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするための通話部と、データ通信の要求を入力するために操作される通信要求部と、記憶部から読出した識別情報に基づきルームを識別するためのルーム識別子を生成する識別子生成部と、通信制御部とを備え、通信制御部は、通信要求部が前記要求を入力したことに応答して、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする。
【0020】
好ましくは、通信制御部は、検索によって、ルーム識別子に対応するルームが、サーバ装置において開設されていることを検出した場合には、ルームを前記データ通信部によりアクセスし、検索によって、ルーム識別子に対応するルームが、サーバ装置において未開設であることを検出した場合には、当該ルームの開設をサーバ装置に対して要求し、且つ当該ルームに他の通信装置がアクセスするのを待機する。
【0021】
好ましくは、通信制御部は、他の通信装置と通話の最中に、通話の中断が指示されたことに応答して、通話を中断し、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする通信切換部を含む。
【0022】
好ましくは、通信要求部によって要求が入力されたことに応答して、通話の回線を切断する切断信号を送信する切断信号送信部とを、さらに備え、通信切換部は、通信要求部によって要求が入力されたとき、または、他の通信装置から切断信号を受信したとき、通話の中断が指示される。
【0023】
この発明の他の局面に従うと、無線電話網およびデータ通信網を接続する通信装置における通信方法では、通信装置は、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部を備える。そして、通信方法は、データ通信網のサーバ装置に他の通信装置とデータを交わすために開設されたルームをアクセスすることにより、他の通信装置とデータ通信するステップと、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするステップと、データ通信の要求を入力するステップと、記憶部から読出した識別情報に基づきルームを識別するためのルーム識別子を生成するステップと、通信制御ステップとを備える。
【0024】
通信制御ステップでは、前述の要求を入力したことに応答して、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする。
【0025】
この発明の更に他の局面に従うと、上述に記載の通信方法をコンピュータに実行させるための通信プログラムが提供される。
【発明の効果】
【0026】
本発明によれば、通信要求部を操作してデータ通信の要求を入力するという簡単操作をするだけで、通話していた相手通信装置の識別情報と自己の通信装置の識別情報とで生成されたルーム識別子によって一意に特定されるルームを介して、通話していた相手通信装置との間でデータ通信するための通信網を形成することができる。
【発明を実施するための最良の形態】
【0027】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0028】
また、以下では、携帯電話100を「通信端末」の代表例として説明を行う。ただし、通信端末は、パーソナルコンピュータや、カーナビゲーション装置(Satellite navigation system)や、PND(Personal Navigation Device)や、PDA(Personal Data Assistance)などのような、他の情報通信機器であってもよい。
【0029】
<チャットルームに関する説明>
本実施の形態では、‘チャット’とは、後述のインターネット500またはキャリア網700を介したオンラインサービスによりリアルタイムに通信端末同士がメッセージをやり取りするような通信を指す。たとえば、メールサーバは介さないIPアドレスを用いたP2P通信、またはメールサーバ経由の電子メール交換であってもよい。また、チャットは、1対1の通信端末同士のチャットを指す。
【0030】
また、チャットルーム(以下、単にルームと略す)は、一般的には、テーマ・話題毎にデータ交換するために開設されて端末によりアクセスされる。本実施の形態では、通信端末において生成されるルームID(identifier)であるルーム名毎に開設される。本実施の形態では、‘ルーム’とは、当該ルームのルーム名に対応して、チャットのためのデータ通信(データ交換)を要求するユーザの識別情報を、すなわちユーザの通信端末の識別情報を相互に関係付けるための情報を指す。この通信端末の識別情報は、各通信端末を一意に識別するための情報であって、本実施の形態では各通信端末に割当されたIPアドレスとしている。
【0031】
したがって、本実施の形態では、‘ルームの開設’とは、ルームの生成に相当する。具体的には、所定記憶領域に新規にルーム名を格納するとともに、このルーム名に対応してルームの生成を要求したユーザの通信端末の識別情報を格納する動作に相当する。
【0032】
また、‘ルームへの参加’とは、所定記憶領域に既に格納されたルーム名に対応してチャットを要求するユーザの通信端末の識別情報を格納するともに、当該ユーザに対して他のユーザの通信端末の識別情報を配信する動作に相当する。
【0033】
また、‘ルームの削除’とは、削除するべきルームのルーム名を、所定記憶領域から削除するための動作を指す。
【0034】
上述の削除の処理は、所定域億領域から当該情報を実際に消去する処理でもよく、または、格納された当該情報を所定記憶領域から読出不可能な状態に設定する処理であってもよい。
【0035】
<ネットワークシステム1の全体構成>
図1を参照して、本実施の形態に係るネットワークシステム1は、携帯電話100A,100Bおよび100Cと、マッチングサーバ(第1のサーバ装置)400と、メールサーバ(第2のサーバ装置)600と、インターネット(第1のネットワーク)500と、キャリア網(第2のネットワーク)700とを含む。また、本実施の形態に係るネットワークシステム1は、車両250に搭載されるカーナビゲーション装置200と、パーソナルコンピュータ(PC;Personal Computer)300とを含む。
【0036】
なお、説明の容易化のために、以下では、本実施の形態に係るネットワークシステム1が、第1の携帯電話100Aと、第2の携帯電話100Bと、第3の携帯電話100Cとを含む場合について説明する。また、携帯電話100A,100B,100Cの各々に共通の構成や機能を説明する際には、それらを携帯電話100とも総称する。そして、携帯電話100A,100B,100C、カーナビゲーション装置200、パーソナルコンピュータ300の各々に共通の構成や機能を説明する際には、それらを通信端末とも総称する。
【0037】
携帯電話100は、キャリア網700に接続可能に構成されている。カーナビゲーション装置200は、インターネット500に接続可能に構成されている。パーソナルコンピュータ300は、LAN(Local Area Network)350やWAN(Wide Area Network
)を介してインターネット500に接続可能に構成されている。マッチングサーバ400は、インターネット500に接続可能に構成されている。メールサーバ600は、インターネット500およびキャリア網700に接続可能に構成されている。
【0038】
より詳細には、第1の携帯電話100Aと、第2の携帯電話100Bと、第3の携帯電話100Cと、カーナビゲーション装置200と、パーソナルコンピュータ300とは、キャリア網700やメールサーバ600やインターネット500を介して互いに接続可能であって、互いにデータの送受信が可能である。また、携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300には、自端末を特定するための識別情報(たとえば、メールアドレスやIP(Internet Protocol)アドレスなど)が割当てられる。すなわち、携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300は、内部の記録媒体に他の通信端末の識別情報を記憶することができ、当該識別情報に基づいてキャリア網700やインターネット500などを介して当該他の通信端末とデータ送受信を行うことができる。
【0039】
なお、本実施の形態に係る携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300とは、割当てられるIPアドレスを利用して、メールサーバ600を介さずに他の通信端末とデータ送受信を行うものである。ここでは、各通信端末がマッチングサーバ400にアクセスする際には、すなわち各通信端末がインターネットにアクセスした際に、マッチングサーバ400あるいは他の図示しないサーバ装置などによってIPアドレスが割当てられるものとする。IPアドレスの割当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
【0040】
また、本実施の形態に係る携帯電話100、カーナビゲーション装置200、パーソナルコンピュータ300は、自身に割当てられたIPアドレスを利用することにより、直接的に相互にネットワークを介してデータ送受信を行うことが可能である。すなわち、本実施の形態に係るネットワークシステム1に含まれる携帯電話100、カーナビゲーション装置200、パーソナルコンピュータ300は、いわゆるP2P(Peer to Peer)通信のネットワークを構成することが可能である。
【0041】
<携帯電話100のハードウェア構成>
本実施の形態に係る携帯電話100のハードウェア構成について説明する。図2は、本施の形態に係る携帯電話100の概観を示すイメージ図である。図3は、本施の形態に係る携帯電話100のハードウェア構成を示すブロック図である。
【0042】
図2および図3に示すように、本実施の形態に係る携帯電話100は、外部のネットワークとの間でデータを送受信する他の通信部101と、TEL(Telephone)用通信部102と、プログラムや各種データベースを記憶する記憶部103と、CPU(Central Processing Unit)106Aを備えた制御部106と、ディスプレイ107と、外部から音声を入力するためのマイク108と、音声を外部に出力するためのスピーカ109と、各種情報の入力を受付ける入力部110と、電話および電子メールの着信をベルによる音や振動(バイブレーション)で報知するための第1の通知部111と、電話および電子メールの着信を光源(たとえば、LED(Light Emitting Diode))の発光で報知するための第2の通知部112とを含む。
【0043】
本実施の形態に係るディスプレイ107は、液晶パネルやCRT(Cathode Ray Tube)から構成されるタッチパネルである。すなわち、本実施の形態に係る携帯電話100は、ディスプレイ107の下側(裏側)にタブレット119が敷設されている。ユーザはスタイラスペン120を用いてディスプレイ107上に文字・記号・図形などを描画すると、描画による軌跡を示す座標データがタブレット119を介して検出されて制御部106に与えられる。これにより、スタイラスペン120を操作して手書き入力した文字・記号・図形の情報を制御部106に入力することができる。ディスプレイ107は、制御部106が出力した情報に基づいて、手書き入力された画像やテキストを表示する。
【0044】
入力部110は、スイッチ・キー・ボタンなどを備え、ユーザがスイッチ・キー・ボタンを操作することによって入力した情報を受付ける。たとえば、入力部110は、通話を受付けたり、通話を発したりするために操作されるTELボタン110Aと、メールを受付けたり、メールを発したりするために操作されるメールボタン110Bと、P2P通信を受付けたり、P2P通信を発したりするために操作されるP2Pボタン110Cと、アドレス帳データを参照するために操作されるアドレス帳ボタン110Dと、各種の処理を終了させるために操作される終了ボタン110Eとを含む。
【0045】
第1の通知部111は、スピーカ109などを介して着信音(たとえばベル音)を出力する。あるいは、第1の通知部111は、バイブレーション機能を有する。第1の通知部111は、着呼に応じて、またはメール受信に応じて、音声を出力したり、携帯電話100を振動させたりする。
【0046】
第2の通知部112は、着呼に応じて点滅するTEL用LED112Aと、メールを受信したときに点滅するメール用LED112Bと、P2P通信に従う信号を受信したときに点滅するP2P用LED112Cを含む。
【0047】
制御部106は、CPU106Aを含むマイクロコンピュータによって実現され、携帯電話100の各部を制御する。たとえば、入力部110を介してユーザから各種の命令を受付けて、他の通信部101やTEL用通信部102やネットワークを介して外部の通信端末とデータの送受信を行う。
【0048】
他の通信部101およびTEL用通信部102は、無線通信機能を有し無線通信を行なう。具体的には、制御部106からの通信データを通信信号に変換し、その通信信号を図示しないアンテナを介して発信する。他の通信部101およびTEL用通信部102は、アンテナを介して受信した通信信号を通信データに変換し、その通信データを制御部106に入力する。
【0049】
記憶部103は、作業用メモリとして機能するRAM(Random Access Memory)や、制御プログラムなどを格納するROM(Read Only Memory)や、画像データなどを記憶するハードディスクなどによって実現される。図4は、記憶部103に格納されるアドレス帳データを示す図である。図5は、記憶部103に格納される自端末データを示す図である。
【0050】
図3に示すように、記憶部103のワークメモリ103Aには、通話をした相手の電話番号を指示する変数HISTELNO、選択されたアドレスのメモリNoを指示する変数SEL、生成されたルーム名を指示する変数RMNMが格納される。
【0051】
図3の記憶部103は、さらに、アドレス帳データAdrDB[]が格納される記憶領域103B、携帯電話100(自端末)に関する自端末データMyAdrが格納される記憶領域103C、他端末のIPアドレスデータHIS_IPADRを格納する記憶領域103D、自端末のIPアドレスデータMY_IPADRを格納する記憶領域103E、およびマッチングサーバ400のアドレスデータSEV_ADRを格納する記憶領域103F含む。
【0052】
上述したデータが格納される記憶部103の領域は、携帯電話100の電源がOFFされても記憶内容が消去しないメモリ、たとえばフラッシュメモリからなる。
【0053】
図4を参照して、記憶領域103Bのアドレス帳データAdrDB[]は、宛先(他の通信端末)毎に個別にメモリNoを指すデータ1031、ならびに宛先の名前、通話において相手端末を一意に識別するための電話番号およびデータ通信において相手端末を一意に識別するためのメールアドレスを指すデータ1032、1033および1034対応付けて含む。
【0054】
図5を参照して、記憶領域103Cの自端末データMyAdrは、自端末のユーザの名前、自端末を一意に識別するための電話番号およびメールアドレスを指すデータ1035、1036および1037を含む。
【0055】
<携帯電話100の機能構成>
図6を参照して、本実施の形態に係る携帯電話100のCPU106Aは、端末通信部1061、フレーム解析部1062、フレーム生成部1063、入力受付部1064、通知処理部1065、TEL発呼部1067を含む発呼部1066、第1−P2P処理部1069、第2−P2P処理部1070およびルームアクセス部1071を備える。これらの各部の機能は予めプログラム・データとして記憶部103の所定記憶領域に格納されており、CPU106Aがこれらプログラム・データを記憶部103から読出し、実行することにより、各部の機能が実現される。
【0056】
図6においては、CPU106Aが有する各機能とデータ・情報を入出力する周辺回路部のみが示される。
【0057】
端末通信部1061は、電話による通信を制御するためのTEL用通信部102、サーバとの通信を制御するサーバ通信部1081およびIPアドレスを用いたP2P通信を制御するためのP2P通信部1082を含む。
【0058】
フレーム解析部1062は、端末通信部1061によって受信されたフレームを入力し、入力したフレームのデータを解析し、解析結果を出力する。フレーム生成部1063は、端末通信部1061を介して外部ネットワークに送信するべきフレームを生成する。入力受付部1064は、タブレット119および入力部110から入力されたデータを受付ける。通知処理部1065は、第1および第2の通知部111および112の出力動作を制御する。
【0059】
携帯電話100の発呼動作はTEL発呼部1067により制御されて、外部からの電話の呼の着信(着呼)はTEL着呼部1068により制御される。
【0060】
第1−P2P処理部1069および第2−P2P処理部1070は、携帯電話100によるP2P通信を制御する。
【0061】
ルームアクセス部1071は、P2P通信に従うチャット通信のためにマッチングサーバ400に格納されるルームのアクセスを制御する。具体的には、ルーム名を生成するルーム名生成部1072、ルーム名生成部1072が生成したルーム名に基づきルームの検索をマッチングサーバ400に対して要求するためのルーム検索要求部1073、ルーム名生成部1072が生成したルーム名に基づきルームの開設をマッチングサーバ400に対して要求するためのルーム開設要求部1074、ルーム名生成部1072が生成したルーム名に基づきルームへの参加をマッチングサーバ400に対して要求するためのルーム参加要求部1075、およびルーム名生成部1072が生成したルーム名に基づきルームの削除をマッチングサーバ400に対して要求をするためのルーム削除要求部1076を含む。
【0062】
<ルーム名生成処理>
ルーム名生成部1072は、所定のルール(関数)に、変数HISTELNOが指す電話番号と変数MyAdrのデータ1033が指す電話番号(MyAdr.TELNo)とをパラメータとして適用して、当該ルール(関数)に従いルーム名の変数RMNMを生成する。
【0063】
ここではハッシュ関数を用いて、生成されたルーム名からはパラメータとして用いた2つの電話番号(変数HISTELNOが指す電話番号と変数MyAdrのデータ1033が指す電話番号(MyAdr.TELNo))が推測できないよう暗号化しているが、適用されるルール(関数)は、携帯電話100と通話相手の携帯電話100との間でユニークとなるルーム名が、互いに(自己の携帯電話100、ならびに、通話相手の携帯電話100ともに)、同一のルーム名が生成できるルールであれば、これに限定されない。
【0064】
このように本実施の形態では、ルーム名は、携帯電話100において、自己の電話番号(MyAdr.TELNo)と、通話相手の電話番号(HISTELNO)に基づき生成されるので、通話を行なっていた2人のユーザの携帯電話100では、同一のルーム名を生成することができる。
【0065】
<マッチングサーバ400およびメールサーバ600のハードウェア構成>
次に、本実施の形態に係るマッチングサーバ400およびメールサーバ600のハードウェア構成について説明する。なお、メールサーバ600のハードウェア構成は、マッチングサーバ400のそれと同様であるので説明を繰り返さない。
【0066】
図7は、本実施の形態に係るマッチングサーバ400のハードウェア構成を示すブロック図である。図7に示すように、本実施の形態に係るマッチングサーバ400は、相互に内部バス408で接続されたCPU405と、メモリ406と、固定ディスク407と、サーバ通信部409とを含む。
【0067】
メモリ406は、各種の情報を記憶するものであって、たとえば、CPU405でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク407は、CPU105が実行するプログラムやデータベースを記憶する。CPU405は、マッチングサーバ400およびメールサーバ600の各要素を制御するものであって、各種の演算を実施する装置である。
【0068】
サーバ通信部409は、CPU405が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してCPU405に入力する。具体的には、サーバ通信部409は、CPU405からのデータを、インターネット500やキャリア網700などを介して携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300に送信する。そして、インターネット500やキャリア網700を介して携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300から受信したデータを、CPU405に入力する。
【0069】
図8(A)は、マッチングサーバ400のメモリ406あるいは固定ディスク407に記憶されるルーム管理テーブル406Aのデータ構造の一例を示す図であって、図8(B)は、他の例を示す図である。図8(A)および図8(B)に示すように、ルーム管理テーブル406Aは、ルーム名を指すデータ4061とIPアドレスを指すデータ4062とメールアドレスのデータ4063とを対応付けて格納する。
【0070】
たとえば、ある時点においては、図8(A)に示すように、マッチングサーバ400にルーム名‘R’、‘S’および‘T’それぞれを有するルームが開設されている。そして、ルーム名‘R’を有するルームには、IPアドレスとして‘A’およびメールアドレスとして‘AA’を有する通信端末と、IPアドレスとして‘C’およびメールアドレスとして‘CC’を有する通信端末が参加している。ルーム名‘S’を有するルームには、‘IPアドレスとして‘B’およびメールアドレスとして‘BB’を有する通信端末が参加している。ルーム名‘T’を有するルームには、IPアドレスとして‘D’およびメールアドレスとして‘DD’を有する通信端末が参加している。
【0071】
たとえばIPアドレスが‘A’の携帯電話100と‘C’の携帯電話100とが通話をしていた場合には、両方の携帯電話100のそれぞれにおいて、お互いの電話番号に基づき同一のルーム名(RMNM)‘R’が生成される。通話をしていたユーザは、生成した同一のルーム名‘R’に基づきルーム参加要求部1075によりマッチングサーバ400に対しルームへの参加を要求できる。したがって、IPアドレスが‘A’と‘C’の携帯電話100のユーザは、図8(A)に示すようにルーム名‘R’のルームに参加することができる。
【0072】
図8(B)では、IPアドレスが‘B’の携帯電話100のユーザが既に開設していたルーム名‘S’のルームに、IPアドレスが‘E’の携帯電話100のユーザがその後に参加した状態が示される。
【0073】
<マッチングサーバ400の機能構成>
図9を参照して、マッチングサーバ400は、ルーム開設部420、ルームへの参加およびルームの検索を受付ける参加受付部421Aおよび検索受付部421Bを有するルーム受付部421、ルーム削除部422、フレーム生成部423およびフレーム解析部424を含む。これらの各部は、固定ディスク407またはメモリ406の所定の記憶領域に予めプログラム・データとして格納されており、CPU405が所定記憶領域からプログラム・データを読出し、実行することにより、各部の機能が実現される。
【0074】
メモリ406には、前述したルーム管理テーブル406Aおよびマッチングサーバアドレスのデータ406Bが格納される。
【0075】
ルーム開設部420は、メモリ406のルーム管理テーブル406Aに、新たに開設するべきルームに対応するデータを格納することにより、ルームを開設する。ルーム受付部421は、携帯電話100から受信したルームへの参加および検索の要求の受付処理を行なう。ルーム削除部422は、携帯電話100からルームの削除要求を受付けたときに、要求されたルームを削除する。フレーム生成部423は、サーバ通信部409を介してインターネット500に送信するべきデータのフレームを生成し、生成したフレームをサーバ通信部409に出力する。フレーム解析部424は、サーバ通信部409がインターネット500を介して受信したデータのフレームを解析し、解析結果を出力する。
【0076】
マッチングサーバ400においては、第1の携帯電話100Aから新たなルームの開設を要求するフレームを受信すると、ルーム開設部420は受信したフレーム中からルーム名と、第1の携帯電話100AのIPアドレスと、メールアドレスとを検出し、ルーム管理テーブル406Aに検出したルーム名と第1の携帯電話100AのIPアドレスとメールアドレスとを対応付けて格納する。
【0077】
そして、第2の携帯電話100Cがマッチングサーバ400にルームへの参加を要求するフレームを送信すると、CPU405は当該フレームを受信する。受付部421の参加受付部421Aは受信したフレーム中から、ルーム名と第2の携帯電話100CのIPアドレスとメールアドレスとを検出し、ルーム管理テーブル406Aに検出したルーム名と第2の携帯電話100CのIPアドレスとメールアドレスとを対応付けて格納する。このとき、参加受付部421Aは、ルーム管理テーブル406Aから、当該ルーム名に対応する第1および第2の携帯電話100Aと100CのIPアドレスを読出して、フレーム生成部423に与える。フレーム生成部423は、与えられた第1および第2の携帯電話100Aおよび100CのIPアドレスを格納した参加受付のフレームを生成し、第1および第2の携帯電話100Aおよび100C宛てに送信する。これにより、同一ルーム名のルームに参加した第1および第2の携帯電話100Aおよび100Cのユーザは、お互いのIPアドレスを受信できる。以降、受信したIPアドレスを用いて第1および第2の携帯電話100Aおよび100Cの間でP2P通信を行うことができる。
【0078】
(P2Pの動作概要)
本実施の形態に係るネットワークシステム1の動作概要について説明する。
【0079】
図10は、ネットワークシステム1における動作概要を示すシーケンス図である。本実施の形態に係る各通信端末は、P2P通信を行うために、はじめに互いのIPアドレスを交換(取得)する必要がある。そして、各通信端末は、IPアドレスを取得した後に、P2P通信によってメッセージや添付ファイルなどを他の通信端末に送信する。
【0080】
ここでは、携帯電話100Aのユーザが携帯電話100Cのユーザと電話による通話中に、通話を中断し以降の通話を2P2通信によるメッセージ交換に切換えることを希望したケースを想定する。なお、携帯電話100Aと100Cには、予め1Pアドレスが割当てられていると想定する。
【0081】
通話を中断した後に、まず、第1の携帯電話100A(図10において端末A)は、キャリア網700、メールサーバ600、インターネット500を介して、マッチングサーバ400に宛てて、第1の携帯電話100Aと100Cの電話番号に基づき生成したルーム名‘R’と第1の携帯電話100AのIPアドレス‘A’とメールアドレス‘AA’を格納したルーム開設を要求するフレームを送信する(ステップS002)。
【0082】
マッチングサーバ400は、第1の携帯電話100Aからルーム開設の要求フレームを受信すると、受信フレームから検出した第1の携帯電話100AのIPアドレス‘A’とメールアドレス‘AA’とルーム名‘R’を対応付けてルーム管理テーブル406Aに格納する。これにより、第1の携帯電話100Aが生成したルーム名‘R’を有したルームが開設される。このとき、マッチングサーバ400は、ルーム開設が完了した旨を第1の携帯電話100Aに通知してもよい。
【0083】
第2の携帯電話100Cは、第1の携帯電話100Aと同様の手順でルーム名‘R’を生成し、生成したルーム名‘R’と、第2の携帯電話100CのIPアドレス‘C’を格納した参加要求のフレームをマッチングサーバ400に送信する(ステップS008)。
【0084】
マッチングサーバ400が参加要求フレームを受信すると、検索受付部421Bは受信したフレームから検出したルーム名‘R’に基づきルーム管理テーブル406Aを検索し、検索結果に基づき、既にルーム名‘R’のルームが開設されていると検出する。そして、受信したフレームから検出したIPアドレス‘C’およびメールアドレス‘CC’を、検出したルーム名‘R’に対応付けて格納する。そして、マッチングサーバ400は、同一ルームに既に参加していた第1の携帯電話100Aに宛てて、第2の携帯電話100Cがルームに参加した旨と、ルーム管理テーブル406Aから読出した第2の携帯電話100CのIPアドレス‘C’とを送信する(ステップS010)。同時に、マッチングサーバ400は、第2の携帯電話100Cに、ルームへの参加を受付けた旨と当該ルームに既に参加していた第1の携帯電話100AのIPアドレス‘A’とを送信する。これにより、第1および第2携帯電話100Aおよび100Cはお互いのIPアドレスを受信(取得)する。このとき、携帯電話100からの削除要求を受けなくとも、ルーム削除部422はルーム名‘R’のルームを削除してもよい。
【0085】
第1の携帯電話100Aは、取得したIPアドレス‘C’に基づいて第2の携帯電話100CにP2P接続要求メッセージ(開始メッセージ)を送信する(ステップS012)。第2の携帯電話100Cは、接続要求メッセージを受信して、第1の携帯電話100AのIPアドレ‘A’に基づいて第1の携帯電話100Aに第1の接続承諾メッセージ(返答メッセージ)を送信する(ステップS014)。第1の携帯電話100Aは、第2の携帯電話100Cから第2の接続承諾メッセージを受信して、第2の携帯電話100Cに接続承諾メッセージを送信する(ステップS016)。
【0086】
このようにして、第1の携帯電話100Aと第2の携帯電話100Cとは、互いに相手を認証する。認証が完了すると、第1の携帯電話100Aと第2の携帯電話100Cとは、P2P通信を開始する(ステップS018)。そして携帯電話100Aと100Cの間では、P2P通信に従うメッセージ交換が行なわれる。これにより、中断した通話を、メッセージ交換により再開することができる。
【0087】
その後、第1の携帯電話100Aが、第2の携帯電話100CにP2P通信を切断する旨のメッセージを送信すると(ステップS030)、第2の携帯電話100Cは、第1の携帯電話100Aに切断する要求を受付けた旨のメッセージを送信する(ステップS032)。
【0088】
<通信フレームの構成>
携帯電話100とマッチングサーバ400の間で送受信されるフレームの構成について説明する。
【0089】
図11を参照してフレームの基本的な構成について説明する。フレームは、ヘッダ部610と、データ部620を含む。ヘッダ部610には、当該フレームの種別(タイプ)を指示するデータ611、当該フレームの宛先‘DD’を示すデータ612および当該フレームの送信元‘SD’を示すデータ613が格納される。データ部620は、送信すべきデータを格納する。
【0090】
データ611が示すタイプは、本実施の形態では、要求フレームであることを示す“1”と、要求の受付を示す“0”のいずれかの値となる。また、本実施の形態ではフレームは、携帯電話100とマッチングサーバ400との間で送受信されるため、データ612および613としては、携帯電話100の記憶部103から読出されたメールアドレスのデータ1037、およびマッチングサーバアドレスのデータ406Bまたは記憶領域103FのアドレスデータSEV_ADRが格納される。
【0091】
携帯電話100のルーム検索要求部1073が、ルーム管理テーブル406Aのルームの検索を要求する場合には、フレーム生成部1063が図12のルーム検索要求のフレーム599を生成する。生成したフレームはサーバ通信部1081によってマッチングサーバ400に宛てて送信される。
【0092】
フレーム599は、データ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレスのデータ1037がそれぞれ格納される。また、データ部620には、検索の命令コード(‘RM_SEARCH’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0093】
マッチングサーバ400は、ルーム検索要求のフレーム599を受信した場合に、フレーム生成部423は、図13のルーム検索受付のフレーム600を生成し、携帯電話100宛てに送信する。フレーム600は、ヘッダ部610においてデータ611は“0”を示し、データ612として受信したフレーム599のデータ613が格納される。また、データ613として、記憶部406から読出したマッチングサーバアドレスのデータ406Bが格納される。データ部620には、命令コード621として空データが格納される。また、受信したルーム検索要求のフレーム599のデータ622が格納される。また、ルーム検索要求に基づき検索受付部421Bがルーム管理テーブル406Aを検索した結果のデータ626が格納される。データ626は、データ622が指すルーム名がルーム管理テーブル406に格納されていた場合には‘0’を指示し、格納されていなかった場合には‘−1’を指示する。
【0094】
携帯電話100が、ルーム開設を要求する場合には、フレーム生成部1063が図14のルーム開設要求のフレーム601を生成する。生成したフレーム601は、サーバ通信部1081によってマッチングサーバ400に宛てて送信される。
【0095】
フレーム601は、データ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレスのデータ1037がそれぞれ格納される。また、データ部620には、開設の命令コード(‘RM_CREATE’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0096】
マッチングサーバ400は、ルーム開設要求のフレーム601を受信した場合に、フレーム生成部423は、図15のルーム開設受付のフレーム602を生成し、携帯電話100宛てに送信する。フレーム602は、ヘッダ部610においてデータ611は“0”を示し、データ612として受信したフレーム601のデータ613が格納される。また、データ613として、メモリ406から読出したマッチングサーバアドレスのデータ406Bが格納される。データ部620には、命令コード621として空データが格納される。また、受信したルーム開設要求のフレーム601のデータ622が格納される。また、データ624として、ルーム開設要求に基づいたルーム開設部420によるルーム開設の受付結果のデータが格納される。データ624は、データ622が指すルーム名のルーム開設に成功した場合には‘0’を指示し、開設できなかった場合には‘−1’を指示する。開設できない場合とは、たとえば、既に、同一ルーム名のルームが開設されている場合である。
【0097】
携帯電話100のルーム参加要求部1075が、ルームへの参加を要求する場合には、フレーム生成部1063が図16のルーム参加要求のフレーム603を生成する。生成したフレーム603はサーバ通信部1081によってマッチングサーバ400に宛てて送信される。
【0098】
フレーム603は、データ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレス1037がそれぞれ格納される。また、データ部620には、参加の命令コード(‘RM_ENTRY’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0099】
携帯電話100が図16のルーム参加要求のフレーム603を送信した場合において、マッチングサーバ400の参加受付部421Aは当該フレーム603のデータ622が指示するルーム名に基づきルーム管理テーブル406Aを検索する。検索結果に基づき、一致するルーム名を有するルームが既に開設されていると判定した場合には、マッチングサーバ400から、携帯電話100に宛てて、図17に示すルーム参加受付のフレーム604が送信される。具体的には、参加要求元の携帯電話100と、指示されたルーム名のルームに既に参加していた携帯電話100のそれぞれに宛ててフレーム604が送信される。
【0100】
参加要求元の携帯電話100宛のフレーム604は、ヘッダ部610にフレーム602と同様のデータが格納される。データ部620には、ルーム参加要求のフレーム603のデータ622が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”を示すデータ624と、当該ルームに既に参加している他のユーザの携帯電話100のIPアドレスのデータ4062が、ルーム管理テーブル406Aから読出されてデータ625として格納される。
【0101】
既に参加していた携帯電話100宛のフレーム604は、ヘッダ部610のデータ611は“0”を指し、データ612はこの携帯電話100のメールアドレスを指示し、データ613はマッチングサーバアドレスのデータ406Bを指す。データ612のメールアドレスは、ルーム管理テーブル406Aを検索して読出した当該ルーム名RMNMを指示するデータ4061に対応して格納されたメールアドレスのデータ4063を指す。データ部620には、ルーム参加要求のフレーム603のデータ622が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”(値‘0’)を示すデータ624と、当該ルームに参加要求をした他のユーザの携帯電話100のIPアドレスを指すデータ625が格納される。
【0102】
なお、参加の受付けに成功しなかった場合には、データ624には値‘−1’が設定されて、フレーム604は要求元の携帯電話100に送信される。
【0103】
携帯電話100のルーム削除要求部1076が、ルームの削除をマッチングサーバ400に対して要求する場合には、フレーム生成部1063が図18に示すルーム削除要求のフレーム605をマッチングサーバ400に宛てて送信する。フレーム605は、ヘッダ部610においてデータ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレス1037がそれぞれ格納される。また、データ部620には、削除の命令コード(‘RM_DELETE’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0104】
マッチングサーバ400は、ルーム削除要求のフレーム605を受信した場合に、フレーム生成部423は、図19のルーム削除受付のフレーム606を生成し、携帯電話100宛てに送信する。フレーム606は、ヘッダ部610においてデータ611は“0”を示し、データ612として受信したフレーム605のデータ613が格納される。また、データ613として、記憶部406から読出したマッチングサーバアドレスのデータ406Bが格納される。データ部620には、命令コード621として空データが格納される。また、受信したルーム削除要求のフレーム605のデータ622が格納される。また、データ624として、ルーム削除要求に基づきルーム削除部422がルーム管理テーブル406Aからルームを削除した結果のデータが格納される。データ624は、データ622が指すルーム名のルームをルーム管理テーブル406から削除するのに成功した場合には‘0’を指示し、削除に成功しなかった場合には‘−1’を指示する。
【0105】
<処理フローチャート>
電話で通話中に、P2P通信に従うデータ通信に切換える手順について図20〜図26のフローチャートを参照し説明する。
【0106】
図20〜図25のフローチャートは携帯電話100において実行されるプログラムに従う処理を示す。このプログラムは予め記憶部103に格納されており、CPU106Aがプログラムを記憶部103から読出し、実行する。また、図26のフローチャートはマッチングサーバ400において実行されるプログラムに従う処理を示す。このプログラムは予めメモリ406に格納されており、CPU405がプログラムをメモリ406から読出し、実行する。
【0107】
なお、ここでは、携帯電話100Aと携帯電話100Cとの間で通話をすると想定する。電話による通話では発信者が通話相手の電話番号をダイヤルし、受信者が受話器を持ち上げた時点で呼が確立される。本実施の形態では、‘呼’(call)は、2つの携帯電話100間の物理的な通信路(いわゆる電話回線)を指し、かかる通信路の確立の要求には通話相手の電話番号が含まれる。かかる要求を受信することを‘着呼’と言い、当該要求を送信することを‘発呼’と言う。‘着呼’および‘発呼’に応じた携帯電話100における処理は、TELボタン110Aの操作がトリガとなって開始される。
【0108】
動作において、携帯電話100(携帯電話100Aおよび携帯電話100Cのそれぞれ)は電源がONされると、図20のフローチャートに従う処理を開始する。
【0109】
まず、CPU106Aは記憶部103から読出した変数HISTELNOに値‘NULL’を代入する(ステップS1)。次に、ディスプレイ107に操作を待受るための待受画面を表示する(ステップS3)。
【0110】
その後、入力受付部1064は、入力部110またはタブレット119がユーザによって操作されることによって外部から指示が入力されるか否かを判定する。
【0111】
具体的には、アドレス帳ボタン110Dが操作されたか否かを判定する(ステップS5)。アドレス帳ボタン110Dが操作されたと判定すると(ステップS5でYES)、処理は、後述する発呼処理(ステップS7)に移行する。
【0112】
アドレス帳ボタン110Dが操作されないと判定すると(ステップS5でNO)、CPU106AはTEL用通信部102を介してキャリア網700から電話の呼を受信したか否かを判定する(ステップS9)。着呼したことを判定すると(ステップS9でYES)、処理は後述するTEL着呼処理(ステップS11)に移行する。
【0113】
一方、着呼したとことが判定されないと(ステップS9でNO)、入力受付部1064は、入力部110からの入力信号に基づき、P2Pボタン110Cが操作されたか否かを判定する(ステップS13)。P2Pボタン110Cが操作されたと判定されなければ(ステップS13でNO)、処理はステップS5に戻る。
【0114】
一方、P2Pボタン110Cが操作されたと判定されると(ステップS13でYES)、CPU106Aは変数HISTELNOの値が‘NULL’を指示するか否かを判定する(ステップS10)。変数HISTELNOが‘NULL’を指示すると判定すると(ステップS15でYES)、処理はステップS5に戻る。
【0115】
一方、変数HISTELNOの値は‘NULL’を指示すると判定しないと(ステップS15でNO)、処理は後述する第1−P2P処理(ステップS17)に移行する。図24の第1−P2P処理では、前述した手順に従い変数HISTELNOのデータを用いて生成したルーム名RMNMのルームを介してP2P通信制御(ステップS97)が行なわれるから、直前に通話していた相手に限定されず、変数HISTELNOに電話番号が設定されている通話をした相手であればP2P通信制御を開始することができる。
【0116】
図21を参照して、操作待受時(ステップS3)にアドレス帳ボタン110Dが操作された場合に開始される発呼処理について説明する。
【0117】
アドレス帳ボタン110Dが操作されると、発呼部1066は、記憶部103からアドレス帳データAdrDB[]を読出し、ディスプレイ107に表示する(ステップS19)。ディスプレイ107に表示された図4のアドレス帳データを確認したユーザは、所望の通信相手を指す名前のデータ1032をタブレット119を操作して選択する。これにより、発呼部1066は、選択された名前のデータ1032に対応するデータ1031が指すメモリNoの値を、変数SELに代入する(ステップS21)。続いて、発呼部1066は、入力受付部1064を介して、ユーザがTELボタン110A、P2Pボタン110Cおよび終了ボタン110Eのいずれを操作するかを判定する(ステップS23、S27、S31)。
【0118】
具体的には、TELボタン110Aが操作されたと判定すると(ステップS23でYES)、処理は、後述するTEL発呼処理(ステップS25)に移行する。一方、TELボタン110Aが操作されないと判定されると(ステップS23でNO)、P2Pボタン110Cが操作されたか否かが判定される(ステップS27)。P2Pボタン110Cが操作されたと判定されると(ステップS27でYES)、処理は、後述する第1−P2P処理(ステップS29)に移行する。
【0119】
一方、P2Pボタン110Cが操作されたと判定されなければ(ステップS27でNO)、終了ボタン110Eが操作されたか否かが判定される(ステップS31)。終了ボタン110Eが操作されたと判定されなければ(ステップS31でNO)、処理はステップS23に戻り、ステップS23以降の処理が同様に繰返される。
【0120】
一方、終了ボタン110Eが操作されたと判定されると(ステップS31でYES)、処理は図20のステップS3に移行する。これにより、ディスプレイ107には待受画面が表示される。
【0121】
図22を参照して、図21のステップS23においてTELボタン110Aが操作された場合に起動するTEL発呼部1067が制御するTEL発呼処理について説明する。
【0122】
TELボタン110Aが操作されると、TEL発呼部1067は、変数HISTELNOに、変数AdrDB[SEL].TELNoの値を代入する。これによって、変数HISTELNOの値は、図21のステップS21においてユーザが選択した発信先の電話番号のデータ1033が設定される。続いて、TEL発呼部1067は、TEL用通信部102を制御して、変数HISTELNOが指示する電話番号に基づき発呼処理を行なう(ステップS35)。これにより、変数HISTELNOで指示される相手先の端末が呼出される。
【0123】
TEL発呼部1067は、TELボタン110Aが操作されたか否か、すなわち通話のための回線の切断処理が指示されたか否かを判定する(ステップS37)。TELボタン110Aが操作されたと判定すると(ステップS37でYES)、ステップS39においてTEL用通信部102を介した発呼処理を終了させ(ステップS39)、処理は図20のステップS1に移行する。これにより、発呼したが、相手側が受信せずに(通話をすることなく)発呼処理を終了した場合には、変数HISTELNOの値は相手側の電話番号から‘NULL’に変更される。
【0124】
一方、TEL発呼部1067は、入力受付部1064を介して、ユーザがTELボタン110Aを操作しないと判定すると(ステップS37でNO)、TEL用通信部102によって相手端末からの応答を受信するか否かを判定する(ステップS41)。応答を受信しないと判定すると(ステップS41でNO)、処理はステップS37に戻る。
【0125】
一方、相手端末からの応答を受信したと判定すると(ステップS41でYES)、処理はステップS43に移行する。
【0126】
ステップS43においては、TEL用通信部102を介して、ユーザは相手端末と通話を行なう。この通話においては、相手とマイク108およびスピーカ109を介した通話が行なわれる。ここでは、通話の処理の詳細は省略する。
【0127】
ステップS43の通話制御が行われる場合において、TEL発呼部1067は、ユーザによってTELボタン110Aが操作されたか否かを判定する(ステップS45)。TELボタン110Aが操作されたと判定すると(ステップS45でYES)、オンフック処理が行なわれる(ステップS47)。これにより、TEL用通信部102を介して電話回線の切断を指示する切断信号が相手端末に送信される。このように、通話の終了を相手側と確認したユーザがTELボタン110Aを操作し、通話の終了を指示した場合には、電話回線は切断されて通話は終了する。そして、処理は図20のステップS3に戻る。
【0128】
一方、TELボタン110Aが操作されないと判定されると(ステップS45でNO)、TEL発呼部1067は、TEL用通信部102によって、相手端末から電話回線の切断信号を受信するか否か、すなわち相手端末のユーザは通話の終了を確認してオンフック操作をしたか否かを判定する(ステップS49)。切断信号を受信したと判定すると(ステップS49でYES)、処理は後述する第2−P2P処理(ステップS51)に移行する。
【0129】
一方、相手端末から切断信号を受信しないと判定すると(ステップS49でNO)、ユーザによってP2Pボタン110Cが操作された否かを、入力受付部1064によって受付けた信号に基づき判定する(ステップS53)。この判定結果に基づきP2Pボタン110Cが操作されないと判定すると(ステップS53でNO)、通話を継続するために、処理はステップS43に戻る。一方、通話の最中にP2Pボタン110Cが操作されたと判定されると(ステップS53でYES)、TEL発呼部1067はTEL用通信部102を介して切断信号を相手端末に送信することによってオンフック処理を行なう(ステップS55)。これにより、電話回線は切断されて、相手端末との通話は中断によって終了する。その後、処理は、中断した通話をデータ通信により再開するために、後述する第1−P2P処理(ステップS57)に移行する。
【0130】
図23を参照して、図20のステップS9において電話呼出(着呼)が検出された場合に起動されるTEL着呼処理について説明する。
【0131】
TEL着呼部1068は、受信した着呼に基づき、発信者番号の非通知が設定されているか否かを判定する(ステップS61)。非通知の設定がされていると判定すると(ステップS61でYES)、処理は、後述するステップS67に移行する。
【0132】
一方、非通知が設定されていないと判定すると(ステップS61でNO)、TEL着呼部1068は、着呼が指す発信元の電話番号に基づき記憶部103のアドレス帳データAdrDB[]を検索する。検索結果に基づき、発信元の電話番号が、データ1033として登録(格納)済みであるか否かを判定する(ステップS63)。未登録と判定すると(ステップS63でNO)、処理は、後述のステップS67に移行する。
【0133】
一方、登録済みと判定すると(ステップS63でYES)、変数HISTELNOに、受信した着呼が指示する発信元の電話番号を設定する(ステップS65)。続いて、ステップS67において、TEL着呼部1068は、着呼を外部に報知するために、通知処理部1065を制御して第1の通知部111を稼働する。これにより、ベルが鳴動し、または携帯電話100自体が振動する。
【0134】
続いて、TEL着呼部1068は、通知処理部1065を介して第2の通知部112により、TEL用LED112Aを点滅させる(ステップS69)。これにより、ユーザに対して着呼があったことが報知される。
【0135】
続いて、TEL着呼部1068は、TEL用通信部102を介して着呼が終了したか否かを判定する(ステップS71)。着呼は応答操作(オフフック)が検出されるまで継続して送信される。着呼にかかる信号の送信が終了したと判定されると(ステップS71でYES)、通知処理部1065により、第1の通知部111を制御してベルの鳴動および振動を停止させる(ステップS73)。続いて、第2の通知部112によりTEL用LED112Aの点滅を停止するとともに、TEL着呼部1068は、着信の登録を記憶部103において行なう。具体的には着呼が指示する発信元の電話番号が記憶部103に所定記憶領域に格納される。当該記憶領域から電話番号を読出し、ディスプレイ107に表示するこによって、着信があったことと相手先の電話番号を報知できる。その後、処理は図20のステップS1に移行する。
【0136】
着呼にかかる信号の送信終了が判定されないと(ステップS71でNO)、着呼に応じた通話を開始するために、ユーザがTELボタン110Aを操作したか否かを判定する(ステップS77)。TELボタン110Aが操作されないと判定されると(ステップS77でNO)、処理はステップS71に戻る。
【0137】
一方、TELボタン110Aが操作されたと判定されると(ステップS77でYES)、TEL着呼部1068は、通知処理部1065により、第1の通知部111および第2の通知部112を制御して、ベルの鳴動および振動を停止させるとともに、TEL用LED112Aの点滅を停止し(LEDの消灯)、着信に応答するための動作(オフフック)を行なう(ステップS79、S81、S83)。これにより、通話のための通信回線が確立し、通信回線およびTEL用通信部102を経由して、相手端末のユーザと通話を開始する。その後、処理は図22のステップS43に移行する。
【0138】
次に、図24の第1−P2P処理について説明する。
第1−P2P処理は、待受画面表示時(ステップS3)においてユーザがP2Pボタン110Cを操作した場合であって、且つ変数HISTELNOに値NULLではなく電話番号が設定されていた場合、または通話を行なっている最中においてP2Pボタン110Cが操作された場合には、図24の第1−P2P処理が開始される。
【0139】
まず、第1−P2P処理部1069は、ルーム名生成部1072を制御してルーム名RMNMを生成する。具体的には、変数HISTELNOと変数MyAdr_TELNoが指示する2つの値と、所定のルール(関数)を適用して、たとえば、RMNM=HASH(HISTELNO,MyAdr_TELNo)に従いルーム名RMNMを生成し、記憶部103に格納する。
【0140】
次に、第1−P2P処理部1069は、サーバ通信部1081を制御してインターネット500に接続する(ステップS87)。一般的には、この時点で、自己の携帯電話100のIPアドレスが確定し、確定したIPアドレスは変数MY_IPADRに設定される。
【0141】
続いて、第1−P2P処理部1069は、ルーム検索要求部1073を制御してルーム検索要求処理を行なう(ステップS89)。以下に、ルーム検索要求の処理について説明する。
【0142】
ルーム検索要求部1073は、記憶部103から読出したデータと、生成されたルーム名RMNMをフレーム生成部1063に与えて、ルーム検索要求フレームを生成するように指示する。この指示に応答して、フレーム生成部1063は、与えられるデータに基づき図12のフレーム599を生成する。生成されたフレーム599はサーバ通信部1081を介して、マッチングサーバ400宛に送信される。
【0143】
マッチングサーバ400においては、サーバ通信部409はフレーム599を受信し、フレーム解析部424に与える。フレーム解析部424は入力したフレーム599の命令コード‘RM_SEARCH’に基づき当該フレーム599を検索受付部421Bに出力する。
【0144】
検索受付部421Bは、入力したフレーム599から読出したルーム名RMNMに基づき、ルーム管理テーブル406を検索する。その検索結果はフレーム生成部423に与えられる。フレーム生成部423は、受信したフレーム599の内容と検索結果とを格納したルーム検索受付フレーム600を生成し、サーバ通信部409に与える。サーバ通信部409は、入力した検索受付フレーム600を要求元の携帯電話100宛てに送信する。以上により、ステップS89のルーム検索要求処理は終了する。
【0145】
マッチングサーバ400から送信された検索受付フレーム600は、サーバ通信部1081を経由してフレーム解析部1062に与えられる。フレーム解析部1062は解析結果に基づき、受信したフレーム600を第1−P2P処理部1069に与える。
【0146】
第1−P2P処理部1069は、入力したフレーム600のデータ626が指す検索結果の値に基づき、ルーム名RMNMのルームが存在するか否かを判定する(ステップS91)。データ626の値が‘−1’である、すなわちルームが存在しない(開設されていない)と判定すると(ステップS91でNO)、処理は、後述するステップS103に移行する。
【0147】
データ626の値が‘0’である、すなわちルームが存在する(開設されている)と判定すると(ステップS91でYES)、ルーム参加要求部1075を起動して、ルーム参加要求の処理を行う(ステップS93)。
【0148】
以下に、ルーム参加要求の処理について説明する。
ルーム参加要求部1075は、記憶部103から読出したデータと、生成されたルーム名RMNMをフレーム生成部1063に与えて、ルーム参加要求フレームを生成するように指示する。この指示に応答して、フレーム生成部1063は、与えられるデータに基づき図16のルーム参加要求フレーム603を生成する。生成されたフレーム603はサーバ通信部1081を介して、マッチングサーバ400宛に送信される。
【0149】
マッチングサーバ400においては、サーバ通信部409はフレーム603を受信し、フレーム解析部424に与える。フレーム解析部424は入力したフレーム603の命令コード‘RM_ENTRY’に基づき当該フレーム603を参加受付部421Aに出力する。
【0150】
参加受付部421Aは、入力したフレームから読出したデータ622が指すルーム名RMNMと、データ623が指すIPアドレスと、データSDが指すメールアドレスとを、ルーム管理テーブル406Aに対応付けて格納する。
【0151】
参加受付部421Aは、フレーム生成部1063を制御して、前述したように図17に示すルーム参加受付フレーム604を生成する。つまり、参加要求元の携帯電話100と、指示されたルーム名RMNMのルームに既に参加していた携帯電話100とのそれぞれに宛てたフレーム604が生成されて送信される。携帯電話100では、サーバ通信部1081を経由してルーム参加受付フレーム604を受信すると、フレーム解析部1062は受信したルーム参加受付フレーム604を解析し、解析結果に基づき、相手がルームに参加した旨の通知を、第1−P2P処理部1069および第2−P2P処理部1070にそれぞれ出力する。
【0152】
以上により、ステップS93のルーム参加要求処理は終了する。
フレーム解析部1062は解析結果に基づき、受信したフレーム604を第1−P2P処理部1069に与える。
【0153】
第1−P2P処理部1069は、フレーム解析部1062から上述の通知を入力すると、受信した参加受付フレーム604のデータ625が指すIPアドレスを記憶部103の変数HIS_IPADRの領域103Dに格納する(ステップS95)。これにより、ルーム名RMNMに参加しているユーザの携帯電話100には、他の参加ユーザの携帯電話100のIPアドレスが変数HIS_IPADRとして格納される。その後、P2P通信部1082を経由して変数HIS_IPADRが指すIPアドレスに基づき相手端末とP2P通信のための制御が行なわれる(ステップS97)。
【0154】
このP2P通信に従うメッセージ交換の最中において、P2Pボタン110Aが操作されたか否か、または相手携帯電話100から終了操作の信号を受信したか否かを判定する(ステップS99)。終了操作がされた、または相手の携帯電話100から終了操作信号を受信したと判定されない間は(ステップS99でNO)、P2P通信が行なわれる(ステップS97)。終了操作がされた、または相手側から終了操作信号を受信したと判定すると(ステップS99でYES)、インターネット500の切断が行なわれる(ステップS101)。その後、処理は図20のステップS3に移行する。
【0155】
上述したステップS97およびステップS99の処理は、本実施の形態では、IPアドレス(MY_IPADRとHIS_IPADR)を用いての携帯電話100Aと100C同士間での直接のメッセージ交換を意味している。具体的には、P2P通信を利用したアプリケーションソフトウェアが起動されて、起動されたアプリケーションソフトウェアの処理を通じて、お互いにメッセージ交換処理がなされる。
【0156】
ステップS91に戻り、第1−P2P処理部1069は、入力したフレーム600のデータ626の値が‘−1’である、すなわちルームが存在しない(開設されていない)と判定すると(ステップS91でNO)、ルーム開設要求部1076を制御してルーム開設要求処理を行う(ステップS103)。以下に、ルーム開設要求処理について説明する。
【0157】
ルーム開設要求部1076は、記憶部103から読出したルーム名RMNMおよびデータをフレーム生成部1063に与えて、図14のルーム開設要求フレーム601を生成するよう指示する。フレーム生成部1063は、指示に応じて、与えられるデータに基づきルーム開設要求フレーム601を生成しサーバ通信部1081に出力する。サーバ通信部1081は入力したルーム開設要求フレーム601をマッチングサーバ400に宛てて送信する。
【0158】
マッチングサーバ400は、ルーム開設要求フレーム601を受信すると、フレーウ601はフレーム解析部424によって解析されて、解析結果に基づき、当該フレーム601はルーム開設部420に与えられる。ルーム開設部420は、入力したフレーム601のデータ622が指すルーム名RMNM、データ623が指すIPアドレスおよびデータ612が示すメールアドレスを、データ4061、4062および4063として対応付けてルーム管理テーブル406に格納する。これにより、ルーム名RMNMのルームが開設される。
【0159】
開設後、ルーム開設部420はフレーム生成部423に制御して、図15のルーム開設受付フレーム602を生成する。生成されたルーム開設受付フレーム602は、サーバ通信部409を経由して、要求元の携帯電話100に送信される。以上により、ルーム開設要求処理は終了する。
【0160】
第1−P2P処理部1069は、サーバ通信部1061を経由してルーム開設受付フレーム602を受信すると、計時部105が出力する時間データに基づき、その後一定時間が経過したか否かを判定する(ステップS105)。一定時間が経過したと判定すると(ステップS105でYES)、処理は、後述するステップS113に移行する。
【0161】
一方、一定時間の経過が判定されないと(ステップS105でNO)、相手の携帯電話100のユーザが、開設したルームに参加したか否かが判定される(ステップS107)。すなわち、マッチングサーバ400から、他の携帯電話100のIPアドレスを格納したルーム参加受付フレーム604を受信するか否かを判定する。第1−P2P処理部1069は、フレーム解析部1062からの通知に基づき、開設したルームに相手ユーザが参加したことを判定すると(ステップS107でYES)、受信したルーム参加受付フレームのデータ625が指すIPアドレスを記憶部103の変数HIS_IPADRの領域103Dに格納する(ステップS109)。これにより、ルーム名RMNMに参加しているユーザの携帯電話100には、他の参加ユーザの携帯電話100のIPアドレスが変数HIS_IPADRとして格納される。
【0162】
一定時間を経過してもフレーム解析部1062からの通知を入力できないときは(ステップS107でNO、ステップS105でYES)、処理は後述のステップS113に移行する。
【0163】
ステップS109の処理後、第1−P2P処理部1069は、ルーム削除要求部1076を制御してルーム削除要求処理(ステップS111)を行なう。以下に、ルーム削除要求処理を説明する。
【0164】
ルーム削除要求部1076は、ルーム名RMNMおよび記憶部103から読出したデータをフレーム生成部1063に与えて、図18のルーム削除要求フレーム605を生成するよう指示する。フレーム生成部1063は、指示に応じて、与えられるデータに基づきルーム削除要求フレーム605を生成しサーバ通信部1081に出力する。サーバ通信部1081は入力したルーム削除要求フレーム605をマッチングサーバ400に宛てて送信する。
【0165】
マッチングサーバ400は、ルーム削除要求フレーム605を受信すると、フレーム解析部424によって解析して、解析結果に基づき、当該フレーム605はルーム削除部422の与えられる。ルーム削除部422は、入力したフレーム605のデータ622が指すルーム名RMNMに基づきルーム管理テーブル406Aを検索する。そして、検索結果に基づき、ルーム名RMNMを指すデータ4061と、これに対応するデータ4062及び4063を、ルーム管理テーブル406から削除する。これにより、ルーム名RMNMのルームが削除される。
【0166】
削除後、ルーム削除部422はフレーム生成部423を制御して、図19のルーム削除受付フレーム606を生成する。生成されたルーム削除受付フレーム606は、サーバ通信部409を経由して、要求元の携帯電話100に送信される。以上により、ルーム削除要求処理は終了する。
【0167】
携帯電話100では、図19のルーム削除受付フレーム606を受信すると、処理は前述したステップS97のP2P通信に移行する。
【0168】
このように、ステップS103〜ステップS111の処理により、ルーム名RMNMのルームを開設後、当該ルームに相手が参加するのを待機する期間を設けている。
【0169】
ステップS105に戻り、ルーム開設後、一定時間を経過しても、相手ユーザが当該ルームに参加した旨の通知が場合には(ステップS105でYES)、ステップS113において、インターネット500の接続が切断される。その後、第1−P2P処理部1069は、相手の携帯電話100からのアクセスがない旨のエラーメッセージをディスプレイ107に一定時間表示する。その後、処理は、図20のステップS3に移行し待受画面が表示される。
【0170】
図25を参照して、第2−P2P処理部1070の処理について説明する。
図22で説明したように、相手携帯電話100と通話の最中に、相手の携帯電話100から回線の切断信号を受信したことにより通話が中断した場合には(ステップS49でYES)、第2−P2P処理部1070が起動する。
【0171】
第2−P2P処理部1070は、まず、ルーム名RMNMを生成し(ステップS117)、その後、インターネット500に接続する(ステップS119)。一般的には、この時点で自己の端末のIPアドレスが確定するので、確定したIPアドレスを変数MY_IPADRに代入する(ステップS119)。続いて、ルーム検索要求部1073による処理が行なわれる。そして、マッチングサーバ400からのルーム検索結果を格納したフレーム600を受信し、受信したフレーム600の解析結果に基づき、ルーム名RMNMのルームが存在する(開設済み)か否かを判定する(ステップS121)。ルームが存在しないと判定すると(ステップS121でNO)、インターネット500の接続を断ち(ステップS127)、処理は図20のステップS3に移行する。一方、フレーム600の解析結果に基づきルームが存在すると判定すると(ステップS121でYES)、その後、計時部105が出力する時間データに基づき一定時間が経過したかを判定する(ステップS123)。一定時間経過しないと判定されると(ステップS123でNO)、ユーザによりP2Pボタン110Cが操作されたか否かが判定される(ステップS125)。操作されなければ、処理はステップS123に戻るが、操作された場合には、処理は図24のステップS93に移行する。
【0172】
一方、ルームが存在すると判定された後に、一定時間が経過してもP2Pボタン110Cの操作がされないと判定されると(ステップS123でYES)、処理は図24のステップS113に移行し、インターネット500の接続が切断される。
【0173】
図25におけるステップS117、S119、S120、S121の処理は、図24のステップS85、S87、S89およびS91の処理と同じ手順で行われる。
【0174】
なお、ステップS121の判定結果はディスプレイ107に表示してもよい。表示した場合には、ユーザは既にルームが開設されていることを確認できるので、速やかに、ルーム参加(P2P通信開始)のためにP2Pボタン110Cを操作できる。
【0175】
このように、通話の最中に相手携帯電話100から一方的に切断信号を受信して通話が中断したとしても、相手ユーザが開設したルームに参加することにより、通話をP2P通信に従うメッセージ交換に切換えることができる。したがって、中断した通話をデータ通信により継続することができる。
【0176】
ここで、マッチングサーバ400の処理について図26を参照して説明する。
上述した携帯電話100の処理に並行して、マッチングサーバ400では図26に従う処理が実行される。マッチングサーバ400で並行して行なわれる処理は、携帯電話100側の処理で説明しているので、ここでは、簡単に行なう。
【0177】
図26を参照して、マッチングサーバ400のCPU405は、サーバ通信部409を経由してデータを受信するか否かを判定する(ステップS131)。データを受信しない間は、ステップS131の処理が繰返される。
【0178】
一方、データを受信したと判定すると(ステップS131でYES)、受信したデータ、すなわち受信したフレームの解析処理を、フレーム解析部424にて行なう(ステップS133)。
【0179】
フレーム解析部424は、受信フレームのデータ621が指す命令コードを読出して解析する。解析結果に基づき、命令コードが、ルーム開設、ルームの検索、ルームの削除およびルームへの参加のいずれの命令を指すかを判定する(ステップS135、S137、S139、S141)。命令コードがいずれの命令も指示しないと判定すると(ステップS141でNO)、フレームに“ERROR”を指す値‘−1’を格納し、当該フレームを送信元の携帯電話100に送信する(ステップS143)。その後、処理はステップS131に戻る。
【0180】
一方、受信フレームの命令コードはルームの開設を指示していると判定すると(ステップS135でYES)、ルーム開設部420は、受信フレームのルーム名RMNMに基づきルーム管理テーブル406Aを検索し、検索結果に基づき、ルーム名RMNMのルームが既に開設されているか否かを判定する(ステップS145)。
【0181】
ルームが既に開設されていると判定すると(ステップS145でYES)、処理はステップS143に移行する。一方、ルームは未開設であると判定すると(ステップS145でNO)、ルーム管理テーブル406Aに受信フレームから読出したデータを格納することによりルームの開設を行なう(ステップS153)。その後、処理はステップS155に移行する。
【0182】
ステップS155においては、フレームに“OK”を示す値‘0’を格納した返信情報を、要求元の携帯電話100に送信する。その後、処理はステップS131に移行する。
【0183】
一方、フレームの解析結果、受信フレームの命令コードはルームの検索を指示していると判定すると(ステップS137でYES)、検索受付部421Bは、ルーム管理テーブル406Aを、受信したルーム名RMNMで検索する。そして、検索結果に基づき、ルームが存在するか(開設されているか)否かを判定する。ルームは存在すると判定すると、処理は、前述したステップS155に移行するが、ルームは存在しないと判定すると(ステップS137でNO)、処理は前述したステップS143に移行する。
【0184】
受信フレームの解析結果、フレームに格納された命令コードが、ルームの削除要求を指示していると判定すると(ステップS139でYES)、ルーム削除部422は、受信フレームのデータ613が指すメールアドレスと、ルーム管理テーブル406Aの当該ルーム名RMNMに関連付けて格納されたデータ4063が指すメールアドレスとを比較照合し、一致するか否かを判定する(ステップS149)。一致する場合、すなわち削除要求をした携帯電話100は当該ルームに参加していた端末であると判定すると(ステップS149でYES)、ルーム管理テーブル406Aから当該ルーム名RMNMのデータを削除し(ステップS157)、処理は前述したステップS155に移行する。
【0185】
一方、不一致の場合、すなわち削除要求をした携帯電話100は当該ルームに参加していた端末ではないと判定すると(ステップS149でNO)、削除処理は行われずに、処理は前述したステップS143に移行する。
【0186】
受信フレームの解析結果、フレームに格納された命令コードは、ルームへの参加を要求していると判定すると(ステップS141でYES)、参加受付部421Aは、ルーム管理テーブル406Aを受信フレームから読出したルーム名RMNMに基づき検索する。検索結果に基づき、ルーム名RMNMのルームが開設されていると判定すると(ステップS151でYES)、ルームへの参加処理を行ない(ステップS159)、参加している他の携帯電話100に対して今回新たに参加した携帯電話100のIPアドレスを送信するとともに、参加要求した携帯電話100に対しては既に参加していた他の携帯電話100のIPアドレスを送信する(ステップS161、S163)、その後、処理はステップS131に移行する。
【0187】
本実施の形態によれば、通話の最中にP2Pボタン110Cを操作すると、通話が中断される。そして、通話中の相手端末(携帯電話100)を特定する識別情報(電話番号)と自端末(携帯電話100)の識別情報(電話番号)とに基づきルーム名RMNMを生成する。そして、ルーム名RMNMによって指示されるルームが開設されて、開設したルームを利用して通話していた端末の間でP2P通信網が形成される。そして、中断した通話をP2P通信網を利用したデータ通信により再開することができる。このように、P2Pボタン110Cを操作するという簡単操作で、通信機能を、通話からデータ通信へ切換えて、端末間でコミュニケーションを継続することができる。
【0188】
(プログラムおよび記録媒体)
ここで、本実施の形態における携帯電話100を含む通信端末間の、上述したような図20〜図25のフローチャートに従う機能はプログラムとして提供することができる。このようなプログラムは、携帯電話100のCPU106Aのコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、FD(Flexible Disc)、CD(Compact Disc)−ROMまたは記憶部103を構成するROM(Read Only Memory)およびRAM(Random Access Memory)、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット500を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【0189】
また、図26のフローチャートに従う機能もプログラムとして提供することができる。このようなプログラムは、マッチングサーバ400のCPU405のコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、FD(Flexible Disc)412、CD(Compact Disc)−ROM414またはメモリ406を構成するROM(Read Only Memory)およびRAM(Random Access Memory)、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵する固定ディスク407の記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット500を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【0190】
ここで、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【0191】
なお、一般的傾向として、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュールを用意しておき、アプリケーションプログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、本実施の形態に係るシステムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、当該コンピュータでオペレーティングシステムと協働してはじめてシステムが実現することになる。しかし、一般的なプラットホームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体(およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号)が実施の形態を構成すると考えることができる。
【0192】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され
、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0193】
【図1】本実施の形態に係るネットワークシステム1の一例を示す概略図である。
【図2】本実施の形態に係る携帯電話の概観を示すイメージ図である。
【図3】本実施の形態に係る携帯電話のハードウェア構成を示すブロック図である。
【図4】本実施の形態に係るアドレス帳データを説明する図である。
【図5】本実施の形態に係る自端末データを説明する図である。
【図6】本実施の形態に係る携帯電話の機能構成図である。
【図7】本実施の形態に係るマッチングサーバのハードウェア構成図である。
【図8】(A)と(B)は本実施の形態に係るルーム管理テーブルのデータ構造の一例を示す図である。
【図9】本実施の形態に係るマッチングサーバの機能構成図である。
【図10】本実施の形態に係る通信手順を模式的に示す図である。
【図11】本実施の形態に係るフレームの基本構成を説明する図である。
【図12】本実施の形態に係るルーム検索要求フレームの構成図である。
【図13】本実施の形態に係るルーム検索受付フレームの構成図である。
【図14】本実施の形態に係るルーム開設要求フレームの構成図である。
【図15】本実施の形態に係るルーム開設受付フレームの構成図である。
【図16】本実施の形態に係るルーム参加要求フレームの構成図である。
【図17】本実施の形態に係るルーム参加受付フレームの構成図である。
【図18】本実施の形態に係るルーム削除要求フレームの構成図である。
【図19】本実施の形態に係るルーム削除受付フレームの構成図である。
【図20】本実施の形態に係るメイン処理フローチャートである。
【図21】本実施の形態に係る発呼処理フローチャートである。
【図22】本実施の形態に係るTEL発呼処理フローチャートである。
【図23】本実施の形態に係るTEL着呼処理フローチャートである。
【図24】本実施の形態に係る第1−P2P処理フローチャートである。
【図25】本実施の形態に係る第2−P2P処理フローチャートである。
【図26】本実施の形態に係るマッチングサーバの処理フローチャートである。
【符号の説明】
【0194】
100 携帯電話、400 マッチングサーバ、406A ルーム管理テーブル、420 ルーム開設部、421A 参加受付部、421B 検索受付部、422 ルーム削除部、1066 発呼部、1068 TEL着呼部、1069 第1−P2P処理部、1070 第2−P2P処理部、1072 ルーム名生成部、1073 ルーム検索要求部、1074 ルーム開設要求部、1075 ルーム参加要求部、1076 ルーム削除要求部。
【技術分野】
【0001】
この発明は通信装置および通信方法に関し、特に、通話機能を備える通信装置および通信方法に関する。
【背景技術】
【0002】
近年、携帯電話機の普及により、様々な場所で携帯電話機を利用する機会が増えている。それに伴い、公共の場所で携帯電話機を利用する場合の使用者のマナーや、会話内容の漏洩が社会問題となっている。
【0003】
特に、人の多い街中で携帯電話機を使って通話する場合、自然と声が大きくなり、周囲への迷惑となるばかりでなく、個人情報の流出につながるおそれがある。また、使用環境や場所によっては、周辺の騒音によって音声が聞き取りにくい場合、あるいは話すのを躊躇する場合がある。
【0004】
このような場合には、通話からデータ通信に切換えれば、コミュニケーションを継続することができる。データ通信としては、たとえば電子メールやチャットシステムがある。
【0005】
電話機能とデータ通信機能の切り換えや、通話中に行なわれるデータ通信に関して、特許文献1(特開2008−109595号公報)では、端末から受信した音声データに基づいて、周辺環境の騒音レベルを測定し、騒音レベルに応じて音声通話からテキスト通話(チャット)に切換える。
【0006】
また、特許文献2(特開2001−127899号公報)では、通話中に入力された音声以外の情報(たとえば、カメラで撮影された画像データ)を、通話後、その通話相手にメールに添付して送信する。
【0007】
また、特許文献3(特開2002−330234号公報)では、電話の着信時または発信時に、その通話相手の電話番号をメールシステムに通知し、メールシステムでは、通知された電話番号に対応するメールアドレスをアドレス帳から検索して、検索したメールアドレスを電子メールの宛先欄に自動挿入する。
【0008】
また、特許文献4(特開2002−132694号公報)には、チャットしたい相手方の電話番号をサーバに通知してチャット要求すれば、サーバはそれに応じて相手方の端末にチャット依頼を送信するチャットシステムが開示される。
【特許文献1】特開2008−109595号公報
【特許文献2】特開2001−127899号公報
【特許文献3】特開2002−330234号公報
【特許文献4】特開2002−132694号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
通話機能からデータ通信機能に切換えて、コミュニケーションを継続する上で、特許文献1による、周辺環境の騒音レベルに応じた音声通話かテキスト通話かの自動選択は、利用シーンに応じて細かに制御されなければならない。
【0010】
つまり、図書館に居る(周辺環境の雑音レベルが低い)ときは、話し手側はテキスト通信が選択されるべきであるが、聞き手側はスピーカから出力される音量が小さければ、音声通話でも構わないはずである。また、道路工事現場の周辺に居る(周辺環境の雑音レベルが高い)ときは、話し手側は音声通話でも構わないが、聞き手側はテキスト通信が選択されるべきである。したがって、通話のように聞き手側・話し手側が常に入れ替わり得る、コミュニケーションツール(機能)としては、使い勝手の悪いシステムに成り得る。
【0011】
また、騒音レベルにのみ応じて、音声通話からテキスト通信に自動切換えされると、歩行中の通話が一方的にテキスト通信に切換わることもあり、歩きながらの文字入力は困難であることに鑑みると、特許文献1のシステムは利便性に優れない。
【0012】
通話機能からデータ通信機能に切換えて、コミュニケーションを継続する上で、特許文献3では、メールシステムを前提としていることから、以下の点が問題となる。
【0013】
メールシステムでは、複数文字列から成るメッセージ単位(送信操作までに入力された文字列単位)でのメッセージ交換であることから、電話(声によるコミュニケーション)時の、リアルタイムなコミュニケーションが維持できない。
【0014】
そこで、通話機能から切換えるデータ通信機能としては、チャットシステムとする方が好ましいが、従来のチャットシステムでは、特許文献4の「発明が解決しようとする課題」欄に記載されているとおり、互いに、所定のチャットルームへ入室する操作が必要となる。すなわち、電話(通話機能稼動)中に、たとえば、「一旦電話を切って、○○というチャットルームに入室しよう!」というメッセージにより相手の意思を確認するネゴシエーションのための特別な操作および通信が必要であり、また、このチャットルームに入室するための操作が必要となる。
【0015】
特許文献4では、電話(通話機能稼動)時のいずれの端末側がサーバに通知するかの取り決めがない。そのため、両方の端末がサーバに通知するとした場合には、サーバからのチャット依頼に対して、両方端末が依頼を不許可とするケース、すなわち、互いにチャットができない状況に陥るケースが生じる。
【0016】
また、特許文献4のシステムでは、電話番号をチャットシステムを利用する上で必要な情報(たとえば、IP(Internet Protocol)アドレス)に変換するための機構が必要となる。この場合には、変換のために参照される個人情報をサーバで管理する必要があるために、サーバ運用事業者は利用者からの信頼性が高い事業者に限定される。また、端末は、サーバから「チャット依頼」情報を受信するために常時、インターネットに接続される必要があるが、端末同士は1度、チャットシステム(たとえばP2P(peer to peer)通信)のためのIPアドレス情報を交換すればよく、サーバを経由する必要はない。
【0017】
したがって、特許文献4は、特定者(知人、直前まで電話で通話していた相手)との間での接続には不向きなシステムと言える。
【0018】
それゆえに、この発明の目的は、簡単な手続きにより通話していた相手との間でデータ通信を開始することができる通信装置を提供することである。
【課題を解決するための手段】
【0019】
この発明のある局面に従うと、無線電話網およびデータ通信網を接続する通信装置は、データ通信網のサーバ装置に他の通信装置とデータを交わすために開設されたルームをアクセスすることにより、他の通信装置とデータ通信するデータ通信部と、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部と、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするための通話部と、データ通信の要求を入力するために操作される通信要求部と、記憶部から読出した識別情報に基づきルームを識別するためのルーム識別子を生成する識別子生成部と、通信制御部とを備え、通信制御部は、通信要求部が前記要求を入力したことに応答して、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする。
【0020】
好ましくは、通信制御部は、検索によって、ルーム識別子に対応するルームが、サーバ装置において開設されていることを検出した場合には、ルームを前記データ通信部によりアクセスし、検索によって、ルーム識別子に対応するルームが、サーバ装置において未開設であることを検出した場合には、当該ルームの開設をサーバ装置に対して要求し、且つ当該ルームに他の通信装置がアクセスするのを待機する。
【0021】
好ましくは、通信制御部は、他の通信装置と通話の最中に、通話の中断が指示されたことに応答して、通話を中断し、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする通信切換部を含む。
【0022】
好ましくは、通信要求部によって要求が入力されたことに応答して、通話の回線を切断する切断信号を送信する切断信号送信部とを、さらに備え、通信切換部は、通信要求部によって要求が入力されたとき、または、他の通信装置から切断信号を受信したとき、通話の中断が指示される。
【0023】
この発明の他の局面に従うと、無線電話網およびデータ通信網を接続する通信装置における通信方法では、通信装置は、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部を備える。そして、通信方法は、データ通信網のサーバ装置に他の通信装置とデータを交わすために開設されたルームをアクセスすることにより、他の通信装置とデータ通信するステップと、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするステップと、データ通信の要求を入力するステップと、記憶部から読出した識別情報に基づきルームを識別するためのルーム識別子を生成するステップと、通信制御ステップとを備える。
【0024】
通信制御ステップでは、前述の要求を入力したことに応答して、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする。
【0025】
この発明の更に他の局面に従うと、上述に記載の通信方法をコンピュータに実行させるための通信プログラムが提供される。
【発明の効果】
【0026】
本発明によれば、通信要求部を操作してデータ通信の要求を入力するという簡単操作をするだけで、通話していた相手通信装置の識別情報と自己の通信装置の識別情報とで生成されたルーム識別子によって一意に特定されるルームを介して、通話していた相手通信装置との間でデータ通信するための通信網を形成することができる。
【発明を実施するための最良の形態】
【0027】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0028】
また、以下では、携帯電話100を「通信端末」の代表例として説明を行う。ただし、通信端末は、パーソナルコンピュータや、カーナビゲーション装置(Satellite navigation system)や、PND(Personal Navigation Device)や、PDA(Personal Data Assistance)などのような、他の情報通信機器であってもよい。
【0029】
<チャットルームに関する説明>
本実施の形態では、‘チャット’とは、後述のインターネット500またはキャリア網700を介したオンラインサービスによりリアルタイムに通信端末同士がメッセージをやり取りするような通信を指す。たとえば、メールサーバは介さないIPアドレスを用いたP2P通信、またはメールサーバ経由の電子メール交換であってもよい。また、チャットは、1対1の通信端末同士のチャットを指す。
【0030】
また、チャットルーム(以下、単にルームと略す)は、一般的には、テーマ・話題毎にデータ交換するために開設されて端末によりアクセスされる。本実施の形態では、通信端末において生成されるルームID(identifier)であるルーム名毎に開設される。本実施の形態では、‘ルーム’とは、当該ルームのルーム名に対応して、チャットのためのデータ通信(データ交換)を要求するユーザの識別情報を、すなわちユーザの通信端末の識別情報を相互に関係付けるための情報を指す。この通信端末の識別情報は、各通信端末を一意に識別するための情報であって、本実施の形態では各通信端末に割当されたIPアドレスとしている。
【0031】
したがって、本実施の形態では、‘ルームの開設’とは、ルームの生成に相当する。具体的には、所定記憶領域に新規にルーム名を格納するとともに、このルーム名に対応してルームの生成を要求したユーザの通信端末の識別情報を格納する動作に相当する。
【0032】
また、‘ルームへの参加’とは、所定記憶領域に既に格納されたルーム名に対応してチャットを要求するユーザの通信端末の識別情報を格納するともに、当該ユーザに対して他のユーザの通信端末の識別情報を配信する動作に相当する。
【0033】
また、‘ルームの削除’とは、削除するべきルームのルーム名を、所定記憶領域から削除するための動作を指す。
【0034】
上述の削除の処理は、所定域億領域から当該情報を実際に消去する処理でもよく、または、格納された当該情報を所定記憶領域から読出不可能な状態に設定する処理であってもよい。
【0035】
<ネットワークシステム1の全体構成>
図1を参照して、本実施の形態に係るネットワークシステム1は、携帯電話100A,100Bおよび100Cと、マッチングサーバ(第1のサーバ装置)400と、メールサーバ(第2のサーバ装置)600と、インターネット(第1のネットワーク)500と、キャリア網(第2のネットワーク)700とを含む。また、本実施の形態に係るネットワークシステム1は、車両250に搭載されるカーナビゲーション装置200と、パーソナルコンピュータ(PC;Personal Computer)300とを含む。
【0036】
なお、説明の容易化のために、以下では、本実施の形態に係るネットワークシステム1が、第1の携帯電話100Aと、第2の携帯電話100Bと、第3の携帯電話100Cとを含む場合について説明する。また、携帯電話100A,100B,100Cの各々に共通の構成や機能を説明する際には、それらを携帯電話100とも総称する。そして、携帯電話100A,100B,100C、カーナビゲーション装置200、パーソナルコンピュータ300の各々に共通の構成や機能を説明する際には、それらを通信端末とも総称する。
【0037】
携帯電話100は、キャリア網700に接続可能に構成されている。カーナビゲーション装置200は、インターネット500に接続可能に構成されている。パーソナルコンピュータ300は、LAN(Local Area Network)350やWAN(Wide Area Network
)を介してインターネット500に接続可能に構成されている。マッチングサーバ400は、インターネット500に接続可能に構成されている。メールサーバ600は、インターネット500およびキャリア網700に接続可能に構成されている。
【0038】
より詳細には、第1の携帯電話100Aと、第2の携帯電話100Bと、第3の携帯電話100Cと、カーナビゲーション装置200と、パーソナルコンピュータ300とは、キャリア網700やメールサーバ600やインターネット500を介して互いに接続可能であって、互いにデータの送受信が可能である。また、携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300には、自端末を特定するための識別情報(たとえば、メールアドレスやIP(Internet Protocol)アドレスなど)が割当てられる。すなわち、携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300は、内部の記録媒体に他の通信端末の識別情報を記憶することができ、当該識別情報に基づいてキャリア網700やインターネット500などを介して当該他の通信端末とデータ送受信を行うことができる。
【0039】
なお、本実施の形態に係る携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300とは、割当てられるIPアドレスを利用して、メールサーバ600を介さずに他の通信端末とデータ送受信を行うものである。ここでは、各通信端末がマッチングサーバ400にアクセスする際には、すなわち各通信端末がインターネットにアクセスした際に、マッチングサーバ400あるいは他の図示しないサーバ装置などによってIPアドレスが割当てられるものとする。IPアドレスの割当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
【0040】
また、本実施の形態に係る携帯電話100、カーナビゲーション装置200、パーソナルコンピュータ300は、自身に割当てられたIPアドレスを利用することにより、直接的に相互にネットワークを介してデータ送受信を行うことが可能である。すなわち、本実施の形態に係るネットワークシステム1に含まれる携帯電話100、カーナビゲーション装置200、パーソナルコンピュータ300は、いわゆるP2P(Peer to Peer)通信のネットワークを構成することが可能である。
【0041】
<携帯電話100のハードウェア構成>
本実施の形態に係る携帯電話100のハードウェア構成について説明する。図2は、本施の形態に係る携帯電話100の概観を示すイメージ図である。図3は、本施の形態に係る携帯電話100のハードウェア構成を示すブロック図である。
【0042】
図2および図3に示すように、本実施の形態に係る携帯電話100は、外部のネットワークとの間でデータを送受信する他の通信部101と、TEL(Telephone)用通信部102と、プログラムや各種データベースを記憶する記憶部103と、CPU(Central Processing Unit)106Aを備えた制御部106と、ディスプレイ107と、外部から音声を入力するためのマイク108と、音声を外部に出力するためのスピーカ109と、各種情報の入力を受付ける入力部110と、電話および電子メールの着信をベルによる音や振動(バイブレーション)で報知するための第1の通知部111と、電話および電子メールの着信を光源(たとえば、LED(Light Emitting Diode))の発光で報知するための第2の通知部112とを含む。
【0043】
本実施の形態に係るディスプレイ107は、液晶パネルやCRT(Cathode Ray Tube)から構成されるタッチパネルである。すなわち、本実施の形態に係る携帯電話100は、ディスプレイ107の下側(裏側)にタブレット119が敷設されている。ユーザはスタイラスペン120を用いてディスプレイ107上に文字・記号・図形などを描画すると、描画による軌跡を示す座標データがタブレット119を介して検出されて制御部106に与えられる。これにより、スタイラスペン120を操作して手書き入力した文字・記号・図形の情報を制御部106に入力することができる。ディスプレイ107は、制御部106が出力した情報に基づいて、手書き入力された画像やテキストを表示する。
【0044】
入力部110は、スイッチ・キー・ボタンなどを備え、ユーザがスイッチ・キー・ボタンを操作することによって入力した情報を受付ける。たとえば、入力部110は、通話を受付けたり、通話を発したりするために操作されるTELボタン110Aと、メールを受付けたり、メールを発したりするために操作されるメールボタン110Bと、P2P通信を受付けたり、P2P通信を発したりするために操作されるP2Pボタン110Cと、アドレス帳データを参照するために操作されるアドレス帳ボタン110Dと、各種の処理を終了させるために操作される終了ボタン110Eとを含む。
【0045】
第1の通知部111は、スピーカ109などを介して着信音(たとえばベル音)を出力する。あるいは、第1の通知部111は、バイブレーション機能を有する。第1の通知部111は、着呼に応じて、またはメール受信に応じて、音声を出力したり、携帯電話100を振動させたりする。
【0046】
第2の通知部112は、着呼に応じて点滅するTEL用LED112Aと、メールを受信したときに点滅するメール用LED112Bと、P2P通信に従う信号を受信したときに点滅するP2P用LED112Cを含む。
【0047】
制御部106は、CPU106Aを含むマイクロコンピュータによって実現され、携帯電話100の各部を制御する。たとえば、入力部110を介してユーザから各種の命令を受付けて、他の通信部101やTEL用通信部102やネットワークを介して外部の通信端末とデータの送受信を行う。
【0048】
他の通信部101およびTEL用通信部102は、無線通信機能を有し無線通信を行なう。具体的には、制御部106からの通信データを通信信号に変換し、その通信信号を図示しないアンテナを介して発信する。他の通信部101およびTEL用通信部102は、アンテナを介して受信した通信信号を通信データに変換し、その通信データを制御部106に入力する。
【0049】
記憶部103は、作業用メモリとして機能するRAM(Random Access Memory)や、制御プログラムなどを格納するROM(Read Only Memory)や、画像データなどを記憶するハードディスクなどによって実現される。図4は、記憶部103に格納されるアドレス帳データを示す図である。図5は、記憶部103に格納される自端末データを示す図である。
【0050】
図3に示すように、記憶部103のワークメモリ103Aには、通話をした相手の電話番号を指示する変数HISTELNO、選択されたアドレスのメモリNoを指示する変数SEL、生成されたルーム名を指示する変数RMNMが格納される。
【0051】
図3の記憶部103は、さらに、アドレス帳データAdrDB[]が格納される記憶領域103B、携帯電話100(自端末)に関する自端末データMyAdrが格納される記憶領域103C、他端末のIPアドレスデータHIS_IPADRを格納する記憶領域103D、自端末のIPアドレスデータMY_IPADRを格納する記憶領域103E、およびマッチングサーバ400のアドレスデータSEV_ADRを格納する記憶領域103F含む。
【0052】
上述したデータが格納される記憶部103の領域は、携帯電話100の電源がOFFされても記憶内容が消去しないメモリ、たとえばフラッシュメモリからなる。
【0053】
図4を参照して、記憶領域103Bのアドレス帳データAdrDB[]は、宛先(他の通信端末)毎に個別にメモリNoを指すデータ1031、ならびに宛先の名前、通話において相手端末を一意に識別するための電話番号およびデータ通信において相手端末を一意に識別するためのメールアドレスを指すデータ1032、1033および1034対応付けて含む。
【0054】
図5を参照して、記憶領域103Cの自端末データMyAdrは、自端末のユーザの名前、自端末を一意に識別するための電話番号およびメールアドレスを指すデータ1035、1036および1037を含む。
【0055】
<携帯電話100の機能構成>
図6を参照して、本実施の形態に係る携帯電話100のCPU106Aは、端末通信部1061、フレーム解析部1062、フレーム生成部1063、入力受付部1064、通知処理部1065、TEL発呼部1067を含む発呼部1066、第1−P2P処理部1069、第2−P2P処理部1070およびルームアクセス部1071を備える。これらの各部の機能は予めプログラム・データとして記憶部103の所定記憶領域に格納されており、CPU106Aがこれらプログラム・データを記憶部103から読出し、実行することにより、各部の機能が実現される。
【0056】
図6においては、CPU106Aが有する各機能とデータ・情報を入出力する周辺回路部のみが示される。
【0057】
端末通信部1061は、電話による通信を制御するためのTEL用通信部102、サーバとの通信を制御するサーバ通信部1081およびIPアドレスを用いたP2P通信を制御するためのP2P通信部1082を含む。
【0058】
フレーム解析部1062は、端末通信部1061によって受信されたフレームを入力し、入力したフレームのデータを解析し、解析結果を出力する。フレーム生成部1063は、端末通信部1061を介して外部ネットワークに送信するべきフレームを生成する。入力受付部1064は、タブレット119および入力部110から入力されたデータを受付ける。通知処理部1065は、第1および第2の通知部111および112の出力動作を制御する。
【0059】
携帯電話100の発呼動作はTEL発呼部1067により制御されて、外部からの電話の呼の着信(着呼)はTEL着呼部1068により制御される。
【0060】
第1−P2P処理部1069および第2−P2P処理部1070は、携帯電話100によるP2P通信を制御する。
【0061】
ルームアクセス部1071は、P2P通信に従うチャット通信のためにマッチングサーバ400に格納されるルームのアクセスを制御する。具体的には、ルーム名を生成するルーム名生成部1072、ルーム名生成部1072が生成したルーム名に基づきルームの検索をマッチングサーバ400に対して要求するためのルーム検索要求部1073、ルーム名生成部1072が生成したルーム名に基づきルームの開設をマッチングサーバ400に対して要求するためのルーム開設要求部1074、ルーム名生成部1072が生成したルーム名に基づきルームへの参加をマッチングサーバ400に対して要求するためのルーム参加要求部1075、およびルーム名生成部1072が生成したルーム名に基づきルームの削除をマッチングサーバ400に対して要求をするためのルーム削除要求部1076を含む。
【0062】
<ルーム名生成処理>
ルーム名生成部1072は、所定のルール(関数)に、変数HISTELNOが指す電話番号と変数MyAdrのデータ1033が指す電話番号(MyAdr.TELNo)とをパラメータとして適用して、当該ルール(関数)に従いルーム名の変数RMNMを生成する。
【0063】
ここではハッシュ関数を用いて、生成されたルーム名からはパラメータとして用いた2つの電話番号(変数HISTELNOが指す電話番号と変数MyAdrのデータ1033が指す電話番号(MyAdr.TELNo))が推測できないよう暗号化しているが、適用されるルール(関数)は、携帯電話100と通話相手の携帯電話100との間でユニークとなるルーム名が、互いに(自己の携帯電話100、ならびに、通話相手の携帯電話100ともに)、同一のルーム名が生成できるルールであれば、これに限定されない。
【0064】
このように本実施の形態では、ルーム名は、携帯電話100において、自己の電話番号(MyAdr.TELNo)と、通話相手の電話番号(HISTELNO)に基づき生成されるので、通話を行なっていた2人のユーザの携帯電話100では、同一のルーム名を生成することができる。
【0065】
<マッチングサーバ400およびメールサーバ600のハードウェア構成>
次に、本実施の形態に係るマッチングサーバ400およびメールサーバ600のハードウェア構成について説明する。なお、メールサーバ600のハードウェア構成は、マッチングサーバ400のそれと同様であるので説明を繰り返さない。
【0066】
図7は、本実施の形態に係るマッチングサーバ400のハードウェア構成を示すブロック図である。図7に示すように、本実施の形態に係るマッチングサーバ400は、相互に内部バス408で接続されたCPU405と、メモリ406と、固定ディスク407と、サーバ通信部409とを含む。
【0067】
メモリ406は、各種の情報を記憶するものであって、たとえば、CPU405でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク407は、CPU105が実行するプログラムやデータベースを記憶する。CPU405は、マッチングサーバ400およびメールサーバ600の各要素を制御するものであって、各種の演算を実施する装置である。
【0068】
サーバ通信部409は、CPU405が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してCPU405に入力する。具体的には、サーバ通信部409は、CPU405からのデータを、インターネット500やキャリア網700などを介して携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300に送信する。そして、インターネット500やキャリア網700を介して携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300から受信したデータを、CPU405に入力する。
【0069】
図8(A)は、マッチングサーバ400のメモリ406あるいは固定ディスク407に記憶されるルーム管理テーブル406Aのデータ構造の一例を示す図であって、図8(B)は、他の例を示す図である。図8(A)および図8(B)に示すように、ルーム管理テーブル406Aは、ルーム名を指すデータ4061とIPアドレスを指すデータ4062とメールアドレスのデータ4063とを対応付けて格納する。
【0070】
たとえば、ある時点においては、図8(A)に示すように、マッチングサーバ400にルーム名‘R’、‘S’および‘T’それぞれを有するルームが開設されている。そして、ルーム名‘R’を有するルームには、IPアドレスとして‘A’およびメールアドレスとして‘AA’を有する通信端末と、IPアドレスとして‘C’およびメールアドレスとして‘CC’を有する通信端末が参加している。ルーム名‘S’を有するルームには、‘IPアドレスとして‘B’およびメールアドレスとして‘BB’を有する通信端末が参加している。ルーム名‘T’を有するルームには、IPアドレスとして‘D’およびメールアドレスとして‘DD’を有する通信端末が参加している。
【0071】
たとえばIPアドレスが‘A’の携帯電話100と‘C’の携帯電話100とが通話をしていた場合には、両方の携帯電話100のそれぞれにおいて、お互いの電話番号に基づき同一のルーム名(RMNM)‘R’が生成される。通話をしていたユーザは、生成した同一のルーム名‘R’に基づきルーム参加要求部1075によりマッチングサーバ400に対しルームへの参加を要求できる。したがって、IPアドレスが‘A’と‘C’の携帯電話100のユーザは、図8(A)に示すようにルーム名‘R’のルームに参加することができる。
【0072】
図8(B)では、IPアドレスが‘B’の携帯電話100のユーザが既に開設していたルーム名‘S’のルームに、IPアドレスが‘E’の携帯電話100のユーザがその後に参加した状態が示される。
【0073】
<マッチングサーバ400の機能構成>
図9を参照して、マッチングサーバ400は、ルーム開設部420、ルームへの参加およびルームの検索を受付ける参加受付部421Aおよび検索受付部421Bを有するルーム受付部421、ルーム削除部422、フレーム生成部423およびフレーム解析部424を含む。これらの各部は、固定ディスク407またはメモリ406の所定の記憶領域に予めプログラム・データとして格納されており、CPU405が所定記憶領域からプログラム・データを読出し、実行することにより、各部の機能が実現される。
【0074】
メモリ406には、前述したルーム管理テーブル406Aおよびマッチングサーバアドレスのデータ406Bが格納される。
【0075】
ルーム開設部420は、メモリ406のルーム管理テーブル406Aに、新たに開設するべきルームに対応するデータを格納することにより、ルームを開設する。ルーム受付部421は、携帯電話100から受信したルームへの参加および検索の要求の受付処理を行なう。ルーム削除部422は、携帯電話100からルームの削除要求を受付けたときに、要求されたルームを削除する。フレーム生成部423は、サーバ通信部409を介してインターネット500に送信するべきデータのフレームを生成し、生成したフレームをサーバ通信部409に出力する。フレーム解析部424は、サーバ通信部409がインターネット500を介して受信したデータのフレームを解析し、解析結果を出力する。
【0076】
マッチングサーバ400においては、第1の携帯電話100Aから新たなルームの開設を要求するフレームを受信すると、ルーム開設部420は受信したフレーム中からルーム名と、第1の携帯電話100AのIPアドレスと、メールアドレスとを検出し、ルーム管理テーブル406Aに検出したルーム名と第1の携帯電話100AのIPアドレスとメールアドレスとを対応付けて格納する。
【0077】
そして、第2の携帯電話100Cがマッチングサーバ400にルームへの参加を要求するフレームを送信すると、CPU405は当該フレームを受信する。受付部421の参加受付部421Aは受信したフレーム中から、ルーム名と第2の携帯電話100CのIPアドレスとメールアドレスとを検出し、ルーム管理テーブル406Aに検出したルーム名と第2の携帯電話100CのIPアドレスとメールアドレスとを対応付けて格納する。このとき、参加受付部421Aは、ルーム管理テーブル406Aから、当該ルーム名に対応する第1および第2の携帯電話100Aと100CのIPアドレスを読出して、フレーム生成部423に与える。フレーム生成部423は、与えられた第1および第2の携帯電話100Aおよび100CのIPアドレスを格納した参加受付のフレームを生成し、第1および第2の携帯電話100Aおよび100C宛てに送信する。これにより、同一ルーム名のルームに参加した第1および第2の携帯電話100Aおよび100Cのユーザは、お互いのIPアドレスを受信できる。以降、受信したIPアドレスを用いて第1および第2の携帯電話100Aおよび100Cの間でP2P通信を行うことができる。
【0078】
(P2Pの動作概要)
本実施の形態に係るネットワークシステム1の動作概要について説明する。
【0079】
図10は、ネットワークシステム1における動作概要を示すシーケンス図である。本実施の形態に係る各通信端末は、P2P通信を行うために、はじめに互いのIPアドレスを交換(取得)する必要がある。そして、各通信端末は、IPアドレスを取得した後に、P2P通信によってメッセージや添付ファイルなどを他の通信端末に送信する。
【0080】
ここでは、携帯電話100Aのユーザが携帯電話100Cのユーザと電話による通話中に、通話を中断し以降の通話を2P2通信によるメッセージ交換に切換えることを希望したケースを想定する。なお、携帯電話100Aと100Cには、予め1Pアドレスが割当てられていると想定する。
【0081】
通話を中断した後に、まず、第1の携帯電話100A(図10において端末A)は、キャリア網700、メールサーバ600、インターネット500を介して、マッチングサーバ400に宛てて、第1の携帯電話100Aと100Cの電話番号に基づき生成したルーム名‘R’と第1の携帯電話100AのIPアドレス‘A’とメールアドレス‘AA’を格納したルーム開設を要求するフレームを送信する(ステップS002)。
【0082】
マッチングサーバ400は、第1の携帯電話100Aからルーム開設の要求フレームを受信すると、受信フレームから検出した第1の携帯電話100AのIPアドレス‘A’とメールアドレス‘AA’とルーム名‘R’を対応付けてルーム管理テーブル406Aに格納する。これにより、第1の携帯電話100Aが生成したルーム名‘R’を有したルームが開設される。このとき、マッチングサーバ400は、ルーム開設が完了した旨を第1の携帯電話100Aに通知してもよい。
【0083】
第2の携帯電話100Cは、第1の携帯電話100Aと同様の手順でルーム名‘R’を生成し、生成したルーム名‘R’と、第2の携帯電話100CのIPアドレス‘C’を格納した参加要求のフレームをマッチングサーバ400に送信する(ステップS008)。
【0084】
マッチングサーバ400が参加要求フレームを受信すると、検索受付部421Bは受信したフレームから検出したルーム名‘R’に基づきルーム管理テーブル406Aを検索し、検索結果に基づき、既にルーム名‘R’のルームが開設されていると検出する。そして、受信したフレームから検出したIPアドレス‘C’およびメールアドレス‘CC’を、検出したルーム名‘R’に対応付けて格納する。そして、マッチングサーバ400は、同一ルームに既に参加していた第1の携帯電話100Aに宛てて、第2の携帯電話100Cがルームに参加した旨と、ルーム管理テーブル406Aから読出した第2の携帯電話100CのIPアドレス‘C’とを送信する(ステップS010)。同時に、マッチングサーバ400は、第2の携帯電話100Cに、ルームへの参加を受付けた旨と当該ルームに既に参加していた第1の携帯電話100AのIPアドレス‘A’とを送信する。これにより、第1および第2携帯電話100Aおよび100Cはお互いのIPアドレスを受信(取得)する。このとき、携帯電話100からの削除要求を受けなくとも、ルーム削除部422はルーム名‘R’のルームを削除してもよい。
【0085】
第1の携帯電話100Aは、取得したIPアドレス‘C’に基づいて第2の携帯電話100CにP2P接続要求メッセージ(開始メッセージ)を送信する(ステップS012)。第2の携帯電話100Cは、接続要求メッセージを受信して、第1の携帯電話100AのIPアドレ‘A’に基づいて第1の携帯電話100Aに第1の接続承諾メッセージ(返答メッセージ)を送信する(ステップS014)。第1の携帯電話100Aは、第2の携帯電話100Cから第2の接続承諾メッセージを受信して、第2の携帯電話100Cに接続承諾メッセージを送信する(ステップS016)。
【0086】
このようにして、第1の携帯電話100Aと第2の携帯電話100Cとは、互いに相手を認証する。認証が完了すると、第1の携帯電話100Aと第2の携帯電話100Cとは、P2P通信を開始する(ステップS018)。そして携帯電話100Aと100Cの間では、P2P通信に従うメッセージ交換が行なわれる。これにより、中断した通話を、メッセージ交換により再開することができる。
【0087】
その後、第1の携帯電話100Aが、第2の携帯電話100CにP2P通信を切断する旨のメッセージを送信すると(ステップS030)、第2の携帯電話100Cは、第1の携帯電話100Aに切断する要求を受付けた旨のメッセージを送信する(ステップS032)。
【0088】
<通信フレームの構成>
携帯電話100とマッチングサーバ400の間で送受信されるフレームの構成について説明する。
【0089】
図11を参照してフレームの基本的な構成について説明する。フレームは、ヘッダ部610と、データ部620を含む。ヘッダ部610には、当該フレームの種別(タイプ)を指示するデータ611、当該フレームの宛先‘DD’を示すデータ612および当該フレームの送信元‘SD’を示すデータ613が格納される。データ部620は、送信すべきデータを格納する。
【0090】
データ611が示すタイプは、本実施の形態では、要求フレームであることを示す“1”と、要求の受付を示す“0”のいずれかの値となる。また、本実施の形態ではフレームは、携帯電話100とマッチングサーバ400との間で送受信されるため、データ612および613としては、携帯電話100の記憶部103から読出されたメールアドレスのデータ1037、およびマッチングサーバアドレスのデータ406Bまたは記憶領域103FのアドレスデータSEV_ADRが格納される。
【0091】
携帯電話100のルーム検索要求部1073が、ルーム管理テーブル406Aのルームの検索を要求する場合には、フレーム生成部1063が図12のルーム検索要求のフレーム599を生成する。生成したフレームはサーバ通信部1081によってマッチングサーバ400に宛てて送信される。
【0092】
フレーム599は、データ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレスのデータ1037がそれぞれ格納される。また、データ部620には、検索の命令コード(‘RM_SEARCH’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0093】
マッチングサーバ400は、ルーム検索要求のフレーム599を受信した場合に、フレーム生成部423は、図13のルーム検索受付のフレーム600を生成し、携帯電話100宛てに送信する。フレーム600は、ヘッダ部610においてデータ611は“0”を示し、データ612として受信したフレーム599のデータ613が格納される。また、データ613として、記憶部406から読出したマッチングサーバアドレスのデータ406Bが格納される。データ部620には、命令コード621として空データが格納される。また、受信したルーム検索要求のフレーム599のデータ622が格納される。また、ルーム検索要求に基づき検索受付部421Bがルーム管理テーブル406Aを検索した結果のデータ626が格納される。データ626は、データ622が指すルーム名がルーム管理テーブル406に格納されていた場合には‘0’を指示し、格納されていなかった場合には‘−1’を指示する。
【0094】
携帯電話100が、ルーム開設を要求する場合には、フレーム生成部1063が図14のルーム開設要求のフレーム601を生成する。生成したフレーム601は、サーバ通信部1081によってマッチングサーバ400に宛てて送信される。
【0095】
フレーム601は、データ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレスのデータ1037がそれぞれ格納される。また、データ部620には、開設の命令コード(‘RM_CREATE’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0096】
マッチングサーバ400は、ルーム開設要求のフレーム601を受信した場合に、フレーム生成部423は、図15のルーム開設受付のフレーム602を生成し、携帯電話100宛てに送信する。フレーム602は、ヘッダ部610においてデータ611は“0”を示し、データ612として受信したフレーム601のデータ613が格納される。また、データ613として、メモリ406から読出したマッチングサーバアドレスのデータ406Bが格納される。データ部620には、命令コード621として空データが格納される。また、受信したルーム開設要求のフレーム601のデータ622が格納される。また、データ624として、ルーム開設要求に基づいたルーム開設部420によるルーム開設の受付結果のデータが格納される。データ624は、データ622が指すルーム名のルーム開設に成功した場合には‘0’を指示し、開設できなかった場合には‘−1’を指示する。開設できない場合とは、たとえば、既に、同一ルーム名のルームが開設されている場合である。
【0097】
携帯電話100のルーム参加要求部1075が、ルームへの参加を要求する場合には、フレーム生成部1063が図16のルーム参加要求のフレーム603を生成する。生成したフレーム603はサーバ通信部1081によってマッチングサーバ400に宛てて送信される。
【0098】
フレーム603は、データ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレス1037がそれぞれ格納される。また、データ部620には、参加の命令コード(‘RM_ENTRY’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0099】
携帯電話100が図16のルーム参加要求のフレーム603を送信した場合において、マッチングサーバ400の参加受付部421Aは当該フレーム603のデータ622が指示するルーム名に基づきルーム管理テーブル406Aを検索する。検索結果に基づき、一致するルーム名を有するルームが既に開設されていると判定した場合には、マッチングサーバ400から、携帯電話100に宛てて、図17に示すルーム参加受付のフレーム604が送信される。具体的には、参加要求元の携帯電話100と、指示されたルーム名のルームに既に参加していた携帯電話100のそれぞれに宛ててフレーム604が送信される。
【0100】
参加要求元の携帯電話100宛のフレーム604は、ヘッダ部610にフレーム602と同様のデータが格納される。データ部620には、ルーム参加要求のフレーム603のデータ622が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”を示すデータ624と、当該ルームに既に参加している他のユーザの携帯電話100のIPアドレスのデータ4062が、ルーム管理テーブル406Aから読出されてデータ625として格納される。
【0101】
既に参加していた携帯電話100宛のフレーム604は、ヘッダ部610のデータ611は“0”を指し、データ612はこの携帯電話100のメールアドレスを指示し、データ613はマッチングサーバアドレスのデータ406Bを指す。データ612のメールアドレスは、ルーム管理テーブル406Aを検索して読出した当該ルーム名RMNMを指示するデータ4061に対応して格納されたメールアドレスのデータ4063を指す。データ部620には、ルーム参加要求のフレーム603のデータ622が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”(値‘0’)を示すデータ624と、当該ルームに参加要求をした他のユーザの携帯電話100のIPアドレスを指すデータ625が格納される。
【0102】
なお、参加の受付けに成功しなかった場合には、データ624には値‘−1’が設定されて、フレーム604は要求元の携帯電話100に送信される。
【0103】
携帯電話100のルーム削除要求部1076が、ルームの削除をマッチングサーバ400に対して要求する場合には、フレーム生成部1063が図18に示すルーム削除要求のフレーム605をマッチングサーバ400に宛てて送信する。フレーム605は、ヘッダ部610においてデータ611が“1”を指示し、データ612および613として、記憶部103から読出されたマッチングサーバ400のアドレスデータSEV_ADRとメールアドレス1037がそれぞれ格納される。また、データ部620には、削除の命令コード(‘RM_DELETE’)621と、ルーム名のデータ622と、IPアドレスのデータ623とが格納される。データ622として、ルーム名生成部1072によって生成されたルーム名のデータRMNMが記憶部103から読出されて格納される。データ623として、送信元の携帯電話100に予め割当てられたIPアドレスのデータMY_IPADRが、記憶部103から読出されて格納される。
【0104】
マッチングサーバ400は、ルーム削除要求のフレーム605を受信した場合に、フレーム生成部423は、図19のルーム削除受付のフレーム606を生成し、携帯電話100宛てに送信する。フレーム606は、ヘッダ部610においてデータ611は“0”を示し、データ612として受信したフレーム605のデータ613が格納される。また、データ613として、記憶部406から読出したマッチングサーバアドレスのデータ406Bが格納される。データ部620には、命令コード621として空データが格納される。また、受信したルーム削除要求のフレーム605のデータ622が格納される。また、データ624として、ルーム削除要求に基づきルーム削除部422がルーム管理テーブル406Aからルームを削除した結果のデータが格納される。データ624は、データ622が指すルーム名のルームをルーム管理テーブル406から削除するのに成功した場合には‘0’を指示し、削除に成功しなかった場合には‘−1’を指示する。
【0105】
<処理フローチャート>
電話で通話中に、P2P通信に従うデータ通信に切換える手順について図20〜図26のフローチャートを参照し説明する。
【0106】
図20〜図25のフローチャートは携帯電話100において実行されるプログラムに従う処理を示す。このプログラムは予め記憶部103に格納されており、CPU106Aがプログラムを記憶部103から読出し、実行する。また、図26のフローチャートはマッチングサーバ400において実行されるプログラムに従う処理を示す。このプログラムは予めメモリ406に格納されており、CPU405がプログラムをメモリ406から読出し、実行する。
【0107】
なお、ここでは、携帯電話100Aと携帯電話100Cとの間で通話をすると想定する。電話による通話では発信者が通話相手の電話番号をダイヤルし、受信者が受話器を持ち上げた時点で呼が確立される。本実施の形態では、‘呼’(call)は、2つの携帯電話100間の物理的な通信路(いわゆる電話回線)を指し、かかる通信路の確立の要求には通話相手の電話番号が含まれる。かかる要求を受信することを‘着呼’と言い、当該要求を送信することを‘発呼’と言う。‘着呼’および‘発呼’に応じた携帯電話100における処理は、TELボタン110Aの操作がトリガとなって開始される。
【0108】
動作において、携帯電話100(携帯電話100Aおよび携帯電話100Cのそれぞれ)は電源がONされると、図20のフローチャートに従う処理を開始する。
【0109】
まず、CPU106Aは記憶部103から読出した変数HISTELNOに値‘NULL’を代入する(ステップS1)。次に、ディスプレイ107に操作を待受るための待受画面を表示する(ステップS3)。
【0110】
その後、入力受付部1064は、入力部110またはタブレット119がユーザによって操作されることによって外部から指示が入力されるか否かを判定する。
【0111】
具体的には、アドレス帳ボタン110Dが操作されたか否かを判定する(ステップS5)。アドレス帳ボタン110Dが操作されたと判定すると(ステップS5でYES)、処理は、後述する発呼処理(ステップS7)に移行する。
【0112】
アドレス帳ボタン110Dが操作されないと判定すると(ステップS5でNO)、CPU106AはTEL用通信部102を介してキャリア網700から電話の呼を受信したか否かを判定する(ステップS9)。着呼したことを判定すると(ステップS9でYES)、処理は後述するTEL着呼処理(ステップS11)に移行する。
【0113】
一方、着呼したとことが判定されないと(ステップS9でNO)、入力受付部1064は、入力部110からの入力信号に基づき、P2Pボタン110Cが操作されたか否かを判定する(ステップS13)。P2Pボタン110Cが操作されたと判定されなければ(ステップS13でNO)、処理はステップS5に戻る。
【0114】
一方、P2Pボタン110Cが操作されたと判定されると(ステップS13でYES)、CPU106Aは変数HISTELNOの値が‘NULL’を指示するか否かを判定する(ステップS10)。変数HISTELNOが‘NULL’を指示すると判定すると(ステップS15でYES)、処理はステップS5に戻る。
【0115】
一方、変数HISTELNOの値は‘NULL’を指示すると判定しないと(ステップS15でNO)、処理は後述する第1−P2P処理(ステップS17)に移行する。図24の第1−P2P処理では、前述した手順に従い変数HISTELNOのデータを用いて生成したルーム名RMNMのルームを介してP2P通信制御(ステップS97)が行なわれるから、直前に通話していた相手に限定されず、変数HISTELNOに電話番号が設定されている通話をした相手であればP2P通信制御を開始することができる。
【0116】
図21を参照して、操作待受時(ステップS3)にアドレス帳ボタン110Dが操作された場合に開始される発呼処理について説明する。
【0117】
アドレス帳ボタン110Dが操作されると、発呼部1066は、記憶部103からアドレス帳データAdrDB[]を読出し、ディスプレイ107に表示する(ステップS19)。ディスプレイ107に表示された図4のアドレス帳データを確認したユーザは、所望の通信相手を指す名前のデータ1032をタブレット119を操作して選択する。これにより、発呼部1066は、選択された名前のデータ1032に対応するデータ1031が指すメモリNoの値を、変数SELに代入する(ステップS21)。続いて、発呼部1066は、入力受付部1064を介して、ユーザがTELボタン110A、P2Pボタン110Cおよび終了ボタン110Eのいずれを操作するかを判定する(ステップS23、S27、S31)。
【0118】
具体的には、TELボタン110Aが操作されたと判定すると(ステップS23でYES)、処理は、後述するTEL発呼処理(ステップS25)に移行する。一方、TELボタン110Aが操作されないと判定されると(ステップS23でNO)、P2Pボタン110Cが操作されたか否かが判定される(ステップS27)。P2Pボタン110Cが操作されたと判定されると(ステップS27でYES)、処理は、後述する第1−P2P処理(ステップS29)に移行する。
【0119】
一方、P2Pボタン110Cが操作されたと判定されなければ(ステップS27でNO)、終了ボタン110Eが操作されたか否かが判定される(ステップS31)。終了ボタン110Eが操作されたと判定されなければ(ステップS31でNO)、処理はステップS23に戻り、ステップS23以降の処理が同様に繰返される。
【0120】
一方、終了ボタン110Eが操作されたと判定されると(ステップS31でYES)、処理は図20のステップS3に移行する。これにより、ディスプレイ107には待受画面が表示される。
【0121】
図22を参照して、図21のステップS23においてTELボタン110Aが操作された場合に起動するTEL発呼部1067が制御するTEL発呼処理について説明する。
【0122】
TELボタン110Aが操作されると、TEL発呼部1067は、変数HISTELNOに、変数AdrDB[SEL].TELNoの値を代入する。これによって、変数HISTELNOの値は、図21のステップS21においてユーザが選択した発信先の電話番号のデータ1033が設定される。続いて、TEL発呼部1067は、TEL用通信部102を制御して、変数HISTELNOが指示する電話番号に基づき発呼処理を行なう(ステップS35)。これにより、変数HISTELNOで指示される相手先の端末が呼出される。
【0123】
TEL発呼部1067は、TELボタン110Aが操作されたか否か、すなわち通話のための回線の切断処理が指示されたか否かを判定する(ステップS37)。TELボタン110Aが操作されたと判定すると(ステップS37でYES)、ステップS39においてTEL用通信部102を介した発呼処理を終了させ(ステップS39)、処理は図20のステップS1に移行する。これにより、発呼したが、相手側が受信せずに(通話をすることなく)発呼処理を終了した場合には、変数HISTELNOの値は相手側の電話番号から‘NULL’に変更される。
【0124】
一方、TEL発呼部1067は、入力受付部1064を介して、ユーザがTELボタン110Aを操作しないと判定すると(ステップS37でNO)、TEL用通信部102によって相手端末からの応答を受信するか否かを判定する(ステップS41)。応答を受信しないと判定すると(ステップS41でNO)、処理はステップS37に戻る。
【0125】
一方、相手端末からの応答を受信したと判定すると(ステップS41でYES)、処理はステップS43に移行する。
【0126】
ステップS43においては、TEL用通信部102を介して、ユーザは相手端末と通話を行なう。この通話においては、相手とマイク108およびスピーカ109を介した通話が行なわれる。ここでは、通話の処理の詳細は省略する。
【0127】
ステップS43の通話制御が行われる場合において、TEL発呼部1067は、ユーザによってTELボタン110Aが操作されたか否かを判定する(ステップS45)。TELボタン110Aが操作されたと判定すると(ステップS45でYES)、オンフック処理が行なわれる(ステップS47)。これにより、TEL用通信部102を介して電話回線の切断を指示する切断信号が相手端末に送信される。このように、通話の終了を相手側と確認したユーザがTELボタン110Aを操作し、通話の終了を指示した場合には、電話回線は切断されて通話は終了する。そして、処理は図20のステップS3に戻る。
【0128】
一方、TELボタン110Aが操作されないと判定されると(ステップS45でNO)、TEL発呼部1067は、TEL用通信部102によって、相手端末から電話回線の切断信号を受信するか否か、すなわち相手端末のユーザは通話の終了を確認してオンフック操作をしたか否かを判定する(ステップS49)。切断信号を受信したと判定すると(ステップS49でYES)、処理は後述する第2−P2P処理(ステップS51)に移行する。
【0129】
一方、相手端末から切断信号を受信しないと判定すると(ステップS49でNO)、ユーザによってP2Pボタン110Cが操作された否かを、入力受付部1064によって受付けた信号に基づき判定する(ステップS53)。この判定結果に基づきP2Pボタン110Cが操作されないと判定すると(ステップS53でNO)、通話を継続するために、処理はステップS43に戻る。一方、通話の最中にP2Pボタン110Cが操作されたと判定されると(ステップS53でYES)、TEL発呼部1067はTEL用通信部102を介して切断信号を相手端末に送信することによってオンフック処理を行なう(ステップS55)。これにより、電話回線は切断されて、相手端末との通話は中断によって終了する。その後、処理は、中断した通話をデータ通信により再開するために、後述する第1−P2P処理(ステップS57)に移行する。
【0130】
図23を参照して、図20のステップS9において電話呼出(着呼)が検出された場合に起動されるTEL着呼処理について説明する。
【0131】
TEL着呼部1068は、受信した着呼に基づき、発信者番号の非通知が設定されているか否かを判定する(ステップS61)。非通知の設定がされていると判定すると(ステップS61でYES)、処理は、後述するステップS67に移行する。
【0132】
一方、非通知が設定されていないと判定すると(ステップS61でNO)、TEL着呼部1068は、着呼が指す発信元の電話番号に基づき記憶部103のアドレス帳データAdrDB[]を検索する。検索結果に基づき、発信元の電話番号が、データ1033として登録(格納)済みであるか否かを判定する(ステップS63)。未登録と判定すると(ステップS63でNO)、処理は、後述のステップS67に移行する。
【0133】
一方、登録済みと判定すると(ステップS63でYES)、変数HISTELNOに、受信した着呼が指示する発信元の電話番号を設定する(ステップS65)。続いて、ステップS67において、TEL着呼部1068は、着呼を外部に報知するために、通知処理部1065を制御して第1の通知部111を稼働する。これにより、ベルが鳴動し、または携帯電話100自体が振動する。
【0134】
続いて、TEL着呼部1068は、通知処理部1065を介して第2の通知部112により、TEL用LED112Aを点滅させる(ステップS69)。これにより、ユーザに対して着呼があったことが報知される。
【0135】
続いて、TEL着呼部1068は、TEL用通信部102を介して着呼が終了したか否かを判定する(ステップS71)。着呼は応答操作(オフフック)が検出されるまで継続して送信される。着呼にかかる信号の送信が終了したと判定されると(ステップS71でYES)、通知処理部1065により、第1の通知部111を制御してベルの鳴動および振動を停止させる(ステップS73)。続いて、第2の通知部112によりTEL用LED112Aの点滅を停止するとともに、TEL着呼部1068は、着信の登録を記憶部103において行なう。具体的には着呼が指示する発信元の電話番号が記憶部103に所定記憶領域に格納される。当該記憶領域から電話番号を読出し、ディスプレイ107に表示するこによって、着信があったことと相手先の電話番号を報知できる。その後、処理は図20のステップS1に移行する。
【0136】
着呼にかかる信号の送信終了が判定されないと(ステップS71でNO)、着呼に応じた通話を開始するために、ユーザがTELボタン110Aを操作したか否かを判定する(ステップS77)。TELボタン110Aが操作されないと判定されると(ステップS77でNO)、処理はステップS71に戻る。
【0137】
一方、TELボタン110Aが操作されたと判定されると(ステップS77でYES)、TEL着呼部1068は、通知処理部1065により、第1の通知部111および第2の通知部112を制御して、ベルの鳴動および振動を停止させるとともに、TEL用LED112Aの点滅を停止し(LEDの消灯)、着信に応答するための動作(オフフック)を行なう(ステップS79、S81、S83)。これにより、通話のための通信回線が確立し、通信回線およびTEL用通信部102を経由して、相手端末のユーザと通話を開始する。その後、処理は図22のステップS43に移行する。
【0138】
次に、図24の第1−P2P処理について説明する。
第1−P2P処理は、待受画面表示時(ステップS3)においてユーザがP2Pボタン110Cを操作した場合であって、且つ変数HISTELNOに値NULLではなく電話番号が設定されていた場合、または通話を行なっている最中においてP2Pボタン110Cが操作された場合には、図24の第1−P2P処理が開始される。
【0139】
まず、第1−P2P処理部1069は、ルーム名生成部1072を制御してルーム名RMNMを生成する。具体的には、変数HISTELNOと変数MyAdr_TELNoが指示する2つの値と、所定のルール(関数)を適用して、たとえば、RMNM=HASH(HISTELNO,MyAdr_TELNo)に従いルーム名RMNMを生成し、記憶部103に格納する。
【0140】
次に、第1−P2P処理部1069は、サーバ通信部1081を制御してインターネット500に接続する(ステップS87)。一般的には、この時点で、自己の携帯電話100のIPアドレスが確定し、確定したIPアドレスは変数MY_IPADRに設定される。
【0141】
続いて、第1−P2P処理部1069は、ルーム検索要求部1073を制御してルーム検索要求処理を行なう(ステップS89)。以下に、ルーム検索要求の処理について説明する。
【0142】
ルーム検索要求部1073は、記憶部103から読出したデータと、生成されたルーム名RMNMをフレーム生成部1063に与えて、ルーム検索要求フレームを生成するように指示する。この指示に応答して、フレーム生成部1063は、与えられるデータに基づき図12のフレーム599を生成する。生成されたフレーム599はサーバ通信部1081を介して、マッチングサーバ400宛に送信される。
【0143】
マッチングサーバ400においては、サーバ通信部409はフレーム599を受信し、フレーム解析部424に与える。フレーム解析部424は入力したフレーム599の命令コード‘RM_SEARCH’に基づき当該フレーム599を検索受付部421Bに出力する。
【0144】
検索受付部421Bは、入力したフレーム599から読出したルーム名RMNMに基づき、ルーム管理テーブル406を検索する。その検索結果はフレーム生成部423に与えられる。フレーム生成部423は、受信したフレーム599の内容と検索結果とを格納したルーム検索受付フレーム600を生成し、サーバ通信部409に与える。サーバ通信部409は、入力した検索受付フレーム600を要求元の携帯電話100宛てに送信する。以上により、ステップS89のルーム検索要求処理は終了する。
【0145】
マッチングサーバ400から送信された検索受付フレーム600は、サーバ通信部1081を経由してフレーム解析部1062に与えられる。フレーム解析部1062は解析結果に基づき、受信したフレーム600を第1−P2P処理部1069に与える。
【0146】
第1−P2P処理部1069は、入力したフレーム600のデータ626が指す検索結果の値に基づき、ルーム名RMNMのルームが存在するか否かを判定する(ステップS91)。データ626の値が‘−1’である、すなわちルームが存在しない(開設されていない)と判定すると(ステップS91でNO)、処理は、後述するステップS103に移行する。
【0147】
データ626の値が‘0’である、すなわちルームが存在する(開設されている)と判定すると(ステップS91でYES)、ルーム参加要求部1075を起動して、ルーム参加要求の処理を行う(ステップS93)。
【0148】
以下に、ルーム参加要求の処理について説明する。
ルーム参加要求部1075は、記憶部103から読出したデータと、生成されたルーム名RMNMをフレーム生成部1063に与えて、ルーム参加要求フレームを生成するように指示する。この指示に応答して、フレーム生成部1063は、与えられるデータに基づき図16のルーム参加要求フレーム603を生成する。生成されたフレーム603はサーバ通信部1081を介して、マッチングサーバ400宛に送信される。
【0149】
マッチングサーバ400においては、サーバ通信部409はフレーム603を受信し、フレーム解析部424に与える。フレーム解析部424は入力したフレーム603の命令コード‘RM_ENTRY’に基づき当該フレーム603を参加受付部421Aに出力する。
【0150】
参加受付部421Aは、入力したフレームから読出したデータ622が指すルーム名RMNMと、データ623が指すIPアドレスと、データSDが指すメールアドレスとを、ルーム管理テーブル406Aに対応付けて格納する。
【0151】
参加受付部421Aは、フレーム生成部1063を制御して、前述したように図17に示すルーム参加受付フレーム604を生成する。つまり、参加要求元の携帯電話100と、指示されたルーム名RMNMのルームに既に参加していた携帯電話100とのそれぞれに宛てたフレーム604が生成されて送信される。携帯電話100では、サーバ通信部1081を経由してルーム参加受付フレーム604を受信すると、フレーム解析部1062は受信したルーム参加受付フレーム604を解析し、解析結果に基づき、相手がルームに参加した旨の通知を、第1−P2P処理部1069および第2−P2P処理部1070にそれぞれ出力する。
【0152】
以上により、ステップS93のルーム参加要求処理は終了する。
フレーム解析部1062は解析結果に基づき、受信したフレーム604を第1−P2P処理部1069に与える。
【0153】
第1−P2P処理部1069は、フレーム解析部1062から上述の通知を入力すると、受信した参加受付フレーム604のデータ625が指すIPアドレスを記憶部103の変数HIS_IPADRの領域103Dに格納する(ステップS95)。これにより、ルーム名RMNMに参加しているユーザの携帯電話100には、他の参加ユーザの携帯電話100のIPアドレスが変数HIS_IPADRとして格納される。その後、P2P通信部1082を経由して変数HIS_IPADRが指すIPアドレスに基づき相手端末とP2P通信のための制御が行なわれる(ステップS97)。
【0154】
このP2P通信に従うメッセージ交換の最中において、P2Pボタン110Aが操作されたか否か、または相手携帯電話100から終了操作の信号を受信したか否かを判定する(ステップS99)。終了操作がされた、または相手の携帯電話100から終了操作信号を受信したと判定されない間は(ステップS99でNO)、P2P通信が行なわれる(ステップS97)。終了操作がされた、または相手側から終了操作信号を受信したと判定すると(ステップS99でYES)、インターネット500の切断が行なわれる(ステップS101)。その後、処理は図20のステップS3に移行する。
【0155】
上述したステップS97およびステップS99の処理は、本実施の形態では、IPアドレス(MY_IPADRとHIS_IPADR)を用いての携帯電話100Aと100C同士間での直接のメッセージ交換を意味している。具体的には、P2P通信を利用したアプリケーションソフトウェアが起動されて、起動されたアプリケーションソフトウェアの処理を通じて、お互いにメッセージ交換処理がなされる。
【0156】
ステップS91に戻り、第1−P2P処理部1069は、入力したフレーム600のデータ626の値が‘−1’である、すなわちルームが存在しない(開設されていない)と判定すると(ステップS91でNO)、ルーム開設要求部1076を制御してルーム開設要求処理を行う(ステップS103)。以下に、ルーム開設要求処理について説明する。
【0157】
ルーム開設要求部1076は、記憶部103から読出したルーム名RMNMおよびデータをフレーム生成部1063に与えて、図14のルーム開設要求フレーム601を生成するよう指示する。フレーム生成部1063は、指示に応じて、与えられるデータに基づきルーム開設要求フレーム601を生成しサーバ通信部1081に出力する。サーバ通信部1081は入力したルーム開設要求フレーム601をマッチングサーバ400に宛てて送信する。
【0158】
マッチングサーバ400は、ルーム開設要求フレーム601を受信すると、フレーウ601はフレーム解析部424によって解析されて、解析結果に基づき、当該フレーム601はルーム開設部420に与えられる。ルーム開設部420は、入力したフレーム601のデータ622が指すルーム名RMNM、データ623が指すIPアドレスおよびデータ612が示すメールアドレスを、データ4061、4062および4063として対応付けてルーム管理テーブル406に格納する。これにより、ルーム名RMNMのルームが開設される。
【0159】
開設後、ルーム開設部420はフレーム生成部423に制御して、図15のルーム開設受付フレーム602を生成する。生成されたルーム開設受付フレーム602は、サーバ通信部409を経由して、要求元の携帯電話100に送信される。以上により、ルーム開設要求処理は終了する。
【0160】
第1−P2P処理部1069は、サーバ通信部1061を経由してルーム開設受付フレーム602を受信すると、計時部105が出力する時間データに基づき、その後一定時間が経過したか否かを判定する(ステップS105)。一定時間が経過したと判定すると(ステップS105でYES)、処理は、後述するステップS113に移行する。
【0161】
一方、一定時間の経過が判定されないと(ステップS105でNO)、相手の携帯電話100のユーザが、開設したルームに参加したか否かが判定される(ステップS107)。すなわち、マッチングサーバ400から、他の携帯電話100のIPアドレスを格納したルーム参加受付フレーム604を受信するか否かを判定する。第1−P2P処理部1069は、フレーム解析部1062からの通知に基づき、開設したルームに相手ユーザが参加したことを判定すると(ステップS107でYES)、受信したルーム参加受付フレームのデータ625が指すIPアドレスを記憶部103の変数HIS_IPADRの領域103Dに格納する(ステップS109)。これにより、ルーム名RMNMに参加しているユーザの携帯電話100には、他の参加ユーザの携帯電話100のIPアドレスが変数HIS_IPADRとして格納される。
【0162】
一定時間を経過してもフレーム解析部1062からの通知を入力できないときは(ステップS107でNO、ステップS105でYES)、処理は後述のステップS113に移行する。
【0163】
ステップS109の処理後、第1−P2P処理部1069は、ルーム削除要求部1076を制御してルーム削除要求処理(ステップS111)を行なう。以下に、ルーム削除要求処理を説明する。
【0164】
ルーム削除要求部1076は、ルーム名RMNMおよび記憶部103から読出したデータをフレーム生成部1063に与えて、図18のルーム削除要求フレーム605を生成するよう指示する。フレーム生成部1063は、指示に応じて、与えられるデータに基づきルーム削除要求フレーム605を生成しサーバ通信部1081に出力する。サーバ通信部1081は入力したルーム削除要求フレーム605をマッチングサーバ400に宛てて送信する。
【0165】
マッチングサーバ400は、ルーム削除要求フレーム605を受信すると、フレーム解析部424によって解析して、解析結果に基づき、当該フレーム605はルーム削除部422の与えられる。ルーム削除部422は、入力したフレーム605のデータ622が指すルーム名RMNMに基づきルーム管理テーブル406Aを検索する。そして、検索結果に基づき、ルーム名RMNMを指すデータ4061と、これに対応するデータ4062及び4063を、ルーム管理テーブル406から削除する。これにより、ルーム名RMNMのルームが削除される。
【0166】
削除後、ルーム削除部422はフレーム生成部423を制御して、図19のルーム削除受付フレーム606を生成する。生成されたルーム削除受付フレーム606は、サーバ通信部409を経由して、要求元の携帯電話100に送信される。以上により、ルーム削除要求処理は終了する。
【0167】
携帯電話100では、図19のルーム削除受付フレーム606を受信すると、処理は前述したステップS97のP2P通信に移行する。
【0168】
このように、ステップS103〜ステップS111の処理により、ルーム名RMNMのルームを開設後、当該ルームに相手が参加するのを待機する期間を設けている。
【0169】
ステップS105に戻り、ルーム開設後、一定時間を経過しても、相手ユーザが当該ルームに参加した旨の通知が場合には(ステップS105でYES)、ステップS113において、インターネット500の接続が切断される。その後、第1−P2P処理部1069は、相手の携帯電話100からのアクセスがない旨のエラーメッセージをディスプレイ107に一定時間表示する。その後、処理は、図20のステップS3に移行し待受画面が表示される。
【0170】
図25を参照して、第2−P2P処理部1070の処理について説明する。
図22で説明したように、相手携帯電話100と通話の最中に、相手の携帯電話100から回線の切断信号を受信したことにより通話が中断した場合には(ステップS49でYES)、第2−P2P処理部1070が起動する。
【0171】
第2−P2P処理部1070は、まず、ルーム名RMNMを生成し(ステップS117)、その後、インターネット500に接続する(ステップS119)。一般的には、この時点で自己の端末のIPアドレスが確定するので、確定したIPアドレスを変数MY_IPADRに代入する(ステップS119)。続いて、ルーム検索要求部1073による処理が行なわれる。そして、マッチングサーバ400からのルーム検索結果を格納したフレーム600を受信し、受信したフレーム600の解析結果に基づき、ルーム名RMNMのルームが存在する(開設済み)か否かを判定する(ステップS121)。ルームが存在しないと判定すると(ステップS121でNO)、インターネット500の接続を断ち(ステップS127)、処理は図20のステップS3に移行する。一方、フレーム600の解析結果に基づきルームが存在すると判定すると(ステップS121でYES)、その後、計時部105が出力する時間データに基づき一定時間が経過したかを判定する(ステップS123)。一定時間経過しないと判定されると(ステップS123でNO)、ユーザによりP2Pボタン110Cが操作されたか否かが判定される(ステップS125)。操作されなければ、処理はステップS123に戻るが、操作された場合には、処理は図24のステップS93に移行する。
【0172】
一方、ルームが存在すると判定された後に、一定時間が経過してもP2Pボタン110Cの操作がされないと判定されると(ステップS123でYES)、処理は図24のステップS113に移行し、インターネット500の接続が切断される。
【0173】
図25におけるステップS117、S119、S120、S121の処理は、図24のステップS85、S87、S89およびS91の処理と同じ手順で行われる。
【0174】
なお、ステップS121の判定結果はディスプレイ107に表示してもよい。表示した場合には、ユーザは既にルームが開設されていることを確認できるので、速やかに、ルーム参加(P2P通信開始)のためにP2Pボタン110Cを操作できる。
【0175】
このように、通話の最中に相手携帯電話100から一方的に切断信号を受信して通話が中断したとしても、相手ユーザが開設したルームに参加することにより、通話をP2P通信に従うメッセージ交換に切換えることができる。したがって、中断した通話をデータ通信により継続することができる。
【0176】
ここで、マッチングサーバ400の処理について図26を参照して説明する。
上述した携帯電話100の処理に並行して、マッチングサーバ400では図26に従う処理が実行される。マッチングサーバ400で並行して行なわれる処理は、携帯電話100側の処理で説明しているので、ここでは、簡単に行なう。
【0177】
図26を参照して、マッチングサーバ400のCPU405は、サーバ通信部409を経由してデータを受信するか否かを判定する(ステップS131)。データを受信しない間は、ステップS131の処理が繰返される。
【0178】
一方、データを受信したと判定すると(ステップS131でYES)、受信したデータ、すなわち受信したフレームの解析処理を、フレーム解析部424にて行なう(ステップS133)。
【0179】
フレーム解析部424は、受信フレームのデータ621が指す命令コードを読出して解析する。解析結果に基づき、命令コードが、ルーム開設、ルームの検索、ルームの削除およびルームへの参加のいずれの命令を指すかを判定する(ステップS135、S137、S139、S141)。命令コードがいずれの命令も指示しないと判定すると(ステップS141でNO)、フレームに“ERROR”を指す値‘−1’を格納し、当該フレームを送信元の携帯電話100に送信する(ステップS143)。その後、処理はステップS131に戻る。
【0180】
一方、受信フレームの命令コードはルームの開設を指示していると判定すると(ステップS135でYES)、ルーム開設部420は、受信フレームのルーム名RMNMに基づきルーム管理テーブル406Aを検索し、検索結果に基づき、ルーム名RMNMのルームが既に開設されているか否かを判定する(ステップS145)。
【0181】
ルームが既に開設されていると判定すると(ステップS145でYES)、処理はステップS143に移行する。一方、ルームは未開設であると判定すると(ステップS145でNO)、ルーム管理テーブル406Aに受信フレームから読出したデータを格納することによりルームの開設を行なう(ステップS153)。その後、処理はステップS155に移行する。
【0182】
ステップS155においては、フレームに“OK”を示す値‘0’を格納した返信情報を、要求元の携帯電話100に送信する。その後、処理はステップS131に移行する。
【0183】
一方、フレームの解析結果、受信フレームの命令コードはルームの検索を指示していると判定すると(ステップS137でYES)、検索受付部421Bは、ルーム管理テーブル406Aを、受信したルーム名RMNMで検索する。そして、検索結果に基づき、ルームが存在するか(開設されているか)否かを判定する。ルームは存在すると判定すると、処理は、前述したステップS155に移行するが、ルームは存在しないと判定すると(ステップS137でNO)、処理は前述したステップS143に移行する。
【0184】
受信フレームの解析結果、フレームに格納された命令コードが、ルームの削除要求を指示していると判定すると(ステップS139でYES)、ルーム削除部422は、受信フレームのデータ613が指すメールアドレスと、ルーム管理テーブル406Aの当該ルーム名RMNMに関連付けて格納されたデータ4063が指すメールアドレスとを比較照合し、一致するか否かを判定する(ステップS149)。一致する場合、すなわち削除要求をした携帯電話100は当該ルームに参加していた端末であると判定すると(ステップS149でYES)、ルーム管理テーブル406Aから当該ルーム名RMNMのデータを削除し(ステップS157)、処理は前述したステップS155に移行する。
【0185】
一方、不一致の場合、すなわち削除要求をした携帯電話100は当該ルームに参加していた端末ではないと判定すると(ステップS149でNO)、削除処理は行われずに、処理は前述したステップS143に移行する。
【0186】
受信フレームの解析結果、フレームに格納された命令コードは、ルームへの参加を要求していると判定すると(ステップS141でYES)、参加受付部421Aは、ルーム管理テーブル406Aを受信フレームから読出したルーム名RMNMに基づき検索する。検索結果に基づき、ルーム名RMNMのルームが開設されていると判定すると(ステップS151でYES)、ルームへの参加処理を行ない(ステップS159)、参加している他の携帯電話100に対して今回新たに参加した携帯電話100のIPアドレスを送信するとともに、参加要求した携帯電話100に対しては既に参加していた他の携帯電話100のIPアドレスを送信する(ステップS161、S163)、その後、処理はステップS131に移行する。
【0187】
本実施の形態によれば、通話の最中にP2Pボタン110Cを操作すると、通話が中断される。そして、通話中の相手端末(携帯電話100)を特定する識別情報(電話番号)と自端末(携帯電話100)の識別情報(電話番号)とに基づきルーム名RMNMを生成する。そして、ルーム名RMNMによって指示されるルームが開設されて、開設したルームを利用して通話していた端末の間でP2P通信網が形成される。そして、中断した通話をP2P通信網を利用したデータ通信により再開することができる。このように、P2Pボタン110Cを操作するという簡単操作で、通信機能を、通話からデータ通信へ切換えて、端末間でコミュニケーションを継続することができる。
【0188】
(プログラムおよび記録媒体)
ここで、本実施の形態における携帯電話100を含む通信端末間の、上述したような図20〜図25のフローチャートに従う機能はプログラムとして提供することができる。このようなプログラムは、携帯電話100のCPU106Aのコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、FD(Flexible Disc)、CD(Compact Disc)−ROMまたは記憶部103を構成するROM(Read Only Memory)およびRAM(Random Access Memory)、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット500を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【0189】
また、図26のフローチャートに従う機能もプログラムとして提供することができる。このようなプログラムは、マッチングサーバ400のCPU405のコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、FD(Flexible Disc)412、CD(Compact Disc)−ROM414またはメモリ406を構成するROM(Read Only Memory)およびRAM(Random Access Memory)、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵する固定ディスク407の記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット500を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【0190】
ここで、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【0191】
なお、一般的傾向として、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュールを用意しておき、アプリケーションプログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、本実施の形態に係るシステムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、当該コンピュータでオペレーティングシステムと協働してはじめてシステムが実現することになる。しかし、一般的なプラットホームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体(およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号)が実施の形態を構成すると考えることができる。
【0192】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され
、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0193】
【図1】本実施の形態に係るネットワークシステム1の一例を示す概略図である。
【図2】本実施の形態に係る携帯電話の概観を示すイメージ図である。
【図3】本実施の形態に係る携帯電話のハードウェア構成を示すブロック図である。
【図4】本実施の形態に係るアドレス帳データを説明する図である。
【図5】本実施の形態に係る自端末データを説明する図である。
【図6】本実施の形態に係る携帯電話の機能構成図である。
【図7】本実施の形態に係るマッチングサーバのハードウェア構成図である。
【図8】(A)と(B)は本実施の形態に係るルーム管理テーブルのデータ構造の一例を示す図である。
【図9】本実施の形態に係るマッチングサーバの機能構成図である。
【図10】本実施の形態に係る通信手順を模式的に示す図である。
【図11】本実施の形態に係るフレームの基本構成を説明する図である。
【図12】本実施の形態に係るルーム検索要求フレームの構成図である。
【図13】本実施の形態に係るルーム検索受付フレームの構成図である。
【図14】本実施の形態に係るルーム開設要求フレームの構成図である。
【図15】本実施の形態に係るルーム開設受付フレームの構成図である。
【図16】本実施の形態に係るルーム参加要求フレームの構成図である。
【図17】本実施の形態に係るルーム参加受付フレームの構成図である。
【図18】本実施の形態に係るルーム削除要求フレームの構成図である。
【図19】本実施の形態に係るルーム削除受付フレームの構成図である。
【図20】本実施の形態に係るメイン処理フローチャートである。
【図21】本実施の形態に係る発呼処理フローチャートである。
【図22】本実施の形態に係るTEL発呼処理フローチャートである。
【図23】本実施の形態に係るTEL着呼処理フローチャートである。
【図24】本実施の形態に係る第1−P2P処理フローチャートである。
【図25】本実施の形態に係る第2−P2P処理フローチャートである。
【図26】本実施の形態に係るマッチングサーバの処理フローチャートである。
【符号の説明】
【0194】
100 携帯電話、400 マッチングサーバ、406A ルーム管理テーブル、420 ルーム開設部、421A 参加受付部、421B 検索受付部、422 ルーム削除部、1066 発呼部、1068 TEL着呼部、1069 第1−P2P処理部、1070 第2−P2P処理部、1072 ルーム名生成部、1073 ルーム検索要求部、1074 ルーム開設要求部、1075 ルーム参加要求部、1076 ルーム削除要求部。
【特許請求の範囲】
【請求項1】
無線電話網およびデータ通信網を接続する通信装置であって、
前記データ通信網のサーバ装置に他の前記通信装置とデータを交わすために開設されたルームをアクセスすることにより、前記他の通信装置とデータ通信するデータ通信部と、
前記無線電話網において通話相手を特定するための前記他の通信装置と当該通信装置の識別情報を記憶する記憶部と、
前記識別情報に基づき、前記無線電話網を経由して前記他の通信装置と通話をするための通話部と、
前記データ通信の要求を入力するために操作される通信要求部と、
前記記憶部から読出した前記識別情報に基づき前記ルームを識別するためのルーム識別子を生成する識別子生成部と、
通信制御部とを備え、
前記通信制御部は、
前記通信要求部が前記要求を入力したことに応答して、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする、通信装置。
【請求項2】
前記通信制御部は、
前記検索によって、前記ルーム識別子に対応する前記ルームが、前記サーバ装置において開設されていることを検出した場合には、前記ルームを前記データ通信部によりアクセスし、
前記検索によって、前記ルーム識別子に対応する前記ルームが、前記サーバ装置において未開設であることを検出した場合には、当該ルームの開設を前記サーバ装置に対して要求し、且つ当該ルームに前記他の通信装置がアクセスするのを待機する、請求項1に記載の通信装置。
【請求項3】
前記通信制御部は、
前記他の通信装置と通話の最中に、前記通話の中断が指示されたことに応答して、前記通話を中断し、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする通信切換部を含む、請求項1または2に記載の通信装置。
【請求項4】
前記通信要求部によって前記要求が入力されたことに応答して、前記通話の回線を切断する切断信号を送信する切断信号送信部とを、さらに備え
前記通信切換部は、前記通信要求部によって前記要求が入力されたとき、または、前記他の通信装置から前記切断信号を受信したとき、前記通話の中断が指示される、請求項3に記載の通信装置。
【請求項5】
無線電話網およびデータ通信網を接続する通信装置における通信方法であって、
前記通信装置は、前記無線電話網において通話相手を特定するための前記他の通信装置と当該通信装置の識別情報を記憶する記憶部を備え、
前記通信方法は、
前記データ通信網のサーバ装置に他の前記通信装置とデータを交わすために開設されたルームをアクセスすることにより、前記他の通信装置とデータ通信するステップと、
前記識別情報に基づき、前記無線電話網を経由して前記他の通信装置と通話をするステップと、
前記データ通信の要求を入力するステップと、
前記記憶部から読出した前記識別情報に基づき前記ルームを識別するためのルーム識別子を生成するステップと、
通信制御ステップとを備え、
前記通信制御ステップでは、
前記要求を入力したことに応答して、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする、通信方法。
【請求項6】
請求項5に記載の通信方法をコンピュータに実行させるための、通信プログラム。
【請求項1】
無線電話網およびデータ通信網を接続する通信装置であって、
前記データ通信網のサーバ装置に他の前記通信装置とデータを交わすために開設されたルームをアクセスすることにより、前記他の通信装置とデータ通信するデータ通信部と、
前記無線電話網において通話相手を特定するための前記他の通信装置と当該通信装置の識別情報を記憶する記憶部と、
前記識別情報に基づき、前記無線電話網を経由して前記他の通信装置と通話をするための通話部と、
前記データ通信の要求を入力するために操作される通信要求部と、
前記記憶部から読出した前記識別情報に基づき前記ルームを識別するためのルーム識別子を生成する識別子生成部と、
通信制御部とを備え、
前記通信制御部は、
前記通信要求部が前記要求を入力したことに応答して、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする、通信装置。
【請求項2】
前記通信制御部は、
前記検索によって、前記ルーム識別子に対応する前記ルームが、前記サーバ装置において開設されていることを検出した場合には、前記ルームを前記データ通信部によりアクセスし、
前記検索によって、前記ルーム識別子に対応する前記ルームが、前記サーバ装置において未開設であることを検出した場合には、当該ルームの開設を前記サーバ装置に対して要求し、且つ当該ルームに前記他の通信装置がアクセスするのを待機する、請求項1に記載の通信装置。
【請求項3】
前記通信制御部は、
前記他の通信装置と通話の最中に、前記通話の中断が指示されたことに応答して、前記通話を中断し、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする通信切換部を含む、請求項1または2に記載の通信装置。
【請求項4】
前記通信要求部によって前記要求が入力されたことに応答して、前記通話の回線を切断する切断信号を送信する切断信号送信部とを、さらに備え
前記通信切換部は、前記通信要求部によって前記要求が入力されたとき、または、前記他の通信装置から前記切断信号を受信したとき、前記通話の中断が指示される、請求項3に記載の通信装置。
【請求項5】
無線電話網およびデータ通信網を接続する通信装置における通信方法であって、
前記通信装置は、前記無線電話網において通話相手を特定するための前記他の通信装置と当該通信装置の識別情報を記憶する記憶部を備え、
前記通信方法は、
前記データ通信網のサーバ装置に他の前記通信装置とデータを交わすために開設されたルームをアクセスすることにより、前記他の通信装置とデータ通信するステップと、
前記識別情報に基づき、前記無線電話網を経由して前記他の通信装置と通話をするステップと、
前記データ通信の要求を入力するステップと、
前記記憶部から読出した前記識別情報に基づき前記ルームを識別するためのルーム識別子を生成するステップと、
通信制御ステップとを備え、
前記通信制御ステップでは、
前記要求を入力したことに応答して、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする、通信方法。
【請求項6】
請求項5に記載の通信方法をコンピュータに実行させるための、通信プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2010−130167(P2010−130167A)
【公開日】平成22年6月10日(2010.6.10)
【国際特許分類】
【出願番号】特願2008−300935(P2008−300935)
【出願日】平成20年11月26日(2008.11.26)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成22年6月10日(2010.6.10)
【国際特許分類】
【出願日】平成20年11月26日(2008.11.26)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]