JP2004172771A - Communication control method and communication control program - Google Patents

Communication control method and communication control program Download PDF

Info

Publication number
JP2004172771A
JP2004172771A JP2002334191A JP2002334191A JP2004172771A JP 2004172771 A JP2004172771 A JP 2004172771A JP 2002334191 A JP2002334191 A JP 2002334191A JP 2002334191 A JP2002334191 A JP 2002334191A JP 2004172771 A JP2004172771 A JP 2004172771A
Authority
JP
Japan
Prior art keywords
terminal
call
communication
user
address
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
JP2002334191A
Other languages
Japanese (ja)
Inventor
Koichi Kato
浩一 加藤
Tetsuei Akaishi
哲英 赤石
Tomoya Sonoda
智也 園田
Yusuke Shibata
祐助 柴田
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.)
MEDIASELECT Inc
Original Assignee
MEDIASELECT Inc
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 MEDIASELECT Inc filed Critical MEDIASELECT Inc
Priority to JP2002334191A priority Critical patent/JP2004172771A/en
Publication of JP2004172771A publication Critical patent/JP2004172771A/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 solve the problem wherein an internet telephone system is prevented from being widely used, because the restrictions on the execution of the internet telephone in a terminal, to which only the private IP addresses are assigned is large, in the internet telephone executed between terminals, such as PCs. <P>SOLUTION: In a communication control method for controlling communication of calling information between first and second terminals which are capable of communicating with each other via the Internet, the first terminal generates first calling information, using information inputted from the first user of the first terminal, and the second terminal generates second calling information using information inputted from the second user of the second terminal. When a global IP address is assigned to only the first terminal, the second terminal uploads the second calling information for the first terminal, and downloads the first calling information from the first terminal. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、インターネットに接続可能な端末間において、インターネットを介したリアルタイム情報通信によりインターネット電話通信を実現するための通信制御方法及び通信制御プログラムに関する。より具体的には、特殊なハードウエア機器を必要とせずに、グローバルIPアドレス間だけでなく、プライベートIPアドレスにまたがって通信可能であり、また利用者の所在地(利用中の端末)に対して電話をかけることができるインターネット電話システムとその情報処理に関するものである。
【0002】
【従来の技術】
インターネット、LANなどで採用される通信プロトコルであるTCP/IPでは、端末等に与えられるネットワーク上のアドレスとして、グローバルIPアドレスとプライベートIPアドレスという2種類が存在する。
【0003】
グローバルIPアドレスとは、インターネット上で直接に利用して端末をインターネット上で特定するためのアドレスであって、グローバルIPアドレスが割り当てられた端末はインターネットに接続して、同様にインターネットに接続されている端末、ネットワークにアクセスできる一方、他のネットワークや端末からのアクセスを受付けることができる。
【0004】
プライベートIPアドレスとは、インターネット上で直接利用されるIPアドレスではなく、組織内LAN等においてネットワーク管理者によってLANに接続する端末に任意に割り当てられるローカルなアドレスのことを言う。従って、プライベートIPアドレスは、あるLANにおいては特定の端末を一意に決定できるが、インターネットに接続する複数のLANにおいて重複して使用される性質があり、端末を一意に特定できないので、インターネット上では利用できない。
【0005】
インターネット電話(本出願において「インターネット電話」とは、ネットワーク接続環境下のパーソナルコンピュータ(PC)や携帯用情報端末(PDA)等の通信端末を利用してインターネットを介してリアルタイムの音声・画像通信(通話)を行う通信の形態を意味する。)では、通話情報の双方向通信を行うために一般に通信を行う各端末がグローバルIPアドレスを有していることを必要とする。もし、通信を行おうとする一方の端末がプライベートIPアドレスしか有していない場合には、他方のグローバルIPアドレスを有する端末は、通信相手を特定できないために、通話情報を受け取ることができないことになる。
【0006】
【発明が解決しようとする課題】
図12は、プライベートIPアドレスが割り当てられている端末1302と、グローバルIPアドレスが割り当てられている端末1310との間でインターネット電話を利用した音声及び画像の情報通信を行う場合を説明するための図面である。
【0007】
図12において、端末1202はグローバルIPアドレスを有する端末1210に対してアクセスすることができる。その際、端末1202は、NAT(Network Address Translation、或いは、NAPT:Network Address Port Translation)サーバー1204を介して、自己のプライベートIPアドレスをグローバルIPアドレスへ変換する。このアドレス変換機能は、割当て可能なグローバルIPアドレスを動的にプライベートIPアドレスに割り当てるものであるので、端末1210は、端末1202からアクセスを受けた際にグローバルIPアドレスが通知されても、そのアドレスを利用して端末1202へアクセスすることができない。つまり、ルーター1203に接続される図12には不図示の端末が複数あり、そのいずれの端末にもグローバルIPアドレスが動的に割り当てられる可能性があり、端末1202を特定できないためである。
【0008】
また、NATはアドレス変換の際にポート番号まで置換するので、置換されたポート番号とグローバルIPアドレスを特定してアクセスしても、外部からのアクセスに対しては、LAN1201に設定されたファイアウォールが機能して接続が拒否されるという問題がある。
【0009】
このように、一般的なインターネット接続環境においては、グローバルIPアドレスが静的に割り当てられていない端末を利用したインターネット電話による通信を行うことができない。
【0010】
それでも通信を行おうとする場合は、ルーターを特別に設定したり、専用のルーター機能を持つ中継器を設置したりすることもできるが、その場合にはIPアドレスもしくはルーターの設定に関する知識とデータ入力が利用者に求められる。
【0011】
また、専用ルーターのようなインターネット電話のための専用のハードウエア機器を用いる場合には、データの送受信のために専用のポートを使用するために、組織内LANに設置されたファイアウォールを越えることができないという問題がある。
【0012】
さらに、グローバルIPアドレスを特定のクライアントマシンに静的に割り当てることもできるが、通常は割当て可能なグローバルIPアドレスの数には限界があり、組織内LANに接続された全てのクライアントマシンのうちごく一部のマシンのみがインターネット電話が利用できるだけとなってインターネット電話を導入する意義がなくなってしまうだけでなく、他のクライアントマシンのインターネット接続状況にも大きな影響を与えることとなる。
【0013】
また、従来は、いわゆる電話番号として、端末のIPアドレスが使用されるため、通話をしようとする相手方の最新のIPアドレスを通話前に把握していなければならず、固定的なグローバルIPアドレスを持たない端末では、事実上相手先を特定できないことになる。また、電話番号代わりにIPアドレスを使用する場合は、インターネットの世界で一般ユーザには馴染みのないものでありインターネット電話の普及の妨げとなっている。
【0014】
この問題を解決するために、インターネット上にゲートキーパー(GK)と呼ばれる通話管理サーバーを設置し、通話を行おうとする者に対しては事前登録を求めている。この方式ではロケーションサーバーとの組み合わせで、相手のアドレスを特定することができるが、別個独立のシステム間ではGKの持つID情報を交換する仕組みがなく、広範にエンド・ツー・エンド(end to end)のコミュニケーションを行うことができない。また、このGKの機能は、利用者側に設置できるようには設計されておらず、利用者側での安定した運用が妨げられている。さらに、GKを介する方式でも、IPアドレスの代わりに一般ユーザには馴染みのないGKが指定するシステム固有のアドレスを使用しなければならないため、インターネット電話の普及の妨げとなっている。
【0015】
さらに、IPアドレスを電話番号の代わりに使用してPC間の通話を確立させる場合には、当該IPアドレスが割り当てられたクライアントマシンを目的とする相手が利用しているかどうかの在席情報を管理する必要がある。この在席情報は、エンド・ツー・エンドの通信では非常に重要であり、在席情報が管理されない限り、通話要求はユーザの現在位置に関係なくクライアント端末に対して行われてしまい、プライバシーを保護することができないという問題が発生する。
【0016】
【課題を解決するための手段】
上記課題を解決するための本発明は、インターネット接続環境を有するクライアントマシンであれば、割り当てられるIPアドレスが、グローバルであろうがプライベートであろうが、一律にインターネット電話により通話が可能であり、かつ、特別なハードウェアを新たに設置したり、煩雑な環境設定を行うことなく、現状のインターネット接続環境においてインターネット電話による通話を可能とすることを目的として、以下の手段を提供する。
【0017】
インターネットを介して通信可能な第1の端末と第2の端末とを含む複数の端末の間における通話情報の通信を制御するための通信制御方法において、前記第1の端末は、前記第1の端末の第1のユーザーから入力される情報を利用して第1の通話情報を生成し、前記第2の端末は、前記第2の端末の第2のユーザーから入力される情報を利用して第2の通話情報を生成し、前記第1の端末のみにグローバルIPアドレスが割り当てられている場合に、前記第2の端末は、前記第1の端末に対して前記第2の通話情報をアップロードし、前記第1の端末から前記第1の通話情報をダウンロードすることを特徴とする。
【0018】
また、前記第1の端末及び前記第2の端末にプライベートIPアドレスのみが割り当てられている場合には、前記第1の端末及び前記第2の端末は、インターネット上のサーバーに対して前記第1の通話情報及び第2の通話情報をそれぞれアップロードし、前記サーバー上にアップロードされた前記第2の通話情報及び第1の通話情報をそれぞれダウンロードすることを更に特徴とする。
【0019】
さらに、前記第1の端末及び前記第2の端末にグローバルIPアドレスが割り当てられている場合には、前記第1の端末が前記第2の通話情報をダウンロードし、前記第2の端末が前記第1の通話情報をダウンロードすることを特徴とする。
【0020】
さらに、上記課題を解決するための本発明の別の側面は、インターネットを介して通信可能な第1の端末と第2の端末との間における通話情報の通信を仲介するための通信制御方法において、前記第1の端末から、前記第1の端末において生成された第1の通話情報のアップロードを受付け、前記第2の端末から、前記第2の端末において生成された第2の通信情報のアップロードを受付け、前記第1の端末から、前記アップロードされた前記第2の通話情報のダウンロードを受付け、前記第2の端末から、前記アップロードされた前記第1の通話情報のダウンロードを受付けることを特徴とする。
【0021】
上記課題を解決するための本発明の更に別の側面では、インターネットを介して通信可能な第1の端末と第2の端末とを含む複数の端末の間において、前記第1の端末から前記第2の端末に対して通話情報の通信を開始しようとする場合の通信を制御通信制御方法において、前記第1の端末において、前記第1の端末の第1のユーザーから通信開始要求を受付け、前記通信開始要求の受付けに応じて、前記第2の端末の第2のユーザーの利用する第2のメールアドレス宛てに通信開始要求を電子メールにて送信し、前記第2の端末において、前記通信開始要求を受信し、前記通信開始要求の受信を前記第2の端末の第2のユーザーへ通知し、前記第2のユーザーからの通信開始の許可を受付け、前記通信開始の許可の受付けに応じて通信許可通知を前記第1の端末へ送信することを特徴とする。
【0022】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【0023】
図1は、本発明の実施形態に対応したインターネット電話システムの構成を示す図である。まず、図1において101及び102は、本発明のインターネット電話システムを利用して音声情報及び画像情報を含む通話データ(詳細については後述する。)の通信を行うユーザーが利用する端末であり、グローバルIPアドレスかプライベートIPアドレスが静的に割り当てられている。但し、プライベートIPアドレスについては、不図示のDHCP(Dynamic Host Configuration Protocol:動的ホスト割当てプロトコル)サーバーを利用して動的に割り当てられてもよい。これ以降の説明においては、ユーザー端末101を利用するユーザーをユーザー1、ユーザー端末102を利用するユーザーをユーザー2と呼ぶ。
【0024】
図1では、ユーザー端末101とユーザー端末102との間でユーザー1とユーザー2とが通話する場合を記載しているが、これはあくまで例示であって、本発明におけるインターネット電話では2者間通話に限られず、ユーザー端末105からユーザー端末Nまでの3以上のユーザーが同時に通話することが可能である。
【0025】
103は、ユーザー端末101又は102のいずれかが静的にグローバルIPアドレスを割り当てられない端末である場合に、音声通信の仲介を行うためのフォンゲート(PhoneGate)サーバーである。104は、インターネットであり、ユーザー端末101、102及びPhoneGateサーバー103がそれぞれ接続されている。図1では、接続を簡略化して記載しているが、ユーザー端末101及び102は、組織内LANに接続されたクライアント端末等である場合に、図10に記載したようにLAN上のNATサーバーやルーター、DHCPサーバー等を介してインターネットに接続していることは言うまでもない。
【0026】
次に、図2aを参照してユーザー端末101及び102の構成の概略を説明する。図2aにおいて、CPU201は、ROM202、RAM203、または、内部記憶装置704に記憶されたプログラムに従って、ユーザー端末101又は102全体の動作を制御するものである。ROM202は、CPU201の制御プログラム等を格納している。RAM203は、一時的にプログラムなどを記憶し、ユーザー端末101又は102の処理を高速に動作させるためのものである。
【0027】
内部記憶装置212は、アイネットフォン(InetPhone)プログラム213、アドレス帳データ214、及びオペレーティング・システム(OS)215の他、各種アプリケーションプログラムや、ウェブブラウザソフト、表示用オブジェクト等が更に格納されている。
【0028】
ユーザーI/F(インタフェース)204は、キーボードやマウス等の入力用インターフェースである。表示部211は、InetPhoneプログラムにより生成されるGUI(グラフィカル・ユーザー・インタフェース)画面やブラウザ画面など各種表示を行うものである。通信部205は、インターネット104に接続して相互通信を行うためのものである。
【0029】
206はサウンド処理部であって、マイク208で収録される音声をデジタルデータへ変換してユーザー端末内に取り込み可能としたり、デジタルデータをアナログ信号へ変換してスピーカ207を使用して音情報を再生する等の機能を果たすものである。
【0030】
画像処理部209は、画像入力部210で取得されるアナログ画像信号をデジタル画像データに変換する処理を実行する。画像入力部210は、例えばCCDやCMOS等の画像撮像素子を利用したイメージセンサで構成される。
【0031】
次に、InetPhoneプログラム213の詳細について図2bを参照して説明する。
【0032】
まず、図2bにおいて、InetPhoneプログラムは、通話データ処理モジュール221、呼出しモジュール222、待受けモジュール223、接続モジュール224、環境設定モジュール225を有している。
【0033】
通話データ処理モジュールは221、ユーザー端末101及び102の間で送受信される通話データを処理するためのプログラムである。具体的には、マイク208からサウンド処理部206を介して取得された音声情報及び、画像入力部210から画像処理部209を介して取得された画像情報を、HTMLファイルに添付可能なデータストリームに変換して、HTMLファイルに添付して通話データを生成(より具体的には、画像情報及び音声情報のデータストリームを圧縮し、生成されたバイトデータをHTTPエンコードされたテキストファイルの形式に変換)したり、受信したHTMLファイル形式の通話データから音声及び画像データストリームを抽出して、音声はサウンド処理部206を介してスピーカ207により再生可能な情報に、画像は表示部において表示可能な情報に処理する。
【0034】
なお、通話データ処理モジュール221において生成されるデータストリームのビットレートは、後述する環境設定モジュール225において設定された通信速度(通信帯域)に応じて変更される。例えば、56kbpsのモデムを使った端末と通信する場合には、音声データストリームのビットレートを14.4kbpsに落とす一方で、ADSLやケーブルインターネット回線を利用した通信により例えば12Mbpsの通信速度が確保できるような場合にはレートを132kbpsまで上げても良い。
【0035】
呼出しモジュール222は、ユーザー端末101がユーザー端末102へ電話を掛けようとする場合に、ユーザー端末102のユーザー2を呼び出す処理を実行するためのプログラムであり、ユーザー2が使用するメールアドレス宛てにメールを送信する。そこで以下の本実施形態では、ユーザー1を発信者として、ユーザー2を着信者として、ユーザー端末101を発信者側端末として、更にユーザー端末102を着信者側端末として説明する。
【0036】
待受けモジュール223とは、InetPhoneプログラムがインストールされた全ての端末において常駐するプログラムであり、発信側から送信される通話要求メールを受付けるためのプログラムである。具体的に本実施形態では、ユーザー端末102においてユーザー端末101からメールにて送信される通話要求を受付けるのに、ポート番号110/143を常に監視している。また、待受けモジュール223は、ユーザー端末102のユーザー2がユーザー端末101のユーザー1からの着信を拒否する場合や、通話要求を受付けた時点でユーザー2が既に第三者と通話中である場合に、「着信拒否」や「話し中」などのステータスをメールにてユーザー1のメールアドレス宛てに返信する機能も果たす。
【0037】
接続モジュール224は、ユーザー端末101とユーザー端末102との間の通話データを送受信するために、互いの端末に対して音声及び画像データが添付されたHTMLファイルをダウンロード/アップロードするためのプログラムである。
【0038】
環境設定モジュール225は、通話を行う端末間における種々の通話条件を設定するとともに、設定情報を通話相手方の端末やPhonegateサーバー103へ通知するためのプログラムである。環境設定モジュール225では、通話を行う2つの端末間における通信速度、及び、各端末のモデムの性能などに基づいて通信速度などの設定の他、音声・画像データのフォーマット設定、音声・画像処理デバイスを複数積んでいる端末における音声・画像の入出力デバイスの設定、ポートの設定、着信音の設定などを行う。この設定情報はHTMLファイルにて相手方端末もしくはPhonegateサーバー103へ送信される。
【0039】
例えば、環境設定モジュール225では、「受信した音声データ量」 < 「通話時間に相当するデータ量」が成立するような場合、即ち、音声データフォーマットが大きいためにデータの受信速度が通話速度に追いつかないような場合に、音声データのフォーマットの設定を低音質のものに変更する。その一方で、「受信した音声データ量」>> 「通話時間に相当するデータ量」が成立するような場合、即ち、通信速度が充分に確保されているために、通話速度に対してデータ受信速度が充分に高速な場合は、音声データのフォーマットの設定を高音質のものに変更する。環境設定モジュール225におけるフォーマット設定処理の詳細は後述する。
【0040】
次に、図3aを参照してPhoneGateサーバー103の構成の概略を説明する。PhoneGateサーバー103は、PhoneGateプログラム313がインストールされたマシンであればよいので、ユーザー端末101にPhoneGateプログラム313をインストールすることによって、PhoneGateサーバー103としても機能させることができる。また、PhoneGateサーバーを構成する要素のうち、301から311は図2aに示すユーザー端末101及び102の201から211までの構成要素と同様の機能を達成するので説明は省略する。
【0041】
内部記憶装置312は、PhoneGateプログラム313、アドレス帳データ314、及びオペレーティング・システム(OS)315の他、各種アプリケーションプログラムや、ウェブブラウザソフト、表示用オブジェクト等が更に格納されている。
【0042】
PhoneGateプログラム313の詳細については、図3bを参照して説明する。図3bにおいて、PhoneGateプログラム313は、音声送受信モジュール321、データ中継モジュール322、メタ情報送受信モジュール323、セッション管理モジュール324によって構成される。
【0043】
通話データ送受信モジュール321は、ユーザー端末101及び102が共にプライベートIPアドレスを割り当てられる端末である場合に、それぞれの端末からの通話データのアップロード及び、アップロードされた通話データのユーザー端末101及び102によるダウンロードを制御するためのプログラムである。
【0044】
データ中継モジュール322は、通話データを中継するためのプログラムである。より具体的には例えば、ユーザー端末101からアップロードされた通話データを、ユーザー端末102がダウンロード可能なようにデータを中継するためのプログラムである。
【0045】
メタ情報送受信モジュール323とは、PhoneGateサーバー103とユーザー端末101及び102との間の通信状況(帯域状態又は通信速度)に関する情報や、各端末において環境設定モジュール225において設定される設定情報をユーザー端末101及び102との間で送受信するためのプログラムである。
【0046】
また、メタ情報送受信モジュール323は、ユーザー端末101又102のいずれかがグローバルIPアドレスを有する場合に、PhoneGateサーバー103のグローバルIPアドレスを使わずに、いずれかのユーザー端末のグローバルIPアドレスを使った通話に切替えるための切替情報を通信するためのプログラムでもある。
【0047】
セッション管理モジュール324とは、ユーザー端末101及び102間の通話のための通信セッションを管理するためのプログラムである。具体的には、プライベートIPアドレスを有するユーザー端末からの通話開始のための通話要求を監視したり、通話終了を監視したりする。
【0048】
次に、図4を参照して、本発明のインターネット電話システムにおける通話形態を説明する。図4において「GA」とはグローバルIPアドレスの略で、「PA」とはプライベートIPアドレスの略である。以下、他の図面においても同様である。
【0049】
まず、(a)は、グローバルIPアドレスを有する端末401とプライベートIPアドレスを有する端末402との通話における処理の概要を説明するための図である。(a)では、端末402はプライベートIPアドレスしか静的に与えられていないため、端末401は端末402を特定することができず、端末401から端末402へ通話データをダウンロードすることができない。しかし、端末402から端末401へのアップロードは、端末402がグローバルIPアドレスを有するために可能である。そこで、端末402は、端末401に対して自己の通話データをアップロードすると共に、端末401におけるユーザーの通話データを端末402側にダウンロードする。これにより、端末401及び端末402は共に、相手方の通話データを取得することができ、通話を行うことが可能となる。
【0050】
次に、(b)は、端末403及び404が共にグローバルIPアドレスを有する場合を示しており、この場合は、端末403及び端末404との間で、互いに相手方の通話データをダウンロードし合うことにより、通話データを取得することができる。よって、端末403と端末404との間で通話が成立する。
【0051】
(c)は、端末405及び端末406が共にプライベートIPアドレスのみを有する場合を示している。この場合、各端末は相手方を特定してアクセスすることができないので、PhoneGateサーバー407を介して通話を行う。具体的には、端末405及び406はそれぞれPhoneGateサーバー407に対して、自己の通話データをアップロードする。これにより、PhoneGateサーバー407には、端末405及び406において生成された通話データを取得することができる。そして、これらの通話データが端末405及び406からダウンロードされ、各端末において再生されることにより通話が成立する。このように、PhoneGateサーバー407は、端末405及び406の間に位置して、通話データの仲介を行う。
【0052】
このように本発明では、グローバルIPアドレスを有する端末もしくはサーバーを基準として通話データをダウンロード或いはアップロードすることによって通信が成立する。従って、グローバルIPアドレスを有する端末又はサーバーが存在する限り、2以上のユーザー間で通話を同時に行うことは技術的に全く障害が存在しない。
【0053】
例えば、図4(d)のように、グローバルIPアドレスを有する端末408とプライベートIPアドレスを有する端末409及び端末410との通話では、端末409及び端末410は端末408に対して自己の通話データをそれぞれアップロードすると共に、端末408で生成された通話データ及び他方の端末によりアップロードされた通話データをダウンロードすればよい。このようにすれば、端末408、409、410の各ユーザー間において通話が成立することが分かる。
【0054】
次に、より具体的に、図4に示した通話形態を実現するための本発明における通話処理の詳細を図5から図8に示すフローチャートを参照して説明する。以下では、説明の簡単のために2者間通話の場合を例として採り上げるが、本発明は2者間通話に限定されることなく、より多数のユーザー間での通話を可能とするものである。
【0055】
まず、図5a及び図5bを参照してユーザー1(ユーザー端末101)からユーザー2(ユーザー端末102)へ電話をかける場合について説明する。
【0056】
まず、ユーザー1が電話をかけようとする場合には、ユーザーはInetPhoneプログラムを起動する(ステップS501)。InetPhoneプログラムが起動されると、ユーザー端末101のIPアドレスが確認される。その結果、ユーザー端末101にグローバルIPアドレスが静的に割り当てられている場合には、ステップS503に移行する。一方、プライベートIPアドレスが静的に割り当てられている場合には、ステップS514に移行する。
【0057】
まず、ユーザー端末101にグローバルIPアドレスが割り当てられている場合について以下に説明する。まず、ステップS503では、ユーザー1から着信側メールアドレスの入力を受付けるためのGUIを表示部211に表示して、着信側、即ちユーザー2が使用するメールアドレスの入力を受付ける。
【0058】
このとき、表示部211に表示される画面の一例は、図9に示すとおりである。図9において、901は、通話相手となる相手の名前を入力するための入力欄である。このユーザー名は、InetPhoneプログラムのユーザーが任意に入力することができる。
【0059】
902は、通話相手(本実施形態の説明においてはユーザー2)にメール送信するためのメールアドレスを入力する入力欄である。903は、PhoneGateサーバー103を入力するための入力欄である。ユーザー端末101がプライベートIPアドレスしか持たない場合は、PhoneGateサーバー103を介して通話を行う必要があるので、PhoneGateサーバー103を指定する。もし、ユーザー端末101がグローバルIPアドレスを有する場合には、903は空欄でよいし、ユーザー設定により入力欄903自体を表示部211上に表示しないように設定しても良い。
【0060】
904は、通話を開始しようとする場合に、通話開始要求メールの送信指示を行うための通話開始ボタンである。905は、通話を終了しようとする場合に、通話終了指示を行うための通話終了ボタンである。
【0061】
906は、通話ステータスの表示欄であって、通話中は通信速度を表示することができる。また、通話しようとする相手方が通話中であったり、着信拒否された場合には、「通話中」「着信拒否」などの表示を行いその旨をユーザーに通知する。
【0062】
907は、内部記憶装置212に格納されたアドレス帳データを呼び出すためのボタンであり、入力欄901乃至903への入力を、ユーザーI/Fにおけるキーボードからの入力によらず、ボタン907をクリックしてアドレス帳を呼び出して選択入力することもできる。
【0063】
908は、ユーザー設定を行う場合に、設定画面を呼び出すためのボタンである。ユーザー設定画面では、ユーザー名、メールアドレス、使用するPhoneGateサーバー名等を含むユーザー情報の登録、上記のPhoneGateサーバーの選択欄の非表示設定、画面900の表示モード選択、909に表示される広告の選択、ユーザー端末101の通信速度の設定などの設定を行うことができる。
【0064】
909は、広告表示欄であり、InetPhoneプログラムの起動中は、この欄に広告が表示される。広告データは、InetPhoneプログラムをダウンロードしたサーバーから定期的にダウンロードして更新することができる。
【0065】
ボタン907により呼び出されるアドレス帳データには、図10に示すような各ユーザーの情報が登録されている。まず、1001にはニックネームとして、ユーザー2を含む各ユーザーを特定するための識別子が登録されている。このニックネーム1001はユーザー1が任意に割り付けることもできるし、相手方ユーザーから指定された情報を登録しても良い。登録形態は、例えば『日本大介』や『Tom』或いは『タロー』といったように人名や愛称その他ユーザーを識別できる情報であれば、どのような形態であっても良い。
【0066】
1002には、ニックネーム1001によって識別されるユーザーの有するメールアドレスが登録されている。また、1003にはマシン名が登録されているが、これは、組織内LANにおいてマシン名が付されている場合の当該マシン名である。1004には、相手方ユーザーが使用する端末にグローバルIPアドレスが割り当てられている場合に、そのグローバルIPアドレスが登録される。例えば図10の『日本大介』が使用する端末には、マシン名とグローバルIPアドレスが割り当てられている。
【0067】
1005には、PhoneGateサーバー103の情報が登録される。この情報には、登録ユーザーと通話する際に利用するPhoneGateサーバー103のグローバルIPアドレスと、PhoneGateサーバー103宛のメールアドレスが含まれる。登録対象となるPhoneGateサーバー103は、相手方ユーザーから指定された場合は、指定されたPhoneGateサーバー103を登録し、相手方から特に指定されない場合にはアドレス帳の持ち主であるユーザーが指定するPhoneGateサーバー103を登録すればよい。相手方から特に指定されるのは、『Tom』の場合のように、相手方の同一ドメイン内にPhoneGateサーバーが設置されているような場合が考えられる。
【0068】
1006は通話のために利用するポート番号である。一般的には、HTTP(Hyper Text Transfer Protocol)に割り当てられているポート番号「80」を利用するが、PhoneGateサーバー103において別のポート番号が割り当てられている場合には、割り当てられているポート番号を登録する。図10の場合は、『Tom』について25596が割り当てられている。
【0069】
また、図10においては、1ユーザー1登録情報として登録しているが、インターネットへの接続環境を複数有するユーザーがいる場合には、各接続環境に応じた登録情報を持たせても良い。例えば、職場と自宅の両方においてインターネット接続環境を有するユーザーは、ニックネーム1001やメールアドレス1002は共通であるが、職場にいるのか自宅にいるのかに応じて端末情報が変化する。従って、職場用の端末情報と、自宅用の端末情報とを同一のニックネーム1001、メールアドレス1002について持たせることも可能である。
【0070】
ここで再びステップS503に戻ると、ユーザー1からユーザー2宛のメールアドレスの入力を受付け、通話開始ボタン904によるメール送信指示を受付けると、ステップS504に移行して、通話要求メールの送信処理を行う。ステップS504において送信される通話要求メールの添付データの一例を図11に示す。
【0071】
まず、通話要求メールでは、<request>を記述することにより、送信するメールが通話要求メールであることを明示する。さらに、<s− mail address> <s− name> <s− ip address> <s−phonegate address><s− phonegate port>には、送信者のメールアドレス、ニックネーム、IPアドレス、Phonegateサーバー103のIPアドレス、Phonegateサーバー103から指定されるポート番号が記載される。
【0072】
通話要求メールでは、受信者についてのデータ(<r− mail address> <r− name> <r− ip address> <r−phonegate address> <r− phonegate port>)は記載されていなくても良い。但し、既に通話経験のある着信者に対して通話要求を送る場合には、アドレス帳データ214の登録情報に基づいて情報を添付することができる。
【0073】
また、<sound mode>及び<movie mode>には、ユーザー端末101の環境設定モジュール225による設定内容に応じて、音声及び画像データの帯域、方式に関する情報を記述する。例えば、sound modeとして<1>という設定情報、movie modeとして<3>という設定情報を記述することができる。この設定情報としては、フォーマットが複数存在する場合に、各フォーマットに割り当てられた番号を記載することができる。
【0074】
通話要求メールの送信の後は、着信側であるユーザー2からの通話許可のメールが送信されてきたかどうかを監視する(ステップS505)。もし、ユーザー2から通話許可を受信せず、ステップS506において着信拒否を通知するメールを受けた場合には、処理を終了する。ここでは、メールのSubject部やヘッダー部に例えば「NG」、「REJECT」或いは「BUSY」と記述することにより、着信拒否を通知することができる。また、上記の記述内容を使い分けることにより、着信拒否理由を通知できるようにしても良い。
【0075】
一方、着信側ユーザー2から通話許可通知メールを受信した場合には、メールの添付情報を抽出してユーザー2の利用するユーザー端末102のIPアドレスを確認する(ステップS507)。ユーザー端末102のIPアドレスは通話許可通知に添付されるメッセージから抽出することができる。図11bは、通話許可を通知するメールの一例を示す図である。ここでは、メールのヘッダ部に例えば「OK」、「ACCEPT」などと記述することにより、着信許可を通知することができる。
【0076】
ここで、相手方のユーザー端末102のIPアドレスがグローバルIPアドレスである場合には、ステップS509において通話処理1を実行し、プライベートIPアドレスである場合には、ステップS510において通話処理2を実行する。通話処理1及び通話処理2の詳細は後述する。
【0077】
ユーザー1とユーザー2との間で通話が継続している間は、表示部211に図9の906に示すようなGUIが表示され、各ユーザーは通話状態を把握することができる。ユーザー1が通話を終了しようとする場合には、例えば表示部211に表示された通話終了ボタン905をクリックすることができる。この通話終了ボタン905のクリックをステップS511において受付け、ステップS513おいて通話終了通知を行い、通話を終了する。ステップS513における通話終了通知は、例えば、「end call」文字列をヘッダーに記述したHTMLファイルを相手方に送信することによっても可能である。
【0078】
また、ユーザー1により通話終了ボタン905がクリックされるより前に、ユーザー2側で通話終了ボタン905がクリックされた場合には、ステップS512においてユーザー端末101宛てに通話終了通知が送信されるので、この通話終了通知を受信した場合にも、通話処理を終了する。
【0079】
ユーザー1による通話終了ボタン905のクリックを受付けることもなく、ユーザー端末102からの通話終了通知を受信することもない場合には、さらにステップS509の通話処理1又はステップS510の通話処理2を継続する。
【0080】
ここでステップS502に戻って、ユーザー端末101にプライベートIPアドレスのみが割り当てられている場合について説明する。この場合、ステップS514に移行して、ステップS503と同様に図9に示すような、着信側メールアドレスの入力を受付けるためのGUIを表示部211に表示して、ユーザー1からユーザー2が使用するメールアドレスの入力を受付ける。
【0081】
また、ステップS515において、PhoneGateサーバー103の指定を受付ける。もし、ユーザー2からPhoneGateサーバー103が指定されている場合には、その指定されたPhoneGateサーバー103を選択する。一方、ユーザー2から特にPhoneGateサーバー103が指定されていない場合には、ユーザー1が使用を希望するPhoneGateサーバー103を選択すればよい。また、アドレス帳214にユーザー2が指定するPhoneGateサーバー103が登録されていたり、ユーザー1がデフォルトで利用するPhoneGateサーバー103が指定されていれば、ステップS515におけるユーザー1による指定ステップをスキップしても良い。
【0082】
ステップS514及びステップS515においてメールアドレスの指定を受付け、発信指示を受付けると、ステップS516において、着信側であるユーザー2に対し通話要求のメールを送信する。また、PhoneGateサーバー103宛てに通話要求を通知する。Phonegateサーバー103はグローバルIPアドレスを有しているので、ユーザー端末101とPhonegateサーバー103との間でTCP/IPセッションを確立することが可能である。よって、Phonegateサーバー103への通信要求の通知は、確立されたTCP/IPセッションにおいてHTMLファイルを送信することにより行う。また、Phonegateサーバー103に与えられたメールアドレスを利用して通知を行えることは言うまでもない。
【0083】
ユーザー2が着信を許可する場合には、着信側のユーザー端末102からPhonegateサーバー103宛てに着信許可通知が送信されるので、ユーザー端末101からPhonegateサーバー103に対し、定期的に通話許可通知のダウンロード要求がなされ、PhoneGateサーバー103から通話許可通知を受信できたかどうかを監視する(ステップS517)。また、この通話許可通知は、Phonegateサーバー103からユーザー1のメールアドレス宛に送信されても良い。
【0084】
もし、PhoneGateサーバー103から通話許可を受信せず、ステップS518において、図11cに示すような着信拒否の通知を受信した場合には、処理を終了する。一方、通話許可通知を受信した場合には、添付されている情報を抽出してユーザー2の利用するユーザー端末102のIPアドレスを確認する(ステップS519)。
【0085】
ここで、ユーザー端末102にグローバルIPアドレスが割り当てられている場合には、ステップS521に移行して通話処理3を実行する。一方、プライベートIPアドレスしか割り当てられていない場合には、ステップS522において通話処理4を実行する。この通話処理3及び通話処理4の詳細は後述する。以降、ステップS523からステップS525の処理は、ステップS511からステップS513における処理と同様である。但し、ステップS525においては、通話終了通知を着信側端末であるユーザー端末102と、PhoneGateサーバー103の両方に送信する。
【0086】
次に、ステップS509、ステップS510、ステップS521及びステップS522における通信処理1から通信処理4までの処理の詳細を説明する。
【0087】
まず、図7aは、ステップS509におけるグローバルIPアドレスを有する端末がグローバルIPアドレスを有する端末と通話する通話処理1の内容を示すフローチャートである。
【0088】
まず、ステップS701において、マイク308からサウンド処理部306を介して音声情報を取得する。また、ステップS702において画像入力部310から画像処理部309を介して画像情報を取得する。ステップS701及びステップS702において取得された音声情報と画像情報は、ステップS703において、それぞれ通話データ処理モジュール221により音声データストリーム、画像データストリームに変換された後、HTMLファイルに添付されて通話データが生成される。このデータストリームへの変換は、環境設定モジュール225において現時点で設定されているデータフォーマットに準じて行われる。
【0089】
ステップS703において生成された通話データは、ユーザー端末内のRAM203に一時記憶される。RAM203の通話データは、通話相手方の端末からダウンロードされる。
【0090】
ステップS704では、上記のステップS701からS703までのステップと同様にして生成され格納された通話データを通話相手方のユーザー端末からダウンロードする。ダウンロードした通話データは、RAM203に一時記憶されステップS705において処理される。
【0091】
このステップS705では、ダウンロードした通話データから添付された音声データ及び画像データを抽出し、通話データ処理モジュール221において処理した後、ステップS706において再生する。
【0092】
つぎに、ステップS510におけるグローバルIPアドレスを有する端末がプライベートIPアドレスを有する端末と通話する通話処理2における処理を図7bのフローチャートを参照して説明する。
【0093】
ステップS711からステップS713までの処理は、図7aのステップS701からステップS703と同様であるから説明を省略する。
【0094】
ステップS714では、プライベートIPアドレスを有する相手方端末から相手方の通話データのアップロードを受付ける。相手方端末から通話データをアップロードさせるのは、グローバルIPアドレス有する端末は、プライベートIPアドレスを有する相手方端末にアクセスして相手方の通話データをダウンロードすることができないためである。
【0095】
このアップロードされたデータは、RAM203内に一時記憶され、ステップS715において添付された音声データ及び画像データが抽出され、通話データ処理モジュール221において処理された後、ステップS716において再生される。
【0096】
つぎに、ステップS521におけるプライベートIPアドレスを有する端末がグローバルIPアドレスを有する端末と通話する際の通話処理3の処理を図7cを参照して説明する。
【0097】
ステップS721からステップS723までにおける処理は、図7aにおけるステップS701からステップS703までと同様の処理であるので、説明を省略する。
【0098】
ステップS724においては、ステップS723において生成された通話データを、相手方の端末に与えられたグローバルIPアドレス宛てにアップロードする。
【0099】
一方、相手方の通話データは、ステップS725において相手方の端末からダウンロードし、ステップS726及びステップS727において処理、再生する。このステップS725からステップS727までの処理は、図7aにおけるステップS704からステップS706に対応するので詳細な説明は省略する。
【0100】
つぎに、ステップS522におけるプライベートIPアドレスを有する端末がプライベートIPアドレスを有する端末と通話する際の通話処理4の処理を図7dを参照して説明する。
【0101】
まず、ステップS731からステップS733における処理は、上記ステップS701からステップS703と同様の処理であるから、詳細な説明は省略する。そこでステップS733とステップS734について以下に説明する。
【0102】
まずステップS734においては、ステップS733において生成された通話データをPhoneGateサーバー103へアップロードする。PhoneGateサーバー103に割り当てられているグローバルIPアドレスは、図5bのステップS517において受信しているので、ここで受信したグローバルIPアドレスを利用してアップロードを行う。
【0103】
次に、ステップS735では、相手方の通話データをPhoneGateサーバー103からダウンロードする。このダウンロードした相手方の通話データはステップS736、ステップS737において処理・再生されるところであるが、この処理もステップS705及びステップS706と同様であるので説明を省略する。
【0104】
つぎに、図6を参照してユーザー2(ユーザー端末102)がユーザー1(ユーザー端末101)から電話を受ける場合について説明する。
【0105】
まず、ステップS601においてユーザー端末101からの通話要求メールの受信を監視する。このメール監視は、ユーザー端末102に常駐するInetPhoneプログラムの待受けモジュール224により、ポート番号110/143の状態を監視することにより行う。
【0106】
ステップS601において通話要求メールを受信した場合には、ステップS602において、発信者(この場合はユーザー1)の情報を特定する。発信者の情報とは、通話要求メールに添付された情報であり、例えば、相手方のIPアドレスや、メールアドレス、ニックネーム、MACアドレスなどが含まれる。
【0107】
次に、ステップS603において、ユーザー2が現在通話中であるか否かを判定する。もしユーザー2が通話中である場合には、ステップS606においてユーザー端末101に対して着信拒否通知のメールを送信する。
【0108】
一方、ユーザー2が通話中でない場合には、着信があった旨の通知を行う。この場合の通知は、例えば図9において、906に「着信あり」の表示を行うことにより可能である。
【0109】
ユーザー2は、ステップS604において表示された着信通知を確認して、発信者(この場合はユーザー1)と通話を行うか否かを判定し、通話を行う場合には、通話開始ボタン904をクリックする。一方、通話を行わない場合には、通話終了ボタン905をクリックする。ユーザーからの入力内容はステップS605において判定され、ユーザー2により通話終了ボタン905がクリックされた場合には、ステップS606に移行して着信拒否通知メールを送信する。
【0110】
一方、ユーザー2により通話開始ボタン904がクリックされた場合には、通話許可と判定され、ステップS607に移行する。ステップS607では、通話相手のユーザー1が使用するユーザー端末101のIPアドレスを確認し、グローバルIPアドレスを有するか否かを判定する。
【0111】
もし、ユーザー端末101がグローバルIPアドレスを静的に割り当てられている場合には、ステップS609に移行して、発信者であるユーザー端末101へ通話許可通知メールを送信する。
【0112】
通話許可通知メールの送信により通話が開始されることになるが、この通話は、ユーザー端末102が静的にグローバルIPアドレスを割り当てられている場合には、ステップS611において通話処理1にて実行される。一方、ユーザー端末102がプライベートIPアドレスしか割り当てられない場合には、ステップS612において通話処理3にて通話が行われる。通話処理1及び通話処理3の処理内容は、上記図7a、図7cと関連して説明した内容と同様である。
【0113】
ユーザー1とユーザー2との間で通話が継続している間は、表示部211に図9に示すようなGUI表示画面において、各ユーザーは通話状態を把握することができる。
【0114】
ユーザー2が通話を終了しようとする場合には、例えば表示部211に表示された通話終了ボタン905をクリックすることができる。この通話終了ボタン905のクリックをステップS614において受付け、ステップS615おいてユーザー端末101に対する通話終了通知を行って通話を終了する。
【0115】
また、ユーザー2により通話終了ボタン905がクリックされるより前に、ユーザー1側で通話終了ボタン905がクリックされた場合には、ステップS614においてユーザー端末102宛てに通話終了通知が送信されるので、この通話終了通知を受信した場合にも、通話処理を終了する。
【0116】
ユーザー1による通話終了ボタン905のクリックを受付けることもなく、ユーザー端末102からの通話終了通知を受信することもない場合には、さらにステップS611の通話処理1又はステップS612の通話処理3を継続する。
【0117】
ここでステップS608に戻って、端末101がグローバルIPアドレスを静的に割り当てられることがない場合には、ステップS616においてPhoneGateサーバー103へ通話許可通知を送信する。Phonegateサーバー103はグローバルIPアドレスを有しているので、ユーザー端末102とPhonegateサーバー103との間でTCP/IPセッションを確立することが可能である。よって、Phonegateサーバー103への通信許可の通知は、確立されたTCP/IPセッションにおいて行う。また、Phonegateサーバー103に与えられたメールアドレスを利用して通知を行えることは言うまでもない。
【0118】
PhoneGateサーバー103は、この通話許可通知は発信者であるユーザー1へ転送され、或いは、ユーザー端末101からダウンロードされ、その後通話が開始される。この通話は、ユーザー端末102がグローバルIPアドレスを静的に割り当てられている場合には、ステップS618において通話処理2にて実行される。一方、ユーザー端末102がプライベートIPアドレスしか有しない場合には、ステップS619において通話処理4にて通話が行われる。通話処理2及び通話処理4の処理内容は、上記図7b、図7dと関連して説明した内容と同様である。
【0119】
通話終了時の処理ステップS620からステップS622の処理は、上記ステップS613からステップS615までの処理と同様であるので、ここでは説明を省略する。但し、ステップS622では、通話終了通知を発信側端末であるユーザー端末101と、PhoneGateサーバー103の両方に送信する。
【0120】
次に、PhoneGateサーバー103における処理を図8a及び図8bを参照して説明する。PhoneGateサーバー103がユーザー1とユーザー2間における通話に関連するのは、ユーザー端末101(発信側端末)がプライベートIPアドレスを有する場合、及びユーザー端末101とユーザー端末102(着信側端末)との両方がプライベートIPアドレスを有する場合である。
【0121】
まず、ステップS801においてPhoneGateサーバー103では、プライベートIPアドレスを有するユーザー端末101からの通話要求通知を監視する。この通話要求通知を受信すると、添付されている情報から発信者の情報を特定する。その後、同様に通話要求メールが送信された着信者側からの通話許可通知を受信したかどうかをステップS803において監視する。
【0122】
もし、着信者側から通話拒否通知を受信した場合には(ステップS804)、ステップS805において当該通話拒否通知を発信者側に転送して処理を終了する。
【0123】
一方、通話許可通知を受信した場合には、ステップS806において通話許可通知に添付された着信者側のIPアドレスを確認し、着信者側のユーザー端末102がグローバルIPアドレスを静的に割り当てられている場合には、ステップS811において、発信者側であるユーザー端末101へ通話許可通知を転送すると共に当該グローバルIPアドレスを通知する。この通知は、ユーザー端末101からのダウンロード要求に対して当該許可通知及びIPアドレスを添付したHTMLファイルを送信することにより行うことができる。通知を行った後、PhoneGateサーバー103における処理を終了する。ユーザー端末102がグローバルIPアドレスを静的に割り当てられている場合はPhoneGateサーバー103を介した通話を行う必要がないからである。
【0124】
一方、ユーザー端末102がプライベートIPアドレスしか有しない場合には、ステップS808において発信者側へ通話許可通知を送信する。この通知は、Phonegateサーバー103とユーザー端末101との間のTCP/IPセッションにおいて、ユーザー端末101が許可通知内容を添付したHTMLファイルをダウンロードすることにより行うことができる。
【0125】
次に、ステップS809においてユーザー1(ユーザー端末101)とユーザー2(ユーザー端末102)間における通話の仲介処理を行う。ここでは、通話データ送受信モジュール321及びデータ中継モジュール322により、ユーザー端末101及び102からアップロードされる各通話データをRAM303に一時的に記憶して、各端末からのダウンロードを受付ける。
【0126】
ステップS809の詳細な処理は図8bに示すようになる。まず、ステップS813において発信者通話データのアップロードを受付ける。次に、ステップS814において、着信者からの通話データのアップロードを受付ける。さらに、ステップS815において着信者通話データのダウンロードを発信者から受付ける。また、ステップS816では、発信者通話データの着信者によるダウンロードを受付ける。
【0127】
ここで図8aに戻ってステップS810では、ユーザー端末101又はユーザー端末102のいずれかから通話終了通知を受信したかどうかを監視し、通話終了通知を受信した場合には、処理を終了する。
【0128】
図8は、ステップS801の接続要求の通知時点においてPhonegateサーバー103に割り当てられているグローバルIPアドレスを発信者側が認識していることを前提に、通話を行う場合を説明している。しかし、もし接続要求の時点でPhonegateサーバー103のIPアドレスが不明であっても、メールアドレスが判明している場合には、上記の説明においてグローバルIPアドレスを利用したTCP/IPセッションによる通信は、電子メールを利用した通信に置き換えることができる。この場合は、通信許可通知をPhonegateサーバー103が受付けた段階で、着信側及び発信者側にPhonegateサーバー103に与えられているグローバルIPアドレスが通知されることになる。
【0129】
つぎに、本実施形態における環境設定モジュール225での、データフォーマット設定処理の詳細を説明する。図13は、本実施形態におけるデータフォーマット設定処理を説明するためのフローチャートである。
【0130】
ステップS1301において、通話時間タイマーTをリセットした後、タイマーTを始動する。このタイマーTは通話が継続している時間をカウントするための計時手段であって、通話そのものが開始された時点でリセットされ始動される他、通話データに添付される音声及び画像データのフォーマットが変更される度に、リセットされ始動される。
【0131】
つぎにステップS1302において、タイマー始動後の所定のタイミングでタイマー値Tmを取得する。ステップS1303では、タイマーTのリセット後、Tmまでに受信した通話データに添付された音声情報及び/又は画像情報のデータ量Drを算出する。このデータ量は、当該添付情報が再生されたか否かに関係なく、タイマーTリセット後に受信し格納された音声情報及び/又は画像情報のデータ量である。
【0132】
ステップS1304では、タイマー値Tmと、受信データのフォーマット情報に従って通話データ量Dpを算出する。例えば、音声フォーマット情報が132kbpsであった場合には、タイマー値Tmが10秒であれば、通話に要したデータ量は、10秒間の通話において10(s)×132(kbps)=1.32(Mビット)となる。
【0133】
ステップS1305では、ステップS1304において算出されたデータ量Dpと、受信したデータ量Drとの関係に基づいて、現在のデータフォーマットFdを変更するかどうかを決定する。具体的にステップS1305では、受信したデータ量Drと通話に要したデータ量Dpとの比:Dr/Dpに基づいて、Dr/Dpが所定の閾値Th1よりも小さいか否かを判定する。
【0134】
もしステップS1305において、Dr/Dp<Th1と判定される場合には、ステップS1306においてデータフォーマットFdを下位に変更することとしている。Dr/Dp<Th1が成立する場合とは、通話速度に対して通信速度が遅いために通話データをリアルタイムで受信できず、通話のための音声及び/画像の再生処理において遅延が生じている場合である。従って、この場合は音声品質を落としてもリアルタイム性を確保するために、データフォーマットを下位のものに変更する必要がある。判定の閾値となるTh1は、例えば0.9等のように設定することが可能である。
【0135】
一方、Dr/DpがTh1以上である場合には、ステップS1307においてDr/DpがTh2より大きいかどうかを判定する。ここで、Dr/Dp>Th2が成立する場合には、ステップS1308に進み、データフォーマットFdを上位のフォーマットに変更する。Dr/Dp>Th2が成立する場合とは、通信速度が充分に確保されている場合であり、この場合は音声品質を上げてもリアルタイム性が確保されるので、データフォーマットを上位のものに変更してより高品位の通話を可能にする。判定の閾値となるTh2は、例えば1.2のように設定することが可能である。
【0136】
ステップS1306又はステップS1308においてデータフォーマットを変更した場合には、ステップS1309において、データフォーマットの変更を相手方の端末もしくは、Phonegateサーバー103へ通知する。フォーマット変更通知は、例えば、<change sound mode>132kbps</change sound mode>や、<change sound mode>3</change sound mode>の記述を埋込んだHTMLファイルを送信することによって行うことができる。
【0137】
ステップS1307においてDr/Dp>Th2が成立しない場合には、データフォーマットの変更を行わず、ステップS1302に戻って処理を継続する。
【0138】
以上においては、データフォーマット設定処理の説明を音声データを例にとって行ったが、図13のフローチャートに記載の処理はデータの種類を問わず適用可能であって、当該データには当然に画像情報データが含まれる。
【0139】
以上のように、本実施形態に対応した本発明によれば、通話開始要求の手段として電子メールを利用し、所定の相手と通話を希望する発信者は、当該相手先に通話要求を添付した電子メールを送信する。送信された電子メールは、当該通話相手がどこに位置し、どの端末を利用しているかとは無関係にメールアドレス宛に送信されるので、通話相手が送信された電子メールを受信できる環境にいれば、通話要求を通知することが可能となる。これにより、IPアドレスによってのみ通話相手を特定し電話をかける従来のインターネット電話のように、当該IPアドレスが割り当てられた端末に通話要求が通知され、結果として第三者に通話要求が送信されてしまい、プライバシーが侵害されるといった問題はなくなる。即ち、本願発明によれば、通話相手が現在利用している端末を特定することなく、その在席情報を極めて容易に管理することが可能となる。
【0140】
また、本実施形態では通話を開始する際に必要となる電話番号として、電子メールアドレスを利用するので、一般的なユーザーに対しても違和感を与えることなく、インターネット電話環境を提供することが可能となり、PC間で実施するインターネット電話の普及を促進することができる。
【0141】
また、本発明では、通話時の通信状況に応じて通信する音声データ及び画像データのフォーマットを動的に変更することができるので、通話状態を維持しつつ通信状況に応じた通話品質を提供可能である。
【0142】
また、本発明では、端末に割り当てられたグローバルIPアドレスであるか、又はプライベートIPアドレスかに関係なく通話が可能であり、また、上記のように在席情報を管理するためにユーザーが利用する端末を特定する必要もないので、インターネット電話を実施する際にInetPhoneプログラムを実行可能、かつ、インターネットに接続可能な端末であればその種類を問わない。よって、サービスを提供するために各ユーザーを特定するための情報の登録を要求する必要がない。従って、ユーザーは、煩雑な登録手続を行うことなく極めて容易にインターネット電話のサービスを受けることが可能となる。
【0143】
さらに、本発明では、Phonegateプログラムと、グローバルIPアドレスが静的に割り当てられている端末さえあれば、Phonegateサーバーを容易に設置することができ、その管理もユーザー側で自由に実行できる。従って、インターネットに公開され、誰もがアクセス可能であるが故に秘匿性に欠けた従来のゲートキーパーとは異なり、ユーザーがアクセス制限設定をして利用可能なユーザーを限定するなどによって、秘匿性を維持することができる。
【0144】
また、本発明では、HTMLファイルに音声・画像データを添付した通話データを送受信することにより通話を行うので、通話データの通信のために新たなポート番号を設定する必要もなくなり、ファイアウォールなどのセキュリティシステムの影響を受けることなく通話が可能となる。
【0145】
さらに、本発明ではインターネット電話による通話を実行するに際して、事前登録を要求する仲介サーバーの存在を必要としないので、インターネット接続料金のみで通話を実現することができる。従来は、インターネット電話提供業者が提供するゲートキーパーのような仲介サーバーが、各ユーザーを特定して通話を実現するために必ず必要とされ、このゲートキーパーに対するサービス料金として通話料が徴収されている。これに対して、本願発明では、仲介サーバーとしてのPhonegateサーバーは、ユーザーが任意に設置することが可能であり、サーバーの設置もPhonegateプログラムを所定の端末にインストールするだけである。従って、インターネットへの接続料金以外は、Phonegateプログラムの購入に対してのみ費用が発生し、通話自体に費用が発生しないシステムを構築可能である。また、インターネットへの接続料は、常時接続で定額が一般的となることを考えれば、企業などの大手のユーザーの通信費用を最低限に押さえることができる。
【0146】
また、本発明は2者間通話にはもちろんのこと、3者間以上における通話に対しても適用可能であるので、複数拠点に設置された端末を利用して簡単にテレビ会議を実現することも可能である。また、3者以上により通話する場合であっても、2者間通話における環境からの変更を全く必要としない点で極めて有効である。
【0147】
以上のような汎用性及びセキュリティの保証は、大手ユーザーのインターネット電話導入の大きな動機付けとなるものであり、インターネット電話の普及を急速に促進する原動力となりえる。
【0148】
【発明の効果】
以上に詳細に説明したように、本発明によれば特殊なハードウエア機器を設置したり、またシステム管理の知識を必要とすることなく、グローバルIPアドレスを有する端末間のみならず、プライベートIPアドレスのみを有する端末間においても通話することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態におけるインターネット電話システムの概略構成の一例を示すための図である。
【図2a】ユーザー端末101及び102の構成の一例を示すための図である。
【図2b】InetPhoneプログラムの内容の一例を示すための図である。
【図3a】PhoneGateサーバー103の構成の一例を示すための図である。
【図3b】PhoneGateプログラムの内容の一例を示すための図である。
【図4】本発明の実施形態に対応したインターネット電話システムにおける通話形態を説明するための図である。
【図5a】本発明の実施形態においてユーザー1からユーザー2へ電話をかける場合の処理のフローチャートである。
【図5b】本発明の実施形態においてユーザー1からユーザー2へ電話をかける場合の処理のフローチャートである。
【図6a】本発明の実施形態においてユーザー2がユーザー1から電話を受ける場合の処理のフローチャートである。
【図6b】本発明の実施形態においてユーザー2がユーザー1から電話を受ける場合の処理のフローチャートである。
【図7a】本発明の実施形態に対応した、グローバルIPアドレスを有する端末がグローバルIPアドレスを有する端末と通話する際の通話処理1のフローチャートである。
【図7b】本発明の実施形態に対応した、グローバルIPアドレスを有する端末がプライベートIPアドレスを有する端末と通話する際の通話処理2のフローチャートである。
【図7c】本発明の実施形態に対応した、プライベートIPアドレスを有する端末がグローバルIPアドレスを有する端末と通話する際の通話処理3のフローチャートである。
【図7d】本発明の実施形態に対応した、プライベートIPアドレスを有する端末がプライベートIPアドレスを有する端末と通話する際の通話処理4のフローチャートである。
【図8a】本発明の実施形態における、PhoneGateサーバー103における処理のフローチャートである。
【図8b】本発明の実施形態における、PhoneGateサーバー103における仲介処理のフローチャートである。
【図9】本発明の実施形態における表示部211に表示される画面の一例を示す図である。
【図10】ユーザー端末の内部記憶装置内に格納されるアドレス帳データ214の一例を示す図である。
【図11】ユーザー間で通話を開始する際に送信するメールデータの一例を示す図である。
【図12】従来のインターネット電話システムを説明するための図である。
【図13】本発明の実施形態におけるデータフォーマット設定処理の一例を示すフローチャートである。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a communication control method and a communication control program for realizing Internet telephone communication by real-time information communication via the Internet between terminals connectable to the Internet. More specifically, communication is possible not only between global IP addresses but also across private IP addresses without the need for special hardware devices, and it is possible to communicate with the user's location (terminal in use). The present invention relates to an Internet telephone system capable of making a telephone call and information processing thereof.
[0002]
[Prior art]
In TCP / IP, which is a communication protocol used in the Internet, LAN, and the like, there are two types of addresses on a network, such as a global IP address and a private IP address, provided to terminals and the like.
[0003]
A global IP address is an address for specifying a terminal on the Internet by directly using it on the Internet. A terminal to which a global IP address is assigned connects to the Internet, and is similarly connected to the Internet. While being able to access the terminal or network that is present, it can accept access from other networks or terminals.
[0004]
The private IP address is not an IP address directly used on the Internet, but a local address arbitrarily assigned to a terminal connected to a LAN by a network administrator in an in-house LAN or the like. Therefore, a private IP address can uniquely determine a specific terminal in a certain LAN, but has a property of being used repeatedly in a plurality of LANs connected to the Internet, and cannot uniquely identify a terminal. Not available.
[0005]
Internet telephone ("Internet telephone" in the present application refers to real-time voice / image communication (RT) via the Internet using a communication terminal such as a personal computer (PC) or a portable information terminal (PDA) under a network connection environment. In this case, each terminal that performs communication generally needs to have a global IP address in order to perform two-way communication of call information. If one terminal to communicate has only a private IP address, the other terminal having a global IP address cannot receive call information because it cannot identify the communication partner. Become.
[0006]
[Problems to be solved by the invention]
FIG. 12 is a diagram for explaining a case in which voice and image information communication using an Internet telephone is performed between a terminal 1302 to which a private IP address is assigned and a terminal 1310 to which a global IP address is assigned. It is.
[0007]
In FIG. 12, a terminal 1202 can access a terminal 1210 having a global IP address. At this time, the terminal 1202 converts its own private IP address into a global IP address via a NAT (Network Address Translation or NAPT: Network Address Port Translation) server 1204. Since this address conversion function dynamically assigns an assignable global IP address to a private IP address, the terminal 1210 receives the global IP address from the terminal 1202 even if it is notified of the access. Cannot be used to access the terminal 1202. That is, FIG. 12 connected to the router 1203 has a plurality of terminals (not shown), and a global IP address may be dynamically assigned to any of the terminals, and the terminal 1202 cannot be specified.
[0008]
Also, since the NAT replaces up to the port number at the time of address translation, even if the replaced port number and the global IP address are specified and accessed, the firewall set in the LAN 1201 is not allowed for external access. There is a problem that the connection works and is rejected.
[0009]
As described above, in a general Internet connection environment, communication by Internet telephone using a terminal to which a global IP address is not statically assigned cannot be performed.
[0010]
If you still want to communicate, you can set the router specially or install a repeater with a dedicated router function, but in that case, knowledge about the IP address or router setting and data input Is required for users.
[0011]
In addition, when using a dedicated hardware device for an Internet telephone such as a dedicated router, a dedicated port for transmitting and receiving data may be used, so that a firewall installed on an in-house LAN may be used. There is a problem that can not be.
[0012]
Furthermore, although a global IP address can be statically assigned to a specific client machine, the number of global IP addresses that can be normally assigned is limited, and only a small number of all the client machines connected to the organization LAN. Not only will some machines be able to use Internet phones, meaning that introducing Internet phones will not be meaningful, but will also have a significant effect on the Internet connection status of other client machines.
[0013]
Conventionally, since the IP address of the terminal is used as a so-called telephone number, the latest IP address of the other party who wants to make a call must be known before the call, and a fixed global IP address must be used. With a terminal that does not have it, it is virtually impossible to specify the destination. Also, when an IP address is used instead of a telephone number, it is unfamiliar to general users in the Internet world, which hinders the spread of Internet telephones.
[0014]
To solve this problem, a call management server called a gatekeeper (GK) is installed on the Internet, and those who intend to make a call are required to register in advance. In this method, the address of the partner can be specified in combination with the location server. However, there is no mechanism for exchanging the ID information possessed by the GK between the independent systems, and the system is widely end-to-end. ) Communication cannot be performed. In addition, the GK function is not designed to be installed on the user side, which hinders stable operation on the user side. Furthermore, even in the system via GK, the use of a system-specific address designated by GK, which is unfamiliar to general users, must be used instead of the IP address, which hinders the spread of Internet telephones.
[0015]
Further, when a call between PCs is established using an IP address instead of a telephone number, the presence information on whether or not the intended party uses the client machine to which the IP address is assigned is managed. There is a need to. This presence information is very important in end-to-end communication, and unless the presence information is managed, a call request is made to the client terminal regardless of the user's current location, and privacy is maintained. A problem arises that it cannot be protected.
[0016]
[Means for Solving the Problems]
The present invention for solving the above-mentioned problems is as follows. If the client machine has an Internet connection environment, the IP address to be assigned may be global or private, and it is possible to make a telephone call uniformly by Internet telephone, In addition, the following means are provided for the purpose of enabling a telephone call using an Internet telephone in the current Internet connection environment without newly installing special hardware or performing complicated environment settings.
[0017]
In a communication control method for controlling communication of call information between a plurality of terminals including a first terminal and a second terminal communicable via the Internet, the first terminal includes the first terminal Generating first call information using information input from a first user of the terminal, wherein the second terminal uses information input from a second user of the second terminal. Generating second call information, wherein the second terminal uploads the second call information to the first terminal when a global IP address is assigned only to the first terminal; Then, the first call information is downloaded from the first terminal.
[0018]
When only a private IP address is assigned to the first terminal and the second terminal, the first terminal and the second terminal communicate with the server on the Internet by the first terminal. The second call information and the second call information are respectively uploaded, and the second call information and the first call information uploaded on the server are respectively downloaded.
[0019]
Further, when a global IP address is assigned to the first terminal and the second terminal, the first terminal downloads the second call information, and the second terminal The first feature is that the call information is downloaded.
[0020]
Further, another aspect of the present invention for solving the above problem is a communication control method for mediating communication of call information between a first terminal and a second terminal communicable via the Internet. Receiving an upload of first call information generated in the first terminal from the first terminal, and uploading second communication information generated in the second terminal from the second terminal Receiving the download of the uploaded second call information from the first terminal, and receiving the download of the uploaded first call information from the second terminal. I do.
[0021]
According to still another aspect of the present invention for solving the above-described problems, the first terminal and the second terminal include a plurality of terminals including a first terminal and a second terminal communicable via the Internet. A communication control method for starting communication of call information to the second terminal, wherein the first terminal receives a communication start request from a first user of the first terminal, In response to accepting the communication start request, a communication start request is transmitted by e-mail to a second mail address used by a second user of the second terminal, and the second terminal starts the communication start. Receiving a request, notifying the second user of the second terminal of the reception of the communication start request, accepting permission to start communication from the second user, and responding to the acceptance of permission to start communication. Communication permission And transmitting the knowledge to the first terminal.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0023]
FIG. 1 is a diagram showing a configuration of an Internet telephone system according to an embodiment of the present invention. First, in FIG. 1, reference numerals 101 and 102 denote terminals used by users who communicate call data (details will be described later) including voice information and image information using the Internet telephone system of the present invention. An IP address or a private IP address is statically assigned. However, the private IP address may be dynamically assigned using a DHCP (Dynamic Host Configuration Protocol) server (not shown). In the following description, a user using the user terminal 101 is referred to as a user 1 and a user using the user terminal 102 is referred to as a user 2.
[0024]
FIG. 1 illustrates a case in which the user 1 and the user 2 make a call between the user terminal 101 and the user terminal 102. However, this is merely an example, and the two-way telephone call according to the present invention is an Internet telephone. Not limited to this, three or more users from the user terminal 105 to the user terminal N can talk at the same time.
[0025]
Reference numeral 103 denotes a PhoneGate server for mediating voice communication when either the user terminal 101 or 102 is a terminal to which a global IP address cannot be statically assigned. Reference numeral 104 denotes the Internet to which the user terminals 101 and 102 and the PhoneGate server 103 are connected. In FIG. 1, connections are simplified, but when the user terminals 101 and 102 are client terminals or the like connected to an in-house LAN, as shown in FIG. It goes without saying that it is connected to the Internet via a router, a DHCP server or the like.
[0026]
Next, an outline of the configuration of the user terminals 101 and 102 will be described with reference to FIG. In FIG. 2A, a CPU 201 controls the operation of the entire user terminal 101 or 102 according to a program stored in a ROM 202, a RAM 203, or an internal storage device 704. The ROM 202 stores a control program for the CPU 201 and the like. The RAM 203 temporarily stores programs and the like, and operates the user terminal 101 or 102 at high speed.
[0027]
The internal storage device 212 further stores various application programs, web browser software, display objects, and the like, in addition to an InetPhone (InetPhone) program 213, address book data 214, and an operating system (OS) 215. .
[0028]
A user I / F (interface) 204 is an input interface such as a keyboard and a mouse. The display unit 211 performs various displays such as a GUI (graphical user interface) screen and a browser screen generated by the InetPhone program. The communication unit 205 is for connecting to the Internet 104 and performing mutual communication.
[0029]
Reference numeral 206 denotes a sound processing unit which converts sound recorded by the microphone 208 into digital data so that it can be taken into the user terminal, or converts digital data into an analog signal and converts sound information using the speaker 207. It fulfills functions such as reproduction.
[0030]
The image processing unit 209 performs a process of converting an analog image signal acquired by the image input unit 210 into digital image data. The image input unit 210 is configured by an image sensor using an image pickup device such as a CCD or a CMOS.
[0031]
Next, details of the InetPhone program 213 will be described with reference to FIG. 2B.
[0032]
First, in FIG. 2B, the InetPhone program has a call data processing module 221, a calling module 222, a standby module 223, a connection module 224, and an environment setting module 225.
[0033]
The call data processing module is a program for processing call data transmitted / received between the terminal 221 and the user terminals 101 and 102. Specifically, audio information obtained from the microphone 208 via the sound processing unit 206 and image information obtained from the image input unit 210 via the image processing unit 209 are converted into a data stream that can be attached to an HTML file. Convert and attach to HTML file to generate call data (more specifically, compress the data stream of image information and audio information and convert the generated byte data to the format of an HTTP encoded text file) Or a voice and image data stream is extracted from the received call data in the HTML file format, the voice is converted into information reproducible by the speaker 207 via the sound processing unit 206, and the image is converted into information that can be displayed on the display unit. To process.
[0034]
Note that the bit rate of the data stream generated by the call data processing module 221 is changed according to the communication speed (communication band) set by the environment setting module 225 described later. For example, when communicating with a terminal using a 56 kbps modem, while reducing the bit rate of the audio data stream to 14.4 kbps, a communication speed of, for example, 12 Mbps can be secured by communication using ADSL or a cable Internet line. In such a case, the rate may be increased to 132 kbps.
[0035]
The calling module 222 is a program for executing a process of calling the user 2 of the user terminal 102 when the user terminal 101 attempts to make a call to the user terminal 102, and sends a mail to a mail address used by the user 2. Send Therefore, in the following embodiment, the user 1 will be described as a sender, the user 2 will be a receiver, the user terminal 101 will be a sender terminal, and the user terminal 102 will be described as a receiver terminal.
[0036]
The standby module 223 is a program resident in all terminals in which the InetPhone program is installed, and is a program for receiving a call request mail transmitted from the calling side. Specifically, in the present embodiment, the port number 110/143 is constantly monitored when the user terminal 102 receives a call request transmitted by e-mail from the user terminal 101. Also, the standby module 223 is used when the user 2 of the user terminal 102 refuses an incoming call from the user 1 of the user terminal 101 or when the user 2 is already talking with a third party at the time of receiving the call request. , "Call rejection" and "busy" are sent to the user 1's e-mail address by e-mail.
[0037]
The connection module 224 is a program for downloading / uploading an HTML file with voice and image data attached to each other terminal for transmitting and receiving call data between the user terminal 101 and the user terminal 102. .
[0038]
The environment setting module 225 is a program for setting various communication conditions between terminals performing a call and notifying the setting information to the terminal of the other party or the Phonegate server 103. The environment setting module 225 sets a communication speed between two terminals performing a call and a communication speed based on the performance of a modem of each terminal, a format setting of voice / image data, a voice / image processing device. Performs settings for audio / video input / output devices, ports, ringtones, etc., for terminals with a plurality of. This setting information is transmitted to the partner terminal or the Phonegate server 103 in an HTML file.
[0039]
For example, in the environment setting module 225, when “the amount of received voice data” <“the amount of data corresponding to the talk time” is satisfied, that is, since the voice data format is large, the data receiving speed catches up with the talk speed. If not, change the audio data format setting to one with low sound quality. On the other hand, when “the amount of received voice data” >> “the amount of data corresponding to the call time” is satisfied, that is, since the communication speed is sufficiently ensured, the data reception with respect to the call speed is performed. If the speed is sufficiently high, the setting of the format of the audio data is changed to that of high sound quality. Details of the format setting process in the environment setting module 225 will be described later.
[0040]
Next, an outline of the configuration of the PhoneGate server 103 will be described with reference to FIG. The PhoneGate server 103 may be a machine in which the PhoneGate program 313 is installed, and thus, by installing the PhoneGate program 313 on the user terminal 101, the phone gate server 103 can also function as the PhoneGate server 103. Further, among the components constituting the PhoneGate server, 301 to 311 achieve the same functions as the components 201 to 211 of the user terminals 101 and 102 shown in FIG.
[0041]
The internal storage device 312 further stores various application programs, web browser software, display objects, and the like, in addition to the PhoneGate program 313, address book data 314, and an operating system (OS) 315.
[0042]
Details of the PhoneGate program 313 will be described with reference to FIG. 3B. In FIG. 3B, the PhoneGate program 313 includes a voice transmitting / receiving module 321, a data relay module 322, a meta information transmitting / receiving module 323, and a session management module 324.
[0043]
When the user terminals 101 and 102 are both terminals to which private IP addresses are assigned, the call data transmission / reception module 321 uploads the call data from each terminal and downloads the uploaded call data by the user terminals 101 and 102. Is a program for controlling
[0044]
The data relay module 322 is a program for relaying call data. More specifically, for example, the program is a program for relaying data so that the user terminal 102 can download call data uploaded from the user terminal 101.
[0045]
The meta information transmission / reception module 323 stores information on the communication status (band state or communication speed) between the PhoneGate server 103 and the user terminals 101 and 102, and setting information set in the environment setting module 225 in each terminal. This is a program for transmitting and receiving data to and from 101 and 102.
[0046]
Further, when either of the user terminals 101 or 102 has a global IP address, the meta information transmission / reception module 323 uses the global IP address of one of the user terminals without using the global IP address of the PhoneGate server 103. It is also a program for communicating switching information for switching to a call.
[0047]
The session management module 324 is a program for managing a communication session for a call between the user terminals 101 and 102. Specifically, it monitors a call request for starting a call from a user terminal having a private IP address, and monitors a call termination.
[0048]
Next, with reference to FIG. 4, a description will be given of a communication mode in the Internet telephone system of the present invention. In FIG. 4, “GA” stands for global IP address, and “PA” stands for private IP address. Hereinafter, the same applies to other drawings.
[0049]
First, (a) is a diagram for explaining an outline of processing in a call between a terminal 401 having a global IP address and a terminal 402 having a private IP address. In (a), since only the private IP address is statically given to the terminal 402, the terminal 401 cannot identify the terminal 402, and cannot download call data from the terminal 401 to the terminal 402. However, uploading from terminal 402 to terminal 401 is possible because terminal 402 has a global IP address. Therefore, the terminal 402 uploads its own call data to the terminal 401 and downloads the user's call data at the terminal 401 to the terminal 402 side. As a result, both the terminal 401 and the terminal 402 can acquire the call data of the other party, and can make a call.
[0050]
Next, (b) shows a case where the terminals 403 and 404 both have a global IP address. In this case, the terminal 403 and the terminal 404 download the other party's call data from each other. , Call data can be obtained. Therefore, a call is established between the terminal 403 and the terminal 404.
[0051]
(C) shows a case where the terminal 405 and the terminal 406 both have only private IP addresses. In this case, since each terminal cannot access by specifying the other party, a call is made via the PhoneGate server 407. Specifically, the terminals 405 and 406 upload their own call data to the PhoneGate server 407, respectively. Thereby, the PhoneGate server 407 can acquire the call data generated in the terminals 405 and 406. Then, the call data is downloaded from the terminals 405 and 406 and reproduced at each terminal to establish a call. Thus, the PhoneGate server 407 is located between the terminals 405 and 406 and mediates call data.
[0052]
As described above, in the present invention, communication is established by downloading or uploading call data with reference to a terminal or server having a global IP address. Therefore, as long as there is a terminal or a server having a global IP address, simultaneous communication between two or more users has no technical obstacle.
[0053]
For example, as shown in FIG. 4D, in a call between the terminal 408 having the global IP address and the terminals 409 and 410 having the private IP addresses, the terminal 409 and the terminal 410 transmit their own call data to the terminal 408. In addition to uploading each, the call data generated by the terminal 408 and the call data uploaded by the other terminal may be downloaded. In this way, it can be understood that a call is established between the users of the terminals 408, 409, and 410.
[0054]
Next, more specifically, details of the call processing in the present invention for realizing the call form shown in FIG. 4 will be described with reference to flowcharts shown in FIGS. In the following, for the sake of simplicity, a two-party call is taken as an example. However, the present invention is not limited to a two-party call, but enables a call between a larger number of users. .
[0055]
First, a case where a call is made from user 1 (user terminal 101) to user 2 (user terminal 102) will be described with reference to FIGS. 5a and 5b.
[0056]
First, when the user 1 intends to make a telephone call, the user activates the InetPhone program (step S501). When the InetPhone program is started, the IP address of the user terminal 101 is confirmed. As a result, if a global IP address is statically assigned to the user terminal 101, the process proceeds to step S503. On the other hand, if the private IP address is statically assigned, the process moves to step S514.
[0057]
First, a case where a global IP address is assigned to the user terminal 101 will be described below. First, in step S503, a GUI for accepting the input of the receiving side mail address from the user 1 is displayed on the display unit 211, and the input of the mail address used by the receiving side, that is, the user 2 is received.
[0058]
At this time, an example of a screen displayed on the display unit 211 is as shown in FIG. In FIG. 9, reference numeral 901 denotes an input field for inputting the name of a communication partner. This user name can be arbitrarily input by the user of the InetPhone program.
[0059]
Reference numeral 902 denotes an input field for inputting a mail address for transmitting a mail to the other party (user 2 in the description of the present embodiment). Reference numeral 903 denotes an input field for inputting the PhoneGate server 103. If the user terminal 101 has only a private IP address, it is necessary to make a call via the PhoneGate server 103, so the PhoneGate server 103 is specified. If the user terminal 101 has a global IP address, 903 may be left blank, or the input field 903 itself may be set not to be displayed on the display unit 211 by user setting.
[0060]
Reference numeral 904 denotes a call start button for instructing transmission of a call start request mail when a call is to be started. A call end button 905 is used to issue a call end instruction when a call is to be ended.
[0061]
Reference numeral 906 denotes a call status display field, which can display a communication speed during a call. If the other party trying to talk is busy or rejected, a message such as "calling" or "rejected call" is displayed to notify the user.
[0062]
Reference numeral 907 denotes a button for calling the address book data stored in the internal storage device 212. The user clicks the button 907 in the input fields 901 to 903 regardless of the input from the keyboard in the user I / F. You can also call the address book to select and enter.
[0063]
A button 908 is used to call a setting screen when performing user settings. On the user setting screen, registration of user information including the user name, e-mail address, PhoneGate server name to be used, etc., non-display setting of the above-mentioned PhoneGate server selection field, display mode selection of screen 900, advertisement of 909 Settings such as selection and setting of the communication speed of the user terminal 101 can be performed.
[0064]
Reference numeral 909 denotes an advertisement display column, and an advertisement is displayed in this column while the InetPhone program is running. Advertising data can be periodically downloaded and updated from the server that downloaded the InetPhone program.
[0065]
In the address book data called by the button 907, information of each user as shown in FIG. 10 is registered. First, an identifier for identifying each user including the user 2 is registered as a nickname in the field 1001. The nickname 1001 can be arbitrarily assigned by the user 1 or information specified by the other user can be registered. The registration form may be any form, such as "Nihon Daisuke", "Tom" or "Taro", as long as it is a personal name, a nickname, or other information that can identify the user.
[0066]
1002, a mail address of the user identified by the nickname 1001 is registered. Also, a machine name is registered in 1003, which is the machine name when the machine name is given in the in-house LAN. If a global IP address is assigned to a terminal used by the other user, the global IP address is registered in 1004. For example, the terminal used by “Nihon Daisuke” in FIG. 10 is assigned a machine name and a global IP address.
[0067]
In 1005, information on the PhoneGate server 103 is registered. This information includes the global IP address of the PhoneGate server 103 used when making a call with the registered user, and a mail address addressed to the PhoneGate server 103. The PhoneGate server 103 to be registered registers the specified PhoneGate server 103 when specified by the other party user, and registers the PhoneGate server 103 designated by the user who owns the address book when not specified by the other party. You only need to register. It is considered that the PhoneGate server is set in the same domain of the other party, as in the case of “Tom”, which is specified by the other party.
[0068]
1006 is a port number used for a call. Generally, the port number “80” assigned to the HTTP (Hyper Text Transfer Protocol) is used. However, if another port number is assigned in the PhoneGate server 103, the assigned port number is used. Register In the case of FIG. 10, 25596 is assigned to “Tom”.
[0069]
Further, in FIG. 10, registration is performed as one user 1 registration information. However, when there are users having a plurality of Internet connection environments, registration information corresponding to each connection environment may be provided. For example, users who have an Internet connection environment at both work and home have the same nickname 1001 and mail address 1002, but their terminal information changes depending on whether they are at work or at home. Therefore, it is also possible to have the terminal information for the workplace and the terminal information for the home for the same nickname 1001 and mail address 1002.
[0070]
Here, when returning to step S503 again, the input of the mail address addressed to the user 2 from the user 1 is received, and when the mail transmission instruction by the call start button 904 is received, the process proceeds to step S504 to perform the transmission processing of the call request mail. . FIG. 11 shows an example of the attached data of the call request mail transmitted in step S504.
[0071]
First, in the call request mail, <request> is described to clearly indicate that the mail to be transmitted is the call request mail. Further, <s-mail address>, <s-name>, <s-ip address>, <s-phonegate address>, and <s-phoneport port> include the sender's mail address, nickname, IP address, and IP address of the Phonegate server 103. An address and a port number specified by the Phonegate server 103 are described.
[0072]
The call request mail does not have to include data on the recipient (<r-mail address><r-name><r-ipaddress><r-phonegateaddress><r-phonegateport>). However, when a call request is sent to a called party who has already experienced a call, information can be attached based on the registration information of the address book data 214.
[0073]
In the <sound mode> and <movie mode>, information on the band and system of audio and image data is described in accordance with the settings made by the environment setting module 225 of the user terminal 101. For example, setting information <1> can be described as sound mode and setting information <3> can be described as movie mode. When a plurality of formats exist, the number assigned to each format can be described as the setting information.
[0074]
After the transmission of the call request e-mail, it is monitored whether a call permission e-mail has been transmitted from the user 2 on the receiving side (step S505). If the call permission is not received from the user 2 and a mail notifying of the rejection of the call is received in step S506, the process is terminated. Here, the rejection of the incoming call can be notified by describing, for example, "NG", "REJECT", or "BUSY" in the Subject or header of the mail. Further, it is also possible to notify the reason for rejection of incoming calls by properly using the above described contents.
[0075]
On the other hand, when the call permission notification e-mail is received from the called user 2, the attached information of the e-mail is extracted and the IP address of the user terminal 102 used by the user 2 is confirmed (step S507). The IP address of the user terminal 102 can be extracted from the message attached to the call permission notification. FIG. 11B is a diagram showing an example of a mail for notifying call permission. Here, by describing, for example, "OK", "ACCEPT", or the like in the header of the mail, the reception permission can be notified.
[0076]
If the IP address of the other user terminal 102 is a global IP address, call processing 1 is executed in step S509, and if it is a private IP address, call processing 2 is executed in step S510. The details of the call processing 1 and the call processing 2 will be described later.
[0077]
While the call between the user 1 and the user 2 continues, a GUI as shown by 906 in FIG. 9 is displayed on the display unit 211, and each user can grasp the call state. When the user 1 wants to end the call, for example, the user can click a call end button 905 displayed on the display unit 211. The click of the call end button 905 is accepted in step S511, and a call end notification is made in step S513 to end the call. The call termination notification in step S513 can also be sent to the other party, for example, by transmitting an HTML file in which a “end call” character string is described in the header.
[0078]
If the call end button 905 is clicked on the user 2 side before the call end button 905 is clicked by the user 1, a call end notification is transmitted to the user terminal 101 in step S512. The call processing is also ended when the call end notification is received.
[0079]
If the user 1 does not accept the click of the call end button 905 and does not receive the call end notification from the user terminal 102, the call process 1 in step S509 or the call process 2 in step S510 is further continued. .
[0080]
Here, returning to step S502, a case where only the private IP address is assigned to the user terminal 101 will be described. In this case, the process proceeds to step S514, and a GUI for accepting the input of the destination mail address is displayed on the display unit 211 as shown in FIG. Accept email address input.
[0081]
In step S515, the designation of the PhoneGate server 103 is received. If the PhoneGate server 103 is designated by the user 2, the designated PhoneGate server 103 is selected. On the other hand, if the PhoneGate server 103 is not specified by the user 2, the user 1 may select the PhoneGate server 103 desired to use. If the PhoneGate server 103 specified by the user 2 is registered in the address book 214 or the PhoneGate server 103 used by the user 1 by default is specified, the specification step by the user 1 in step S515 can be skipped. good.
[0082]
When the designation of the e-mail address is accepted in steps S514 and S515, and the outgoing call instruction is accepted, in step S516, a call request e-mail is transmitted to the user 2 on the receiving side. Further, a call request is notified to the PhoneGate server 103. Since the Phonegate server 103 has a global IP address, it is possible to establish a TCP / IP session between the user terminal 101 and the Phonegate server 103. Therefore, the notification of the communication request to the Phonegate server 103 is performed by transmitting the HTML file in the established TCP / IP session. It goes without saying that the notification can be made using the mail address given to the Phonegate server 103.
[0083]
When the user 2 permits the incoming call, the incoming call permission notification is transmitted from the receiving user terminal 102 to the Phonegate server 103. Therefore, the user terminal 101 periodically downloads the call permission notification from the user terminal 101 to the Phonegate server 103. It is monitored whether a request has been made and a call permission notice has been received from the PhoneGate server 103 (step S517). Further, the call permission notification may be transmitted from the Phonegate server 103 to the mail address of the user 1.
[0084]
If the call permission is not received from the PhoneGate server 103 and the notification of the rejection of the incoming call as shown in FIG. 11C is received in step S518, the process ends. On the other hand, if the call permission notification is received, the attached information is extracted and the IP address of the user terminal 102 used by the user 2 is confirmed (step S519).
[0085]
Here, if a global IP address has been assigned to the user terminal 102, the process proceeds to step S521 and the call process 3 is executed. On the other hand, if only the private IP address has been assigned, call processing 4 is executed in step S522. Details of the call processing 3 and the call processing 4 will be described later. Thereafter, the processing from step S523 to step S525 is the same as the processing from step S511 to step S513. However, in step S525, a call termination notification is transmitted to both the user terminal 102, which is the receiving side terminal, and the PhoneGate server 103.
[0086]
Next, details of the processing from communication processing 1 to communication processing 4 in step S509, step S510, step S521, and step S522 will be described.
[0087]
First, FIG. 7A is a flowchart showing the contents of the call processing 1 in which the terminal having the global IP address talks with the terminal having the global IP address in step S509.
[0088]
First, in step S701, audio information is obtained from the microphone 308 via the sound processing unit 306. In step S702, image information is acquired from the image input unit 310 via the image processing unit 309. The voice information and the image information obtained in steps S701 and S702 are converted into a voice data stream and an image data stream by the call data processing module 221 in step S703, respectively, and are then attached to an HTML file to generate call data. Is done. The conversion into the data stream is performed according to the data format currently set in the environment setting module 225.
[0089]
The call data generated in step S703 is temporarily stored in the RAM 203 in the user terminal. The call data in the RAM 203 is downloaded from the other party's terminal.
[0090]
In step S704, the call data generated and stored in the same manner as in steps S701 to S703 is downloaded from the user terminal of the other party. The downloaded call data is temporarily stored in the RAM 203 and is processed in step S705.
[0091]
In this step S705, the attached voice data and image data are extracted from the downloaded call data, processed in the call data processing module 221, and then reproduced in step S706.
[0092]
Next, the processing in the call processing 2 in which the terminal having the global IP address talks with the terminal having the private IP address in step S510 will be described with reference to the flowchart in FIG. 7B.
[0093]
The processing from step S711 to step S713 is the same as the processing from step S701 to step S703 in FIG.
[0094]
In step S714, upload of call data of the other party is received from the other terminal having the private IP address. The call data is uploaded from the partner terminal because the terminal having the global IP address cannot access the partner terminal having the private IP address to download the call data of the partner.
[0095]
The uploaded data is temporarily stored in the RAM 203, and the attached voice data and image data are extracted in step S715, processed by the call data processing module 221 and then reproduced in step S716.
[0096]
Next, the processing of the call process 3 when the terminal having the private IP address talks with the terminal having the global IP address in step S521 will be described with reference to FIG. 7C.
[0097]
The processing from step S721 to step S723 is the same as the processing from step S701 to step S703 in FIG.
[0098]
In step S724, the call data generated in step S723 is uploaded to a global IP address given to the terminal of the other party.
[0099]
On the other hand, the call data of the other party is downloaded from the terminal of the other party in step S725, and is processed and reproduced in steps S726 and S727. The processing from step S725 to step S727 corresponds to step S704 to step S706 in FIG. 7A, and thus detailed description is omitted.
[0100]
Next, the processing of call processing 4 when the terminal having the private IP address talks with the terminal having the private IP address in step S522 will be described with reference to FIG. 7D.
[0101]
First, the processing from step S731 to step S733 is the same as the processing from step S701 to step S703, and a detailed description thereof will be omitted. Therefore, steps S733 and S734 will be described below.
[0102]
First, in step S734, the call data generated in step S733 is uploaded to the PhoneGate server 103. Since the global IP address assigned to the PhoneGate server 103 has been received in step S517 in FIG. 5B, the upload is performed using the received global IP address.
[0103]
Next, in step S735, the call data of the other party is downloaded from the PhoneGate server 103. The downloaded call data of the other party is to be processed / reproduced in steps S736 and S737, but this processing is also the same as steps S705 and S706, and a description thereof will be omitted.
[0104]
Next, a case where user 2 (user terminal 102) receives a call from user 1 (user terminal 101) will be described with reference to FIG.
[0105]
First, in step S601, reception of a call request mail from the user terminal 101 is monitored. This mail monitoring is performed by monitoring the status of the port numbers 110/143 by the standby module 224 of the InetPhone program resident in the user terminal 102.
[0106]
If the call request mail is received in step S601, the information of the caller (in this case, user 1) is specified in step S602. The caller information is information attached to the call request mail, and includes, for example, the IP address, mail address, nickname, and MAC address of the other party.
[0107]
Next, in step S603, it is determined whether or not the user 2 is currently on a call. If the user 2 is on a call, an e-mail of a call rejection notice is transmitted to the user terminal 101 in step S606.
[0108]
On the other hand, when the user 2 is not in a call, the user 2 is notified that there is an incoming call. The notification in this case can be made by, for example, displaying “incoming call” at 906 in FIG.
[0109]
The user 2 checks the incoming call notification displayed in step S604, determines whether to make a call with the caller (in this case, user 1), and clicks the call start button 904 to make a call. I do. On the other hand, if the call is not to be made, the call end button 905 is clicked. The input content from the user is determined in step S605, and if the call end button 905 is clicked by the user 2, the process proceeds to step S606 to transmit an incoming call rejection notification mail.
[0110]
On the other hand, if the call start button 904 is clicked by the user 2, it is determined that the call is permitted, and the process shifts to step S607. In step S607, the IP address of the user terminal 101 used by the call partner user 1 is confirmed, and it is determined whether or not the user terminal 101 has a global IP address.
[0111]
If the user terminal 101 has been statically assigned a global IP address, the process proceeds to step S609 to transmit a call permission notification e-mail to the user terminal 101 as the caller.
[0112]
The call is started by transmitting the call permission notification mail. If the user terminal 102 is statically assigned a global IP address, the call is executed in the call process 1 in step S611. You. On the other hand, when only the private IP address is assigned to the user terminal 102, a call is made in the call process 3 in step S612. The processing contents of the call processing 1 and the call processing 3 are the same as the contents described with reference to FIGS. 7A and 7C.
[0113]
While the call between the user 1 and the user 2 is continuing, each user can grasp the call state on the GUI display screen as shown in FIG.
[0114]
When the user 2 wants to end the call, for example, the user can click a call end button 905 displayed on the display unit 211. The click of the call end button 905 is accepted in step S614, and in step S615, a call end notification is sent to the user terminal 101 to end the call.
[0115]
If the call end button 905 is clicked on the user 1 side before the call end button 905 is clicked by the user 2, a call end notification is transmitted to the user terminal 102 in step S614. The call processing is also ended when the call end notification is received.
[0116]
When the user 1 does not receive the click of the call end button 905 and does not receive the call end notification from the user terminal 102, the call process 1 in step S611 or the call process 3 in step S612 is further continued. .
[0117]
Here, returning to step S608, if the terminal 101 is not statically assigned a global IP address, the terminal 101 transmits a call permission notification to the PhoneGate server 103 in step S616. Since Phonegate server 103 has a global IP address, it is possible to establish a TCP / IP session between user terminal 102 and Phonegate server 103. Therefore, notification of the communication permission to the Phonegate server 103 is performed in the established TCP / IP session. It goes without saying that the notification can be made using the mail address given to the Phonegate server 103.
[0118]
The PhoneGate server 103 transfers the call permission notification to the user 1, the caller, or downloads the call permission notification from the user terminal 101, and then starts a call. If the user terminal 102 is statically assigned a global IP address, this call is executed in the call process 2 in step S618. On the other hand, when the user terminal 102 has only the private IP address, a call is made in the call process 4 in step S619. The processing contents of the call processing 2 and the call processing 4 are the same as the contents described with reference to FIGS. 7B and 7D.
[0119]
Processing at End of Call The processing from step S620 to step S622 is the same as the processing from step S613 to step S615, and a description thereof will be omitted here. However, in step S622, a call termination notification is transmitted to both the user terminal 101, which is the calling terminal, and the PhoneGate server 103.
[0120]
Next, the processing in the PhoneGate server 103 will be described with reference to FIGS. 8A and 8B. The PhoneGate server 103 is involved in the call between the user 1 and the user 2 when the user terminal 101 (calling terminal) has a private IP address and when both the user terminal 101 and the user terminal 102 (receiving terminal). Has a private IP address.
[0121]
First, in step S801, the PhoneGate server 103 monitors a call request notification from the user terminal 101 having a private IP address. When the call request notification is received, the information of the caller is specified from the attached information. Thereafter, similarly, it is monitored in step S803 whether a call permission notification has been received from the called party to which the call request mail has been transmitted.
[0122]
If a call rejection notification has been received from the called party (step S804), the call rejection notification is transferred to the caller in step S805, and the process ends.
[0123]
On the other hand, if the call permission notice is received, the called party's IP address attached to the call permission notice is confirmed in step S806, and the called party's user terminal 102 is statically assigned a global IP address. If yes, in step S811, the call permission notification is transferred to the user terminal 101 on the caller side, and the global IP address is notified. This notification can be performed by transmitting an HTML file to which the permission notification and the IP address are attached in response to the download request from the user terminal 101. After the notification, the processing in the PhoneGate server 103 ends. This is because if the user terminal 102 is statically assigned a global IP address, it is not necessary to make a call via the PhoneGate server 103.
[0124]
On the other hand, if the user terminal 102 has only the private IP address, a call permission notification is transmitted to the caller in step S808. This notification can be made by the user terminal 101 downloading an HTML file attached with the permission notification content in a TCP / IP session between the phone server 103 and the user terminal 101.
[0125]
Next, in step S809, a mediation process of a call between the user 1 (user terminal 101) and the user 2 (user terminal 102) is performed. Here, each call data uploaded from the user terminals 101 and 102 is temporarily stored in the RAM 303 by the call data transmission / reception module 321 and the data relay module 322, and download from each terminal is accepted.
[0126]
FIG. 8B shows the detailed processing in step S809. First, in step S813, upload of caller call data is accepted. Next, in step S814, upload of call data from the called party is accepted. Further, in step S815, download of the called party call data is received from the calling party. In step S816, download of the caller call data by the callee is accepted.
[0127]
Here, returning to FIG. 8A, in step S810, it is monitored whether or not a call end notification has been received from either the user terminal 101 or the user terminal 102, and if a call end notification has been received, the process ends.
[0128]
FIG. 8 illustrates a case where a call is performed on the assumption that the caller recognizes the global IP address assigned to the Phonegate server 103 at the time of notification of the connection request in step S801. However, even if the IP address of the Phonegate server 103 is unknown at the time of the connection request, if the mail address is known, the communication by the TCP / IP session using the global IP address in the above description is performed as follows. It can be replaced by communication using e-mail. In this case, when the communication permission notification is received by the phone server 103, the global IP address given to the phone server 103 is notified to the called side and the caller side.
[0129]
Next, details of the data format setting process in the environment setting module 225 according to the present embodiment will be described. FIG. 13 is a flowchart for explaining the data format setting process in the present embodiment.
[0130]
In step S1301, after resetting the talk time timer T, the timer T is started. The timer T is a timer for counting the time during which the call is continued. The timer T is reset and started when the call itself is started. In addition, the format of the voice and image data attached to the call data is changed. Each time it is changed, it is reset and started.
[0131]
Next, in step S1302, a timer value Tm is obtained at a predetermined timing after the timer is started. In step S1303, after resetting the timer T, the data amount Dr of the voice information and / or image information attached to the call data received until Tm is calculated. This data amount is the data amount of audio information and / or image information received and stored after resetting the timer T, regardless of whether the attached information has been reproduced.
[0132]
In step S1304, the communication data amount Dp is calculated according to the timer value Tm and the format information of the received data. For example, when the audio format information is 132 kbps, if the timer value Tm is 10 seconds, the data amount required for a call is 10 (s) × 132 (kbps) = 1.32 in a call for 10 seconds. (M bits).
[0133]
In step S1305, it is determined whether to change the current data format Fd based on the relationship between the data amount Dp calculated in step S1304 and the received data amount Dr. Specifically, in step S1305, it is determined whether or not Dr / Dp is smaller than a predetermined threshold Th1, based on the ratio of the received data amount Dr to the data amount Dp required for the call: Dr / Dp.
[0134]
If it is determined in step S1305 that Dr / Dp <Th1, the data format Fd is changed to a lower order in step S1306. The case where Dr / Dp <Th1 is satisfied means that the communication data cannot be received in real time because the communication speed is slower than the communication speed, and a delay occurs in the voice and / or image reproduction processing for the communication. It is. Therefore, in this case, it is necessary to change the data format to a lower one in order to secure real-time performance even if the voice quality is lowered. Th1, which is a threshold value for determination, can be set to, for example, 0.9.
[0135]
On the other hand, if Dr / Dp is equal to or greater than Th1, it is determined in step S1307 whether Dr / Dp is greater than Th2. If Dr / Dp> Th2 holds, the process advances to step S1308 to change the data format Fd to a higher-level format. The case where Dr / Dp> Th2 is satisfied is the case where the communication speed is sufficiently ensured. In this case, since the real-time property is ensured even if the voice quality is increased, the data format is changed to a higher-order one. To enable higher quality calls. Th2, which is a threshold for determination, can be set, for example, to 1.2.
[0136]
If the data format is changed in step S1306 or step S1308, the change of the data format is notified to the partner terminal or the phone server 103 in step S1309. The format change notification can be performed, for example, by transmitting an HTML file in which a description of <change sound mode> 132 kbps </ change sound mode> or <change sound mode> 3 </ change sound mode> is embedded. .
[0137]
If Dr / Dp> Th2 is not satisfied in step S1307, the process returns to step S1302 without changing the data format and continues the process.
[0138]
In the above description, the data format setting processing has been described using audio data as an example. However, the processing described in the flowchart of FIG. 13 is applicable regardless of the type of data, and the data is naturally included in the image information data. Is included.
[0139]
As described above, according to the present invention corresponding to the present embodiment, an e-mail is used as a means for requesting a call, and a caller desiring a call with a predetermined party attaches a call request to the other party. Send e-mail. The sent e-mail is sent to the e-mail address regardless of where the call partner is located and which terminal is used, so if you are in an environment where the call partner can receive the sent e-mail It is possible to notify a call request. As a result, a call request is notified to a terminal to which the IP address is assigned, as in a conventional Internet telephone for making a call by specifying a call partner only by an IP address, and as a result, the call request is transmitted to a third party In other words, there is no problem that privacy is violated. That is, according to the present invention, it is possible to extremely easily manage the presence information without specifying the terminal currently used by the other party.
[0140]
Further, in the present embodiment, since an e-mail address is used as a telephone number required for starting a call, it is possible to provide an Internet telephone environment without giving a sense of discomfort to general users. Thus, it is possible to promote the spread of the Internet telephone implemented between PCs.
[0141]
Further, according to the present invention, the format of audio data and image data to be communicated can be dynamically changed according to the communication state during a call, so that it is possible to provide the call quality according to the communication state while maintaining the call state. It is.
[0142]
Further, in the present invention, it is possible to make a call regardless of the global IP address assigned to the terminal or the private IP address, and the user uses the information to manage the presence information as described above. Since there is no need to specify the terminal, any type of terminal can be used as long as the terminal can execute the InetPhone program and can connect to the Internet when making an Internet call. Therefore, there is no need to request registration of information for specifying each user in order to provide a service. Therefore, the user can receive the Internet telephone service very easily without performing a complicated registration procedure.
[0143]
Further, according to the present invention, as long as there is only a terminal to which the Phonegate program and the global IP address are statically assigned, the Phonegate server can be easily installed, and the user can freely execute the management. Therefore, unlike conventional gatekeepers that are open to the Internet and are confidential because they can be accessed by anyone, users can set confidentiality by setting access restrictions and limiting available users. Can be maintained.
[0144]
Further, according to the present invention, since a call is made by transmitting and receiving call data in which voice / image data is attached to an HTML file, there is no need to set a new port number for communication of the call data, and security such as a firewall is eliminated. Calls can be made without being affected by the system.
[0145]
Furthermore, according to the present invention, when performing a telephone call by Internet telephone, it is not necessary to have an intermediary server for requesting advance registration, so that the telephone call can be realized only by the Internet connection fee. Conventionally, an intermediary server such as a gatekeeper provided by an Internet telephone provider is always required to identify each user and realize a call, and a call fee is collected as a service fee for the gatekeeper. . On the other hand, in the present invention, the Phonegate server as the mediation server can be arbitrarily installed by the user, and the server is installed only by installing the Phonegate program in a predetermined terminal. Therefore, it is possible to construct a system in which a fee is charged only for the purchase of the Phonegate program except for the connection fee to the Internet, and the cost for the call itself is not charged. In addition, considering that a fixed fee is generally used for a constant connection to the Internet, communication costs for major users such as companies can be minimized.
[0146]
Further, since the present invention can be applied not only to two-party calls but also to three-party calls or more, it is possible to easily realize a video conference using terminals installed at a plurality of bases. Is also possible. Further, even when a call is made by three or more parties, it is extremely effective in that no change from the environment in the two-party call is required.
[0147]
The versatility and security assurance described above are a major motivation for the introduction of Internet telephones by major users, and can be a driving force for rapidly promoting the spread of Internet telephones.
[0148]
【The invention's effect】
As described in detail above, according to the present invention, there is no need to install special hardware devices or to have knowledge of system management, and it is possible to use not only terminals having global IP addresses but also private IP addresses. It is possible to make a call between terminals having only one.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a schematic configuration of an Internet telephone system according to an embodiment of the present invention.
FIG. 2A is a diagram showing an example of a configuration of user terminals 101 and 102.
FIG. 2B is a diagram showing an example of the contents of an InetPhone program.
FIG. 3A is a diagram showing an example of a configuration of a PhoneGate server 103.
FIG. 3B is a diagram showing an example of the content of a PhoneGate program.
FIG. 4 is a diagram for explaining a communication mode in the Internet telephone system according to the embodiment of the present invention.
FIG. 5A is a flowchart of a process when a call is made from a user 1 to a user 2 in the embodiment of the present invention.
FIG. 5B is a flowchart of a process for making a call from user 1 to user 2 in the embodiment of the present invention.
FIG. 6a is a flowchart of a process when user 2 receives a call from user 1 in the embodiment of the present invention.
FIG. 6B is a flowchart of a process when user 2 receives a call from user 1 in the embodiment of the present invention.
FIG. 7A is a flowchart of call processing 1 when a terminal having a global IP address talks with a terminal having a global IP address according to an embodiment of the present invention.
FIG. 7B is a flowchart of call processing 2 when a terminal having a global IP address talks with a terminal having a private IP address according to the embodiment of the present invention.
FIG. 7C is a flowchart of call processing 3 when a terminal having a private IP address talks with a terminal having a global IP address according to the embodiment of the present invention.
FIG. 7D is a flowchart of call processing 4 when a terminal having a private IP address talks with a terminal having a private IP address according to the embodiment of the present invention.
FIG. 8A is a flowchart of a process in the PhoneGate server 103 according to the embodiment of the present invention.
FIG. 8B is a flowchart of a mediation process in the PhoneGate server 103 according to the embodiment of the present invention.
FIG. 9 is a diagram illustrating an example of a screen displayed on the display unit according to the embodiment of the present invention.
FIG. 10 is a diagram showing an example of address book data 214 stored in an internal storage device of a user terminal.
FIG. 11 is a diagram showing an example of mail data transmitted when starting a call between users.
FIG. 12 is a diagram for explaining a conventional Internet telephone system.
FIG. 13 is a flowchart illustrating an example of a data format setting process according to the embodiment of the present invention.

