(57)【要約】【課題】パーソナルコンピュータなどの端末間において実施されるＰＣ間のインターネット電話では、プライベートＩＰアドレスのみしか割り当てられていない端末に対する実施の制約が大きいために、普及の障害となっている。【解決手段】インターネットを介して通信可能な第１の端末と第２の端末との間における通話情報の通信を制御するための通信制御方法において、前記第１の端末は、前記第１の端末の第１のユーザーから入力される情報を利用して第１の通話情報を生成し、前記第２の端末は、前記第２の端末の第２のユーザーから入力される情報を利用して第２の通話情報を生成し、前記第１の端末のみにグローバルＩＰアドレスが割り当てられている場合に、前記第２の端末は、前記第１の端末に対して前記第２の通話情報をアップロードし、前記第１の端末から前記第１の通話情報をダウンロードすることを特徴とする。【選択図】図４
2004172771.tif 000002
【特許請求の範囲】
【請求項１】
インターネットを介して通信可能な第１の端末と第２の端末とを含む複数の端末の間における通話情報の通信を制御するための通信制御方法であって、
前記第１の端末は、前記第１の端末の第１のユーザーから入力される情報を利用して第１の通話情報を生成し、
前記第２の端末は、前記第２の端末の第２のユーザーから入力される情報を利用して第２の通話情報を生成し、
前記第１の端末のみにグローバルＩＰアドレスが静的に割り当てられている場合に、前記第２の端末は、前記第１の端末に対して前記第２の通話情報をアップロードし、前記第１の端末から前記第１の通話情報をダウンロードすることを特徴とする通信制御方法。
【請求項２】
前記第１の端末及び前記第２の端末にグローバルＩＰアドレスが静的に割り当てられていない場合には、前記第１の端末及び前記第２の端末は、インターネット上のサーバーに対して前記第１の通話情報及び第２の通話情報をそれぞれアップロードし、前記サーバー上にアップロードされた前記第２の通話情報及び第１の通話情報をそれぞれダウンロードすることを更に特徴とする請求項１に記載の通信制御方法。
【請求項３】
前記第１の端末及び前記第２の端末にグローバルＩＰアドレスがそれぞれ静的に割り当てられている場合には、前記第１の端末が前記第２の通話情報をダウンロードし、前記第２の端末が前記第１の通話情報をダウンロードすることを更に特徴とする請求項１又は請求項２に記載の通信制御方法。
【請求項４】
前記通話情報は、少なくとも音声データ及び画像データのいずれかが添付されたＨＴＭＬ形式の情報であることを特徴とする請求項１乃至請求項３のいずれか１項に記載の通信制御方法。
【請求項５】
前記通話情報の通信は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）に与えられるポート番号を利用して行われることを特徴とする請求項１乃至請求項４のいずれか１項に記載の通信制御方法。
【請求項６】
前記第１の通話情報と前記第２の通話情報とは、前記第１の端末と前記第２の端末との間における通信帯域に応じて生成されることを特徴とする請求項１乃至請求項５のいずれか１項に記載の通信制御方法。
【請求項７】
前記第１の端末及び前記第２の端末は、前記第１のユーザー及び第２のユーザーとの間で行われている通話の時間を計時する計時手段と、前記添付された少なくとも音声データ及び画像データのいずれかを格納する手段とを備え、
前記計時手段により計時された通話時間と前記格納されたデータとに基づいて、前記添付される少なくとも音声データ及び画像データのいずれかのデータフォーマットを設定することを特徴とする請求項４に記載の通信制御方法。
【請求項８】
前記フォーマットは、
前記格納されたデータのフォーマット及び前記計時された通話時間に基づいて決定される出力データ量と前記格納されたデータ量とに基づいて設定されることを特徴とする請求項７に記載の通信制御方法。
【請求項９】
インターネットを介して通信可能な第１の端末と第２の端末との間における通話情報の通信を仲介するための通信制御方法であって、
前記第１の端末から、前記第１の端末において生成された第１の通話情報のアップロードを受付け、
前記第２の端末から、前記第２の端末において生成された第２の通信情報のアップロードを受付け、
前記第１の端末から、前記アップロードされた前記第２の通話情報のダウンロードを受付け、
前記第２の端末から、前記アップロードされた前記第１の通話情報のダウンロードを受付けることを特徴とする通信制御方法。
【請求項１０】
インターネットを介して通信可能な第１の端末と第２の端末とを含む複数の端末の間において、前記第１の端末から前記第２の端末に対して通話情報の通信を開始しようとする場合の通信を制御する通信制御方法であって、
前記第１の端末において、
前記第１の端末の第１のユーザーから通信開始要求を受付け、
前記通信開始要求の受付けに応じて、前記第２の端末の第２のユーザーの利用する第２のメールアドレス宛てに通信開始要求を電子メールにて送信し、
前記第２の端末において、
前記通信開始要求を受信し、
前記通信開始要求の受信を前記第２の端末の第２のユーザーへ通知し、
前記第２のユーザーからの通信開始の許可を受付け、
前記通信開始の許可の受付けに応じて通信許可通知を前記第１の端末へ送信する
ことを特徴とする通信制御方法。
【請求項１１】
前記通信開始要求には、少なくとも前記第１の端末に割り当てられたＩＰアドレスの情報が含まれ、前記通信許可通知には、少なくとも前記第２の端末に割り当てられたＩＰアドレスの情報が含まれることを特徴とする請求項１０に記載の通信制御方法。
【請求項１２】
前記第１の端末にプライベートＩＰアドレスが割り当てられる場合に、前記通信開始要求には、少なくとも前記プライベートＩＰアドレスの情報と、前記第１の端末が前記第２の端末との間で前記通話情報を通信するために利用可能な仲介サーバーに割り当てられているグローバルＩＰアドレスの情報とが含まれるとともに、前記通信開始要求は前記仲介サーバーへも送信され、
前記通信許可通知は、前記仲介サーバーへも送信されることを特徴とする請求項１０に記載の通信制御方法。
【請求項１３】
前記仲介サーバーへの通信開始要求及び前記通信許可通知は、前記仲介サーバーとのＴＣＰ／ＩＰセッションにおいて送信され、
前記通信許可通知は、前記第２のユーザーの電子メールアドレス宛てに電子メールにて送信されることを特徴とする請求項１２に記載の通信制御方法。
【請求項１４】
インターネットを介して通信可能な第１の通信端末と第２の端末とを含む複数の端末の間における通話情報の通信のために、第２の端末を利用するユーザーの電子メールアドレス宛てに、前記通話情報の通信を開始する要求を電子メールにて通知する工程を備える通信制御方法。
【請求項１５】
請求項１乃至請求項１４のいずれか１項に記載の通信制御方法をコンピュータに実行させるための通信制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットに接続可能な端末間において、インターネットを介したリアルタイム情報通信によりインターネット電話通信を実現するための通信制御方法及び通信制御プログラムに関する。より具体的には、特殊なハードウエア機器を必要とせずに、グローバルＩＰアドレス間だけでなく、プライベートＩＰアドレスにまたがって通信可能であり、また利用者の所在地（利用中の端末）に対して電話をかけることができるインターネット電話システムとその情報処理に関するものである。
【０００２】
【従来の技術】
インターネット、ＬＡＮなどで採用される通信プロトコルであるＴＣＰ／ＩＰでは、端末等に与えられるネットワーク上のアドレスとして、グローバルＩＰアドレスとプライベートＩＰアドレスという２種類が存在する。
【０００３】
グローバルＩＰアドレスとは、インターネット上で直接に利用して端末をインターネット上で特定するためのアドレスであって、グローバルＩＰアドレスが割り当てられた端末はインターネットに接続して、同様にインターネットに接続されている端末、ネットワークにアクセスできる一方、他のネットワークや端末からのアクセスを受付けることができる。
【０００４】
プライベートＩＰアドレスとは、インターネット上で直接利用されるＩＰアドレスではなく、組織内ＬＡＮ等においてネットワーク管理者によってＬＡＮに接続する端末に任意に割り当てられるローカルなアドレスのことを言う。従って、プライベートＩＰアドレスは、あるＬＡＮにおいては特定の端末を一意に決定できるが、インターネットに接続する複数のＬＡＮにおいて重複して使用される性質があり、端末を一意に特定できないので、インターネット上では利用できない。
【０００５】
インターネット電話（本出願において「インターネット電話」とは、ネットワーク接続環境下のパーソナルコンピュータ（ＰＣ）や携帯用情報端末（ＰＤＡ）等の通信端末を利用してインターネットを介してリアルタイムの音声・画像通信（通話）を行う通信の形態を意味する。）では、通話情報の双方向通信を行うために一般に通信を行う各端末がグローバルＩＰアドレスを有していることを必要とする。もし、通信を行おうとする一方の端末がプライベートＩＰアドレスしか有していない場合には、他方のグローバルＩＰアドレスを有する端末は、通信相手を特定できないために、通話情報を受け取ることができないことになる。
【０００６】
【発明が解決しようとする課題】
図１２は、プライベートＩＰアドレスが割り当てられている端末１３０２と、グローバルＩＰアドレスが割り当てられている端末１３１０との間でインターネット電話を利用した音声及び画像の情報通信を行う場合を説明するための図面である。
【０００７】
図１２において、端末１２０２はグローバルＩＰアドレスを有する端末１２１０に対してアクセスすることができる。その際、端末１２０２は、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ、或いは、ＮＡＰＴ：Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）サーバー１２０４を介して、自己のプライベートＩＰアドレスをグローバルＩＰアドレスへ変換する。このアドレス変換機能は、割当て可能なグローバルＩＰアドレスを動的にプライベートＩＰアドレスに割り当てるものであるので、端末１２１０は、端末１２０２からアクセスを受けた際にグローバルＩＰアドレスが通知されても、そのアドレスを利用して端末１２０２へアクセスすることができない。つまり、ルーター１２０３に接続される図１２には不図示の端末が複数あり、そのいずれの端末にもグローバルＩＰアドレスが動的に割り当てられる可能性があり、端末１２０２を特定できないためである。
【０００８】
また、ＮＡＴはアドレス変換の際にポート番号まで置換するので、置換されたポート番号とグローバルＩＰアドレスを特定してアクセスしても、外部からのアクセスに対しては、ＬＡＮ１２０１に設定されたファイアウォールが機能して接続が拒否されるという問題がある。
【０００９】
このように、一般的なインターネット接続環境においては、グローバルＩＰアドレスが静的に割り当てられていない端末を利用したインターネット電話による通信を行うことができない。
【００１０】
それでも通信を行おうとする場合は、ルーターを特別に設定したり、専用のルーター機能を持つ中継器を設置したりすることもできるが、その場合にはＩＰアドレスもしくはルーターの設定に関する知識とデータ入力が利用者に求められる。
【００１１】
また、専用ルーターのようなインターネット電話のための専用のハードウエア機器を用いる場合には、データの送受信のために専用のポートを使用するために、組織内ＬＡＮに設置されたファイアウォールを越えることができないという問題がある。
【００１２】
さらに、グローバルＩＰアドレスを特定のクライアントマシンに静的に割り当てることもできるが、通常は割当て可能なグローバルＩＰアドレスの数には限界があり、組織内ＬＡＮに接続された全てのクライアントマシンのうちごく一部のマシンのみがインターネット電話が利用できるだけとなってインターネット電話を導入する意義がなくなってしまうだけでなく、他のクライアントマシンのインターネット接続状況にも大きな影響を与えることとなる。
【００１３】
また、従来は、いわゆる電話番号として、端末のＩＰアドレスが使用されるため、通話をしようとする相手方の最新のＩＰアドレスを通話前に把握していなければならず、固定的なグローバルＩＰアドレスを持たない端末では、事実上相手先を特定できないことになる。また、電話番号代わりにＩＰアドレスを使用する場合は、インターネットの世界で一般ユーザには馴染みのないものでありインターネット電話の普及の妨げとなっている。
【００１４】
この問題を解決するために、インターネット上にゲートキーパー（ＧＫ）と呼ばれる通話管理サーバーを設置し、通話を行おうとする者に対しては事前登録を求めている。この方式ではロケーションサーバーとの組み合わせで、相手のアドレスを特定することができるが、別個独立のシステム間ではＧＫの持つＩＤ情報を交換する仕組みがなく、広範にエンド・ツー・エンド（ｅｎｄ  ｔｏ  ｅｎｄ）のコミュニケーションを行うことができない。また、このＧＫの機能は、利用者側に設置できるようには設計されておらず、利用者側での安定した運用が妨げられている。さらに、ＧＫを介する方式でも、ＩＰアドレスの代わりに一般ユーザには馴染みのないＧＫが指定するシステム固有のアドレスを使用しなければならないため、インターネット電話の普及の妨げとなっている。
【００１５】
さらに、ＩＰアドレスを電話番号の代わりに使用してＰＣ間の通話を確立させる場合には、当該ＩＰアドレスが割り当てられたクライアントマシンを目的とする相手が利用しているかどうかの在席情報を管理する必要がある。この在席情報は、エンド・ツー・エンドの通信では非常に重要であり、在席情報が管理されない限り、通話要求はユーザの現在位置に関係なくクライアント端末に対して行われてしまい、プライバシーを保護することができないという問題が発生する。
【００１６】
【課題を解決するための手段】
上記課題を解決するための本発明は、インターネット接続環境を有するクライアントマシンであれば、割り当てられるＩＰアドレスが、グローバルであろうがプライベートであろうが、一律にインターネット電話により通話が可能であり、かつ、特別なハードウェアを新たに設置したり、煩雑な環境設定を行うことなく、現状のインターネット接続環境においてインターネット電話による通話を可能とすることを目的として、以下の手段を提供する。
【００１７】
インターネットを介して通信可能な第１の端末と第２の端末とを含む複数の端末の間における通話情報の通信を制御するための通信制御方法において、前記第１の端末は、前記第１の端末の第１のユーザーから入力される情報を利用して第１の通話情報を生成し、前記第２の端末は、前記第２の端末の第２のユーザーから入力される情報を利用して第２の通話情報を生成し、前記第１の端末のみにグローバルＩＰアドレスが割り当てられている場合に、前記第２の端末は、前記第１の端末に対して前記第２の通話情報をアップロードし、前記第１の端末から前記第１の通話情報をダウンロードすることを特徴とする。
【００１８】
また、前記第１の端末及び前記第２の端末にプライベートＩＰアドレスのみが割り当てられている場合には、前記第１の端末及び前記第２の端末は、インターネット上のサーバーに対して前記第１の通話情報及び第２の通話情報をそれぞれアップロードし、前記サーバー上にアップロードされた前記第２の通話情報及び第１の通話情報をそれぞれダウンロードすることを更に特徴とする。
【００１９】
さらに、前記第１の端末及び前記第２の端末にグローバルＩＰアドレスが割り当てられている場合には、前記第１の端末が前記第２の通話情報をダウンロードし、前記第２の端末が前記第１の通話情報をダウンロードすることを特徴とする。
【００２０】
さらに、上記課題を解決するための本発明の別の側面は、インターネットを介して通信可能な第１の端末と第２の端末との間における通話情報の通信を仲介するための通信制御方法において、前記第１の端末から、前記第１の端末において生成された第１の通話情報のアップロードを受付け、前記第２の端末から、前記第２の端末において生成された第２の通信情報のアップロードを受付け、前記第１の端末から、前記アップロードされた前記第２の通話情報のダウンロードを受付け、前記第２の端末から、前記アップロードされた前記第１の通話情報のダウンロードを受付けることを特徴とする。
【００２１】
上記課題を解決するための本発明の更に別の側面では、インターネットを介して通信可能な第１の端末と第２の端末とを含む複数の端末の間において、前記第１の端末から前記第２の端末に対して通話情報の通信を開始しようとする場合の通信を制御通信制御方法において、前記第１の端末において、前記第１の端末の第１のユーザーから通信開始要求を受付け、前記通信開始要求の受付けに応じて、前記第２の端末の第２のユーザーの利用する第２のメールアドレス宛てに通信開始要求を電子メールにて送信し、前記第２の端末において、前記通信開始要求を受信し、前記通信開始要求の受信を前記第２の端末の第２のユーザーへ通知し、前記第２のユーザーからの通信開始の許可を受付け、前記通信開始の許可の受付けに応じて通信許可通知を前記第１の端末へ送信することを特徴とする。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００２３】
図１は、本発明の実施形態に対応したインターネット電話システムの構成を示す図である。まず、図１において１０１及び１０２は、本発明のインターネット電話システムを利用して音声情報及び画像情報を含む通話データ（詳細については後述する。）の通信を行うユーザーが利用する端末であり、グローバルＩＰアドレスかプライベートＩＰアドレスが静的に割り当てられている。但し、プライベートＩＰアドレスについては、不図示のＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ：動的ホスト割当てプロトコル）サーバーを利用して動的に割り当てられてもよい。これ以降の説明においては、ユーザー端末１０１を利用するユーザーをユーザー１、ユーザー端末１０２を利用するユーザーをユーザー２と呼ぶ。
【００２４】
図１では、ユーザー端末１０１とユーザー端末１０２との間でユーザー１とユーザー２とが通話する場合を記載しているが、これはあくまで例示であって、本発明におけるインターネット電話では２者間通話に限られず、ユーザー端末１０５からユーザー端末Ｎまでの３以上のユーザーが同時に通話することが可能である。
【００２５】
１０３は、ユーザー端末１０１又は１０２のいずれかが静的にグローバルＩＰアドレスを割り当てられない端末である場合に、音声通信の仲介を行うためのフォンゲート（ＰｈｏｎｅＧａｔｅ）サーバーである。１０４は、インターネットであり、ユーザー端末１０１、１０２及びＰｈｏｎｅＧａｔｅサーバー１０３がそれぞれ接続されている。図１では、接続を簡略化して記載しているが、ユーザー端末１０１及び１０２は、組織内ＬＡＮに接続されたクライアント端末等である場合に、図１０に記載したようにＬＡＮ上のＮＡＴサーバーやルーター、ＤＨＣＰサーバー等を介してインターネットに接続していることは言うまでもない。
【００２６】
次に、図２ａを参照してユーザー端末１０１及び１０２の構成の概略を説明する。図２ａにおいて、ＣＰＵ２０１は、ＲＯＭ２０２、ＲＡＭ２０３、または、内部記憶装置７０４に記憶されたプログラムに従って、ユーザー端末１０１又は１０２全体の動作を制御するものである。ＲＯＭ２０２は、ＣＰＵ２０１の制御プログラム等を格納している。ＲＡＭ２０３は、一時的にプログラムなどを記憶し、ユーザー端末１０１又は１０２の処理を高速に動作させるためのものである。
【００２７】
内部記憶装置２１２は、アイネットフォン（ＩｎｅｔＰｈｏｎｅ）プログラム２１３、アドレス帳データ２１４、及びオペレーティング・システム（ＯＳ）２１５の他、各種アプリケーションプログラムや、ウェブブラウザソフト、表示用オブジェクト等が更に格納されている。
【００２８】
ユーザーＩ／Ｆ（インタフェース）２０４は、キーボードやマウス等の入力用インターフェースである。表示部２１１は、ＩｎｅｔＰｈｏｎｅプログラムにより生成されるＧＵＩ（グラフィカル・ユーザー・インタフェース）画面やブラウザ画面など各種表示を行うものである。通信部２０５は、インターネット１０４に接続して相互通信を行うためのものである。
【００２９】
２０６はサウンド処理部であって、マイク２０８で収録される音声をデジタルデータへ変換してユーザー端末内に取り込み可能としたり、デジタルデータをアナログ信号へ変換してスピーカ２０７を使用して音情報を再生する等の機能を果たすものである。
【００３０】
画像処理部２０９は、画像入力部２１０で取得されるアナログ画像信号をデジタル画像データに変換する処理を実行する。画像入力部２１０は、例えばＣＣＤやＣＭＯＳ等の画像撮像素子を利用したイメージセンサで構成される。
【００３１】
次に、ＩｎｅｔＰｈｏｎｅプログラム２１３の詳細について図２ｂを参照して説明する。
【００３２】
まず、図２ｂにおいて、ＩｎｅｔＰｈｏｎｅプログラムは、通話データ処理モジュール２２１、呼出しモジュール２２２、待受けモジュール２２３、接続モジュール２２４、環境設定モジュール２２５を有している。
【００３３】
通話データ処理モジュールは２２１、ユーザー端末１０１及び１０２の間で送受信される通話データを処理するためのプログラムである。具体的には、マイク２０８からサウンド処理部２０６を介して取得された音声情報及び、画像入力部２１０から画像処理部２０９を介して取得された画像情報を、ＨＴＭＬファイルに添付可能なデータストリームに変換して、ＨＴＭＬファイルに添付して通話データを生成（より具体的には、画像情報及び音声情報のデータストリームを圧縮し、生成されたバイトデータをＨＴＴＰエンコードされたテキストファイルの形式に変換）したり、受信したＨＴＭＬファイル形式の通話データから音声及び画像データストリームを抽出して、音声はサウンド処理部２０６を介してスピーカ２０７により再生可能な情報に、画像は表示部において表示可能な情報に処理する。
【００３４】
なお、通話データ処理モジュール２２１において生成されるデータストリームのビットレートは、後述する環境設定モジュール２２５において設定された通信速度（通信帯域）に応じて変更される。例えば、５６ｋｂｐｓのモデムを使った端末と通信する場合には、音声データストリームのビットレートを１４．４ｋｂｐｓに落とす一方で、ＡＤＳＬやケーブルインターネット回線を利用した通信により例えば１２Ｍｂｐｓの通信速度が確保できるような場合にはレートを１３２ｋｂｐｓまで上げても良い。
【００３５】
呼出しモジュール２２２は、ユーザー端末１０１がユーザー端末１０２へ電話を掛けようとする場合に、ユーザー端末１０２のユーザー２を呼び出す処理を実行するためのプログラムであり、ユーザー２が使用するメールアドレス宛てにメールを送信する。そこで以下の本実施形態では、ユーザー１を発信者として、ユーザー２を着信者として、ユーザー端末１０１を発信者側端末として、更にユーザー端末１０２を着信者側端末として説明する。
【００３６】
待受けモジュール２２３とは、ＩｎｅｔＰｈｏｎｅプログラムがインストールされた全ての端末において常駐するプログラムであり、発信側から送信される通話要求メールを受付けるためのプログラムである。具体的に本実施形態では、ユーザー端末１０２においてユーザー端末１０１からメールにて送信される通話要求を受付けるのに、ポート番号１１０／１４３を常に監視している。また、待受けモジュール２２３は、ユーザー端末１０２のユーザー２がユーザー端末１０１のユーザー１からの着信を拒否する場合や、通話要求を受付けた時点でユーザー２が既に第三者と通話中である場合に、「着信拒否」や「話し中」などのステータスをメールにてユーザー１のメールアドレス宛てに返信する機能も果たす。
【００３７】
接続モジュール２２４は、ユーザー端末１０１とユーザー端末１０２との間の通話データを送受信するために、互いの端末に対して音声及び画像データが添付されたＨＴＭＬファイルをダウンロード／アップロードするためのプログラムである。
【００３８】
環境設定モジュール２２５は、通話を行う端末間における種々の通話条件を設定するとともに、設定情報を通話相手方の端末やＰｈｏｎｅｇａｔｅサーバー１０３へ通知するためのプログラムである。環境設定モジュール２２５では、通話を行う２つの端末間における通信速度、及び、各端末のモデムの性能などに基づいて通信速度などの設定の他、音声・画像データのフォーマット設定、音声・画像処理デバイスを複数積んでいる端末における音声・画像の入出力デバイスの設定、ポートの設定、着信音の設定などを行う。この設定情報はＨＴＭＬファイルにて相手方端末もしくはＰｈｏｎｅｇａｔｅサーバー１０３へ送信される。
【００３９】
例えば、環境設定モジュール２２５では、「受信した音声データ量」  ＜  「通話時間に相当するデータ量」が成立するような場合、即ち、音声データフォーマットが大きいためにデータの受信速度が通話速度に追いつかないような場合に、音声データのフォーマットの設定を低音質のものに変更する。その一方で、「受信した音声データ量」＞＞  「通話時間に相当するデータ量」が成立するような場合、即ち、通信速度が充分に確保されているために、通話速度に対してデータ受信速度が充分に高速な場合は、音声データのフォーマットの設定を高音質のものに変更する。環境設定モジュール２２５におけるフォーマット設定処理の詳細は後述する。
【００４０】
次に、図３ａを参照してＰｈｏｎｅＧａｔｅサーバー１０３の構成の概略を説明する。ＰｈｏｎｅＧａｔｅサーバー１０３は、ＰｈｏｎｅＧａｔｅプログラム３１３がインストールされたマシンであればよいので、ユーザー端末１０１にＰｈｏｎｅＧａｔｅプログラム３１３をインストールすることによって、ＰｈｏｎｅＧａｔｅサーバー１０３としても機能させることができる。また、ＰｈｏｎｅＧａｔｅサーバーを構成する要素のうち、３０１から３１１は図２ａに示すユーザー端末１０１及び１０２の２０１から２１１までの構成要素と同様の機能を達成するので説明は省略する。
【００４１】
内部記憶装置３１２は、ＰｈｏｎｅＧａｔｅプログラム３１３、アドレス帳データ３１４、及びオペレーティング・システム（ＯＳ）３１５の他、各種アプリケーションプログラムや、ウェブブラウザソフト、表示用オブジェクト等が更に格納されている。
【００４２】
ＰｈｏｎｅＧａｔｅプログラム３１３の詳細については、図３ｂを参照して説明する。図３ｂにおいて、ＰｈｏｎｅＧａｔｅプログラム３１３は、音声送受信モジュール３２１、データ中継モジュール３２２、メタ情報送受信モジュール３２３、セッション管理モジュール３２４によって構成される。
【００４３】
通話データ送受信モジュール３２１は、ユーザー端末１０１及び１０２が共にプライベートＩＰアドレスを割り当てられる端末である場合に、それぞれの端末からの通話データのアップロード及び、アップロードされた通話データのユーザー端末１０１及び１０２によるダウンロードを制御するためのプログラムである。
【００４４】
データ中継モジュール３２２は、通話データを中継するためのプログラムである。より具体的には例えば、ユーザー端末１０１からアップロードされた通話データを、ユーザー端末１０２がダウンロード可能なようにデータを中継するためのプログラムである。
【００４５】
メタ情報送受信モジュール３２３とは、ＰｈｏｎｅＧａｔｅサーバー１０３とユーザー端末１０１及び１０２との間の通信状況（帯域状態又は通信速度）に関する情報や、各端末において環境設定モジュール２２５において設定される設定情報をユーザー端末１０１及び１０２との間で送受信するためのプログラムである。
【００４６】
また、メタ情報送受信モジュール３２３は、ユーザー端末１０１又１０２のいずれかがグローバルＩＰアドレスを有する場合に、ＰｈｏｎｅＧａｔｅサーバー１０３のグローバルＩＰアドレスを使わずに、いずれかのユーザー端末のグローバルＩＰアドレスを使った通話に切替えるための切替情報を通信するためのプログラムでもある。
【００４７】
セッション管理モジュール３２４とは、ユーザー端末１０１及び１０２間の通話のための通信セッションを管理するためのプログラムである。具体的には、プライベートＩＰアドレスを有するユーザー端末からの通話開始のための通話要求を監視したり、通話終了を監視したりする。
【００４８】
次に、図４を参照して、本発明のインターネット電話システムにおける通話形態を説明する。図４において「ＧＡ」とはグローバルＩＰアドレスの略で、「ＰＡ」とはプライベートＩＰアドレスの略である。以下、他の図面においても同様である。
【００４９】
まず、（ａ）は、グローバルＩＰアドレスを有する端末４０１とプライベートＩＰアドレスを有する端末４０２との通話における処理の概要を説明するための図である。（ａ）では、端末４０２はプライベートＩＰアドレスしか静的に与えられていないため、端末４０１は端末４０２を特定することができず、端末４０１から端末４０２へ通話データをダウンロードすることができない。しかし、端末４０２から端末４０１へのアップロードは、端末４０２がグローバルＩＰアドレスを有するために可能である。そこで、端末４０２は、端末４０１に対して自己の通話データをアップロードすると共に、端末４０１におけるユーザーの通話データを端末４０２側にダウンロードする。これにより、端末４０１及び端末４０２は共に、相手方の通話データを取得することができ、通話を行うことが可能となる。
【００５０】
次に、（ｂ）は、端末４０３及び４０４が共にグローバルＩＰアドレスを有する場合を示しており、この場合は、端末４０３及び端末４０４との間で、互いに相手方の通話データをダウンロードし合うことにより、通話データを取得することができる。よって、端末４０３と端末４０４との間で通話が成立する。
【００５１】
（ｃ）は、端末４０５及び端末４０６が共にプライベートＩＰアドレスのみを有する場合を示している。この場合、各端末は相手方を特定してアクセスすることができないので、ＰｈｏｎｅＧａｔｅサーバー４０７を介して通話を行う。具体的には、端末４０５及び４０６はそれぞれＰｈｏｎｅＧａｔｅサーバー４０７に対して、自己の通話データをアップロードする。これにより、ＰｈｏｎｅＧａｔｅサーバー４０７には、端末４０５及び４０６において生成された通話データを取得することができる。そして、これらの通話データが端末４０５及び４０６からダウンロードされ、各端末において再生されることにより通話が成立する。このように、ＰｈｏｎｅＧａｔｅサーバー４０７は、端末４０５及び４０６の間に位置して、通話データの仲介を行う。
【００５２】
このように本発明では、グローバルＩＰアドレスを有する端末もしくはサーバーを基準として通話データをダウンロード或いはアップロードすることによって通信が成立する。従って、グローバルＩＰアドレスを有する端末又はサーバーが存在する限り、２以上のユーザー間で通話を同時に行うことは技術的に全く障害が存在しない。
【００５３】
例えば、図４（ｄ）のように、グローバルＩＰアドレスを有する端末４０８とプライベートＩＰアドレスを有する端末４０９及び端末４１０との通話では、端末４０９及び端末４１０は端末４０８に対して自己の通話データをそれぞれアップロードすると共に、端末４０８で生成された通話データ及び他方の端末によりアップロードされた通話データをダウンロードすればよい。このようにすれば、端末４０８、４０９、４１０の各ユーザー間において通話が成立することが分かる。
【００５４】
次に、より具体的に、図４に示した通話形態を実現するための本発明における通話処理の詳細を図５から図８に示すフローチャートを参照して説明する。以下では、説明の簡単のために２者間通話の場合を例として採り上げるが、本発明は２者間通話に限定されることなく、より多数のユーザー間での通話を可能とするものである。
【００５５】
まず、図５ａ及び図５ｂを参照してユーザー１（ユーザー端末１０１）からユーザー２（ユーザー端末１０２）へ電話をかける場合について説明する。
【００５６】
まず、ユーザー１が電話をかけようとする場合には、ユーザーはＩｎｅｔＰｈｏｎｅプログラムを起動する（ステップＳ５０１）。ＩｎｅｔＰｈｏｎｅプログラムが起動されると、ユーザー端末１０１のＩＰアドレスが確認される。その結果、ユーザー端末１０１にグローバルＩＰアドレスが静的に割り当てられている場合には、ステップＳ５０３に移行する。一方、プライベートＩＰアドレスが静的に割り当てられている場合には、ステップＳ５１４に移行する。
【００５７】
まず、ユーザー端末１０１にグローバルＩＰアドレスが割り当てられている場合について以下に説明する。まず、ステップＳ５０３では、ユーザー１から着信側メールアドレスの入力を受付けるためのＧＵＩを表示部２１１に表示して、着信側、即ちユーザー２が使用するメールアドレスの入力を受付ける。
【００５８】
このとき、表示部２１１に表示される画面の一例は、図９に示すとおりである。図９において、９０１は、通話相手となる相手の名前を入力するための入力欄である。このユーザー名は、ＩｎｅｔＰｈｏｎｅプログラムのユーザーが任意に入力することができる。
【００５９】
９０２は、通話相手（本実施形態の説明においてはユーザー２）にメール送信するためのメールアドレスを入力する入力欄である。９０３は、ＰｈｏｎｅＧａｔｅサーバー１０３を入力するための入力欄である。ユーザー端末１０１がプライベートＩＰアドレスしか持たない場合は、ＰｈｏｎｅＧａｔｅサーバー１０３を介して通話を行う必要があるので、ＰｈｏｎｅＧａｔｅサーバー１０３を指定する。もし、ユーザー端末１０１がグローバルＩＰアドレスを有する場合には、９０３は空欄でよいし、ユーザー設定により入力欄９０３自体を表示部２１１上に表示しないように設定しても良い。
【００６０】
９０４は、通話を開始しようとする場合に、通話開始要求メールの送信指示を行うための通話開始ボタンである。９０５は、通話を終了しようとする場合に、通話終了指示を行うための通話終了ボタンである。
【００６１】
９０６は、通話ステータスの表示欄であって、通話中は通信速度を表示することができる。また、通話しようとする相手方が通話中であったり、着信拒否された場合には、「通話中」「着信拒否」などの表示を行いその旨をユーザーに通知する。
【００６２】
９０７は、内部記憶装置２１２に格納されたアドレス帳データを呼び出すためのボタンであり、入力欄９０１乃至９０３への入力を、ユーザーＩ／Ｆにおけるキーボードからの入力によらず、ボタン９０７をクリックしてアドレス帳を呼び出して選択入力することもできる。
【００６３】
９０８は、ユーザー設定を行う場合に、設定画面を呼び出すためのボタンである。ユーザー設定画面では、ユーザー名、メールアドレス、使用するＰｈｏｎｅＧａｔｅサーバー名等を含むユーザー情報の登録、上記のＰｈｏｎｅＧａｔｅサーバーの選択欄の非表示設定、画面９００の表示モード選択、９０９に表示される広告の選択、ユーザー端末１０１の通信速度の設定などの設定を行うことができる。
【００６４】
９０９は、広告表示欄であり、ＩｎｅｔＰｈｏｎｅプログラムの起動中は、この欄に広告が表示される。広告データは、ＩｎｅｔＰｈｏｎｅプログラムをダウンロードしたサーバーから定期的にダウンロードして更新することができる。
【００６５】
ボタン９０７により呼び出されるアドレス帳データには、図１０に示すような各ユーザーの情報が登録されている。まず、１００１にはニックネームとして、ユーザー２を含む各ユーザーを特定するための識別子が登録されている。このニックネーム１００１はユーザー１が任意に割り付けることもできるし、相手方ユーザーから指定された情報を登録しても良い。登録形態は、例えば『日本大介』や『Ｔｏｍ』或いは『タロー』といったように人名や愛称その他ユーザーを識別できる情報であれば、どのような形態であっても良い。
【００６６】
１００２には、ニックネーム１００１によって識別されるユーザーの有するメールアドレスが登録されている。また、１００３にはマシン名が登録されているが、これは、組織内ＬＡＮにおいてマシン名が付されている場合の当該マシン名である。１００４には、相手方ユーザーが使用する端末にグローバルＩＰアドレスが割り当てられている場合に、そのグローバルＩＰアドレスが登録される。例えば図１０の『日本大介』が使用する端末には、マシン名とグローバルＩＰアドレスが割り当てられている。
【００６７】
１００５には、ＰｈｏｎｅＧａｔｅサーバー１０３の情報が登録される。この情報には、登録ユーザーと通話する際に利用するＰｈｏｎｅＧａｔｅサーバー１０３のグローバルＩＰアドレスと、ＰｈｏｎｅＧａｔｅサーバー１０３宛のメールアドレスが含まれる。登録対象となるＰｈｏｎｅＧａｔｅサーバー１０３は、相手方ユーザーから指定された場合は、指定されたＰｈｏｎｅＧａｔｅサーバー１０３を登録し、相手方から特に指定されない場合にはアドレス帳の持ち主であるユーザーが指定するＰｈｏｎｅＧａｔｅサーバー１０３を登録すればよい。相手方から特に指定されるのは、『Ｔｏｍ』の場合のように、相手方の同一ドメイン内にＰｈｏｎｅＧａｔｅサーバーが設置されているような場合が考えられる。
【００６８】
１００６は通話のために利用するポート番号である。一般的には、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に割り当てられているポート番号「８０」を利用するが、ＰｈｏｎｅＧａｔｅサーバー１０３において別のポート番号が割り当てられている場合には、割り当てられているポート番号を登録する。図１０の場合は、『Ｔｏｍ』について２５５９６が割り当てられている。
【００６９】
また、図１０においては、１ユーザー１登録情報として登録しているが、インターネットへの接続環境を複数有するユーザーがいる場合には、各接続環境に応じた登録情報を持たせても良い。例えば、職場と自宅の両方においてインターネット接続環境を有するユーザーは、ニックネーム１００１やメールアドレス１００２は共通であるが、職場にいるのか自宅にいるのかに応じて端末情報が変化する。従って、職場用の端末情報と、自宅用の端末情報とを同一のニックネーム１００１、メールアドレス１００２について持たせることも可能である。
【００７０】
ここで再びステップＳ５０３に戻ると、ユーザー１からユーザー２宛のメールアドレスの入力を受付け、通話開始ボタン９０４によるメール送信指示を受付けると、ステップＳ５０４に移行して、通話要求メールの送信処理を行う。ステップＳ５０４において送信される通話要求メールの添付データの一例を図１１に示す。
【００７１】
まず、通話要求メールでは、＜ｒｅｑｕｅｓｔ＞を記述することにより、送信するメールが通話要求メールであることを明示する。さらに、＜ｓ−  ｍａｉｌ  ａｄｄｒｅｓｓ＞  ＜ｓ−  ｎａｍｅ＞  ＜ｓ−  ｉｐ  ａｄｄｒｅｓｓ＞  ＜ｓ−ｐｈｏｎｅｇａｔｅ  ａｄｄｒｅｓｓ＞＜ｓ−  ｐｈｏｎｅｇａｔｅ  ｐｏｒｔ＞には、送信者のメールアドレス、ニックネーム、ＩＰアドレス、Ｐｈｏｎｅｇａｔｅサーバー１０３のＩＰアドレス、Ｐｈｏｎｅｇａｔｅサーバー１０３から指定されるポート番号が記載される。
【００７２】
通話要求メールでは、受信者についてのデータ（＜ｒ−  ｍａｉｌ  ａｄｄｒｅｓｓ＞  ＜ｒ−  ｎａｍｅ＞  ＜ｒ−  ｉｐ  ａｄｄｒｅｓｓ＞  ＜ｒ−ｐｈｏｎｅｇａｔｅ  ａｄｄｒｅｓｓ＞  ＜ｒ−  ｐｈｏｎｅｇａｔｅ  ｐｏｒｔ＞）は記載されていなくても良い。但し、既に通話経験のある着信者に対して通話要求を送る場合には、アドレス帳データ２１４の登録情報に基づいて情報を添付することができる。
【００７３】
また、＜ｓｏｕｎｄ  ｍｏｄｅ＞及び＜ｍｏｖｉｅ  ｍｏｄｅ＞には、ユーザー端末１０１の環境設定モジュール２２５による設定内容に応じて、音声及び画像データの帯域、方式に関する情報を記述する。例えば、ｓｏｕｎｄ  ｍｏｄｅとして＜１＞という設定情報、ｍｏｖｉｅ  ｍｏｄｅとして＜３＞という設定情報を記述することができる。この設定情報としては、フォーマットが複数存在する場合に、各フォーマットに割り当てられた番号を記載することができる。
【００７４】
通話要求メールの送信の後は、着信側であるユーザー２からの通話許可のメールが送信されてきたかどうかを監視する（ステップＳ５０５）。もし、ユーザー２から通話許可を受信せず、ステップＳ５０６において着信拒否を通知するメールを受けた場合には、処理を終了する。ここでは、メールのＳｕｂｊｅｃｔ部やヘッダー部に例えば「ＮＧ」、「ＲＥＪＥＣＴ」或いは「ＢＵＳＹ」と記述することにより、着信拒否を通知することができる。また、上記の記述内容を使い分けることにより、着信拒否理由を通知できるようにしても良い。
【００７５】
一方、着信側ユーザー２から通話許可通知メールを受信した場合には、メールの添付情報を抽出してユーザー２の利用するユーザー端末１０２のＩＰアドレスを確認する（ステップＳ５０７）。ユーザー端末１０２のＩＰアドレスは通話許可通知に添付されるメッセージから抽出することができる。図１１ｂは、通話許可を通知するメールの一例を示す図である。ここでは、メールのヘッダ部に例えば「ＯＫ」、「ＡＣＣＥＰＴ」などと記述することにより、着信許可を通知することができる。
【００７６】
ここで、相手方のユーザー端末１０２のＩＰアドレスがグローバルＩＰアドレスである場合には、ステップＳ５０９において通話処理１を実行し、プライベートＩＰアドレスである場合には、ステップＳ５１０において通話処理２を実行する。通話処理１及び通話処理２の詳細は後述する。
【００７７】
ユーザー１とユーザー２との間で通話が継続している間は、表示部２１１に図９の９０６に示すようなＧＵＩが表示され、各ユーザーは通話状態を把握することができる。ユーザー１が通話を終了しようとする場合には、例えば表示部２１１に表示された通話終了ボタン９０５をクリックすることができる。この通話終了ボタン９０５のクリックをステップＳ５１１において受付け、ステップＳ５１３おいて通話終了通知を行い、通話を終了する。ステップＳ５１３における通話終了通知は、例えば、「ｅｎｄ  ｃａｌｌ」文字列をヘッダーに記述したＨＴＭＬファイルを相手方に送信することによっても可能である。
【００７８】
また、ユーザー１により通話終了ボタン９０５がクリックされるより前に、ユーザー２側で通話終了ボタン９０５がクリックされた場合には、ステップＳ５１２においてユーザー端末１０１宛てに通話終了通知が送信されるので、この通話終了通知を受信した場合にも、通話処理を終了する。
【００７９】
ユーザー１による通話終了ボタン９０５のクリックを受付けることもなく、ユーザー端末１０２からの通話終了通知を受信することもない場合には、さらにステップＳ５０９の通話処理１又はステップＳ５１０の通話処理２を継続する。
【００８０】
ここでステップＳ５０２に戻って、ユーザー端末１０１にプライベートＩＰアドレスのみが割り当てられている場合について説明する。この場合、ステップＳ５１４に移行して、ステップＳ５０３と同様に図９に示すような、着信側メールアドレスの入力を受付けるためのＧＵＩを表示部２１１に表示して、ユーザー１からユーザー２が使用するメールアドレスの入力を受付ける。
【００８１】
また、ステップＳ５１５において、ＰｈｏｎｅＧａｔｅサーバー１０３の指定を受付ける。もし、ユーザー２からＰｈｏｎｅＧａｔｅサーバー１０３が指定されている場合には、その指定されたＰｈｏｎｅＧａｔｅサーバー１０３を選択する。一方、ユーザー２から特にＰｈｏｎｅＧａｔｅサーバー１０３が指定されていない場合には、ユーザー１が使用を希望するＰｈｏｎｅＧａｔｅサーバー１０３を選択すればよい。また、アドレス帳２１４にユーザー２が指定するＰｈｏｎｅＧａｔｅサーバー１０３が登録されていたり、ユーザー１がデフォルトで利用するＰｈｏｎｅＧａｔｅサーバー１０３が指定されていれば、ステップＳ５１５におけるユーザー１による指定ステップをスキップしても良い。
【００８２】
ステップＳ５１４及びステップＳ５１５においてメールアドレスの指定を受付け、発信指示を受付けると、ステップＳ５１６において、着信側であるユーザー２に対し通話要求のメールを送信する。また、ＰｈｏｎｅＧａｔｅサーバー１０３宛てに通話要求を通知する。Ｐｈｏｎｅｇａｔｅサーバー１０３はグローバルＩＰアドレスを有しているので、ユーザー端末１０１とＰｈｏｎｅｇａｔｅサーバー１０３との間でＴＣＰ／ＩＰセッションを確立することが可能である。よって、Ｐｈｏｎｅｇａｔｅサーバー１０３への通信要求の通知は、確立されたＴＣＰ／ＩＰセッションにおいてＨＴＭＬファイルを送信することにより行う。また、Ｐｈｏｎｅｇａｔｅサーバー１０３に与えられたメールアドレスを利用して通知を行えることは言うまでもない。
【００８３】
ユーザー２が着信を許可する場合には、着信側のユーザー端末１０２からＰｈｏｎｅｇａｔｅサーバー１０３宛てに着信許可通知が送信されるので、ユーザー端末１０１からＰｈｏｎｅｇａｔｅサーバー１０３に対し、定期的に通話許可通知のダウンロード要求がなされ、ＰｈｏｎｅＧａｔｅサーバー１０３から通話許可通知を受信できたかどうかを監視する（ステップＳ５１７）。また、この通話許可通知は、Ｐｈｏｎｅｇａｔｅサーバー１０３からユーザー１のメールアドレス宛に送信されても良い。
【００８４】
もし、ＰｈｏｎｅＧａｔｅサーバー１０３から通話許可を受信せず、ステップＳ５１８において、図１１ｃに示すような着信拒否の通知を受信した場合には、処理を終了する。一方、通話許可通知を受信した場合には、添付されている情報を抽出してユーザー２の利用するユーザー端末１０２のＩＰアドレスを確認する（ステップＳ５１９）。
【００８５】
ここで、ユーザー端末１０２にグローバルＩＰアドレスが割り当てられている場合には、ステップＳ５２１に移行して通話処理３を実行する。一方、プライベートＩＰアドレスしか割り当てられていない場合には、ステップＳ５２２において通話処理４を実行する。この通話処理３及び通話処理４の詳細は後述する。以降、ステップＳ５２３からステップＳ５２５の処理は、ステップＳ５１１からステップＳ５１３における処理と同様である。但し、ステップＳ５２５においては、通話終了通知を着信側端末であるユーザー端末１０２と、ＰｈｏｎｅＧａｔｅサーバー１０３の両方に送信する。
【００８６】
次に、ステップＳ５０９、ステップＳ５１０、ステップＳ５２１及びステップＳ５２２における通信処理１から通信処理４までの処理の詳細を説明する。
【００８７】
まず、図７ａは、ステップＳ５０９におけるグローバルＩＰアドレスを有する端末がグローバルＩＰアドレスを有する端末と通話する通話処理１の内容を示すフローチャートである。
【００８８】
まず、ステップＳ７０１において、マイク３０８からサウンド処理部３０６を介して音声情報を取得する。また、ステップＳ７０２において画像入力部３１０から画像処理部３０９を介して画像情報を取得する。ステップＳ７０１及びステップＳ７０２において取得された音声情報と画像情報は、ステップＳ７０３において、それぞれ通話データ処理モジュール２２１により音声データストリーム、画像データストリームに変換された後、ＨＴＭＬファイルに添付されて通話データが生成される。このデータストリームへの変換は、環境設定モジュール２２５において現時点で設定されているデータフォーマットに準じて行われる。
【００８９】
ステップＳ７０３において生成された通話データは、ユーザー端末内のＲＡＭ２０３に一時記憶される。ＲＡＭ２０３の通話データは、通話相手方の端末からダウンロードされる。
【００９０】
ステップＳ７０４では、上記のステップＳ７０１からＳ７０３までのステップと同様にして生成され格納された通話データを通話相手方のユーザー端末からダウンロードする。ダウンロードした通話データは、ＲＡＭ２０３に一時記憶されステップＳ７０５において処理される。
【００９１】
このステップＳ７０５では、ダウンロードした通話データから添付された音声データ及び画像データを抽出し、通話データ処理モジュール２２１において処理した後、ステップＳ７０６において再生する。
【００９２】
つぎに、ステップＳ５１０におけるグローバルＩＰアドレスを有する端末がプライベートＩＰアドレスを有する端末と通話する通話処理２における処理を図７ｂのフローチャートを参照して説明する。
【００９３】
ステップＳ７１１からステップＳ７１３までの処理は、図７ａのステップＳ７０１からステップＳ７０３と同様であるから説明を省略する。
【００９４】
ステップＳ７１４では、プライベートＩＰアドレスを有する相手方端末から相手方の通話データのアップロードを受付ける。相手方端末から通話データをアップロードさせるのは、グローバルＩＰアドレス有する端末は、プライベートＩＰアドレスを有する相手方端末にアクセスして相手方の通話データをダウンロードすることができないためである。
【００９５】
このアップロードされたデータは、ＲＡＭ２０３内に一時記憶され、ステップＳ７１５において添付された音声データ及び画像データが抽出され、通話データ処理モジュール２２１において処理された後、ステップＳ７１６において再生される。
【００９６】
つぎに、ステップＳ５２１におけるプライベートＩＰアドレスを有する端末がグローバルＩＰアドレスを有する端末と通話する際の通話処理３の処理を図７ｃを参照して説明する。
【００９７】
ステップＳ７２１からステップＳ７２３までにおける処理は、図７ａにおけるステップＳ７０１からステップＳ７０３までと同様の処理であるので、説明を省略する。
【００９８】
ステップＳ７２４においては、ステップＳ７２３において生成された通話データを、相手方の端末に与えられたグローバルＩＰアドレス宛てにアップロードする。
【００９９】
一方、相手方の通話データは、ステップＳ７２５において相手方の端末からダウンロードし、ステップＳ７２６及びステップＳ７２７において処理、再生する。このステップＳ７２５からステップＳ７２７までの処理は、図７ａにおけるステップＳ７０４からステップＳ７０６に対応するので詳細な説明は省略する。
【０１００】
つぎに、ステップＳ５２２におけるプライベートＩＰアドレスを有する端末がプライベートＩＰアドレスを有する端末と通話する際の通話処理４の処理を図７ｄを参照して説明する。
【０１０１】
まず、ステップＳ７３１からステップＳ７３３における処理は、上記ステップＳ７０１からステップＳ７０３と同様の処理であるから、詳細な説明は省略する。そこでステップＳ７３３とステップＳ７３４について以下に説明する。
【０１０２】
まずステップＳ７３４においては、ステップＳ７３３において生成された通話データをＰｈｏｎｅＧａｔｅサーバー１０３へアップロードする。ＰｈｏｎｅＧａｔｅサーバー１０３に割り当てられているグローバルＩＰアドレスは、図５ｂのステップＳ５１７において受信しているので、ここで受信したグローバルＩＰアドレスを利用してアップロードを行う。
【０１０３】
次に、ステップＳ７３５では、相手方の通話データをＰｈｏｎｅＧａｔｅサーバー１０３からダウンロードする。このダウンロードした相手方の通話データはステップＳ７３６、ステップＳ７３７において処理・再生されるところであるが、この処理もステップＳ７０５及びステップＳ７０６と同様であるので説明を省略する。
【０１０４】
つぎに、図６を参照してユーザー２（ユーザー端末１０２）がユーザー１（ユーザー端末１０１）から電話を受ける場合について説明する。
【０１０５】
まず、ステップＳ６０１においてユーザー端末１０１からの通話要求メールの受信を監視する。このメール監視は、ユーザー端末１０２に常駐するＩｎｅｔＰｈｏｎｅプログラムの待受けモジュール２２４により、ポート番号１１０／１４３の状態を監視することにより行う。
【０１０６】
ステップＳ６０１において通話要求メールを受信した場合には、ステップＳ６０２において、発信者（この場合はユーザー１）の情報を特定する。発信者の情報とは、通話要求メールに添付された情報であり、例えば、相手方のＩＰアドレスや、メールアドレス、ニックネーム、ＭＡＣアドレスなどが含まれる。
【０１０７】
次に、ステップＳ６０３において、ユーザー２が現在通話中であるか否かを判定する。もしユーザー２が通話中である場合には、ステップＳ６０６においてユーザー端末１０１に対して着信拒否通知のメールを送信する。
【０１０８】
一方、ユーザー２が通話中でない場合には、着信があった旨の通知を行う。この場合の通知は、例えば図９において、９０６に「着信あり」の表示を行うことにより可能である。
【０１０９】
ユーザー２は、ステップＳ６０４において表示された着信通知を確認して、発信者（この場合はユーザー１）と通話を行うか否かを判定し、通話を行う場合には、通話開始ボタン９０４をクリックする。一方、通話を行わない場合には、通話終了ボタン９０５をクリックする。ユーザーからの入力内容はステップＳ６０５において判定され、ユーザー２により通話終了ボタン９０５がクリックされた場合には、ステップＳ６０６に移行して着信拒否通知メールを送信する。
【０１１０】
一方、ユーザー２により通話開始ボタン９０４がクリックされた場合には、通話許可と判定され、ステップＳ６０７に移行する。ステップＳ６０７では、通話相手のユーザー１が使用するユーザー端末１０１のＩＰアドレスを確認し、グローバルＩＰアドレスを有するか否かを判定する。
【０１１１】
もし、ユーザー端末１０１がグローバルＩＰアドレスを静的に割り当てられている場合には、ステップＳ６０９に移行して、発信者であるユーザー端末１０１へ通話許可通知メールを送信する。
【０１１２】
通話許可通知メールの送信により通話が開始されることになるが、この通話は、ユーザー端末１０２が静的にグローバルＩＰアドレスを割り当てられている場合には、ステップＳ６１１において通話処理１にて実行される。一方、ユーザー端末１０２がプライベートＩＰアドレスしか割り当てられない場合には、ステップＳ６１２において通話処理３にて通話が行われる。通話処理１及び通話処理３の処理内容は、上記図７ａ、図７ｃと関連して説明した内容と同様である。
【０１１３】
ユーザー１とユーザー２との間で通話が継続している間は、表示部２１１に図９に示すようなＧＵＩ表示画面において、各ユーザーは通話状態を把握することができる。
【０１１４】
ユーザー２が通話を終了しようとする場合には、例えば表示部２１１に表示された通話終了ボタン９０５をクリックすることができる。この通話終了ボタン９０５のクリックをステップＳ６１４において受付け、ステップＳ６１５おいてユーザー端末１０１に対する通話終了通知を行って通話を終了する。
【０１１５】
また、ユーザー２により通話終了ボタン９０５がクリックされるより前に、ユーザー１側で通話終了ボタン９０５がクリックされた場合には、ステップＳ６１４においてユーザー端末１０２宛てに通話終了通知が送信されるので、この通話終了通知を受信した場合にも、通話処理を終了する。
【０１１６】
ユーザー１による通話終了ボタン９０５のクリックを受付けることもなく、ユーザー端末１０２からの通話終了通知を受信することもない場合には、さらにステップＳ６１１の通話処理１又はステップＳ６１２の通話処理３を継続する。
【０１１７】
ここでステップＳ６０８に戻って、端末１０１がグローバルＩＰアドレスを静的に割り当てられることがない場合には、ステップＳ６１６においてＰｈｏｎｅＧａｔｅサーバー１０３へ通話許可通知を送信する。Ｐｈｏｎｅｇａｔｅサーバー１０３はグローバルＩＰアドレスを有しているので、ユーザー端末１０２とＰｈｏｎｅｇａｔｅサーバー１０３との間でＴＣＰ／ＩＰセッションを確立することが可能である。よって、Ｐｈｏｎｅｇａｔｅサーバー１０３への通信許可の通知は、確立されたＴＣＰ／ＩＰセッションにおいて行う。また、Ｐｈｏｎｅｇａｔｅサーバー１０３に与えられたメールアドレスを利用して通知を行えることは言うまでもない。
【０１１８】
ＰｈｏｎｅＧａｔｅサーバー１０３は、この通話許可通知は発信者であるユーザー１へ転送され、或いは、ユーザー端末１０１からダウンロードされ、その後通話が開始される。この通話は、ユーザー端末１０２がグローバルＩＰアドレスを静的に割り当てられている場合には、ステップＳ６１８において通話処理２にて実行される。一方、ユーザー端末１０２がプライベートＩＰアドレスしか有しない場合には、ステップＳ６１９において通話処理４にて通話が行われる。通話処理２及び通話処理４の処理内容は、上記図７ｂ、図７ｄと関連して説明した内容と同様である。
【０１１９】
通話終了時の処理ステップＳ６２０からステップＳ６２２の処理は、上記ステップＳ６１３からステップＳ６１５までの処理と同様であるので、ここでは説明を省略する。但し、ステップＳ６２２では、通話終了通知を発信側端末であるユーザー端末１０１と、ＰｈｏｎｅＧａｔｅサーバー１０３の両方に送信する。
【０１２０】
次に、ＰｈｏｎｅＧａｔｅサーバー１０３における処理を図８ａ及び図８ｂを参照して説明する。ＰｈｏｎｅＧａｔｅサーバー１０３がユーザー１とユーザー２間における通話に関連するのは、ユーザー端末１０１（発信側端末）がプライベートＩＰアドレスを有する場合、及びユーザー端末１０１とユーザー端末１０２（着信側端末）との両方がプライベートＩＰアドレスを有する場合である。
【０１２１】
まず、ステップＳ８０１においてＰｈｏｎｅＧａｔｅサーバー１０３では、プライベートＩＰアドレスを有するユーザー端末１０１からの通話要求通知を監視する。この通話要求通知を受信すると、添付されている情報から発信者の情報を特定する。その後、同様に通話要求メールが送信された着信者側からの通話許可通知を受信したかどうかをステップＳ８０３において監視する。
【０１２２】
もし、着信者側から通話拒否通知を受信した場合には（ステップＳ８０４）、ステップＳ８０５において当該通話拒否通知を発信者側に転送して処理を終了する。
【０１２３】
一方、通話許可通知を受信した場合には、ステップＳ８０６において通話許可通知に添付された着信者側のＩＰアドレスを確認し、着信者側のユーザー端末１０２がグローバルＩＰアドレスを静的に割り当てられている場合には、ステップＳ８１１において、発信者側であるユーザー端末１０１へ通話許可通知を転送すると共に当該グローバルＩＰアドレスを通知する。この通知は、ユーザー端末１０１からのダウンロード要求に対して当該許可通知及びＩＰアドレスを添付したＨＴＭＬファイルを送信することにより行うことができる。通知を行った後、ＰｈｏｎｅＧａｔｅサーバー１０３における処理を終了する。ユーザー端末１０２がグローバルＩＰアドレスを静的に割り当てられている場合はＰｈｏｎｅＧａｔｅサーバー１０３を介した通話を行う必要がないからである。
【０１２４】
一方、ユーザー端末１０２がプライベートＩＰアドレスしか有しない場合には、ステップＳ８０８において発信者側へ通話許可通知を送信する。この通知は、Ｐｈｏｎｅｇａｔｅサーバー１０３とユーザー端末１０１との間のＴＣＰ／ＩＰセッションにおいて、ユーザー端末１０１が許可通知内容を添付したＨＴＭＬファイルをダウンロードすることにより行うことができる。
【０１２５】
次に、ステップＳ８０９においてユーザー１（ユーザー端末１０１）とユーザー２（ユーザー端末１０２）間における通話の仲介処理を行う。ここでは、通話データ送受信モジュール３２１及びデータ中継モジュール３２２により、ユーザー端末１０１及び１０２からアップロードされる各通話データをＲＡＭ３０３に一時的に記憶して、各端末からのダウンロードを受付ける。
【０１２６】
ステップＳ８０９の詳細な処理は図８ｂに示すようになる。まず、ステップＳ８１３において発信者通話データのアップロードを受付ける。次に、ステップＳ８１４において、着信者からの通話データのアップロードを受付ける。さらに、ステップＳ８１５において着信者通話データのダウンロードを発信者から受付ける。また、ステップＳ８１６では、発信者通話データの着信者によるダウンロードを受付ける。
【０１２７】
ここで図８ａに戻ってステップＳ８１０では、ユーザー端末１０１又はユーザー端末１０２のいずれかから通話終了通知を受信したかどうかを監視し、通話終了通知を受信した場合には、処理を終了する。
【０１２８】
図８は、ステップＳ８０１の接続要求の通知時点においてＰｈｏｎｅｇａｔｅサーバー１０３に割り当てられているグローバルＩＰアドレスを発信者側が認識していることを前提に、通話を行う場合を説明している。しかし、もし接続要求の時点でＰｈｏｎｅｇａｔｅサーバー１０３のＩＰアドレスが不明であっても、メールアドレスが判明している場合には、上記の説明においてグローバルＩＰアドレスを利用したＴＣＰ／ＩＰセッションによる通信は、電子メールを利用した通信に置き換えることができる。この場合は、通信許可通知をＰｈｏｎｅｇａｔｅサーバー１０３が受付けた段階で、着信側及び発信者側にＰｈｏｎｅｇａｔｅサーバー１０３に与えられているグローバルＩＰアドレスが通知されることになる。
【０１２９】
つぎに、本実施形態における環境設定モジュール２２５での、データフォーマット設定処理の詳細を説明する。図１３は、本実施形態におけるデータフォーマット設定処理を説明するためのフローチャートである。
【０１３０】
ステップＳ１３０１において、通話時間タイマーＴをリセットした後、タイマーＴを始動する。このタイマーＴは通話が継続している時間をカウントするための計時手段であって、通話そのものが開始された時点でリセットされ始動される他、通話データに添付される音声及び画像データのフォーマットが変更される度に、リセットされ始動される。
【０１３１】
つぎにステップＳ１３０２において、タイマー始動後の所定のタイミングでタイマー値Ｔｍを取得する。ステップＳ１３０３では、タイマーＴのリセット後、Ｔｍまでに受信した通話データに添付された音声情報及び／又は画像情報のデータ量Ｄｒを算出する。このデータ量は、当該添付情報が再生されたか否かに関係なく、タイマーＴリセット後に受信し格納された音声情報及び／又は画像情報のデータ量である。
【０１３２】
ステップＳ１３０４では、タイマー値Ｔｍと、受信データのフォーマット情報に従って通話データ量Ｄｐを算出する。例えば、音声フォーマット情報が１３２ｋｂｐｓであった場合には、タイマー値Ｔｍが１０秒であれば、通話に要したデータ量は、１０秒間の通話において１０（ｓ）×１３２（ｋｂｐｓ）＝１．３２（Ｍビット）となる。
【０１３３】
ステップＳ１３０５では、ステップＳ１３０４において算出されたデータ量Ｄｐと、受信したデータ量Ｄｒとの関係に基づいて、現在のデータフォーマットＦｄを変更するかどうかを決定する。具体的にステップＳ１３０５では、受信したデータ量Ｄｒと通話に要したデータ量Ｄｐとの比：Ｄｒ／Ｄｐに基づいて、Ｄｒ／Ｄｐが所定の閾値Ｔｈ１よりも小さいか否かを判定する。
【０１３４】
もしステップＳ１３０５において、Ｄｒ／Ｄｐ＜Ｔｈ１と判定される場合には、ステップＳ１３０６においてデータフォーマットＦｄを下位に変更することとしている。Ｄｒ／Ｄｐ＜Ｔｈ１が成立する場合とは、通話速度に対して通信速度が遅いために通話データをリアルタイムで受信できず、通話のための音声及び／画像の再生処理において遅延が生じている場合である。従って、この場合は音声品質を落としてもリアルタイム性を確保するために、データフォーマットを下位のものに変更する必要がある。判定の閾値となるＴｈ１は、例えば０．９等のように設定することが可能である。
【０１３５】
一方、Ｄｒ／ＤｐがＴｈ１以上である場合には、ステップＳ１３０７においてＤｒ／ＤｐがＴｈ２より大きいかどうかを判定する。ここで、Ｄｒ／Ｄｐ＞Ｔｈ２が成立する場合には、ステップＳ１３０８に進み、データフォーマットＦｄを上位のフォーマットに変更する。Ｄｒ／Ｄｐ＞Ｔｈ２が成立する場合とは、通信速度が充分に確保されている場合であり、この場合は音声品質を上げてもリアルタイム性が確保されるので、データフォーマットを上位のものに変更してより高品位の通話を可能にする。判定の閾値となるＴｈ２は、例えば１．２のように設定することが可能である。
【０１３６】
ステップＳ１３０６又はステップＳ１３０８においてデータフォーマットを変更した場合には、ステップＳ１３０９において、データフォーマットの変更を相手方の端末もしくは、Ｐｈｏｎｅｇａｔｅサーバー１０３へ通知する。フォーマット変更通知は、例えば、＜ｃｈａｎｇｅ  ｓｏｕｎｄ  ｍｏｄｅ＞１３２ｋｂｐｓ＜／ｃｈａｎｇｅ  ｓｏｕｎｄ  ｍｏｄｅ＞や、＜ｃｈａｎｇｅ  ｓｏｕｎｄ  ｍｏｄｅ＞３＜／ｃｈａｎｇｅ  ｓｏｕｎｄ  ｍｏｄｅ＞の記述を埋込んだＨＴＭＬファイルを送信することによって行うことができる。
【０１３７】
ステップＳ１３０７においてＤｒ／Ｄｐ＞Ｔｈ２が成立しない場合には、データフォーマットの変更を行わず、ステップＳ１３０２に戻って処理を継続する。
【０１３８】
以上においては、データフォーマット設定処理の説明を音声データを例にとって行ったが、図１３のフローチャートに記載の処理はデータの種類を問わず適用可能であって、当該データには当然に画像情報データが含まれる。
【０１３９】
以上のように、本実施形態に対応した本発明によれば、通話開始要求の手段として電子メールを利用し、所定の相手と通話を希望する発信者は、当該相手先に通話要求を添付した電子メールを送信する。送信された電子メールは、当該通話相手がどこに位置し、どの端末を利用しているかとは無関係にメールアドレス宛に送信されるので、通話相手が送信された電子メールを受信できる環境にいれば、通話要求を通知することが可能となる。これにより、ＩＰアドレスによってのみ通話相手を特定し電話をかける従来のインターネット電話のように、当該ＩＰアドレスが割り当てられた端末に通話要求が通知され、結果として第三者に通話要求が送信されてしまい、プライバシーが侵害されるといった問題はなくなる。即ち、本願発明によれば、通話相手が現在利用している端末を特定することなく、その在席情報を極めて容易に管理することが可能となる。
【０１４０】
また、本実施形態では通話を開始する際に必要となる電話番号として、電子メールアドレスを利用するので、一般的なユーザーに対しても違和感を与えることなく、インターネット電話環境を提供することが可能となり、ＰＣ間で実施するインターネット電話の普及を促進することができる。
【０１４１】
また、本発明では、通話時の通信状況に応じて通信する音声データ及び画像データのフォーマットを動的に変更することができるので、通話状態を維持しつつ通信状況に応じた通話品質を提供可能である。
【０１４２】
また、本発明では、端末に割り当てられたグローバルＩＰアドレスであるか、又はプライベートＩＰアドレスかに関係なく通話が可能であり、また、上記のように在席情報を管理するためにユーザーが利用する端末を特定する必要もないので、インターネット電話を実施する際にＩｎｅｔＰｈｏｎｅプログラムを実行可能、かつ、インターネットに接続可能な端末であればその種類を問わない。よって、サービスを提供するために各ユーザーを特定するための情報の登録を要求する必要がない。従って、ユーザーは、煩雑な登録手続を行うことなく極めて容易にインターネット電話のサービスを受けることが可能となる。
【０１４３】
さらに、本発明では、Ｐｈｏｎｅｇａｔｅプログラムと、グローバルＩＰアドレスが静的に割り当てられている端末さえあれば、Ｐｈｏｎｅｇａｔｅサーバーを容易に設置することができ、その管理もユーザー側で自由に実行できる。従って、インターネットに公開され、誰もがアクセス可能であるが故に秘匿性に欠けた従来のゲートキーパーとは異なり、ユーザーがアクセス制限設定をして利用可能なユーザーを限定するなどによって、秘匿性を維持することができる。
【０１４４】
また、本発明では、ＨＴＭＬファイルに音声・画像データを添付した通話データを送受信することにより通話を行うので、通話データの通信のために新たなポート番号を設定する必要もなくなり、ファイアウォールなどのセキュリティシステムの影響を受けることなく通話が可能となる。
【０１４５】
さらに、本発明ではインターネット電話による通話を実行するに際して、事前登録を要求する仲介サーバーの存在を必要としないので、インターネット接続料金のみで通話を実現することができる。従来は、インターネット電話提供業者が提供するゲートキーパーのような仲介サーバーが、各ユーザーを特定して通話を実現するために必ず必要とされ、このゲートキーパーに対するサービス料金として通話料が徴収されている。これに対して、本願発明では、仲介サーバーとしてのＰｈｏｎｅｇａｔｅサーバーは、ユーザーが任意に設置することが可能であり、サーバーの設置もＰｈｏｎｅｇａｔｅプログラムを所定の端末にインストールするだけである。従って、インターネットへの接続料金以外は、Ｐｈｏｎｅｇａｔｅプログラムの購入に対してのみ費用が発生し、通話自体に費用が発生しないシステムを構築可能である。また、インターネットへの接続料は、常時接続で定額が一般的となることを考えれば、企業などの大手のユーザーの通信費用を最低限に押さえることができる。
【０１４６】
また、本発明は２者間通話にはもちろんのこと、３者間以上における通話に対しても適用可能であるので、複数拠点に設置された端末を利用して簡単にテレビ会議を実現することも可能である。また、３者以上により通話する場合であっても、２者間通話における環境からの変更を全く必要としない点で極めて有効である。
【０１４７】
以上のような汎用性及びセキュリティの保証は、大手ユーザーのインターネット電話導入の大きな動機付けとなるものであり、インターネット電話の普及を急速に促進する原動力となりえる。
【０１４８】
【発明の効果】
以上に詳細に説明したように、本発明によれば特殊なハードウエア機器を設置したり、またシステム管理の知識を必要とすることなく、グローバルＩＰアドレスを有する端末間のみならず、プライベートＩＰアドレスのみを有する端末間においても通話することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態におけるインターネット電話システムの概略構成の一例を示すための図である。
【図２ａ】ユーザー端末１０１及び１０２の構成の一例を示すための図である。
【図２ｂ】ＩｎｅｔＰｈｏｎｅプログラムの内容の一例を示すための図である。
【図３ａ】ＰｈｏｎｅＧａｔｅサーバー１０３の構成の一例を示すための図である。
【図３ｂ】ＰｈｏｎｅＧａｔｅプログラムの内容の一例を示すための図である。
【図４】本発明の実施形態に対応したインターネット電話システムにおける通話形態を説明するための図である。
【図５ａ】本発明の実施形態においてユーザー１からユーザー２へ電話をかける場合の処理のフローチャートである。
【図５ｂ】本発明の実施形態においてユーザー１からユーザー２へ電話をかける場合の処理のフローチャートである。
【図６ａ】本発明の実施形態においてユーザー２がユーザー１から電話を受ける場合の処理のフローチャートである。
【図６ｂ】本発明の実施形態においてユーザー２がユーザー１から電話を受ける場合の処理のフローチャートである。
【図７ａ】本発明の実施形態に対応した、グローバルＩＰアドレスを有する端末がグローバルＩＰアドレスを有する端末と通話する際の通話処理１のフローチャートである。
【図７ｂ】本発明の実施形態に対応した、グローバルＩＰアドレスを有する端末がプライベートＩＰアドレスを有する端末と通話する際の通話処理２のフローチャートである。
【図７ｃ】本発明の実施形態に対応した、プライベートＩＰアドレスを有する端末がグローバルＩＰアドレスを有する端末と通話する際の通話処理３のフローチャートである。
【図７ｄ】本発明の実施形態に対応した、プライベートＩＰアドレスを有する端末がプライベートＩＰアドレスを有する端末と通話する際の通話処理４のフローチャートである。
【図８ａ】本発明の実施形態における、ＰｈｏｎｅＧａｔｅサーバー１０３における処理のフローチャートである。
【図８ｂ】本発明の実施形態における、ＰｈｏｎｅＧａｔｅサーバー１０３における仲介処理のフローチャートである。
【図９】本発明の実施形態における表示部２１１に表示される画面の一例を示す図である。
【図１０】ユーザー端末の内部記憶装置内に格納されるアドレス帳データ２１４の一例を示す図である。
【図１１】ユーザー間で通話を開始する際に送信するメールデータの一例を示す図である。
【図１２】従来のインターネット電話システムを説明するための図である。
【図１３】本発明の実施形態におけるデータフォーマット設定処理の一例を示すフローチャートである。
【図１】
2004172771.tif 000003
【図２ａ】
2004172771.tif 000004
【図２ｂ】
2004172771.tif 000005
【図３ａ】
2004172771.tif 000006
【図３ｂ】
2004172771.tif 000007
【図４】
2004172771.tif 000008
【図５ａ】
2004172771.tif 000009
【図５ｂ】
2004172771.tif 000010
【図６ａ】
2004172771.tif 000011
【図６ｂ】
2004172771.tif 000012
【図７ａ】
2004172771.tif 000013
【図７ｂ】
2004172771.tif 000014
【図７ｃ】
2004172771.tif 000015
【図７ｄ】
2004172771.tif 000016
【図８ａ】
2004172771.tif 000017
【図８ｂ】
2004172771.tif 000018
【図９】
2004172771.tif 000019
【図１０】
2004172771.tif 000020
【図１１】
2004172771.tif 000021
【図１２】
2004172771.tif 000022
【図１３】
2004172771.tif 000023