JP2005026952A - Distributed communication system - Google Patents

Distributed communication system Download PDF

Info

Publication number
JP2005026952A
JP2005026952A JP2003189425A JP2003189425A JP2005026952A JP 2005026952 A JP2005026952 A JP 2005026952A JP 2003189425 A JP2003189425 A JP 2003189425A JP 2003189425 A JP2003189425 A JP 2003189425A JP 2005026952 A JP2005026952 A JP 2005026952A
Authority
JP
Japan
Prior art keywords
terminal device
information
request
call
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003189425A
Other languages
Japanese (ja)
Inventor
Keiko Tanigawa
桂子 谷川
Junji Fukuzawa
淳二 福澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003189425A priority Critical patent/JP2005026952A/en
Publication of JP2005026952A publication Critical patent/JP2005026952A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To obtain a distributed communication system in which the destination side can acquire information on the source side when a peer to peer platform is applied to a real time service request. <P>SOLUTION: The distributed communication system comprises a destination terminal including a means for releasing information for accepting a communication request on a network, and a means for requesting information concerning another terminal upon accepting a communication request therefrom before starting service if that information is not held, and a source terminal including a means for requesting communication to another terminal based on information for accepting a communication request released on the network, and an information request response means for transmitting information concerning the request upon accepting request of information concerning its own terminal from the terminal requested communication. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、分散型コミュニケーションシステムに係り、特に、ピアツーピアによるリアルタイム通話を行なう端末装置に関する。
【0002】
【従来の技術】
近年のブロードバンドネットワークの普及により、各家庭から高速なデータ通信が可能となっている。データ通信に用いる端末装置としては、従来はデスクトップ型のPCが主流であったが、可搬型のノートPC、PDA、携帯電話が広く利用されるようになってきた。また、ネットワークの形態も、従来の公衆回線網等を利用した有線型に加え、無線型のネットワークが急激に広まっており、駅や喫茶店のような公共の場でも無線ネットワークを利用できるサービスの実用化が始まっている。
【0003】
このような背景から、「ユビキタス」「PtoP(Peer to Peer、以下「P2P」とも記す。)」といったキーワードで、種々の技術が開発されている。
【0004】
コミュニティ型のネットワークを形成するP2Pの利点は、あらかじめ固定的なサービスを知らなくても、実行時に予備知識なしにダイナミックに目標を検索できる点にある。例えば、ネットワーク上に自分の欲しいファイルがあるかどうかを探索して、ネットワーク上の任意の端末装置から得た情報を元に、目的のファイルを所有する端末装置から直接データを受取ることができる。実際に、このような仕組みを用いた音楽配信サービス、ファイル交換サービス等がインターネット上で利用されている。
【0005】
非特許文献1、非特許文献2には、P2Pのプラットフォームとして、「JXTA」が記載されている。JXTAはオープンソースコミュニティを形成し、各機能の拡張を進めている。
【0006】
JXTAでは、通信相手の探索、データ転送、P2Pグループ形成処理等を行うCoreレイヤ、情報検索、共有、セキュリティを取り扱うMiddleレイヤ、ファイル共有、リソース共有、決済機能等を取り扱うApplicationレイヤを備えて構成される。
【0007】
JXTAでは、自分が公開したい情報をブロードキャストして、その情報を利用したい他の端末装置からのアクセスを待つ。ここで情報の交換のために「パイプ」いう概念を用い、アクセスしてくる端末装置との間に「パイプ」を確立し、情報は「パイプ」を通してやり取りされる。ある情報にアクセスしようとする端末装置は、他の端末装置が公開した情報にくくりつけられた「パイプ」名を指定することで、目的の情報を公開している端末装置にたどり着くことができる。この際、端末装置を利用するユーザは、通信相手の端末装置のIPアドレス等を意識する必要はない。
【0008】
【非特許文献1】
バーナード トラバーサット(Bernard Traversat)他著、「JXTA インア ナットシェル(JXTA in a Nutshell)」、オレイリ(O’Reilly)、2002年9月
【非特許文献2】
サンマイクロシステムズ(Sun Microsystems, Inc.)、”プロジェクトJXTA(ProjectJXTA)”、[online]、[平成15年2月20日検索]、インターネット<URL:http://www.jxta.org>
【0009】
【発明が解決しようとする課題】
上述のP2Pプラットフォームは、元々ネットワーク上のどこかに存在するファイルの取得を目的の一つとして開発されたものである。すなわち、ファイルの属性を伴う「尋ねファイル」情報をネットワーク上に広告(ブロードキャスト)することにより、そのファイルに関する情報を有する端末装置からの情報を頼りに、目的のファイルに近づいていくという形式を取っている。JXTAでは、ターゲットはファイルに限られてはいないが、「サービス名」のような「パイプ」名をキー情報として動作するようになっている。
【0010】
上記技術を、人と人との音声等によるリアルタイムの「通話」に適用することが考えられている。ネットワークを利用した通話は、いわゆるVoIPによる電話サービスが代表的であるが、これは、通話相手として特定の人の特定の端末装置をIPアドレス等で指定するものである。相手端末装置のIPアドレス等がわからない場合には、端末装置のアドレスを管理するサーバ装置を介して相手端末装置のTPアドレスを取得すればよい。
【0011】
一方、P2Pプラットフォームを通話に適用した場合には、ブロードキャストされた公開情報に基づいて通信相手を探索する必要がある。通信相手の探索については、上記の従来の技術を用いて実現することができるが、電話等がかかってきた側からすると、電話をかけてきた相手の情報に乏しく、応答すべきかどうかの判断材料に欠けることになる。
【0012】
このため、P2Pプラットフォームを通話に適用した場合に、通話要求の着信時に着信側が発信側の情報を取得できることが望ましい。そこで、本発明は、主としてピアツーピアプラットフォームをリアルタイム通話要求に適用した場合に、着信側が発信側の情報を取得できるようにすることを目的とする。
【0013】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、
ピアツーピア(Peer to Peer)の通話が可能な複数の端末装置を備えて構成される分散型コミュニケーションシステムであって、
通信要求を受け付けるための情報をネットワーク上に公開する公開手段と、
他の端末装置から通信要求を受け付けた場合であって、その端末装置に関する情報を保有していない場合には、通話の開始に先立ち、その端末装置に対して、その端末装置に関する情報の要求を行なう情報要求手段とを備える着信端末装置と、
ネットワーク上に公開された通信要求を受け付けるための情報に基づいて、他の端末装置に対して通信要求を行なう通信要求手段と、
通信要求を行なった他の端末から自端末装置に関する情報の要求を受け付けた場合に、要求に係る情報を送信する情報要求応答手段とを備える発信端末装置とを有することを特徴とする分散型コミュニケーションシステムが提供される。
【0014】
【発明の実施の形態】
本発明の実施形態について、図面を参照して詳細に説明する。
【0015】
図1は、本発明の実施形態に関わる分散型コミュニケーションシステムを適用したネットワーク構成例を示す図である。
【0016】
図1に示すように、分散型コミュニケーションシステムを適用したネットワークは、プロトコル変換装置であるゲートウェイ5を介して相互に接続されたパケット網1と公衆電話網6とを備えて構成される。パケット網1には、通話のための通信を行なう複数のクライアント端末装置(以降、端末装置)2a〜2iが接続され、公衆電話網6には電話機3が接続されている。なお、通話には、音声による通信(電話)に加え、文字による通信(いわゆるインスタントメッセージ)が含まれる。また、公衆電話網6には、携帯電話網も含まれる。
【0017】
パケット網1は、例えば、IPプロトコルに従ったパケット通信を行なうネットワークで、公衆無線LAN1a、Internet1b、アドホックネットワーク1c等を含むことができる。本図の例では、公衆無線LAN1aが無線基地局4を介して有線のパケット網であるInternet1bと接続してる。
【0018】
図2は、端末装置2の内部構成を示すブロック図である。
【0019】
本図に示すように、端末装置2は、メモリ10と、メモリ10に格納されているプログラムに基づく処理を行うCPU11と、蓄積装置12と、キーボード、マウス、ペン、マイク(受話器)等の入力装置13と、スピーカ、ディスプレイ等の出力装置14と、パケット網1で通信を行うためのパケット網インタフェース15と、アナログデータをディジタルデータへ変換するA/D変換装置16と、ディジタルデータをアナログデータに変換するD/A変換装置29とを備えて構成され、それぞれが内部バスにより接続されている。なお、アドホックネットワーク1cに接続する場合には、さらに、ルーティング機能部を備えるようにする。
【0020】
本実施例においては、メモリ10上に通信プログラム、ユーザインタフェース(UI)プログラム等が格納されている。
【0021】
メモリ10上に格納された通信プログラムは、CPU11により実行されることにより、以下のような受信処理を行なうための処理部と送信処理を行なうための処理部とを端末装置2上に仮想的に生成する。
【0022】
すなわち、受信処理を行なうための処理部として、パケット網インタフェース15を介して受信したパケットからヘッダ情報を取るネットワークパケット分解処理部23と、ヘッダ情報を取ったパケットの内容から音声データ/コマンド/データとに振り分けるデータ振り分け処理部24と、受信したデータが音声データである場合に、送信端末装置2毎に音声データを一時バッファリングする複数の出力データキュー25と、ある単位時間毎に出力データキュー25から音声データを取り出し、音声データに付加されている情報と音声データを分解する音声データヘッダ除去処理部26と、各出力データキュー25にバッファリングされている音声データのうちの先頭の音声データを取り出してミキシング処理を行うミキシング処理部27と、ミキシング音声データが符号化されている場合に復号処理を行うDECODER28と、データ振り分け処理部24で振り分けられた受信データがコマンドである場合に、コマンド種別を解析するコマンド解析処理部30と、データ振り分け処理部24で振り分けられた受信データがデータである場合に、データ種別を解析するデータ解析処理部31と、ユーザへ通知する必要のあるコマンドやデータについて、出力装置14へ出力するためのデータを作成する出力データ生成処理部32とを生成する。
【0023】
また、送信処理を行なうための処理部として、ディジタル化された音声データを符号化するCODER17と、CODER17による符号化音声データをパケット網1へ送出する音声データパケット化処理部18と、パケットにされた音声データに通信相手のアドレス情報、パケットシーケンス番号、送信者識別子等を含んだヘッダ情報を付加するネットワークパケット化処理部19と、ユーザが入力したイベントを解析するイベント解析処理部20と、このイベントが音声通話のセッション制御に関するコマンドである場合に、コマンドを作成するコマンドパケット化処理部21と、イベントが他のメッセージング処理によるデータである場合に、このデータを作成するデータパケット化処理部22とを生成する。
【0024】
ただし、CODER17、音声データパケット化処理部18、ネットワークパケット化処理部19、ネットワークパケット分解処理部23、データ振分け処理部24、出力データキュー25、音声データヘッダ除去処理部26、ミキシング処理部27、DECODER28等は、ハードウェアで構成するようにしてもよい。
【0025】
メモリ10上に格納されたユーザインタフェースプログラムは、CPU11により実行されることにより、ユーザインタフェース部35を端末装置2上に仮想的に生成する。ユーザインタフェース部35は、端末装置2上にシステムが提供する画面を表示し、画面上等で受け付けたユーザからの指示に基づいて、後述する各種の処理を行なう。
【0026】
図13は、端末装置2のユーザインタフェース部35が表示する本システムのメイン画面の一例を示す図である。
【0027】
本図に示すように、メイン画面には、ネットワークへ公開するサービスや情報のカスタマイズを行う「公開サービス」メニュー230、通信に用いる際のアドレス情報をカスタマイズするための「設定」メニュー、音声やテキストによるリアルタイム通信を処理するための「通話」メニュー232、他の端末装置が公開している情報やサービスの一覧を表示するためのエリア234、他の端末装置の公開サービス取得を要求する「Search」ボタン235、リアルタイム音声通信処理を要求する「CALL」ボタン236、IM(Instant Messaging)処理を要求する「Message」ボタン237、本画面を閉じてシステム終了を要求するための「CLOSE」ボタン238が配置されている。各ボタンがクリックされた場合の処理については後述する。
【0028】
図14は、メイン画面上で「公開サービス」メニュー230が選択された場合に表示される公開サービス画面の一例を示す図である。公開サービス画面は、端末装置2のユーザがネットワーク上に公開する情報、サービス等を設定するための画面である。
【0029】
本図に示すように、公開サービス画面には、端末装置のIDのみを公開するか(チェックボックス240)、端末装置のID以外の情報も公開するか(チェックボックス241)を選択する領域と、公開する情報を指定するための領域が配置されている。公開する情報を指定するための領域には、氏名の公開を指定するためのチェックボックス242、隣接する趣味入力欄に入力した趣味の公開を指定するためのチェックボックス243、隣接する職業入力欄に入力した職業の公開を指定するためのチェックボックス244、隣接する年齢入力欄に入力した年齢の公開を指定するためのチェックボックス245を、隣接する居住国入力欄に入力した居住国の公開を指定するためのチェックボックス246、性別の公開を指定するためのチェックボックス247、隣接する電話番号入力欄に入力した電話番号の公開を指定するためのチェックボックス248、隣接する個別情報入力欄に入力した個別情報の公開を指定するためのチェックボックス249、隣接するサービス内容入力欄で設定したファイル公開等のサービスの公開を指定するためのチェックボックス250が配置されている。
【0030】
また、公開サービス画面には、指定した情報の公開を実行するための「PUBLIC」ボタン251、設定内容を記憶させるための「OK」ボタン252、公開サービス設定処理を終了して画面をクローズするための「Cancel」ボタン253が配置されている。各ボタンがクリックされた場合の処理については後述する。
【0031】
図15は、メイン画面上で「設定」メニュー231が選択された場合にユーザインタフェース部35が表示する設定画面の一例を示す図である。設定画面は、端末装置2および端末装置2のユーザに関する情報を設定するための画面である。
【0032】
本図に示すように設定画面は、ユーザの氏名および性別を入力するエリア260、画面に表示したいニックネームを入力するエリア261、IP電話番号を入力するエリア262、サービスを公開する際のセッション(パイプ)待機用ポート番号を入力するエリア263、メディア待機用ポート番号を入力するエリア264、表示内容を登録するための「OK」ボタン265、処理をキャンセルするための「Cancel」ボタン266が配置されている。各ボタンがクリックされた場合の処理については後述する。なお、ユーザインタフェース部35は、本画面を表示する際には、あらかじめ登録してある値、あるいは最近に登録した値を表示する。
【0033】
図16は、メイン画面上で「通話」メニュー232が選択された場合にユーザインタフェース部35が表示する通話画面の一例を示す図である。通話画面は、実際に通話(IMを含む)を行なうための画面である。
【0034】
本図に示すように通話画面は、後述するバディリストに登録されたニックネームの一覧を表示するエリア270、通話中の相手のニックネーム等を表示するエリア274、エリア270で選択された相手へリアルタイムの音声通信を要求するための「CALL」ボタン271、エリア270から選択された相手へテキストメッセージ通信を要求するための「Message」ボタン272、音声通信あるいはテキストメッセージ通信処理を終了するための「BYE」ボタン273が配置されている。なお、通話画面は、メイン画面上で「CALL」ボタン236がクリックされた場合にも表示される。
【0035】
ユーザインタフェース部35が表示するその他の画面については、関連する処理内容にあわせて説明する。
【0036】
以上、端末装置2の内部構成について説明したが、ゲートウェイ5も、基本的に同様の内部構成とすることができる。ただし、ゲートウェイ5は、さらに、公衆電話網6とのインタフェースを有する。公衆電話網6とのインタフェースは、パケット網1bからのデータをアナログデータに変換して公衆電話網6へ出力し、公衆電話網6からのアナログデータをディジタルデータに変換してパケット網1bへ送出する。
【0037】
また、ゲートウェイ5は、公衆電話網6の電話機3から、端末装置2が公開サービス画面で設定を受け付けた公開情報に関する指示を電話機3のユーザから受け付けて、蓄積装置12に格納しておく。この情報は、後述するように、端末装置2からの詳細情報の問い合わせに対して返信される。
【0038】
端末装置2およびゲートウェイ5の蓄積装置12には、通信相手の情報を管理するバディリストが記憶される。図5は、バディリストのデータ構造の一例を示す図である。
【0039】
本図に示すように本実施形態におけるバディリストは、通信相手の情報として、画面表示等に使用するニックネーム70と、通信相手の端末装置を識別するためのユニークな識別子であるID71と、通信相手の個人情報である詳細情報72を管理する。詳細情報72は、例えば、氏名72a、公衆電話網あるいはIP電話等の電話番号(tel−no)72b、職業72c、趣味72d等を含んで構成される。バディリストへの登録は、最初の通話の際に端末装置2が通話先から自動的に取得したり、ユーザからの指示に基づいて登録したりすることができる。
【0040】
次に、本発明の処理の流れの一例を図3および図4のシーケンス図を参照して説明する。本例では、公衆無線LAN1aに接続する端末装置2aが、アドホックネットワーク1cに接続する端末装置2iに対してIP電話をかける場合について説明する。すなわち、パケット網1内での通話である。
【0041】
まず、端末装置2aは、公衆無線LAN1aに接続する(ステップ40)。そして、図13に示した本システムのメイン画面上で通話メニュー232が選択、あるいは、「CALL」ボタン236がクリックされると、図16に示した通話画面を表示する。
【0042】
ユーザから端末装置2iへの音声通信(VoIP)の要求として、メイン画面上で、通信相手となる端末装置2iのユーザのニックネームが選択された状態で、「CALL」ボタン271のクリックを受け付けると(ステップ41)、端末装置2aは、バディリストを参照して、端末装置2iのID、ニックネーム等の情報を含むVoP2P要求コマンド(CALLコマンド)を発行し、パケット網1にブロードキャストする(ステップ42)。
【0043】
図6(a)は、CALLコマンドのフォーマットの一例を示す図である。本図に示すようにCALLコマンドは、IPヘッダ80、TCPヘッダ81、コマンド種別82、発信元ニックネーム83、発信元IPアドレス84、宛先ニックネーム84、バディリスト登録状況(一度通話したことがあるかどうか)85、音声・データ・映像等の通信手段種別86、通信メディアのCODEC種別87、受信用ポート番号89等を含んで構成される。なお、ヘッダ以外の各項目は、例えばテキスト形式のXMLにしたがって記述することができる。以下に説明する各コマンドフォーマットにおいても同様である。
【0044】
アドホックネットワーク1cに接続している端末装置2dは、ブロードキャストされたCALLコマンドを受信すると、ルーティング機能部が備えるルーティングテーブルを参照して端末装置2iについての情報があるかどうかを検索する(ステップ43)。
【0045】
ルーティングテーブルより、自分が接続するアドホックネットワーク1c内に端末装置2iが接続していると判断すると、アドホックネットワーク1c内の次の端末装置にCALLコマンドを転送する(ステップ44)。
【0046】
転送されたCALLコマンドを受信した端末装置2hが、ステップ43、44の処理を行うことで、端末装置2aが発行したCALLコマンドは、目的の端末装置2iへ到達する。
【0047】
端末装置2aからのCALLコマンドを受信した端末装置2iは、端末装置2i内のバディリストに、受信したCALLコマンド内に含まれる端末装置2aの情報、例えばニックネーム、あるいは、IDが登録されているかどうかを調べる(ステップ45)。
【0048】
バディリストに登録されている場合には、端末装置2aからCALLコマンド、すなわち、通話要求を受信したことをユーザに通知する(ステップ46)。
【0049】
図17は、CALLコマンドを受信、すなわち着信があったことをユーザに通知するための画面の一例を示す図である。図17(a)は、バディリストに登録された相手から着信があったことを示し、図17(b)は、バディリストに登録されていない相手から着信があったことを示している。
【0050】
図17(a)に示すように、着信があったことをユーザに通知するための画面は、発信者のニックネーム等を表示するエリア280、発信者がバディリストに登録済みであることを表示するエリア281、通話要求に応じない場合に、必要に応じてその理由を入力するためのエリア282、通話に応じるための「Off−fook」ボタン283、詳細情報を要求するための「Info」ボタン284、受話を拒否するための「Not Answer」ボタン285、通話を終了するための「BYE」ボタンを備えている。また、発信者バディリストに登録されていない場合には、図17(b)に示すように、発信者がバディリストに登録済みであることを表示するエリア281に代え、未登録であることを表示するエリア287と、発信者をバディリストに登録するための「Memory」ボタン287が配置される。
【0051】
端末装置2iのユーザが、本画面上で「Off−fook」ボタン283をクリック、あるいは、端末装置2iが備える受話器をオフフックする等のオフフックイベントを発行すると(ステップ47)、端末装置2iは応答コマンド(CALL_OKコマンド)を生成して、CALLコマンド送信元の端末装置2aに対して返信する(ステップ48)。
【0052】
図6(b)は、CALL_OKコマンドのフォーマットの一例を示す図である。本図に示すようにCALL_OKコマンドは、IPヘッダ80、TCPヘッダ81、コマンド種別82、着信端末、すなわち、CALL_OKコマンドの発信元のニックネーム90、着信端末のIPアドレス91、通信手段種別92、CODEC93、受信用ポート番号94等を含んで構成される。
【0053】
端末装置2aはCALL_OKコマンドを受信した場合には、ユーザに対して端末装置2iとのセッションが確立したことを通知し(ステップ49)、音声データを端末装置2iとの間で送受信する(ステップ50)。
【0054】
一方、ステップ45で、受信したCALLコマンド内に含まれる端末装置2aのニックネーム等がバディリスト登録されているか調べた結果、未登録であった場合、あるいは、端末装置2iにおけるステップ46の着信通知に対して、ユーザが図17に示した「Info」ボタン284をクリックして、端末装置2aの詳細情報を要求するイベントを出した場合には、端末装置2iは、図18(a)に一例を示す「通話:詳細情報要求」画面を表示する。
【0055】
本図に示すように、「通話:詳細情報要求」画面は、発信者のニックネーム等を表示するエリア290、詳細情報を要求する項目を指定するエリア291、詳細情報を送信するための「Send」ボタン292、本画面をクローズするための「Cancel」ボタン293が配置されている。
【0056】
端末装置2iは、「Send」ボタン292のクリックを受け付けると、詳細情報を要求する項目を指定するエリア291の設定内容に基づいて、詳細情報要求コマンド(REQUIRE_INFOコマンド)を生成し、端末装置2aに対して送信する(ステップ51)。
【0057】
図7(a)は、REQUIRE_INFOコマンドのフォーマットの一例を示す図である。本図に示すようにREQUIRE_INFOコマンドは、IPヘッダ80、TCPヘッダ81、コマンド種別82、着信端末装置、すなわち、REQUIRE_INFOコマンドの発信元のニックネーム95に加え、着信端末ID100、着信端末装置利用ユーザ氏名101、着信端末装置電話番号102、着信端末装置利用ユーザ職業103等のユーザからの要求情報に対応した項目を含んで構成される。
【0058】
端末装置2iと2aとの間の経路上の端末装置である端末装置2h、2dはそれぞれ端末装置2aへ向けてREQUIRE_INFOコマンドを転送する(ステップ52)。端末装置2iがアドホックネットワーク1cではなく、インターネット1aあるいは無線公衆LAN1b等に接続している場合には、REQUIRE_INFOコマンドを直接端末装置2aに対して送信することができる。
【0059】
REQUIRE_INFOコマンドを受信した端末装置2aは、ユーザに対して端末装置2iから詳細情報要求があったことを通知して、要求の対象となった情報を応答するかどうかを受け付ける。
【0060】
図19(a)は、このときに端末装置2aに表示される画面の一例を示す図である。本図の例では、詳細情報要求があったことを通知する画面は、REQUIRE_INFOコマンドの発信側端末装置2iのユーザのニックネーム等を表示するエリア300、詳細情報要求に係る項目のうち、氏名を入力するエリア301、電話番号を入力するエリア302、職業を入力するエリア303、詳細情報を返信するための「Send」ボタン304、通話を中止するための「BYE」ボタン305が配置されている。なお、詳細情報要求に係る項目を入力するエリア301〜303については、本システムの公開サービス画面あるいは設定画面により登録した情報をあらかじめ表示するようにしてもよい。
【0061】
また、図19(b)は、CALLコマンドの送信先である端末装置2iが通話中の場合に端末装置2aに表示される画面の一例を示す図である。本画面は、端末装置2iのユーザのニックネーム等を表示するエリア300、通話を中止するための「BYE」が配置されている。
【0062】
また、図19(c)は、CALLコマンドの送信先である端末装置2iが通信を拒否した場合に端末装置2aに表示される画面の一例を示す図である。本画面は、本画面は、端末装置2iのユーザのニックネーム等を表示するエリア300、非応答を承諾するための「OK」ボタン307が配置されている。
【0063】
図19(a)に示した画面上で「Send」ボタン304がクリックされ、ユーザから応答する旨の指示を受け付けた場合には、図14に示した公開サービス画面で設定した詳細情報、例えば所属組織や電話番号等を含んだ詳細情報応答コマンド(REQUIRE_INFO_ACKコマンド)を生成して端末装置2iに送信する(ステップ53)。
【0064】
図7(b)は、REQUIRE_INFO_ACKコマンドのフォーマットの一例を示す図である。本図に示すようにREQUIRE_INFO_ACKコマンドは、IPヘッダ80、TCPヘッダ81、コマンド種別82に加え、REQUIRE_INFO_ACKコマンド発信端末装置側ニックネーム104、宛先端末装置側ニックネーム105、コマンド発信端末装置側ID106、氏名107、電話番号108、職業109、趣味110等のREQUIRE_INFOコマンドで要求された情報を含んで構成される。ただし、公開サービス画面でユーザが公開の対象と指定しなかった情報は含めないようにすることができる。
【0065】
REQUIRE_INFO_ACKコマンドは、端末装置2dおよび2hを経て端末装置2iへ転送される(ステップ54)。
【0066】
端末装置2iは、REQUIRE_INFO_ACKコマンドに含まれる詳細情報をユーザへ通知する(ステップ55)。
【0067】
図18(b)は、REQUIRE_INFO_ACKコマンドに含まれた詳細情報をユーザに通知するための「通話:詳細情報要求応答」画面の一例を示す図である。
【0068】
本図に示すように「通話:詳細情報要求応答」画面は、発信端末装置のユーザのニックネーム等を表示するエリア290、発信端末装置のユーザの氏名を表示するエリア294、発信端末装置のユーザの電話番号を表示するエリア295、発信端末装置のユーザの職業を表示するエリア296、応答しない場合の理由を必要に応じて入力するエリア287、通話要求に応答するための「Off−fook」ボタン298、受話を拒否するための「Not Answer」ボタン299が配置されている。なお、REQUIRE_INFO_ACKコマンドにその他の詳細情報が含まれる場合には、それらも表示するようにする。
【0069】
端末装置2iのユーザが、通話要求を行なった相手の情報を確認して、「OFF−fook」ボタン298のクリック、あるいは、端末装置2iが備える受話器をオフフックする等のオフフックイベントを発行すると(ステップ56)、CALL_OKコマンドを端末装置2aに送信する(ステップ57)。このとき、取得した端末装置2aの情報を、バディリストに登録する(ステップ58)。
【0070】
端末装置2aがCALL_OKコマンドを受信したことをユーザに通知することで(ステップ59)、端末装置2aと2iとの間で音声データの送受信を開始され、リアルタイム音声通話が実現する(ステップ60)。
【0071】
図10は、リアルタイム音声通話に用いられるデータのフォーマットの一例を示す図である。本図に示すように、リアルタイム音声通話に用いられるデータは、IPヘッダ80、UDPヘッダ120、シーケンス番号160、音声データ161等を含んで構成される。なお、リアルタイム通話データがXMLデータのようなテキストメッセージである場合には、IPヘッダ80、TCPヘッダ81、メッセージ162等を含んで構成される。
【0072】
リアルタイム音声通話中に、いずれかのユーザがオンフックに相当するイベントを発行すると(ステップ61)、リアルタイム音声通話を終了する。
【0073】
図4は、端末装置2aから着信があったことを通知された、あるいは、詳細情報要求応答を受けた端末装置2iのユーザが、「Not Answer」ボタン299のクリック等により受話を拒否した場合の処理の流れを示している。
【0074】
この場合、端末装置2iは拒絶応答コマンド(CALL_REJECTコマンド)を生成し(ステップ61)、端末装置2aに対して送信する(ステップ62)。
【0075】
図6(c)は、CALL_REJECTコマンドのフォーマットの一例を示す図である。本図に示すようにCALL_REJECTコマンドは、IPヘッダ80、TCPヘッダ81、コマンド種別82、CALL_REJECTコマンド発信端末のニックネーム90に加え、非応答の理由があるかどうかを示す非応答理由フラグ95、非応答理由96等を含んで構成される。
【0076】
この端末装置2iからのCALL_REJECTコマンドを受信した端末装置2aは、ユーザへその旨を通知する(ステップ63)。CALL_REJECTコマンドに非応答の理由が含まれている場合にはその内容も通知するようにする。
【0077】
次に、本発明の処理の流れの別例を図11および図12のシーケンス図を参照して説明する。本例では、公衆無線LAN1aに接続する端末装置2aと電話機3との間でリアルタイムVoP2P要求が発生した場合について説明する。すなわち、ゲートウェイ5を介した通話である。なお、上述の実施例と共通する箇所は簡略して説明する。
【0078】
まず、端末装置2aは、公衆無線LAN1aに接続する(ステップ170)。このとき、端末装置2aが、図14に示した画面で、公開するサービスを設定している場合には、情報公開コマンド(PUBLICコマンド)をブロードキャストする(ステップ171)。
【0079】
図8(a)は、PUBLICコマンドのフォーマットの一例を示す図である。本図に示すようにPUBLICコマンドは、IPヘッダ80、UDPヘッダ120、コマンド種別82、公開サービス名121、公開サービスで用いるプロトコル種別122、公開元IPアドレス123、公開元受信用ポート番号124等を含んで構成される。このように、PUBLICコマンドは、P2P接続に用いる通路(パイプ)情報である、IPアドレス、ポート番号、通路名称等を含むようにする。
【0080】
なお、図8(b)は、公開情報探索コマンド(SEARCH_PUBLIC_INFOコマンド)のフォーマットの一例を示す図である。本図に示すようにSEARCH_PUBLIC_INFOコマンドは、IPヘッダ80、UCPヘッダ120、コマンド種別82に加え、SEARCH_PUBLIC_INFOコマンドの発信元端末装置ニックネーム125、コマンド発信元端末装置IPアドレス126、キーワードフラグ127、キーワード128等を含んで構成される。
【0081】
また、図8(c)は、公開情報探索応答コマンド(SEARCH_PUBLIC_INFO_ACKコマンド)のフォーマットの一例を示す図である。本図に示すようにSEARCH_PUBLIC_INFO_ACKコマンドは、IPヘッダ80、UDPヘッダ120、コマンド種別82に加え、公開サービス名121、プロトコル122、サービス公開元IPアドレス123、サービス公開元受信用ポート番号124等を含んで構成される。
【0082】
端末装置2dは、ブロードキャストされたPUBLICコマンドを受信すると、コマンドに含まれる公開サービスに関する情報を一時的に格納する(ステップ172)。
【0083】
端末装置2aのIP電話番号を「050−123−4567」とすると、電話機3が端末装置2aへ電話をかける場合には、ゲートウェイ5に対する電話を介して端末装置2aにかけるようにする(ステップ173)。これには、端末装置2aのIP電話番号をゲートウェイ5の電話番号に続けて入力しする方法、あるいは、一旦、ゲートウェイ5に電話をかけて、ゲートウェイ5からの音声応答に従い端末装置2aのIP電話番号をかける方法等がある。
【0084】
電話機3からのコールを着信したゲートウェイ5は、入力された電話番号から端末装置2aのIPアドレスを探索する。探索では、まず、現在パケット網に接続していて、自身に登録済みの端末装置の情報を検索する。例えば、IETFで作成しているSIP(Session Initiation Protocol)では、SIP端末はSIPプロキシやSIPサーバにレジストレーションして、自分の現在のアドレスを登録する。ゲートウェイ5は、この登録情報から、IP電話番号「050−123−4567」に相当する端末が存在するかどうかを検索する。
【0085】
未登録の場合には、ゲートウェイ5は、端末探索コマンド(SEARCH_CLIENTコマンド)をブロードキャストする(ステップ174)。
【0086】
図9(a)は、SEARCH_CLIENTコマンドのフォーマットの一例を示す図である。本図に示すようにSEARCH_CLIENTコマンドは、IPヘッダ80、UDPヘッダ120、コマンド種別82に加え、SEARCH_CLIENTコマンドの発信元ニックネーム140、発信元IPアドレス141、発信元受信用ポート番号142、キーワード種別143、キーワードの一つである探索端末利用者(探索相手)ユーザ氏名144、キーワードの一つである探索相手のID145、キーワードの一つである探索相手の電話番号146、他ユーザが指定したキーワード147等を含んで構成される。
【0087】
ブロードキャストされたSEARCH_CLIENTコマンドを受信した端末装置2dは、これまでに格納した端末装置の公開情報を検索し(ステップ175)、該当する端末装置の公開サービスに関する情報があれば、端末探索応答コマンド(SEARCH_CLIENT_ACKコマンド)を、ゲートウェイ5に返信する(ステップ176)。
【0088】
図9(b)は、SEARCH_CLIENT_ACKコマンドのフォーマットの一例を示す図である。本図に示すようにSEARCH_CLIENT_ACKコマンドは、IPヘッダ80、UDPヘッダ120、コマンド種別82に加え、探索対象端末ニックネーム148、探索対象端末IPアドレス149、SEARCH_CLIENT_ACKコマンド発信元氏名150、ID151、電話番号152等を含んで構成される。
【0089】
SEARCH_CLIENT_ACKコマンドを受信したゲートウェイ5は、コマンドに含まれる端末装置2aの公開情報からVoP2P通信で用いるパイプ情報を取得して、端末装置2aとの通信用のパイプを生成する(ステップ177)。
【0090】
そして、このパイプを用いて、端末装置2aに対してCALLコマンドを発行する(ステップ178)。
【0091】
パイプを通じてゲートウェイ5からのCALLコマンドを受信した端末装置2aは(ステップ179)、CALLコマンドに含まれる発信者情報(電話機3に関する情報、例えば電話番号、電話機3のユーザ名等、これらはゲートウェイ5に登録されている)を、バディリストから検索する。
【0092】
バディリストに未登録の場合、あるいは、端末装置2aのユーザから詳細情報の要求があった場合には、詳細情報要求コマンド(REQUIRE_INFOコマンド)をパイプを通じてゲートウェイ5に対して送信する(ステップ180)。
【0093】
REQUIRE_INFOコマンドを受信したゲートウェイ5は、コマンドに含まれる要求情報に対応する情報を、あらかじめ電話機3のユーザから登録を受け付けており、記憶している場合には、その要求情報に対応する情報を含む詳細情報応答コマンド(REQUIRE_INFO_ACKコマンド)を返信する(ステップ181)。
【0094】
ここで、端末装置2とゲートウェイ5との間の通信ではなく、端末装置同士のP2P通信要求である場合には、REQUIRE_INFOコマンドに含まれる要求情報をユーザへ通知して入力を促し、入力されたデータをREQUIRE_INFO_ACKコマンドに含めるようにしてもよい。
【0095】
REQUIRE_INFO_ACKコマンドを受信した端末装置2aは、コマンドに含まれる詳細情報をユーザへ通知する(ステップ182)。
【0096】
ユーザからオフフックに相当するイベントを検知した場合には(ステップ183)、応答コマンド(CALL_ACKコマンド)をゲートウェイ5へ送信する(ステップ184)。
【0097】
ゲートウェイ5は、端末装置2aからCALL_ACKコマンドを受信すると(ステップ185)、電話機3との間はアナログ音声に、端末装置2aとの間はディジタル音声データに、それぞれ変換して送受信し、端末装置2aと電話機3との間のリアルタイム音声通信を提供する(ステップ186)。
【0098】
その後、電話機3のユーザがオンフックした場合には(ステップ187)、端末装置2aに対してパイプを通じて切断コマンド(CALL_BYEコマンド)を送信する(ステップ188)。
【0099】
同様に、端末装置2aがユーザからのオンフック相当のイベントを検知した場合には(ステップ189)、切断コマンド(CALL_BYEコマンド)をゲートウェイ5に対して送信する(ステップ190)。
【0100】
図6(d)は、CALL_BYEコマンドのフォーマットの一例を示す図である。本図に示すようにCALL_BYEコマンドは、IPヘッダ80、TCPヘッダ81、コマンド種別82、着信端末ニックネーム90等を含んで構成される。 ゲートウェイ5は、端末装置2aと電話機3との間の接続終了後、端末装置2aとの間のパイプを終了する(ステップ191)。端末装置2aも、情報公開を終了する際に、受信待機用のパイプを終了する(ステップ191)。
【0101】
図12は、ゲートウェイ5がブロードキャストした端末探索コマンド(SEARCH_CLIENTコマンド)を受信した端末装置2dがこれまでに格納した端末装置の公開情報を検索した結果(ステップ175)、該当する情報がなかった場合の処理の流れを示す図である。
【0102】
この場合、端末装置2dは、ゲートウェイ5から受信したSEARCH_CLIENTコマンドを公衆無線LAN1aを介して接続された端末装置2aへ転送する(ステップ200)。
【0103】
端末装置2aは、転送されてきたSEARCH_CLIENTコマンドに含まれる発信側の電話機3の電話番号等が、自身に格納しているバディリストに登録されているか調べる(ステップ201)。
【0104】
この結果、バディリスト等に登録済みの場合には、端末探索応答コマンド(SEARCH_CLIENT_ACK)をゲートウェイ5に対して送信する(ステップ202)。その後は、図11に示したステップ178以降の処理を行う。
【0105】
次に、本システムの端末装置2が画面上でユーザから指示を受け付けた場合、他の端末装置2等からのコマンドを受け付けた場合における処理の流れを説明する。
【0106】
まず、図13に示したメイン画面上でユーザから指示を受け付けた場合の処理の流れについて図23を参照して説明する。
【0107】
本システムが起動すると、メイン画面(P2Pコミュニケーションツール)を表示する(ステップ350)。
【0108】
本画面で「Search」ボタン235のクリックを受け付けると(ステップ351:Y)、図21に示した「探索」画面を表示し、ユーザからの探索キーワード入力を待つ。
【0109】
図21に示すように「探索」画面は、探索する情報が公開サービスである場合に選択するチェックボタン330、チェックボタン330が選択された場合に、探索したいサービスや情報のキーワードを入力するエリア331、探索する情報が特定の相手を指定する場合に選択するチェックボタン332、相手を特定するためのキーワードとして、氏名を入力するエリア333、IDを入力するエリア334、電話番号を入力するエリア335、他の個別情報を入力するためのエリア336、検索を実行するための「Search」ボタン337、処理をキャンセルするための「Cancel」ボタン338が配置されている。
【0110】
ユーザは、本画面のキーワード入力エリアに既知のキーワードを入力することができる。端末装置2は、「Search」ボタン337のクリックを受け付けると、チェックボタン330が選択されている場合には、SEARCH_INFOコマンドをブロードキャストし、チェックボタン332が選択されている場合には、SEARCH_CLIENTコマンドをブロードキャストする。
【0111】
他の端末装置2から、SEARCH_INFO_ACKコマンド、あるいは、SEARCH_CLIENT_ACKコマンドを受信した場合には(ステップ354:Y)、受信したデータに基づいて「探索結果」画面を表示する(ステップ355)。なお、あらかじめ検索に対する応答待ち時間を設定しておき、制限時間内に受信した応答について対応するようにしてもよい。
【0112】
図22は、「探索結果」画面の一例を示す図である。本例は、SEARCH_CLIENT_ACKコマンドを受信した際に表示する画面である。
【0113】
本図に示すように「検索結果」画面は、受信した応答コマンド数を表示するエリア340、受信した応答コマンドに対応する探索結果の項番341、SEARCH_CLIENT_ACKコマンドに含まれる氏名を表示するエリア342、IDを表示するエリア343、電話番号を表示するエリア344、選択された項番に対応する相手にVoP2Pによる通話要求を行なうための「Call」ボタン345、本処理をキャンセルするための「Cancel」ボタン345が配置されている。
【0114】
メイン画面上で「CLOSE」238ボタンのクリックを受け付けた場合には(ステップ356:Y)、本システムを終了し、画面の消去、リソースの開放を行う。
【0115】
メイン画面上で「Call」ボタン236のクリックを受け付けた場合には(ステップ357:Y)、公開サービス一覧エリア234で選択されたデータからアドレス情報を取得して(ステップ358)、後述する通話発信処理(図27参照)を行う(ステップ359)。
【0116】
メイン画面上で「Message」ボタン237のクリックを受け付けた場合には(ステップ360:Y)、公開サービス一覧エリア234で選択されたデータからアドレス情報を取得して(ステップ361)、後述するMessage処理(図29参照)を行う(ステップ362)。
【0117】
図24は、メイン画面上で「設定」メニュー231が選択された場合の処理のシーケンスの一例を示す図である。
【0118】
まず、図15に示した「設定」画面を表示し(ステップ370)、ユーザに入力を促す。「設定」画面上で「OK」ボタン265のクリックを受け付けると(ステップ371:Y)、入力されたデータを、蓄積装置12に格納して画面をクローズする(ステップ372)。
【0119】
図25は、メイン画面上で「公開サービス」メニュー230が選択された場合の処理のシーケンスの一例を示す図である。
【0120】
まず、図14に示した「公開サービス」画面を表示し(ステップ380)、ユーザに入力を促す。
【0121】
「公開サービス」画面上で「PUBLIC」ボタン251のクリックを受け付けると(ステップ381:Y)、公開する情報を指定するための領域(240〜250)で指定されたデータを収集して画面をクローズする(ステップ382)。そして、PUBLICコマンドを生成して、ブロードキャストする(ステップ383)。同時に、公開した情報やサービスに対してのパイプ受信待機用にTCPソケットを生成して待機する(ステップ384)。
【0122】
「公開サービス」画面上で「OK」ボタン252のクリックを受け付けると(ステップ385:Y)、公開する情報を指定するための領域(240〜250)で指定されたデータを収集して画面をクローズする(ステップ386)。
【0123】
「公開サービス」画面上で「Cancel」ボタン253のクリックを受け付けると(ステップ387:Y)、公開する情報を指定するための領域(240〜250)で指定されたデータを収集して画面をクローズし(ステップ388)、パイプ受信待機用TCPソケットがオープンされている場合には(ステップ389:Y)、公開情報終了コマンド(PUBLIC_CLOSEコマンド)をブロードキャストして(ステップ390)、TCPソケットをクローズする(ステップ391)。
【0124】
図8(b)は、PUBLIC_CLOSEコマンドのフォーマットの一例を示す図である。本図に示すようにPUBLIC_CLOSEコマンドは、IPヘッダ80、UDPヘッダ120、コマンド種別82、公開サービス名121、公開元IPアドレス123、公開元ポート番号124等を含んで構成される。
【0125】
図26は、メイン画面上で「通話」メニュー232が選択された場合の処理のシーケンスの一例を示す図である。
【0126】
まず、図16に示した「通話」画面を表示して(ステップ400)、ユーザにバディリスト270から通話先の選択を促す(ステップ401)。
【0127】
「通話」画面上で「CALL」ボタン271のクリックを受け付けると(ステップ402:Y)、バディリスト270で選択された通信相手の現在の公開情報あるいはアドレス情報が既知であるかどうかを検索する(ステップ403:Y)。
【0128】
その結果、アドレス情報が既知であれば、図27に示す通話発信処理を行う(ステップ404)。一方、現在のアドレス情報が分からなければ、図30に示す端末探索処理を行う(ステップ405)。
【0129】
「通話」画面上で「Message」ボタン271のクリックを受け付けると(ステップ406:Y)、バディリスト270で選択された通信相手の現在の公開情報あるいはアドレス情報が既知であるかどうかを検索する(ステップ406:Y)。
【0130】
その結果、アドレス情報が既知であれば、図29に示すMessage処理を行なう(ステップ408)。一方、現在のアドレス情報が分からなければ、図30に示す端末探索処理を行う(ステップ405)。
【0131】
通話中に、「通話」画面上で「BYE」ボタン272のクリックを受け付けると、通信相手に対してCALL_BYEコマンドを送信して(ステップ410)、通話処理を終了する。
【0132】
図27は、通話発信処理(ステップ404)のシーケンスの一例を示す図である。
【0133】
通話発信処理では、メイン画面の公開サービス一覧エリア234から選択されたデータのアドレス情報を含んだCALLコマンドを、選択されたサービスを公開している端末装置2のアドレスを指定して送信する(ステップ420)。
【0134】
通信相手からCALL_ACKコマンドが返信されてきたら(ステップ421)、音声データの入力、A/D変換、パケット化、送信・受信、パケット分解、D/A変換、音声出力の一連の音声データ送受信処理を行う(ステップ422)。
【0135】
「BYE」ボタン273のクリックを受け付けてCALL_BYEコマンドを送信した場合、および、通信相手からCALL_BYEコマンドを受信した場合には(ステップ423:Y)、通信に用いていたパイプを切断して(ステップ424)、通話発信処理を終了する。
【0136】
通信相手からCALL_REJECTコマンドを受信した場合には(ステップ425:Y)、図19(c)に示した「非応答」画面を表示し(ステップ426)、通信に用いるためのパイプを切断して(ステップ424)、通話発信処理を終了する。
【0137】
通信相手からREQUIRE_INFOコマンドを受信した場合には(ステップ427:Y)、図19(a)に示した「詳細情報要求応答」画面を表示する(ステップ428)。ただし、REQUIRE_INFOコマンドの要求情報が、図14に示した公開サービス情報で公開の指定を受けている項目の場合には、「詳細情報要求応答」画面を表示することなくREQUIRE_INFO_ACKコマンドを返信するようにしてもよい。
【0138】
「詳細情報要求応答」画面上で「SEND」ボタン304のクリックを受け付けると(ステップ429:Y)、ユーザが入力した情報を格納したREQUIRE_INFO_ACKコマンドを通信相手に送信する(ステップ430)。
【0139】
図28は、CALLコマンドを受信した場合の、通話着信処理のシーケンスの一例を示す図である。
【0140】
他の端末装置2からCALLコマンドを受信すると(ステップ440)、CALLコマンド内に含まれる発信側端末装置2の発信者情報を取得する(ステップ441)。そして、図17に示した「VoIP:着信」画面を表示する(ステップ442)。
【0141】
「VoIP:着信」画面上で「Off−fook」ボタン283のクリックを受け付けると(ステップ443:Y)、音声データの送受信に用いるパイプを生成する(ステップ444)と共に、CALL_OKコマンドをCALLコマンド発信端末装置2に対して送信する(ステップ445)。
【0142】
その後、音声データの入力、A/D変換、パケット化、送信・受信、パケット分解、D/A変換、音声出力の一連の音声データ送受信処理を行う(ステップ446)。
【0143】
「BYE」ボタン286のクリックを受け付けてCALL_BYEコマンドを送信した場合、および、通信相手からCALL_BYEコマンドを受信した場合には(ステップ447:Y)、通信に用いていたパイプを切断して(ステップ448)、通話着信処理を終了する。
【0144】
「VoIP:着信」画面上で「Info」ボタン284のクリックを受け付けると(ステップ449:Y)、図18(a)に示した「要求詳細情報」画面を表示する(ステップ450)。
【0145】
「要求詳細情報」画面上で「Send」ボタン292のクリックを受け付けると、要求情報指定エリア291で指定された要求情報を含んだREQUIRE_INFOコマンドを生成して、CALLコマンド発信端末装置2に対して返信する(ステップ451)。
【0146】
発信端末装置2からREQUIRE_INFO_ACKコマンドを受信した場合には(ステップ452:Y)、コマンドに含まれる詳細情報に基づいて、図18(b)に示した「通話:詳細情報要求応答」画面を表示する(ステップ453)。
【0147】
「通話:詳細情報要求応答」画面上で「NOT ANSWER」ボタン285のクリックを受け付けると(ステップ454:Y)、CALL_REJECTコマンドを生成して、CALLコマンド発信端末装置に対して返信する(ステップ455)。ここで、応答拒否理由入力エリア282にデータが入力されている場合には、この情報をCALL_REJECTコマンドに含めることができる。
【0148】
図29は、メイン画面あるいは図16に示した通話画面おいて、「Message」ボタン237、271がクリックされた際のMessage処理のシーケンスの一例を示す図である。
【0149】
Message処理では、図20に示す「通話:Message」画面を表示する(ステップ460)。本図に示すように「通話:Message」画面は、通信相手のニックネーム等を表示するエリア310、自端末装置のユーザと通信相手端末装置のユーザとが送受信するメッセージを表示するエリア311、自端末装置のユーザがメッセージを入力するエリア312、入力エリア312に入力されたテキストメッセージを通信相手に送信するための「Send」ボタン313、Message通話処理を終了するための「CLOSE」ボタン314が配置されている。
【0150】
「通話:Message」画面上で「Send」ボタン313のクリックを受け付けると(ステップ461:Y)、入力エリア312に入力されたデータを取得してMessageコマンドを生成し、宛先表示エリア310に表示されている通信相手端末装置2に対して送信する(ステップ462)。
【0151】
「通話:Message」画面上で「Close」ボタン314のクリックを受け付けると(ステップ463:Y)、Message_ENDコマンドを生成して、通信相手端末装置2に対して送信し(ステップ464)、「通話:Message」画面をクローズする。
【0152】
Message処理中に、通信相手端末装置2からMessageコマンドを受信した場合には(ステップ465:Y)、メッセージ表示エリア311に、相手端末2のニックネームプロンプトの後に続けてコマンドに含まれるメッセージを表示する(ステップ466)。
【0153】
図30は、端末探索処理(ステップ405)のシーケンスの一例を示す図である。
【0154】
自端末装置を使用しているユーザからのイベントがトリガになっている場合には(ステップ470:Y)、SEARCH_CLIENTコマンドをブロードキャストする(ステップ471)。このコマンドには、図21に示した「検索」画面でキーワード入力エリア333〜336に入力された情報が含まれる。
【0155】
他の端末装置2からSEARCH_CLIENT_ACKコマンドを受信した場合には(ステップ472:Y)、SEARCH_CLIENT_ACKコマンドに含まれる探索結果を表示する(ステップ473)。
【0156】
他の端末装置2からSEARCH_CLIENTコマンドを受信した場合(ステップ474:Y)、SEARCH_CLIENTコマンドに含まれる探索端末情報(キーワード)を取得し(ステップ475)、キーワードを含む情報を格納しているかどうかを検索する(ステップ475)。その結果、該当する情報があった場合には、SEARCH_CLIENT_ACKコマンドを生成して、SEARCH_CLIENTコマンドの発信端末装置2に対して送信する(ステップ477)。一方、該当する情報がなかった場合には、ブロードキャストされたデータの転送先があれば(ステップ478:Y)、SEARCH_CLIENTコマンドを転送先の端末装置2に送信する(ステップ479)。
【0157】
上記の実施形態は、通信相手となる端末装置の探索を端末装置間で行う、いわゆるPtoPのJXTAネットワークを例に説明したが、本発明は、パケット網1に接続する複数の端末装置2を管理するサーバ装置が通信相手となる端末装置の探索を行う従来のクライアントーサーバ型のネットワークにも適用することができる。この場合、例えば、通話要求着信時の詳細情報要求処理の中継等をサーバ装置を介して行なうようにする。
【0158】
【発明の効果】
上述のように、本発明によれば、ピアツーピア(Peer to Peer)プラットフォームをリアルタイム通話要求に適用した場合に、着信側が発信側の情報を取得できるようになる。
【図面の簡単な説明】
【図1】本発明を適用した分散型コミュニケーションシステムのネットワーク構成例を示す図である。
【図2】端末装置2およびゲートウェイ5の内部構成例を示す図である。
【図3】本発明の処理の流れの一例を示すシーケンス図である。
【図4】本発明の処理の流れの一例を示すシーケンス図である。
【図5】バディリストの例を示す図である。
【図6】CALLコマンド、CALL_OKコマンド、CALL_BYEコマンドのフォーマット例を示す図である。
【図7】REQUIRE_INFOコマンド、REQUIRE_INFO_ACKコマンドのフォーマット例を示す図である。
【図8】PUBLICコマンド、PUBLIC_CLOSEコマンド、SEARCH_PUBLIC_INFOコマンド、SEARCH_PUBLIC_INFO_ACKコマンドのフォーマット例を示す図である。
【図9】SEARCH_CLIENTコマンド、SEARCH_CLIENT_ACKコマンドのフォーマット例を示す図である。
【図10】データフォーマット例を示す図である。
【図11】本発明の処理の流れの別例を示すシーケンス図である。
【図12】本発明の処理の流れの別例を示すシーケンス図である。
【図13】メイン画面の一例を示す図である。
【図14】「公開サービス設定」画面の一例を示す図である。
【図15】「設定」画面例の一例を示す図である。
【図16】「通話」画面例の一例を示す図である。
【図17】CALLコマンド受信時の着信画面の一例を示す図である。
【図18】「通話:詳細情報要求」画面例の一例を示す図である。
【図19】「通話:詳細情報要求応答」画面、「通話中」画面、「通話:非応答」画面の一例を示す図である。
【図20】「通話:Message」画面の一例を示す図である。
【図21】「探索」画面の一例を示す図である。
【図22】探索要求に関係するコマンドに受信時の画面の一例を示す図である。
【図23】メイン画面に対するユーザイベント処理シーケンス例を示す図である。
【図24】「設定」画面に対するユーザイベント処理シーケンス例を示す図である。
【図25】「公開サービス」メニュー画面選択時の処理シーケンス例を示す図である。
【図26】通話処理のシーケンス例を示す図である。
【図27】通話発信処理のシーケンス例を示す図である。
【図28】通話着信処理のシーケンス例を示す図である。
【図29】Message処理のシーケンス例を示す図である。
【図30】端末探索処理のシーケンス例を示す図である。
【符号の説明】
1…パケット網
2…端末装置
3…電話機
4…無線基地局
5…ゲートウェイ
6…公衆電話網
10…メモリ
12…蓄積装置
13…入力装置
14…出力装置
15…パケット網インタフェース
16…A/D変換装置
18…音声データパケット化処理部
19…ネットワークパケット化処理部
20…イベント解析処理部
21…コマンドパケット化処理部
22…データパケット化処理部
23…ネットワークパケット分解処理部
24…データ振り分け処理部処理部
25…出力データキュー
26…音声データヘッダ除去処理部
27…ミキシング処理部
29…D/A変換装置
30…コマンド解析処理部
31…データ解析処理部
32…出力データ生成処理部
35…ユーザインタフェース部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a distributed communication system, and more particularly to a terminal device that performs a peer-to-peer real-time call.
[0002]
[Prior art]
With the spread of broadband networks in recent years, high-speed data communication from each home is possible. Conventionally, desktop PCs have been mainstream as terminal devices used for data communication, but portable notebook PCs, PDAs, and mobile phones have come to be widely used. In addition to the conventional wired network using public networks, wireless networks are spreading rapidly, and services that can use wireless networks in public places such as stations and coffee shops are also available. Has begun.
[0003]
Against this background, various technologies have been developed with keywords such as “ubiquitous” and “PtoP (Peer to Peer, hereinafter also referred to as“ P2P ”)”.
[0004]
The advantage of P2P that forms a community-type network is that a target can be dynamically searched without prior knowledge at the time of execution without knowing a fixed service in advance. For example, it is possible to search whether there is a desired file on the network and to receive data directly from the terminal device that owns the target file based on information obtained from any terminal device on the network. Actually, music distribution services, file exchange services, and the like using such a mechanism are used on the Internet.
[0005]
Non-Patent Document 1 and Non-Patent Document 2 describe “JXTA” as a P2P platform. JXTA has formed an open source community and is expanding each function.
[0006]
JXTA is configured with a core layer that performs communication partner search, data transfer, P2P group formation processing, etc., a middle layer that handles information retrieval, sharing, and security, and an application layer that handles file sharing, resource sharing, payment functions, etc. The
[0007]
In JXTA, information that the user wants to publish is broadcasted and waits for access from other terminal devices that want to use the information. Here, the concept of “pipe” is used for exchanging information, and a “pipe” is established with an accessing terminal device, and information is exchanged through the “pipe”. A terminal device that tries to access certain information can reach a terminal device that discloses the target information by designating a “pipe” name associated with the information disclosed by other terminal devices. At this time, the user using the terminal device does not need to be aware of the IP address or the like of the communication partner terminal device.
[0008]
[Non-Patent Document 1]
Bernard Traversat et al., "JXTA in a Nutshell", O'Reilly, September 2002
[Non-Patent Document 2]
Sun Microsystems, Inc., “Project JXTA (ProjectJXTA)”, [online], [February 20, 2003 search], Internet <URL: http: // www. jxta. org>
[0009]
[Problems to be solved by the invention]
The P2P platform described above was originally developed for the purpose of acquiring a file existing somewhere on the network. In other words, the “question file” information with the file attributes is advertised (broadcasted) on the network, and the information from the terminal device having information about the file is relied on to approach the target file. ing. In JXTA, the target is not limited to a file, but operates with a “pipe” name such as “service name” as key information.
[0010]
It is considered to apply the above technique to a real-time “call” by voice between people. A typical telephone service using a network is a so-called VoIP telephone service, in which a specific terminal device of a specific person is designated by an IP address or the like as a communication partner. If the IP address or the like of the partner terminal device is not known, the TP address of the partner terminal device may be acquired via a server device that manages the terminal device address.
[0011]
On the other hand, when the P2P platform is applied to a call, it is necessary to search for a communication partner based on the broadcast public information. The search for the communication partner can be realized using the above-mentioned conventional technology, but from the side of the incoming call, etc., the information on the other party who made the call is scarce, and it is a material for determining whether to respond Will be lacking.
[0012]
For this reason, when the P2P platform is applied to a call, it is desirable that the receiving side can acquire information on the calling side when a call request is received. Therefore, an object of the present invention is to make it possible for a called party to acquire information on a calling party when a peer-to-peer platform is mainly applied to a real-time call request.
[0013]
[Means for Solving the Problems]
In order to solve the above problems, according to the present invention,
A distributed communication system comprising a plurality of terminal devices capable of peer-to-peer calls,
A means for publishing information for accepting communication requests on the network;
When a communication request is received from another terminal device and information regarding the terminal device is not held, a request for information regarding the terminal device is made to the terminal device prior to the start of the call. A receiving terminal device comprising information requesting means to perform;
Communication request means for making a communication request to another terminal device based on information for accepting a communication request published on the network;
A distributed communication system comprising: an information request response means for transmitting information related to a request when a request for information on the terminal device is received from another terminal that has made a communication request; A system is provided.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described in detail with reference to the drawings.
[0015]
FIG. 1 is a diagram illustrating a network configuration example to which a distributed communication system according to an embodiment of the present invention is applied.
[0016]
As shown in FIG. 1, a network to which a distributed communication system is applied includes a packet network 1 and a public telephone network 6 that are connected to each other via a gateway 5 that is a protocol converter. The packet network 1 is connected to a plurality of client terminal devices (hereinafter referred to as terminal devices) 2 a to 2 i that perform communication for a call, and the telephone 3 is connected to the public telephone network 6. The call includes communication by text (so-called instant message) in addition to communication by voice (telephone). The public telephone network 6 includes a mobile telephone network.
[0017]
The packet network 1 is a network that performs packet communication according to the IP protocol, for example, and can include a public wireless LAN 1a, the Internet 1b, an ad hoc network 1c, and the like. In the example of this figure, the public wireless LAN 1a is connected to the Internet 1b, which is a wired packet network, via the wireless base station 4.
[0018]
FIG. 2 is a block diagram showing the internal configuration of the terminal device 2.
[0019]
As shown in the figure, the terminal device 2 includes a memory 10, a CPU 11 that performs processing based on a program stored in the memory 10, an accumulation device 12, and inputs such as a keyboard, a mouse, a pen, and a microphone (handset). A device 13, an output device 14 such as a speaker and a display, a packet network interface 15 for performing communication in the packet network 1, an A / D converter 16 for converting analog data into digital data, and digital data into analog data And a D / A conversion device 29 for converting the data to each other, and each is connected by an internal bus. When connecting to the ad hoc network 1c, a routing function unit is further provided.
[0020]
In this embodiment, a communication program, a user interface (UI) program, and the like are stored on the memory 10.
[0021]
The communication program stored on the memory 10 is executed by the CPU 11 so that a processing unit for performing the following reception processing and a processing unit for performing the transmission processing are virtually provided on the terminal device 2. Generate.
[0022]
That is, as a processing unit for performing reception processing, a network packet disassembly processing unit 23 that takes header information from a packet received via the packet network interface 15 and voice data / command / data from the contents of the packet that takes the header information A data distribution processing unit 24 that distributes data to each other, a plurality of output data queues 25 for temporarily buffering audio data for each transmission terminal device 2 when the received data is audio data, and an output data queue for each unit time The audio data is removed from the audio data 25, the audio data header removal processing unit 26 that decomposes the information added to the audio data and the audio data, and the first audio data among the audio data buffered in each output data queue 25 The mixing processing unit 27 for taking out the mixture and performing the mixing processing , A DECODER 28 that performs a decoding process when mixing audio data is encoded, a command analysis processing unit 30 that analyzes a command type when the received data distributed by the data distribution processing unit 24 is a command, and a data When the received data distributed by the distribution processing unit 24 is data, the data analysis processing unit 31 that analyzes the data type, and the data for outputting to the output device 14 the commands and data that need to be notified to the user Is generated.
[0023]
Further, as processing units for performing transmission processing, a coder 17 that encodes digitized voice data, a voice data packetization processing unit 18 that sends the coded voice data by the coder 17 to the packet network 1, and a packet. Network packetization processing unit 19 for adding header information including address information of the communication partner, packet sequence number, sender identifier, etc. to the received voice data, event analysis processing unit 20 for analyzing an event input by the user, When the event is a command related to voice call session control, the command packetization processing unit 21 that creates a command, and when the event is data by other messaging processing, the data packetization processing unit 22 creates this data. And generate
[0024]
However, CODER 17, voice data packetization processing unit 18, network packetization processing unit 19, network packet decomposition processing unit 23, data distribution processing unit 24, output data queue 25, voice data header removal processing unit 26, mixing processing unit 27, The DECODER 28 and the like may be configured by hardware.
[0025]
The user interface program stored on the memory 10 is executed by the CPU 11 to virtually generate the user interface unit 35 on the terminal device 2. The user interface unit 35 displays a screen provided by the system on the terminal device 2 and performs various processes described later based on instructions from the user received on the screen or the like.
[0026]
FIG. 13 is a diagram illustrating an example of a main screen of the present system displayed by the user interface unit 35 of the terminal device 2.
[0027]
As shown in the figure, the main screen includes a “public service” menu 230 for customizing services and information to be disclosed to the network, a “setting” menu for customizing address information used for communication, voice and text. “Call” menu 232 for processing real-time communication by the user, area 234 for displaying a list of information and services disclosed by other terminal devices, and “Search” requesting acquisition of public services of other terminal devices A button 235, a “CALL” button 236 for requesting real-time voice communication processing, a “Message” button 237 for requesting IM (Instant Messaging) processing, and a “CLOSE” button 238 for closing this screen and requesting system termination are arranged. Has been. Processing when each button is clicked will be described later.
[0028]
FIG. 14 is a diagram showing an example of a public service screen displayed when the “public service” menu 230 is selected on the main screen. The public service screen is a screen for setting information, services, etc. that the user of the terminal device 2 discloses on the network.
[0029]
As shown in this figure, on the public service screen, an area for selecting whether to disclose only the ID of the terminal device (check box 240) or whether to disclose information other than the ID of the terminal device (check box 241); An area for specifying information to be disclosed is arranged. In the area for specifying the information to be disclosed, a check box 242 for specifying the disclosure of the name, a check box 243 for specifying the opening of the hobby input in the adjacent hobby input field, and the adjacent occupation input field Specify the disclosure of the country of residence entered in the adjacent country entry field, check box 244 for designating disclosure of the entered profession, check box 245 for designating age disclosure entered in the adjacent age entry field Check box 246 for specifying gender disclosure, check box 247 for specifying gender disclosure, check box 248 for specifying disclosure of the telephone number input in the adjacent telephone number input field, input in the adjacent individual information input field Check box 249 for specifying the disclosure of individual information, and the field set in the adjacent service content input field. Check box 250 for specifying the public service yl Disclosure is disposed.
[0030]
Also, on the public service screen, a “PUBLIC” button 251 for publishing the specified information, an “OK” button 252 for storing the setting content, and closing the public service setting process and closing the screen The “Cancel” button 253 is arranged. Processing when each button is clicked will be described later.
[0031]
FIG. 15 is a diagram illustrating an example of a setting screen displayed by the user interface unit 35 when the “setting” menu 231 is selected on the main screen. The setting screen is a screen for setting information regarding the terminal device 2 and the user of the terminal device 2.
[0032]
As shown in the figure, the setting screen includes an area 260 for inputting a user's name and gender, an area 261 for inputting a nickname to be displayed on the screen, an area 262 for inputting an IP telephone number, and a session (pipe) for publishing a service. ) An area 263 for inputting a standby port number, an area 264 for inputting a media standby port number, an “OK” button 265 for registering display contents, and a “Cancel” button 266 for canceling processing are arranged. Yes. Processing when each button is clicked will be described later. In addition, when displaying this screen, the user interface unit 35 displays a value registered in advance or a recently registered value.
[0033]
FIG. 16 is a diagram illustrating an example of a call screen displayed by the user interface unit 35 when the “call” menu 232 is selected on the main screen. The call screen is a screen for actually making a call (including IM).
[0034]
As shown in this figure, the call screen displays an area 270 for displaying a list of nicknames registered in a buddy list, which will be described later, an area 274 for displaying the nickname of the other party in the call, and the other party selected in area 270 in real time. "CALL" button 271 for requesting voice communication, "Message" button 272 for requesting text message communication to the other party selected from area 270, "BYE" for ending voice communication or text message communication processing A button 273 is arranged. The call screen is also displayed when the “CALL” button 236 is clicked on the main screen.
[0035]
Other screens displayed by the user interface unit 35 will be described in accordance with related processing contents.
[0036]
While the internal configuration of the terminal device 2 has been described above, the gateway 5 can basically have the same internal configuration. However, the gateway 5 further has an interface with the public telephone network 6. The interface with the public telephone network 6 converts the data from the packet network 1b into analog data and outputs it to the public telephone network 6, and converts the analog data from the public telephone network 6 into digital data and sends it to the packet network 1b. To do.
[0037]
Further, the gateway 5 receives from the telephone 3 of the public telephone network 6 an instruction regarding the public information that the terminal device 2 has received the setting on the public service screen from the user of the telephone 3 and stores it in the storage device 12. This information is returned in response to an inquiry about detailed information from the terminal device 2, as will be described later.
[0038]
The terminal device 2 and the storage device 12 of the gateway 5 store a buddy list for managing information on the communication partner. FIG. 5 is a diagram illustrating an example of the data structure of the buddy list.
[0039]
As shown in the figure, the buddy list in the present embodiment includes a nickname 70 used for screen display and the like as communication partner information, an ID 71 that is a unique identifier for identifying a terminal device of the communication partner, and a communication partner. The detailed information 72, which is personal information, is managed. The detailed information 72 includes, for example, a name 72a, a telephone number (tel-no) 72b such as a public telephone network or an IP telephone, an occupation 72c, and a hobby 72d. Registration to the buddy list can be automatically acquired from the call destination by the terminal device 2 at the time of the first call, or can be registered based on an instruction from the user.
[0040]
Next, an example of the processing flow of the present invention will be described with reference to the sequence diagrams of FIGS. In this example, a case will be described in which the terminal device 2a connected to the public wireless LAN 1a places an IP phone call to the terminal device 2i connected to the ad hoc network 1c. That is, it is a call within the packet network 1.
[0041]
First, the terminal device 2a connects to the public wireless LAN 1a (step 40). When the call menu 232 is selected or the “CALL” button 236 is clicked on the main screen of the system shown in FIG. 13, the call screen shown in FIG. 16 is displayed.
[0042]
As a request for voice communication (VoIP) from the user to the terminal device 2i, when a click on the “CALL” button 271 is received in a state where the user's nickname of the terminal device 2i as the communication partner is selected on the main screen ( In step 41), the terminal device 2a refers to the buddy list, issues a VoP2P request command (CALL command) including information such as the ID and nickname of the terminal device 2i, and broadcasts it to the packet network 1 (step 42).
[0043]
FIG. 6A is a diagram illustrating an example of the format of the CALL command. As shown in the figure, the CALL command includes an IP header 80, a TCP header 81, a command type 82, a transmission source nickname 83, a transmission source IP address 84, a destination nickname 84, a buddy list registration status (whether a call has been made once or not) ) 85, a communication means type 86 such as audio / data / video, a CODEC type 87 of communication media, a reception port number 89, and the like. Each item other than the header can be described in accordance with, for example, text format XML. The same applies to each command format described below.
[0044]
When the terminal device 2d connected to the ad hoc network 1c receives the broadcast CALL command, the terminal device 2d refers to the routing table provided in the routing function unit and searches for information on the terminal device 2i (step 43). .
[0045]
If it is determined from the routing table that the terminal device 2i is connected to the ad hoc network 1c to which it is connected, the CALL command is transferred to the next terminal device in the ad hoc network 1c (step 44).
[0046]
The terminal device 2h that has received the transferred CALL command performs the processing of steps 43 and 44, so that the CALL command issued by the terminal device 2a reaches the target terminal device 2i.
[0047]
Whether the terminal device 2i that has received the CALL command from the terminal device 2a has registered in the buddy list in the terminal device 2i information (for example, a nickname or ID) of the terminal device 2a included in the received CALL command. (Step 45).
[0048]
If registered in the buddy list, the user is notified that the CALL command, that is, the call request has been received from the terminal device 2a (step 46).
[0049]
FIG. 17 is a diagram illustrating an example of a screen for receiving a CALL command, that is, notifying the user that an incoming call has been received. FIG. 17A shows that there is an incoming call from the partner registered in the buddy list, and FIG. 17B shows that there is an incoming call from a partner who is not registered in the buddy list.
[0050]
As shown in FIG. 17A, the screen for notifying the user that there has been an incoming call displays an area 280 for displaying the caller's nickname and the like, and that the caller has been registered in the buddy list. Area 281, if not responding to a call request, area 282 for inputting the reason if necessary, “Off-look” button 283 for responding to the call, and “Info” button 284 for requesting detailed information , A “Not Answer” button 285 for rejecting the incoming call and a “BYE” button for ending the call. If the caller is not registered in the buddy list, as shown in FIG. 17B, the caller is not registered in place of the area 281 for displaying that the caller has been registered in the buddy list. An area 287 to be displayed and a “Memory” button 287 for registering the caller in the buddy list are arranged.
[0051]
When the user of the terminal device 2i clicks the “Off-Fook” button 283 on this screen or issues an off-hook event such as off-hooking the handset provided in the terminal device 2i (step 47), the terminal device 2i (CALL_OK command) is generated and returned to the terminal device 2a that is the CALL command transmission source (step 48).
[0052]
FIG. 6B is a diagram illustrating an example of the format of the CALL_OK command. As shown in the figure, the CALL_OK command includes an IP header 80, a TCP header 81, a command type 82, a receiving terminal, that is, a nickname 90 of the calling terminal of the CALL_OK command, an IP address 91 of the receiving terminal, a communication means type 92, a CODEC 93, It includes a receiving port number 94 and the like.
[0053]
When the terminal device 2a receives the CALL_OK command, the terminal device 2a notifies the user that a session with the terminal device 2i has been established (step 49), and transmits / receives audio data to / from the terminal device 2i (step 50). ).
[0054]
On the other hand, as a result of checking whether the nickname of the terminal device 2a included in the received CALL command is registered in the buddy list in step 45, if it is not registered, or if the terminal device 2i receives an incoming notification in step 46 On the other hand, when the user clicks the “Info” button 284 shown in FIG. 17 and issues an event requesting detailed information of the terminal device 2a, the terminal device 2i displays an example in FIG. The “call: request detailed information” screen is displayed.
[0055]
As shown in this figure, the “call: detailed information request” screen has an area 290 for displaying a caller's nickname and the like, an area 291 for specifying an item for requesting detailed information, and “Send” for transmitting detailed information. A button 292 and a “Cancel” button 293 for closing this screen are arranged.
[0056]
When the terminal device 2i receives a click on the “Send” button 292, the terminal device 2i generates a detailed information request command (REQUIRE_INFO command) based on the setting contents of the area 291 for designating an item for requesting detailed information, and sends it to the terminal device 2a. Then, the data is transmitted (step 51).
[0057]
FIG. 7A is a diagram illustrating an example of the format of the REQUIRE_INFO command. As shown in the figure, the REQUIRE_INFO command includes an IP header 80, a TCP header 81, a command type 82, a receiving terminal device, that is, a nickname 95 of a source of the REQUIRE_INFO command, a receiving terminal ID 100, and a receiving terminal device user name 101. , Including the items corresponding to the request information from the user such as the receiving terminal device telephone number 102 and the receiving terminal device using user occupation 103.
[0058]
The terminal devices 2h and 2d, which are terminal devices on the path between the terminal devices 2i and 2a, respectively transfer a REQUIRE_INFO command to the terminal device 2a (step 52). When the terminal device 2i is connected to the Internet 1a or the wireless public LAN 1b instead of the ad hoc network 1c, the REQUIRE_INFO command can be transmitted directly to the terminal device 2a.
[0059]
The terminal device 2a that has received the REQUIRE_INFO command notifies the user that there has been a detailed information request from the terminal device 2i, and accepts whether or not to respond to the requested information.
[0060]
FIG. 19A is a diagram illustrating an example of a screen displayed on the terminal device 2a at this time. In the example of this figure, on the screen for notifying that there is a detailed information request, the area 300 for displaying the user's nickname of the terminal device 2i of the REQUIRE_INFO command is displayed, and the name is entered among the items related to the detailed information request An area 301 for inputting a telephone number, an area 302 for inputting a telephone number, an area 303 for inputting an occupation, a “Send” button 304 for returning detailed information, and a “BYE” button 305 for canceling the call are arranged. In addition, in the areas 301 to 303 for inputting items relating to the detailed information request, information registered on the public service screen or setting screen of this system may be displayed in advance.
[0061]
FIG. 19B is a diagram illustrating an example of a screen displayed on the terminal device 2a when the terminal device 2i that is the destination of the CALL command is busy. In this screen, an area 300 for displaying the user's nickname and the like of the terminal device 2i and “BYE” for canceling the call are arranged.
[0062]
FIG. 19C is a diagram illustrating an example of a screen displayed on the terminal device 2a when the terminal device 2i that is the destination of the CALL command refuses communication. In this screen, an area 300 for displaying a user's nickname and the like of the terminal device 2i and an “OK” button 307 for accepting a non-response are arranged on this screen.
[0063]
When the “Send” button 304 is clicked on the screen shown in FIG. 19A and an instruction to respond is received from the user, the detailed information set on the public service screen shown in FIG. A detailed information response command (REQUIRE_INFO_ACK command) including the organization and telephone number is generated and transmitted to the terminal device 2i (step 53).
[0064]
FIG. 7B is a diagram illustrating an example of the format of the REQUIRE_INFO_ACK command. As shown in this figure, the REQUIRE_INFO_ACK command includes an IP header 80, a TCP header 81, and a command type 82, as well as a REQUIRE_INFO_ACK command source terminal side nickname 104, a destination terminal side nickname 105, a command source terminal side ID 106, a name 107, It includes information requested by the REQUIRE_INFO command such as the telephone number 108, occupation 109, and hobby 110. However, it is possible to exclude information that the user did not designate as the disclosure target on the disclosure service screen.
[0065]
The REQUIRE_INFO_ACK command is transferred to the terminal device 2i via the terminal devices 2d and 2h (step 54).
[0066]
The terminal device 2i notifies the user of detailed information included in the REQUIRE_INFO_ACK command (step 55).
[0067]
FIG. 18B is a diagram showing an example of a “call: detailed information request response” screen for notifying the user of detailed information included in the REQUIRE_INFO_ACK command.
[0068]
As shown in this figure, the “call: detailed information request response” screen has an area 290 for displaying the user's nickname of the calling terminal device, an area 294 for displaying the name of the user of the calling terminal device, and the user of the user of the calling terminal device. An area 295 for displaying the telephone number, an area 296 for displaying the occupation of the user of the calling terminal device, an area 287 for inputting the reason for not responding as necessary, and an “Off-Fook” button 298 for responding to the call request In addition, a “Not Answer” button 299 for rejecting the reception is arranged. If other detailed information is included in the REQUIRE_INFO_ACK command, these are also displayed.
[0069]
When the user of the terminal device 2i confirms the information of the other party who made the call request and issues an off-hook event such as clicking the “OFF-look” button 298 or off-hooking the handset provided in the terminal device 2i (step) 56), a CALL_OK command is transmitted to the terminal device 2a (step 57). At this time, the acquired information of the terminal device 2a is registered in the buddy list (step 58).
[0070]
By notifying the user that the terminal device 2a has received the CALL_OK command (step 59), transmission / reception of voice data is started between the terminal devices 2a and 2i, and real-time voice communication is realized (step 60).
[0071]
FIG. 10 is a diagram illustrating an example of a data format used for a real-time voice call. As shown in the figure, the data used for the real-time voice call includes an IP header 80, a UDP header 120, a sequence number 160, voice data 161, and the like. When the real-time call data is a text message such as XML data, it includes an IP header 80, a TCP header 81, a message 162, and the like.
[0072]
If any user issues an event corresponding to on-hook during a real-time voice call (step 61), the real-time voice call is terminated.
[0073]
FIG. 4 shows a case in which the terminal device 2a is notified of an incoming call from the terminal device 2a or the user of the terminal device 2i who has received the detailed information request response rejects the reception by clicking the “Not Answer” button 299 or the like. The flow of processing is shown.
[0074]
In this case, the terminal device 2i generates a rejection response command (CALL_REJECT command) (step 61) and transmits it to the terminal device 2a (step 62).
[0075]
FIG. 6C is a diagram illustrating an example of the format of the CALL_REJECT command. As shown in the figure, the CALL_REJECT command includes an IP header 80, a TCP header 81, a command type 82, a nickname 90 of the CALL_REJECT command transmission terminal, a non-response reason flag 95 indicating whether there is a non-response reason, The reason 96 is configured to be included.
[0076]
The terminal device 2a that has received the CALL_REJECT command from the terminal device 2i notifies the user of that fact (step 63). When the reason for non-response is included in the CALL_REJECT command, the contents are also notified.
[0077]
Next, another example of the processing flow of the present invention will be described with reference to the sequence diagrams of FIGS. In this example, a case where a real-time VoP2P request is generated between the terminal device 2a connected to the public wireless LAN 1a and the telephone 3 will be described. That is, it is a call through the gateway 5. In addition, the part common to the above-mentioned Example is demonstrated simply.
[0078]
First, the terminal device 2a connects to the public wireless LAN 1a (step 170). At this time, if the terminal device 2a has set a service to be disclosed on the screen shown in FIG. 14, it broadcasts an information disclosure command (PUBLIC command) (step 171).
[0079]
FIG. 8A shows an example of the format of the PUBLIC command. As shown in the figure, the PUBLIC command includes an IP header 80, a UDP header 120, a command type 82, a public service name 121, a protocol type 122 used in a public service, a public source IP address 123, a public source reception port number 124, and the like. Consists of including. As described above, the PUBLIC command includes an IP address, a port number, a path name, and the like, which are path (pipe) information used for P2P connection.
[0080]
FIG. 8B is a diagram illustrating an example of a format of a public information search command (SEARCH_PUBLIC_INFO command). As shown in the figure, the SEARCH_PUBLIC_INFO command includes the IP header 80, the UCP header 120, the command type 82, the source terminal device nickname 125 of the SEARCH_PUBLIC_INFO command, the command source terminal device IP address 126, the keyword flag 127, the keyword 128, and the like. It is comprised including.
[0081]
FIG. 8C is a diagram illustrating an example of a format of a public information search response command (SEARCH_PUBLIC_INFO_ACK command). As shown in the figure, the SEARCH_PUBLIC_INFO_ACK command includes an IP header 80, a UDP header 120, a command type 82, a public service name 121, a protocol 122, a service public source IP address 123, a service public source reception port number 124, and the like. Consists of.
[0082]
When the terminal device 2d receives the broadcast PUBLIC command, the terminal device 2d temporarily stores information relating to the public service included in the command (step 172).
[0083]
Assuming that the IP telephone number of the terminal device 2a is “050-123-4567”, when the telephone 3 makes a call to the terminal apparatus 2a, the telephone 3 is called via the telephone to the gateway 5 (step 173). ). This can be done by a method of inputting the IP telephone number of the terminal device 2a after the telephone number of the gateway 5, or by temporarily calling the gateway 5 and following the voice response from the gateway 5, the IP telephone of the terminal device 2a. There are methods such as numbering.
[0084]
The gateway 5 that has received a call from the telephone 3 searches for the IP address of the terminal device 2a from the input telephone number. In the search, first, information on a terminal device currently connected to the packet network and registered in itself is searched. For example, in SIP (Session Initiation Protocol) created by IETF, a SIP terminal registers its current address by registering with a SIP proxy or SIP server. The gateway 5 searches the registration information as to whether there is a terminal corresponding to the IP telephone number “050-123-4567”.
[0085]
If not registered, the gateway 5 broadcasts a terminal search command (SEARCH_CLIENT command) (step 174).
[0086]
FIG. 9A is a diagram illustrating an example of the format of the SEARCH_CLIENT command. As shown in the figure, the SEARCH_CLIENT command includes an IP header 80, a UDP header 120, and a command type 82, a source nickname 140 of the SEARCH_CLIENT command, a source IP address 141, a source reception port number 142, a keyword type 143, Search terminal user (search partner) user name 144, which is one of the keywords, search partner ID 145, which is one of the keywords, search partner telephone number 146, which is one of the keywords, keyword 147 designated by another user, etc. It is comprised including.
[0087]
The terminal device 2d that has received the broadcast SEARCH_CLIENT command searches the public information of the terminal device stored so far (step 175), and if there is information on the public service of the corresponding terminal device, the terminal search response command (SEARCH_CLIENT_ACK) Command) is returned to the gateway 5 (step 176).
[0088]
FIG. 9B is a diagram illustrating an example of the format of the SEARCH_CLIENT_ACK command. As shown in the figure, the SEARCH_CLIENT_ACK command includes an IP header 80, a UDP header 120, a command type 82, a search target terminal nickname 148, a search target terminal IP address 149, a SEARCH_CLIENT_ACK command source name 150, an ID 151, a telephone number 152, and the like. It is comprised including.
[0089]
The gateway 5 that has received the SEARCH_CLIENT_ACK command acquires pipe information used in VoP2P communication from the public information of the terminal device 2a included in the command, and generates a pipe for communication with the terminal device 2a (step 177).
[0090]
Then, using this pipe, a CALL command is issued to the terminal device 2a (step 178).
[0091]
The terminal device 2a that has received the CALL command from the gateway 5 through the pipe (step 179) sends the caller information included in the CALL command (information relating to the telephone 3, such as the telephone number, the user name of the telephone 3, etc. From the buddy list.
[0092]
If not registered in the buddy list, or if there is a request for detailed information from the user of the terminal device 2a, a detailed information request command (REQUIRE_INFO command) is transmitted to the gateway 5 through the pipe (step 180).
[0093]
The gateway 5 that has received the REQUIRE_INFO command has received registration from the user of the telephone 3 in advance and stores information corresponding to the request information included in the command, and includes information corresponding to the request information when stored. A detailed information response command (REQUIRE_INFO_ACK command) is returned (step 181).
[0094]
Here, in the case of a P2P communication request between terminal devices instead of communication between the terminal device 2 and the gateway 5, the request information included in the REQUIRE_INFO command is notified to the user and prompted for input. Data may be included in the REQUIRE_INFO_ACK command.
[0095]
The terminal apparatus 2a that has received the REQUIRE_INFO_ACK command notifies the user of detailed information included in the command (step 182).
[0096]
When an event corresponding to off-hook is detected from the user (step 183), a response command (CALL_ACK command) is transmitted to the gateway 5 (step 184).
[0097]
When the gateway 5 receives the CALL_ACK command from the terminal device 2a (step 185), the gateway 5 converts it into analog voice with the telephone 3 and converts it into digital voice data with the terminal device 2a, and transmits / receives it. And real-time voice communication between the telephone 3 (step 186).
[0098]
Thereafter, when the user of the telephone 3 goes on-hook (step 187), a disconnect command (CALL_BYE command) is transmitted through the pipe to the terminal device 2a (step 188).
[0099]
Similarly, when the terminal device 2a detects an event equivalent to an on-hook from the user (step 189), a disconnect command (CALL_BYE command) is transmitted to the gateway 5 (step 190).
[0100]
FIG. 6D is a diagram illustrating an example of the format of the CALL_BYE command. As shown in the figure, the CALL_BYE command includes an IP header 80, a TCP header 81, a command type 82, a receiving terminal nickname 90, and the like. After completing the connection between the terminal device 2a and the telephone 3, the gateway 5 terminates the pipe between the terminal device 2a (step 191). The terminal device 2a also terminates the reception standby pipe when the information disclosure is terminated (step 191).
[0101]
FIG. 12 shows a case where the terminal device 2d that has received the terminal search command (SEARCH_CLIENT command) broadcast by the gateway 5 searches the public information of the terminal device stored so far (step 175), and there is no corresponding information. It is a figure which shows the flow of a process.
[0102]
In this case, the terminal device 2d transfers the SEARCH_CLIENT command received from the gateway 5 to the terminal device 2a connected via the public wireless LAN 1a (step 200).
[0103]
The terminal device 2a checks whether or not the telephone number of the calling telephone 3 included in the transferred SEARCH_CLIENT command is registered in the buddy list stored in itself (step 201).
[0104]
As a result, if it is already registered in the buddy list or the like, a terminal search response command (SEARCH_CLIENT_ACK) is transmitted to the gateway 5 (step 202). Thereafter, the processing after step 178 shown in FIG. 11 is performed.
[0105]
Next, the flow of processing when the terminal device 2 of this system receives an instruction from the user on the screen or when a command from another terminal device 2 or the like is received will be described.
[0106]
First, the flow of processing when an instruction is received from the user on the main screen shown in FIG. 13 will be described with reference to FIG.
[0107]
When this system is activated, a main screen (P2P communication tool) is displayed (step 350).
[0108]
When a click on the “Search” button 235 is accepted on this screen (step 351: Y), the “search” screen shown in FIG. 21 is displayed, and a search keyword input from the user is awaited.
[0109]
As shown in FIG. 21, the “search” screen is an area 331 for inputting a keyword of a service or information to be searched when a check button 330 to be selected when the information to be searched is a public service and the check button 330 is selected. A check button 332 to be selected when the information to be searched specifies a specific partner, an area 333 for inputting a name as a keyword for specifying the partner, an area 334 for inputting an ID, an area 335 for inputting a telephone number, An area 336 for inputting other individual information, a “Search” button 337 for executing a search, and a “Cancel” button 338 for canceling the processing are arranged.
[0110]
The user can input a known keyword in the keyword input area of this screen. When the terminal device 2 receives a click on the “Search” button 337, the terminal device 2 broadcasts a SEARCH_INFO command when the check button 330 is selected, and broadcasts a SEARCH_CLIENT command when the check button 332 is selected. To do.
[0111]
When a SEARCH_INFO_ACK command or a SEARCH_CLIENT_ACK command is received from another terminal device 2 (step 354: Y), a “search result” screen is displayed based on the received data (step 355). Note that a response waiting time for a search may be set in advance, and a response received within the time limit may be handled.
[0112]
FIG. 22 is a diagram illustrating an example of a “search result” screen. This example is a screen displayed when a SEARCH_CLIENT_ACK command is received.
[0113]
As shown in the figure, the “search result” screen includes an area 340 for displaying the number of received response commands, an item number 341 for a search result corresponding to the received response command, an area 342 for displaying a name included in the SEARCH_CLIENT_ACK command, An area 343 for displaying an ID, an area 344 for displaying a telephone number, a “Call” button 345 for making a VoP2P call request to a partner corresponding to the selected item number, and a “Cancel” button for canceling this processing 345 is arranged.
[0114]
When a click on the “CLOSE” 238 button is accepted on the main screen (step 356: Y), the present system is terminated, the screen is erased, and resources are released.
[0115]
When a click on the “Call” button 236 is accepted on the main screen (step 357: Y), address information is acquired from the data selected in the public service list area 234 (step 358), and a call transmission described later is performed. Processing (see FIG. 27) is performed (step 359).
[0116]
When a click on the “Message” button 237 is accepted on the main screen (step 360: Y), address information is acquired from the data selected in the public service list area 234 (step 361), and a message process described later is performed. (See FIG. 29) is performed (step 362).
[0117]
FIG. 24 is a diagram showing an example of a processing sequence when the “setting” menu 231 is selected on the main screen.
[0118]
First, the “setting” screen shown in FIG. 15 is displayed (step 370) to prompt the user to input. When a click on the “OK” button 265 is accepted on the “setting” screen (step 371: Y), the input data is stored in the storage device 12 and the screen is closed (step 372).
[0119]
FIG. 25 is a diagram illustrating an example of a processing sequence when the “public service” menu 230 is selected on the main screen.
[0120]
First, the “public service” screen shown in FIG. 14 is displayed (step 380), and the user is prompted to input.
[0121]
When a click on the “PUBLIC” button 251 is received on the “public service” screen (step 381: Y), the data designated in the area (240 to 250) for designating information to be published is collected and the screen is closed. (Step 382). Then, a PUBLIC command is generated and broadcast (step 383). At the same time, a TCP socket is generated and waited for pipe reception waiting for the disclosed information and services (step 384).
[0122]
When a click on the “OK” button 252 is accepted on the “public service” screen (step 385: Y), the data designated in the area (240 to 250) for designating information to be published is collected and the screen is closed. (Step 386).
[0123]
When the user clicks on the “Cancel” button 253 on the “Public Service” screen (step 387: Y), the data specified in the area (240 to 250) for specifying information to be disclosed is collected and the screen is closed. If the pipe reception standby TCP socket is open (step 389: Y), a public information end command (PUBLIC_CLOSE command) is broadcast (step 390), and the TCP socket is closed (step 390). Step 391).
[0124]
FIG. 8B is a diagram illustrating an example of the format of the PUBLIC_CLOSE command. As shown in the figure, the PUBLIC_CLOSE command includes an IP header 80, a UDP header 120, a command type 82, a public service name 121, a public source IP address 123, a public source port number 124, and the like.
[0125]
FIG. 26 is a diagram showing an example of a processing sequence when the “call” menu 232 is selected on the main screen.
[0126]
First, the “call” screen shown in FIG. 16 is displayed (step 400), and the user is prompted to select a call destination from the buddy list 270 (step 401).
[0127]
When a click on the “CALL” button 271 is accepted on the “call” screen (step 402: Y), a search is made as to whether or not the current public information or address information of the communication partner selected in the buddy list 270 is known ( Step 403: Y).
[0128]
As a result, if the address information is known, the call transmission process shown in FIG. 27 is performed (step 404). On the other hand, if the current address information is not known, the terminal search process shown in FIG. 30 is performed (step 405).
[0129]
When a click on the “Message” button 271 is accepted on the “call” screen (step 406: Y), a search is made as to whether or not the current public information or address information of the communication partner selected in the buddy list 270 is known ( Step 406: Y).
[0130]
As a result, if the address information is known, the Message process shown in FIG. 29 is performed (step 408). On the other hand, if the current address information is not known, the terminal search process shown in FIG. 30 is performed (step 405).
[0131]
When a click on the “BYE” button 272 is accepted on the “call” screen during a call, a CALL_BYE command is transmitted to the communication partner (step 410), and the call process is terminated.
[0132]
FIG. 27 is a diagram illustrating an example of a sequence of a call transmission process (step 404).
[0133]
In the call origination process, a CALL command including address information of data selected from the public service list area 234 on the main screen is transmitted by designating the address of the terminal device 2 that discloses the selected service (step). 420).
[0134]
When a CALL_ACK command is returned from the communication partner (step 421), a series of audio data transmission / reception processes of audio data input, A / D conversion, packetization, transmission / reception, packet decomposition, D / A conversion, and audio output are performed. Perform (step 422).
[0135]
When the CALL_BYE command is transmitted upon accepting the click of the “BYE” button 273, or when the CALL_BYE command is received from the communication partner (step 423: Y), the pipe used for communication is disconnected (step 424). ), The call transmission process is terminated.
[0136]
When the CALL_REJECT command is received from the communication partner (step 425: Y), the “non-response” screen shown in FIG. 19C is displayed (step 426), and the pipe used for communication is disconnected (step 426). Step 424), the call outgoing call processing is terminated.
[0137]
When a REQUIRE_INFO command is received from the communication partner (step 427: Y), the “detailed information request response” screen shown in FIG. 19A is displayed (step 428). However, if the request information of the REQUIRE_INFO command is an item for which disclosure is specified in the public service information shown in FIG. 14, the REQUIRE_INFO_ACK command is returned without displaying the “detailed information request response” screen. May be.
[0138]
When a click on the “SEND” button 304 is accepted on the “detailed information request response” screen (step 429: Y), a REQUIRE_INFO_ACK command storing information input by the user is transmitted to the communication partner (step 430).
[0139]
FIG. 28 is a diagram showing an exemplary sequence of incoming call processing when a CALL command is received.
[0140]
When a CALL command is received from another terminal device 2 (step 440), caller information of the calling terminal device 2 included in the CALL command is acquired (step 441). Then, the “VoIP: incoming call” screen shown in FIG. 17 is displayed (step 442).
[0141]
When a click on the “Off-look” button 283 is accepted on the “VoIP: incoming” screen (step 443: Y), a pipe used for transmission / reception of voice data is generated (step 444), and a CALL_OK command is sent to the CALL command transmission terminal. It transmits with respect to the apparatus 2 (step 445).
[0142]
Thereafter, a series of audio data transmission / reception processes of audio data input, A / D conversion, packetization, transmission / reception, packet decomposition, D / A conversion, and audio output are performed (step 446).
[0143]
When the CALL_BYE command is transmitted upon accepting the click of the “BYE” button 286, or when the CALL_BYE command is received from the communication partner (step 447: Y), the pipe used for communication is disconnected (step 448). ), Terminating the incoming call process.
[0144]
When a click on the “Info” button 284 is accepted on the “VoIP: incoming” screen (step 449: Y), the “request detailed information” screen shown in FIG. 18A is displayed (step 450).
[0145]
When a click on the “Send” button 292 is received on the “request detailed information” screen, a REQUIRE_INFO command including the request information specified in the request information specifying area 291 is generated and returned to the CALL command transmission terminal device 2 (Step 451).
[0146]
When the REQUIRE_INFO_ACK command is received from the calling terminal device 2 (step 452: Y), the “call: detailed information request response” screen shown in FIG. 18B is displayed based on the detailed information included in the command. (Step 453).
[0147]
When a click on the “NOT ANSWER” button 285 is accepted on the “call: detailed information request response” screen (step 454: Y), a CALL_REJECT command is generated and returned to the CALL command transmission terminal device (step 455). . Here, when data is input to the response rejection reason input area 282, this information can be included in the CALL_REJECT command.
[0148]
FIG. 29 is a diagram showing an example of a message processing sequence when the “Message” buttons 237 and 271 are clicked on the main screen or the call screen shown in FIG.
[0149]
In the Message process, a “call: Message” screen shown in FIG. 20 is displayed (step 460). As shown in the figure, the “call: Message” screen includes an area 310 for displaying a nickname of a communication partner, an area 311 for displaying a message transmitted and received between the user of the terminal device and the user of the communication terminal device, An area 312 in which a user of the apparatus inputs a message, a “Send” button 313 for transmitting a text message input in the input area 312 to the communication partner, and a “CLOSE” button 314 for ending the Message call processing are arranged. ing.
[0150]
When a click on the “Send” button 313 is accepted on the “call: Message” screen (step 461: Y), the data input in the input area 312 is acquired and a Message command is generated and displayed in the destination display area 310. Is transmitted to the communication partner terminal device 2 (step 462).
[0151]
When a click on the “Close” button 314 is accepted on the “call: Message” screen (step 463: Y), a Message_END command is generated and transmitted to the communication partner terminal device 2 (step 464). “Message” screen is closed.
[0152]
When the Message command is received from the communication partner terminal device 2 during the Message process (step 465: Y), the message included in the command is displayed in the message display area 311 after the nickname prompt of the partner terminal 2. (Step 466).
[0153]
FIG. 30 is a diagram showing an exemplary sequence of terminal search processing (step 405).
[0154]
When an event from a user using the terminal device is a trigger (step 470: Y), a SEARCH_CLIENT command is broadcast (step 471). This command includes information input in the keyword input areas 333 to 336 on the “search” screen shown in FIG.
[0155]
When a SEARCH_CLIENT_ACK command is received from another terminal device 2 (step 472: Y), the search result included in the SEARCH_CLIENT_ACK command is displayed (step 473).
[0156]
When a SEARCH_CLIENT command is received from another terminal device 2 (step 474: Y), search terminal information (keyword) included in the SEARCH_CLIENT command is acquired (step 475), and it is searched whether information including the keyword is stored. (Step 475). As a result, if there is corresponding information, a SEARCH_CLIENT_ACK command is generated and transmitted to the originating terminal device 2 of the SEARCH_CLIENT command (step 477). On the other hand, if there is no corresponding information, if there is a transfer destination of the broadcast data (step 478: Y), a SEARCH_CLIENT command is transmitted to the transfer destination terminal device 2 (step 479).
[0157]
Although the above embodiment has been described by taking as an example a so-called PtoP JXTA network in which a terminal device serving as a communication partner is searched between terminal devices, the present invention manages a plurality of terminal devices 2 connected to the packet network 1. The present invention can also be applied to a conventional client-server network in which a server device that searches for a terminal device that is a communication partner is searched. In this case, for example, the detailed information request processing when a call request is received is relayed through the server device.
[0158]
【The invention's effect】
As described above, according to the present invention, when a peer-to-peer platform is applied to a real-time call request, a receiving side can acquire information on a calling side.
[Brief description of the drawings]
FIG. 1 is a diagram showing a network configuration example of a distributed communication system to which the present invention is applied.
FIG. 2 is a diagram illustrating an internal configuration example of a terminal device 2 and a gateway 5;
FIG. 3 is a sequence diagram showing an example of a processing flow of the present invention.
FIG. 4 is a sequence diagram showing an example of a processing flow of the present invention.
FIG. 5 is a diagram illustrating an example of a buddy list.
FIG. 6 is a diagram illustrating a format example of a CALL command, a CALL_OK command, and a CALL_BYE command.
FIG. 7 is a diagram illustrating a format example of a REQUIRE_INFO command and a REQUIRE_INFO_ACK command.
FIG. 8 is a diagram illustrating a format example of a PUBLIC command, a PUBLIC_CLOSE command, a SEARCH_PUBLIC_INFO command, and a SEARCH_PUBLIC_INFO_ACK command.
FIG. 9 is a diagram illustrating a format example of a SEARCH_CLIENT command and a SEARCH_CLIENT_ACK command.
FIG. 10 is a diagram illustrating an example of a data format.
FIG. 11 is a sequence diagram showing another example of the processing flow of the present invention.
FIG. 12 is a sequence diagram showing another example of the processing flow of the present invention.
FIG. 13 is a diagram illustrating an example of a main screen.
FIG. 14 is a diagram illustrating an example of a “public service setting” screen.
FIG. 15 is a diagram illustrating an example of a “setting” screen example;
FIG. 16 is a diagram illustrating an example of a “call” screen example;
FIG. 17 is a diagram illustrating an example of an incoming call screen when a CALL command is received.
FIG. 18 is a diagram showing an example of a “call: detailed information request” screen example;
FIG. 19 is a diagram illustrating an example of a “call: detailed information request response” screen, a “calling” screen, and a “call: non-response” screen.
FIG. 20 is a diagram illustrating an example of a “call: Message” screen.
FIG. 21 is a diagram illustrating an example of a “search” screen.
FIG. 22 is a diagram illustrating an example of a screen when a command related to a search request is received.
FIG. 23 is a diagram showing an example of a user event processing sequence for the main screen.
FIG. 24 is a diagram showing an example of a user event processing sequence for a “setting” screen.
FIG. 25 is a diagram showing an example of a processing sequence when a “public service” menu screen is selected.
FIG. 26 is a diagram illustrating a sequence example of call processing.
FIG. 27 is a diagram illustrating a sequence example of a call transmission process.
FIG. 28 is a diagram illustrating a sequence example of incoming call processing.
FIG. 29 is a diagram illustrating a sequence example of Message processing.
FIG. 30 is a diagram illustrating a sequence example of terminal search processing.
[Explanation of symbols]
1 ... Packet network
2 ... Terminal device
3 ... Telephone
4 ... Radio base station
5 ... Gateway
6. Public telephone network
10 ... Memory
12 ... Storage device
13 ... Input device
14 ... Output device
15 ... Packet network interface
16 ... A / D converter
18 ... Voice data packetization processing unit
19 ... Network packetization processing unit
20 ... Event analysis processing section
21 ... Command packetization processing unit
22: Data packetization processing unit
23 ... Network packet decomposition processing unit
24 ... Data distribution processing unit processing unit
25 ... Output data queue
26: Audio data header removal processing unit
27. Mixing processing unit
29 ... D / A converter
30 ... Command analysis processing unit
31 ... Data analysis processing unit
32. Output data generation processing unit
35 ... User interface section

