JP2004172771A - Communication control method and communication control program - Google Patents
Communication control method and communication control program Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
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
[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
[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,
[0024]
FIG. 1 illustrates a case in which the
[0025]
[0026]
Next, an outline of the configuration of the
[0027]
The
[0028]
A user I / F (interface) 204 is an input interface such as a keyboard and a mouse. The
[0029]
[0030]
The
[0031]
Next, details of the
[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
[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
[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
[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
[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
[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
[0041]
The
[0042]
Details of the
[0043]
When the
[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
[0045]
The meta information transmission /
[0046]
Further, when either of the
[0047]
The session management module 324 is a program for managing a communication session for a call between the
[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
[0057]
First, a case where a global IP address is assigned to the
[0058]
At this time, an example of a screen displayed on the
[0059]
[0060]
[0061]
[0062]
[0063]
A
[0064]
[0065]
In the address book data called by the
[0066]
1002, a mail address of the user identified by the
[0067]
In 1005, information on the
[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
[0069]
Further, in FIG. 10, registration is performed as one
[0070]
Here, when returning to step S503 again, the input of the mail address addressed to the
[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
[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
[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
[0074]
After the transmission of the call request e-mail, it is monitored whether a call permission e-mail has been transmitted from the
[0075]
On the other hand, when the call permission notification e-mail is received from the called
[0076]
If the IP address of the
[0077]
While the call between the
[0078]
If the
[0079]
If the
[0080]
Here, returning to step S502, a case where only the private IP address is assigned to the
[0081]
In step S515, the designation of the
[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
[0083]
When the
[0084]
If the call permission is not received from the
[0085]
Here, if a global IP address has been assigned to the
[0086]
Next, details of the processing from
[0087]
First, FIG. 7A is a flowchart showing the contents of the
[0088]
First, in step S701, audio information is obtained from the
[0089]
The call data generated in step S703 is temporarily stored in the
[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
[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
[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
[0096]
Next, the processing of the
[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
[0103]
Next, in step S735, the call data of the other party is downloaded from the
[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
[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
[0108]
On the other hand, when the
[0109]
The
[0110]
On the other hand, if the
[0111]
If the
[0112]
The call is started by transmitting the call permission notification mail. If the
[0113]
While the call between the
[0114]
When the
[0115]
If the
[0116]
When the
[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
[0118]
The
[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
[0120]
Next, the processing in the
[0121]
First, in step S801, the
[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
[0124]
On the other hand, if the
[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
[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
[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
[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
[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
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
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
FIG. 5B is a flowchart of a process for making a call from
FIG. 6a is a flowchart of a process when
FIG. 6B is a flowchart of a process when
FIG. 7A is a flowchart of
FIG. 7B is a flowchart of
FIG. 7C is a flowchart of
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
FIG. 8B is a flowchart of a mediation process in the
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
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の端末は、前記第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.
前記計時手段により計時された通話時間と前記格納されたデータとに基づいて、前記添付される少なくとも音声データ及び画像データのいずれかのデータフォーマットを設定することを特徴とする請求項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の端末から、前記第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の端末において、
前記第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.
前記通信許可通知は、前記仲介サーバーへも送信されることを特徴とする請求項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.
前記通信許可通知は、前記第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.
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)
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 |
-
2002
- 2002-11-18 JP JP2002334191A patent/JP2004172771A/en active Pending
Patent Citations (2)
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 |
---|---|---|
TWI357749B (en) | ||
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 | |
KR100585781B1 (en) | File transfer method for mobile instant messaging service | |
WO2006033264A1 (en) | Electric device, server apparatus, mobile terminal, communication system, communication method and program | |
WO2010119710A1 (en) | Vpn device and vpn networking method | |
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 | |
JP4366270B2 (en) | Network connection setting device and network connection setting method | |
JP3970857B2 (en) | Communication system, gateway device | |
JP2010154086A (en) | Communication controller, communication control method of the communication controller, control program, and recording medium | |
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 |
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 |