Claims (15)

インターネットを介して通信可能な第1の端末と第2の端末とを含む複数の端末の間における通話情報の通信を制御するための通信制御方法であって、
前記第1の端末は、前記第1の端末の第1のユーザーから入力される情報を利用して第1の通話情報を生成し、
前記第2の端末は、前記第2の端末の第2のユーザーから入力される情報を利用して第2の通話情報を生成し、
前記第1の端末のみにグローバルIPアドレスが静的に割り当てられている場合に、前記第2の端末は、前記第1の端末に対して前記第2の通話情報をアップロードし、前記第1の端末から前記第1の通話情報をダウンロードすることを特徴とする通信制御方法。
A communication control method for controlling communication of call information between a plurality of terminals including a first terminal and a second terminal communicable via the Internet,
The first terminal generates first call information using information input from a first user of the first terminal,
The second terminal generates second call information using information input from a second user of the second terminal,
When a global IP address is statically assigned only to the first terminal, the second terminal uploads the second call information to the first terminal, and A communication control method, wherein the first call information is downloaded from a terminal.
前記第1の端末及び前記第2の端末にグローバルIPアドレスが静的に割り当てられていない場合には、前記第1の端末及び前記第2の端末は、インターネット上のサーバーに対して前記第1の通話情報及び第2の通話情報をそれぞれアップロードし、前記サーバー上にアップロードされた前記第2の通話情報及び第1の通話情報をそれぞれダウンロードすることを更に特徴とする請求項1に記載の通信制御方法。When a global IP address is not statically assigned to the first terminal and the second terminal, the first terminal and the second terminal communicate with the server on the Internet by the first terminal. The communication according to claim 1, further comprising uploading the second call information and the second call information, respectively, and downloading the second call information and the first call information respectively uploaded on the server. Control method. 前記第1の端末及び前記第2の端末にグローバルIPアドレスがそれぞれ静的に割り当てられている場合には、前記第1の端末が前記第2の通話情報をダウンロードし、前記第2の端末が前記第1の通話情報をダウンロードすることを更に特徴とする請求項1又は請求項2に記載の通信制御方法。When a global IP address is statically assigned to each of the first terminal and the second terminal, the first terminal downloads the second call information, and the second terminal The communication control method according to claim 1, further comprising downloading the first call information. 前記通話情報は、少なくとも音声データ及び画像データのいずれかが添付されたHTML形式の情報であることを特徴とする請求項1乃至請求項3のいずれか1項に記載の通信制御方法。The communication control method according to any one of claims 1 to 3, wherein the call information is information in an HTML format to which at least one of voice data and image data is attached. 前記通話情報の通信は、ハイパーテキスト転送プロトコル(HTTP)に与えられるポート番号を利用して行われることを特徴とする請求項1乃至請求項4のいずれか1項に記載の通信制御方法。The communication control method according to any one of claims 1 to 4, wherein the communication of the call information is performed by using a port number given to a hypertext transfer protocol (HTTP). 前記第1の通話情報と前記第2の通話情報とは、前記第1の端末と前記第2の端末との間における通信帯域に応じて生成されることを特徴とする請求項1乃至請求項5のいずれか1項に記載の通信制御方法。The method according to claim 1, wherein the first call information and the second call information are generated according to a communication band between the first terminal and the second terminal. 6. The communication control method according to any one of 5. 前記第1の端末及び前記第2の端末は、前記第1のユーザー及び第2のユーザーとの間で行われている通話の時間を計時する計時手段と、前記添付された少なくとも音声データ及び画像データのいずれかを格納する手段とを備え、
前記計時手段により計時された通話時間と前記格納されたデータとに基づいて、前記添付される少なくとも音声データ及び画像データのいずれかのデータフォーマットを設定することを特徴とする請求項4に記載の通信制御方法。
The first terminal and the second terminal each include a timer for measuring a time of a call being performed between the first user and the second user; and the attached at least voice data and image. Means for storing any of the data,
The data format of at least one of the attached voice data and image data is set based on the call time measured by the clocking unit and the stored data. Communication control method.
前記フォーマットは、
前記格納されたデータのフォーマット及び前記計時された通話時間に基づいて決定される出力データ量と前記格納されたデータ量とに基づいて設定されることを特徴とする請求項7に記載の通信制御方法。
The format is
The communication control according to claim 7, wherein the communication control is set based on an output data amount determined based on a format of the stored data and the measured call time and the stored data amount. Method.
インターネットを介して通信可能な第1の端末と第2の端末との間における通話情報の通信を仲介するための通信制御方法であって、
前記第1の端末から、前記第1の端末において生成された第1の通話情報のアップロードを受付け、
前記第2の端末から、前記第2の端末において生成された第2の通信情報のアップロードを受付け、
前記第1の端末から、前記アップロードされた前記第2の通話情報のダウンロードを受付け、
前記第2の端末から、前記アップロードされた前記第1の通話情報のダウンロードを受付けることを特徴とする通信制御方法。
A communication control method for mediating communication of call information between a first terminal and a second terminal communicable via the Internet,
Accepting an upload of the first call information generated in the first terminal from the first terminal;
Accepting an upload of the second communication information generated in the second terminal from the second terminal,
Receiving a download of the uploaded second call information from the first terminal;
A communication control method, wherein a download of the uploaded first call information is received from the second terminal.
インターネットを介して通信可能な第1の端末と第2の端末とを含む複数の端末の間において、前記第1の端末から前記第2の端末に対して通話情報の通信を開始しようとする場合の通信を制御する通信制御方法であって、
前記第1の端末において、
前記第1の端末の第1のユーザーから通信開始要求を受付け、
前記通信開始要求の受付けに応じて、前記第2の端末の第2のユーザーの利用する第2のメールアドレス宛てに通信開始要求を電子メールにて送信し、
前記第2の端末において、
前記通信開始要求を受信し、
前記通信開始要求の受信を前記第2の端末の第2のユーザーへ通知し、
前記第2のユーザーからの通信開始の許可を受付け、
前記通信開始の許可の受付けに応じて通信許可通知を前記第1の端末へ送信する
ことを特徴とする通信制御方法。
When trying to start communication of call information from the first terminal to the second terminal between a plurality of terminals including a first terminal and a second terminal communicable via the Internet A communication control method for controlling communication,
In the first terminal,
Receiving a communication start request from a first user of the first terminal;
In response to accepting the communication start request, transmitting a communication start request by e-mail to a second mail address used by a second user of the second terminal,
In the second terminal,
Receiving the communication start request,
Notifying the second user of the second terminal of the reception of the communication start request,
Receiving a communication start permission from the second user;
A communication control method, comprising: transmitting a communication permission notification to the first terminal in response to accepting the communication start permission.
前記通信開始要求には、少なくとも前記第1の端末に割り当てられたIPアドレスの情報が含まれ、前記通信許可通知には、少なくとも前記第2の端末に割り当てられたIPアドレスの情報が含まれることを特徴とする請求項10に記載の通信制御方法。The communication start request includes at least information of an IP address assigned to the first terminal, and the communication permission notification includes at least information of an IP address assigned to the second terminal. The communication control method according to claim 10, wherein: 前記第1の端末にプライベートIPアドレスが割り当てられる場合に、前記通信開始要求には、少なくとも前記プライベートIPアドレスの情報と、前記第1の端末が前記第2の端末との間で前記通話情報を通信するために利用可能な仲介サーバーに割り当てられているグローバルIPアドレスの情報とが含まれるとともに、前記通信開始要求は前記仲介サーバーへも送信され、
前記通信許可通知は、前記仲介サーバーへも送信されることを特徴とする請求項10に記載の通信制御方法。
When a private IP address is assigned to the first terminal, the communication start request includes at least information of the private IP address and the call information between the first terminal and the second terminal. Information of the global IP address assigned to the mediation server available for communication, and the communication start request is also transmitted to the mediation server,
The communication control method according to claim 10, wherein the communication permission notification is also transmitted to the mediation server.
前記仲介サーバーへの通信開始要求及び前記通信許可通知は、前記仲介サーバーとのTCP/IPセッションにおいて送信され、
前記通信許可通知は、前記第2のユーザーの電子メールアドレス宛てに電子メールにて送信されることを特徴とする請求項12に記載の通信制御方法。
The communication start request and the communication permission notification to the mediation server are transmitted in a TCP / IP session with the mediation server,
The communication control method according to claim 12, wherein the communication permission notification is transmitted by e-mail to an e-mail address of the second user.
インターネットを介して通信可能な第1の通信端末と第2の端末とを含む複数の端末の間における通話情報の通信のために、第2の端末を利用するユーザーの電子メールアドレス宛てに、前記通話情報の通信を開始する要求を電子メールにて通知する工程を備える通信制御方法。For communication of call information between a plurality of terminals including a first communication terminal and a second terminal capable of communicating via the Internet, the communication is performed to an e-mail address of a user who uses the second terminal. A communication control method comprising a step of notifying a request to start communication of call information by e-mail. 請求項1乃至請求項14のいずれか1項に記載の通信制御方法をコンピュータに実行させるための通信制御プログラム。A communication control program for causing a computer to execute the communication control method according to any one of claims 1 to 14.
JP2002334191A 2002-11-18 2002-11-18 Communication control method and communication control program Pending JP2004172771A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002334191A JP2004172771A (en) 2002-11-18 2002-11-18 Communication control method and communication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002334191A JP2004172771A (en) 2002-11-18 2002-11-18 Communication control method and communication control program