Claims (10)

ピアツーピア(Peer to Peer)の通話が可能な複数の端末装置を備えて構成される分散型コミュニケーションシステムであって、
通信要求を受け付けるための情報をネットワーク上に公開する公開手段と、
他の端末装置から通信要求を受け付けた場合であって、その端末装置に関する情報を保有していない場合には、通話の開始に先立ち、その端末装置に対して、その端末装置に関する情報の要求を行なう情報要求手段とを備える着信端末装置と、
ネットワーク上に公開された通信要求を受け付けるための情報に基づいて、他の端末装置に対して通信要求を行なう通信要求手段と、
通信要求を行なった他の端末から自端末装置に関する情報の要求を受け付けた場合に、要求に係る情報を送信する情報要求応答手段とを備える発信端末装置とを有することを特徴とする分散型コミュニケーションシステム。
A distributed communication system comprising a plurality of terminal devices capable of peer-to-peer calls,
A means for publishing information for accepting communication requests on the network;
When a communication request is received from another terminal device and information regarding the terminal device is not held, a request for information regarding the terminal device is made to the terminal device prior to the start of the call. A receiving terminal device comprising information requesting means to perform;
Communication request means for making a communication request to another terminal device based on information for accepting a communication request published on the network;
A distributed communication system comprising: an information request response means for transmitting information related to a request when a request for information on the terminal device is received from another terminal that has made a communication request; system.
ネットワークを介して他の端末装置と通話のための通信を行なう端末装置であって、
通信要求を受け付けるための情報をネットワーク上に公開する公開手段と、
他の端末装置から通信要求を受け付けた場合であって、その端末装置に関する情報を保有していない場合には、通話の開始に先立ち、その端末装置に対して、その端末装置に関する情報の要求を行なう情報要求手段とを備えることを特徴とする端末装置。
A terminal device that performs communication for communication with other terminal devices via a network,
A means for publishing information for accepting communication requests on the network;
When a communication request is received from another terminal device and information regarding the terminal device is not held, a request for information regarding the terminal device is made to the terminal device prior to the start of the call. An information requesting means for performing the terminal device.
請求項2に記載の端末装置であって、
前記情報要求手段は、
他の端末装置から通信要求を受け付けた場合であって、操作者からの指示を受け付けた場合にも、その端末装置に対して、その端末装置に関する情報の要求を行なうことを特徴とする端末装置。
The terminal device according to claim 2,
The information request means includes
A terminal device characterized in that when a communication request is received from another terminal device and an instruction from an operator is received, a request for information on the terminal device is made to the terminal device. .
請求項2または3に記載の端末装置であって、
前記情報要求手段は、他の端末装置に対して要求すべきその端末装置に関する情報を操作者からの指示に基づいて決定することを特徴とする端末装置。
The terminal device according to claim 2 or 3,
The terminal device according to claim 1, wherein the information requesting unit determines information on the terminal device to be requested from another terminal device based on an instruction from an operator.
請求項2〜4のいずれか一項に記載の端末装置であって、
他の端末装置と通話のための通信を行なった場合には、その端末装置に関する情報を記憶する記憶手段をさらに備えることを特徴とする端末装置。
The terminal device according to any one of claims 2 to 4,
A terminal device further comprising storage means for storing information related to the terminal device when communication for communication with another terminal device is performed.
請求項5に記載の端末装置であって、
前記情報要求手段は、前記記憶装置に通信要求に係る他の端末装置に関する情報を記憶していない場合に、その端末装置に関する情報を保有していないものと判断することを特徴とする端末装置。
The terminal device according to claim 5,
The information requesting means determines that the information requesting means does not hold information related to the terminal device when the information related to the other terminal device related to the communication request is not stored in the storage device.
請求項2〜6のいずれか一項に記載の端末装置であって、
前記情報要求手段が要求した他の端末装置に関する情報を受信した場合に、その情報を表示する要求情報表示手段をさらに備えることを特徴とする端末装置。
The terminal device according to any one of claims 2 to 6,
A terminal device further comprising request information display means for displaying information on another terminal device requested by the information request means when the information is received.
請求項7に記載の端末装置であって、
前記要求情報表示手段は、他の端末装置に関する情報の表示に際し、通話の承諾、通話の拒否のいずれかの選択を操作者に促すことを特徴とする端末装置。
The terminal device according to claim 7,
The request information display means prompts an operator to select either acceptance of a call or rejection of a call when displaying information related to another terminal device.
請求項2〜8のいずれか一項に記載の端末装置であって、
ネットワーク上に公開された通信要求を受け付けるための情報に基づいて、他の端末装置に対して通信要求を行なう通信要求手段と、
通信要求を行なった他の端末から自端末装置に関する情報の要求を受け付けた場合に、要求に係る情報を送信する情報要求応答手段をさらに備えることを特徴とする端末装置。
The terminal device according to any one of claims 2 to 8,
Communication request means for making a communication request to another terminal device based on information for accepting a communication request published on the network;
A terminal device characterized by further comprising an information request response means for transmitting information related to a request when a request for information related to the terminal device is received from another terminal that has made a communication request.
請求項9に記載の端末装置であって、
前記情報要求応答手段は、操作者からの指示に基づいて要求に係る情報を送信することを特徴とする端末装置。
The terminal device according to claim 9,
The information request response means transmits information related to a request based on an instruction from an operator.
JP2003189425A 2003-07-01 2003-07-01 Distributed communication system Pending JP2005026952A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003189425A JP2005026952A (en) 2003-07-01 2003-07-01 Distributed communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003189425A JP2005026952A (en) 2003-07-01 2003-07-01 Distributed communication system

