(57)【要約】【課題】ユーザにとって使い勝手がよい、音声通話とデータ通信とを並行して実行できる通信端末を提供する。【解決手段】通信端末１００は、第１の通信デバイス１０１と、第２の通信デバイス１０２と、スピーカ１０９と、マイク１０８と、プロセッサ１０６とを備える。プロセッサ１０６は、第１の通信デバイス１０１とスピーカ１０９とマイク１０８とを用いて、他の通信端末との音声通話を行い、他の通信端末との音声通話中に、データ通信を開始するための命令を受け付け、命令に応じて、音声通話を行いながら、第２の通信デバイス１０２を用いて、他の通信端末とのデータ通信を行なう。【選択図】図６
2011171809.tif 000002
【特許請求の範囲】
【請求項１】
他の通信端末と通信するための通信端末であって、
第１の通信デバイスと、
第２の通信デバイスと、
スピーカと、
マイクと、
プロセッサとを備え、
前記プロセッサは、
前記第１の通信デバイスと前記スピーカと前記マイクとを用いて、前記他の通信端末との音声通話を行い、
前記他の通信端末との音声通話中に、データ通信を開始するための命令を受け付け、
前記命令に応じて、前記音声通話を行いながら、前記第２の通信デバイスを用いて、前記他の通信端末とのデータ通信を行う、通信端末。
【請求項２】
タッチパネルをさらに備え、
前記プロセッサは、
前記他の通信端末とのデータ通信中に、前記タッチパネルを介して第１の手描き画像の入力を受け付けて、当該第１の手描き画像を前記第２の通信デバイスを介して当該他の通信端末へと送信し、
前記他の通信端末との前記データ通信中に、前記第２の通信デバイスを介して当該他の通信端末から第２の手描き画像を受信して、当該第２の手描き画像を前記タッチパネルに表示させる、請求項１に記載の通信端末。
【請求項３】
前記プロセッサは、前記他の通信端末との音声通話中に、前記タッチパネルに前記データ通信を開始するための命令を受け付けるためのソフトウェアボタンを表示させる、請求項２に記載の通信端末。
【請求項４】
ハードウェアボタンをさらに備え、
前記プロセッサは、前記他の通信端末との音声通話中に、前記ハードウェアボタンを介して、前記データ通信を開始するための命令を受け付ける、請求項１または２に記載の通信端末。
【請求項５】
前記プロセッサは、前記データ通信を開始するときに、前記通信端末をハンズフリーモードへと移行させる、請求項１から４のいずれかに記載の通信端末。
【請求項６】
第１および第２の通信デバイスとスピーカとマイクとプロセッサとを含む通信端末における通信方法であって、
前記プロセッサが、前記第１の通信デバイスと前記スピーカと前記マイクとを用いて、前記他の通信端末との音声通話を行うステップと、
前記プロセッサが、前記他の通信端末との音声通話中に、データ通信を開始するための命令を受け付けるステップと、
前記プロセッサが、前記命令に応じて、前記音声通話を行いながら、前記第２の通信デバイスを用いて、前記他の通信端末とのデータ通信を行うステップとを備える、通信方法。
【請求項７】
第１および第２の通信デバイスとスピーカとマイクとプロセッサとを含む通信端末に通信させるための通信プログラムであって、
前記通信プログラムは、前記プロセッサに、
前記第１の通信デバイスと前記スピーカと前記マイクとを用いて、前記他の通信端末との音声通話を行うステップと、
前記他の通信端末との音声通話中に、データ通信を開始するための命令を受け付けるステップと、
前記命令に応じて、前記音声通話を行いながら、前記第２の通信デバイスを用いて、前記他の通信端末とのデータ通信を行うステップとを実行させる、通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の通信端末と通信するための通信端末、通信方法、および通信プログラムに関し、特に、他の通信端末と音声通話およびデータ通信が可能な通信端末、通信方法、および通信プログラムに関する。
【背景技術】
【０００２】
従来から、他の通信端末と音声通話をするための通信端末が知られている。たとえば、携帯電話は、キャリア網を介して他の携帯電話と音声通話を行なうことができる。また、パーソナルコンピュータを利用した、ＩＰ（Internet  Protocol）電話なども知られている。
【０００３】
一方、インターネットに接続可能な複数の通信端末によるデータ通信も知られている。近年、ダイレクトなデータ通信システムとして、Ｐ２Ｐ（Peer  to  Peer）システムなどが利用されている。
【０００４】
また、特開２０００−２６１８５７号公報（特許文献１）には、携帯電話装置が開示されている。特開２０００−２６１８５７号公報（特許文献１）によると、携帯電話装置は、ＣＤＭＡ通信網との間で通信可能なＣＤＭＡ通信部とＰＨＳ通信網との間で通信可能なＰＨＳ通信部との２つの通信部を備えている。装置は、ＣＤＭＡ通信部を制御することにより、マイクが入力する送話音声やレシーバが出力する受話音声を音声系データとしてＣＤＭＡ通信網との間で通信する。装置は、ＰＨＳ通信部を制御することにより、データ端末のデータを非音声系データとしてＰＨＳ通信網との間で通信する。装置が、ＣＤＭＡ通信部による音声系データの通信処理と、ＰＨＳ通信部による非音声系データの通信処理とを互いに干渉させることなく実行するので、ユーザは、通話しながら、高速で、且つ、安定した通信速度によりデータ通信することが可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２６１８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、どのようなトリガーに応じて、あるいは、どのような処理手順を介して、音声通話に関する制御とデータ通信に関する制御とを共にアクティブにすることが好ましいのか、ということについては未だ研究されていない。将来、ユーザによって使い勝手のよい、音声通話とデータ通信とを並行して実行できる通信端末が求められるようになるであろう。
【０００７】
本発明は、かかる問題を解決するためになされたものであり、その目的は、ユーザにとって使い勝手がよい、音声通話とデータ通信とを並行して実行できる通信端末、通信方法、および通信プログラムを提供することである。
【課題を解決するための手段】
【０００８】
この発明のある局面に従うと、他の通信端末と通信するための通信端末が提供される。通信端末は、第１の通信デバイスと、第２の通信デバイスと、スピーカと、マイクと、プロセッサとを備える。プロセッサは、第１の通信デバイスとスピーカとマイクとを用いて、他の通信端末との音声通話を行い、他の通信端末との音声通話中に、データ通信を開始するための命令を受け付け、命令に応じて、音声通話を行いながら、第２の通信デバイスを用いて、他の通信端末とのデータ通信を行なう。
【０００９】
好ましくは、通信端末は、タッチパネルをさらに備える。プロセッサは、他の通信端末とのデータ通信中に、タッチパネルを介して第１の手描き画像の入力を受け付けて、当該第１の手描き画像を第２の通信デバイスを介して当該他の通信端末へと送信し、他の通信端末とのデータ通信中に、第２の通信デバイスを介して当該他の通信端末から第２の手描き画像を受信して、当該第２の手描き画像をタッチパネルに表示させる。
【００１０】
好ましくは、プロセッサは、他の通信端末との音声通話中に、タッチパネルにデータ通信を開始するための命令を受け付けるためのソフトウェアボタンを表示させる。
【００１１】
好ましくは、通信端末は、ハードウェアボタンをさらに備える。プロセッサは、他の通信端末との音声通話中に、ハードウェアボタンを介して、データ通信を開始するための命令を受け付ける。
【００１２】
好ましくは、プロセッサは、データ通信を開始するときに、通信端末をハンズフリーモードへと移行させる。
【００１３】
この発明の別の局面に従うと、第１および第２の通信デバイスとスピーカとマイクとプロセッサとを含む通信端末における通信方法が提供される。通信方法は、プロセッサが、第１の通信デバイスとスピーカとマイクとを用いて、他の通信端末との音声通話を行なうステップと、プロセッサが、他の通信端末との音声通話中に、データ通信を開始するための命令を受け付けるステップと、プロセッサが、命令に応じて、音声通話を行いながら、第２の通信デバイスを用いて、他の通信端末とのデータ通信を行なうステップとを備える。
【００１４】
この発明の別の局面に従うと、第１および第２の通信デバイスとスピーカとマイクとプロセッサとを含む通信端末に通信させるための通信プログラムが提供される。通信プログラムは、プロセッサに、第１の通信デバイスとスピーカとマイクとを用いて、他の通信端末との音声通話を行なうステップと、他の通信端末との音声通話中に、データ通信を開始するための命令を受け付けるステップと、命令に応じて、音声通話を行いながら、第２の通信デバイスを用いて、他の通信端末とのデータ通信を行なうステップとを実行させる。
【発明の効果】
【００１５】
以上のように、本発明によると、ユーザにとって使い勝手がよい、音声通話とデータ通信とを並行して実行できる通信端末、通信方法および通信プログラムが提供される。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に係るネットワークシステムの全体構成を示す概略図である。
【図２】ネットワークシステムにおける動作概要を示すシーケンス図である。
【図３】ネットワークシステムにおけるデータの流れを示すイメージ図である。
【図４】音声通話中のタッチパネル１０４を示すイメージ図である。
【図５】携帯電話の外観を示すイメージ図である。
【図６】携帯電話のハードウェア構成を示すブロック図である。
【図７】アドレス帳データと自端末データと通信相手のＩＰアドレスデータと自端末のＩＰアドレスデータとを示すイメージ図である。
【図８】マッチングサーバのハードウェア構成を示すブロック図である。
【図９】ルーム管理テーブルのデータ構造を示す第１のイメージ図とルーム管理テーブルのデータ構造を示す第２のイメージ図である。
【図１０】ネットワークシステムの機能構成を示すブロック図である。
【図１１】マッチングサーバと第１の携帯電話および第２の携帯電話との間で送受信されるメッセージ（コマンド）の一例を示すイメージ図である。
【図１２】携帯電話における通信処理の処理手順を示すフローチャートである。
【図１３】携帯電話における発呼処理の処理手順を示すフローチャートである。
【図１４】携帯電話におけるＴＥＬ発呼処理の処理手順を示すフローチャートである。
【図１５】携帯電話におけるＰ２Ｐ通信処理の処理手順を示すフローチャートである。
【図１６】携帯電話における着呼処理の処理手順を示すフローチャートである。
【図１７】マッチングサーバにおける応答処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１８】
また、以下では、携帯電話１００を「通信端末」の代表例として説明を行なう。ただし、通信端末は、パーソナルコンピュータや、カーナビゲーション装置（Satellite  navigation  system）や、ＰＮＤ（Personal  Navigation  Device）や、ＰＤＡ（Personal  Data  Assistance）などのような、他の情報通信機器であってもよい。
【００１９】
＜ネットワークシステム１の全体構成＞
まず、ネットワークシステム１の全体構成について説明する。図１は、本実施の形態に係るネットワークシステム１の全体構成を示す概略図である。図１を参照して、ネットワークシステム１は、携帯電話１００Ａ，１００Ｂ，１００Ｃと、マッチングサーバ４００と、インターネット（第１のネットワーク）５００と、キャリア網（第２のネットワーク）７００とを含む。また、本実施の形態に係るネットワークシステム１は、車両２５０に搭載されるカーナビゲーション装置２００と、パーソナルコンピュータ（ＰＣ；Personal  Computer）３００とを含む。
【００２０】
なお、説明の容易化のために、以下では、本実施の形態に係るネットワークシステム１が、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃとを含む場合について説明する。また、携帯電話１００Ａ，１００Ｂ，１００Ｃの各々に共通の構成や機能を説明する際には、それらを「携帯電話１００」とも総称する。そして、携帯電話１００Ａ，１００Ｂ，１００Ｃ、カーナビゲーション装置２００、パーソナルコンピュータ３００の各々に共通の構成や機能を説明する際には、それらを「通信端末」とも総称する。
【００２１】
携帯電話１００は、キャリア網７００に接続可能に構成されている。カーナビゲーション装置２００は、インターネット５００に接続可能に構成されている。パーソナルコンピュータ３００は、ＬＡＮ（Local  Area  Network）３５０やＷＡＮ（Wide  Area  Network）を介してインターネット５００に接続可能に構成されている。マッチングサーバ４００は、インターネット５００に接続可能に構成されている。
【００２２】
より詳細には、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃとは、キャリア網を介して、互いに音声通話が可能である。第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃと、カーナビゲーション装置２００と、パーソナルコンピュータ３００とは、キャリア網７００やインターネット５００を介して、互いに音声通話が可能である。
【００２３】
より詳細には、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００には、自端末を特定するための電話番号が割り当てられる。すなわち、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００は、内部の記録媒体に他の通信端末の電話番号を記憶することができ、当該電話番号に基づいてキャリア網７００やインターネット５００などを介して当該他の通信端末と音声通話を行なうことができる。
【００２４】
また、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、第３の携帯電話１００Ｃと、カーナビゲーション装置２００と、パーソナルコンピュータ３００とは、キャリア網７００やインターネット５００を介して、互いにデータの送受信が可能である。
【００２５】
より詳細には、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００には、自端末を特定するための識別情報（たとえば、電話番号やメールアドレスやＩＰ（Internet  Protocol）アドレスなど）が割り当てられる。すなわち、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００とは、内部の記録媒体に他の通信端末の識別情報を記憶することができ、当該識別情報に基づいてキャリア網７００やインターネット５００などを介して当該他の通信端末とデータ送受信を行なうことができる。
【００２６】
なお、携帯電話１００とカーナビゲーション装置２００とパーソナルコンピュータ３００とは、インターネット５００にアクセスする際に一時的に割り当てられるＩＰアドレスを利用して他の通信端末とデータ送受信を行ってもよい。本実施の形態に係る通信端末は、インターネット５００にアクセスした際に、マッチングサーバ４００あるいは他の図示しないサーバ装置などによってＩＰアドレスが割り当てられるものとする。ＩＰアドレスの割り当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
【００２７】
また、本実施の形態に係る携帯電話１００、カーナビゲーション装置２００、パーソナルコンピュータ３００は、自身に割り当てられたＩＰアドレスを利用することにより、直接的に相互にネットワークを介してデータ送受信を行なうことが可能である。すなわち、本実施の形態に係るネットワークシステム１に含まれる携帯電話１００、カーナビゲーション装置２００、パーソナルコンピュータ３００は、いわゆるＰ２Ｐ（Pear  to  Pear）型のネットワークを構成することが可能である。
【００２８】
＜ネットワークシステム１の動作概要＞
次に、本実施の形態に係るネットワークシステム１の動作概要について説明する。図２は、ネットワークシステム１における動作概要を示すシーケンス図である。図３は、ネットワークシステム１におけるデータの流れを示すイメージ図である。
【００２９】
図２および図３を参照して、本実施の形態に係る通信端末は、ユーザからの音声通話を開始するための命令（第１の命令）に応じて、音声通話を開始する。たとえば、通信端末は、メモリに格納されている相手の電話番号に基づいて、音声通話を開始する。通信端末は、その後、音声通話中に、Ｐ２Ｐ通信を開始するための命令を受け付けて、音声通話中の相手とのＰ２Ｐ通信を開始する。
【００３０】
なお、Ｐ２Ｐ型のデータ送受信を行なうためには、互いのＩＰアドレスを交換（取得）する必要がある。本実施の形態においては、通信端末のそれぞれは、マッチングサーバ４００を介して互いのＩＰアドレスを取得した後に、当該ＩＰアドレスに基づいてＰ２Ｐ型のデータ送受信を行なう。
【００３１】
より詳細には、本実施の形態においては、Ｐ２Ｐ通信の開始の際に、通信端末のそれぞれが、マッチングサーバ４００に生成されたチャットルーム（以下、単にルームともいう。）を介して、ＩＰアドレスやメッセージや添付ファイルを送受信する場合について説明する。特に、以下では、第１の携帯電話１００Ａが新たなチャットルームを生成するとともに、第１の携帯電話１００Ａと音声通話中の第２の携帯電話１００Ｂが当該チャットルームに入室する場合について説明する。
【００３２】
図２および図３を参照して、まず、第１の携帯電話１００Ａ（図２において端末Ａ）が、ユーザから音声通話相手の選択を受け付ける。第１の携帯電話１００Ａは、選択された第２の携帯電話１００Ｂに発呼（電話発信）する（ステップＳ００２）。第２の携帯電話１００Ｂは、第１の携帯電話１００Ａからの発呼に応じて、スピーカから着信音を出力する。第２の携帯電話１００Ｂは、ユーザ操作に応じて、発呼に応答（電話応答）する（ステップＳ００４）。
【００３３】
第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、音声通話の制御を行なう（ステップＳ００６）。これによって、第１の携帯電話１００Ａのユーザと第２の携帯電話１００Ｂのユーザは、音声通話を楽しむことができる。
【００３４】
ここで、音声通話中の通信端末の表示画面（タッチパネル１０４）について説明する。図４は、音声通話中のタッチパネル１０４を示すイメージ図である。
【００３５】
図４（ａ）に示すように、本実施の形態においては、音声通話が始まると、第１の携帯電話１００Ａが、そのタッチパネル１０４に手描きボタン１０４Ａ（Ｐ２Ｐ通信開始ボタン、あるいはチャット通信開始ボタン）を表示する（ステップＳ００８）。手描きボタン１０４Ａは、音声通話中に、音声通話と並行して当該音声通話の相手とのＰ２Ｐ通信を開始するためのソフトウェアボタンである。ユーザが手描きボタン１０４Ａにタッチすると（ステップＳ０１２）、第１の携帯電話１００Ａは、Ｐ２Ｐ通信を開始する。
【００３６】
ただし、第１の携帯電話１００Ａは、音声通話中に、ハードウェアボタン（図６におけるボタン１１０）のいずれかに、手描きボタンの役割を負わせてもよい（ステップＳ００８）。当該ボタンには、音声通話中以外には、他の機能が割り当てられていてもよい。すなわち、ユーザが、当該ハードウェアボタンを押下すると（ステップＳ０１２）、第１の携帯電話１００Ａは、Ｐ２Ｐ通信の接続処理を開始する。
【００３７】
同様に、図４（ｂ）に示すように、本実施の形態においては、音声通話中に、第２の携帯電話１００Ｂが、そのタッチパネル１０４に手描きボタン１０４Ａ（Ｐ２Ｐ通信開始ボタン、あるいはチャット通信開始ボタン）を表示する（ステップＳ０１０）。手描きボタン１０４Ａは、音声通話中に、音声通話と並行して当該音声通話の相手とのＰ２Ｐ通信を開始するためのソフトウェアボタンである。すなわち、ユーザが手描きボタン１０４Ａにタッチすると（ステップＳ０２０）、第２の携帯電話１００Ｂは、Ｐ２Ｐ通信を開始する。
【００３８】
ただし、第２の携帯電話１００Ｂも、音声通話中に、ハードウェアボタンのいずれかに、手描きボタンの役割を負わせてもよい（ステップＳ０１０）。当該ボタンには、音声通話中以外には、他の機能が割り当てられていてもよい。すなわち、ユーザが、当該ハードウェアボタンを押下すると（ステップＳ０２０）、第２の携帯電話１００Ｂは、Ｐ２Ｐ通信の接続処理を開始する。
【００３９】
以上のように、第１の携帯電話１００Ａは、手描きボタン１０４Ａが押下されると（ステップＳ０１２）、Ｐ２Ｐ通信用のアプリケーションを起動する。
【００４０】
具体的には、図４（ｃ）に示すように、第１の携帯電話１００Ａは、タッチパネル１０４に、Ｐ２Ｐ通信用のウィンドウを表示する。第１の携帯電話１００Ａは、第１の携帯電話１００Ａと第２の携帯電話１００Ｂの電話番号などからルーム名を生成する。第１の携帯電話１００Ａは、当該ルーム名に基づいて、マッチングサーバ４００にルームＡＢが存在するか否かを確認する（ステップＳ０１４）。
【００４１】
マッチングサーバ４００にルームＡＢが未だ存在していない場合、第１の携帯電話１００Ａは、マッチングサーバ４００に新たなルームを生成（開設）するための生成要求を送信する（ステップＳ０１６）。より詳細には、第１の携帯電話１００Ａは、ルーム名を含む生成要求をマッチングサーバ４００に送信する。マッチングサーバ４００は、当該ルーム名を含む生成要求を受け付けて、当該ルーム名に対応するルームを開設する（ステップＳ０１８）。
【００４２】
より詳細には、第１の携帯電話１００Ａは、ルームを開設する際に、マッチングサーバ４００から自身のＩＰアドレスを取得してもよいし、インターネット５００に接続した際などに、予め他のサーバなどからＩＰアドレスを取得していてもよい。マッチングサーバ４００は、ルームを生成する際に、ルーム名と第１の携帯電話１００Ａの識別情報（ＩＰアドレスなど）を対応付けて記憶する。
【００４３】
第２の携帯電話１００Ｂのユーザは、たとえば音声通話によって、第１の携帯電話１００Ａのユーザから手描きボタン１０４Ａを押下するように要請される。第２の携帯電話１００Ｂは、そのユーザによって手描きボタン１０４Ａが押下されると（ステップＳ０２０）、Ｐ２Ｐ通信用のアプリケーションを起動する。
【００４４】
具体的には、図４（ｃ）に示すように、第２の携帯電話１００Ｂも、タッチパネル１０４に、Ｐ２Ｐ通信用のウィンドウを表示する。第２の携帯電話１００Ｂは、第１の携帯電話１００Ａの電話番号と自身の携帯電話１００Ｂの電話番号とに基づいて、所定のルールに基づいてルーム名を生成する。
【００４５】
このように、本実施の形態に係るネットワークシステム１においては、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとが、共に同じ情報に基づいてルーム名を生成するものである。すなわち、ネットワークシステム１は、第１および第２の携帯電話が生成したルーム名が同じになるように構成されている。ただし、ネットワークシステム１は、第１および第２の携帯電話が同じルーム名を生成できるように構成されていればよく、第１および第２の携帯電話の電話番号に基づいてルーム名を生成する構成に限定されるものではない。
【００４６】
第２の携帯電話１００Ｂは、ルーム名を生成すると、マッチングサーバ４００に当該ルーム名に対応するルームが存在するか否かを問い合わせる（ステップＳ０２２）。マッチングサーバ４００に当該ルーム名に対応するルームＡＢが既に存在している場合、第２の携帯電話１００ＢはルームＡＢへの入室要求（参加要求）をマッチングサーバ４００に行なう（ステップＳ０２４）。マッチングサーバ４００は、入室要求を受け付けて、第２の携帯電話１００Ｂの識別情報をルームＡＢのルーム名に対応付けて登録する（ステップＳ０２６）。
【００４７】
より詳細には、第２の携帯電話１００Ｂは、ルームに入室する際に、マッチングサーバ４００から自身のＩＰアドレスを取得してもよいし、インターネット５００に接続した際などに、予め他のサーバなどからＩＰアドレスを取得していてもよい。マッチングサーバ４００は、第２の携帯電話１００Ｂがルームに入室する際に、ルーム名と第２の携帯電話１００Ｂの識別情報（ＩＰアドレスなど）を対応付けて格納する。
【００４８】
そして、マッチングサーバ４００はマッチング処理が成功した旨を第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂに通知する（ステップＳ０２８）。すなわち、マッチングサーバ４００は、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとに、互いの識別情報を送信する。
【００４９】
第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、相手の識別情報に基づいて、互いを認証する（ステップＳ０３０）。認証が完了すると、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、図４（ｄ）および図４（ｅ）に示すように、Ｐ２Ｐ通信（手描きチャット通信）を開始する（ステップＳ０３２）。
【００５０】
本実施の形態においては、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、手描きボタン１０４Ａが押下された場合に、ハンズフリーモード、あるいはスピーカフォンモードに移行する。より詳細には、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂとは、手描きボタン１０４Ａが押下されると、スピーカの音量（出力の増幅率）を上げたり、マイクの感度（入力の増幅率）を上げたりする。すなわち、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、ユーザが手描きチャットを行いながら、すなわちユーザがスタイラスペン１２０を用いてタッチパネル１０４に手描き入力を行いながら、スピーカからの音声を聞き取ったり、マイクに音声を入力したりできるモードへと移行する。
【００５１】
第１の携帯電話１００Ａが、ユーザからＰ２Ｐ通信を終了するための命令を受け付けると、Ｐ２Ｐ通信を終了するためのメッセージを第２の携帯電話１００Ｂに送信する（ステップＳ０３８）。たとえば、ユーザがＰ２Ｐ終了ボタン１０４Ｃにタッチすると、第１の携帯電話１００Ａは、ハンズフリーモードを解除して、上記メッセージを第２の携帯電話１００Ｂに送信する。
【００５２】
第２の携帯電話１００Ｂが、当該メッセージに返答し、ハンズフリーモードを解除する（ステップＳ０４０）。これによって、第１の携帯電話１００Ａと第２の携帯電話１００ＢとはＰ２Ｐ通信を終了する。すなわち、第１の携帯電話１００Ａと第２の携帯電話１００Ｂとは、音声通話のみを継続する。
【００５３】
第１の携帯電話１００Ａが、ユーザから音声通話を終了するための命令を受け付けると、第２の携帯電話１００Ｂに電話の切断を要求する（ステップＳ０４２）。第２の携帯電話１００Ｂが当該要求に応答する（ステップＳ０４４）。ただし、第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂは、Ｐ２Ｐ通信中に音声通話を終了するための命令を受け付けた場合、Ｐ２Ｐ通信を続行しながら、音声通話のみを終了しても良い。
【００５４】
本実施の形態に係るネットワークシステム１の構成および効果についてまとめると以下のようになる。
【００５５】
音声通話とデータ通信を行なうためには、各々の通信端末が、相手の通信端末に関する音声通話のための識別情報（電話番号など）とデータ通信のための識別情報（ＩＰアドレスなど）とを取得する必要がある。本実施の形態に係るネットワークシステム１においては、音声通話中の複数の通信端末の各々が、音声通話にデータ通信を受け付けるための命令を受け付けられる。そのため、通信端末の各々は、音声通話の相手をデータ通信の相手として特定することができる。そして、通信端末の各々は、音声通話の相手に関する音声通話のための識別情報に基づいて、マッチングサーバ４００を利用して、当該音声通話の相手に関するデータ通信のための識別情報を取得する。その結果、通信端末のそれぞれのユーザは、手描きボタン１０４Ａを押下するだけで、音声通話をしながら手描きデータ通信を行なうことができる。
【００５６】
以下、このような機能を実現するための構成について詳述する。
＜携帯電話１００のハードウェア構成＞
本実施の形態に係る通信端末の一例である携帯電話１００のハードウェア構成について説明する。図５は、本施の形態に係る携帯電話１００の外観を示すイメージ図である。図６は、本施の形態に係る携帯電話１００のハードウェア構成を示すブロック図である。
【００５７】
図５および図６を参照して、本実施の形態に係る携帯電話１００は、インターネット５００を介して他の通信端末との間でデータ通信を行なうためのデータ通信デバイス１０１と、電話回線（キャリア網７００など）を介して他の通信端末と音声通話を行なうための音声通話デバイス１０２と、プログラムや各種データベースを記憶するメモリ１０３と、ＣＰＵ（Central  Processing  Unit）１０６と、ディスプレイ１０７と、外部音声が入力されるマイク１０８と、音声を出力するスピーカ１０９と、各種情報の入力を受け付けるボタン１１０と、外部からの通信データや通話信号を受信した旨の音声を出力する第１の通知部１１１と、外部からの通信データや通話信号を受信した旨を表示する第２の通知部１１２とを含む。
【００５８】
なお、データ通信デバイス１０１と音声通話デバイス１０２とは、たとえばアンテナや信号処理回路などから構成されるものであって、両者は同じデバイスによって実現されてもよい。たとえば、パーソナルコンピュータ３００が、１つの通信インターフェイスを利用して、ＩＰ電話を行いながら、手描きチャット通信を行ってもよい。
【００５９】
本実施の形態に係る携帯電話１００は、ディスプレイ１０７の上側（表側）にペンタブレット１１９が敷設されている。これによって、ユーザはスタイラスペン１２０などを用いることによって、ペンタブレット１１９を介して、図形情報などをＣＰＵ１０６に手描き入力することができる。ディスプレイ１０７は、ＣＰＵ１０６が出力したデータに基づいて、画像やテキストを表示する。すなわち、本実施の形態においては、ディスプレイ１０７とペンタブレット１１９とが、タッチパネル１０４を構成する。
【００６０】
ボタン１１０は、キー入力操作などによってユーザから情報を受け付けるためのハードウェアボタンである。たとえば、ボタン１１０は、通話を受け付けたり、通話を発したりするためのＴＥＬボタン１１０Ａと、Ｐ２Ｐ通信を受け付けたり、Ｐ２Ｐ通信を発したりするためのＰ２Ｐボタン１１０Ｂと、アドレス帳データを呼び出すアドレス帳ボタン１１０Ｄと、各種の処理を終了させるための終了ボタン１１０Ｅとを含む。すなわち、ボタン１１０は、音声通話デバイス１０２を介してＰ２Ｐ参加要請メールを受信したときに、ユーザから、チャットルームへ入室する命令や、メールの内容を表示させる命令などを選択可能に受け付ける。
【００６１】
第１の通知部１１１は、スピーカ１０９などを介して着信音を出力する。あるいは、第１の通知部１１１は、バイブレーション機能を有する。第１の通知部１１１は、着呼した際や、Ｐ２Ｐ参加要請メールを受信した際に、音声を出力したり、携帯電話１００を振動させたりする。
【００６２】
第２の通知部１１２は、着信したときに点滅するＴＥＬ用ＬＥＤ（Light  Emitting  Diode）１１２Ａと、Ｐ２Ｐ通信を受信したときに点滅するＰ２Ｐ用ＬＥＤ１１２Ｂとを含む。
【００６３】
ＣＰＵ１０６は、携帯電話１００の各部を制御する。たとえば、ボタン１１０を介してユーザから各種の命令を受け付けて、データ通信デバイス１０１や音声通話デバイス１０２やネットワークを介して外部の通信端末とデータの送受信を行なう。後述するように、ＣＰＵ１０６は、外部からダウンロードした、あるいは予めメモリ１０３に格納されたプログラムに基づいて、図１２から図１６に示されるステップを実行する。
【００６４】
データ通信デバイス１０１は、ＣＰＵ１０６からの通信データを図示しないアンテナを介して発信する。データ通信デバイス１０１は、アンテナを介して受信した通信データをＣＰＵ１０６に入力する。
【００６５】
音声通話デバイス１０２は、ＣＰＵ１０６からの音声信号を図示しないアンテナを介して発信する。音声通話デバイス１０２は、アンテナを介して受信した音声信号をＣＰＵ１０６に入力する。
【００６６】
メモリ１０３は、作業用メモリとして機能するＲＡＭ（Random  Access  Memory）や、制御プログラムや、画像データなどを記憶するフラッシュメモリ（Flash  Memory）などによって実現される。メモリ１０３は、各種のワークメモリ１０３Ａを有する。メモリ１０３のワークメモリ１０３Ａは、発信者の電話番号を格納するＲＣＶＴＥＬＮＯ領域、選択されたアドレスのメモリＮｏを格納するＳＥＬ領域、生成されたルーム名を格納するＲＯＯＭＮＡＭＥ領域などを含む。
【００６７】
図７（Ａ）は、メモリ１０３が記憶するアドレス帳データ１０３Ｂを示すイメージ図である。図７（Ｂ）は、メモリ１０３が記憶する自端末データ１０３Ｃを示すイメージ図である。図７（Ｃ）は、メモリ１０３が記憶する通信相手のＩＰアドレスデータ１０３Ｄと自端末のＩＰアドレスデータ１０３Ｅとを示すイメージ図である。
【００６８】
図７（Ａ）を参照して、アドレス帳データ（ＡｄｒＤＢ［］）１０３Ｂは、宛先（他の通信端末）毎にメモリＮｏを対応付けている。そして、アドレス帳データ１０３Ｂは、宛先毎に、名前、電話番号、メールアドレス、ニックネームなどを互いに対応付けて格納する。
【００６９】
図７（Ｂ）を参照して、メモリ１０３は、自端末データ（ＭｙＡｄｒ）１０３Ｃとして、自端末のユーザの名前、自端末の電話番号、自端末のメールアドレス、ニックネームなどを格納する。
【００７０】
図７（Ｃ）を参照して、メモリ１０３は、通信相手のＩＰアドレスデータ（ＨＩＳ＿ＩＰＡＤＲ）１０３Ｄと、自端末のＩＰアドレスデータ（ＭＹ＿ＩＰＡＤＲ）１０３Ｅとを格納する。
【００７１】
＜マッチングサーバ４００のハードウェア構成＞
次に、本実施の形態に係るマッチングサーバ４００のハードウェア構成について説明する。図８は、本実施の形態に係るマッチングサーバ４００のハードウェア構成を示すブロック図である。図８を参照して、本実施の形態に係るマッチングサーバ４００は、相互に内部バス４０８で接続されたＣＰＵ４０５と、メモリ４０６と、固定ディスク４０７と、通信デバイス４０９とを含む。
【００７２】
メモリ４０６は、各種の情報を記憶するものであって、たとえば、ＣＰＵ４０５でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク４０７は、ＣＰＵ１０５が実行するプログラムやデータベースを記憶する。ＣＰＵ４０５は、マッチングサーバ４００の各要素を制御するものであって、各種の演算を実施する装置である。
【００７３】
通信デバイス４０９は、ＣＰＵ４０５が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してＣＰＵ４０５に入力する。具体的には、通信デバイス４０９は、ＣＰＵ４０５からのデータを、インターネット５００やキャリア網７００などを介して携帯電話１００やカーナビゲーション装置２００やパーソナルコンピュータ３００に送信する。そして、通信デバイス４０９は、インターネット５００やキャリア網７００を介して、携帯電話１００やカーナビゲーション装置２００やパーソナルコンピュータ３００から受信したデータを、ＣＰＵ４０５に入力する。
【００７４】
ここで、メモリ４０６あるいは固定ディスク４０７に記憶されるデータについて説明する。図９（Ａ）は、マッチングサーバ４００のメモリ４０６あるいは固定ディスク４０７に記憶されるルーム管理テーブル４０６Ａのデータ構造を示す第１のイメージ図であって、図９（Ｂ）は、マッチングサーバ４００のメモリ４０６あるいは固定ディスク４０７に記憶されるルーム管理テーブル４０６Ａのデータ構造を示す第２のイメージ図である。
【００７５】
図９（Ａ）および図９（Ｂ）を参照して、ルーム管理テーブル４０６Ａは、ルーム毎に、ルーム名と当該ルームに入室中の通信端末の識別情報とを対応付けて格納する。たとえば、ある時点においては、図９（Ａ）を参照して、マッチングサーバ４００にルーム名ＡＢを有するチャットルーム、ルーム名ＣＤを有するチャットルーム、ルーム名ＥＦを有するチャットルーム、ルーム名ＧＨを有するチャットルームが生成されている。
【００７６】
本実施の形態においては、ルーム名ＡＢは、通信端末Ａが通信端末Ａの電話番号と通信端末Ｂの電話番号とに基づいて決定する。ルーム名ＣＤは、通信端末Ｃが通信端末Ｃの電話番号と通信端末Ｄの電話番号とに基づいて決定する。ルーム名ＥＦは、通信端末Ｅが、通信端末Ｅの電話番号と通信端末Ｆの電話番号とに基づいて決定する。ルーム名ＧＨは、通信端末Ｇが通信端末Ｇの電話番号と通信端末Ｈの電話番号とに基づいて決定する。
【００７７】
そして、ルーム名ＡＢを有するチャットルームには通信端末Ａが入室しているため、ルーム管理テーブル４０６Ａは、通信端末ＡのＩＰアドレスをルーム名ＡＢに対応付けて格納する。ルーム名ＣＤを有するチャットルームには通信端末Ｃが入室しているため、ルーム管理テーブル４０６Ａは、通信端末ＣのＩＰアドレスをルーム名ＣＤに対応付けて格納する。ルーム名ＥＦを有するチャットルームには通信端末Ｅが入室しているため、ルーム管理テーブル４０６Ａは、通信端末ＥのＩＰアドレスをルーム名ＥＦに対応付けて格納する。ルーム名ＧＨを有するチャットルームには通信端末Ｇが入室しているため、ルーム管理テーブル４０６Ａは、通信端末ＧのＩＰアドレスをルーム名ＧＨに対応付けて格納する。
【００７８】
図９（Ｂ）を参照して、ルーム名ＡＢを有するチャットルームに新たに通信端末Ｂが入室すると、ルーム管理テーブル４０６Ａはルーム名ＡＢに対応付けて、通信端末ＢのＩＰアドレスを格納する。
【００７９】
たとえば、マッチングサーバ４００においては、第１の携帯電話１００Ａが新たなチャットルームの生成を要求してきた際（図２におけるステップＳ０１６）に、生成要求からルーム名を取得して、ルーム管理テーブル４０６Ａに当該ルーム名と第１の携帯電話１００ＡのＩＰアドレスとを対応付けて格納する。その後、第２の携帯電話１００Ｂがマッチングサーバ４００にチャットルームへの入室を要求してきた際（図２におけるステップＳ０２４）に、ＣＰＵ４０５が、ルーム管理テーブル４０６Ａに当該ルーム名と第２の携帯電話１００ＢのＩＰアドレスとを対応付けて格納する。
【００８０】
そして、当該ルームに関する所定の条件が満たされると、ＣＰＵ４０５は、ルーム管理テーブル４０６Ａから当該ルーム名に対応する第１の携帯電話１００ＡのＩＰアドレスや第２の携帯電話１００ＢのＩＰアドレスを読み出す。ＣＰＵ４０５は、第１の携帯電話１００ＡのＩＰアドレスを第２の各通信端末に送信し、第２の携帯電話１００ＢのＩＰアドレスを第１の携帯電話１００Ａに送信する。
【００８１】
なお、所定の条件とは、たとえばルーム名に対応付けられたＩＰアドレスの個数が予め設定された個数に達することや、あるいはルームが生成されてから予め設定された時間が経過することなどが該当する。
【００８２】
＜ネットワークシステム１の機能構成＞
図１０は、本実施の形態に係るネットワークシステム１の機能構成を示すブロック図である。図１０を参照して、本実施の形態に係るネットワークシステム１は、第１の携帯電話１００Ａと、第２の携帯電話１００Ｂと、マッチングサーバ４００と、インターネット５００と、キャリア網７００とを含む。
【００８３】
第１の携帯電話１００Ａは、第１の通信部１０１−１と、第１の生成部１０６１−１と、第１の通信制御部１０６２−１と、第１のメモリ１０３−１と、第１の入力部１１０−１とを含む。第２の携帯電話１００Ｂは、第２の通信部１０１−２と、第２の生成部１０６１−２と、第２の通信制御部１０６２−２と、第２のメモリ１０３−２と、第２の入力部１１０−２とを含む。マッチングサーバ４００は、通信デバイス４０９と、ルーム生成部４０５１と、ルーム入室部４０５２と、ルーム削除部４０５３と、メモリ４０６とを含む。
【００８４】
（マッチングサーバ４００の機能）
まず、マッチングサーバ４００が有する機能について説明する。前述したように、メモリ４０６は、ルーム管理テーブル４０６Ａを記憶する。
【００８５】
通信デバイス４０９は、インターネット５００やキャリア網７００を介して、第１の携帯電話１００Ａや第２の携帯電話１００Ｂとデータの送受信を行なう。たとえば、通信デバイス４０９は、第１の携帯電話１００Ａや第２の携帯電話１００Ｂなどから、新たなルームを生成するための生成要求や、ルームを削除するための削除要求や、ルームの存否を問い合わせるための検索要求や、ルームへ入室するための入室要求などを受信する。
【００８６】
図１１は、マッチングサーバ４００と第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂとの間で送受信されるメッセージ（コマンド）の一例を示すイメージ図である。図１１を参照して、生成要求は、ルームの生成を要求するためのメッセージであって、コマンド名は「ＲＭ＿ＣＲＥＡＴＥ」である。第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂは、生成要求として、第１の携帯電話１００Ａあるいは第２の携帯電話１００ＢのＩＰアドレスと生成するルームのルーム名とを送信する。マッチングサーバ４００は、生成要求を受け付けて、後述するようにルーム名に対応する新たなルームを生成する。マッチングサーバ４００は、第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂにルームの生成に成功したか否かを示すメッセージを返信する。
【００８７】
検索要求は、ルームの検索を要求するためのメッセージであって、コマンド名は「ＲＭ＿ＳＥＡＲＣＨ」である。第１の携帯電話１００Ａあるいは第２の携帯電話１００Ａは、検索要求として、第１の携帯電話１００Ａあるいは第２の携帯電話１００ＢのＩＰアドレスと検索するルーム名とを送信する。マッチングサーバ４００は、検索要求を受け付けて、後述するようにルーム管理テーブル４０６Ａにルーム名が記憶されているか否かを判断する。マッチングサーバ４００は、第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂに、ルーム名を有するルームが存在するか否かを示すメッセージを返信する。
【００８８】
削除要求は、ルームの削除を要求するためのメッセージであって、コマンド名は「ＲＭ＿ＤＥＬＥＴＥ」である。第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂは、削除要求として、第１の携帯電話１００Ａあるいは第２の携帯電話１００ＢのＩＰアドレスと削除するルームのルーム名とを送信する。マッチングサーバ４００は、削除要求を受け付けて、ルーム管理テーブル４０６Ａからルーム名に対応するルームを削除する。マッチングサーバ４００は、第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂに、ルームの削除に成功したか否かを示すメッセージを返信する。
【００８９】
入室要求は、ルームに入室するためのメッセージであって、コマンド名は「ＲＭ＿ＥＮＴＲＹ」である。第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂは、入室要求として、第１の携帯電話１００Ａあるいは第２の携帯電話１００ＢのＩＰアドレスと入室するルーム名とを送信する。マッチングサーバ４００は、入室要求を受け付けて、第１の携帯電話１００Ａあるいは第２の携帯電話１００ＢのＩＰアドレスをルーム名に対応付けてルーム管理テーブル４０６Ａに格納する。マッチングサーバ４００は、第１の携帯電話１００Ａあるいは第２の携帯電話１００Ｂに、ルームへの入室に成功したか否かを示すメッセージを返信する。
【００９０】
図１０に戻って、ルーム生成部４０５１とルーム入室部４０５２とルーム削除部４０５３とは、マッチングサーバ４００のＣＰＵ４０５がメモリ４０６や固定ディスク４０７などに記憶されるプログラムを実行して図８に示される各ハードウェアを制御することによって実現される。たとえば、ＣＰＵ４０５が有する各機能は、ＣＰＵ４０５が、固定ディスク４０７に記憶されたプログラムを一旦メモリ４０６へと読み出して、メモリ４０６からそのプログラムを読み出しながら順次実行することによって実現される。
【００９１】
ルーム生成部４０５１は、たとえば、第１の携帯電話１００Ａから通信デバイス４０９を介して生成要求を受け付ける。ルーム生成部４０５１は、生成要求に応じて、当該生成要求に含まれるルーム名を有する新たなルームを生成する。すなわち、ルーム生成部４０５１は、当該ルーム名と第１の携帯電話１００ＡのＩＰアドレスとを対応付けて、ルーム管理テーブル４０６Ａに格納する。ルーム生成部４０５１は、通信デバイス４０９を介して、判断結果を第１の携帯電話１００Ａに送信する。
【００９２】
ルーム入室部４０５２は、たとえば、第２の携帯電話１００Ｂから通信デバイス４０９を介して、ルーム名を有するチャットルームの存否の問い合わせを受け付ける。ルーム入室部４０５２は、当該ルーム名がルーム管理テーブル４０６Ａに格納されているか否かを判断する。ルーム入室部４０５２は、通信デバイス４０９を介して、判断結果を第２の携帯電話１００Ｂに送信する。
【００９３】
また、ルーム入室部４０５２は、たとえば、第２の携帯電話１００Ｂから通信デバイス４０９を介して、チャットルームへの入室要求を受け付ける。ルーム入室部４０５２は、入室要求に応じて、入室要求に含まれるルーム名に対応付けて第２の携帯電話１００ＢのＩＰアドレスをルーム管理テーブル４０６Ａに格納する。ルーム入室部４０５２は、当該ルームに関する所定の条件が満たされると、当該ルームに入室している各通信端末に、当該ルームに入室している他の通信端末のＩＰアドレスを送信する。
【００９４】
なお、所定の条件とは、たとえばルーム名に対応付けられたＩＰアドレスの個数が予め設定された個数に達することや、あるいはルームが生成されてから予め設定された時間が経過することなどが該当する。
【００９５】
ルーム削除部４０５３は、たとえば、第１の携帯電話１００Ａから通信デバイス４０９を介して、ルーム名を有するチャットルームの削除要求を受け付ける。ルーム削除部４０５３は、削除要求に応じて、ルーム管理テーブル４０６Ａの当該ルーム名に関するデータを削除する、あるいはルーム管理テーブル４０６Ａの当該ルーム名に対応する削除フラグなどをＯＮする。ルーム削除部４０５３は、通信デバイス４０９を介して、判断結果を第１の携帯電話１００Ａに送信する。
【００９６】
（第１の携帯電話１００Ａの機能）
次に、第１の携帯電話１００Ａが有する機能について説明する。第１の通信部１０１−１は、第１の携帯電話１００Ａのデータ通信デバイス１０１あるいは音声通話デバイス１０２によって実現される。第１のメモリ１０３−１は、第１の携帯電話１００Ａのメモリ１０３によって実現される。第１の入力部１１０−１は、第１の携帯電話１００Ａのタッチパネル１０４やボタン１１０によって実現される。第１の生成部１０６１−１および第１の通信制御部１０６２−１は、第１の携帯電話１００ＡのＣＰＵ１０６がメモリ１０３に記憶されるプログラムを実行して図６に示される各ハードウェアを制御することによって実現される。
【００９７】
第１のメモリ１０３−１は、第１の携帯電話１００Ａを特定するための第１の識別情報（電話番号やメールアドレスやＩＰアドレスなど）と第２の携帯電話１００Ｂを特定するための第２の識別情報（電話番号やメールアドレスやＩＰアドレスなど）とを格納する。より詳細には、第１のメモリ１０３−１は、アドレス帳データ１０３Ｂ、自端末データ１０３Ｃ、通信相手のＩＰアドレスデータ１０３Ｄ、自端末のＩＰアドレスデータ１０３Ｅなどを記憶する。
【００９８】
第１の生成部１０６１−１は、音声通話中に、第１の入力部１１０−１を介して、ユーザからＰ２Ｐ通信を開始するための開始命令を受け付ける。より詳細には、ユーザは、音声通話の相手とのＰ２Ｐ通信を開始するための命令を入力する。第１の生成部１０６１−１は、開始命令に応じて、自身の電話番号と音声通話中の通信相手（第２の携帯電話１００Ｂ）の電話番号とに基づいて、新たなルーム名を生成する。
【００９９】
第１の通信制御部１０６２−１は、第１の通信部１０１−１を介して、マッチングサーバ４００に、ルーム名に対応するチャットルームが存在するか否かを問い合わせる。
【０１００】
ルーム名に対応するチャットルームが存在する場合、第１の通信制御部１０６２−１は、第１の通信部１０１−１を介してマッチングサーバ４００に入室要求を送信する。これによって、第１の通信制御部１０６２−１は、マッチングサーバ４００から相手の通信端末のＩＰアドレスを取得することができ、第１の通信部１０１−１を介してＰ２Ｐ通信を行なうことが可能になる。
【０１０１】
ルーム名に対応するチャットルームが存在しない場合、第１の通信制御部１０６２−１は、第１の通信部１０１−１を用いて、当該ルーム名とともに、新たなチャットルームを生成する生成要求をマッチングサーバ４００へ送信する。その後、相手の通信端末がチャットルームに入室すると、第１の通信制御部１０６２−１は、マッチングサーバ４００から相手の通信端末のＩＰアドレスを取得することができ、第１の通信部１０１−１を介して相手の通信端末とＰ２Ｐ通信を行なうことが可能になる。
【０１０２】
（第２の携帯電話１００Ｂの機能）
次に、第２の携帯電話１００Ｂが有する機能について説明する。第２の通信部１０１−２は、第２の携帯電話１００Ｂのデータ通信デバイス１０１あるいは音声通話デバイス１０２によって実現される。第２のメモリ１０３−２は、第２の携帯電話１００Ｂのメモリ１０３によって実現される。第２の入力部１１０−２は、第２の携帯電話１００Ｂのタッチパネル１０４やボタン１１０によって実現される。第２の生成部１０６１−２および第２の通信制御部１０６２−２は、第２の携帯電話１００ＢのＣＰＵ１０６がメモリ１０３に記憶されるプログラムを実行して図５に示される各ハードウェアを制御することによって実現される。
【０１０３】
第２のメモリ１０３−２は、第２の携帯電話１００Ｂを特定するための第２の識別情報（電話番号やメールアドレスやＩＰアドレスなど）と第１の携帯電話１００Ａを特定するための第１の識別情報（電話番号やメールアドレスやＩＰアドレスなど）とを格納する。より詳細には、第２のメモリ１０３−２は、アドレス帳データ１０３Ｂ、自端末データ１０３Ｃ、通信相手のＩＰアドレスデータ１０３Ｄ、自端末のＩＰアドレスデータ１０３Ｅなどを記憶する。
【０１０４】
第２の生成部１０６１−２は、音声通話中に、第２の入力部１１０−２を介して、ユーザからＰ２Ｐ通信を開始するための開始命令を受け付ける。より詳細には、ユーザは、音声通話の相手とのＰ２Ｐ通信を開始するための命令を入力する。第２の生成部１０６１−２は、開始命令に応じて、自身の電話番号と音声通話中の通信相手（第１の携帯電話１００Ａ）の電話番号とに基づいて、新たなルーム名を生成する。
【０１０５】
第２の通信制御部１０６２−２は、第２の通信部１０１−２を介して、マッチングサーバ４００に、ルーム名に対応するチャットルームが存在するか否かを問い合わせる。
【０１０６】
ルーム名に対応するチャットルームが存在する場合、第２の通信制御部１０６２−２は、第２の通信部１０１−２を介してマッチングサーバ４００に入室要求を送信する。これによって、第２の通信制御部１０６２−２は、マッチングサーバ４００から相手の通信端末のＩＰアドレスを取得することができ、第２の通信部１０１−２を介してＰ２Ｐ通信を行なうことが可能になる。
【０１０７】
ルーム名に対応するチャットルームが存在しない場合、第２の通信制御部１０６２−２は、第２の通信部１０１−２を用いて、当該ルーム名とともに、新たなチャットルームを生成する生成要求をマッチングサーバ４００へ送信する。その後、相手の通信端末がチャットルームに入室すると、第２の通信制御部１０６２−２は、マッチングサーバ４００から相手の通信端末のＩＰアドレスを取得することができ、第２の通信部１０１−２を介して相手の通信端末とＰ２Ｐ通信を行なうことが可能になる。
【０１０８】
（ルーム名の生成）
ここで、第１の生成部１０６１−１、第２の生成部１０６１−２によるルーム名の生成方法について説明する。
【０１０９】
たとえば、第１の生成部１０６１−１は、第１の携帯電話１００Ａの第１の電話番号と、第２の携帯電話１００Ｂの第２の電話番号とを単純に並べたルーム名を生成する。電話番号は、各端末に固有のデータであるため、第１の電話番号と第２の電話番号とを並べたルーム名は、各グループに固有のデータであって、他のグループのルーム名と重複することがない。ルームの存在の有無を確認する際には（図２におけるステップＳ０２２）、電話番号の前後を入れ替えたルーム名に関しても、ルームの存在の有無を確認することが好ましい。
【０１１０】
あるいは、第１の生成部１０６１−１は、第１の携帯電話１００Ａの電話番号に対応する他の識別情報（メールアドレスやニックネームなど）と、第２の携帯電話１００Ｂの他の識別情報とを、アルファベット順に並べたルーム名を生成してもよい。
【０１１１】
また、第１の生成部１０６１−１は、ハッシュ関数などを用いて第１の電話番号と第２の電話番号とを暗号化した上で、それらを並べてルーム名を生成してもよい。本実施の形態に係るネットワークシステム１においては、元のデータを復元する必要がないため、暗号化の方法は、元のデータがより復元し難いことが好ましい。たとえば、不可逆な関数を用いて、電話番号を暗号化することが好ましい。
【０１１２】
本実施の形態に係るネットワークシステム１においては、第２の生成部１０６１−２が、第１の生成部１０６１−１と同様の方法でルーム名を生成する。このため、招待される第２の携帯電話１００Ｂが自身でルーム名を生成することができる。すなわち、Ｐ２Ｐ通信を開始する前に、第１の携帯電話１００Ａのユーザがルーム名を第２の携帯電話１００Ｂのユーザに通知する必要がなくなる。
【０１１３】
より詳細には、第１の携帯電話１００Ａおよび第２の携帯電話１００Ｂのユーザは、Ｐ２Ｐ通信相手を選択するための命令を入力する必要がない。また、ユーザは、ルーム名を考えたり、ルーム名を入力したりする必要もない。すなわち、第１の携帯電話１００Ａと第２の携帯電話１００ＢのユーザがＰ２Ｐ通信を開始するまでに行なう手間が大幅に削減される。
【０１１４】
このように、本実施の形態に係るネットワークシステム１においては、各通信端末にて他のチャットルームのルーム名と重複しないルーム名を生成するため、各通信端末のユーザが他のチャットルームのルーム名と重複しないルーム名を考える必要がない。また、本実施の形態に係るネットワークシステム１は、チャートルームのルーム名をユーザが入力する手間も省くことができる。
【０１１５】
＜携帯電話１００における通信処理＞
次に、本実施の形態に係る携帯電話１００における通信処理について説明する。図１２は、本実施の形態に係る携帯電話１００における通信処理の処理手順を示すフローチャートである。
【０１１６】
図１２を参照して、まず、ＣＰＵ１０６は、ディスプレイ１０７に待ち受け画面を表示させる（ステップＳ１０２）。ＣＰＵ１０６は、アドレス帳ボタン１１０Ｄ（あるいはタッチパネル１０４上に表示されるアドレス帳のためのソフトウェアボタン）が操作されたか否かを判断する（ステップＳ１０４）。アドレス帳ボタン１１０Ｄが操作された場合（ステップＳ１０４にてＹＥＳである場合）、ＣＰＵ１０６は、発呼処理（ステップＳ２００）を実行する。なお、発呼処理（ステップＳ２００）については後述する。
【０１１７】
アドレス帳ボタン１１０Ｄが操作されない場合（ステップＳ１０４にてＮＯである場合）、ＣＰＵ１０６は、電話の呼び出し（着呼）があるか否かを判断する（ステップＳ１０６）。電話の呼び出しがあった場合（ステップＳ１０６にてＹＥＳである場合）、ＣＰＵ１０６は、着呼処理（ステップＳ５００）を実行する。着呼処理（ステップＳ５００）については後述する。電話の呼び出しがない場合（ステップＳ１０６にてＮＯである場合）、ＣＰＵ１０６はステップＳ１０４からの処理を繰り返す。
【０１１８】
＜携帯電話１００における発呼処理＞
次に、本実施の形態に係る携帯電話１００における発呼処理について説明する。図１３は、本実施の形態に係る携帯電話１００における発呼処理の処理手順を示すフローチャートである。
【０１１９】
図１３を参照して、ＣＰＵ１０６は、アドレス帳ボタン１１０Ｄが操作された場合（ステップＳ１０４にてＹＥＳである場合）、アドレス帳データ１０３Ｂに基づいて、ディスプレイ１０７にアドレス帳を一覧表示させる（ステップＳ２０２）。ユーザは、ボタン１１０を押下することによって（あるいはタッチパネル１０４上に表示される相手端末のレコードの１つにタッチすることによって）、ＴＥＬ通話における相手の通信端末を選択する（ステップＳ２０４）。すなわち、ＣＰＵ１０６は、ボタン１１０あるいはタッチパネル１０４を介して通信端末の選択命令を受け付ける。
【０１２０】
ＣＰＵ１０６は、相手の通信端末が選択された状態において、ＴＥＬボタン１１０Ａ（あるいはタッチパネル１０４上に表示される音声通話を開始するためのソフトウェアボタン）が操作されたか否かを判断する（ステップＳ２０６）。ＴＥＬボタン１１０Ａが操作された場合（ステップＳ２０６にてＹＥＳである場合）、ＣＰＵ１０６は、ＴＥＬ発呼処理（ステップＳ３００）を実行する。なお、ＴＥＬ発呼処理（３００）については後述する。
【０１２１】
ＴＥＬボタン１１０Ａが操作されない場合（ステップＳ２０６にてＮＯである場合）、ＣＰＵ１０６は、終了ボタン１１０Ｅ（あるいはタッチパネル１０４上に表示される音声通話を中止するためのソフトウェアボタン）が操作されたか否かを判断する（ステップＳ２０８）。終了ボタン１１０Ｅが操作された場合（ステップＳ２０８にてＹＥＳである場合）、ＣＰＵ１０６は、発呼処理を終了して、ステップＳ１０２からの処理を繰り返す。終了ボタンが操作されない場合（ステップＳ２０８にてＮＯである場合）、ＣＰＵ１０６は、ステップＳ２０６からの処理を繰り返す。
【０１２２】
＜携帯電話１００におけるＴＥＬ発呼処理＞
次に、本実施の形態に係る携帯電話１００におけるＴＥＬ発呼処理について説明する。図１４は、本実施の形態に係る携帯電話１００におけるＴＥＬ発呼処理の処理手順を示すフローチャートである。
【０１２３】
図１４を参照して、ＣＰＵ１０６は、ＴＥＬボタン１１０Ａが操作された場合（ステップＳ２０６にてＹＥＳである場合）、音声通話デバイス１０２を用いて、選択された通信端末の電話番号（メモリ１０３のＳＥＬに格納されているメモリＮｏに対応する電話番号）に発呼する（ステップＳ３０２）。すなわち、ＣＰＵ１０６は、データ通信デバイス１０１あるいは音声通話デバイス１０２を介して、アドレス帳から選択された相手通信端末に電話をかける。
【０１２４】
ＣＰＵ１０６は、ＴＥＬボタン１１０Ａ（あるいはタッチパネル１０４上に表示される音声通話を終了するためのソフトウェアボタン）が操作されたか否かを判断する（ステップＳ３０４）。ＴＥＬボタンが操作をされた場合（ステップＳ３０４にてＹＥＳである場合）、ＣＰＵ１０６は、ＴＥＬの発呼を中断したうえで（ステップＳ３０６）、ステップＳ１０２からの処理を繰り返す。
【０１２５】
ＴＥＬボタンが操作をされない場合（ステップＳ３０４にてＮＯである場合）、ＣＰＵ１０６は、相手通信端末の応答を待ち受ける（ステップＳ３０８）。相手通信端末の応答が無い場合（ステップＳ３０８にてＮＯである場合）、ＣＰＵ１０６は、ステップＳ３０４からの処理を繰り返す。
【０１２６】
相手通信端末の応答が有った場合（ステップＳ３０８にてＹＥＳである場合）、ＣＰＵ１０６は、通話制御を行なう（ステップＳ３１０）。これ以降、ステップＳ３１６まで、図４（ａ）に示すように、ＣＰＵ１０６は、タッチパネル１０４に、手描きチャット通信（本実施の形態においては、Ｐ２Ｐ通信である。）を開始するための命令を受け付けるための手描きボタン１０４Ａを表示させる。あるいは、ＣＰＵ１０６は、いずれかのハードウェアボタン１１０を手描きボタン１０４Ａとして利用する。
【０１２７】
本実施の形態においては、図４（ａ）に示すように、ＣＰＵ１０６は、通話制御中に、タッチパネル１０４に、通話制御を終了するためのＴＥＬ終了ボタン１０４Ｂも表示させる。
【０１２８】
ＣＰＵ１０６は、手描きボタン１０４Ａが押下されると（ステップＳ３１２においてＹＥＳである場合）、Ｐ２Ｐ開始処理（ステップＳ４００）を実行する。なお、Ｐ２Ｐ開始処理（Ｓ４００）については後述する。
【０１２９】
ＣＰＵ１０６は、手描きボタン１０４Ａが押下されない場合（ステップＳ３１２においてＮＯである場合）、タッチパネル１０４上のＴＥＬ終了ボタン１０４Ｂが押下されたか否か、あるいは、外部からＴＥＬ終了信号を受信したか否かを判断する（ステップＳ３１４）。
【０１３０】
ＣＰＵ１０６は、ＴＥＬ終了ボタン１０４Ｂが押下されない場合、かつ、ＴＥＬ終了信号を受信しない場合（ステップＳ３１４においてＮＯである場合）、ステップＳ３１０からの処理を繰り返す。
【０１３１】
ＣＰＵ１０６は、ＴＥＬ終了ボタン１０４Ｂが押下された場合、あるいは、ＴＥＬ終了信号を受信した場合（ステップＳ３１４においてＹＥＳである場合）、ＴＥＬ通話を切断する（ステップＳ３１６）。ＣＰＵ１０６は、ステップＳ１０２からの処理を繰り返す。
【０１３２】
＜携帯電話１００におけるＰ２Ｐ通信処理＞
次に、本実施の形態に係る携帯電話１００におけるＰ２Ｐ通信処理について説明する。図１５は、本実施の形態に係る携帯電話１００におけるＰ２Ｐ通信処理の処理手順を示すフローチャートである。
【０１３３】
図１５を参照して、Ｐ２Ｐボタン１１０Ｃが操作された場合（ステップＳ３１２においてＹＥＳである場合、あるいはステップＳ５２０においてＹＥＳである場合）、ＣＰＵ１０６は、スピーカ１０９からの音声出力を増大させて、マイク１０８の感度を増大させる（ステップＳ４０２）。すなわち、ＣＰＵ１０６は、通信端末を「ハンズフリーモード」あるいは「スピーカフォンモード」に移行させる。
【０１３４】
ＣＰＵ１０６は、所定のルールに基づいて、相手の通信端末の電話番号（ＲＣＶＴＥＬＮＯの値）と自端末の電話番号（ＭｙＡｄｒ．ＴＥＬＮｏの値）とからチャットルーム名を生成する（ステップＳ４０４）。たとえば、ＣＰＵ１０６は、ＲＭＮＭにＨＡＳＨ関数の戻り値、ＨＡＳＨ（ＲＣＶＴＥＬＮＯ，ＭｙＡｄｒ．ＴＥＬＮｏ）を代入する。
【０１３５】
ＣＰＵ１０６は、データ通信デバイス１０１を介して、インターネット５００に接続する（ステップＳ４０６）。このとき、携帯電話１００には、ＩＰアドレスが割り当てられる。
【０１３６】
ＣＰＵ１０６は、データ通信デバイス１０１を介して、マッチングサーバ４００に、ＲＭＮＭに格納されているチャットルーム名を有するチャットルームが存在するか否かを問い合わせる（ステップＳ４０８）。
【０１３７】
未だ、マッチングサーバ４００に、ＲＭＮＭに格納されているチャットルーム名を有するチャットルームが存在しない場合（ステップＳ４０８にてＮＯである場合）、ＣＰＵ１０６は、データ通信デバイス１０１を介して、マッチングサーバ４００にＲＭＮＭのチャットルーム名を有するチャットルームを生成するための生成要求を送信する（ステップＳ４１０）。
【０１３８】
ＣＰＵ１０６は、ボタン１１０を介して、ユーザによってＰ２Ｐボタンが操作されたか否かを判断する（ステップＳ４１２）。すなわち、ＣＰＵ１０６は、ユーザからＰ２Ｐ通信を中断するための命令を受け付けたか否かを判断する。ユーザによってＰ２Ｐボタンが操作された場合（ステップＳ４１２にてＹＥＳである場合）、ＣＰＵ１０６は、データ通信デバイス１０１を介して、マッチングサーバ４００にＲＭＮＭのチャットルーム名を有するチャットルームを削除するための削除要求を送信して（ステップＳ４１４）、ステップＳ１０２からの処理を繰り返す。
【０１３９】
ユーザによってＰ２Ｐボタンが操作されない場合（ステップＳ４１２にてＮＯである場合）、ＣＰＵ１０６は、生成したチャットルームに相手通信端末が入室したか否かを判断する（ステップＳ４１６）。ＣＰＵ１０６は、生成したチャットルームに相手通信端末が入室しない場合（ステップＳ４１６にてＮＯである場合）、ＣＰＵ１０６は、ステップＳ４１２からの処理を繰り返す。
【０１４０】
生成したチャットルームに相手通信端末が入室した場合（ステップＳ４１６にてＹＥＳである場合）、ＣＰＵ１０６は、受信した相手通信端末のＩＰアドレスをＨＩＳ＿ＩＰＡＤＲに記憶する（ステップＳ４１８）。ＣＰＵ１０６は、データ通信デバイス１０１を介してマッチングサーバ４００にＲＭＮＭのチャットルーム名を有するチャットルームを削除するための削除要求を送信し（ステップＳ４２０）、図４（ｄ）に示すように、Ｐ２Ｐデータ通信の制御を開始する（ステップＳ４２２）。
【０１４１】
一方、既に、マッチングサーバ４００に、ＲＭＮＭに格納されているチャットルーム名を有するチャットルームが存在する場合（ステップＳ４０８にてＹＥＳである場合）、ＣＰＵ１０６は、データ通信デバイス１０１を介してマッチングサーバ４００のチャットルームへ入室する（ステップＳ４３２）。すなわち、ＣＰＵ１０６は、データ通信デバイス１０１を介してマッチングサーバ４００に入室要求を送信する。
【０１４２】
ＣＰＵ１０６は、データ通信デバイス１０１を介して、マッチングサーバ４００からＰ２Ｐ通信のための相手のＩＰアドレスを取得する（ステップＳ４３４）。ＣＰＵ１０６は、相手のＩＰアドレスをＨＩＳ＿ＩＰＡＤＲに記憶して、図４（ｄ）に示すように、Ｐ２Ｐ通信の制御を開始する（ステップＳ４２２）。
【０１４３】
ＣＰＵ１０６は、ボタン１１０あるいはチャット終了ボタン１０４Ｃを介して、ユーザによってＰ２Ｐ終了ボタン１０４Ｃ（図４を参照。）が操作されたか否か、あるいはＰ２Ｐ通信における相手通信端末から通信終了通知を受信したか否かを判断する（ステップＳ４２４）。すなわち、ＣＰＵ１０６はユーザからＰ２Ｐ通信を中断するための命令を受け付けたか否かを判断する。Ｐ２Ｐボタンが操作されない場合（ステップＳ４２４にてＮＯである場合）、ＣＰＵ１０６はステップＳ４２２からの処理を繰り返す。
【０１４４】
Ｐ２Ｐボタンが操作された場合（ステップＳ４２４にてＹＥＳである場合）、ＣＰＵ１０６はインターネット５００への接続を切断する（ステップＳ４２６）。ＣＰＵ１０６は、「ハンズフリーモード」あるいは「スピーカフォンモード」を解除する（ステップＳ４２８）。ＣＰＵ１０６は、ステップＳ３１０からの処理を繰り返す。
【０１４５】
＜携帯電話１００における着呼処理＞
次に、本実施の形態に係る携帯電話１００における着呼処理について説明する。図１６は、本実施の形態に係る携帯電話１００における着呼処理の処理手順を示すフローチャートである。
【０１４６】
図１６を参照して、電話の呼び出しがあった場合（ステップＳ１０６にてＹＥＳである場合）、ＣＰＵ１０６は、発信者の電話番号が通知されているか否かを判断する（ステップＳ５０２）。発信者の電話番号が通知されていない場合（ステップＳ５０２にてＮＯである場合）、ＣＰＵ１０６は、ステップＳ５０６からの処理を実行する。
【０１４７】
一方、発信者の電話番号が通知されている場合（ステップＳ５０２にてＹＥＳである場合）、ＣＰＵ１０６は発信者の電話番号をＲＣＶＴＥＬＮＯに記憶する（ステップＳ５０４）。ＣＰＵ１０６は、第１の通知部１１１を稼動する、すなわち、スピーカ１０９などを介して着信音を出力したり、あるいは、バイブレーション機能により携帯電話１００を振動させたりする（ステップＳ５０６）。ＣＰＵ１０６は、第２の通知部１１２を稼動する、すなわち、ＴＥＬ用ＬＥＤ１１２Ａを点滅させる（ステップＳ５０８）。
【０１４８】
ＣＰＵ１０６は、着呼が終了したか否かを判断する（ステップＳ５１０）。ＣＰＵ１０６は、着呼が終了した場合（ステップＳ５１０にてＹＥＳである場合）、第１の通知部１１１を停止する、すなわち、スピーカ１０９などを介する着信音の出力を停止したり、あるいは、バイブレーション機能による携帯電話１００の振動を停止させたりする（ステップＳ５１２）。ＣＰＵ１０６は、第２の通知部１１２を稼動して、すなわち、ＴＥＬ用ＬＥＤ１１２Ａを点灯させて（ステップＳ５１４）、メモリ１０３に通信相手端末の発信者番号や着信時間を着信履歴として登録し、ステップＳ１０２からの処理を繰り返す。
【０１４９】
ＣＰＵ１０６は、着呼が終了しなかった場合（ステップＳ５１０にてＮＯである場合）、ＴＥＬボタン１１０Ａが操作されたか否かを判断する（ステップＳ５１６）。ＣＰＵ１０６は、ＴＥＬボタン１１０Ａが操作されなかった場合（ステップＳ５１６にてＮＯである場合）、ステップＳ５１０からの処理を繰り返す。
【０１５０】
ＣＰＵ１０６は、ＴＥＬボタン１１０Ａが操作された場合（ステップＳ５１６にてＹＥＳである場合）、通話制御を行なう（ステップＳ５１８）。これ以降、ステップＳ５２２まで、図４（ａ）に示すように、ＣＰＵ１０６は、タッチパネル１０４に、手描きチャット通信（本実施の形態においては、Ｐ２Ｐ通信である。）を開始するための命令を受け付けるための手描きボタン１０４Ａを表示させる。あるいは、ＣＰＵ１０６は、いずれかのハードウェアボタン１１０を手描きボタン１０４Ａとして使用する。
【０１５１】
本実施の形態においては、図４（ａ）に示すように、ＣＰＵ１０６は、通話制御中に、タッチパネル１０４に、通話制御を終了するためのＴＥＬ終了ボタン１０４Ｂも表示させる。
【０１５２】
ＣＰＵ１０６は、手描きボタン１０４Ａが押下されると（ステップＳ５２０においてＹＥＳである場合）、前述したＰ２Ｐ開始処理（ステップＳ４００）を実行する。
【０１５３】
ＣＰＵ１０６は、手描きボタン１０４Ａが押下されない場合（ステップＳ５２０においてＮＯである場合）、タッチパネル１０４上のＴＥＬ終了ボタン１０４Ｂが押下されたか否か、あるいは、外部からＴＥＬ終了信号を受信したか否かを判断する（ステップＳ５２２）。
【０１５４】
ＣＰＵ１０６は、ＴＥＬ終了ボタン１０４Ｂが押下されない場合、かつ、ＴＥＬ終了信号を受信しない場合（ステップＳ５２２においてＮＯである場合）、ステップＳ５１８からの処理を繰り返す。
【０１５５】
ＣＰＵ１０６は、ＴＥＬ終了ボタン１０４Ｂが押下された場合、あるいは、ＴＥＬ終了信号を受信した場合（ステップＳ５２２においてＹＥＳである場合）、ＴＥＬ通話を切断する（ステップＳ５２４）。ＣＰＵ１０６は、ステップＳ１０２からの処理を繰り返す。
【０１５６】
＜マッチングサーバ４００における応答処理＞
次に、本実施の形態に係るマッチングサーバ４００における応答処理について説明する。図１７は、本実施の形態に係るマッチングサーバ４００における応答処理の処理手順を示すフローチャートである。
【０１５７】
図１７を参照して、マッチングサーバ４００のＣＰＵ４０５は、通信デバイス４０９を介して、第１の携帯電話１００Ａからメッセージを待ち受ける（ステップＳ９０２）。ＣＰＵ４０５は、第１の携帯電話１００Ａからメッセージを受け付けると（ステップＳ９０２にてＹＥＳである場合）、メッセージがチャットルームを生成するための生成要求であるか否かを判断する（ステップＳ９０４）。
【０１５８】
メッセージがチャットルームを生成するための生成要求である場合（ステップＳ９０４にてＹＥＳである場合）、ＣＰＵ４０６は生成要求に含まれるルーム名がルーム管理テーブル４０６Ａに存在するか否かを判断する（ステップＳ９０６）。ルーム名がルーム管理テーブル４０６Ａに存在する場合（ステップＳ９０６にてＹＥＳである場合）、ＣＰＵ４０６はルームの生成に失敗した旨を通知して（ステップＳ９３２）、ステップＳ９０２からの処理を繰り返す。
【０１５９】
ルーム名がルーム管理テーブル４０６Ａに存在しない場合（ステップＳ９０６にてＮＯである場合）、ＣＰＵ４０６はルーム名のルームを生成する（ステップＳ９０８）。すなわち、ＣＰＵ４０６は、ルーム管理テーブル４０６Ａにルーム名と生成要求に含まれる呼び出し側のＩＰアドレスとを対応付けて記憶する。ＣＰＵ４０６は、呼び出し側のＩＰアドレスにルームの生成が成功した旨を通知して（ステップＳ９１０）、ステップＳ９０２からの処理を繰り返す。
【０１６０】
メッセージがチャットルームを生成するための生成要求でない場合（ステップＳ９０４にてＮＯである場合）、ＣＰＵ４０６はメッセージがルーム名を検索するための検索要求であるか否かを判断する（ステップＳ９１２）。
【０１６１】
メッセージがチャットルームを検索するための検索要求である場合（ステップＳ９１２にてＹＥＳである場合）、検索要求に含まれるルーム名がルーム管理テーブル４０６Ａに存在するか否かを判断する（ステップＳ９１４）。ルーム名がルーム管理テーブル４０６Ａに存在する場合（ステップＳ９１４にてＹＥＳである場合）、ＣＰＵ４０６は要求元のＩＰアドレスにルームが見つかった旨を通知して（ステップＳ９１０）、ステップＳ９０２からの処理を繰り返す。
【０１６２】
ルーム名がルーム管理テーブル４０６Ａに存在しない場合（ステップＳ９１４にてＮＯである場合）、ＣＰＵ４０６は要求元のＩＰアドレスにルーム名が見つからない旨を通知して（ステップＳ９３２）、ステップＳ９０２からの処理を繰り返す。
【０１６３】
メッセージがチャットルームを検索するための検索要求でない場合（ステップＳ９１２にてＮＯである場合）、ＣＰＵ４０６はメッセージがチャットルームを削除するための削除要求であるか否かを判断する（ステップＳ９１６）。
【０１６４】
メッセージがチャットルームを削除するための削除要求である場合（ステップＳ９１６にてＹＥＳである場合）、ＣＰＵ４０６は、要求元のＩＰアドレスが削除要求に含まれるルーム名に対応付けられてルーム管理テーブル４０６Ａに格納されているか否かを判断する（ステップＳ９１８）。すなわち、ＣＰＵ４０６は、要求元の通信端末が、チャットルームに既に入室している通信端末であるか否かを判断する。
【０１６５】
要求元のＩＰアドレスが削除要求に含まれるルーム名に対応付けられてルーム管理テーブル４０６Ａに格納されている場合（ステップＳ９１８にてＹＥＳである場合）、ＣＰＵ４０６はルーム名のチャットルームを削除する（ステップＳ９２０）。ＣＰＵ４０６は、要求元のＩＰアドレスにチャットルームの削除が成功した旨を通知して（ステップＳ９１０）、ステップＳ９０２からの処理を繰り返す。
【０１６６】
要求元のＩＰアドレスが削除要求に含まれるルーム名に対応付けられてルーム管理テーブル４０６Ａに格納されていない場合（ステップＳ９１８にてＮＯである場合）、ＣＰＵ４０６は要求元のＩＰアドレスにチャットルームの削除が失敗した旨を通知して（ステップＳ９３２）、ステップＳ９０２からの処理を繰り返す。
【０１６７】
メッセージがチャットルームを削除するための削除要求でない場合（ステップＳ９１６にてＮＯである場合）、ＣＰＵ４０６はメッセージがチャットルームに入室するための入室要求であるか否かを判断する（ステップＳ９２２）。
【０１６８】
メッセージがチャットルームに入室するための入室要求である場合（ステップＳ９２２にてＹＥＳである場合）、ＣＰＵ４０６は、入室要求に含まれるルーム名がルーム管理テーブル４０６Ａに格納されているか否かを判断する（ステップＳ９２４）。入室要求に含まれるルーム名がルーム管理テーブル４０６Ａに格納されている場合（ステップＳ９２４にてＹＥＳである場合）、ＣＰＵ４０６はルーム名に対応付けて要求元のＩＰアドレスをルーム管理テーブル４０６Ａに登録する（ステップＳ９２６）。
【０１６９】
ＣＰＵ４０６は、通信デバイス４０９を介して、ルーム名に対応付けられてルーム管理テーブル４０６Ａに既に登録されているＩＰアドレスに、要求元のＩＰアドレスを送信する（ステップＳ９２８）。ＣＰＵ４０６は、通信デバイス４０９を介して、要求元のＩＰアドレスに、ルーム名に対応付けられてルーム管理テーブル４０６Ａに既に登録されているＩＰアドレスを送信する（ステップＳ９３０）。そして、ＣＰＵ４０６は、ステップＳ９０２からの処理を繰り返す。
【０１７０】
一方、メッセージがチャットルームに入室するための入室要求でない場合（ステップＳ９２２にてＮＯである場合）、および入室要求に含まれるルーム名がルーム管理テーブル４０６Ａに格納されていない場合（ステップＳ９２４にてＮＯである場合）、ＣＰＵ４０６は要求元のＩＰアドレスにエラーメッセージを送信して（ステップＳ９３２）、ステップＳ９０２からの処理を繰り返す。
【０１７１】
＜本実施の形態に係るネットワークシステム１のその他の適用例＞
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０１７２】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７３】
プログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード（ＩＣメモリカード）、ＲＯＭ（マスクＲＯＭ、フラッシュＥＥＰＲＯＭなど）などを用いることができる。
【０１７４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１７５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１７６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７７】
１  ネットワークシステム、１００，１００Ａ，１００Ｂ，１００Ｃ  携帯電話、１０１  第１の通信デバイス、１０２  第２の通信デバイス、１０３，１０３−１，１０３−２  メモリ、１０３Ａ，１０３Ａ−１，１０３Ａ−２  ワークメモリ、１０３Ｂ，１０３Ｂ−１，１０３Ｂ−２  アドレス帳データ、１０３Ｃ，１０３Ｃ−１，１０３Ｃ−２  自端末データ、１０３Ｄ，１０３Ｄ−１，１０３Ｄ−２  通信相手のＩＰアドレスデータ、１０３Ｅ，１０３Ｅ−１，１０３Ｅ−２  自端末のＩＰアドレスデータ、１０６，１０６−１，１０６−２  ＣＰＵ、１０６１，１０６１−１，１０６１−２  生成部、１０６２，１０６２−１，１０６２−２  通信制御部、１０７  ディスプレイ、１０８  マイク、１０９  スピーカ、１１０，１１０−１，１１０−２  入力部、２００  カーナビゲーション装置、３００  パーソナルコンピュータ、４００  マッチングサーバ、４０５Ａ  ルーム生成部、４０５Ｂ  ルーム入室部、４０５Ｃ  ルーム削除部、４０６  メモリ、４０６Ａ  ルーム管理テーブル、４０７  固定ディスク、４０８  内部バス、４０９  通信デバイス、５００  インターネット、７００  キャリア網。
【図１】
2011171809.tif 000003
【図２】
2011171809.tif 000004
【図３】
2011171809.tif 000005
【図４】
2011171809.tif 000006
【図５】
2011171809.tif 000007
【図６】
2011171809.tif 000008
【図７】
2011171809.tif 000009
【図８】
2011171809.tif 000010
【図９】
2011171809.tif 000011
【図１０】
2011171809.tif 000012
【図１１】
2011171809.tif 000013
【図１２】
2011171809.tif 000014
【図１３】
2011171809.tif 000015
【図１４】
2011171809.tif 000016
【図１５】
2011171809.tif 000017
【図１６】
2011171809.tif 000018
【図１７】
2011171809.tif 000019