(57)【特許請求の範囲】
【請求項１】
他の通信装置とのセッションを確立して通信を実行することが可能な通信装置であって、
前記他の通信装置のうち一である第一通信装置とのセッションを確立する為に必要な確立通信である第一確立通信を、前記第一通信装置との間で実行する第一通信手段と、
前記第一通信手段によって前記第一確立通信が実行され、前記第一通信装置とのセッションが確立した場合に、前記第一通信装置から送信される情報であって、前記第一通信装置とセッションが確立している前記他の通信装置である第二通信装置を特定する装置特定情報と、前記第二通信装置が実行可能な前記確立通信である第二確立通信を特定可能な通信特定情報とのうち少なくとも一方を、前記第一通信装置から受信する受信手段と、
前記受信手段によって前記装置特定情報及び前記通信特定情報が受信された場合に、受信された前記通信特定情報に基づいて、前記装置特定情報によって特定される前記第二通信装置との間で実行する確立通信である第三確立通信を決定する決定手段と、
前記決定手段によって決定された前記第三確立通信を、前記装置特定情報によって特定される前記第二通信装置との間で実行する第二通信手段と
を備えたことを特徴とする通信装置。
【請求項２】
前記決定手段は、
自身が実行可能な前記確立通信と、前記受信手段によって受信された前記通信特定情報によって特定される前記第二確立通信とが重複する場合に、重複する前記確立通信を前記第三確立通信として決定することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第一確立通信は、全ての前記通信装置が実行可能な前記確立通信であることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記決定手段は、
前記受信手段によって前記装置特定情報のみ受信された場合に、前記第一確立通信を前記第三確立通信として決定することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記通信特定情報は、前記第二確立通信を実行するために前記第二通信装置に実装されるアプリケーションの版数であることを特徴とする請求項１から４のいずれかに記載の通信装置。
【請求項６】
他の通信装置とのセッションを確立して通信を実行することが可能な通信方法であって、
前記他の通信装置のうち一である第一通信装置とのセッションを確立する為に必要な確立通信である第一確立通信を、前記第一通信装置との間で実行する第一通信ステップと、
前記第一通信ステップによって前記第一確立通信が実行され、前記第一通信装置とのセッションが確立した場合に、前記第一通信装置から送信される情報であって、前記第一通信装置とセッションが確立している前記他の通信装置である第二通信装置を特定する装置特定情報と、前記第二通信装置が実行可能な前記確立通信である第二確立通信を特定可能な通信特定情報とのうち少なくとも一方を、前記第一通信装置から受信する受信ステップと、
前記受信ステップによって前記装置特定情報及び前記通信特定情報が受信された場合に、受信された前記通信特定情報に基づいて、前記装置特定情報によって特定される前記第二通信装置との間で実行する確立通信である第三確立通信を決定する決定ステップと、
前記決定ステップによって決定された前記第三確立通信を、前記装置特定情報によって特定される前記第二通信装置との間で実行する第二通信ステップと
を備えたことを特徴とする通信方法。
【請求項７】
他の通信装置とのセッションを確立して通信を実行することが可能な通信プログラムであって、
前記他の通信装置のうち一である第一通信装置とのセッションを確立する為に必要な確立通信である第一確立通信を、前記第一通信装置との間で実行する第一通信ステップと、
前記第一通信ステップによって前記第一確立通信が実行され、前記第一通信装置とのセッションが確立した場合に、前記第一通信装置から送信される情報であって、前記第一通信装置とセッションが確立している前記他の通信装置である第二通信装置を特定する装置特定情報と、前記第二通信装置が実行可能な前記確立通信である第二確立通信を特定可能な通信特定情報とのうち少なくとも一方を、前記第一通信装置から受信する受信ステップと、
前記受信ステップによって前記装置特定情報及び前記通信特定情報が受信された場合に、受信された前記通信特定情報に基づいて、前記装置特定情報によって特定される前記第二通信装置との間で実行する確立通信である第三確立通信を決定する決定ステップと、
前記決定ステップによって決定された前記第三確立通信を、前記装置特定情報によって特定される前記第二通信装置との間で実行する第二通信ステップと
をコンピュータに実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及び通信プログラムに関する。より詳細には、多拠点間でセッションを確立させることができる通信装置、通信方法、及び通信プログラムに関する。
【背景技術】
【０００２】
複数の通信装置間でセッションを確立させ、通信を開始させることができる通信装置が知られている。例えば特許文献１に記載された通信装置では、通信装置間のセッションを確立するための確立通信が、通信経路毎に実行される。確立通信では、他の通信装置と通信を行うために必要なアドレス情報等が交換される。通信装置は、確立通信を行なうことで、他の通信装置とのセッションを確立させ、通信を開始することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３４１５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
確立通信が、其々の通信装置に実装されたアプリケーション等に基づいて実行される場合がある。また、確立通信時における通信手順が、該アプリケーションの種類やバージョン毎に異なる場合がある。このような場合、通信装置は、異なる種類やバージョンのアプリケーションが実装された他の通信装置との間で、最適な条件で確実に確立通信を行うことができない。従って、他の通信装置とセッションを確立させて通信を開始することができない場合があるという問題点がある。
【０００５】
本発明の目的は、実行可能な確立通信の通信手順が異なる複数の通信装置間で、最適な条件で確実に確立通信を実行することが可能な通信装置、通信方法、及び通信プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第一態様に係る通信装置は、他の通信装置とのセッションを確立して通信を実行することが可能な通信装置であって、前記他の通信装置のうち一である前記第一通信装置とのセッションを確立する為に必要な確立通信である第一確立通信を、前記第一通信装置との間で実行する第一通信手段と、前記第一通信手段によって前記第一確立通信が実行され、前記第一通信装置とのセッションが確立した場合に、前記第一通信装置から送信される情報であって、前記第一通信装置とセッションが確立している前記他の通信装置である第二通信装置を特定する装置特定情報と、前記第二通信装置が実行可能な前記確立通信である第二確立通信を特定可能な通信特定情報とのうち少なくとも一方を、前記第一通信装置から受信する受信手段と、前記受信手段によって前記装置特定情報及び前記通信特定情報が受信された場合に、受信された前記通信特定情報に基づいて、前記装置特定情報によって特定される前記第二通信装置との間で実行する確立通信である第三確立通信を決定する決定手段と、前記決定手段によって決定された前記第三確立通信を、前記装置特定情報によって特定される前記第二通信装置との間で実行する第二通信手段とを備えている。
【０００７】
第一態様によれば、第一通信装置と第二通信装置とは既にセッションが確立しているので、第一通信装置は、第二通信装置が実行可能な確立通信を、通信特定情報によって通知できる。通信装置は、第一通信装置から受信した通信特定情報に基づいて、自身と第二通信装置との両方が実行可能な確立通信を決定して実行できる。従って通信装置は、第二通信装置と最適な条件で確実にセッションを確立して通信を実行することができる。
【０００８】
また、第一態様において、前記決定手段は、自身が実行可能な前記確立通信と、前記受信手段によって受信された前記通信特定情報によって特定される前記第二確立通信とが重複する場合に、重複する前記確立通信を前記第三確立通信として決定してもよい。通信装置は、自身が実行可能な確立通信と第二確立通信とで重複する確立通信を、第三確立通信として決定する。従って通信装置は、自身と第二通信装置との両方が実行可能な確立通信を確実に選択することができるので、セッションを安定的に確立させることができる。
【０００９】
また、第一態様において、前記第一確立通信は、全ての前記通信装置が実行可能な前記確立通信であってもよい。これによって、第一通信装置において実行可能な確立通信がわからない場合であっても、通信装置は、第一確立通信を実行することで、第一通信装置とのセッションを確実に確立させることができる。
【００１０】
また、第一態様において、前記決定手段は、前記受信手段によって前記装置特定情報のみ受信された場合に、前記第一確立通信を前記第三確立通信として決定してもよい。通信特定情報が受信されなかった場合、第二通信装置との間で第一確立通信が実行される。第一確立通信は全ての通信装置が実行可能な確立通信であるため、通信装置は、最適な条件で確実に第二通信装置とのセッションを確立させることができる。
【００１１】
また、第一態様において、前記通信特定情報は、前記第二確立通信を実行するために前記第二通信装置に実装されるアプリケーションの版数であってもよい。通信装置は、確立通信を実行するために実装されるアプリケーションの版数に基づいて、第二確立通信を一義的に特定できる。
【００１２】
本発明の第二態様に係る通信方法は、他の通信装置とのセッションを確立して通信を実行することが可能な通信方法であって、前記他の通信装置のうち一である前記第一通信装置とのセッションを確立する為に必要な確立通信である第一確立通信を、前記第一通信装置との間で実行する第一通信ステップと、前記第一通信ステップによって前記第一確立通信が実行され、前記第一通信装置とのセッションが確立した場合に、前記第一通信装置から送信される情報であって、前記第一通信装置とセッションが確立している前記他の通信装置である第二通信装置を特定する装置特定情報と、前記第二通信装置が実行可能な前記確立通信である第二確立通信を特定可能な通信特定情報とのうち少なくとも一方を、前記第一通信装置から受信する受信ステップと、前記受信ステップによって前記装置特定情報及び前記通信特定情報が受信された場合に、受信された前記通信特定情報に基づいて、前記装置特定情報によって特定される前記第二通信装置との間で実行する確立通信である第三確立通信を決定する決定ステップと、前記決定ステップによって決定された前記第三確立通信を、前記装置特定情報によって特定される前記第二通信装置との間で実行する第二通信ステップとを備えている。
【００１３】
第二態様によれば、第一通信装置と第二通信装置とは既にセッションが確立しているので、第一通信装置は、第二通信装置が実行可能な確立通信を、通信特定情報によって通知できる。通信装置は、第一通信装置から受信した通信特定情報に基づいて、自身と第二通信装置との両方が実行可能な確立通信を決定して実行できる。従って通信装置は、第二通信装置と最適な条件で確実にセッションを確立して通信を実行することができる。
【００１４】
本発明の第三態様に係る通信プログラムは、他の通信装置とのセッションを確立して通信を実行することが可能な通信プログラムであって、前記他の通信装置のうち一である前記第一通信装置とのセッションを確立する為に必要な確立通信である第一確立通信を、前記第一通信装置との間で実行する第一通信ステップと、前記第一通信ステップによって前記第一確立通信が実行され、前記第一通信装置とのセッションが確立した場合に、前記第一通信装置から送信される情報であって、前記第一通信装置とセッションが確立している前記他の通信装置である第二通信装置を特定する装置特定情報と、前記第二通信装置が実行可能な前記確立通信である第二確立通信を特定可能な通信特定情報とのうち少なくとも一方を、前記第一通信装置から受信する受信ステップと、前記受信ステップによって前記装置特定情報及び前記通信特定情報が受信された場合に、受信された前記通信特定情報に基づいて、前記装置特定情報によって特定される前記第二通信装置との間で実行する確立通信である第三確立通信を決定する決定ステップと、前記決定ステップによって決定された前記第三確立通信を、前記装置特定情報によって特定される前記第二通信装置との間で実行する第二通信ステップとをコンピュータに実行させる。
【００１５】
第三態様によれば、第一通信装置と第二通信装置とは既にセッションが確立しているので、第一通信装置は、第二通信装置が実行可能な確立通信を、通信特定情報によって通知できる。通信装置は、第一通信装置から受信した通信特定情報に基づいて、自身と第二通信装置との両方が実行可能な確立通信を決定して実行できる。従って通信装置は、第二通信装置と最適な条件で確実にセッションを確立して通信を実行することができる。
【図面の簡単な説明】
【００１６】
【図１】通信システム１の概要、及び通信装置１４の電気的構成を示す図である。
【図２】通信アプリケーションの版数と通信手順との関係を示す図である。
【図３】通信シーケンスの第一例を示す図である。
【図４】通信シーケンスの第二例を示す図である。
【図５】メイン処理を示すフローチャートである。
【図６】送信処理を示すフローチャートである。
【図７】受信処理を示すフローチャートである。
【図８】テーブル２３１を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態について、図面を参照して説明する。これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものである。記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【００１８】
図１を参照し、通信システム１について説明する。通信システム１は、サーバ１０、通信装置１１、１２、１３、及び１４（以下、これらを区別しない場合、「通信装置１５」と呼ぶ。）を備えている。サーバ１０及び通信装置１５は、ネットワーク３に接続している。サーバ１０及び通信装置１５は、ネットワーク３を介して通信を行うことができる。通信装置１５は、呼制御通信によって他の通信装置１５とのセッションを確立し、Ｐ２Ｐ（Peer to Peer）通信を開始することができる。通信装置１５として、例えば周知のＰＣが使用される。呼制御通信のプロトコルとして、例えばＳＩＰ（Session Initiation Protocol）が使用される。サーバ１０は、通信装置１５間の呼制御通信を制御する。サーバ１０として、ＳＩＰサーバが使用される。なお、通信装置１５に付された符号（１１、１２、１３及び１４）は、其々の通信装置１５のＩＤも示しているものとする。
【００１９】
呼制御通信は、其々の通信装置１５に実装された通信アプリケーションによって実行される。呼制御通信における通信手順は、実装された通信アプリケーションの版数（バージョン）によって異なっている。例えば図２に示すように、実装される通信アプリケーションの版数がＶｅｒ．１である場合、通信装置１５は、手順１に基づいて呼制御通信を行うことが可能である。実装される通信アプリケーションの版数がＶｅｒ．２である場合、通信装置１５は、手順１及び手順２に基づいて呼制御通信を行うことが可能である。実装されるアプリケーションの版数がＶｅｒ．３である場合、通信装置１５は、手順１、手順２、及び手順３に基づいて呼制御通信を行うことが可能である。このように、通信アプリケーションにおいて実行可能な呼制御通信の通信手順は、上位互換性がある。実行される呼制御通信は、手順１、手順２、及び手順３の順で高度且つ高性能になるので、手順１よりも手順２、手順２よりも手順３に基づいて呼制御通信が実行されることが好ましい。また、詳細は後述するが、其々の手順に基づいて呼制御通信が実行される場合に使用される要求パケットに格納される情報（ポート番号）も、通信アプリケーションの版数によって異なる。
【００２０】
図１に示すように、通信装置１２には、版数がＶｅｒ．１である通信アプリケーションが実装されている。通信装置１３には、版数がＶｅｒ．２である通信アプリケーションが実装されている。通信装置１１及び１４には、版数がＶｅｒ．３である通信アプリケーションが実装されている。従って例えば、通信装置１１と通信装置１２とが手順３に基づいて呼制御通信を行おうとした場合、通信装置１１は手順３に基づいて呼制御通信を行うことが可能であるのに対し、通信装置１２は手順３に基づいて呼制御通信を行うことができない。従って、通信装置１１と通信装置１２との呼制御通信は失敗し、通信装置１１と通信装置１２とはセッションを確立させることができない。
【００２１】
上述のような場合に本実施形態では、通信装置１１及び通信装置１２は、双方が実行可能な呼制御通信の通信手順である手順１を効率的に把握する。そして手順１に基づいて、通信装置１１と通信装置１２とは呼制御通信を実行する。これによって通信装置１１と通信装置１２との呼制御通信は成功し、通信装置１１と通信装置１２とはセッションを確立させてＰ２Ｐ通信を開始することができる。このように本実施形態における通信装置１５は、他の通信装置１５との間で実行可能な呼制御通信の手順を効率的に把握し、迅速に呼制御通信を実行して確実にセッションを確立させることができる。
【００２２】
通信装置１４の電気的構成について説明する。通信装置１１、１２、及び１３の電気的構成は、通信装置１４と同一である。通信装置１４は、通信装置１４の制御を司るＣＰＵ２１を備えている。ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、ハードディスクドライブ（ＨＤＤ）２４、入力部２５、出力部２６、ドライブ装置２７、及び通信部２８と電気的に接続している。ＲＯＭ２２には、ブートプログラムやＢＩＯＳ、ＯＳ等が記憶される。ＲＡＭ２３には、タイマやカウンタ、一時的なデータが記憶される。ＨＤＤ２４には、ＣＰＵ２１の制御プログラムが記憶される。入力部２５は、ユーザからの入力を受け付けるキーボードやマウスである。出力部２６は、所望の画像を表示させるディスプレイである。ドライブ装置２７は、記憶媒体２７１に記憶された情報を読み出すことができる。例えば、通信装置１４のセットアップ時、記憶媒体２７１に記憶された制御プログラムはドライブ装置２７によって読み出され、ＨＤＤ２４に記憶される。通信部２８は、ネットワーク３を介して他の通信装置１５と通信を行う場合のタイミング制御を行う。
【００２３】
図３を参照し、通信装置１１、１２、及び１３間の通信シーケンスの第一例について説明する。なお、通信装置１１、１２、及び１３間の呼制御通信は、サーバ１０（図１参照）を介して実行されるが、図３ではサーバ１０は省略されている。後述する図４も同様である。通信装置１２と通信装置１３とは、既に呼制御通信によってセッションを確立させ、Ｐ２Ｐ通信を行っている（Ｓ１１）。通信装置１２は、通信装置１１との間のセッションを新たに確立しようとしている。
【００２４】
通信装置１２は、手順１に基づいて、通信装置１１との呼制御通信を開始する。通信装置１２は、通信装置１１に対して、セッションの確立を要求する要求パケット（以下「INVITE要求」という。）を送信する。INVITE要求には、セッションの確立後、データがＰ２Ｐで送受信される場合に使用されるポート番号が格納される。図２に示すように、手順１に基づいて呼制御通信が実行される場合、INVITE要求には、音声データ及び映像データがＰ２Ｐで送受信される場合に使用されるポート番号が其々格納される。以下、音声データが送受信される場合に使用されるポート番号を「audio」と表記する。映像データが送受信される場合に使用されるポート番号を「video」と表記する。通信装置１１は、INVITE要求を受信する（Ｓ１３）。
【００２５】
なお第一例では、通信装置１２に実装されている通信アプリケーションの版数がＶｅｒ．１であるので、通信装置１２では、呼制御通信の通信手順として必然的に手順１が選択され、INVITE要求には「audio」及び「video」が格納されていた。これに対して本実施形態では、他の通信装置１５において実行可能な呼制御通信の通信手順がわからない状態で、他の通信装置１５とのセッションを確立させようとする場合、通信装置１５は、常に手順１に基づいて呼制御通信を開始する。従ってこの場合、送信されるINVITE要求には、常に「audio」及び「video」が格納される。図２に示すように、手順１に基づいた呼制御通信は、通信装置１５に実装される通信アプリケーションの版数に依らず、全ての通信装置１５において実行することが可能である。このため通信装置１５は、手順１に基づいてINVITE要求を他の通信装置１５に送信することで、他の通信装置１５において実行可能な呼制御通信の通信手順がわからない場合でも、円滑に以後の呼制御通信を実行することができる。
【００２６】
通信装置１１は、通信装置１２から送信されたINVITE要求を受信した（Ｓ１３）場合、INVITE要求に格納されているポート番号を抽出する。通信装置１１は、INVITE要求に格納されているポート番号が「audio」及び「video」であることから、手順１に基づいた呼制御通信が開始されたことを認識する。通信装置１１は、手順１に基づいて、通信装置１２に対して許可パケット（以下「180RINGRING」という。）を送信する。通信装置１２は、180RINGRINGを受信する（Ｓ１５）。通信装置１２は、手順１に基づいて、応答パケット（以下「200OK」という。）を通信装置１１に対して送信する。通信装置１１は200OKを受信する（Ｓ１７）。通信装置１１は、手順１に基づいて、通信装置１２に対してACKを送信する。通信装置１２はACKを受信する（Ｓ１９）。以上で、手順１に基づいた一連の呼制御通信は終了し、通信装置１１と通信装置１２とのセッションは確立する。通信装置１１と通信装置１２とはＰ２Ｐ通信を開始する（Ｓ２１）。
【００２７】
通信装置１２は、通信アプリケーションの版数を通知するための通知パケットを、通信装置１１に対して送信する。通知パケットには、通信装置１２に実装されている通信アプリケーションの版数「Ｖｅｒ．１」が、通信装置１２のＩＤに対応付けられて格納される。また通知パケットには、通信装置１２とのセッションが既に確立している通信装置１３に実装されている通信アプリケーションの版数「Ｖｅｒ．２」が、通信装置１３のＩＤに対応付けられて格納される。通信装置１１は、通知パケットを受信する（Ｓ２３）。
【００２８】
通信装置１１は、通知パケットに格納されたＩＤにて特定される通信装置１２、及び１３のうち、未だセッションが確立していない通信装置１３を抽出する。通信装置１１は、抽出した通信装置１３とのセッションを確立させるための呼制御通信を開始する。ここで通信装置１１は、Ｓ２３で、通信装置１３に実装されている通信アプリケーションの版数「Ｖｅｒ．２」を通信装置１２から取得している。通信装置１１は、通信装置１２が実行可能な呼制御通信の通信手順が、手順１及び手順２であることを特定する。一方、通信装置１１に実装されている通信アプリケーションの版数はＶｅｒ．３であるので、通信装置１１は、手順１、手順２、及び手順３に基づいて呼制御通信を行うことができる状態にある。通信装置１１は、双方で重複する呼制御通信の通信手順である手順１、及び手順２のうち、より高度かつ高機能である手順２を、実行可能な呼制御通信の通信手順として決定する。
【００２９】
通信装置１１は、決定した手順２に基づいて、通信装置１３との呼制御通信を開始する。通信装置１１は、通信装置１３に対してINVITE要求を送信する。手順２に基づいて呼制御通信が実行される場合、図２に示すように、INVITE要求には、「audio」「video」、及び、専用アプリケーションに基づいたデータが送受信される場合に使用されるポート番号が格納される。以下、専用アプリケーションに基づいたデータが送受信される場合に使用されるポート番号を「app」と表記する。通信装置１３は、INVITE要求を受信する（Ｓ２５）。
【００３０】
通信装置１３は、通信装置１１から送信されたINVITE要求に格納されているポート番号が「audio」「video」及び「app」であることから、手順２に基づいた呼制御通信が開始されたことを認識する。通信装置１３は、手順２に基づいて、通信装置１１に対して180RINGRINGを送信する。通信装置１１は180RINGRINGを受信する（Ｓ２７）。通信装置１１は、手順２に基づいて、PRACKを通信装置１３に対して送信する。通信装置１３はPRACKを受信する（Ｓ２９）。通信装置１３は、手順２に基づいて、PRACKに対する応答パケット（以下「200OK(PRACK)」という。）を通信装置１１に対して送信する。通信装置１１は、200OK(PRACK)を受信する（Ｓ３１）。通信装置１３は、手順２に基づいて、Ｓ２５で受信したINVITE要求に対する応答パケット（以下「200OK(INVITE)」という。）を、通信装置１１に対して送信する。通信装置１１は、200OK(INVITE)を受信する（Ｓ３３）。通信装置１１は、手順２に基づいて、ACKを通信装置１３に対して送信する。通信装置１３はACKを受信する（Ｓ３５）。以上で、手順２に基づいた一連の呼制御通信は終了し、通信装置１１と通信装置１３とのセッションは確立する。通信装置１１と通信装置１３とはＰ２Ｐ通信を開始する（Ｓ３７）。通信装置１３は、通信装置１２及び１３のＩＤ、及び、其々に実装された通信アプリケーションの版数が格納された通知パケットを、通信装置１１に対して送信する。通信装置１１は、通知パケットを受信する（Ｓ３９）。通信装置１１は、通信装置１２及び１３のいずれとも既にセッションが確立しているので、以後、新たに呼制御通信は行わない。
【００３１】
以上のように、通信装置１２は、セッションを確立させようとしている通信装置１１において実行可能な呼制御通信の通信手順がわからない場合、手順１に基づいて呼制御通信を開始する。これによって、通信装置１１に実装されたアプリケーションに依らず、通信装置１２は通信装置１１と呼制御通信を行ってセッションを確立させることができる。
【００３２】
また通信装置１１は、通信装置１２から受信した通知パケットに格納されている情報（ＩＤ及び版数）に基づいて、通信装置１３との呼制御通信における通信手順を選択できる。これによって通信装置１１は、より高度で且つ高機能な通信手順を効率的に選択し、通信装置１３と呼制御通信を行うことができる。
【００３３】
図４を参照し、通信装置１１、１２、１３及び１４間の通信シーケンスの第二例について説明する。図３の第一例と同一の部分については、説明を省略し又は簡略化している。通信装置１２、１３、及び１４は、既に呼制御通信によってセッションを確立させ、Ｐ２Ｐ通信を行っている（Ｓ５１）。通信装置１１は、通信装置１２との間のセッションを確立しようとしている。
【００３４】
通信装置１１は、通信装置１２において実行可能な呼制御通信の手順がわからないので、手順１に基づいて、通信装置１２に対してINVITE要求を送信する。通信装置１２はINVITE要求を受信する（Ｓ５３）。通信装置１２は、手順１に基づいて、通信装置１１に対して180RINGRINGを送信する。通信装置１１は、180RINGRINGを受信する（Ｓ５５）。通信装置１１は、手順１に基づいて、200OKを通信装置１２に対して送信する。通信装置１２は200OKを受信する（Ｓ５７）。通信装置１２は、手順１に基づいて、通信装置１１に対してACKを送信する。通信装置１１はACKを受信する（Ｓ５９）。以上で、手順１に基づいた一連の呼制御通信は終了し、通信装置１１と通信装置１２とのセッションは確立する。通信装置１１と通信装置１２とはＰ２Ｐ通信を開始する（Ｓ６１）。
【００３５】
通信装置１２は、通知パケットを通信装置１１に対して送信する。通知パケットには、通信装置１２に実装されている通信アプリケーションの版数「Ｖｅｒ．１」が、通信装置１２のＩＤに対応付けて格納される。また通知パケットには、通信装置１２とのセッションが既に確立している通信装置１３及び１４に実装されている通信アプリケーションの版数（通信装置１３：Ｖｅｒ．２、通信装置１４：Ｖｅｒ．３）が、通信装置１３及び１４のＩＤに其々対応付けられて格納される。通信装置１１は、通知パケットを受信する（Ｓ６３）。
【００３６】
通信装置１１は、通知パケットに格納されたＩＤにて特定される通信装置１２、１３、及び１４のうち、未だセッションが確立していない通信装置１３、及び１４を抽出する。通信装置１１は、はじめに、抽出した通信装置１３とのセッションを確立させるための呼制御通信を開始する。通信装置１３とのセッションを確立させるための呼制御通信は、手順２に基づいて実行される。実行される呼制御通信（Ｓ７１、７３、７５、７７、７９、８１、及び８３）は、図３の第一例で示した呼制御通信（Ｓ２５、２７、２９、３１、３３、３５、及び３７）と同一である。
【００３７】
通信装置１３は、通知パケットを通信装置１１に対して送信する。通知パケットには、通信装置１３に実装されている通信アプリケーションの版数「Ｖｅｒ．２」が、通信装置１３のＩＤに対応付けて格納される。また通知パケットには、通信装置１３とのセッションが既に確立している通信装置１２及び１４に実装されている通信アプリケーションの版数（通信装置１２：Ｖｅｒ．１、通信装置１４：Ｖｅｒ．３）が、通信装置１２及び１４のＩＤに其々対応付けて格納される。通信装置１１は、通知パケットを受信する（Ｓ８５）。
【００３８】
通信装置１１は、通知パケットに格納されたＩＤにて特定される通信装置１２、１３及び１４のうち、未だセッションが確立していない通信装置１４を抽出する。通信装置１１は、抽出した通信装置１４とのセッションを確立させるための呼制御通信を開始する。ここで通信装置１１は、Ｓ８５で、通信装置１４に実装されている通信アプリケーションの版数「Ｖｅｒ．３」を通信装置１３から取得している。通信装置１１は、通信装置１４が実行可能な呼制御通信の通信手順が、手順１、手順２、及び手順３であることを特定する。通信装置１１は、自身が実行可能な呼制御通信の通信手順である手順１、手順２、及び手順３との間で重複する通信手順のうち、最も高度かつ高機能である手順３を、通信装置１４との間で実行可能な呼制御通信の通信手順として決定する。
【００３９】
通信装置１１は、決定した手順３に基づいて、通信装置１４との呼制御通信を開始する。通信装置１１は、通信装置１４に対してINVITE要求を送信する。手順３に基づいて呼制御通信が実行される場合、図２に示すように、INVITE要求には「app」が格納される。通信装置１４はINVITE要求を受信する（Ｓ８７）。通信装置１４は、通信装置１１から送信されたINVITE要求に格納されているポート番号が「app」であることから、手順３に基づいた呼制御通信が開始されたことを認識する。通信装置１４は、手順３に基づいて、通信装置１１に対して180RINGRINGを送信する。通信装置１１は、180RINGRINGを受信する（Ｓ８９）。通信装置１１は、手順３に基づいて、200OK(INVITE)を通信装置１４に対して送信する。通信装置１４は200OK(INVITE)を受信する（Ｓ９１）。通信装置１４は、通信装置１１に対してACKを送信する。通信装置１１はACKを受信する（Ｓ９３）。通信装置１１と通信装置１４とのセッションは確立し、Ｐ２Ｐ通信が開始される（Ｓ９５）。通信装置１１及び通信装置１４は、互いの詳細なアドレス情報を交換するためのハンドシェイクの通信を実行する（Ｓ９７）。
【００４０】
通信装置１４は、通信装置１２、１３、及び１４のＩＤ及び通信アプリケーションの版数が格納された通知パケットを、通信装置１１に対して送信する。通信装置１１は、通知パケットを受信する（Ｓ９８）。通信装置１１は、通信装置１２、１３、及び１４のいずれとも既にセッションが確立しているので、以後、新たに呼制御通信は行わない。通信装置１１は、通信装置１１、１２、及び１３のＩＤ及び通信アプリケーションの版数が格納された通知パケットを、通信装置１４に対して送信する。通信装置１４は、通知パケットを受信する（Ｓ９９）。通信装置１４は、通信装置１１、１２、及び１３のいずれとも既にセッションが確立しているので、以後、新たに呼制御通信は行わない。
【００４１】
以上のように、通信装置１１は、受信した通知パケットに格納されている情報に基づいて最適な呼制御通信の通信手順を選択し、選択した通信手順に基づいて、通信装置１２、１３、及び１４と呼制御通信を行うことができる。また、通信装置１５は、既にセッションが確立した他の通信装置１５とは呼制御通信を行わない。このため、重複する無駄な呼制御通信が実行されることが防止されるので、ネットワーク３のトラフィックは抑制される。
【００４２】
なお上述では、INVITE要求に格納されているポート番号に基づいて、呼制御通信の通信手順を特定していたが、本発明はこれに限定されない。通信手順を示す情報が直接INVITE要求に格納されていてもよい。セッションが確立した状態の他の通信装置１５に実装されている通信アプリケーションの版数は、Ｐ２Ｐ通信時に取得してもよい。
【００４３】
図５から図７を参照し、通信装置１５のＣＰＵ２１において実行されるメイン処理、送信処理、及び受信処理について説明する。メイン処理は、通信装置１５間でセッションを確立させるためのアプリケーションが起動された場合に、ＣＰＵ２１において起動され実行される。送信処理は、ＲＡＭ２３に記憶された送信フラグがＯＦＦからＯＮとなった場合に起動される。受信処理は、ＲＡＭ２３に記憶された受信フラグがＯＦＦからＯＮとなった場合に起動される。送信フラグ及び受信フラグのＯＮ／ＯＦＦは、メイン処理中で切り替えられる。送信フラグ及び受信フラグは、メイン処理の起動時にはＯＦＦされている。ＣＰＵ２１によって実行される各処理は、ＯＳによってスイッチングされる。これによって其々の処理は並列して実行される。
【００４４】
図５を参照し、メイン処理について説明する。はじめに、送信フラグがＯＮされ（Ｓ１１１）、続いて受信フラグがＯＮされる（Ｓ１１３）。他の通信装置１５とのセッションを確立させる旨の指示が、入力部２５（図１参照）を介してユーザによって入力されたかが判断される（Ｓ１１５）。他の通信装置１５とのセッションを確立させる旨の指示が入力された場合（Ｓ１１５：ＹＥＳ）、呼制御通信の通信手順として手順１が選択される（Ｓ１１７）。選択された手順１に基づいて、他の通信装置１５との間で呼制御通信が実行される（Ｓ１１９）。一連の呼制御通信が終了した後、処理はＳ１１５に戻る。
【００４５】
一方、他の通信装置１５とのセッションを確立させる旨の指示が入力されていない場合（Ｓ１１５：ＮＯ）、他の通信装置１５からINVITE要求を受信したかが判断される（Ｓ１２１）。他の通信装置１５からINVITE要求を受信した場合（Ｓ１２１：ＹＥＳ）、INVITE要求に格納されているポート番号に基づいて、受信したINVITE要求を含む呼制御通信の通信手順が決定される（Ｓ１２３）。決定された手順に基づいて、呼制御通信が実行される（Ｓ１２５）。一連の呼制御通信が終了した後、処理はＳ１１５に戻る。
【００４６】
他の通信装置１５とのセッションを確立させる指示が入力されておらず、且つ、他の通信装置１５からINVITE要求を受信していない場合（Ｓ１１５：ＮＯ、Ｓ１２１：ＮＯ）、セッションを中止させる旨の指示が入力部２５を介してユーザによって入力されたかが判断される（Ｓ１２７）。セッションを中止させる旨の指示が入力された場合（Ｓ１２７：ＹＥＳ）、メイン処理は終了する。セッションを中止させる旨の指示が入力されていない場合（Ｓ１２７：ＮＯ）、処理はＳ１１５に戻る。
【００４７】
図６を参照し、送信処理について説明する。メイン処理（図５参照）での呼制御通信（Ｓ１１９、Ｓ１２５、図５参照）によって、呼制御通信の相手方の通信装置１５と新たにセッションが確立したかが判断される（Ｓ１３１）。呼制御通信の相手方の通信装置１５とのセッションが新たに確立していない場合（Ｓ１３１：ＮＯ）、処理はＳ１３１に戻る。呼制御通信の相手方の通信装置１５とのセッションが新たに確立した場合（Ｓ１３１：ＹＥＳ）、現時点でセッションが確立している他の通信装置１５に実装されている通信アプリケーションの版数が取得される（Ｓ１３３）。取得された版数に、対応する通信装置１５のＩＤが対応付けられ、通知パケットに格納される。また、自身のＩＤ、及び、自身に実装されている通信アプリケーションの版数が対応付けられ、通知パケットに格納される。通知パケットは、呼制御通信の相手方の通信装置１５に対して送信される（Ｓ１３５）。処理はＳ１３１に戻る。
【００４８】
図７を参照し、受信処理について説明する。他の通信装置１５から通知パケットを受信したかが判断される（Ｓ１４１）。他の通信装置１５から通知パケットを受信していない場合（Ｓ１４１：ＮＯ）、処理はＳ１４１に戻る。他の通信装置１５から通知パケットを受信した場合（Ｓ１４１：ＹＥＳ）、通知パケットに格納されたＩＤ及び通信アプリケーションの版数が取得される。取得されたＩＤによって特定される通信装置１５の中に、未だセッションが確立していない通信装置１５があるかが判断される（Ｓ１４３）。取得されたＩＤによって特定される通信装置１５の全てと既にセッションが確立している場合（Ｓ１４３：ＮＯ）、処理はＳ１４１に戻る。
【００４９】
通知パケットから取得されたＩＤによって特定される通信装置１５のうち、未だセッションが確立していない通信装置１５がある場合（Ｓ１４３：ＹＥＳ）、セッションが確立していない通信装置１５のＩＤは、対応する通信アプリケーションの版数と共に、ＲＡＭ２３に記憶されたテーブル２３１（図８参照）に格納される（Ｓ１４５）。図８に示すように、テーブル２３１には、ＩＤと通信アプリケーションの版数とが対応付けて格納される。
【００５０】
図７に示すように、テーブル２３１に格納されたＩＤが一つずつ選択される。選択されたＩＤに対応付けられている通信アプリケーションの版数から、該通信アプリケーションによって実行可能な呼制御通信の通信手順が特定される。自身に実装されている通信アプリケーションの版数から、該通信アプリケーションによって実行可能な呼制御通信の通信手順が特定される。双方で重複する通信手順が選択される。選択された通信手順のうち、より高度で且つ高機能な通信手順が、実行する呼制御通信の通信手順として決定される（Ｓ１４７）。このように通信手順を決定することで、確実に実行可能な呼制御通信の通信手順が決定される。決定された通信手順に基づいて、選択されたＩＤにて特定される通信装置１５に対してINVITE要求が送信され、呼制御通信が実行される（Ｓ１４９）。一連の呼制御通信が終了した後、呼制御通信を行った通信装置のＩＤと、対応する通信アプリケーションの版数とが、テーブル２３１から削除され更新される（Ｓ１５１）。
【００５１】
テーブル２３１にＩＤ及び版数が残存しているかが判断される（Ｓ１５３）。残存するＩＤ及び版数がある場合（Ｓ１５３：ＹＥＳ）、処理はＳ１４７に戻る。残存するＩＤが順に選択され、処理が繰り返される。テーブル２３１にＩＤ及び版数が残存しない場合（Ｓ１５３：ＮＯ）、処理はＳ１４１に戻る。
【００５２】
以上説明したように、通信装置１５は、セッションを確立させた他の通信装置１５から通知パケットを受信する。そして、受信した通知パケットに格納されている情報を参照することで、新たに実行される呼制御通信の通信手順を決定し、確実に呼制御通信を実行できる。なお、他の通信装置１５において実行可能な呼制御通信の通信手順がわからない場合は、全ての通信装置１５で実行可能な呼制御通信の手順（手順１）に基づいて呼制御通信が開始されるので、確実に呼制御通信を実行してＰ２Ｐ通信を開始させることができる。
【００５３】
本発明は、上述の実施形態に限定されるものではなく、種々の変更が可能である。本実施の形態では、ＩＤ及び通信アプリケーションの版数が通知パケットに常に格納されていた。例えば、通知パケットにＩＤのみ格納されている場合には、全ての通信装置１５において実行可能な呼制御通信の通信手順である手順１が選択されてもよい。この場合、図７のＳ１４５において、通知パケットに格納されたＩＤがテーブル２３１に格納される。Ｓ１４７で呼制御通信の通信手順が決定される際、ＩＤに対応する通信アプリケーションの版数がテーブル２３１に格納されていない場合には、呼制御通信の通信手順として手順１が決定される。そしてＳ１４９で、決定された手順１に基づいて、テーブル２３１に格納されたＩＤにて特定される通信装置１５との間で呼制御通信が実行される。
【００５４】
上述では、ＳＩＰに基づいて呼制御通信が実行される例を示したが、本発明はこれに限定されない。他の呼制御通信が実行されてもよい。又呼制御通信は、サーバ１０を介さず、他の通信装置１５との間で直接実行されてもよい。セッションが確立した後、通信装置１５間でＰ２Ｐ通信が実行されていたが、セッション確立後の通信はＰ２Ｐ通信に限定されない。
【００５５】
上述では、通知パケットが送信される際、自身のＩＤと版数、及び、セッションが確立している他の通信装置１５のＩＤと版数が、通知パケットに格納されていたが、本発明はこれに限定されない。自身のＩＤ及び版数は、通知パケットに格納されなくてもよい。また、通信装置１５から通知パケットを受信してから、次に呼制御通信を開始するまでの時間がランダムに決定されてもよい。これによって、呼制御通信の開始タイミングが一致してしまってINVITE要求が衝突してしまうことを防止できるので、通信装置１５は、確実に呼制御通信を実行することができる。
【００５６】
なお、図１の通信装置１５が本発明の「通信装置」「第一通信装置」「第二通信装置」に相当する。通信装置１５のＩＤが本発明の「装置特定情報」に相当し、通信アプリケーションの版数が本発明の「通信特定情報」に相当する。図２の手順１に基づいて行われる呼制御通信が、本発明の「第一確立通信」に相当する。図５のＳ１１９の処理を行うＣＰＵ２１が本発明の「第一通信手段」に相当する。図７のＳ１４１の処理を行うＣＰＵ２１が本発明の「受信手段」に相当し、Ｓ１４７の処理を行うＣＰＵ２１が本発明の「決定手段」に相当し、Ｓ１４９の処理を行うＣＰＵ２１が本発明の「第二通信手段」に相当する。図５のＳ１１９の処理が本発明の「第一通信ステップ」に相当する。図７のＳ１４１の処理が本発明の「受信ステップ」に相当し、Ｓ１４７の処理が本発明の「決定ステップ」に相当し、Ｓ１４９の処理が本発明の「第二通信ステップ」に相当する。
【符号の説明】
【００５７】
１      通信システム
１１、１２、１３、１４、１５  通信装置
２１    ＣＰＵ
【図１】
0005353847.tif 000002
【図２】
0005353847.tif 000003
【図３】
0005353847.tif 000004
【図４】
0005353847.tif 000005
【図５】
0005353847.tif 000006
【図６】
0005353847.tif 000007
【図７】
0005353847.tif 000008
【図８】
0005353847.tif 000009