Publications (1)

Publication Number Publication Date
JP2005026952A true JP2005026952A (en) 2005-01-27

Family

ID=34187641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003189425A Pending JP2005026952A (en) 2003-07-01 2003-07-01 Distributed communication system

Country Status (1)

Country Link
JP (1) JP2005026952A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007267125A (en) * 2006-03-29 2007-10-11 Kyocera Corp Portable communication terminal equipment, control method thereof, and multi-spot communication system
JP2016524350A (en) * 2013-03-15 2016-08-12 マイクロソフト テクノロジー ライセンシング,エルエルシー Peer-to-peer device mobile communication
JP2018510394A (en) * 2015-12-28 2018-04-12 小米科技有限責任公司Xiaomi Inc. Method and apparatus for acquiring user information, terminal apparatus and server

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007267125A (en) * 2006-03-29 2007-10-11 Kyocera Corp Portable communication terminal equipment, control method thereof, and multi-spot communication system
JP2016524350A (en) * 2013-03-15 2016-08-12 マイクロソフト テクノロジー ライセンシング,エルエルシー Peer-to-peer device mobile communication
JP2018510394A (en) * 2015-12-28 2018-04-12 小米科技有限責任公司Xiaomi Inc. Method and apparatus for acquiring user information, terminal apparatus and server