Publications (1)

Publication Number Publication Date
JP2004172771A true JP2004172771A (en) 2004-06-17

Family

ID=32698710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002334191A Pending JP2004172771A (en) 2002-11-18 2002-11-18 Communication control method and communication control program

Country Status (1)

Country Link
JP (1) JP2004172771A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005746A (en) * 1999-06-18 2001-01-12 Nippon Telegraph & Telephone East Corp File transfer system
JP2002217938A (en) * 2001-01-16 2002-08-02 Murata Mach Ltd Relay server and communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005746A (en) * 1999-06-18 2001-01-12 Nippon Telegraph & Telephone East Corp File transfer system
JP2002217938A (en) * 2001-01-16 2002-08-02 Murata Mach Ltd Relay server and communication system

Similar Documents

Publication Publication Date Title
US7058689B2 (en) Sharing of still images within a video telephony call
US7453488B2 (en) Sharing of prerecorded motion video over an Internet work
EP2319206B1 (en) System and method for transmitting and receiving a call on a home network
TW201002018A (en) Method for predicting port number of NAT apparatus based on two STUN server inquiry results
KR100585781B1 (en) File transfer method for mobile instant messaging service
WO2006033264A1 (en) Electric device, server apparatus, mobile terminal, communication system, communication method and program
US7764784B2 (en) Handset cradle
US7385621B2 (en) Private sharing of computer resources over an internetwork
JP2004241946A (en) Message transmission and reception system and message conversion method used for same
US20060064492A1 (en) Systems and methods for smart communication
JP4366270B2 (en) Network connection setting device and network connection setting method
JP3970857B2 (en) Communication system, gateway device
JP2004172771A (en) Communication control method and communication control program
JP2002185527A (en) Internet telephone system
JP5211899B2 (en) IP telephone system, local call control server, IP telephone terminal, and communication method
JP4728933B2 (en) IP telephone communication system, IP telephone communication method, and program thereof
JP2006352552A (en) Facscimile communication system, its communication method, and terminal and server used for it
JP5670680B2 (en) COMMUNICATION METHOD, PRIVATE XMPP SERVER, XMPP CLIENT DEVICE, AND COMMUNICATION SYSTEM INCLUDING THEM
JP6674141B2 (en) Communication device
JP2010219580A (en) Communication repeater, communication terminal and communication method
CN116455864A (en) Method and system for establishing proxy network connection with NAT-behind equipment
JP2015062143A (en) Communication method, and information apparatus
JP4710624B2 (en) IP equipment exchange device
JP2014135653A (en) Communication device and communication program
JP2007281685A (en) Gateway device, information sharing system, and method therefor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050715

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060213