(57)【要約】【課題】ＳＩＰサーバを利用せずとも、ＤＨＴ機能を有しない通信端末とＤＨＴ機能を有する通信端末またはＤＨＴ機能を有しない通信端末との間で通信接続を可能にする。【解決手段】ＳＩＰＵＡ機能およびＤＨＴ機能を有する複数の通信端末２０ａ、２０ｃにより、ＤＨＴ機能を用いてＰ２Ｐネットワーク上にＤＨＴのオーバーレイネットワーク１０を構成し、ＳＩＰＵＡ機能、ＤＨＴ機能、およびＳＩＰＵＡ機能とＤＨＴ機能の間でプロトコル変換を行うＢ２ＢＵＡ機能を有する、オーバーレイネットワーク内の１以上の通信端末２０ｃを介して、オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、ＤＨＴ機能を有しないオーバーレイネットワーク外の通信端末２０ｂとオーバーレイネットワークの間でＢ２ＢＵＡ機能を用いて、オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う。【選択図】図１
2011029861.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＰユーザーエージェント機能、分散ハッシュテーブル機能、および前記ＳＩＰユーザーエージェント機能と前記分散ハッシュテーブル機能の間でプロトコル変換を行うバック・トゥ・バック・ユーザーエージェント機能を有し、
前記分散ハッシュテーブル機能を有する他の通信端末とともに、ピア・トゥー・ピア・ネットワーク上に分散ハッシュテーブルのオーバーレイネットワークを構成し、
前記オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、前記分散ハッシュテーブル機能を有しない前記オーバーレイネットワーク外の通信端末と前記オーバーレイネットワークの間で前記バック・トゥ・バック・ユーザーエージェント機能を用いて、前記オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う、通信端末。
【請求項２】
前記オーバーレイネットワーク外の通信端末からのＳＩＰの登録要求に応じて、前記登録要求を行った通信端末のＳＩＰＵＲＩのハッシュ値とＩＰアドレスの組合せである接続情報を、前記オーバーレイネットワーク内の他の通信端末との間で共有するために、前記オーバーレイネットワーク上で管理されているハッシュテーブルに登録する、請求項１に記載の通信端末。
【請求項３】
前記オーバーレイネットワーク外の通信端末から前記オーバーレイネットワーク内の他の通信端末または前記オーバーレイネットワーク外の通信端末へのＳＩＰのセッション要求に応じて、前記セッション要求の対象となる通信端末のＳＩＰＵＲＩのハッシュ値に基づいて、前記セッション要求の対象となる通信端末の接続情報を前記オーバーレイネットワーク上で管理されているハッシュテーブルから検索し、前記検索された接続情報に含まれるＩＰアドレスに基づいて、前記セッション要求の対象となる通信端末に前記セッション要求を行う、請求項１に記載の通信端末。
【請求項４】
ＳＩＰユーザーエージェント機能および分散ハッシュテーブル機能を有し、前記分散ハッシュテーブル機能を用いてピア・トゥー・ピア・ネットワーク上に分散ハッシュテーブルのオーバーレイネットワークを構成する、前記オーバーレイネットワーク内の複数の通信端末と、
前記分散ハッシュテーブル機能を有しない前記オーバーレイネットワーク外の１以上の通信端末と、
を備え、
前記オーバーレイネットワーク内の複数の通信端末のうち１以上の通信端末は、
前記ＳＩＰユーザーエージェント機能、前記分散ハッシュテーブル機能、および前記ＳＩＰユーザーエージェント機能と前記分散ハッシュテーブル機能の間でプロトコル変換を行うバック・トゥ・バック・ユーザーエージェント機能を有し、
前記オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、前記オーバーレイネットワーク外の通信端末と前記オーバーレイネットワークの間で前記バック・トゥ・バック・ユーザーエージェント機能を用いて、前記オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う、通信システム。
【請求項５】
ＳＩＰユーザーエージェント機能および分散ハッシュテーブル機能を有する複数の通信端末により、前記分散ハッシュテーブル機能を用いてピア・トゥー・ピアネットワーク上に分散ハッシュテーブルのオーバーレイネットワークを構成し、
前記ＳＩＰユーザーエージェント機能、前記分散ハッシュテーブル機能、および前記ＳＩＰユーザーエージェント機能と前記分散ハッシュテーブル機能の間でプロトコル変換を行うバック・トゥ・バック・ユーザーエージェント機能を有する、前記オーバーレイネットワーク内の１以上の通信端末を介して、前記オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、前記分散ハッシュテーブル機能を有しない前記オーバーレイネットワーク外の通信端末と前記オーバーレイネットワークの間で前記バック・トゥ・バック・ユーザーエージェント機能を用いて、前記オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う、通信接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末、通信システムおよび通信接続方法に関する。
【背景技術】
【０００２】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ベースのマルチメディアネットワーク通信システムでは、一般にＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）が利用されている。ＳＩＰによる通信システムでは、ＩＰアドレスを直接指定して通信端末間で通信接続を行う代わりに、ＳＩＰＵＲＩ（ＳＩＰ  Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒｓ）の指定およびＳＩＰＵＲＩとＩＰアドレスの名前解決により、通信端末間で通信接続が行われる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このため、従来のＳＩＰによる通信システムでは、各通信端末にＳＩＰＵＲＩが割当てられ、ＳＩＰＵＲＩの登録および名前解決を行うＳＩＰサーバが導入される。各通信端末は、自装置のＳＩＰＵＲＩとＩＰアドレスの組合せをＳＩＰサーバに登録する。そして、通信端末が他の通信端末のＳＩＰＵＲＩを指定して他の通信端末を発呼すると、ＳＩＰサーバがＳＩＰＵＲＩとＩＰアドレスの名前解決を行い、通信端末間で通信接続が行われる。しかし、ＳＩＰサーバを利用するためには、ＳＩＰサーバを自ら構築するか、ＳＩＰサーバのサービスを提供する外部のプロバイダと利用契約を行うことになり、通信システムの導入コストが増加してしまう。
【０００４】
一方で、分散ハッシュテーブル（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ：ＤＨＴ）を利用してＳＩＰＵＲＩとＩＰアドレスの登録および名前解決を行うことで、ピア・トゥー・ピア（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ：Ｐ２Ｐ）的な手法でＳＩＰによる通信を可能にする通信システムが知られている。しかし、この場合、ＤＨＴ機能を有する通信端末同士の間では通信接続を行えるが、ＤＨＴ機能を有しない通信端末とＤＨＴ機能を有する通信端末またはＤＨＴ機能を有しない通信端末との間では通信接続を行えない。
【０００５】
そこで、本発明は、ＳＩＰサーバを利用しなくとも、分散ハッシュテーブル機能を有しない通信端末と分散ハッシュテーブル機能を有する通信端末または分散ハッシュテーブル機能を有しない通信端末との間で通信接続を可能にする、通信端末、通信システムおよび通信接続方法を提供しようとするものである。
【課題を解決するための手段】
【０００６】
本発明の第１の観点によれば、ＳＩＰユーザーエージェント機能、分散ハッシュテーブル機能、およびＳＩＰユーザーエージェント機能と分散ハッシュテーブル機能の間でプロトコル変換を行うバック・トゥ・バック・ユーザーエージェント機能を有し、分散ハッシュテーブル機能を有する他の通信端末とともに、ピア・トゥー・ピア・ネットワーク上に分散ハッシュテーブルのオーバーレイネットワークを構成し、オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、分散ハッシュテーブル機能を有しないオーバーレイネットワーク外の通信端末とオーバーレイネットワークの間でバック・トゥ・バック・ユーザーエージェント機能を用いて、オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う、通信端末が提供される。
【０００７】
かかる構成によれば、分散ハッシュテーブル機能を有するオーバーレイネットワーク内の通信端末間では、分散ハッシュテーブル機能によりオーバーレイネットワーク内の通信端末の接続情報の登録および名前解決が行われる。また、バック・トゥ・バック・ユーザーエージェント機能を有するオーバーレイネットワーク内の１以上の通信端末を介して、ＳＩＰユーザーエージェント機能と分散ハッシュテーブル機能の間でプロトコル変換を行うことで、オーバーレイネットワーク内外の通信端末間では、分散ハッシュテーブル機能を有しないオーバーレイネットワーク外の通信端末の接続情報の登録および名前解決も可能となる。これにより、ＳＩＰサーバを利用しなくとも、分散ハッシュテーブル機能を有しない通信端末と分散ハッシュテーブル機能を有する通信端末または分散ハッシュテーブル機能を有しない通信端末との間で通信接続を行うことができる。
【０００８】
ここで、上記通信端末は、オーバーレイネットワーク外の通信端末からのＳＩＰの登録要求に応じて、登録要求を行った通信端末のＳＩＰＵＲＩのハッシュ値とＩＰアドレスの組合せである接続情報を、オーバーレイネットワーク内の他の通信端末との間で共有するために、オーバーレイネットワーク上で管理されているハッシュテーブルに登録するように構成されてもよい。
【０００９】
また、上記通信端末は、オーバーレイネットワーク外の通信端末からオーバーレイネットワーク内の他の通信端末またはオーバーレイネットワーク外の通信端末へのＳＩＰのセッション要求に応じて、セッション要求の対象となる通信端末のＳＩＰＵＲＩのハッシュ値に基づいて、セッション要求の対象となる通信端末の接続情報をオーバーレイネットワーク上で管理されているハッシュテーブルから検索し、検索された接続情報に含まれるＩＰアドレスに基づいて、セッション要求の対象となる通信端末にセッション要求を行うように構成されてもよい。
【００１０】
また、本発明の第２の観点によれば、ＳＩＰユーザーエージェント機能および分散ハッシュテーブル機能を有し、分散ハッシュテーブル機能を用いてピア・トゥー・ピア・ネットワーク上に分散ハッシュテーブルのオーバーレイネットワークを構成する、オーバーレイネットワーク内の複数の通信端末と、分散ハッシュテーブル機能を有しないオーバーレイネットワーク外の１以上の通信端末と、を備え、オーバーレイネットワーク内の複数の通信端末のうち１以上の通信端末は、ＳＩＰユーザーエージェント機能、分散ハッシュテーブル機能、およびＳＩＰユーザーエージェント機能と分散ハッシュテーブル機能の間でプロトコル変換を行うバック・トゥ・バック・ユーザーエージェント機能を有し、オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、オーバーレイネットワーク外の通信端末とオーバーレイネットワークの間でバック・トゥ・バック・ユーザーエージェント機能を用いて、オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う、通信システムが提供される。
【００１１】
また、本発明の第３の観点によれば、ＳＩＰユーザーエージェント機能および分散ハッシュテーブル機能を有する複数の通信端末により、分散ハッシュテーブル機能を用いてピア・トゥー・ピアネットワーク上に分散ハッシュテーブルのオーバーレイネットワークを構成し、ＳＩＰユーザーエージェント機能、分散ハッシュテーブル機能、およびＳＩＰユーザーエージェント機能と分散ハッシュテーブル機能の間でプロトコル変換を行うバック・トゥ・バック・ユーザーエージェント機能を有する、オーバーレイネットワーク内の１以上の通信端末を介して、オーバーレイネットワーク内の通信端末の接続情報の登録および名前解決を行うとともに、分散ハッシュテーブル機能を有しないオーバーレイネットワーク外の通信端末とオーバーレイネットワークの間でバック・トゥ・バック・ユーザーエージェント機能を用いて、オーバーレイネットワーク外の通信端末の接続情報の登録および名前解決を行う、通信接続方法が提供される。
【発明の効果】
【００１２】
本発明によれば、ＳＩＰサーバを利用しなくとも、分散ハッシュテーブル機能を有しない通信端末と分散ハッシュテーブル機能を有する通信端末または分散ハッシュテーブル機能を有しない通信端末との間で通信接続を可能にする、通信端末、通信システムおよび通信接続方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る通信システムの構成を示す図である。
【図２】第１の実施形態に係るＤＨＴネットワーク内端末間の通信接続方法を示すシーケンス図（１／２）である。
【図３】第１の実施形態に係るＤＨＴネットワーク内端末間の通信接続方法を示すシーケンス図（２／２）である。
【図４】第２の実施形態に係るＤＨＴネットワーク外端末からＤＨＴネットワーク内端末への通信接続方法を示すシーケンス図（１／２）である。
【図５】第２の実施形態に係るＤＨＴネットワーク外端末からＤＨＴネットワーク内端末への通信接続方法を示すシーケンス図（２／２）である。
【図６】第３の実施形態に係るＤＨＴネットワーク内端末からＤＨＴネットワーク外端末への通信接続方法を示すシーケンス図である。
【図７】第４の実施形態に係るＤＨＴネットワーク外端末間の通信接続方法を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１５】
[１．通信システムの構成]
図１は、本発明の実施形態に係る通信システム１の構成を示す図である。通信システム１は、ＳＩＰサーバを含まず、Ｐ２Ｐネットワークのノードとして各々に動作する複数の通信端末２０（２０ａ、２０ｂ、２０ｃ）から構成される。通信システム１は、Ｐ２Ｐネットワーク上にＤＨＴのオーバーレイネットワーク１０を構成する、ＤＨＴネットワーク１０内の複数の通信端末２０ａ（以下、ＤＨＴネットワーク内端末２０ａとも称する。）を含む。通信システム１は、オーバーレイネットワーク１０を構成しない（オーバーレイネットワーク１０に参加していない）、ＤＨＴネットワーク１０外の1以上の通信端末２０ｂ（以下、ＤＨＴネットワーク外端末２０ｂとも称する。）を選択的に含む。
【００１６】
ＤＨＴネットワーク内端末２０ａは、ＳＩＰユーザーエージェント（ＳＩＰ  Ｕｓｅｒ  Ａｇｅｎｔ：ＳＩＰＵＡ）機能およびＤＨＴ機能を有する。ＤＨＴネットワーク外端末２０ｂは、ＳＩＰＵＡ機能を有するが、ＤＨＴ機能を有しない。１以上のＤＨＴネットワーク内端末２０ｃは、ＳＩＰＵＡ機能およびＤＨＴ機能とともに、バック・トゥ・バック・ユーザーエージェント（Ｂａｃｋ  ｔｏ  Ｂａｃｋ  Ｕｓｅｒ  Ａｇｅｎｔ：Ｂ２ＢＵＡ）機能を有する。
【００１７】
なお、ＤＨＴネットワーク内端末２０ａおよびＤＨＴネットワーク外端末２０ｂは、音声、映像、データ等のメディアをＳＩＰセッション上で伝送するために、ＲＴＰ（Ｒｅａｌｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）等のメディア伝送機能も有する。
【００１８】
ここで、ＳＩＰＵＡ機能とは、通信端末２０間でＳＩＰセッションを確立するための機能であり、登録（ＲＥＧＩＳＴＥＲ）、セッション要求（ＩＮＶＩＴＥ）、キャンセル（ＣＡＮＣＥＬ）、切断（ＢＹＥ）等、ＳＩＰのメソッドを実行する機能である。
【００１９】
ＤＨＴ機能とは、ＤＨＴネットワーク内端末２０ａ、２０ｃ間でＤＨＴのオーバーレイネットワーク１０を構成するための機能であり、参加（ＪＯＩＮ）、情報共有（ＰＵＴ）、情報検索（ＧＥＴ）等、ＤＨＴの基本機能を実行する機能である。
【００２０】
ＤＨＴは、ハッシュテーブルを複数のノードで分散して管理する技術である。ＤＨＴにより、アドレスとコンテンツのハッシュ値を空間に写像し、その空間を複数のノードで分割して管理することで、特定のノードに負荷を集中させずに大規模なコンテンツ探索が可能となる。
【００２１】
ＤＨＴでは、ハッシュ関数を用いてノードとコンテンツが対応付けられる。また、局所的な知識を持つノードの協調動作によりコンテンツ探索が行われる。また、ノードの参加、離脱時に、コンテンツの引継ぎと近隣ノードのハッシュテーブルの更新が行われる。
【００２２】
Ｂ２ＢＵＡ機能とは、ネットワークホストとして、送信者と着信者の間でメッセージを処理する機能であり、送信者からリクエストを受信し、受信されたリクエストに基づいて着信者に対するリクエストを生成し、生成されたリクエストを着信者に送信する。
【００２３】
本発明の実施形態において、ＤＨＴ機能は、Ｐ２Ｐネットワークを構成する通信端末２０のＩＰアドレスとＳＩＰＵＲＩのハッシュ値の組合せを管理するために利用され、ＳＩＰのロケーションサーバと同様の役割を果たす。また、Ｂ２ＢＵＡ機能は、主にＳＩＰＵＡ機能とＤＨＴ機能の間でプロトコル変換を行うことで、両機能を連携させる役割を果たす。
【００２４】
[２．通信接続方法]
図２〜図７を参照しながら、本発明に係る通信接続方法の第１〜第４の実施形態について説明する。第１の実施形態は、ＤＨＴネットワーク内端末２０ａ間の通信接続方法であり、第２の実施形態は、ＤＨＴネットワーク外端末２０ｂからＤＨＴネットワーク内端末２０ａへの通信接続方法である。第３の実施形態は、ＤＨＴネットワーク内端末２０ａからＤＨＴネットワーク外端末２０ｂへの通信接続方法であり、第４の実施形態は、ＤＨＴネットワーク外端末２０ｂ間の通信接続方法である。なお、実施形態間で重複する説明は省略する。
【００２５】
[２−１．第１の実施形態]
図２および図３は、ＤＨＴネットワーク内端末２０ａ間の通信接続方法を示すシーケンス図である。第１の実施形態では、いずれもＤＨＴネットワーク内端末２０ａであるアリスの端末Ａ１００とボブの端末Ｂ２００の間で通信接続が行われる。
【００２６】
端末Ａ１００および端末Ｂ２００は、通信接続用のアプリケーション１０１、２０１、ＳＩＰＵＡ機能を実行するＳＩＰＵＡモジュール（ＳＩＰＵＡ）１０３、２０３、およびＤＨＴ機能を実行するＤＨＴモジュール（ＤＨＴ）１０５、２０５を有する。なお、図中「アリス」および「ボブ」は、アリスと端末Ａ１００およびボブと端末Ｂ２００の間で各々に行われるインタラクションを示すために記されている。
【００２７】
アリスが端末Ａ１００を起動すると、端末Ａ１００は、アプリケーション１０１を初期化（Ｉｎｉｔｉａｌｉｚｅ）する（ステップＳ１０１）。アプリケーション１０１は、ＤＨＴモジュール１０５に対してｄｈｔ＿ｊｏｊｎ（）関数をコールする（Ｓ１０３）。関数コールに応じて、ＤＨＴモジュール１０５は、ＤＨＴのＪＯＩＮ機能を実行する（Ｓ１０５）。機能の実行により端末Ａ１００がＤＨＴネットワーク１０に参加し、その旨がアリスに通知される（Ｓ１０７〜Ｓ１０９）。なお、ボブの端末Ｂ２００も、端末Ａ１００と同様にＤＨＴネットワーク１０に参加する（Ｓ１１１〜Ｓ１１９）。
【００２８】
端末Ａ１００がＤＨＴネットワーク１０に参加した後に、アリスは、アプリケーション１０１にログインする（Ｓ１２１）。アプリケーション１０１は、ＤＨＴモジュール１０５に対してｄｈｔ＿ｐｕｔ（）関数をコールする（Ｓ１２３）。ｄｈｔ＿ｐｕｔ（）関数は、端末Ａ１００のＳＩＰＵＲＩ（Ａｌｉｃｅ＿ＳＩＰＵＲＩ）から求められたハッシュ値をＫＥＹとし、および端末Ａ１００のＩＰアドレス（Ａｌｉｃｅ＿Ｃｏｎｔａｃｔ）をＶＡＬＵＥとする引数を用いてコールされる。
【００２９】
関数コールに応じて、ＤＨＴモジュール１０５は、ＤＨＴのＰＵＴ機能を実行する（Ｓ１２５）。機能の実行により、引数ＫＥＹ、ＶＡＬＵＥの組合せである端末Ａ１００の接続情報は、ＤＨＴネットワーク１０上で管理されているハッシュテーブルに登録され、その旨がアリスに通知される（Ｓ１２７〜Ｓ１２９）。これにより、端末Ａ１００の接続情報がＤＨＴネットワーク内端末２０ａ、２０ｃの間で共有される。なお、端末Ｂ２００のＳＩＰＵＲＩのハッシュ値およびＩＰアドレスの組合せである端末Ｂ２００の接続情報も、同様にＤＨＴネットワーク１０上で共有される（Ｓ１３１〜Ｓ１３９）。
【００３０】
端末Ａ１００および端末Ｂ２００の接続情報がＤＨＴネットワーク１０上で共有された後に、アリスは、ボブへの発呼（Ｃａｌｌ）をアプリケーション１０１に指示する（Ｓ１４１）。なお、以下では、アリスからボブへ発呼を行う場合について説明するが、ボブからアリスへ発呼を行う場合についても同様に説明される。
【００３１】
発呼を指示されると、アプリケーション１０１は、ＤＨＴモジュール１０５に対してｄｈｔ＿ｇｅｔ（）関数をコールする（Ｓ１４３）。ｄｈｔ＿ｇｅｔ（）関数は、端末Ｂ２００のＳＩＰＵＲＩ（Ｂｏｂ＿ＳＩＰＵＲＩ）から求められたハッシュ値をＫＥＹとする引数を用いてコールされる。なお、端末Ａ１００は、端末Ｂ２００のＳＩＰＵＲＩを予め入手している。
【００３２】
関数コールに応じて、ＤＨＴモジュール１０５は、ＤＨＴのＧＥＴ機能を実行する（Ｓ１４５）。機能の実行によりＤＨＴモジュール１０５は、ＤＨＴネットワーク１０上で共有されている端末Ｂ２００の接続情報を取得する（Ｓ１４７）。アプリケーション１０１は、ｄｈｔ＿ｇｅｔ（）関数のコール結果（ＶＡＬＵＥ）として、ＤＨＴモジュール１０５により取得された端末Ｂ２００の接続情報に含まれるＩＰアドレス（Ｂｏｂ＿Ｃｏｎｔａｃｔ）を得る（Ｓ１４９）。
【００３３】
端末Ｂ２００のＩＰアドレスを得ると、アプリケーション１０１は、ＳＩＰＵＡモジュール１０３に対してｓｉｐ＿ｉｎｖｉｔｅ（）関数をコールする（Ｓ１５１）。関数コールに応じて、ＳＩＰＵＡモジュール１０３は、ＳＩＰのＩＮＶＩＴＥリクエストを端末Ｂ２００に送信する（Ｓ１５３）。
【００３４】
リクエストは、端末Ｂ２００のＩＰアドレス（Ｂｏｂ＿Ｃｏｎｔａｃｔ）をリクエストあて先（ＲｅｑｕｅｓｔＵＲＩ）とし、端末Ｂ２００のＳＩＰＵＲＩ（Ｂｏｂ＿ＳＩＰＵＲＩ）をｉｎｖｉｔｅあて先（Ｔｏ）とし、プロキシ（Ｐｒｏｘｙ）を未指定（Ｎｕｌｌ）として送信される。
【００３５】
リクエストを受信した端末Ｂ２００のＳＩＰＵＡモジュール２０３が２００ＯＫレスポンスを端末Ａ１００に送信すると（Ｓ１５５）、端末Ａ１００のＳＩＰＵＡモジュール１０３は、ＡＣＫリクエストを端末Ｂ２００に送信する（Ｓ１５７）。これにより、端末Ａ１００と端末Ｂ２００の間でセッションが確立され、その旨が端末Ａ１００のＳＩＰＵＡモジュール１０３からアプリケーション１０１を介してアリスに通知される（Ｓ１５８、Ｓ１５９）。
【００３６】
セッションが確立された後に、端末Ａ１００と端末Ｂ２００の間では、メディアのセッションが接続されてメディア伝送が行われるが、メディア伝送についての説明は省略する。そして、セッション切断のためのＢＹＥリクエストは、セッション確立の場合と同様に端末Ａ１００と端末Ｂ２００の間で直接的に行われる。
【００３７】
[２−２．第２の実施形態]
図４および図５は、ＤＨＴネットワーク外端末２０ｂからＤＨＴネットワーク内端末２０ａへの通信接続方法を示すシーケンス図である。第２の実施形態では、Ｂ２ＢＵＡ機能を実行するＢ２ＢＵＡモジュール（Ｂ２ＢＵＡ）を有する、任意のＤＨＴネットワーク内端末２０ｃである端末Ｃ３００が通信システム１に含まれる。そして、端末Ｃ３００を介して、ＤＨＴネットワーク外端末２０ｂであるアリスの端末Ａ１５０からＤＨＴネットワーク内端末２０ａであるボブの端末Ｂ２００への通信接続が行われる。
【００３８】
端末Ａ１５０は、アプリケーション１５１およびＳＩＰＵＡモジュール１５３を有するが、ＤＨＴモジュールを有しない。端末Ｂ２００は、アプリケーション２０１、ＳＩＰＵＡモジュール２０３およびＤＨＴモジュール２０５を有する。端末Ｃ３００は、ＳＩＰＵＡモジュール、ＤＨＴモジュールおよびＢ２ＢＵＡモジュールを有する（Ｂ２ＢＵＡモジュールのみ図示されている。）。
【００３９】
端末Ｃ３００は、ＤＨＴのＪＯＩＮ機能により予めＤＨＴネットワーク１０に参加している（Ｓ２０１、Ｓ２０３）。端末Ｂ２００は、第１の実施形態の端末Ａ１００と同様の手順により予めＤＨＴネットワーク１０に参加している（Ｓ２１１〜Ｓ２１９）。
【００４０】
アリスは、アプリケーション１５１にログインする（Ｓ２２１）。アプリケーション１５１は、ＳＩＰＵＡモジュール１５３に対してｓｉｐ＿ｒｅｇｉｓｔｅｒ（）関数をコールする（Ｓ２２３）。関数コールに応じて、ＳＩＰＵＡモジュール１５３は、端末Ｃ３００をＳＩＰサーバとみなし、ＳＩＰのＲＥＧＩＳＴＥＲリクエストを端末Ｃ３００に送信する（Ｓ２２５）。
【００４１】
リクエストは、端末Ｃ３００のＩＰアドレス（Ｂ２ＢＵＡ＿Ａｄｄｒ）をリクエストあて先（ＲｅｑｕｅｓｔＵＲＩ）およびプロキシ（Ｐｒｏｘｙ）として指定して送信される。なお、端末Ａ１５０は、端末Ｃ３００のＩＰアドレスを予め入手している。
【００４２】
リクエストを受信すると、端末Ｃ３００のＢ２ＢＵＡモジュールは、ＳＩＰＵＡ機能とＤＨＴ機能の間でプロトコル変換を行い、ＲＥＧＩＳＴＥＲリクエストに基づいてＤＨＴのＰＵＴ機能を実行する。
【００４３】
Ｂ２ＢＵＡモジュールは、リクエストに含まれる接続情報から端末Ａ１５０のＳＩＰＵＲＩおよびＩＰアドレスを取得するとともに、ｄｈｔ＿ｐｕｔ（）関数を実行する（Ｓ２２７）。ｄｈｔ＿ｐｕｔ（）関数は、端末Ａ１５０のＳＩＰＵＲＩ（Ａｌｉｃｅ＿ＳＩＰＵＲＩ）のハッシュ値、および端末Ａ１５０のＩＰアドレス（Ａｌｉｃｅ＿Ｃｏｎｔａｃｔ）を引数として実行される。
【００４４】
関数を実行すると、Ｂ２ＢＵＡモジュールは、ＤＨＴのＰＵＴ機能を実行する（Ｓ２２９）。機能の実行により、端末Ａ１５０の接続情報は、ＤＨＴネットワーク１０上で管理されているハッシュテーブルに登録され、その旨がアリスに通知される（Ｓ２３１〜Ｓ２３５）。これにより、端末Ａ１５０の接続情報が端末Ｃ３００を介してＤＨＴネットワーク１０上で共有される。
【００４５】
また、端末Ｂ２００の接続情報は、第１の実施形態の端末Ａ１００と同様の手順によりＤＨＴネットワーク１０上で共有される（Ｓ２４１〜Ｓ２５１）。
【００４６】
端末Ａ１５０および端末Ｂ２００の接続情報がＤＨＴネットワーク１０上で共有された後に、アリスは、ボブへの発呼（Ｃａｌｌ）をアプリケーション１５１に指示する（Ｓ２６１）。
【００４７】
発呼を指示されると、アプリケーション１５１は、ＳＩＰＵＡモジュール１５３に対してｓｉｐ＿ｉｎｖｉｔｅ（）関数をコールする（Ｓ２６３）。関数コールに応じて、ＳＩＰＵＡモジュール１５３は、端末Ｃ３００をＳＩＰサーバとみなし、ＳＩＰのＩＮＶＩＴＥリクエストを端末Ｃ３００に送信する（Ｓ２６５）。
【００４８】
リクエストは、端末Ｂ２００のＳＩＰＵＲＩ（Ｂｏｂ＿ＳＩＰＵＲＩ）をリクエストあて先（ＲｅｑｕｅｓｔＬｉｎｅ）およびｉｎｖｉｔｅあて先（Ｔｏ）とし、端末Ｃ３００のＩＰアドレス（Ｂ２ＢＵＡ＿Ａｄｄｒ）をプロキシ（Ｐｒｏｘｙ）として送信される。
【００４９】
リクエストを受信すると、端末Ｃ３００のＢ２ＢＵＡモジュールは、ＳＩＰＵＡ機能とＤＨＴ機能の間でプロトコル変換を行い、ＩＮＶＩＴＥリクエストに基づいてＤＨＴのＧＥＴ機能を実行し、ＳＩＰのＩＮＶＩＴＥリクエストを端末Ｂ２００に送信する。
【００５０】
Ｂ２ＢＵＡモジュールは、リクエストに含まれる情報から端末Ｂ２００のＳＩＰＵＲＩを取得するとともに、ｄｈｔ＿ｇｅｔ（）関数を実行する（Ｓ２６７）。ｄｈｔ＿ｇｅｔ（）関数は、端末Ｂ２００のＳＩＰＵＲＩ（Ｂｏｂ＿ＳＩＰＵＲＩ）のハッシュ値を引数として実行される。
【００５１】
関数を実行すると、Ｂ２ＢＵＡモジュールは、ＤＨＴのＧＥＴ機能を実行する（Ｓ２６９）。機能の実行により、Ｂ２ＢＵＡモジュールは、ＤＨＴネットワーク１０上で共有されている端末Ｂ２００の接続情報を取得する（Ｓ２７１）。Ｂ２ＢＵＡモジュールは、ｄｈｔ＿ｇｅｔ（）関数のコール結果（ＶＡＬＵＥ）として、端末Ｂ２００の接続情報に含まれるＩＰアドレス（Ｂｏｂ＿Ｃｏｎｔａｃｔ）を得る。
【００５２】
端末Ｂ２００のＩＰアドレスを得ると、Ｂ２ＢＵＡモジュールは、ＳＩＰのＩＮＶＩＴＥリクエストを端末Ｂ２００に送信する（Ｓ２７３）。リクエストは、端末Ｂ２００のＩＰアドレス（Ｂｏｂ＿Ｃｏｎｔａｃｔ）をリクエストあて先（ＲｅｑｕｅｓｔＬｉｎｅ）とし、端末Ｂ２００のＳＩＰＵＲＩ（Ｂｏｂ＿ＳＩＰＵＲＩ）をｉｎｖｉｔｅあて先（Ｔｏ）とし、プロキシ（Ｐｒｏｘｙ）を未指定（Ｎｕｌｌ）として送信される。
【００５３】
リクエストを受信した端末Ｂ２００のＳＩＰＵＡモジュール２０３は、端末Ｃ３００を介して２００ＯＫレスポンスを端末Ａ１５０に送信する（Ｓ２７５、Ｓ２７６）。２００ＯＫレスポンスを受信すると、端末Ａ１５０のＳＩＰＵＡモジュール１５３は、端末Ｃ３００を介してＡＣＫリクエストを端末Ｂ２００に送信する（Ｓ２７７、Ｓ２７８）。これにより、端末Ａ１５０と端末Ｂ２００の間で端末Ｃ３００を介してセッションが確立され、その旨が端末Ａ１５０のＳＩＰＵＡモジュール１５３からアプリケーション１５１を介してアリスに通知される（Ｓ２７９、Ｓ２８０）。
【００５４】
セッションが確立された後に、端末Ａ１５０と端末Ｂ２００の間では、メディアのセッションが直接接続されてメディア伝送が行われる。そして、セッション切断のためのＢＹＥリクエストは、セッション確立の場合と同様に、端末Ｃ３００を介して端末Ａ１５０と端末Ｂ２００の間で行われる。
【００５５】
[２−３．第３の実施形態]
図６は、ＤＨＴネットワーク内端末２０ａからＤＨＴネットワーク外端末２０ｂへの通信接続方法を示すシーケンス図である。第３の実施形態では、Ｂ２ＢＵＡモジュールを有するＤＨＴネットワーク内端末２０ｃである端末Ｃ３００を介して、ＤＨＴネットワーク内端末２０ａであるボブの端末Ｂ２００からＤＨＴネットワーク外端末２０ｂであるアリスの端末Ａ１５０への通信接続が行われる。端末Ａ１５０、端末Ｂ２００および端末Ｃ３００のモジュール構成は、第２の実施形態の場合と同様である。
【００５６】
以下の処理については、既に説明したので、図４を参照しながら概略のみ説明する。端末Ｃ３００は、ＤＨＴのＪＯＩＮ機能により予めＤＨＴネットワーク１０に参加する（Ｓ２０１、Ｓ２０３）。また、端末Ｂ２００は、第１の実施形態の端末Ａ１００と同様の手順により予めＤＨＴネットワーク１０に参加する（Ｓ２１１〜Ｓ２１９）。また、端末Ａ１５０および端末Ｂ２００の接続情報は、第２の実施形態の場合と同様に、ＤＨＴネットワーク１０上で共有される（Ｓ２２１〜Ｓ２３５、Ｓ２４１〜Ｓ２５１）。
【００５７】
以下、図６を参照しながら説明する。端末Ａ１５０および端末Ｂ２００の接続情報がＤＨＴネットワーク１０上で共有された後に、ボブは、アリスへの発呼（Ｃａｌｌ）をアプリケーション２０１に指示する（Ｓ３０１）。
【００５８】
発呼を指示されると、アプリケーション２０１は、ＤＨＴモジュール２０５に対してｄｈｔ＿ｇｅｔ（）関数をコールする（Ｓ３０３）。ｄｈｔ＿ｇｅｔ（）関数は、端末Ａ１５０のＳＩＰＵＲＩ（Ａｌｉｃｅ＿ＳＩＰＵＲＩ）から求められたハッシュ値をＫＥＹとする引数を用いてコールされる。なお、端末Ｂ２００は、端末Ａ１５０のＳＩＰＵＲＩを予め入手している。
【００５９】
関数コールに応じて、ＤＨＴモジュール２０５は、ＤＨＴのＧＥＴ機能を実行する（Ｓ３０５）。機能の実行によりＤＨＴモジュール２０５は、ＤＨＴネットワーク１０上で共有されている端末Ａ１５０の接続情報を取得する（Ｓ３０７）。アプリケーション２０１は、ｄｈｔ＿ｇｅｔ（）関数のコール結果（ＶＡＬＵＥ）として、ＤＨＴモジュール２０５により取得された端末Ａ１５０の接続情報に含まれるＩＰアドレス（Ａｌｉｃｅ＿Ｃｏｎｔａｃｔ）を得る（Ｓ３０９）。
【００６０】
端末Ａ１５０のＩＰアドレスを得ると、アプリケーション２０１は、ＳＩＰＵＡモジュール２０３に対してｓｉｐ＿ｉｎｖｉｔｅ（）関数をコールする（Ｓ３１１）。ｓｉｐ＿ｉｎｖｉｔｅ（）関数は、端末Ａ１５０のＩＰアドレス（Ａｌｉｃｅ＿Ｃｏｎｔａｃｔ）を引数としてコールされる。
【００６１】
関数コールに応じて、ＳＩＰＵＡモジュール２０３は、ＳＩＰのＩＮＶＩＴＥリクエストを端末Ａ１５０に送信する（Ｓ３１３）。リクエストを受信した端末Ａ１５０のＳＩＰＵＡモジュール１５３が２００ＯＫレスポンスを端末Ｂ２００に送信すると（Ｓ３１５）、端末Ｂ２００のＳＩＰＵＡモジュール２０３は、ＡＣＫリクエストを端末Ａ１５０に送信する（Ｓ３１７）。これにより、端末Ａ１５０と端末Ｂ２００の間でセッションが確立され、その旨が端末Ｂ２００のＳＩＰＵＡモジュール２０３からアプリケーション２０１を介してボブに通知される（Ｓ３１９、Ｓ３２０）。
【００６２】
[２−４．第４の実施形態]
図７は、ＤＨＴネットワーク外端末２０ｂ間の通信接続方法を示すシーケンス図である。第４の実施形態では、Ｂ２ＢＵＡモジュールを有するＤＨＴネットワーク内端末２０ｃである端末Ｃ３００および端末Ｄ３５０を介して、ＤＨＴネットワーク外端末２０ｂであるアリスの端末Ａ１５０とボブの端末Ｂ２５０の間で通信接続が行われる。なお、端末Ｃ３００および端末Ｄ３５０は、Ｂ２ＢＵＡモジュールを有する同一のＤＨＴ内端末２０ｃでもよい。
【００６３】
端末Ａ１５０および端末Ｂ２５０は、アプリケーション１５１、２５１およびＳＩＰＵＡモジュール１５３、２５３を有するが、ＤＨＴモジュールを有しない。端末Ｃ３００および端末Ｄ３５０は、ＳＩＰＵＡモジュール、ＤＨＴモジュールおよびＢ２ＢＵＡモジュールを有する（Ｂ２ＢＵＡモジュールのみが図示されている。）。
【００６４】
端末Ｃ３００および端末Ｄ３５０は、ＤＨＴのＪＯＩＮ機能により予めＤＨＴネットワーク１０に参加する。（Ｓ４０１、Ｓ４０３、Ｓ４１１、Ｓ４１３）また、端末Ａ１５０および端末Ｂ２５０の接続情報は、第３の実施形態の端末Ａ１５０と同様の手順により、端末Ｃ３００および端末Ｄ３５０を各々に介してＤＨＴネットワーク１０上で共有される（Ｓ４２１〜Ｓ４３６、Ｓ４４１〜Ｓ４５６）。なお、端末Ａ１５０および端末Ｂ２５０の接続情報は、Ｂ２ＢＵＡモジュールを有する同一のＤＨＴネットワーク内端末２０ｃ（例えば端末Ｃ３００または端末Ｄ３５０のいずれか一方）を介してＤＨＴネットワーク１０上で共有されてもよい。
【００６５】
以下の処理については、既に説明したので、図５を参照しながら概略のみ説明する。端末Ａ１５０および端末Ｂ２５０の接続情報がＤＨＴネットワーク１０上で共有された後に、アリスは、ボブへの発呼（Ｃａｌｌ）をアプリケーション１５１に指示する（Ｓ２６１）。なお、以下では、アリスからボブへ発呼を行う場合について説明するが、ボブからアリスへ発呼を行う場合については、端末Ｃ３００の代わりに端末Ｄ３５０を介して、同様の処理が行われる。
【００６６】
発呼を指示されると、端末Ａ１５０は、端末Ｃ３００をＳＩＰサーバとみなし、端末Ａ１５０および端末Ｂ２５０のＳＩＰＵＲＩおよびＩＰアドレスの情報を含むＳＩＰのＩＮＶＩＴＥリクエストを端末Ｃ３００に送信する（Ｓ２６５）。
【００６７】
リクエストを受信すると、端末Ｃ３００のＢ２ＢＵＡモジュールは、ＳＩＰＵＡ機能とＤＨＴ機能の間でプロトコル変換を行い、ＩＮＶＩＴＥリクエストに基づいてＤＨＴのＧＥＴ機能を実行し（Ｓ２６９）、ＳＩＰのＩＮＶＩＴＥリクエストを端末Ｂ２５０に送信する（Ｓ２７３）。そして、端末Ａ１５０と端末Ｂ２５０の間では、端末Ｃ３００を介して２００ＯＫレスポンスおよびＡＣＫリクエストが送受信された後に、セッションが確立される（Ｓ２７５〜Ｓ２８０）。
【００６８】
[３．まとめ]
以上説明したように、上記実施形態に係る通信システムによれば、ＤＨＴ機能を有するオーバーレイネットワーク内の通信端末２０ａ、２０ｃ間では、ＤＨＴ機能によりオーバーレイネットワーク内の通信端末２０ａ、２０ｃの接続情報の登録および名前解決が行われる。また、Ｂ２ＢＵＡ機能を有するオーバーレイネットワーク内の１以上の通信端末２０ｃを介して、ＳＩＰＵＡ機能とＤＨＴ機能の間でプロトコル変換を行うことで、オーバーレイネットワーク内外の通信端末間２０ａ、２０ｂでは、ＤＨＴ機能を有しないオーバーレイネットワーク外の通信端末２０ｂの接続情報の登録および名前解決も可能となる。これにより、ＳＩＰサーバを利用しなくとも、ＤＨＴ機能を有しない通信端末２０ｂとＤＨＴ機能を有する通信端末２０ａ、２０ｃまたはＤＨＴ機能を有しない通信端末２０ｂとの間でも通信接続を行うことができる。
【００６９】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００７０】
１    通信システム
１０    ＤＨＴネットワーク
２０ａ、１００、２００    ＤＨＴネットワーク内端末
２０ｂ、１５０、２５０    ＤＨＴネットワーク外端末
２０ｃ、３００、３５０    Ｂ２ＢＵＡ機能を有するＤＨＴネットワーク内端末
【図１】
2011029861.tif 000003
【図２】
2011029861.tif 000004
【図３】
2011029861.tif 000005
【図４】
2011029861.tif 000006
【図５】
2011029861.tif 000007
【図６】
2011029861.tif 000008
【図７】
2011029861.tif 000009