(57)【要約】【課題】簡単な手続きにより通話していた相手との間でデータ通信を開始する。【解決手段】携帯電話１００は、マッチングサーバに他の携帯電話１００とデータを交わすために開設されたルームをアクセスすることにより、他の携帯電話１００とデータ通信する端末通信部１０６１と、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部１０３と、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするためのＴＥＬ用通話部１０２と、Ｐ２Ｐ通信の要求を入力するために操作されるＰ２Ｐボタンと、記憶部１０３から読出した識別情報に基づきルーム名を生成するルーム名生成部１０７２とを備える。動作において、Ｐ２Ｐ通信要求を入力したことに応答して、ルーム名に基づきマッチングサーバに開設されるルームを検索し、検索によって特定されたルームを端末通信部１０６１によりアクセスする。【選択図】図６
2010130167.tif 000002
【特許請求の範囲】
【請求項１】
無線電話網およびデータ通信網を接続する通信装置であって、
前記データ通信網のサーバ装置に他の前記通信装置とデータを交わすために開設されたルームをアクセスすることにより、前記他の通信装置とデータ通信するデータ通信部と、
前記無線電話網において通話相手を特定するための前記他の通信装置と当該通信装置の識別情報を記憶する記憶部と、
前記識別情報に基づき、前記無線電話網を経由して前記他の通信装置と通話をするための通話部と、
前記データ通信の要求を入力するために操作される通信要求部と、
前記記憶部から読出した前記識別情報に基づき前記ルームを識別するためのルーム識別子を生成する識別子生成部と、
通信制御部とを備え、
前記通信制御部は、
前記通信要求部が前記要求を入力したことに応答して、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする、通信装置。
【請求項２】
前記通信制御部は、
前記検索によって、前記ルーム識別子に対応する前記ルームが、前記サーバ装置において開設されていることを検出した場合には、前記ルームを前記データ通信部によりアクセスし、
前記検索によって、前記ルーム識別子に対応する前記ルームが、前記サーバ装置において未開設であることを検出した場合には、当該ルームの開設を前記サーバ装置に対して要求し、且つ当該ルームに前記他の通信装置がアクセスするのを待機する、請求項１に記載の通信装置。
【請求項３】
前記通信制御部は、
前記他の通信装置と通話の最中に、前記通話の中断が指示されたことに応答して、前記通話を中断し、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする通信切換部を含む、請求項１または２に記載の通信装置。
【請求項４】
前記通信要求部によって前記要求が入力されたことに応答して、前記通話の回線を切断する切断信号を送信する切断信号送信部とを、さらに備え
前記通信切換部は、前記通信要求部によって前記要求が入力されたとき、または、前記他の通信装置から前記切断信号を受信したとき、前記通話の中断が指示される、請求項３に記載の通信装置。
【請求項５】
無線電話網およびデータ通信網を接続する通信装置における通信方法であって、
前記通信装置は、前記無線電話網において通話相手を特定するための前記他の通信装置と当該通信装置の識別情報を記憶する記憶部を備え、
前記通信方法は、
前記データ通信網のサーバ装置に他の前記通信装置とデータを交わすために開設されたルームをアクセスすることにより、前記他の通信装置とデータ通信するステップと、
前記識別情報に基づき、前記無線電話網を経由して前記他の通信装置と通話をするステップと、
前記データ通信の要求を入力するステップと、
前記記憶部から読出した前記識別情報に基づき前記ルームを識別するためのルーム識別子を生成するステップと、
通信制御ステップとを備え、
前記通信制御ステップでは、
前記要求を入力したことに応答して、前記ルーム識別子に基づき前記サーバ装置に開設される前記ルームを検索し、検索によって特定された前記ルームを前記データ通信部によりアクセスする、通信方法。
【請求項６】
請求項５に記載の通信方法をコンピュータに実行させるための、通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は通信装置および通信方法に関し、特に、通話機能を備える通信装置および通信方法に関する。
【背景技術】
【０００２】
近年、携帯電話機の普及により、様々な場所で携帯電話機を利用する機会が増えている。それに伴い、公共の場所で携帯電話機を利用する場合の使用者のマナーや、会話内容の漏洩が社会問題となっている。
【０００３】
特に、人の多い街中で携帯電話機を使って通話する場合、自然と声が大きくなり、周囲への迷惑となるばかりでなく、個人情報の流出につながるおそれがある。また、使用環境や場所によっては、周辺の騒音によって音声が聞き取りにくい場合、あるいは話すのを躊躇する場合がある。
【０００４】
このような場合には、通話からデータ通信に切換えれば、コミュニケーションを継続することができる。データ通信としては、たとえば電子メールやチャットシステムがある。
【０００５】
電話機能とデータ通信機能の切り換えや、通話中に行なわれるデータ通信に関して、特許文献１（特開２００８−１０９５９５号公報）では、端末から受信した音声データに基づいて、周辺環境の騒音レベルを測定し、騒音レベルに応じて音声通話からテキスト通話（チャット）に切換える。
【０００６】
また、特許文献２（特開２００１−１２７８９９号公報）では、通話中に入力された音声以外の情報（たとえば、カメラで撮影された画像データ）を、通話後、その通話相手にメールに添付して送信する。
【０００７】
また、特許文献３（特開２００２−３３０２３４号公報）では、電話の着信時または発信時に、その通話相手の電話番号をメールシステムに通知し、メールシステムでは、通知された電話番号に対応するメールアドレスをアドレス帳から検索して、検索したメールアドレスを電子メールの宛先欄に自動挿入する。
【０００８】
また、特許文献４（特開２００２−１３２６９４号公報）には、チャットしたい相手方の電話番号をサーバに通知してチャット要求すれば、サーバはそれに応じて相手方の端末にチャット依頼を送信するチャットシステムが開示される。
【特許文献１】特開２００８−１０９５９５号公報
【特許文献２】特開２００１−１２７８９９号公報
【特許文献３】特開２００２−３３０２３４号公報
【特許文献４】特開２００２−１３２６９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
通話機能からデータ通信機能に切換えて、コミュニケーションを継続する上で、特許文献１による、周辺環境の騒音レベルに応じた音声通話かテキスト通話かの自動選択は、利用シーンに応じて細かに制御されなければならない。
【００１０】
つまり、図書館に居る（周辺環境の雑音レベルが低い）ときは、話し手側はテキスト通信が選択されるべきであるが、聞き手側はスピーカから出力される音量が小さければ、音声通話でも構わないはずである。また、道路工事現場の周辺に居る（周辺環境の雑音レベルが高い）ときは、話し手側は音声通話でも構わないが、聞き手側はテキスト通信が選択されるべきである。したがって、通話のように聞き手側・話し手側が常に入れ替わり得る、コミュニケーションツール（機能）としては、使い勝手の悪いシステムに成り得る。
【００１１】
また、騒音レベルにのみ応じて、音声通話からテキスト通信に自動切換えされると、歩行中の通話が一方的にテキスト通信に切換わることもあり、歩きながらの文字入力は困難であることに鑑みると、特許文献１のシステムは利便性に優れない。
【００１２】
通話機能からデータ通信機能に切換えて、コミュニケーションを継続する上で、特許文献３では、メールシステムを前提としていることから、以下の点が問題となる。
【００１３】
メールシステムでは、複数文字列から成るメッセージ単位（送信操作までに入力された文字列単位）でのメッセージ交換であることから、電話（声によるコミュニケーション）時の、リアルタイムなコミュニケーションが維持できない。
【００１４】
そこで、通話機能から切換えるデータ通信機能としては、チャットシステムとする方が好ましいが、従来のチャットシステムでは、特許文献４の「発明が解決しようとする課題」欄に記載されているとおり、互いに、所定のチャットルームへ入室する操作が必要となる。すなわち、電話（通話機能稼動）中に、たとえば、「一旦電話を切って、○○というチャットルームに入室しよう！」というメッセージにより相手の意思を確認するネゴシエーションのための特別な操作および通信が必要であり、また、このチャットルームに入室するための操作が必要となる。
【００１５】
特許文献４では、電話（通話機能稼動）時のいずれの端末側がサーバに通知するかの取り決めがない。そのため、両方の端末がサーバに通知するとした場合には、サーバからのチャット依頼に対して、両方端末が依頼を不許可とするケース、すなわち、互いにチャットができない状況に陥るケースが生じる。
【００１６】
また、特許文献４のシステムでは、電話番号をチャットシステムを利用する上で必要な情報（たとえば、ＩＰ（Internet Protocol）アドレス）に変換するための機構が必要となる。この場合には、変換のために参照される個人情報をサーバで管理する必要があるために、サーバ運用事業者は利用者からの信頼性が高い事業者に限定される。また、端末は、サーバから「チャット依頼」情報を受信するために常時、インターネットに接続される必要があるが、端末同士は１度、チャットシステム（たとえばＰ２Ｐ（peer to peer）通信）のためのＩＰアドレス情報を交換すればよく、サーバを経由する必要はない。
【００１７】
したがって、特許文献４は、特定者（知人、直前まで電話で通話していた相手）との間での接続には不向きなシステムと言える。
【００１８】
それゆえに、この発明の目的は、簡単な手続きにより通話していた相手との間でデータ通信を開始することができる通信装置を提供することである。
【課題を解決するための手段】
【００１９】
この発明のある局面に従うと、無線電話網およびデータ通信網を接続する通信装置は、データ通信網のサーバ装置に他の通信装置とデータを交わすために開設されたルームをアクセスすることにより、他の通信装置とデータ通信するデータ通信部と、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部と、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするための通話部と、データ通信の要求を入力するために操作される通信要求部と、記憶部から読出した識別情報に基づきルームを識別するためのルーム識別子を生成する識別子生成部と、通信制御部とを備え、通信制御部は、通信要求部が前記要求を入力したことに応答して、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする。
【００２０】
好ましくは、通信制御部は、検索によって、ルーム識別子に対応するルームが、サーバ装置において開設されていることを検出した場合には、ルームを前記データ通信部によりアクセスし、検索によって、ルーム識別子に対応するルームが、サーバ装置において未開設であることを検出した場合には、当該ルームの開設をサーバ装置に対して要求し、且つ当該ルームに他の通信装置がアクセスするのを待機する。
【００２１】
好ましくは、通信制御部は、他の通信装置と通話の最中に、通話の中断が指示されたことに応答して、通話を中断し、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする通信切換部を含む。
【００２２】
好ましくは、通信要求部によって要求が入力されたことに応答して、通話の回線を切断する切断信号を送信する切断信号送信部とを、さらに備え、通信切換部は、通信要求部によって要求が入力されたとき、または、他の通信装置から切断信号を受信したとき、通話の中断が指示される。
【００２３】
この発明の他の局面に従うと、無線電話網およびデータ通信網を接続する通信装置における通信方法では、通信装置は、無線電話網において通話相手を特定するための他の通信装置と当該通信装置の識別情報を記憶する記憶部を備える。そして、通信方法は、データ通信網のサーバ装置に他の通信装置とデータを交わすために開設されたルームをアクセスすることにより、他の通信装置とデータ通信するステップと、識別情報に基づき、無線電話網を経由して他の通信装置と通話をするステップと、データ通信の要求を入力するステップと、記憶部から読出した識別情報に基づきルームを識別するためのルーム識別子を生成するステップと、通信制御ステップとを備える。
【００２４】
通信制御ステップでは、前述の要求を入力したことに応答して、ルーム識別子に基づきサーバ装置に開設されるルームを検索し、検索によって特定されたルームをデータ通信部によりアクセスする。
【００２５】
この発明の更に他の局面に従うと、上述に記載の通信方法をコンピュータに実行させるための通信プログラムが提供される。
【発明の効果】
【００２６】
本発明によれば、通信要求部を操作してデータ通信の要求を入力するという簡単操作をするだけで、通話していた相手通信装置の識別情報と自己の通信装置の識別情報とで生成されたルーム識別子によって一意に特定されるルームを介して、通話していた相手通信装置との間でデータ通信するための通信網を形成することができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２８】
また、以下では、携帯電話１００を「通信端末」の代表例として説明を行う。ただし、通信端末は、パーソナルコンピュータや、カーナビゲーション装置（Satellite navigation system）や、ＰＮＤ（Personal Navigation Device）や、ＰＤＡ（Personal Data Assistance）などのような、他の情報通信機器であってもよい。
【００２９】
＜チャットルームに関する説明＞
本実施の形態では、‘チャット’とは、後述のインターネット５００またはキャリア網７００を介したオンラインサービスによりリアルタイムに通信端末同士がメッセージをやり取りするような通信を指す。たとえば、メールサーバは介さないＩＰアドレスを用いたＰ２Ｐ通信、またはメールサーバ経由の電子メール交換であってもよい。また、チャットは、１対１の通信端末同士のチャットを指す。
【００３０】
また、チャットルーム（以下、単にルームと略す）は、一般的には、テーマ・話題毎にデータ交換するために開設されて端末によりアクセスされる。本実施の形態では、通信端末において生成されるルームＩＤ（identifier）であるルーム名毎に開設される。本実施の形態では、‘ルーム’とは、当該ルームのルーム名に対応して、チャットのためのデータ通信（データ交換）を要求するユーザの識別情報を、すなわちユーザの通信端末の識別情報を相互に関係付けるための情報を指す。この通信端末の識別情報は、各通信端末を一意に識別するための情報であって、本実施の形態では各通信端末に割当されたＩＰアドレスとしている。
【００３１】
したがって、本実施の形態では、‘ルームの開設’とは、ルームの生成に相当する。具体的には、所定記憶領域に新規にルーム名を格納するとともに、このルーム名に対応してルームの生成を要求したユーザの通信端末の識別情報を格納する動作に相当する。
【００３２】
また、‘ルームへの参加’とは、所定記憶領域に既に格納されたルーム名に対応してチャットを要求するユーザの通信端末の識別情報を格納するともに、当該ユーザに対して他のユーザの通信端末の識別情報を配信する動作に相当する。
【００３３】
また、‘ルームの削除’とは、削除するべきルームのルーム名を、所定記憶領域から削除するための動作を指す。
【００３４】
上述の削除の処理は、所定域億領域から当該情報を実際に消去する処理でもよく、または、格納された当該情報を所定記憶領域から読出不可能な状態に設定する処理であってもよい。
【００３５】
＜ネットワークシステム１の全体構成＞
図１を参照して、本実施の形態に係るネットワークシステム１は、携帯電話１００Ａ，１００Ｂおよび１００Ｃと、マッチングサーバ（第１のサーバ装置）４００と、メールサーバ（第２のサーバ装置）６００と、インターネット（第１のネットワーク）５００と、キャリア網（第２のネットワーク）７００とを含む。また、本実施の形態に係るネットワークシステム１は、車両２５０に搭載されるカーナビゲーション装置２００と、パーソナルコンピュータ（ＰＣ；Personal Computer）３００とを含む。
【００３６】
なお、説明の容易化のために、以下では、本実施の形態に係るネットワークシステム１が、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃとを含む場合について説明する。また、携帯電話１００Ａ，１００Ｂ，１００Ｃの各々に共通の構成や機能を説明する際には、それらを携帯電話１００とも総称する。そして、携帯電話１００Ａ，１００Ｂ，１００Ｃ、カーナビゲーション装置２００、パーソナルコンピュータ３００の各々に共通の構成や機能を説明する際には、それらを通信端末とも総称する。
【００３７】
携帯電話１００は、キャリア網７００に接続可能に構成されている。カーナビゲーション装置２００は、インターネット５００に接続可能に構成されている。パーソナルコンピュータ３００は、ＬＡＮ（Local Area Network）３５０やＷＡＮ（Wide Area Network
）を介してインターネット５００に接続可能に構成されている。マッチングサーバ４００は、インターネット５００に接続可能に構成されている。メールサーバ６００は、インターネット５００およびキャリア網７００に接続可能に構成されている。
【００３８】
より詳細には、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃと、カーナビゲーション装置２００と、パーソナルコンピュータ３００とは、キャリア網７００やメールサーバ６００やインターネット５００を介して互いに接続可能であって、互いにデータの送受信が可能である。また、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００には、自端末を特定するための識別情報（たとえば、メールアドレスやＩＰ（Internet Protocol）アドレスなど）が割当てられる。すなわち、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００は、内部の記録媒体に他の通信端末の識別情報を記憶することができ、当該識別情報に基づいてキャリア網７００やインターネット５００などを介して当該他の通信端末とデータ送受信を行うことができる。
【００３９】
なお、本実施の形態に係る携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００とは、割当てられるＩＰアドレスを利用して、メールサーバ６００を介さずに他の通信端末とデータ送受信を行うものである。ここでは、各通信端末がマッチングサーバ４００にアクセスする際には、すなわち各通信端末がインターネットにアクセスした際に、マッチングサーバ４００あるいは他の図示しないサーバ装置などによってＩＰアドレスが割当てられるものとする。ＩＰアドレスの割当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
【００４０】
また、本実施の形態に係る携帯電話１００、カーナビゲーション装置２００、パーソナルコンピュータ３００は、自身に割当てられたＩＰアドレスを利用することにより、直接的に相互にネットワークを介してデータ送受信を行うことが可能である。すなわち、本実施の形態に係るネットワークシステム１に含まれる携帯電話１００、カーナビゲーション装置２００、パーソナルコンピュータ３００は、いわゆるＰ２Ｐ（Peer to Peer）通信のネットワークを構成することが可能である。
【００４１】
＜携帯電話１００のハードウェア構成＞
本実施の形態に係る携帯電話１００のハードウェア構成について説明する。図２は、本施の形態に係る携帯電話１００の概観を示すイメージ図である。図３は、本施の形態に係る携帯電話１００のハードウェア構成を示すブロック図である。
【００４２】
図２および図３に示すように、本実施の形態に係る携帯電話１００は、外部のネットワークとの間でデータを送受信する他の通信部１０１と、ＴＥＬ（Telephone）用通信部１０２と、プログラムや各種データベースを記憶する記憶部１０３と、ＣＰＵ（Central Processing Unit）１０６Ａを備えた制御部１０６と、ディスプレイ１０７と、外部から音声を入力するためのマイク１０８と、音声を外部に出力するためのスピーカ１０９と、各種情報の入力を受付ける入力部１１０と、電話および電子メールの着信をベルによる音や振動（バイブレーション）で報知するための第１の通知部１１１と、電話および電子メールの着信を光源（たとえば、ＬＥＤ（Light Emitting Diode））の発光で報知するための第２の通知部１１２とを含む。
【００４３】
本実施の形態に係るディスプレイ１０７は、液晶パネルやＣＲＴ（Cathode Ray Tube）から構成されるタッチパネルである。すなわち、本実施の形態に係る携帯電話１００は、ディスプレイ１０７の下側（裏側）にタブレット１１９が敷設されている。ユーザはスタイラスペン１２０を用いてディスプレイ１０７上に文字・記号・図形などを描画すると、描画による軌跡を示す座標データがタブレット１１９を介して検出されて制御部１０６に与えられる。これにより、スタイラスペン１２０を操作して手書き入力した文字・記号・図形の情報を制御部１０６に入力することができる。ディスプレイ１０７は、制御部１０６が出力した情報に基づいて、手書き入力された画像やテキストを表示する。
【００４４】
入力部１１０は、スイッチ・キー・ボタンなどを備え、ユーザがスイッチ・キー・ボタンを操作することによって入力した情報を受付ける。たとえば、入力部１１０は、通話を受付けたり、通話を発したりするために操作されるＴＥＬボタン１１０Ａと、メールを受付けたり、メールを発したりするために操作されるメールボタン１１０Ｂと、Ｐ２Ｐ通信を受付けたり、Ｐ２Ｐ通信を発したりするために操作されるＰ２Ｐボタン１１０Ｃと、アドレス帳データを参照するために操作されるアドレス帳ボタン１１０Ｄと、各種の処理を終了させるために操作される終了ボタン１１０Ｅとを含む。
【００４５】
第１の通知部１１１は、スピーカ１０９などを介して着信音（たとえばベル音）を出力する。あるいは、第１の通知部１１１は、バイブレーション機能を有する。第１の通知部１１１は、着呼に応じて、またはメール受信に応じて、音声を出力したり、携帯電話１００を振動させたりする。
【００４６】
第２の通知部１１２は、着呼に応じて点滅するＴＥＬ用ＬＥＤ１１２Ａと、メールを受信したときに点滅するメール用ＬＥＤ１１２Ｂと、Ｐ２Ｐ通信に従う信号を受信したときに点滅するＰ２Ｐ用ＬＥＤ１１２Ｃを含む。
【００４７】
制御部１０６は、ＣＰＵ１０６Ａを含むマイクロコンピュータによって実現され、携帯電話１００の各部を制御する。たとえば、入力部１１０を介してユーザから各種の命令を受付けて、他の通信部１０１やＴＥＬ用通信部１０２やネットワークを介して外部の通信端末とデータの送受信を行う。
【００４８】
他の通信部１０１およびＴＥＬ用通信部１０２は、無線通信機能を有し無線通信を行なう。具体的には、制御部１０６からの通信データを通信信号に変換し、その通信信号を図示しないアンテナを介して発信する。他の通信部１０１およびＴＥＬ用通信部１０２は、アンテナを介して受信した通信信号を通信データに変換し、その通信データを制御部１０６に入力する。
【００４９】
記憶部１０３は、作業用メモリとして機能するＲＡＭ（Random Access Memory）や、制御プログラムなどを格納するＲＯＭ（Read Only Memory）や、画像データなどを記憶するハードディスクなどによって実現される。図４は、記憶部１０３に格納されるアドレス帳データを示す図である。図５は、記憶部１０３に格納される自端末データを示す図である。
【００５０】
図３に示すように、記憶部１０３のワークメモリ１０３Ａには、通話をした相手の電話番号を指示する変数HISTELNO、選択されたアドレスのメモリＮｏを指示する変数SEL、生成されたルーム名を指示する変数RMNMが格納される。
【００５１】
図３の記憶部１０３は、さらに、アドレス帳データAdrDB[]が格納される記憶領域１０３Ｂ、携帯電話１００（自端末）に関する自端末データMyAdrが格納される記憶領域１０３Ｃ、他端末のＩＰアドレスデータHIS_IPADRを格納する記憶領域１０３Ｄ、自端末のＩＰアドレスデータMY_IPADRを格納する記憶領域１０３Ｅ、およびマッチングサーバ４００のアドレスデータSEV_ADRを格納する記憶領域１０３Ｆ含む。
【００５２】
上述したデータが格納される記憶部１０３の領域は、携帯電話１００の電源がＯＦＦされても記憶内容が消去しないメモリ、たとえばフラッシュメモリからなる。
【００５３】
図４を参照して、記憶領域１０３Ｂのアドレス帳データAdrDB[]は、宛先（他の通信端末）毎に個別にメモリＮｏを指すデータ１０３１、ならびに宛先の名前、通話において相手端末を一意に識別するための電話番号およびデータ通信において相手端末を一意に識別するためのメールアドレスを指すデータ１０３２、１０３３および１０３４対応付けて含む。
【００５４】
図５を参照して、記憶領域１０３Ｃの自端末データMyAdrは、自端末のユーザの名前、自端末を一意に識別するための電話番号およびメールアドレスを指すデータ１０３５、１０３６および１０３７を含む。
【００５５】
＜携帯電話１００の機能構成＞
図６を参照して、本実施の形態に係る携帯電話１００のＣＰＵ１０６Ａは、端末通信部１０６１、フレーム解析部１０６２、フレーム生成部１０６３、入力受付部１０６４、通知処理部１０６５、ＴＥＬ発呼部１０６７を含む発呼部１０６６、第１−Ｐ２Ｐ処理部１０６９、第２−Ｐ２Ｐ処理部１０７０およびルームアクセス部１０７１を備える。これらの各部の機能は予めプログラム・データとして記憶部１０３の所定記憶領域に格納されており、ＣＰＵ１０６Ａがこれらプログラム・データを記憶部１０３から読出し、実行することにより、各部の機能が実現される。
【００５６】
図６においては、ＣＰＵ１０６Ａが有する各機能とデータ・情報を入出力する周辺回路部のみが示される。
【００５７】
端末通信部１０６１は、電話による通信を制御するためのＴＥＬ用通信部１０２、サーバとの通信を制御するサーバ通信部１０８１およびＩＰアドレスを用いたＰ２Ｐ通信を制御するためのＰ２Ｐ通信部１０８２を含む。
【００５８】
フレーム解析部１０６２は、端末通信部１０６１によって受信されたフレームを入力し、入力したフレームのデータを解析し、解析結果を出力する。フレーム生成部１０６３は、端末通信部１０６１を介して外部ネットワークに送信するべきフレームを生成する。入力受付部１０６４は、タブレット１１９および入力部１１０から入力されたデータを受付ける。通知処理部１０６５は、第１および第２の通知部１１１および１１２の出力動作を制御する。
【００５９】
携帯電話１００の発呼動作はＴＥＬ発呼部１０６７により制御されて、外部からの電話の呼の着信（着呼）はＴＥＬ着呼部１０６８により制御される。
【００６０】
第１−Ｐ２Ｐ処理部１０６９および第２−Ｐ２Ｐ処理部１０７０は、携帯電話１００によるＰ２Ｐ通信を制御する。
【００６１】
ルームアクセス部１０７１は、Ｐ２Ｐ通信に従うチャット通信のためにマッチングサーバ４００に格納されるルームのアクセスを制御する。具体的には、ルーム名を生成するルーム名生成部１０７２、ルーム名生成部１０７２が生成したルーム名に基づきルームの検索をマッチングサーバ４００に対して要求するためのルーム検索要求部１０７３、ルーム名生成部１０７２が生成したルーム名に基づきルームの開設をマッチングサーバ４００に対して要求するためのルーム開設要求部１０７４、ルーム名生成部１０７２が生成したルーム名に基づきルームへの参加をマッチングサーバ４００に対して要求するためのルーム参加要求部１０７５、およびルーム名生成部１０７２が生成したルーム名に基づきルームの削除をマッチングサーバ４００に対して要求をするためのルーム削除要求部１０７６を含む。
【００６２】
＜ルーム名生成処理＞
ルーム名生成部１０７２は、所定のルール（関数）に、変数HISTELNOが指す電話番号と変数MyAdrのデータ１０３３が指す電話番号（MyAdr.TELNo）とをパラメータとして適用して、当該ルール（関数）に従いルーム名の変数RMNMを生成する。
【００６３】
ここではハッシュ関数を用いて、生成されたルーム名からはパラメータとして用いた２つの電話番号（変数HISTELNOが指す電話番号と変数MyAdrのデータ１０３３が指す電話番号（MyAdr.TELNo））が推測できないよう暗号化しているが、適用されるルール（関数）は、携帯電話１００と通話相手の携帯電話１００との間でユニークとなるルーム名が、互いに（自己の携帯電話１００、ならびに、通話相手の携帯電話１００ともに）、同一のルーム名が生成できるルールであれば、これに限定されない。
【００６４】
このように本実施の形態では、ルーム名は、携帯電話１００において、自己の電話番号（MyAdr.TELNo）と、通話相手の電話番号（HISTELNO）に基づき生成されるので、通話を行なっていた２人のユーザの携帯電話１００では、同一のルーム名を生成することができる。
【００６５】
＜マッチングサーバ４００およびメールサーバ６００のハードウェア構成＞
次に、本実施の形態に係るマッチングサーバ４００およびメールサーバ６００のハードウェア構成について説明する。なお、メールサーバ６００のハードウェア構成は、マッチングサーバ４００のそれと同様であるので説明を繰り返さない。
【００６６】
図７は、本実施の形態に係るマッチングサーバ４００のハードウェア構成を示すブロック図である。図７に示すように、本実施の形態に係るマッチングサーバ４００は、相互に内部バス４０８で接続されたＣＰＵ４０５と、メモリ４０６と、固定ディスク４０７と、サーバ通信部４０９とを含む。
【００６７】
メモリ４０６は、各種の情報を記憶するものであって、たとえば、ＣＰＵ４０５でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク４０７は、ＣＰＵ１０５が実行するプログラムやデータベースを記憶する。ＣＰＵ４０５は、マッチングサーバ４００およびメールサーバ６００の各要素を制御するものであって、各種の演算を実施する装置である。
【００６８】
サーバ通信部４０９は、ＣＰＵ４０５が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してＣＰＵ４０５に入力する。具体的には、サーバ通信部４０９は、ＣＰＵ４０５からのデータを、インターネット５００やキャリア網７００などを介して携帯電話１００やカーナビゲーション装置２００やパーソナルコンピュータ３００に送信する。そして、インターネット５００やキャリア網７００を介して携帯電話１００やカーナビゲーション装置２００やパーソナルコンピュータ３００から受信したデータを、ＣＰＵ４０５に入力する。
【００６９】
図８（Ａ）は、マッチングサーバ４００のメモリ４０６あるいは固定ディスク４０７に記憶されるルーム管理テーブル４０６Ａのデータ構造の一例を示す図であって、図８（Ｂ）は、他の例を示す図である。図８（Ａ）および図８（Ｂ）に示すように、ルーム管理テーブル４０６Ａは、ルーム名を指すデータ４０６１とＩＰアドレスを指すデータ４０６２とメールアドレスのデータ４０６３とを対応付けて格納する。
【００７０】
たとえば、ある時点においては、図８（Ａ）に示すように、マッチングサーバ４００にルーム名‘Ｒ’、‘Ｓ’および‘Ｔ’それぞれを有するルームが開設されている。そして、ルーム名‘Ｒ’を有するルームには、ＩＰアドレスとして‘Ａ’およびメールアドレスとして‘ＡＡ’を有する通信端末と、ＩＰアドレスとして‘Ｃ’およびメールアドレスとして‘ＣＣ’を有する通信端末が参加している。ルーム名‘Ｓ’を有するルームには、‘ＩＰアドレスとして‘Ｂ’およびメールアドレスとして‘ＢＢ’を有する通信端末が参加している。ルーム名‘Ｔ’を有するルームには、ＩＰアドレスとして‘Ｄ’およびメールアドレスとして‘ＤＤ’を有する通信端末が参加している。
【００７１】
たとえばＩＰアドレスが‘Ａ’の携帯電話１００と‘Ｃ’の携帯電話１００とが通話をしていた場合には、両方の携帯電話１００のそれぞれにおいて、お互いの電話番号に基づき同一のルーム名（RMNM）‘Ｒ’が生成される。通話をしていたユーザは、生成した同一のルーム名‘Ｒ’に基づきルーム参加要求部１０７５によりマッチングサーバ４００に対しルームへの参加を要求できる。したがって、ＩＰアドレスが‘Ａ’と‘Ｃ’の携帯電話１００のユーザは、図８（Ａ）に示すようにルーム名‘Ｒ’のルームに参加することができる。
【００７２】
図８（Ｂ）では、ＩＰアドレスが‘Ｂ’の携帯電話１００のユーザが既に開設していたルーム名‘Ｓ’のルームに、ＩＰアドレスが‘Ｅ’の携帯電話１００のユーザがその後に参加した状態が示される。
【００７３】
＜マッチングサーバ４００の機能構成＞
図９を参照して、マッチングサーバ４００は、ルーム開設部４２０、ルームへの参加およびルームの検索を受付ける参加受付部４２１Ａおよび検索受付部４２１Ｂを有するルーム受付部４２１、ルーム削除部４２２、フレーム生成部４２３およびフレーム解析部４２４を含む。これらの各部は、固定ディスク４０７またはメモリ４０６の所定の記憶領域に予めプログラム・データとして格納されており、ＣＰＵ４０５が所定記憶領域からプログラム・データを読出し、実行することにより、各部の機能が実現される。
【００７４】
メモリ４０６には、前述したルーム管理テーブル４０６Ａおよびマッチングサーバアドレスのデータ４０６Ｂが格納される。
【００７５】
ルーム開設部４２０は、メモリ４０６のルーム管理テーブル４０６Ａに、新たに開設するべきルームに対応するデータを格納することにより、ルームを開設する。ルーム受付部４２１は、携帯電話１００から受信したルームへの参加および検索の要求の受付処理を行なう。ルーム削除部４２２は、携帯電話１００からルームの削除要求を受付けたときに、要求されたルームを削除する。フレーム生成部４２３は、サーバ通信部４０９を介してインターネット５００に送信するべきデータのフレームを生成し、生成したフレームをサーバ通信部４０９に出力する。フレーム解析部４２４は、サーバ通信部４０９がインターネット５００を介して受信したデータのフレームを解析し、解析結果を出力する。
【００７６】
マッチングサーバ４００においては、第１の携帯電話１００Ａから新たなルームの開設を要求するフレームを受信すると、ルーム開設部４２０は受信したフレーム中からルーム名と、第１の携帯電話１００ＡのＩＰアドレスと、メールアドレスとを検出し、ルーム管理テーブル４０６Ａに検出したルーム名と第１の携帯電話１００ＡのＩＰアドレスとメールアドレスとを対応付けて格納する。
【００７７】
そして、第２の携帯電話１００Ｃがマッチングサーバ４００にルームへの参加を要求するフレームを送信すると、ＣＰＵ４０５は当該フレームを受信する。受付部４２１の参加受付部４２１Ａは受信したフレーム中から、ルーム名と第２の携帯電話１００ＣのＩＰアドレスとメールアドレスとを検出し、ルーム管理テーブル４０６Ａに検出したルーム名と第２の携帯電話１００ＣのＩＰアドレスとメールアドレスとを対応付けて格納する。このとき、参加受付部４２１Ａは、ルーム管理テーブル４０６Ａから、当該ルーム名に対応する第１および第２の携帯電話１００Ａと１００ＣのＩＰアドレスを読出して、フレーム生成部４２３に与える。フレーム生成部４２３は、与えられた第１および第２の携帯電話１００Ａおよび１００ＣのＩＰアドレスを格納した参加受付のフレームを生成し、第１および第２の携帯電話１００Ａおよび１００Ｃ宛てに送信する。これにより、同一ルーム名のルームに参加した第１および第２の携帯電話１００Ａおよび１００Ｃのユーザは、お互いのＩＰアドレスを受信できる。以降、受信したＩＰアドレスを用いて第１および第２の携帯電話１００Ａおよび１００Ｃの間でＰ２Ｐ通信を行うことができる。
【００７８】
（Ｐ２Ｐの動作概要）
本実施の形態に係るネットワークシステム１の動作概要について説明する。
【００７９】
図１０は、ネットワークシステム１における動作概要を示すシーケンス図である。本実施の形態に係る各通信端末は、Ｐ２Ｐ通信を行うために、はじめに互いのＩＰアドレスを交換（取得）する必要がある。そして、各通信端末は、ＩＰアドレスを取得した後に、Ｐ２Ｐ通信によってメッセージや添付ファイルなどを他の通信端末に送信する。
【００８０】
ここでは、携帯電話１００Ａのユーザが携帯電話１００Ｃのユーザと電話による通話中に、通話を中断し以降の通話を２Ｐ２通信によるメッセージ交換に切換えることを希望したケースを想定する。なお、携帯電話１００Ａと１００Ｃには、予め１Ｐアドレスが割当てられていると想定する。
【００８１】
通話を中断した後に、まず、第１の携帯電話１００Ａ（図１０において端末Ａ）は、キャリア網７００、メールサーバ６００、インターネット５００を介して、マッチングサーバ４００に宛てて、第１の携帯電話１００Ａと１００Ｃの電話番号に基づき生成したルーム名‘Ｒ’と第１の携帯電話１００ＡのＩＰアドレス‘Ａ’とメールアドレス‘ＡＡ’を格納したルーム開設を要求するフレームを送信する（ステップＳ００２）。
【００８２】
マッチングサーバ４００は、第１の携帯電話１００Ａからルーム開設の要求フレームを受信すると、受信フレームから検出した第１の携帯電話１００ＡのＩＰアドレス‘Ａ’とメールアドレス‘ＡＡ’とルーム名‘Ｒ’を対応付けてルーム管理テーブル４０６Ａに格納する。これにより、第１の携帯電話１００Ａが生成したルーム名‘Ｒ’を有したルームが開設される。このとき、マッチングサーバ４００は、ルーム開設が完了した旨を第１の携帯電話１００Ａに通知してもよい。
【００８３】
第２の携帯電話１００Ｃは、第１の携帯電話１００Ａと同様の手順でルーム名‘Ｒ’を生成し、生成したルーム名‘Ｒ’と、第２の携帯電話１００ＣのＩＰアドレス‘Ｃ’を格納した参加要求のフレームをマッチングサーバ４００に送信する（ステップＳ００８）。  
【００８４】
マッチングサーバ４００が参加要求フレームを受信すると、検索受付部４２１Ｂは受信したフレームから検出したルーム名‘Ｒ’に基づきルーム管理テーブル４０６Ａを検索し、検索結果に基づき、既にルーム名‘Ｒ’のルームが開設されていると検出する。そして、受信したフレームから検出したＩＰアドレス‘Ｃ’およびメールアドレス‘ＣＣ’を、検出したルーム名‘Ｒ’に対応付けて格納する。そして、マッチングサーバ４００は、同一ルームに既に参加していた第１の携帯電話１００Ａに宛てて、第２の携帯電話１００Ｃがルームに参加した旨と、ルーム管理テーブル４０６Ａから読出した第２の携帯電話１００ＣのＩＰアドレス‘Ｃ’とを送信する（ステップＳ０１０）。同時に、マッチングサーバ４００は、第２の携帯電話１００Ｃに、ルームへの参加を受付けた旨と当該ルームに既に参加していた第１の携帯電話１００ＡのＩＰアドレス‘Ａ’とを送信する。これにより、第１および第２携帯電話１００Ａおよび１００Ｃはお互いのＩＰアドレスを受信（取得）する。このとき、携帯電話１００からの削除要求を受けなくとも、ルーム削除部４２２はルーム名‘Ｒ’のルームを削除してもよい。
【００８５】
第１の携帯電話１００Ａは、取得したＩＰアドレス‘Ｃ’に基づいて第２の携帯電話１００ＣにＰ２Ｐ接続要求メッセージ（開始メッセージ）を送信する（ステップＳ０１２）。第２の携帯電話１００Ｃは、接続要求メッセージを受信して、第１の携帯電話１００ＡのＩＰアドレ‘Ａ’に基づいて第１の携帯電話１００Ａに第１の接続承諾メッセージ（返答メッセージ）を送信する（ステップＳ０１４）。第１の携帯電話１００Ａは、第２の携帯電話１００Ｃから第２の接続承諾メッセージを受信して、第２の携帯電話１００Ｃに接続承諾メッセージを送信する（ステップＳ０１６）。
【００８６】
このようにして、第１の携帯電話１００Ａと第２の携帯電話１００Ｃとは、互いに相手を認証する。認証が完了すると、第１の携帯電話１００Ａと第２の携帯電話１００Ｃとは、Ｐ２Ｐ通信を開始する（ステップＳ０１８）。そして携帯電話１００Ａと１００Ｃの間では、Ｐ２Ｐ通信に従うメッセージ交換が行なわれる。これにより、中断した通話を、メッセージ交換により再開することができる。
【００８７】
その後、第１の携帯電話１００Ａが、第２の携帯電話１００ＣにＰ２Ｐ通信を切断する旨のメッセージを送信すると（ステップＳ０３０）、第２の携帯電話１００Ｃは、第１の携帯電話１００Ａに切断する要求を受付けた旨のメッセージを送信する（ステップＳ０３２）。
【００８８】
＜通信フレームの構成＞
携帯電話１００とマッチングサーバ４００の間で送受信されるフレームの構成について説明する。
【００８９】
図１１を参照してフレームの基本的な構成について説明する。フレームは、ヘッダ部６１０と、データ部６２０を含む。ヘッダ部６１０には、当該フレームの種別（タイプ）を指示するデータ６１１、当該フレームの宛先‘ＤＤ’を示すデータ６１２および当該フレームの送信元‘ＳＤ’を示すデータ６１３が格納される。データ部６２０は、送信すべきデータを格納する。
【００９０】
データ６１１が示すタイプは、本実施の形態では、要求フレームであることを示す“１”と、要求の受付を示す“０”のいずれかの値となる。また、本実施の形態ではフレームは、携帯電話１００とマッチングサーバ４００との間で送受信されるため、データ６１２および６１３としては、携帯電話１００の記憶部１０３から読出されたメールアドレスのデータ１０３７、およびマッチングサーバアドレスのデータ４０６Ｂまたは記憶領域１０３ＦのアドレスデータSEV_ADRが格納される。
【００９１】
携帯電話１００のルーム検索要求部１０７３が、ルーム管理テーブル４０６Ａのルームの検索を要求する場合には、フレーム生成部１０６３が図１２のルーム検索要求のフレーム５９９を生成する。生成したフレームはサーバ通信部１０８１によってマッチングサーバ４００に宛てて送信される。
【００９２】
フレーム５９９は、データ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレスのデータ１０３７がそれぞれ格納される。また、データ部６２０には、検索の命令コード（‘RM_SEARCH’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２２として、ルーム名生成部１０７２によって生成されたルーム名のデータRMNMが記憶部１０３から読出されて格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【００９３】
マッチングサーバ４００は、ルーム検索要求のフレーム５９９を受信した場合に、フレーム生成部４２３は、図１３のルーム検索受付のフレーム６００を生成し、携帯電話１００宛てに送信する。フレーム６００は、ヘッダ部６１０においてデータ６１１は“０”を示し、データ６１２として受信したフレーム５９９のデータ６１３が格納される。また、データ６１３として、記憶部４０６から読出したマッチングサーバアドレスのデータ４０６Ｂが格納される。データ部６２０には、命令コード６２１として空データが格納される。また、受信したルーム検索要求のフレーム５９９のデータ６２２が格納される。また、ルーム検索要求に基づき検索受付部４２１Ｂがルーム管理テーブル４０６Ａを検索した結果のデータ６２６が格納される。データ６２６は、データ６２２が指すルーム名がルーム管理テーブル４０６に格納されていた場合には‘０’を指示し、格納されていなかった場合には‘−１’を指示する。
【００９４】
携帯電話１００が、ルーム開設を要求する場合には、フレーム生成部１０６３が図１４のルーム開設要求のフレーム６０１を生成する。生成したフレーム６０１は、サーバ通信部１０８１によってマッチングサーバ４００に宛てて送信される。
【００９５】
フレーム６０１は、データ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレスのデータ１０３７がそれぞれ格納される。また、データ部６２０には、開設の命令コード（‘RM_CREATE’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２２として、ルーム名生成部１０７２によって生成されたルーム名のデータRMNMが記憶部１０３から読出されて格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【００９６】
マッチングサーバ４００は、ルーム開設要求のフレーム６０１を受信した場合に、フレーム生成部４２３は、図１５のルーム開設受付のフレーム６０２を生成し、携帯電話１００宛てに送信する。フレーム６０２は、ヘッダ部６１０においてデータ６１１は“０”を示し、データ６１２として受信したフレーム６０１のデータ６１３が格納される。また、データ６１３として、メモリ４０６から読出したマッチングサーバアドレスのデータ４０６Ｂが格納される。データ部６２０には、命令コード６２１として空データが格納される。また、受信したルーム開設要求のフレーム６０１のデータ６２２が格納される。また、データ６２４として、ルーム開設要求に基づいたルーム開設部４２０によるルーム開設の受付結果のデータが格納される。データ６２４は、データ６２２が指すルーム名のルーム開設に成功した場合には‘０’を指示し、開設できなかった場合には‘−１’を指示する。開設できない場合とは、たとえば、既に、同一ルーム名のルームが開設されている場合である。
【００９７】
携帯電話１００のルーム参加要求部１０７５が、ルームへの参加を要求する場合には、フレーム生成部１０６３が図１６のルーム参加要求のフレーム６０３を生成する。生成したフレーム６０３はサーバ通信部１０８１によってマッチングサーバ４００に宛てて送信される。
【００９８】
フレーム６０３は、データ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレス１０３７がそれぞれ格納される。また、データ部６２０には、参加の命令コード（‘RM_ENTRY’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２２として、ルーム名生成部１０７２によって生成されたルーム名のデータRMNMが記憶部１０３から読出されて格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【００９９】
携帯電話１００が図１６のルーム参加要求のフレーム６０３を送信した場合において、マッチングサーバ４００の参加受付部４２１Ａは当該フレーム６０３のデータ６２２が指示するルーム名に基づきルーム管理テーブル４０６Ａを検索する。検索結果に基づき、一致するルーム名を有するルームが既に開設されていると判定した場合には、マッチングサーバ４００から、携帯電話１００に宛てて、図１７に示すルーム参加受付のフレーム６０４が送信される。具体的には、参加要求元の携帯電話１００と、指示されたルーム名のルームに既に参加していた携帯電話１００のそれぞれに宛ててフレーム６０４が送信される。
【０１００】
参加要求元の携帯電話１００宛のフレーム６０４は、ヘッダ部６１０にフレーム６０２と同様のデータが格納される。データ部６２０には、ルーム参加要求のフレーム６０３のデータ６２２が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”を示すデータ６２４と、当該ルームに既に参加している他のユーザの携帯電話１００のＩＰアドレスのデータ４０６２が、ルーム管理テーブル４０６Ａから読出されてデータ６２５として格納される。
【０１０１】
既に参加していた携帯電話１００宛のフレーム６０４は、ヘッダ部６１０のデータ６１１は“０”を指し、データ６１２はこの携帯電話１００のメールアドレスを指示し、データ６１３はマッチングサーバアドレスのデータ４０６Ｂを指す。データ６１２のメールアドレスは、ルーム管理テーブル４０６Ａを検索して読出した当該ルーム名RMNMを指示するデータ４０６１に対応して格納されたメールアドレスのデータ４０６３を指す。データ部６２０には、ルーム参加要求のフレーム６０３のデータ６２２が格納される。また、当該ルーム参加要求が受付けられたことを示す“参加受付”（値‘０’）を示すデータ６２４と、当該ルームに参加要求をした他のユーザの携帯電話１００のＩＰアドレスを指すデータ６２５が格納される。
【０１０２】
なお、参加の受付けに成功しなかった場合には、データ６２４には値‘−１’が設定されて、フレーム６０４は要求元の携帯電話１００に送信される。
【０１０３】
携帯電話１００のルーム削除要求部１０７６が、ルームの削除をマッチングサーバ４００に対して要求する場合には、フレーム生成部１０６３が図１８に示すルーム削除要求のフレーム６０５をマッチングサーバ４００に宛てて送信する。フレーム６０５は、ヘッダ部６１０においてデータ６１１が“１”を指示し、データ６１２および６１３として、記憶部１０３から読出されたマッチングサーバ４００のアドレスデータSEV_ADRとメールアドレス１０３７がそれぞれ格納される。また、データ部６２０には、削除の命令コード（‘RM_DELETE’）６２１と、ルーム名のデータ６２２と、ＩＰアドレスのデータ６２３とが格納される。データ６２２として、ルーム名生成部１０７２によって生成されたルーム名のデータRMNMが記憶部１０３から読出されて格納される。データ６２３として、送信元の携帯電話１００に予め割当てられたＩＰアドレスのデータMY_IPADRが、記憶部１０３から読出されて格納される。
【０１０４】
マッチングサーバ４００は、ルーム削除要求のフレーム６０５を受信した場合に、フレーム生成部４２３は、図１９のルーム削除受付のフレーム６０６を生成し、携帯電話１００宛てに送信する。フレーム６０６は、ヘッダ部６１０においてデータ６１１は“０”を示し、データ６１２として受信したフレーム６０５のデータ６１３が格納される。また、データ６１３として、記憶部４０６から読出したマッチングサーバアドレスのデータ４０６Ｂが格納される。データ部６２０には、命令コード６２１として空データが格納される。また、受信したルーム削除要求のフレーム６０５のデータ６２２が格納される。また、データ６２４として、ルーム削除要求に基づきルーム削除部４２２がルーム管理テーブル４０６Ａからルームを削除した結果のデータが格納される。データ６２４は、データ６２２が指すルーム名のルームをルーム管理テーブル４０６から削除するのに成功した場合には‘０’を指示し、削除に成功しなかった場合には‘−１’を指示する。
【０１０５】
＜処理フローチャート＞
電話で通話中に、Ｐ２Ｐ通信に従うデータ通信に切換える手順について図２０〜図２６のフローチャートを参照し説明する。
【０１０６】
図２０〜図２５のフローチャートは携帯電話１００において実行されるプログラムに従う処理を示す。このプログラムは予め記憶部１０３に格納されており、ＣＰＵ１０６Ａがプログラムを記憶部１０３から読出し、実行する。また、図２６のフローチャートはマッチングサーバ４００において実行されるプログラムに従う処理を示す。このプログラムは予めメモリ４０６に格納されており、ＣＰＵ４０５がプログラムをメモリ４０６から読出し、実行する。
【０１０７】
なお、ここでは、携帯電話１００Ａと携帯電話１００Ｃとの間で通話をすると想定する。電話による通話では発信者が通話相手の電話番号をダイヤルし、受信者が受話器を持ち上げた時点で呼が確立される。本実施の形態では、‘呼’（call）は、２つの携帯電話１００間の物理的な通信路（いわゆる電話回線）を指し、かかる通信路の確立の要求には通話相手の電話番号が含まれる。かかる要求を受信することを‘着呼’と言い、当該要求を送信することを‘発呼’と言う。‘着呼’および‘発呼’に応じた携帯電話１００における処理は、ＴＥＬボタン１１０Ａの操作がトリガとなって開始される。
【０１０８】
動作において、携帯電話１００（携帯電話１００Ａおよび携帯電話１００Ｃのそれぞれ）は電源がＯＮされると、図２０のフローチャートに従う処理を開始する。
【０１０９】
まず、ＣＰＵ１０６Ａは記憶部１０３から読出した変数HISTELNOに値‘NULL’を代入する（ステップＳ１）。次に、ディスプレイ１０７に操作を待受るための待受画面を表示する（ステップＳ３）。
【０１１０】
その後、入力受付部１０６４は、入力部１１０またはタブレット１１９がユーザによって操作されることによって外部から指示が入力されるか否かを判定する。
【０１１１】
具体的には、アドレス帳ボタン１１０Ｄが操作されたか否かを判定する（ステップＳ５）。アドレス帳ボタン１１０Ｄが操作されたと判定すると（ステップＳ５でＹＥＳ）、処理は、後述する発呼処理（ステップＳ７）に移行する。
【０１１２】
アドレス帳ボタン１１０Ｄが操作されないと判定すると（ステップＳ５でＮＯ）、ＣＰＵ１０６ＡはＴＥＬ用通信部１０２を介してキャリア網７００から電話の呼を受信したか否かを判定する（ステップＳ９）。着呼したことを判定すると（ステップＳ９でＹＥＳ）、処理は後述するＴＥＬ着呼処理（ステップＳ１１）に移行する。
【０１１３】
一方、着呼したとことが判定されないと（ステップＳ９でＮＯ）、入力受付部１０６４は、入力部１１０からの入力信号に基づき、Ｐ２Ｐボタン１１０Ｃが操作されたか否かを判定する（ステップＳ１３）。Ｐ２Ｐボタン１１０Ｃが操作されたと判定されなければ（ステップＳ１３でＮＯ）、処理はステップＳ５に戻る。
【０１１４】
一方、Ｐ２Ｐボタン１１０Ｃが操作されたと判定されると（ステップＳ１３でＹＥＳ）、ＣＰＵ１０６Ａは変数HISTELNOの値が‘NULL’を指示するか否かを判定する（ステップＳ１０）。変数HISTELNOが‘NULL’を指示すると判定すると（ステップＳ１５でＹＥＳ）、処理はステップＳ５に戻る。
【０１１５】
一方、変数HISTELNOの値は‘NULL’を指示すると判定しないと（ステップＳ１５でＮＯ）、処理は後述する第１−Ｐ２Ｐ処理（ステップＳ１７）に移行する。図２４の第１−Ｐ２Ｐ処理では、前述した手順に従い変数HISTELNOのデータを用いて生成したルーム名RMNMのルームを介してＰ２Ｐ通信制御（ステップＳ９７）が行なわれるから、直前に通話していた相手に限定されず、変数HISTELNOに電話番号が設定されている通話をした相手であればＰ２Ｐ通信制御を開始することができる。
【０１１６】
図２１を参照して、操作待受時（ステップＳ３）にアドレス帳ボタン１１０Ｄが操作された場合に開始される発呼処理について説明する。
【０１１７】
アドレス帳ボタン１１０Ｄが操作されると、発呼部１０６６は、記憶部１０３からアドレス帳データAdrDB[]を読出し、ディスプレイ１０７に表示する（ステップＳ１９）。ディスプレイ１０７に表示された図４のアドレス帳データを確認したユーザは、所望の通信相手を指す名前のデータ１０３２をタブレット１１９を操作して選択する。これにより、発呼部１０６６は、選択された名前のデータ１０３２に対応するデータ１０３１が指すメモリＮｏの値を、変数SELに代入する（ステップＳ２１）。続いて、発呼部１０６６は、入力受付部１０６４を介して、ユーザがＴＥＬボタン１１０Ａ、Ｐ２Ｐボタン１１０Ｃおよび終了ボタン１１０Ｅのいずれを操作するかを判定する（ステップＳ２３、Ｓ２７、Ｓ３１）。
【０１１８】
具体的には、ＴＥＬボタン１１０Ａが操作されたと判定すると（ステップＳ２３でＹＥＳ）、処理は、後述するＴＥＬ発呼処理（ステップＳ２５）に移行する。一方、ＴＥＬボタン１１０Ａが操作されないと判定されると（ステップＳ２３でＮＯ）、Ｐ２Ｐボタン１１０Ｃが操作されたか否かが判定される（ステップＳ２７）。Ｐ２Ｐボタン１１０Ｃが操作されたと判定されると（ステップＳ２７でＹＥＳ）、処理は、後述する第１−Ｐ２Ｐ処理（ステップＳ２９）に移行する。
【０１１９】
一方、Ｐ２Ｐボタン１１０Ｃが操作されたと判定されなければ（ステップＳ２７でＮＯ）、終了ボタン１１０Ｅが操作されたか否かが判定される（ステップＳ３１）。終了ボタン１１０Ｅが操作されたと判定されなければ（ステップＳ３１でＮＯ）、処理はステップＳ２３に戻り、ステップＳ２３以降の処理が同様に繰返される。
【０１２０】
一方、終了ボタン１１０Ｅが操作されたと判定されると（ステップＳ３１でＹＥＳ）、処理は図２０のステップＳ３に移行する。これにより、ディスプレイ１０７には待受画面が表示される。
【０１２１】
図２２を参照して、図２１のステップＳ２３においてＴＥＬボタン１１０Ａが操作された場合に起動するＴＥＬ発呼部１０６７が制御するＴＥＬ発呼処理について説明する。
【０１２２】
ＴＥＬボタン１１０Ａが操作されると、ＴＥＬ発呼部１０６７は、変数HISTELNOに、変数AdrDB[SEL].TELNoの値を代入する。これによって、変数HISTELNOの値は、図２１のステップＳ２１においてユーザが選択した発信先の電話番号のデータ１０３３が設定される。続いて、ＴＥＬ発呼部１０６７は、ＴＥＬ用通信部１０２を制御して、変数HISTELNOが指示する電話番号に基づき発呼処理を行なう（ステップＳ３５）。これにより、変数HISTELNOで指示される相手先の端末が呼出される。
【０１２３】
ＴＥＬ発呼部１０６７は、ＴＥＬボタン１１０Ａが操作されたか否か、すなわち通話のための回線の切断処理が指示されたか否かを判定する（ステップＳ３７）。ＴＥＬボタン１１０Ａが操作されたと判定すると（ステップＳ３７でＹＥＳ）、ステップＳ３９においてＴＥＬ用通信部１０２を介した発呼処理を終了させ（ステップＳ３９）、処理は図２０のステップＳ１に移行する。これにより、発呼したが、相手側が受信せずに（通話をすることなく）発呼処理を終了した場合には、変数HISTELNOの値は相手側の電話番号から‘NULL’に変更される。
【０１２４】
一方、ＴＥＬ発呼部１０６７は、入力受付部１０６４を介して、ユーザがＴＥＬボタン１１０Ａを操作しないと判定すると（ステップＳ３７でＮＯ）、ＴＥＬ用通信部１０２によって相手端末からの応答を受信するか否かを判定する（ステップＳ４１）。応答を受信しないと判定すると（ステップＳ４１でＮＯ）、処理はステップＳ３７に戻る。
【０１２５】
一方、相手端末からの応答を受信したと判定すると（ステップＳ４１でＹＥＳ）、処理はステップＳ４３に移行する。
【０１２６】
ステップＳ４３においては、ＴＥＬ用通信部１０２を介して、ユーザは相手端末と通話を行なう。この通話においては、相手とマイク１０８およびスピーカ１０９を介した通話が行なわれる。ここでは、通話の処理の詳細は省略する。
【０１２７】
ステップＳ４３の通話制御が行われる場合において、ＴＥＬ発呼部１０６７は、ユーザによってＴＥＬボタン１１０Ａが操作されたか否かを判定する（ステップＳ４５）。ＴＥＬボタン１１０Ａが操作されたと判定すると（ステップＳ４５でＹＥＳ）、オンフック処理が行なわれる（ステップＳ４７）。これにより、ＴＥＬ用通信部１０２を介して電話回線の切断を指示する切断信号が相手端末に送信される。このように、通話の終了を相手側と確認したユーザがＴＥＬボタン１１０Ａを操作し、通話の終了を指示した場合には、電話回線は切断されて通話は終了する。そして、処理は図２０のステップＳ３に戻る。
【０１２８】
一方、ＴＥＬボタン１１０Ａが操作されないと判定されると（ステップＳ４５でＮＯ）、ＴＥＬ発呼部１０６７は、ＴＥＬ用通信部１０２によって、相手端末から電話回線の切断信号を受信するか否か、すなわち相手端末のユーザは通話の終了を確認してオンフック操作をしたか否かを判定する（ステップＳ４９）。切断信号を受信したと判定すると（ステップＳ４９でＹＥＳ）、処理は後述する第２−Ｐ２Ｐ処理（ステップＳ５１）に移行する。
【０１２９】
一方、相手端末から切断信号を受信しないと判定すると（ステップＳ４９でＮＯ）、ユーザによってＰ２Ｐボタン１１０Ｃが操作された否かを、入力受付部１０６４によって受付けた信号に基づき判定する（ステップＳ５３）。この判定結果に基づきＰ２Ｐボタン１１０Ｃが操作されないと判定すると（ステップＳ５３でＮＯ）、通話を継続するために、処理はステップＳ４３に戻る。一方、通話の最中にＰ２Ｐボタン１１０Ｃが操作されたと判定されると（ステップＳ５３でＹＥＳ）、ＴＥＬ発呼部１０６７はＴＥＬ用通信部１０２を介して切断信号を相手端末に送信することによってオンフック処理を行なう（ステップＳ５５）。これにより、電話回線は切断されて、相手端末との通話は中断によって終了する。その後、処理は、中断した通話をデータ通信により再開するために、後述する第１−Ｐ２Ｐ処理（ステップＳ５７）に移行する。
【０１３０】
図２３を参照して、図２０のステップＳ９において電話呼出（着呼）が検出された場合に起動されるＴＥＬ着呼処理について説明する。
【０１３１】
ＴＥＬ着呼部１０６８は、受信した着呼に基づき、発信者番号の非通知が設定されているか否かを判定する（ステップＳ６１）。非通知の設定がされていると判定すると（ステップＳ６１でＹＥＳ）、処理は、後述するステップＳ６７に移行する。
【０１３２】
一方、非通知が設定されていないと判定すると（ステップＳ６１でＮＯ）、ＴＥＬ着呼部１０６８は、着呼が指す発信元の電話番号に基づき記憶部１０３のアドレス帳データAdrDB[]を検索する。検索結果に基づき、発信元の電話番号が、データ１０３３として登録（格納）済みであるか否かを判定する（ステップＳ６３）。未登録と判定すると（ステップＳ６３でＮＯ）、処理は、後述のステップＳ６７に移行する。
【０１３３】
一方、登録済みと判定すると（ステップＳ６３でＹＥＳ）、変数HISTELNOに、受信した着呼が指示する発信元の電話番号を設定する（ステップＳ６５）。続いて、ステップＳ６７において、ＴＥＬ着呼部１０６８は、着呼を外部に報知するために、通知処理部１０６５を制御して第１の通知部１１１を稼働する。これにより、ベルが鳴動し、または携帯電話１００自体が振動する。
【０１３４】
続いて、ＴＥＬ着呼部１０６８は、通知処理部１０６５を介して第２の通知部１１２により、ＴＥＬ用ＬＥＤ１１２Ａを点滅させる（ステップＳ６９）。これにより、ユーザに対して着呼があったことが報知される。
【０１３５】
続いて、ＴＥＬ着呼部１０６８は、ＴＥＬ用通信部１０２を介して着呼が終了したか否かを判定する（ステップＳ７１）。着呼は応答操作（オフフック）が検出されるまで継続して送信される。着呼にかかる信号の送信が終了したと判定されると（ステップＳ７１でＹＥＳ）、通知処理部１０６５により、第１の通知部１１１を制御してベルの鳴動および振動を停止させる（ステップＳ７３）。続いて、第２の通知部１１２によりＴＥＬ用ＬＥＤ１１２Ａの点滅を停止するとともに、ＴＥＬ着呼部１０６８は、着信の登録を記憶部１０３において行なう。具体的には着呼が指示する発信元の電話番号が記憶部１０３に所定記憶領域に格納される。当該記憶領域から電話番号を読出し、ディスプレイ１０７に表示するこによって、着信があったことと相手先の電話番号を報知できる。その後、処理は図２０のステップＳ１に移行する。
【０１３６】
着呼にかかる信号の送信終了が判定されないと（ステップＳ７１でＮＯ）、着呼に応じた通話を開始するために、ユーザがＴＥＬボタン１１０Ａを操作したか否かを判定する（ステップＳ７７）。ＴＥＬボタン１１０Ａが操作されないと判定されると（ステップＳ７７でＮＯ）、処理はステップＳ７１に戻る。
【０１３７】
一方、ＴＥＬボタン１１０Ａが操作されたと判定されると（ステップＳ７７でＹＥＳ）、ＴＥＬ着呼部１０６８は、通知処理部１０６５により、第１の通知部１１１および第２の通知部１１２を制御して、ベルの鳴動および振動を停止させるとともに、ＴＥＬ用ＬＥＤ１１２Ａの点滅を停止し（ＬＥＤの消灯）、着信に応答するための動作（オフフック）を行なう（ステップＳ７９、Ｓ８１、Ｓ８３）。これにより、通話のための通信回線が確立し、通信回線およびＴＥＬ用通信部１０２を経由して、相手端末のユーザと通話を開始する。その後、処理は図２２のステップＳ４３に移行する。
【０１３８】
次に、図２４の第１−Ｐ２Ｐ処理について説明する。
第１−Ｐ２Ｐ処理は、待受画面表示時（ステップＳ３）においてユーザがＰ２Ｐボタン１１０Ｃを操作した場合であって、且つ変数HISTELNOに値NULLではなく電話番号が設定されていた場合、または通話を行なっている最中においてＰ２Ｐボタン１１０Ｃが操作された場合には、図２４の第１−Ｐ２Ｐ処理が開始される。
【０１３９】
まず、第１−Ｐ２Ｐ処理部１０６９は、ルーム名生成部１０７２を制御してルーム名RMNMを生成する。具体的には、変数HISTELNOと変数MyAdr_TELNoが指示する２つの値と、所定のルール（関数）を適用して、たとえば、RMNM＝HASH（HISTELNO，MyAdr_TELNo）に従いルーム名RMNMを生成し、記憶部１０３に格納する。
【０１４０】
次に、第１−Ｐ２Ｐ処理部１０６９は、サーバ通信部１０８１を制御してインターネット５００に接続する（ステップＳ８７）。一般的には、この時点で、自己の携帯電話１００のＩＰアドレスが確定し、確定したＩＰアドレスは変数MY_IPADRに設定される。
【０１４１】
続いて、第１−Ｐ２Ｐ処理部１０６９は、ルーム検索要求部１０７３を制御してルーム検索要求処理を行なう（ステップＳ８９）。以下に、ルーム検索要求の処理について説明する。
【０１４２】
ルーム検索要求部１０７３は、記憶部１０３から読出したデータと、生成されたルーム名RMNMをフレーム生成部１０６３に与えて、ルーム検索要求フレームを生成するように指示する。この指示に応答して、フレーム生成部１０６３は、与えられるデータに基づき図１２のフレーム５９９を生成する。生成されたフレーム５９９はサーバ通信部１０８１を介して、マッチングサーバ４００宛に送信される。
【０１４３】
マッチングサーバ４００においては、サーバ通信部４０９はフレーム５９９を受信し、フレーム解析部４２４に与える。フレーム解析部４２４は入力したフレーム５９９の命令コード‘RM_SEARCH’に基づき当該フレーム５９９を検索受付部４２１Ｂに出力する。
【０１４４】
検索受付部４２１Ｂは、入力したフレーム５９９から読出したルーム名RMNMに基づき、ルーム管理テーブル４０６を検索する。その検索結果はフレーム生成部４２３に与えられる。フレーム生成部４２３は、受信したフレーム５９９の内容と検索結果とを格納したルーム検索受付フレーム６００を生成し、サーバ通信部４０９に与える。サーバ通信部４０９は、入力した検索受付フレーム６００を要求元の携帯電話１００宛てに送信する。以上により、ステップＳ８９のルーム検索要求処理は終了する。
【０１４５】
マッチングサーバ４００から送信された検索受付フレーム６００は、サーバ通信部１０８１を経由してフレーム解析部１０６２に与えられる。フレーム解析部１０６２は解析結果に基づき、受信したフレーム６００を第１−Ｐ２Ｐ処理部１０６９に与える。
【０１４６】
第１−Ｐ２Ｐ処理部１０６９は、入力したフレーム６００のデータ６２６が指す検索結果の値に基づき、ルーム名RMNMのルームが存在するか否かを判定する（ステップＳ９１）。データ６２６の値が‘−１’である、すなわちルームが存在しない（開設されていない）と判定すると（ステップＳ９１でＮＯ）、処理は、後述するステップＳ１０３に移行する。
【０１４７】
データ６２６の値が‘０’である、すなわちルームが存在する（開設されている）と判定すると（ステップＳ９１でＹＥＳ）、ルーム参加要求部１０７５を起動して、ルーム参加要求の処理を行う（ステップＳ９３）。
【０１４８】
以下に、ルーム参加要求の処理について説明する。
ルーム参加要求部１０７５は、記憶部１０３から読出したデータと、生成されたルーム名RMNMをフレーム生成部１０６３に与えて、ルーム参加要求フレームを生成するように指示する。この指示に応答して、フレーム生成部１０６３は、与えられるデータに基づき図１６のルーム参加要求フレーム６０３を生成する。生成されたフレーム６０３はサーバ通信部１０８１を介して、マッチングサーバ４００宛に送信される。
【０１４９】
マッチングサーバ４００においては、サーバ通信部４０９はフレーム６０３を受信し、フレーム解析部４２４に与える。フレーム解析部４２４は入力したフレーム６０３の命令コード‘RM_ENTRY’に基づき当該フレーム６０３を参加受付部４２１Ａに出力する。
【０１５０】
参加受付部４２１Ａは、入力したフレームから読出したデータ６２２が指すルーム名RMNMと、データ６２３が指すＩＰアドレスと、データＳＤが指すメールアドレスとを、ルーム管理テーブル４０６Ａに対応付けて格納する。
【０１５１】
参加受付部４２１Ａは、フレーム生成部１０６３を制御して、前述したように図１７に示すルーム参加受付フレーム６０４を生成する。つまり、参加要求元の携帯電話１００と、指示されたルーム名RMNMのルームに既に参加していた携帯電話１００とのそれぞれに宛てたフレーム６０４が生成されて送信される。携帯電話１００では、サーバ通信部１０８１を経由してルーム参加受付フレーム６０４を受信すると、フレーム解析部１０６２は受信したルーム参加受付フレーム６０４を解析し、解析結果に基づき、相手がルームに参加した旨の通知を、第１−Ｐ２Ｐ処理部１０６９および第２−Ｐ２Ｐ処理部１０７０にそれぞれ出力する。
【０１５２】
以上により、ステップＳ９３のルーム参加要求処理は終了する。
フレーム解析部１０６２は解析結果に基づき、受信したフレーム６０４を第１−Ｐ２Ｐ処理部１０６９に与える。
【０１５３】
第１−Ｐ２Ｐ処理部１０６９は、フレーム解析部１０６２から上述の通知を入力すると、受信した参加受付フレーム６０４のデータ６２５が指すＩＰアドレスを記憶部１０３の変数HIS_IPADRの領域１０３Ｄに格納する（ステップＳ９５）。これにより、ルーム名RMNMに参加しているユーザの携帯電話１００には、他の参加ユーザの携帯電話１００のＩＰアドレスが変数HIS_IPADRとして格納される。その後、Ｐ２Ｐ通信部１０８２を経由して変数HIS_IPADRが指すＩＰアドレスに基づき相手端末とＰ２Ｐ通信のための制御が行なわれる（ステップＳ９７）。
【０１５４】
このＰ２Ｐ通信に従うメッセージ交換の最中において、Ｐ２Ｐボタン１１０Ａが操作されたか否か、または相手携帯電話１００から終了操作の信号を受信したか否かを判定する（ステップＳ９９）。終了操作がされた、または相手の携帯電話１００から終了操作信号を受信したと判定されない間は（ステップＳ９９でＮＯ）、Ｐ２Ｐ通信が行なわれる（ステップＳ９７）。終了操作がされた、または相手側から終了操作信号を受信したと判定すると（ステップＳ９９でＹＥＳ）、インターネット５００の切断が行なわれる（ステップＳ１０１）。その後、処理は図２０のステップＳ３に移行する。
【０１５５】
上述したステップＳ９７およびステップＳ９９の処理は、本実施の形態では、ＩＰアドレス（MY_IPADRとHIS_IPADR）を用いての携帯電話１００Ａと１００Ｃ同士間での直接のメッセージ交換を意味している。具体的には、Ｐ２Ｐ通信を利用したアプリケーションソフトウェアが起動されて、起動されたアプリケーションソフトウェアの処理を通じて、お互いにメッセージ交換処理がなされる。
【０１５６】
ステップＳ９１に戻り、第１−Ｐ２Ｐ処理部１０６９は、入力したフレーム６００のデータ６２６の値が‘−１’である、すなわちルームが存在しない（開設されていない）と判定すると（ステップＳ９１でＮＯ）、ルーム開設要求部１０７６を制御してルーム開設要求処理を行う（ステップＳ１０３）。以下に、ルーム開設要求処理について説明する。
【０１５７】
ルーム開設要求部１０７６は、記憶部１０３から読出したルーム名RMNMおよびデータをフレーム生成部１０６３に与えて、図１４のルーム開設要求フレーム６０１を生成するよう指示する。フレーム生成部１０６３は、指示に応じて、与えられるデータに基づきルーム開設要求フレーム６０１を生成しサーバ通信部１０８１に出力する。サーバ通信部１０８１は入力したルーム開設要求フレーム６０１をマッチングサーバ４００に宛てて送信する。
【０１５８】
マッチングサーバ４００は、ルーム開設要求フレーム６０１を受信すると、フレーウ６０１はフレーム解析部４２４によって解析されて、解析結果に基づき、当該フレーム６０１はルーム開設部４２０に与えられる。ルーム開設部４２０は、入力したフレーム６０１のデータ６２２が指すルーム名RMNM、データ６２３が指すＩＰアドレスおよびデータ６１２が示すメールアドレスを、データ４０６１、４０６２および４０６３として対応付けてルーム管理テーブル４０６に格納する。これにより、ルーム名RMNMのルームが開設される。
【０１５９】
開設後、ルーム開設部４２０はフレーム生成部４２３に制御して、図１５のルーム開設受付フレーム６０２を生成する。生成されたルーム開設受付フレーム６０２は、サーバ通信部４０９を経由して、要求元の携帯電話１００に送信される。以上により、ルーム開設要求処理は終了する。
【０１６０】
第１−Ｐ２Ｐ処理部１０６９は、サーバ通信部１０６１を経由してルーム開設受付フレーム６０２を受信すると、計時部１０５が出力する時間データに基づき、その後一定時間が経過したか否かを判定する（ステップＳ１０５）。一定時間が経過したと判定すると（ステップＳ１０５でＹＥＳ）、処理は、後述するステップＳ１１３に移行する。
【０１６１】
一方、一定時間の経過が判定されないと（ステップＳ１０５でＮＯ）、相手の携帯電話１００のユーザが、開設したルームに参加したか否かが判定される（ステップＳ１０７）。すなわち、マッチングサーバ４００から、他の携帯電話１００のＩＰアドレスを格納したルーム参加受付フレーム６０４を受信するか否かを判定する。第１−Ｐ２Ｐ処理部１０６９は、フレーム解析部１０６２からの通知に基づき、開設したルームに相手ユーザが参加したことを判定すると（ステップＳ１０７でＹＥＳ）、受信したルーム参加受付フレームのデータ６２５が指すＩＰアドレスを記憶部１０３の変数HIS_IPADRの領域１０３Ｄに格納する（ステップＳ１０９）。これにより、ルーム名RMNMに参加しているユーザの携帯電話１００には、他の参加ユーザの携帯電話１００のＩＰアドレスが変数HIS_IPADRとして格納される。
【０１６２】
一定時間を経過してもフレーム解析部１０６２からの通知を入力できないときは（ステップＳ１０７でＮＯ、ステップＳ１０５でＹＥＳ）、処理は後述のステップＳ１１３に移行する。
【０１６３】
ステップＳ１０９の処理後、第１−Ｐ２Ｐ処理部１０６９は、ルーム削除要求部１０７６を制御してルーム削除要求処理（ステップＳ１１１）を行なう。以下に、ルーム削除要求処理を説明する。
【０１６４】
ルーム削除要求部１０７６は、ルーム名RMNMおよび記憶部１０３から読出したデータをフレーム生成部１０６３に与えて、図１８のルーム削除要求フレーム６０５を生成するよう指示する。フレーム生成部１０６３は、指示に応じて、与えられるデータに基づきルーム削除要求フレーム６０５を生成しサーバ通信部１０８１に出力する。サーバ通信部１０８１は入力したルーム削除要求フレーム６０５をマッチングサーバ４００に宛てて送信する。
【０１６５】
マッチングサーバ４００は、ルーム削除要求フレーム６０５を受信すると、フレーム解析部４２４によって解析して、解析結果に基づき、当該フレーム６０５はルーム削除部４２２の与えられる。ルーム削除部４２２は、入力したフレーム６０５のデータ６２２が指すルーム名RMNMに基づきルーム管理テーブル４０６Ａを検索する。そして、検索結果に基づき、ルーム名RMNMを指すデータ４０６１と、これに対応するデータ４０６２及び４０６３を、ルーム管理テーブル４０６から削除する。これにより、ルーム名RMNMのルームが削除される。
【０１６６】
削除後、ルーム削除部４２２はフレーム生成部４２３を制御して、図１９のルーム削除受付フレーム６０６を生成する。生成されたルーム削除受付フレーム６０６は、サーバ通信部４０９を経由して、要求元の携帯電話１００に送信される。以上により、ルーム削除要求処理は終了する。
【０１６７】
携帯電話１００では、図１９のルーム削除受付フレーム６０６を受信すると、処理は前述したステップＳ９７のＰ２Ｐ通信に移行する。
【０１６８】
このように、ステップＳ１０３〜ステップＳ１１１の処理により、ルーム名RMNMのルームを開設後、当該ルームに相手が参加するのを待機する期間を設けている。
【０１６９】
ステップＳ１０５に戻り、ルーム開設後、一定時間を経過しても、相手ユーザが当該ルームに参加した旨の通知が場合には（ステップＳ１０５でＹＥＳ）、ステップＳ１１３において、インターネット５００の接続が切断される。その後、第１−Ｐ２Ｐ処理部１０６９は、相手の携帯電話１００からのアクセスがない旨のエラーメッセージをディスプレイ１０７に一定時間表示する。その後、処理は、図２０のステップＳ３に移行し待受画面が表示される。
【０１７０】
図２５を参照して、第２−Ｐ２Ｐ処理部１０７０の処理について説明する。
図２２で説明したように、相手携帯電話１００と通話の最中に、相手の携帯電話１００から回線の切断信号を受信したことにより通話が中断した場合には（ステップＳ４９でＹＥＳ）、第２−Ｐ２Ｐ処理部１０７０が起動する。
【０１７１】
第２−Ｐ２Ｐ処理部１０７０は、まず、ルーム名RMNMを生成し（ステップＳ１１７）、その後、インターネット５００に接続する（ステップＳ１１９）。一般的には、この時点で自己の端末のＩＰアドレスが確定するので、確定したＩＰアドレスを変数MY_IPADRに代入する（ステップＳ１１９）。続いて、ルーム検索要求部１０７３による処理が行なわれる。そして、マッチングサーバ４００からのルーム検索結果を格納したフレーム６００を受信し、受信したフレーム６００の解析結果に基づき、ルーム名RMNMのルームが存在する（開設済み）か否かを判定する（ステップＳ１２１）。ルームが存在しないと判定すると（ステップＳ１２１でＮＯ）、インターネット５００の接続を断ち（ステップＳ１２７）、処理は図２０のステップＳ３に移行する。一方、フレーム６００の解析結果に基づきルームが存在すると判定すると（ステップＳ１２１でＹＥＳ）、その後、計時部１０５が出力する時間データに基づき一定時間が経過したかを判定する（ステップＳ１２３）。一定時間経過しないと判定されると（ステップＳ１２３でＮＯ）、ユーザによりＰ２Ｐボタン１１０Ｃが操作されたか否かが判定される（ステップＳ１２５）。操作されなければ、処理はステップＳ１２３に戻るが、操作された場合には、処理は図２４のステップＳ９３に移行する。
【０１７２】
一方、ルームが存在すると判定された後に、一定時間が経過してもＰ２Ｐボタン１１０Ｃの操作がされないと判定されると（ステップＳ１２３でＹＥＳ）、処理は図２４のステップＳ１１３に移行し、インターネット５００の接続が切断される。
【０１７３】
図２５におけるステップＳ１１７、Ｓ１１９、Ｓ１２０、Ｓ１２１の処理は、図２４のステップＳ８５、Ｓ８７、Ｓ８９およびＳ９１の処理と同じ手順で行われる。
【０１７４】
なお、ステップＳ１２１の判定結果はディスプレイ１０７に表示してもよい。表示した場合には、ユーザは既にルームが開設されていることを確認できるので、速やかに、ルーム参加（Ｐ２Ｐ通信開始）のためにＰ２Ｐボタン１１０Ｃを操作できる。
【０１７５】
このように、通話の最中に相手携帯電話１００から一方的に切断信号を受信して通話が中断したとしても、相手ユーザが開設したルームに参加することにより、通話をＰ２Ｐ通信に従うメッセージ交換に切換えることができる。したがって、中断した通話をデータ通信により継続することができる。
【０１７６】
ここで、マッチングサーバ４００の処理について図２６を参照して説明する。
上述した携帯電話１００の処理に並行して、マッチングサーバ４００では図２６に従う処理が実行される。マッチングサーバ４００で並行して行なわれる処理は、携帯電話１００側の処理で説明しているので、ここでは、簡単に行なう。
【０１７７】
図２６を参照して、マッチングサーバ４００のＣＰＵ４０５は、サーバ通信部４０９を経由してデータを受信するか否かを判定する（ステップＳ１３１）。データを受信しない間は、ステップＳ１３１の処理が繰返される。
【０１７８】
一方、データを受信したと判定すると（ステップＳ１３１でＹＥＳ）、受信したデータ、すなわち受信したフレームの解析処理を、フレーム解析部４２４にて行なう（ステップＳ１３３）。
【０１７９】
フレーム解析部４２４は、受信フレームのデータ６２１が指す命令コードを読出して解析する。解析結果に基づき、命令コードが、ルーム開設、ルームの検索、ルームの削除およびルームへの参加のいずれの命令を指すかを判定する（ステップＳ１３５、Ｓ１３７、Ｓ１３９、Ｓ１４１）。命令コードがいずれの命令も指示しないと判定すると（ステップＳ１４１でＮＯ）、フレームに“ＥＲＲＯＲ”を指す値‘−１’を格納し、当該フレームを送信元の携帯電話１００に送信する（ステップＳ１４３）。その後、処理はステップＳ１３１に戻る。
【０１８０】
一方、受信フレームの命令コードはルームの開設を指示していると判定すると（ステップＳ１３５でＹＥＳ）、ルーム開設部４２０は、受信フレームのルーム名RMNMに基づきルーム管理テーブル４０６Ａを検索し、検索結果に基づき、ルーム名RMNMのルームが既に開設されているか否かを判定する（ステップＳ１４５）。
【０１８１】
ルームが既に開設されていると判定すると（ステップＳ１４５でＹＥＳ）、処理はステップＳ１４３に移行する。一方、ルームは未開設であると判定すると（ステップＳ１４５でＮＯ）、ルーム管理テーブル４０６Ａに受信フレームから読出したデータを格納することによりルームの開設を行なう（ステップＳ１５３）。その後、処理はステップＳ１５５に移行する。
【０１８２】
ステップＳ１５５においては、フレームに“ＯＫ”を示す値‘０’を格納した返信情報を、要求元の携帯電話１００に送信する。その後、処理はステップＳ１３１に移行する。
【０１８３】
一方、フレームの解析結果、受信フレームの命令コードはルームの検索を指示していると判定すると（ステップＳ１３７でＹＥＳ）、検索受付部４２１Ｂは、ルーム管理テーブル４０６Ａを、受信したルーム名RMNMで検索する。そして、検索結果に基づき、ルームが存在するか（開設されているか）否かを判定する。ルームは存在すると判定すると、処理は、前述したステップＳ１５５に移行するが、ルームは存在しないと判定すると（ステップＳ１３７でＮＯ）、処理は前述したステップＳ１４３に移行する。
【０１８４】
受信フレームの解析結果、フレームに格納された命令コードが、ルームの削除要求を指示していると判定すると（ステップＳ１３９でＹＥＳ）、ルーム削除部４２２は、受信フレームのデータ６１３が指すメールアドレスと、ルーム管理テーブル４０６Ａの当該ルーム名RMNMに関連付けて格納されたデータ４０６３が指すメールアドレスとを比較照合し、一致するか否かを判定する（ステップＳ１４９）。一致する場合、すなわち削除要求をした携帯電話１００は当該ルームに参加していた端末であると判定すると（ステップＳ１４９でＹＥＳ）、ルーム管理テーブル４０６Ａから当該ルーム名RMNMのデータを削除し（ステップＳ１５７）、処理は前述したステップＳ１５５に移行する。
【０１８５】
一方、不一致の場合、すなわち削除要求をした携帯電話１００は当該ルームに参加していた端末ではないと判定すると（ステップＳ１４９でＮＯ）、削除処理は行われずに、処理は前述したステップＳ１４３に移行する。
【０１８６】
受信フレームの解析結果、フレームに格納された命令コードは、ルームへの参加を要求していると判定すると（ステップＳ１４１でＹＥＳ）、参加受付部４２１Ａは、ルーム管理テーブル４０６Ａを受信フレームから読出したルーム名RMNMに基づき検索する。検索結果に基づき、ルーム名RMNMのルームが開設されていると判定すると（ステップＳ１５１でＹＥＳ）、ルームへの参加処理を行ない（ステップＳ１５９）、参加している他の携帯電話１００に対して今回新たに参加した携帯電話１００のＩＰアドレスを送信するとともに、参加要求した携帯電話１００に対しては既に参加していた他の携帯電話１００のＩＰアドレスを送信する（ステップＳ１６１、Ｓ１６３）、その後、処理はステップＳ１３１に移行する。
【０１８７】
本実施の形態によれば、通話の最中にＰ２Ｐボタン１１０Ｃを操作すると、通話が中断される。そして、通話中の相手端末（携帯電話１００）を特定する識別情報（電話番号）と自端末（携帯電話１００）の識別情報（電話番号）とに基づきルーム名RMNMを生成する。そして、ルーム名RMNMによって指示されるルームが開設されて、開設したルームを利用して通話していた端末の間でＰ２Ｐ通信網が形成される。そして、中断した通話をＰ２Ｐ通信網を利用したデータ通信により再開することができる。このように、Ｐ２Ｐボタン１１０Ｃを操作するという簡単操作で、通信機能を、通話からデータ通信へ切換えて、端末間でコミュニケーションを継続することができる。
【０１８８】
（プログラムおよび記録媒体）
ここで、本実施の形態における携帯電話１００を含む通信端末間の、上述したような図２０〜図２５のフローチャートに従う機能はプログラムとして提供することができる。このようなプログラムは、携帯電話１００のＣＰＵ１０６Ａのコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、ＦＤ（Flexible Disc）、ＣＤ（Compact Disc）−ＲＯＭまたは記憶部１０３を構成するＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット５００を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１８９】
また、図２６のフローチャートに従う機能もプログラムとして提供することができる。このようなプログラムは、マッチングサーバ４００のＣＰＵ４０５のコンピュータに付属する記録媒体に予め記録させて、プログラム製品として提供することもできる。このような記録媒体としては、ＦＤ（Flexible Disc）４１２、ＣＤ（Compact Disc）−ＲＯＭ４１４またはメモリ４０６を構成するＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）、ならびにメモリカードなどのコンピュータ読取り可能な記録媒体がある。あるいは、コンピュータに内蔵する固定ディスク４０７の記録媒体にて記録させて、プログラムを提供することもできる。また、インターネット５００を含む各種ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１９０】
ここで、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１９１】
なお、一般的傾向として、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュールを用意しておき、アプリケーションプログラムはこれらモジュールを所定の配列で必要なときに呼出して処理を進める方式が一般的である。そうした場合、本実施の形態に係るシステムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、当該コンピュータでオペレーティングシステムと協働してはじめてシステムが実現することになる。しかし、一般的なプラットホームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体（およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号）が実施の形態を構成すると考えることができる。
【０１９２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され
、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１９３】
【図１】本実施の形態に係るネットワークシステム１の一例を示す概略図である。
【図２】本実施の形態に係る携帯電話の概観を示すイメージ図である。
【図３】本実施の形態に係る携帯電話のハードウェア構成を示すブロック図である。
【図４】本実施の形態に係るアドレス帳データを説明する図である。
【図５】本実施の形態に係る自端末データを説明する図である。
【図６】本実施の形態に係る携帯電話の機能構成図である。
【図７】本実施の形態に係るマッチングサーバのハードウェア構成図である。
【図８】（Ａ）と（Ｂ）は本実施の形態に係るルーム管理テーブルのデータ構造の一例を示す図である。
【図９】本実施の形態に係るマッチングサーバの機能構成図である。
【図１０】本実施の形態に係る通信手順を模式的に示す図である。
【図１１】本実施の形態に係るフレームの基本構成を説明する図である。
【図１２】本実施の形態に係るルーム検索要求フレームの構成図である。
【図１３】本実施の形態に係るルーム検索受付フレームの構成図である。
【図１４】本実施の形態に係るルーム開設要求フレームの構成図である。
【図１５】本実施の形態に係るルーム開設受付フレームの構成図である。
【図１６】本実施の形態に係るルーム参加要求フレームの構成図である。
【図１７】本実施の形態に係るルーム参加受付フレームの構成図である。
【図１８】本実施の形態に係るルーム削除要求フレームの構成図である。
【図１９】本実施の形態に係るルーム削除受付フレームの構成図である。
【図２０】本実施の形態に係るメイン処理フローチャートである。
【図２１】本実施の形態に係る発呼処理フローチャートである。
【図２２】本実施の形態に係るＴＥＬ発呼処理フローチャートである。
【図２３】本実施の形態に係るＴＥＬ着呼処理フローチャートである。
【図２４】本実施の形態に係る第１−Ｐ２Ｐ処理フローチャートである。
【図２５】本実施の形態に係る第２−Ｐ２Ｐ処理フローチャートである。
【図２６】本実施の形態に係るマッチングサーバの処理フローチャートである。
【符号の説明】
【０１９４】
１００  携帯電話、４００  マッチングサーバ、４０６Ａ  ルーム管理テーブル、４２０  ルーム開設部、４２１Ａ  参加受付部、４２１Ｂ  検索受付部、４２２  ルーム削除部、１０６６  発呼部、１０６８  ＴＥＬ着呼部、１０６９  第１−Ｐ２Ｐ処理部、１０７０  第２−Ｐ２Ｐ処理部、１０７２  ルーム名生成部、１０７３  ルーム検索要求部、１０７４  ルーム開設要求部、１０７５  ルーム参加要求部、１０７６  ルーム削除要求部。
【図１】
2010130167.tif 000003
【図２】
2010130167.tif 000004
【図３】
2010130167.tif 000005
【図４】
2010130167.tif 000006
【図５】
2010130167.tif 000007
【図６】
2010130167.tif 000008
【図７】
2010130167.tif 000009
【図８】
2010130167.tif 000010
【図９】
2010130167.tif 000011
【図１０】
2010130167.tif 000012
【図１１】
2010130167.tif 000013
【図１２】
2010130167.tif 000014
【図１３】
2010130167.tif 000015
【図１４】
2010130167.tif 000016
【図１５】
2010130167.tif 000017
【図１６】
2010130167.tif 000018
【図１７】
2010130167.tif 000019
【図１８】
2010130167.tif 000020
【図１９】
2010130167.tif 000021
【図２０】
2010130167.tif 000022
【図２１】
2010130167.tif 000023
【図２２】
2010130167.tif 000024
【図２３】
2010130167.tif 000025
【図２４】
2010130167.tif 000026
【図２５】
2010130167.tif 000027
【図２６】
2010130167.tif 000028