[go: up one dir, main page]

JP5229299B2 - 通信装置、通信方法、および通信プログラム - Google Patents

通信装置、通信方法、および通信プログラム Download PDF

Info

Publication number
JP5229299B2
JP5229299B2 JP2010239891A JP2010239891A JP5229299B2 JP 5229299 B2 JP5229299 B2 JP 5229299B2 JP 2010239891 A JP2010239891 A JP 2010239891A JP 2010239891 A JP2010239891 A JP 2010239891A JP 5229299 B2 JP5229299 B2 JP 5229299B2
Authority
JP
Japan
Prior art keywords
session
communication device
message
server
communication
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.)
Active
Application number
JP2010239891A
Other languages
English (en)
Other versions
JP2012095045A (ja
Inventor
康博 工藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2010239891A priority Critical patent/JP5229299B2/ja
Priority to US13/281,583 priority patent/US8667149B2/en
Publication of JP2012095045A publication Critical patent/JP2012095045A/ja
Application granted granted Critical
Publication of JP5229299B2 publication Critical patent/JP5229299B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、複数の通信装置間でP2P通信を実行する通信システムで用いられる通信装置、通信方法、および通信プログラムに関する。
従来、複数の通信装置がP2P(peer to peer)で通信を行うために、通信装置間でセッションを確立する技術が知られている。非特許文献1は、通信装置間でセッションを確立するための接続プロトコルであるSIP(Session Initiation Protocol)を開示している。SIPに従うことで容易にセッションを確立できるため、SIPは広く用いられている。
一般的に、SIPでは、SIPリクエストを処理するサーバを介して通信装置間のセッションが確立される。まず、発呼側の通信装置(以下、「発呼装置」という。)が、オファー情報を含むセッション開始メッセージ(呼出要求「INVITE」)をサーバに送信する。オファー情報には、メディアデータを受信するために使用するポートの情報、受信可能なメディア種別の情報(例えば、音声および映像のCODEC)等が含まれる。サーバは、発呼装置から受信したセッション開始メッセージを、セッションを確立する相手方の通信装置(以下、「被呼装置」という。)に送信(転送)する。被呼装置は、サーバを介してセッション開始メッセージを受信すると、着信許可の指示がユーザによって入力されるまで、暫定応答メッセージ「180 Ringing」をサーバを介して繰り返し発呼装置に送信する。着信許可の指示が被呼装置に入力されると、被呼装置は、セッション開始メッセージに含まれるオファー情報から、自身が採用するメディア種別を選択する。選択したメディア種別の情報を、アンサー情報として応答メッセージ「200 OK」に含めてサーバに送信する。サーバは、被呼装置から受信した応答メッセージを発呼装置に送信(転送)する。その後、発呼装置は、受信した応答メッセージに含まれるアンサー情報に基づいて、サーバを介さずに直接被呼装置へデータを送信する。その結果、発呼装置と被呼装置との間のセッションが確立する。
IETF RFC3261「SIP:Session Initiation Protocol」<URL>http://www.ietf.org/rfc/rfc3261.txt(2010年9月24日)
従来のセッションの確立方法では、サーバは、セッションの確立が完了するまでに多数のメッセージを送受信する必要があった。さらに、サーバは、セッションの確立が完了するまで、セッションの確立に必要な情報を保持しておかなければならなかった。従って、サーバにかかる負荷が大きいという問題点があった。
本発明は、通信装置間のセッションを確立する場合に、セッションの確立を仲介するサーバにかかる負荷を低下させることができる通信装置、通信方法、および通信プログラムを提供することを目的とする。
本発明の第一の態様に係る通信装置は、データの送受信を行うサーバを介して他の通信装置との間でセッションを確立することで、前記他の通信装置との間でP2P通信を行う通信装置であって、前記他の通信装置に対してセッションの確立を要求する発呼装置として動作する場合に、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含むセッション開始メッセージを、前記サーバを介して前記他の通信装置に送信する第一送信手段と、前記他の通信装置からセッションの確立を要求される着呼装置として動作する場合に、前記他の通信装置の第一送信手段によって送信されたセッション開始メッセージを前記サーバを介して受信することを契機として、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含む応答メッセージを、前記サーバを介して前記他の通信装置に送信する第二送信手段と、前記サーバを介して前記他の通信装置から受信したセッション開始メッセージまたは応答メッセージ内の情報によって特定される制御セッション用のポートへ制御メッセージを送信することで、前記他の通信装置との間でセッションを確立するセッション確立手段と、前記着呼装置として動作する場合に、前記他の通信装置からの着信を許可する旨のユーザの指示を受け付ける指示受付手段と、前記セッション確立手段によってセッションが確立された後に、前記指示受付手段によって前記指示が受け付けられることを契機として、前記他の通信装置との間のメディアデータの送受信を開始する開始手段とを備えている。
第一の態様に係る通信装置によると、発呼装置と着呼装置との間でサーバを介して送受信されるメッセージに、相手方の通信装置から直接制御セッション用のデータを受信するためのポートの情報が含まれる。発呼装置および着呼装置は、メッセージに含まれるポートの情報に基づいて、着呼装置に着信許可の指示が入力されるか否かに係らず、セッションを確立する。従って、サーバは、セッションの確立に必要な情報の保持時間を短縮することができる。また、通信装置は、セッションが確立するまでの間にサーバを介して送受信するメッセージ(例えば、接続確認のためのメッセージ)の数を減らすことができる。さらに、通信装置は、制御セッションを確立するために最低限必要な情報以外の情報については、セッションの確立後に相手方の通信装置との間で直接送受信することができる。その結果、サーバを中継するデータのデータ量が減少する。従って、通信装置は、サーバにかかる負荷を低下させることができる。
前記第二送信手段は、セッションを確立するための前記制御メッセージを前記他の通信装置から直接受信するための1つのポートの情報を、送信する前記応答メッセージに含めてもよい。この場合、応答メッセージに含まれるポートの情報が、1つのポートの情報のみとなる。よって、サーバを中継するデータのデータ量が減少し、サーバにかかる負荷をさらに低下させることができる。通信装置は、最低限必要なポートを1つだけ開放することになるため、情報が漏洩する可能性も低下させることができる。
前記第一送信手段は、セッションを確立するための前記制御メッセージを前記他の通信装置から直接受信するための1つのポートの情報を、送信する前記セッション開始メッセージに含めてもよい。この場合、セッション開始メッセージに含まれるポートの情報が、1つのポートの情報のみとなる。よって、サーバを中継するデータのデータ量が減少し、サーバにかかる負荷をさらに低下させることができる。通信装置は、最低限必要なポートを1つだけ開放することになるため、情報が漏洩する可能性も低下させることができる。
前記通信装置は、前記着呼装置として動作する場合に、前記他の通信装置の第一送信手段によって送信されたセッション開始メッセージを前記サーバから受信することを契機として、受信した前記セッション開始メッセージに対する暫定応答メッセージを、前記サーバを介して前記他の通信装置に送信する第三送信手段と、前記他の通信装置の第一送信手段によって送信されたセッション開始メッセージを前記サーバを介して受信した場合に、受信した前記セッション開始メッセージに含まれる情報に基づいて、前記第二送信手段による応答メッセージの送信、および前記第三送信手段による暫定応答メッセージの送信のいずれを実行するかを決定する決定手段とをさらに備えてもよい。前記第二送信手段および前記第三送信手段は、前記決定手段によって応答メッセージおよび暫定応答メッセージのいずれかを送信することが決定された場合にのみ、決定された応答メッセージまたは暫定応答メッセージを送信してもよい。この場合、通信装置は、従来の一般的なセッション確立方法に従い、第三送信手段によって暫定応答メッセージを送信することもできる。第二送信手段によってすぐに応答メッセージを送信し、即時にセッションを確立することもできる。従って、通信装置は、相手方の通信装置に応じた適切な方法でセッションを確立することができる。
前記決定手段は、前記制御メッセージを前記他の通信装置が直接受信するための1つのポートの情報が、前記サーバを介して受信した前記セッション開始メッセージに含まれていれば、前記第二送信手段によって応答メッセージを送信することを決定し、前記サーバを介して受信した前記セッション開始メッセージに前記1つのポートの情報が含まれていなければ、前記第三送信手段によって暫定応答メッセージを送信することを決定してもよい。従来の一般的な方法では、メディアを受信するためのポートの情報等がセッション開始メッセージに含まれているが、制御メッセージを受信するためのポート(以下、「制御セッション用ポート」という。)の情報は含まれていない。通信装置は、着信許可の入力前に即時にセッションを確立する方式(以下、「即時確立方式」という。)に相手方の通信装置が対応しているか否かを、制御セッション用ポートの情報が含まれているか否かに応じて的確に判断することができる。
前記第二送信手段は、前記サーバを介して受信した前記セッション開始メッセージに、前記他の通信装置がメディアデータを受信するポートであるメディア用ポートの情報が含まれている場合に、前記メディア用ポートにメディアデータを送信しないことを示す情報を前記応答メッセージに含めてもよい。この場合、発呼装置は、セッション開始メッセージによって着呼装置に通知したメディア用ポートを、セッションの確立後に再びメディア用ポートとして通知してもよい。一方、他のポートを用いてメディアデータを受信してもよい。よって、通信装置は、データがNAT装置を通過するか否か等の種々の条件に応じて、最適なポートを用いてメディアデータを送受信することができる。
本発明の第二の態様に係る通信方法は、データの送受信を行うサーバを介して他の通信装置との間でセッションを確立することで、前記他の通信装置との間でP2P通信を行う通信装置によって行われる通信方法であって、前記他の通信装置に対してセッションの確立を要求する発呼装置として前記通信装置が動作する場合に、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含むセッション開始メッセージを、前記サーバを介して前記他の通信装置に送信する第一送信ステップと、前記他の通信装置からセッションの確立を要求される着呼装置として前記通信装置が動作する場合に、前記他の通信装置が実行した第一送信ステップにおいて送信されたセッション開始メッセージを前記サーバを介して受信することを契機として、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含む応答メッセージを、前記サーバを介して前記他の通信装置に送信する第二送信ステップと、前記サーバを介して前記他の通信装置から受信したセッション開始メッセージまたは応答メッセージ内の情報によって特定される制御セッション用のポートへ制御メッセージを送信することで、前記他の通信装置との間でセッションを確立するセッション確立ステップと、前記通信装置が前記着呼装置として動作する場合に、前記他の通信装置からの着信を許可する旨のユーザの指示を受け付ける指示受付ステップと、前記セッション確立ステップにおいてセッションが確立された後に、前記指示受付ステップにおいて前記指示が受け付けられることを契機として、前記他の通信装置との間のメディアデータの送受信を開始する開始ステップとを備えている。
第二の態様に係る通信方法によると、発呼装置と着呼装置との間でサーバを介して送受信されるメッセージに、相手方の通信装置から直接制御セッション用のデータを受信するためのポートの情報が含まれる。発呼装置および着呼装置は、メッセージに含まれるポートの情報に基づいて、着呼装置に着信許可の指示が入力されるか否かに係らず、セッションを確立する。従って、サーバは、セッションの確立に必要な情報の保持時間を短縮することができる。また、通信装置は、セッションが確立するまでの間にサーバを介して送受信するメッセージ(例えば、接続確認のためのメッセージ)の数を減らすことができる。さらに、通信装置は、制御セッションを確立するために最低限必要な情報以外の情報については、セッションの確立後に相手方の通信装置との間で直接送受信することができる。その結果、サーバを中継するデータのデータ量が減少する。従って、通信装置は、サーバにかかる負荷を低下させることができる。
本発明の第三の態様に係る通信プログラムは、データの送受信を行うサーバを介して他の通信装置との間でセッションを確立することで、前記他の通信装置との間でP2P通信を行う通信装置によって実行される通信プログラムであって、前記他の通信装置に対してセッションの確立を要求する発呼装置として前記通信装置が動作する場合に、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含むセッション開始メッセージを、前記サーバを介して前記他の通信装置に送信する第一送信ステップと、前記他の通信装置からセッションの確立を要求される着呼装置として前記通信装置が動作する場合に、前記他の通信装置が実行した第一送信ステップにおいて送信されたセッション開始メッセージを前記サーバを介して受信することを契機として、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含む応答メッセージを、前記サーバを介して前記他の通信装置に送信する第二送信ステップと、前記サーバを介して前記他の通信装置から受信したセッション開始メッセージまたは応答メッセージ内の情報によって特定される制御セッション用のポートへ制御メッセージを送信することで、前記他の通信装置との間でセッションを確立するセッション確立ステップと、前記通信装置が前記着呼装置として動作する場合に、前記他の通信装置からの着信を許可する旨のユーザの指示を受け付ける指示受付ステップと、前記セッション確立ステップにおいてセッションが確立された後に、前記指示受付ステップにおいて前記指示が受け付けられることを契機として、前記他の通信装置との間のメディアデータの送受信を開始する開始ステップとを前記通信装置のコントローラに実行させるための指示を含む。
第三の態様に係る通信プログラムによると、発呼装置と着呼装置との間でサーバを介して送受信されるメッセージに、相手方の通信装置から直接制御セッション用のデータを受信するためのポートの情報が含まれる。発呼装置および着呼装置は、メッセージに含まれるポートの情報に基づいて、着呼装置に着信許可の指示が入力されるか否かに係らず、セッションを確立する。従って、サーバは、セッションの確立に必要な情報の保持時間を短縮することができる。また、通信装置は、セッションが確立するまでの間にサーバを介して送受信するメッセージ(例えば、接続確認のためのメッセージ)の数を減らすことができる。さらに、通信装置は、制御セッションを確立するために最低限必要な情報以外の情報については、セッションの確立後に相手方の通信装置との間で直接送受信することができる。その結果、サーバを中継するデータのデータ量が減少する。従って、通信装置は、サーバにかかる負荷を低下させることができる。
通信システム100のシステム構成を示す図である。 PC1の電気的構成を示すブロック図である。 SIPサーバ2の電気的構成を示すブロック図である。 発呼装置が即時確立方式に従わずに動作する場合の処理の流れを示すシーケンス図である。 発呼装置が即時確立方式に従わずに動作する場合の「INVITE」メッセージの一例を示す図である。 発呼装置が即時確立方式に従って動作する場合の処理の流れを示すシーケンス図である。 発呼装置が即時確立方式に従って動作する場合の「INVITE」メッセージの一例を示す図である。 着呼装置が即時確立方式に従って動作する場合の「200 OK」メッセージの一例を示す図である。 図8に示す「200 OK」に対する応答「ACK」の一例を示す図である。 PC1が実行するメイン処理のフローチャートである。 メイン処理中に行われる発呼処理のフローチャートである。 発呼処理中に行われる発呼側通話処理のフローチャートである。 メイン処理中に行われる着呼処理のフローチャートである。 着呼処理中に行われる着呼側通話処理のフローチャートである。 第二の実施形態に係る通信システムの処理の流れを示すシーケンス図である。 第二の実施形態における「INVITE」メッセージの一例を示す図である。 第二の実施形態における「200 OK」メッセージの一例を示す図である。 第二の実施形態に係るPC1が実行する発呼処理のフローチャートである。
以下、本発明の第一の実施形態について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
図1を参照して、通信システム100のシステム構成について説明する。通信システム100は、複数のパーソナルコンピュータ(以下、「PC」という。)1と、SIPサーバ2とを備える。各PC1は、インターネット等の外部ネットワーク8を介してSIPサーバ2に接続することができる。SIPサーバ2は、複数のPC1間におけるセッションを確立する。セッションとは、一般に、通信装置間の接続の開始から終了までを言う。特に、本実施形態では、少なくとも2つのPC1が、制御データ、音声データ、および映像データ等の各種データをP2P(peer to peer)で相互に送受信できる状態をいう。複数のPC1は、セッションの確立後にメディアデータを相互に送受信することで、映像および音声を用いた遠隔会議を実現する。つまり、本実施形態の通信システム100は、テレビ会議を行うために用いられるテレビ会議システムである。しかし、本発明は、テレビ会議システム以外の通信システムにも適用できる。例えば、所謂「チャット」を行うために文字データを送受信する通信システム、電話を行うために音声データを送受信する通信システム等にも、本発明は適用できる。PC1の代わりに、テレビ会議専用の端末等を通信装置として使用することも可能である。
通信システム100では、複数のPC1が外部ネットワーク8上で通信を開始するための双方向プロトコルとして、SIP(RFC3261)が用いられる。SIP(Session Initiation Protocol)は、外部ネットワーク8上でエンド・トゥ・エンドのセッションを確立するためのプロトコルであり、リアルタイムコミュニケーションを容易に実現できる。SIPサーバ2は、SIPリクエストを処理し、複数のPC1間のセッションを確立する。また、遠隔会議中には、RTP(Real−time Transport Protocol)に従って、音声データおよび映像データが複数のPC1間で直接送受信される。
なお、図1に示すように、PC1は、NAT(Network Address Translation)ルータ9を介して外部ネットワーク8に接続する場合があり、NATルータ9を介さずに外部ネットワーク8に接続する場合もある。NATルータ9は、ローカルなネットワーク(例えば、LAN)内で使用されるプライベートIPアドレスと、外部ネットワーク8で使用されるグローバルIPアドレスとを相互変換する。複数のPC1間における最適なセッションの確立方法は、通信状況に応じて異なる場合がある。例えば、最適なセッションの確立方法は、PC1と外部ネットワーク8との間にNATルータ9が存在するか否かによって異なる場合がある。接続しているNATルータ9の種別によって異なる場合もある。より具体的には、PC1がNATルータ9に接続している場合には、多くのポートをオープンするのは望ましくないため、1つのポートで複数種類のメディアデータをトンネリングさせるのがよい。一方、PC1がNATルータ9に接続していなければ、複数のポートを使用してもよい。詳細は後述するが、本実施形態のPC1によると、通信状況に応じた最適な方法で柔軟にセッションを確立させることができる。
図2を参照して、PC1の電気的構成について説明する。PC1は、PC1の制御を司るCPU10を備える。CPU10には、ROM11、RAM12、ハードディスクドライブ(以下、「HDD」という。)13、外部通信I/F14、マイク15、スピーカ16、カメラ17、表示装置18、および操作部19が接続されている。ROM11は、PC1を動作させるためのプログラムおよび初期値等を記憶している。RAM12は、制御プログラムで使用される各種の情報を一時的に記憶する。HDD13は、各種の情報を記憶する不揮発性の記憶装置であり、本発明に係る通信プログラム等を記憶している。外部通信I/F14は、PC1を外部ネットワーク8に接続する。
マイク15は、PC1が配置された拠点の音声を入力する。スピーカ16は音声を出力する。カメラ17は、PC1が配置された拠点の映像を撮像する。表示装置18は映像を表示する。操作部19は、ユーザがPC1に各種指示を入力するために操作される。
図3を参照して、SIPサーバ2の電気的構成について説明する。SIPサーバ2は、SIPサーバ2の制御を司るCPU20を備える。CPU20には、ROM21、RAM22、HDD23、外部通信I/F24が接続されている。ROM21は、SIPサーバ2を動作させるためのプログラムおよび初期値等を記憶している。RAM22は、制御プログラムで使用される各種の情報を一時的に記憶する。HDD23は、各種の情報を記憶する不揮発性の記憶装置である。外部通信I/F24は、SIPサーバ2を外部ネットワーク8に接続する。
図4から図9を参照して、通信システム100で行われる処理の流れについて説明する。以下説明する処理は、PC1のCPU10、およびSIPサーバ2のCPU20によって行われる。図4および図6に示す2つのPC1のうち、他方のPC1に対してセッションの確立を要求するPC1を、「発呼装置」とする。他方のPC1からセッションの確立を要求されるPC1を、「着呼装置」とする。
まず、図4および図5を参照して、従来の一般的なセッションの確立方式に従ってセッションを確立する場合の処理の流れについて説明する。本実施形態のPC1によると、着呼装置のユーザが着信許可を入力する前に即時にセッションを確立する方式(以下、「即時確立方式」という。)に従って、2つのPC1の間でセッションを確立することができる。さらに、PC1は、着呼装置として動作する場合、発呼装置が即時確立方式に対応しているか否かを判断する。対応していなければ、PC1は、従来の一般的な方式に従ってセッションを確立することができる。図4に示すシーケンス図は、発呼装置が即時確立方式に従わずに動作する場合、または、発呼装置が即時確立方式に対応していない場合の処理の流れを示す。発呼装置および着呼装置は、以下の処理を行う前に、SIPサーバ2に登録要求「REGISTER」のSIPメッセージを送信し、通信システム100内で通信を行う通信装置の1つとしてSIPサーバ2に登録されている。
ユーザが発呼装置の操作部19を操作し、着呼装置への発呼の指示を入力すると、発呼装置は、セッション開始メッセージである呼出要求「INVITE」を、SIPサーバ2へ送信する(S1)。SIPサーバ2は、発呼装置から受信したセッション開始メッセージを、着呼装置に転送する(S2)。
図5に、S1,S2で送信される「INVITE」メッセージの一例を示す。S1,S2で送信される「INVITE」は、従来の一般的なセッションの確立方式において送信される「INVITE」と同一である。例えば、文字列31は、発呼装置が音声セッションで使用するポートのポート番号を示す。文字列32は、発呼装置が対応できる音声のCODECを示す。文字列33は、発呼装置が映像セッションで使用するポートのポート番号を示す。文字列34は、発呼装置が対応できる映像のCODECを示す。図5に示す「INVITE」メッセージには、発呼装置が即時確立方式に対応していることを示す付加情報(詳細は後述する)は含まれていない。
着呼装置は、SIPサーバ2を介して受信した「INVITE」に付加情報が含まれていないことから、発呼装置が即時確立方式に対応していないと判断する。この場合、発呼装置は、「INVITE」に対する暫定応答メッセージ「180 Ringing」を、SIPサーバ2を介して発呼装置に送信する(S3,S4)。発呼装置は、「180 Ringing」に対する応答メッセージ「PRACK」を、SIPサーバ2を介して着呼装置に返信する(S5,S6)。着呼装置は、「PRACK」に対する応答メッセージ「200 OK」を、SIPサーバ2を介して発呼装置に返信する(S7,S8)。以上のS3〜S8の処理によって、発呼装置および着呼装置の接続確認が行われる。着呼装置は、定期的に「180 Ringing」を発呼装置に送信することで、接続確認を行う(S9〜S14)。つまり、従来の一般的なセッションの確立方式では、接続確認を行うタイミングは着呼装置によって決定される。
ユーザが着呼装置の操作部19を操作し、着信を許可する指示を入力すると、着呼装置は、「INVITE」に対する応答メッセージ「200 OK」を、SIPサーバ2に送信する(S15)。SIPサーバ2は、着呼装置から受信した応答メッセージ「200 OK」を発呼装置に転送する(S16)。S15,S16で送信される「200 OK」には、着呼装置のIPアドレス、メディア用ポートのポート番号、および採用CODEC情報が含まれる。メディア用ポートとは、PC1がメディアデータのセッションで使用するポートである。採用CODEC情報とは、発呼装置が対応できるCODECのうちのいずれを着呼装置が採用するかを示す情報である。発呼装置は、「200 OK」に対する応答メッセージ「ACK」を、SIPサーバ2を介して着呼装置に返信する(S17,S18)。
発呼装置は、S16で受信した「200 OK」によって通知されたメディア用ポートに、メディアデータを直接送信する(S19)。着呼装置は、S2で受信した「INVITE」によって通知されたメディア用ポートに、メディアデータを直接送信する(S20)。その結果、発呼装置と着呼装置との間のセッションが確立し、メディアデータの送受信が開始される。図4に示す例では、その後、発呼装置の操作部19が操作されて、切断指示が入力される。発呼装置は、SIPサーバ2を介して「BYE」を着呼装置に送信する(S21,S22)。着呼装置は、「BYE」に対する応答メッセージ「200 OK」を、SIPサーバ2を介して発呼装置に送信する(S23,S24)。その結果、発呼装置と着呼装置との間のP2P通信が終了する。なお、「BYE」が着呼装置から発呼装置へ送信されてもよいことは言うまでもない。
以上のように、PC1は、従来の一般的な方式に従ってセッションを確立することもできるため、汎用性を有する。しかし、従来の方式では、セッションが確立されるまでに、SIPサーバ2は多数のメッセージを送受信しなければならない(S1〜18)。さらに、SIPサーバ2は、セッションの確立が完了するまで、セッションの確立に必要な情報を保持しておかなければならない。よって、SIPサーバ2にかかる負荷は大きい。
図6から図9を参照して、即時確立方式に従ってセッションを確立する場合の処理の流れについて説明する。発呼の指示が発呼装置に入力されると、発呼装置は、セッション開始メッセージである呼出要求「INVITE」を、SIPサーバ2を介して着呼装置に送信する(S31,S32)。
図7に、S31,S32で送信される「INVITE」メッセージの一例を示す。S31,S32で送信される「INVITE」には、従来の確立方式において送信される「INVITE」(図5参照)と同様に、メディアデータを直接送受信するためのポートおよびCODECの情報(以下、「メディア用情報」という。)を示す文字列31〜34が含まれる。さらに、S31,S32で送信される「INVITE」には、発呼装置が即時確立方式に対応していることを示す付加情報を含む文字列37がある。
着呼装置は、受信した「INVITE」に付加情報が含まれていることから、発呼装置が即時確立方式に対応していると判断する。この場合、呼装置は、着信を許可する指示がユーザによって行われたか否かに関わらず、「INVITE」に対する応答メッセージ「200 OK」を、SIPサーバ2を介して即時に発呼装置に送信する(S33,S34)。
図8に、S33,S34で送信される応答メッセージ「200 OK」のメッセージの一例を示す。S33,S34で送信される「200 OK」には、「INVITE」によって発呼装置から提示されたメディア用情報(図7の文字列31〜34)を採用しないことを示す文字列41が含まれる。つまり、文字列41は、発呼装置が通知してきたメディア用ポートにメディアデータを送信しないことを示す。前述したように、複数のPC1間における最適なセッションの確立方法は、NATルータ9が存在するか否か等の通信の状況に応じて異なる場合がある。本実施形態のPC1によれば、着呼装置は、発呼装置が通知してきたメディア用ポート以外のポートへメディアデータを送信することもできるため、通信の状況に応じた最適な方法でセッションを確立することができる。
また、S33,S34で送信される「200 OK」では、セッションを確立するための制御メッセージを発呼装置から直接受信するための1つのポート(制御セッション用ポート)の番号が、文字列42に含まれる。従って、着呼装置は、メディア用ポート等の複数のポートの情報を「200 OK」に含める従来の方法に比べて、SIPサーバ2を経由するデータのデータ量を減少させることができる。着呼装置は、セッションを確立するために最低限必要なポートを1つだけ開放することになるため、情報が漏洩する可能性も低下させることができる。さらに、S33,S34で送信される「200 OK」には、即時確立方式を用いてセッションを確立することを発呼装置に対して要求する情報を含む文字列44がある。よって、発呼装置は、即時確立方式に従って処理を行うことを確実に認識することができる。
発呼装置は、SIPサーバ2を介して「200 OK」を受信すると、「200 OK」に対する応答メッセージ「ACK」を、SIPサーバ2を介して着呼装置に返信する(S35,S36)。図9に、S35,S36で送信される応答メッセージ「ACK」の一例を示す。S35,S36で送信される「ACK」には、セッションを確立するための制御メッセージを着呼装置から直接受信するための1つの制御セッション用ポートの番号が、文字列43に含まれる。制御セッション用ポートは、図7に示す「INVITE」でメディア用ポートとして通知したポートをそのまま用いてもよいし、メディア用ポートとは異なるポートをオープンして用いてもよい。なお、「ACK」には、図8に示す「200 OK」と同様に、即時確立方式を用いてセッションを確立することを相手方に要求する「Require」の文字列が含まれる。
その後、発呼装置は、S34で受信した応答メッセージによって特定された制御セッション用ポートに、セッションを確立するための制御メッセージである接続確認メッセージを、SIPサーバ2を介さずに直接送信する(S37)。着呼装置は、S36で受信した応答メッセージによって特定された制御セッション用ポートに、制御メッセージである接続確認の応答メッセージを直接送信する(S38)。その結果、発呼装置と着呼装置との間の制御セッションが確立する。制御セッションとは、発呼装置と着呼装置とがP2P通信を行うために必要な制御情報を送受信するためのセッションである。なお、図6に示す例では、発呼装置が先に接続確認メッセージを送信している。しかし、着呼装置が先に接続確認メッセージを送信し、発呼装置が接続確認の応答メッセージを送信することで、セッションを確立してもよい。
発呼装置および着呼装置は、相手方のPC1に最初に送信する制御メッセージ(図6に示す例では、S37およびS38で送信される接続確認のためのメッセージ)に、メディアデータを直接送受信するためのメディア用情報を含める。具体的には、相手方のPC1からメディアデータを受信するためのメディア用ポートの番号と、CODECの情報とを含める。発呼装置および着呼装置は、最初に送信する制御メッセージにメディア用情報を含めることで、CODECの条件が合致しない場合の通信の中断等の対処を早急に行うことができる。しかし、メディア用情報を送信するタイミングを変更しても、本発明は実現できる。
発呼装置および着呼装置は、自らが決定した周期で相手方のPC1に接続確認メッセージを送信する(例えば、S37およびS39)。発呼装置および着呼装置は、相手方のPC1から接続確認メッセージを受信する毎に、接続確認の応答メッセージを返信する(例えば、S38およびS40)。前述したように、従来の一般的なセッションの確立方式では、接続確認を行うタイミング(「180 Ringing」が送信されるタイミング)は着呼装置によって決定される。しかし、即時確立方式によれば、発呼装置からも自由に接続確認メッセージを送信できる。従って、所定時間通信を行わなければファイヤウォールがポートを閉じる環境にある場合等でも、問題が生じることはない。
ユーザが着呼装置の操作部19を操作し、着信を許可する指示を入力すると、着呼装置は、着信許可メッセージを発呼装置に直接送信する(S41)。発呼装置は、着信許可の応答メッセージを着呼装置に返信する(S42)。その結果、発呼装置と着呼装置との間のメディアデータの送受信が開始される(S43,S44)。発呼装置または着呼装置の操作部19が操作されて切断指示が入力されると、切断指示を受け付けたPC1(図6に示す例では発呼装置)は、相手方のPC1に切断要求メッセージを直接送信する(S45)。切断要求メッセージを受信したPC1は、切断要求の応答メッセージを返信し(S46)、P2P通信が終了する。本実施形態では、従来とは異なり、切断要求メッセージもSIPサーバ2を介さずにPC1間で送受信されるため、SIPサーバ2に係る負荷をさらに低下させることができる。
図10から図14を参照して、上記の通信システム100の処理を実行するために各PC1が実行する処理について説明する。PC1のCPU10は、SIPサーバ2へ登録要求メッセージ「REGISTER」を送信してSIPサーバ2への登録が完了すると、図10に示すメイン処理を実行する。メイン処理では、CPU10は、呼出要求発信(発呼)を指示する操作が操作部19に対して行われたか否かを判断する(S51)。操作部19が操作されておらず、呼出要求発信の指示が入力されていなければ(S51:NO)、CPU10は、他のPC1から呼出要求「INVITE」を受信したか否かを判断する(S52)。「INVITE」を受信していなければ(S52:NO)、SIPサーバ2との間の接続の終了指示が操作部19に入力されたか否かを判断する(S53)。終了指示が入力されていなければ(S53:NO)、S51〜S53の判断が繰り返される。終了指示が入力されると(S53:YES)、メイン処理は終了する。
呼出要求発信を指示する操作が行われた場合には(S51:YES)、CPU10は発呼処理を行う(S55)。発呼処理は、PC1が発呼装置として動作する場合の処理である。他のPC1から「INVITE」を受信した場合には(S52:YES)、CPU10は着呼処理を行う(S56)。着呼処理は、PC1が着呼装置として動作する場合の処理である。以下、発呼処理および着呼処理について詳細に説明する。
図11および図12を参照して、発呼処理について説明する。図11に示すように、CPU10は、メディア用ポートをオープンする(S61)。前述したように、メディア用ポートとは、PC1がメディアデータのセッションで使用するポートである。次いで、CPU10は、呼出要求「INVITE」をSIPサーバ2へ送信する(S62)。S62で送信される「INVITE」には、S61でオープンされたメディア用ポートの番号、CODECの情報等が含まれる(図7参照)。CPU10は、メッセージを暗号化するために必要な暗号鍵情報を「INVITE」に含めてもよい。なお、SIPサーバ2は、「INVITE」のメッセージによって特定されるPC1(着呼装置)に「INVITE」を転送する。
次いで、CPU10は、着呼装置からメッセージを受信したか否かを判断する(S63)。メッセージを受信していなければ(S63:NO)、S63の判断が繰り返される。メッセージを受信した場合(S63:YES)、CPU10は、受信したメッセージが「180 Ringing」であるか否かを判断する(S64)。着呼装置が即時確立方式に対応しておらず、従来の方式に従って「180 Ringing」を送信してきた場合には(S64:YES)、CPU10は、SIPサーバ2を介して応答メッセージ「PRACK」を着呼装置に送信し、且つ「PRACK」に対する応答メッセージ「200OK」をSIPサーバ2から受信する(S65)。処理はS63の判断へ戻る。
受信したメッセージが「180 Ringing」でなければ(S64:NO)、CPU10は、受信したメッセージがメディア用情報を含む「200 OK」であるか否かを判断する(S67)。前述したように、従来の方式では、「INVITE」に対する応答メッセージ「200 OK」にはメディア用情報が含まれる(図4のS15,S16参照)。従って、メディア用情報を含む「200 OK」を受信した場合(S67:YES)、CPU10は、従来の方式に従って、「200 OK」に対する応答メッセージ「ACK」をSIPサーバ2を介して返信し(S68)、通話処理を行う(S69)。通話処理では、「200 OK」で通知されたメディア用情報に従って、メディアデータが着呼装置に直接送信される。さらに、着呼装置からメディアデータが直接受信され、セッションが確立される。自装置または着呼装置に切断指示の入力が受け付けられると、通話処理(S69)は終了し、処理はメイン処理へ戻る。
受信したメッセージが、メディア用情報を含む「200 OK」でなければ(S67:NO)、CPU10は、制御用情報を含む「200 OK」(図8参照)を受信したか否かを判断する(S71)。制御用情報とは、着呼装置が制御メッセージを直接受信するための制御セッション用ポートの番号の情報である。受信したメッセージが、制御用情報を含む「200 OK」でもなければ(S71:NO)、受信したメッセージは、着信拒絶通知メッセージ、またはエラーメッセージである。従って、CPU10は通信を終了し(S72)、処理はメイン処理へ戻る。
受信したメッセージが、制御用情報を含む「200 OK」であれば(S71:YES)、着呼装置は即時確立方式に対応している。従って、CPU10は、S61でオープンしたメディア用ポートを一旦閉じる(S73)。制御セッション用ポートをオープンする(S74)。CPU10は、オープンした制御セッション用ポートの番号を含む応答メッセージ「ACK」(図9参照)を、SIPサーバ2を介して着呼装置に送信する(S75)。次いで、CPU10は発呼側通話処理(S76)を実行し、処理はメイン処理へ戻る。
図12に示すように、CPU10は、発呼側通話処理を開始すると、「200 OK」によって通知された制御セッション用ポートに、接続確認メッセージを送信する(S81)。次いで、着呼装置からメッセージを受信したか否かを判断する(S82)。メッセージを受信した場合(S82:YES)、CPU10は、受信したメッセージが接続確認の応答メッセージであるか否かを判断する(S83)。接続確認の応答メッセージであれば(S83:YES)、接続が正常であることを確認し、処理はS82の判断へ戻る。接続確認メッセージ、または接続確認の応答メッセージの送受信が完了した時点で、P2P通信に必要な各種情報を送受信するための制御セッションが確立する。
受信したメッセージが接続確認の応答メッセージでなければ(S83:NO)、着呼装置から発せられた接続確認のメッセージであるか否かが判断される(S84)。接続確認のメッセージであれば(S84:YES)、CPU10は、接続確認の応答メッセージを着呼装置に直接返信し(S85)、処理はS82の判断へ戻る。なお、前述したように、CPU10は、着呼装置に最初に送信する接続確認メッセージまたは接続確認の応答メッセージに、メディア用情報を含める。
受信したメッセージが接続確認のメッセージでなければ(S84:NO)、着信拒絶メッセージであるか否かが判断される(S87)。詳細は図13および図14を参照して後述するが、着呼装置のユーザが着信を拒絶すると、着呼装置は発呼装置に着信拒絶メッセージを送信する。CPU10は、着信拒絶メッセージを受信すると(S87:YES)、発呼の動作をキャンセルする処理を行い(S88)、処理は発呼処理へ戻る。
受信したメッセージが着信拒絶メッセージでもなければ(S87:NO)、受信したメッセージは着信許可メッセージである。CPU10は、着信許可メッセージを受信し(S89)、着信許可の応答メッセージを着呼装置に直接返信する(S90)。次いで、CPU10は通話処理を実行する(S91)。通話処理(S91)では、接続確認メッセージ、または接続確認の応答メッセージによって通知されたメディア用情報に従って、メディアデータのセッションが確立され、メディアデータが直接送受信される。また、切断指示の入力が受け付けられると、「BYE」のメッセージ等が2つのPC1の間で直接送受信されて、通話処理は終了する。処理は発呼処理へ戻る。
また、着呼装置からメッセージを受信していなければ(S82:NO)、CPU10は、操作部19に対して発信キャンセルの操作が行われたか否かを判断する(S93)。発信キャンセルの操作が行われた場合(S93:YES)、CPU10は、発信キャンセルメッセージを着呼装置に直接送信し(S94)、発呼動作をキャンセルする処理を行う(S95)。処理は発呼処理へ戻る。
発信キャンセルの操作が行われていなければ(S93:NO)、CPU10は、接続確認の応答メッセージを受信しないままタイムアウトとなったか否かを判断する(S97)。S83で応答メッセージを受信しないまま、接続確認メッセージの送信(S81)から所定時間が経過した場合には(S97:YES)、接続が正常に行われていない。従って、CPU10は発呼動作をキャンセルし(S95)、処理は発呼処理へ戻る。
タイムアウトとなっていなければ(S97:NO)、CPU10は、接続確認メッセージの送信(S81)から一定時間が経過したか否かを判断する(S98)。この一定時間は、接続確認メッセージの送信間隔であり、CPU10は一定時間毎に接続確認メッセージを送信することになる。S98で判断する時間は、S97で判断する時間よりも長い。一定時間が経過していなければ(S98:NO)、処理はS82の判断へ戻る。一定時間が経過していれば(S98:YES)、CPU10は、接続確認メッセージを再び送信する(S81)。発呼動作のキャンセル、または通話の終了まで、接続確認メッセージは一定時間毎に繰り返し送信される。
図13および図14を参照して、着呼処理について説明する。前述したように、CPU10は、他のPC1(発呼装置)から「INVITE」を受信すると、図13に示す着呼処理を実行する。まず、CPU10は、受信した「INVITE」のメッセージによって、発呼装置が即時確立方式に対応しているか否かを判断する(S101)。第一の実施形態では、CPU10は、付加情報(図7の文字列37)が「INVITE」に含まれるか否かによって、発呼装置が即時確立方式に対応しているか否かを判断する。
付加情報が含まれておらず、発呼装置が即時確立方式に対応していないと判断した場合には(S101:NO)、CPU10は、従来の方式に従ってセッションを確立する。詳細には、CPU10は、暫定応答メッセージ「180 Ringing」をSIPサーバ2に返信する(S102)。SIPサーバ2を介して「PRACK」を受信し、「PRACK」に対する応答メッセージを返信する(S103)。次いで、CPU10は、「180 Ringing」の送信間隔として定められた一定時間が経過したか否かを判断する(S104)。一定時間が経過していなければ(S104:NO)、CPU10は、操作部19に対して着信拒絶の指示の入力操作が行われたか否かを判断する(S105)。着信拒絶の操作が行われていなければ(S105:NO)、操作部19に対して着信許可の指示の入力操作が行われたか否かを判断する(S106)。着信許可の操作が行われていなければ(S106:NO)、処理はS104の判断へ戻り、S104〜S106の判断が繰り返される。
一定時間が経過した場合には(S104:YES)、「180 Ringing」がSIPサーバ2へ再び送信されて、接続確認が行われる(S102、S103)。着信拒絶の操作が行われた場合には(S105:YES)、CPU10は、着信拒絶メッセージを、SIPサーバ2を介して発呼装置に送信し(S108)、通信を終了する(S109)。処理はメイン処理へ戻る。着信許可の操作が行われた場合には(S106:YES)、CPU10は、メディア用情報を含む応答メッセージ「200 OK」を、SIPサーバ2を介して発呼装置に送信する(S111)。SIPサーバ2を介して、発呼装置からの応答メッセージ「ACK」を受信する(S112)。図11のS69と同様に、セッションが確立されて通話処理が行われ(S113)、処理はメイン処理へ戻る。
また、発呼装置から受信した「INVITE」に付加情報が含まれており、発呼装置が即時確立方式に対応していると判断した場合(S101:YES)、CPU10は、即時確立方式に従ってセッションを確立する。詳細には、CPU10は、制御セッション用ポートを1つオープンする(S115)。着信許可の操作が行われたか否かに係らず、オープンした制御セッション用ポートの番号を含む応答メッセージ「200 OK」を、サーバ2を介して発呼装置に送信する(S116)。CPU10は、SIPサーバ2から「ACK」を受信するまで待機する(S117:NO)。「ACK」を受信すると(S117:YES)、着呼側通話処理を実行し(S118)、処理はメイン処理へ戻る。
図14に示すように、CPU10は、着呼側通話処理を開始すると、受信した「ACK」のメッセージによって特定される制御セッション用ポートに、接続確認メッセージを直接送信する(S121)。次いで、発呼装置からメッセージを受信したか否かを判断する(S122)。メッセージを受信した場合(S122:YES)、CPU10は、受信したメッセージが接続確認の応答メッセージであるか否かを判断する(S124)。接続確認の応答メッセージであれば(S124:YES)、接続が正常であることを確認し、処理はS122の判断へ戻る。接続確認メッセージ、または接続確認の応答メッセージの送受信が完了した時点で、P2P通信に必要な各種情報を送受信するための制御セッションが確立する。
受信したメッセージが接続確認の応答メッセージでなければ(S124:NO)、発呼装置から発せられた接続確認のメッセージであるか否かが判断される(S125)。接続確認のメッセージであれば(S125:YES)、CPU10は、接続確認の応答メッセージを発呼装置に直接返信し(S126)、処理はS122の判断へ戻る。なお、前述したように、CPU10は、着呼装置に最初に送信する接続確認メッセージまたは接続確認の応答メッセージに、メディア用情報を含める。
受信したメッセージが接続確認のメッセージでなければ(S125:NO)、受信したメッセージは発信キャンセルメッセージである。CPU10は、発信キャンセルメッセージを受信し(S127)、応答メッセージを発呼装置に直接返信する(S128)。発呼装置との間の通信を終了し(S129)、処理は着呼処理へ戻る。
また、発呼装置からメッセージを受信していなければ(S122:NO)、CPU10は、操作部19に対して着信拒絶の操作が行われたか否かを判断する(S131)。着信拒絶の操作が行われた場合(S131:YES)、CPU10は、着信拒絶メッセージを発呼装置に直接送信する(S136)。よって、着信拒絶時にSIPサーバ2を介して「ERROR」を送信する従来の手法に比べて、SIPサーバ2にかかる負荷を低下させることができる。次いで、CPU10は発呼装置との間の通信を終了し(S137)、処理は着呼処理へ戻る。
着信拒絶の操作が行われていなければ(S131:NO)、CPU10は、着信許可の操作が行われたか否かを判断する(S132)。着信許可の操作が行われた場合(S132:YES)、CPU10は、着信許可メッセージを発呼装置に直接送信する(S139)。着信許可の応答メッセージを、発呼装置から直接受信する(S140)。次いで、CPU10は、図12のS91と同様に通話処理を実行する(S141)。通話処理(S141)では、接続確認メッセージ、または接続確認の応答メッセージによって通知されたメディア用情報に従って、メディアデータのセッションが確立され、メディアデータが直接送受信される。切断指示が入力されると、通話処理は終了し、処理は着呼処理へ戻る。
着信許可の操作が行われていなければ(S132:NO)、CPU10は、接続確認の応答メッセージを発呼装置から受信しないままタイムアウトとなったか否かを判断する(S133)。S124で応答メッセージを受信しないまま、接続確認メッセージの送信(S121)から所定時間が経過した場合には(S133:YES)、接続が正常に行われていない。従って、CPU10は通信を終了し(S142)、処理は着呼処理へ戻る。
タイムアウトとなっていなければ(S133:NO)、CPU10は、接続確認メッセージの送信(S121)から一定時間が経過したか否かを判断する(S134)。一定時間が経過していなければ(S134:NO)、処理はS122の判断へ戻る。一定時間が経過していれば(S134:YES)、CPU10は、接続確認メッセージを再び送信する(S121)。着信拒絶等の通信終了、または通話の終了まで、接続確認メッセージは一定時間毎に繰り返し送信される。
以上説明したように、第一の実施形態のPC1によると、発呼装置と着呼装置との間でSIPサーバ2を介して送受信されるメッセージに、相手方の通信装置から直接データを受信するためのポートの情報が含まれる。発呼装置および着呼装置は、メッセージに含まれるポートの情報に基づいて、着呼装置に着信許可の指示が入力されるか否かに係らず、制御セッションを確立する。従って、SIPサーバ2は、セッションの確立に必要な情報の保持時間を短縮することができる。また、PC1は、セッションが確立するまでの間にSIPサーバ2を介して送受信するメッセージ(例えば、接続確認のためのメッセージ)の数を減らすことができる。さらに、PC1は、制御セッションを確立するために最低限必要な情報以外の情報については、制御セッションの確立後に相手方の通信装置との間で直接送受信することができる。その結果、SIPサーバ2を中継するデータのデータ量が減少する。従って、PC1は、SIPサーバ2にかかる負荷を低下させることができる。
PC1は、着呼装置として動作する場合、「INVITE」に対する応答メッセージ「200 OK」に、制御メッセージを直接受信するための1つの制御セッション用ポートの情報を含める。その結果、「200 OK」に含まれるポートの情報が、1つのポートの情報のみとなる。よって、メディア用ポートの情報等を含める場合に比べて、SIPサーバ2を中継するデータのデータ量が減少し、SIPサーバ2にかかる負荷をさらに低下させることができる。着呼装置は、「200 OK」を送信する段階では、最低限必要なポートを1つだけ開放することになる。よって、情報が漏洩する可能性も低下させることができる。
PC1は、「INVITE」を受信した場合、発呼装置が即時確立方式に対応していなければ、従来の一般的な方法に従って暫定応答メッセージ「180 Ringing」を返信することもできる。従って、PC1は、相手方の通信装置に応じた適切な方法でセッションを確立することができる。PC1は、「INVITE」に付加情報が含まれているか否かに応じて、発呼装置が即時確立方式に対応しているか否かを的確に判断することができる。
PC1は、「INVITE」メッセージにメディア用ポートの情報が含まれている場合に、通知されたメディア用ポートにデータを送信しないことを示す情報を「200 OK」に含めることができる。よって、発呼装置は、一旦通知したメディア用ポートを、制御セッションの確立後に再びメディア用ポートとして着呼装置に通知してもよいし、他のポートをメディア用ポートとして通知してもよい。よって、PC1は、通信条件に応じて最適なポートを用いてメディアデータを送受信することができる。
上記第一の実施形態において、PC1が本発明の「通信装置」に相当する。SIPサーバ2が本発明の「サーバ」に相当する。図11のS62で「INVITE」を送信するCPU10が「第一送信手段」として機能する。図13のS111で「200 OK」を送信するCPU10が「第二送信手段」として機能する。図14のS121およびS126で制御セッションを確立するCPU10が「セッション確立手段」として機能する。図14のS132で着信許可の指示を受け付けるCPU10が「指示受付手段」として機能する。図14のS141および図12のS91でメディアデータの送受信を開始するCPU10が「開始手段」として機能する。
図13のS102で「180 Ringing」を送信するCPU10が「第三送信手段」として機能する。図13のS101で「200 OK」および「180 Ringing」のいずれを送信するかを決定するCPU10が「決定手段」として機能する。
図11のS62で「INVITE」を送信する処理が「第一送信ステップ」に相当する。図13のS111で「200 OK」を送信する処理が「第二送信ステップ」に相当する。図14のS121およびS126で制御セッションを確立する処理が「セッション確立ステップ」に相当する。図14のS132で着信許可の指示を受け付ける処理が「指示受付ステップ」に相当する。図14のS141および図12のS91でメディアデータの送受信を開始する処理が「開始ステップ」に相当する。
本発明の第二の実施形態について、図15から図18を参照して説明する。第二の実施形態に係るPC1は、発呼装置として動作する場合に、「INVITE」メッセージに1つの制御セッション用ポートの番号を含める。メディア用ポートの番号等のメディア用情報は、「INVITE」には含めない。従って、着呼装置が即時確立方式に対応していることがあらかじめ判明している場合に有用である。第二の実施形態では、上記の「INVITE」を送信する処理等の一部の処理以外の処理、および装置の構成は、第一の実施形態における処理および構成と同じである。よって、第一の実施形態と同一の処理および構成については同一の番号を付し、説明を省略または簡略化する。
図15から図17を参照して、第二の実施形態に係る通信システムで行われる処理の流れについて説明する。以下説明する処理は、PC1のCPU10、およびSIPサーバ2のCPU20によって行われる。図15に示すように、発呼の指示が発呼装置に入力されると、発呼装置は、セッション開始メッセージである呼出要求「INVITE」を、SIPサーバ2を介して着呼装置に送信する(S151,S152)。
図16に、S151,S152で送信される「INVITE」メッセージの一例を示すS151,S152で送信される「INVITE」メッセージには、第一の実施形態における「INVITE」メッセージ(図7参照)とは異なり、メディア用ポートの番号およびCODECの情報(メディア用情報)は含まれない。一方で、制御セッション用ポートの番号を示す文字列51のみが含まれる。従って、PC1は、SIPサーバ2を中継するメッセージのデータ量を減少させることができ、SIPサーバ2にかかる負荷をさらに低下させることができる。また、制御セッション用ポートの番号を示す文字列51のみを「INVITE」に含めることで、着呼装置は、発呼装置が即時確立方式に対応していることを文字列51から把握することができる。
図15に示すように、着呼装置は、「INVITE」を受信すると、着信を許可する指示がユーザによって入力されたか否かに関わらず、「INVITE」に対する応答メッセージ「200 OK」を即時に送信する(S153,S154)。「200 OK」は、SIPサーバ2を介して発呼装置に送信される。図17に、S153,S154で送信される「200 OK」メッセージの一例を示す。S153,S154で送信される「200 OK」メッセージでは、セッションを確立するための制御メッセージを発呼装置から直接受信するための1つの制御セッション用ポートの番号が、文字列53に含まれる。なお、第一の実施形態における「200 OK」メッセージ(図8参照)とは異なり、第二の実施形態では、メディア用情報を採用しないことを示す情報を含む必要はない。
発呼装置は、SIPサーバ2を介して「200 OK」を受信すると、「200 OK」に対する応答メッセージ「ACK」を、SIPサーバ2を介して着呼装置に返信する(S155,S156)。発呼装置は、制御セッション用ポートの番号を「INVITE」メッセージによって既に着呼装置に通知しているため、「ACK」メッセージにポートの番号を含める必要はない。以降のS37〜S46の処理は、図6を参照して説明した処理と同じであるため、説明を省略する。
図18を参照して、第二の実施形態に係るPC1が実行する処理について説明する。第二の実施形態では、前述した第一の実施形態に係る処理と異なるのは、図18に示す発呼処理、および図13のS101に示す判断の方法のみである。従って、第一の実施形態と共通する処理の説明については省略する。図18に示すように、発呼処理を開始したCPU10は、制御セッション用ポートをオープンする(S171)。次いでCPU10は、制御セッション用ポートの番号を含む呼出要求メッセージ「INVITE」を、SIPサーバ2を介して着呼装置に送信する(S172)。
CPU10は、着呼装置からメッセージを受信したか否かを判断する(S173)。メッセージを受信していなければ(S173:NO)、S173の判断が繰り返される。メッセージを受信すると(S173:YES)、CPU10は、受信したメッセージが「200 OK」であるか否かを判断する(S174)。「200 OK」でなければ(S174:NO)、メッセージは着信拒絶通知メッセージ、またはエラーメッセージである。従って、CPU10は通信を終了し(S175)、処理はメイン処理へ戻る。受信したメッセージが「200 OK」であれば(S174:YES)、CPU10は、「200 OK」に対する応答メッセージ「ACK」を、SIPサーバ2を介して返信する(S176)。CPU10は、発呼側通話処理を実行し(S177)、処理はメイン処理へ戻る。発呼側通話処理(S177)は、図12に示した第一の実施形態に係る発呼側通話処理と同じである。
なお、第一の実施形態では、着呼処理(図13参照)において、相手方のPC1が即時確立方式に対応しているか否かが、付加情報の存否によって判断される(S101)。一方、第二の実施形態のS101では、CPU10は、SIPサーバ2を介して受信した「INVITE」メッセージに制御セッション用ポートの番号が含まれているか否かを判断する。制御セッション用ポートの番号が含まれていなければ、相手方のPC1が即時確立方式に対応していないと判断し(S101:NO)、「180 Ringing」を送信する(S102)。「INVITE」に制御セッション用ポートの番号が含まれていれば、即時確立方式に対応していると判断し(S101:YES)、「200 OK」を即時に送信する(S115,S116)。
以上説明したように、第二の実施形態のPC1は、1つの制御セッション用ポートの情報のみを、セッション開始メッセージである「INVITE」に含める。従って、メディア用情報を「INVITE」に含める場合に比べて、サーバを中継するデータのデータ量をさらに減少させることができる。PC1は、発呼装置として「INVITE」を送信する場合、最低限必要なポートを1つだけ開放することになるため、情報が漏洩する可能性も低下させることができる。また、従来のセッション確立方法では、「INVITE」メッセージにメディア用情報は含まれていたが、制御セッション用ポートの情報は含まれていない。第二の実施形態に係るPC1は、受信した「INVITE」にメディア用情報が含まれているか否かに応じて、発呼装置が即時確立方式に対応しているか否かを容易且つ的確に判断することができる。なお、第二の実施形態では、図18のS172で「INVITE」を送信するCPU10が、本発明の「第一送信手段」として機能する。
本発明は上記実施形態に限定されることはなく、様々な変形が可能であることは言うまでもない。例えば、上記実施形態のPC1は、一部の情報を送受信する際にSIPメッセージを利用している。しかし、本発明は、SIPメッセージを利用せずに実現することも可能である。
上記実施形態では、着呼装置に着信許可の指示が入力されるか否かに関わらず、「200 OK」が即時に発呼装置に送信され、制御セッションが確立される。従って、PC1は、メディアデータを直接送受信するために必要なメディア用情報を、SIPサーバ2を介さずに相手方のPC1と直接送受信し、SIPサーバ2にかかる負荷を低下させることができる。しかし、本発明によると、PC1は、メディア用情報以外の情報も、SIPサーバ2を介さずにPC1間で送受信することができる。例えば、PC1は、映像のフレームレート、解像度等の制御パラメータも、SIPサーバ2を介さずに送受信することができる。よって、SIPサーバ2にかかる負荷を大幅に減少させることができる。
上記第一の実施形態のPC1は、着呼装置として動作する場合、「INVITE」によって通知されたメディア用情報を採用しない旨の情報を「200 OK」メッセージに含める(図8の文字列41、および図13のS116参照)。従って、発呼装置は、使用する必要のないメディア用ポートを早急に閉じることができ、セキュリティ性が向上する。しかし、PC1は、メディア用情報を採用しない旨の情報を「200 OK」に含めず、制御セッションの確立後に改めてメディア用ポートを設定してもよい。
上記実施形態のPC1は、発呼装置が即時確立方式に対応しているか否かに応じて異なる処理を行うことができるため(図13のS101等参照)、汎用性を有する。しかし、発呼装置が即時確立方式に対応していることが把握できていれば、図13のS101〜113の処理を行わなくても本発明は実現可能である。
1 PC
2 SIPサーバ
10 CPU
12 RAM
13 HDD
19 操作部
100 通信システム

Claims (8)

  1. データの送受信を行うサーバを介して他の通信装置との間でセッションを確立することで、前記他の通信装置との間でP2P通信を行う通信装置であって、
    前記他の通信装置に対してセッションの確立を要求する発呼装置として動作する場合に、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含むセッション開始メッセージを、前記サーバを介して前記他の通信装置に送信する第一送信手段と、
    前記他の通信装置からセッションの確立を要求される着呼装置として動作する場合に、前記他の通信装置の第一送信手段によって送信されたセッション開始メッセージを前記サーバを介して受信することを契機として、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含む応答メッセージを、前記サーバを介して前記他の通信装置に送信する第二送信手段と、
    前記サーバを介して前記他の通信装置から受信したセッション開始メッセージまたは応答メッセージ内の情報によって特定される制御セッション用のポートへ制御メッセージを送信することで、前記他の通信装置との間でセッションを確立するセッション確立手段と、
    前記着呼装置として動作する場合に、前記他の通信装置からの着信を許可する旨のユーザの指示を受け付ける指示受付手段と、
    前記セッション確立手段によってセッションが確立された後に、前記指示受付手段によって前記指示が受け付けられることを契機として、前記他の通信装置との間のメディアデータの送受信を開始する開始手段と
    を備えたことを特徴とする通信装置。
  2. 前記第二送信手段は、セッションを確立するための前記制御メッセージを前記他の通信装置から直接受信するための1つのポートの情報を、送信する前記応答メッセージに含めることを特徴とする請求項1に記載の通信装置。
  3. 前記第一送信手段は、セッションを確立するための前記制御メッセージを前記他の通信装置から直接受信するための1つのポートの情報を、送信する前記セッション開始メッセージに含めることを特徴とする請求項1または2に記載の通信装置。
  4. 前記着呼装置として動作する場合に、前記他の通信装置の第一送信手段によって送信されたセッション開始メッセージを前記サーバから受信することを契機として、受信した前記セッション開始メッセージに対する暫定応答メッセージを、前記サーバを介して前記他の通信装置に送信する第三送信手段と、
    前記他の通信装置の第一送信手段によって送信されたセッション開始メッセージを前記サーバを介して受信した場合に、受信した前記セッション開始メッセージに含まれる情報に基づいて、前記第二送信手段による応答メッセージの送信、および前記第三送信手段による暫定応答メッセージの送信のいずれを実行するかを決定する決定手段とをさらに備え、
    前記第二送信手段および前記第三送信手段は、前記決定手段によって応答メッセージおよび暫定応答メッセージのいずれかを送信することが決定された場合にのみ、決定された応答メッセージまたは暫定応答メッセージを送信することを特徴とする請求項1から3のいずれかに記載の通信装置。
  5. 前記決定手段は、
    前記制御メッセージを前記他の通信装置が直接受信するための1つのポートの情報が、前記サーバを介して受信した前記セッション開始メッセージに含まれていれば、前記第二送信手段によって応答メッセージを送信することを決定し、
    前記サーバを介して受信した前記セッション開始メッセージに前記1つのポートの情報が含まれていなければ、前記第三送信手段によって暫定応答メッセージを送信することを決定することを特徴とする請求項4に記載の通信装置。
  6. 前記第二送信手段は、前記サーバを介して受信した前記セッション開始メッセージに、前記他の通信装置がメディアデータを受信するポートであるメディア用ポートの情報が含まれている場合に、前記メディア用ポートにメディアデータを送信しないことを示す情報を前記応答メッセージに含めることを特徴とする請求項1からのいずれかに記載の通信装置。
  7. データの送受信を行うサーバを介して他の通信装置との間でセッションを確立することで、前記他の通信装置との間でP2P通信を行う通信装置によって行われる通信方法であって、
    前記他の通信装置に対してセッションの確立を要求する発呼装置として前記通信装置が動作する場合に、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含むセッション開始メッセージを、前記サーバを介して前記他の通信装置に送信する第一送信ステップと、
    前記他の通信装置からセッションの確立を要求される着呼装置として前記通信装置が動作する場合に、前記他の通信装置が実行した第一送信ステップにおいて送信されたセッション開始メッセージを前記サーバを介して受信することを契機として、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含む応答メッセージを、前記サーバを介して前記他の通信装置に送信する第二送信ステップと、
    前記サーバを介して前記他の通信装置から受信したセッション開始メッセージまたは応答メッセージ内の情報によって特定される制御セッション用のポートへ制御メッセージを送信することで、前記他の通信装置との間でセッションを確立するセッション確立ステップと、
    前記通信装置が前記着呼装置として動作する場合に、前記他の通信装置からの着信を許可する旨のユーザの指示を受け付ける指示受付ステップと、
    前記セッション確立ステップにおいてセッションが確立された後に、前記指示受付ステップにおいて前記指示が受け付けられることを契機として、前記他の通信装置との間のメディアデータの送受信を開始する開始ステップと
    を備えたことを特徴とする通信方法。
  8. データの送受信を行うサーバを介して他の通信装置との間でセッションを確立することで、前記他の通信装置との間でP2P通信を行う通信装置によって実行される通信プログラムであって、
    前記他の通信装置に対してセッションの確立を要求する発呼装置として前記通信装置が動作する場合に、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含むセッション開始メッセージを、前記サーバを介して前記他の通信装置に送信する第一送信ステップと、
    前記他の通信装置からセッションの確立を要求される着呼装置として前記通信装置が動作する場合に、前記他の通信装置が実行した第一送信ステップにおいて送信されたセッション開始メッセージを前記サーバを介して受信することを契機として、前記他の通信装置から制御セッション用のデータを直接受信するためのポートの情報を含む応答メッセージを、前記サーバを介して前記他の通信装置に送信する第二送信ステップと、
    前記サーバを介して前記他の通信装置から受信したセッション開始メッセージまたは応答メッセージ内の情報によって特定される制御セッション用のポートへ制御メッセージを送信することで、前記他の通信装置との間でセッションを確立するセッション確立ステップと、
    前記通信装置が前記着呼装置として動作する場合に、前記他の通信装置からの着信を許可する旨のユーザの指示を受け付ける指示受付ステップと、
    前記セッション確立ステップにおいてセッションが確立された後に、前記指示受付ステップにおいて前記指示が受け付けられることを契機として、前記他の通信装置との間のメディアデータの送受信を開始する開始ステップと
    を前記通信装置のコントローラに実行させるための指示を含む通信プログラム。
JP2010239891A 2010-10-26 2010-10-26 通信装置、通信方法、および通信プログラム Active JP5229299B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010239891A JP5229299B2 (ja) 2010-10-26 2010-10-26 通信装置、通信方法、および通信プログラム
US13/281,583 US8667149B2 (en) 2010-10-26 2011-10-26 Communication device, communication method, and computer-readable storage medium storing communication program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010239891A JP5229299B2 (ja) 2010-10-26 2010-10-26 通信装置、通信方法、および通信プログラム

Publications (2)

Publication Number Publication Date
JP2012095045A JP2012095045A (ja) 2012-05-17
JP5229299B2 true JP5229299B2 (ja) 2013-07-03

Family

ID=45973930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010239891A Active JP5229299B2 (ja) 2010-10-26 2010-10-26 通信装置、通信方法、および通信プログラム

Country Status (2)

Country Link
US (1) US8667149B2 (ja)
JP (1) JP5229299B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9197368B2 (en) * 2013-09-24 2015-11-24 Broadcom Corporation Inband management of ethernet links
JP2017092646A (ja) * 2015-11-06 2017-05-25 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
CN106506506A (zh) * 2016-11-15 2017-03-15 江西憶源多媒体科技有限公司 一种跨网通信的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636596B1 (en) * 1999-09-24 2003-10-21 Worldcom, Inc. Method of and system for providing intelligent network control services in IP telephony
US7200139B1 (en) * 2001-11-08 2007-04-03 At&T Corp. Method for providing VoIP services for wireless terminals
US6842449B2 (en) * 2002-07-09 2005-01-11 Verisign, Inc. Method and system for registering and automatically retrieving digital-certificates in voice over internet protocol (VOIP) communications
EP1571813A1 (en) * 2004-03-02 2005-09-07 LG Electronics, Inc. Method and communication system for transmitting an image to the called party identifying calling party
US8473617B2 (en) * 2004-12-31 2013-06-25 Sony Corporation Media client architecture for networked communication devices
US20070076860A1 (en) * 2005-09-09 2007-04-05 Bellsouth Intellectual Property Corporation Network architectures for a voice over internet protocol service
US20070078986A1 (en) * 2005-09-13 2007-04-05 Cisco Technology, Inc. Techniques for reducing session set-up for real-time communications over a network
US20070121595A1 (en) * 2005-11-30 2007-05-31 Batni Ramachendra P Method and apparatus for providing customized ringback to calling party devices in an IMS network
KR100794416B1 (ko) * 2006-04-13 2008-01-16 포스데이타 주식회사 SIP를 기반으로 하는 VoIP 호에 대한 패킷 과금정보의 획득 방법
US8280978B2 (en) * 2006-12-29 2012-10-02 Prodea Systems, Inc. Demarcation between service provider and user in multi-services gateway device at user premises
KR20080081665A (ko) * 2007-03-06 2008-09-10 삼성전자주식회사 Ptt 이동 단말기와 ptt 통신 서비스 시스템 및 그의발신자 위치 표시 방법
US8379824B2 (en) * 2008-03-06 2013-02-19 At&T Intellectual Property I, Lp Methods and apparatus to provide a network-based caller identification service in a voice over internet protocol network
JP5332544B2 (ja) * 2008-11-21 2013-11-06 富士通株式会社 呼制御装置、呼制御システム、呼制御方法及びコンピュータプログラム
JP4715937B2 (ja) 2009-03-06 2011-07-06 ブラザー工業株式会社 端末装置とコンピュータプログラム

Also Published As

Publication number Publication date
US20120102210A1 (en) 2012-04-26
US8667149B2 (en) 2014-03-04
JP2012095045A (ja) 2012-05-17

Similar Documents

Publication Publication Date Title
JP5332544B2 (ja) 呼制御装置、呼制御システム、呼制御方法及びコンピュータプログラム
US9692834B2 (en) Multimodal conversation transfer
JP6345816B2 (ja) ネットワーク通信システムおよび方法
US20180255182A1 (en) Web Real-Time Client Communication Over a Stimulus Based Network
US20160301720A1 (en) Hybrid Communications System Using Peer-to-Peer and Centralized Architecture
KR101705440B1 (ko) 미디어 통신용 하이브리드 클라우드 미디어 아키텍쳐
JP2006254402A (ja) マルチメディア会議システム,それを用いた会議方法、およびコンピューターの判読可能メディア
JPWO2009044472A1 (ja) 傍受システム、経路変更装置及びコンピュータプログラム
JP4640448B2 (ja) 両網対応電話装置
JP5229299B2 (ja) 通信装置、通信方法、および通信プログラム
CN105122761B (zh) 基于分组的呼叫的附加媒体会话的本地控制
CN103155516A (zh) 会话发起协议模式下的呼叫转移处理
JP2012029183A (ja) 通信装置、通信システム、通信方法、及び通信プログラム
JP2010258802A (ja) 通信システム、通信端末、通信方法、および通信プログラム
JP4798785B2 (ja) Sip端末装置におけるピアツーピア接続の接続規制方法
JP2011166569A (ja) 通信装置、および通信方法
JP4711109B2 (ja) 通信データモニタリングシステム及び方法
JP5609819B2 (ja) 通信制御装置、通信制御方法、及び通信制御プログラム
JP5011580B2 (ja) ゲートウェイ装置およびネットワーク接続方法
JP2013046235A (ja) ファクシミリ装置
US10868851B2 (en) Framework to test media in media enabled web application
JP5096831B2 (ja) 通信装置及び通信方法
JP6689150B2 (ja) ゲートウェイ装置及び転送方法
JP2011172143A (ja) 通信装置、通信方法、および通信システム
JP2004363941A (ja) 音声ガイダンス機能付き中継装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120914

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150