Similar Documents

Publication Publication Date Title
JP5079695B2 (en) Contextual phone augmentation
JP5735016B2 (en) System and method for peer-to-peer hybrid communication
US8451829B2 (en) Routing a VoIP call with contextual information
US20090136016A1 (en) Transferring a communication event
JP5623208B2 (en) Integrate next-generation networks between different domains (enterprises and service providers) using application sequencing and IMS peering
US20070058637A1 (en) Method for multi-channel multi-device call transfer
JP5072954B2 (en) Data mining for services
US8379544B2 (en) Communications
US20070253407A1 (en) Enhanced VoIP services
JP2005318503A (en) Presence server, session control server, packet relay system, server, and system
JP2010512689A (en) Calling a mobile device to a computing device
JP4713463B2 (en) Method for establishing communication between selected user terminals using a dedicated communication device
JP2009518879A (en) Communication system and method
US8228824B2 (en) VoIP contextual information processing
WO2009017181A1 (en) Temporary connection number management system, terminal, temporary connection number management method, and temporary connection number management program
US20080117897A1 (en) External data access information in a voip conversation
JP2009176289A (en) Service providing system, service providing method, and service providing program
US7983247B2 (en) Metadata collection
US20070288600A1 (en) Telecommunications system and method of initiating file transfers from voice endpoints
JP4800332B2 (en) Service providing system, service providing method, and service providing program
JP2005026952A (en) Distributed communication system
JP5193182B2 (en) VoIP client information
KR101017790B1 (en) Voice packet service method for using messenger in mobile terminal
JP2011008695A (en) Service providing system and method
JP5233714B2 (en) Communication media conversion system, method and program