(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6899328
(24)【登録日】2021年6月16日
(45)【発行日】2021年7月7日
(54)【発明の名称】リアルタイム通信でメディア経路を確立するための方法
(51)【国際特許分類】
H04W 36/14 20090101AFI20210628BHJP
H04W 80/10 20090101ALI20210628BHJP
H04W 88/16 20090101ALI20210628BHJP
H04M 3/00 20060101ALI20210628BHJP
【FI】
H04W36/14
H04W80/10
H04W88/16
H04M3/00 B
【請求項の数】25
【全頁数】34
(21)【出願番号】特願2017-549804(P2017-549804)
(86)(22)【出願日】2016年5月5日
(65)【公表番号】特表2018-515959(P2018-515959A)
(43)【公表日】2018年6月14日
(86)【国際出願番号】IB2016000713
(87)【国際公開番号】WO2016178090
(87)【国際公開日】20161110
【審査請求日】2019年3月25日
(31)【優先権主張番号】62/157,359
(32)【優先日】2015年5月5日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】517328136
【氏名又は名称】アイピーアライブ エービー
(73)【特許権者】
【識別番号】517328147
【氏名又は名称】ガートナー,マーティン
(73)【特許権者】
【識別番号】517328158
【氏名又は名称】ブロムホール,チボール
(73)【特許権者】
【識別番号】517328169
【氏名又は名称】スタウル,カール,エーリック
(74)【代理人】
【識別番号】100091683
【弁理士】
【氏名又は名称】▲吉▼川 俊雄
(74)【代理人】
【識別番号】100179316
【弁理士】
【氏名又は名称】市川 寛奈
(72)【発明者】
【氏名】ガートナー,マーティン
(72)【発明者】
【氏名】ブロムホール,チボール
(72)【発明者】
【氏名】スタウル,カール,エーリック
【審査官】
田畑 利幸
(56)【参考文献】
【文献】
特開2007−142786(JP,A)
【文献】
特開2012−028916(JP,A)
【文献】
米国特許出願公開第2014/0105181(US,A1)
【文献】
米国特許出願公開第2015/0026473(US,A1)
【文献】
米国特許出願公開第2015/0106438(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04W 4/00−99/00
H04L 12/28−12/955
H04M 3/00
H04M 3/38− 3/58
H04M 11/00−11/10
(57)【特許請求の範囲】
【請求項1】
呼のハンドオーバを実装するために、異なるタイプのネットワークセグメント(104、106、108)のネットワークアクセスポイント(140)に接続された1つまたは複数の異なるタイプのネットワークインタフェース(194)を有するエンドポイント間にメディア経路を確立または再確立するための方法であって、
第1のメディアエンドポイント(202)を備えるリアルタイム通信機器(RTC機器)(200)、第2のメディアエンドポイント(203)、およびサーバ(210)を提供するステップであって、前記RTC機器(200)、前記第2のメディアエンドポイント(203)、および前記サーバ(210)の各々が、メモリ(192)、および前記メモリ(192)に結合したプロセッサ(190)に前記方法を実装するソフトウェアを備えるステップと、
前記RTC機器(200)および前記第2のメディアエンドポイント(203)が使用される前記ネットワークセグメント(104、106、および108)の前記ネットワークアクセスポイント(140)から、複数のアドレス(120)で前記サーバ(210)を到達可能にするステップと、
前記RTC機器(200)と前記サーバ(210)の間でメッセージ(164)を送信および受信するように、何らかのネットワークアクセスポイント(140)に接続されたRTC機器(200)の少なくとも1つのネットワークインタフェース(194)を配置するステップと、
O/Aプロトコル(Offer and Answer protocol)(160)を使用して、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間にメディア経路(146)を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するように、前記RTC機器(200)および前記第2のメディアエンドポイント(203)を構成するステップと
を備え、
前記RTC機器(200)と前記サーバ(210)の間に接続を確立した後に、非応答接続を識別し、かつ回復することができるようになるように、前記RTC機器(200)と前記サーバ(210)の間で共有される固有の接続識別情報を、前記RTC機器(200)または前記サーバ(210)が作成することを特徴とし、
前記サーバ(210)に接続するために前記RTC機器(200)により使用される前記ネットワークアクセスポイント(140)もしくは前記ネットワークインタフェース(194)が変更されることがあるときに、またはメディア経路(146)のために使用される前記ネットワークアクセスポイント(140)もしくは前記ネットワークインタフェース(194)が呼の間に変更されることがあるときに、
前記RTC機器(200)が、前記サーバ(210)をアドレス指定するための1つまたは複数のアドレス(120)を運ぶメッセージ(164)を前記サーバ(210)から受信するステップ、または前記サーバ(210)をアドレス指定するための所定のアドレス(120)のリストを記憶するステップにより、前記RTC機器(200)により、前記ネットワークセグメント(104、106、および108)の前記ネットワークアクセスポイント(140)から前記サーバ(210)をアドレス指定するためのアドレス(120)以外の少なくとも1つのアドレス(120)を収集するステップと、
前記RTC機器(200)が、前記サーバ(210)をアドレス指定するための1つまたは複数のアドレス(120)を呼設定手順から取り出すステップ、
前記RTC機器(200)が、前記サーバ(210)からのメッセージ(164)のソースアドレスとして前記サーバ(210)をアドレス指定するための1つまたは複数のアドレス(120)を取り出すステップ、および
前記RTC機器(200)が、DNSまたは他のデータベースによる前記サーバ(210)をアドレス指定するためのアドレス(120)の検索を使用するステップ
からなるグループから選択される複数の処理により、前記RTC機器(200)により、前記ネットワークセグメント(104、106、および108)の前記ネットワークアクセスポイント(140)から前記サーバ(210)をアドレス指定するためのアドレス(120)をさらに収集するステップと、
前記RTC機器(200)により、前記サーバ(210)のアドレス(120)にメッセージ(164)を繰り返し送信または前記サーバ(210)をアドレス指定し、応答を受信しない場合、応答を受信し、かつ前記応答を受信した前記アドレス(120)にメッセージ(164)を送信し続けることによりシグナリング接続性を回復するまで、他の収集された前記サーバ(210)をアドレス指定するためのアドレス(120)を試みるステップと、
前記RTC機器(200)と前記サーバ(210)の間のシグナリングを回復した後に、前記RTC機器(200)により、呼を受け取ることができるように、または前記O/Aプロトコル(160)を使用して前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間にメディア経路を確立または再確立することができるように、特定の接続を回復するために、前記サーバ(210)に前記接続識別情報を提示するステップと、
前記RTC機器(200)により、前記メディア経路(146)を再確立する必要があるかどうかを監視する、または通知されることにより、メディア経路再確立の必要性を判断するステップと、
前記メディア経路を再確立する必要がある場合、前記RTC機器(200)により、前記サーバ(210)を経由して、前記O/Aプロトコル(160)を使用することにより、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間の前記メディア経路(146)の再確立を開始するステップと
をさらに備え、
以上により、クライアントが、通信ネットワーク上のネットワークアクセスポイントからアクセス可能なサーバを有する通信ネットワーク内に再確立されたメディア経路を使って、呼のハンドオーバを実行する方法。
【請求項2】
前記サーバ(210)をアドレス指定するために前記RTC機器(200)に使用されるアドレスが変更されたことを、前記RTC機器(200)が検出する、または前記サーバ(210)からのメッセージ(164)により通知され、かつ前記メディア経路(146)が変更された前記アドレスに依存するというイベント、
前記RTC機器(200)が前記サーバ(210)からメッセージ(164)を受信し、前記メッセージ(164)の宛先アドレスが、以前のメッセージと比較して変更されており、かつ前記メディア経路(146)が変更された前記アドレスに依存するというイベント、
前記メディア経路(146)のための前記RTC機器(200)のアドレスが変更されたことを前記RTC機器(200)が検出するイベント、
前記サーバ(210)を経由した前記第2のメディアエンドポイント(203)からのメッセージ(164)により、前記メディア経路(146)のために使用される前記第2のメディアエンドポイントの前記アドレスが変更されたことが前記RTC機器(200)に通知されるイベント、および、
前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間の前記メディア経路(146)で、いずれかの方向でトラフィックが停止した、または劣化したことを前記RTC機器(200)が検出する、または通知されるイベント
からなるグループから選択される、アドレスまたはメディア経路状態が変更されたというイベントの発生によるメディア経路再確立の必要性を前記RTC機器(200)により判断するステップをさらに備える、請求項1に記載の方法。
【請求項3】
前記RTC機器(200)により、呼が継続しているかどうか、または存続させる必要があるNATまたはファイアウォールの通路があるかどうかに応じて、前記サーバ(210)にメッセージを繰り返し送信する頻度を適合させるステップをさらに備える、請求項1に記載の方法。
【請求項4】
メディア暗号化および暗号化鍵が前記メディアエンドポイント(202、203)により前記メディア経路(146)を介して取り決められ、かつシグナリングチャネルを通して前記サーバ(210)にだけ利用可能な指紋を調べることにより中間者攻撃から保護されることを前記RTC機器(200)により使用されるプロトコルが要求するときに、シグナリングもしくはメディアに関してRTC機器(200)と互換性がない呼を接続するために、またはシグナリングもしくはメディアに関して互換性がないネットワークセグメント(104、106、108)を介して呼を接続するために、前記第2のメディアエンドポイント(203)を前記サーバ(210)と統合してゲートウェイ(222)を形成するステップをさらに備える、請求項1に記載の方法。
【請求項5】
前記メディアエンドポイント(202、203)のための前記O/Aプロトコルがエンドポイント(208または206)またはネットワークセグメント(104、106、または108)と互換性がないときに、前記ゲートウェイ(222)の負荷を軽減して通信を可能にするように、他のO/Aプロトコルから離脱することにより、通信すべき前記エンドポイントおよび前記ネットワークセグメントと互換性があるO/Aプロトコルを前記メディアエンドポイント(202、203)内に実装するステップと、
前記メディアエンドポイント(202、203)のための前記メディア経路の能力がエンドポイント(208または206)またはネットワークセグメント(104、106、または108)と互換性がないときに、前記ゲートウェイ(222)の負荷を軽減して通信を可能にするように、他のメディア経路の能力から離脱することにより、通信すべき前記エンドポイントおよび前記ネットワークセグメントと互換性があるメディア経路の能力を前記メディアエンドポイント(202、203)内に実装するステップと
を備える、請求項4に記載の方法。
【請求項6】
2つ以上のメディアエンドポイント(202、203、203b)をさらに備える、請求項1による前記方法を使用して、ネットワークを介して通信するためのシステム。
【請求項7】
請求項6に記載の前記システムのサーバ側を実装する電気通信機器であって、前記サーバ側とは前記サーバ(210)であり、前記システムのサーバ側がセッション・ボーダ・コントローラ(Session Border Controller、SBC)の一部である電気通信機器。
【請求項8】
請求項6に記載の前記システムのサーバ側を実装する電気通信機器であって、前記サーバ側とは前記サーバ(210)であり、前記メディアエンドポイントの一部を実装するプログラムを組み入れ、前記プログラムをクライアントに送信することができる、電気通信機器。
【請求項9】
前記プログラムが、前記電気通信機器に組み込まれたウェブサーバ上にある、請求項8に記載の電気通信機器。
【請求項10】
請求項6に記載の前記システムのクライアント側またはサーバ側を実装するソフトウェアモジュールであって、前記クライアント側は前記第1のメディアエンドポイント(202)または前記第2のメディアエンドポイント(203)であり、前記サーバ側は前記サーバ(210)であり、ウェブブラウザ内の、またはスマートホン、タブレット、ラップトップ、またはパーソナルコンピュータもしくはコンピュータサーバのためのアプリケーションとしての、またはプログラムを実行するための、メモリに結合したプロセッサを備える電気通信機器内にある、ソフトウェアモジュール。
【請求項11】
メディア経路(146)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいメッセージ(164)をエンドポイントに送信する機能、
メディア経路(146)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいメッセージ(164)をエンドポイントから受信する機能、
品質または他の指標が評価される追加の代替メディア経路を確立し、その後、前記メディアトラフィックのために前記代替メディア経路を使用する機能、
セッション開始プロトコル(Session Initiation Protocol、SIP)を使用してリアルタイムに通信する機能、
WebRTC(Web Real Time Communication)プロトコルを使用してリアルタイムに通信する機能、
ICE(Interactive Connection Establishment)を使用してエンドポイント間にメディア経路を確立する機能、
STUN(Session Traversal Utilities for NAT)プロトコルを使用してメディア経路を確立する機能、
TURN(Traversal Using Relays around NAT)プロトコルを使用してメディア経路を確立する機能、
エンドポイントまたはネットワークセグメントが相互のピア・ツー・ピア・メディア互換性を有するかどうかの、自己学習処理から得られる知識を記憶する機能、
時間が制限されてもよく、かつWebRTCサーバ内に記憶されることができ、かつWebRTCブラウザクライアントに短縮した形で送信されるWebRTC HTTP URLクリック・ツー・コール・リンクを生成する機能、
時間が制限されてもよく、かつWebRTCサーバ内に記憶され、かつWebRTCブラウザユーザから短縮した形で受信されるWebRTC HTTP URLリンクを実行する機能、
他の方法では利用できない場合があるWebRTC機能を呼び出すためのWebRTC HTTP URLリンク内の特定のドメイン名拡張を、たとえば、wrtc.company.com内のwrtcを識別する機能、
RTCクライアントのためのグラフィカル・ユーザ・インタフェースで呼状態に基づき連絡先をリストの形で整理する機能、
移動体アプリケーションで使用される、小さな3つのバーティカルドット記号またはメニューライン記号によりRTCクライアントのためのグラフィカル・ユーザ・インタフェースで単一連絡先のための拡張可能な動作メニューを表す機能、
プッシュ通知により着信呼を受け取るために、スマートホンまたは他の移動体機器のスリープ状態を解除する機能、
構内交換機(Private Branch eXchange、PBX)の機能を統合する機能、
セッション・ボーダ・コントローラ(SBC)の機能を統合する機能、
ユニファイド通信(Unified Communication、UC)のソリューション機能を統合する機能、
SIPゲートウェイ機能にWebRTCを統合する機能、
コールセンタまたはコンタクトセンタの機能を統合する機能、
状況依存のクリック・ツー・コール・リンクを生成する機能、
状況依存のクリック・ツー・コール・リンクを実行する機能、
WebRTCブラウザをクライアントとして使用してコールエージェントを接続する機能、および、
インスタントメッセージング(Instant messaging、IM)、プレゼンス、画面共有、およびグループ呼出の機能を提供する機能、
からなるグループから選択される機能を遂行するプログラムを備える、請求項10に記載のソフトウェアモジュール。
【請求項12】
前記RTC機器(200)に結合したユーザエージェントが、前記サーバ(210)内に実装される、請求項6に記載のシステム。
【請求項13】
サーバ(210)は、ゲートウェイ(222)と組み合わされる、請求項6に記載のシステム。
【請求項14】
ゲートウェイを介したメディア経路の代わりに、よりリッチなメディア、改善されたメディア品質、より低いネットワーク負荷、またはより低コストの呼のための、直接メディア経路を実現するために、異なるタイプのネットワークセグメント(104、106、108)間を、ゲートウェイ(222)を有するネットワークを介して接続される、ピア・ツー・ピア・メディア能力を有するエンドポイント(202、203)間にメディア経路を確立または再確立するための方法であって、
第1のメディアエンドポイント(202)を備えるリアルタイム通信機器(RTC機器)(200)、第2のメディアエンドポイント(203)、および相互接続するサーバ(212、212b)を提供するステップであって、前記RTC機器(200)、前記第2のメディアエンドポイント(203)、および前記相互接続するサーバ(212、212b)の各々が、メモリ(192)、および前記メモリ(192)に結合したプロセッサ(190)に前記方法を実装するソフトウェアを備えるステップと、
異なるタイプのメディアトラフィックのためのメディア経路を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するように前記RTC機器(200)および前記第2のメディアエンドポイント(203)を構成するステップと、
を備え、
前記RTC機器(200)および前記第2のメディアエンドポイント(203)がピア・ツー・ピア・メディア互換性を有するかどうか、または相互接続するサーバ(212、212b)が前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間でO/Aプロトコルを運んで、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間に直接メディア経路(148)を確立するかどうかを知ることなく、前記RTC機器(200)と前記第2のメディアエンドポイント(203)により前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間に呼を設定しようとすることを特徴とし、
前記RTC機器(200)により、前記第2のメディアエンドポイント(203)が接続される相互接続するサーバ(212b)に至る第1のシグナリングチャネル(150)を確立するステップと、
前記RTC機器(200)により、相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、
前記RTC機器(200)により、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間のエンド・ツー・エンド・シグナリング・チャネル(152)を通して、圧縮されてもよい前記O/Aプロトコルを使用して、前記呼のための直接メディア経路(148)の確立を要求するステップ、
前記RTC機器(200)により、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間の確立された第1のメディア経路(146)を通して、圧縮されてもよい前記O/Aプロトコルを使用して、前記呼のための直接メディア経路(148)の確立を要求するステップ、および、
前記RTC機器(200)により、前記O/Aプロトコルを使用して、前記呼のための直接メディア経路(148)を確立するために、確立された第1のメディア経路(146)を通して、またはエンド・ツー・エンド・シグナリング・チャネル(152)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいHTTP URLの形であってもよい、前記呼の設定に関する情報、および前記RTC機器(200)が接続される前記相互接続するサーバ(212)のネットワークアドレスに関する情報を送信するステップ、
からなるグループから選択される、直接メディア経路を確立または再確立するための処理を呼び出すステップ、または
前記第2のメディアエンドポイント(203)により、相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、
前記第2のメディアエンドポイント(203)により、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間のエンド・ツー・エンド・シグナリング・チャネル(152)を通して、圧縮されてもよい前記O/Aプロトコルを使用して、前記呼のための直接メディア経路(148)の確立を要求するステップ、
前記第2のメディアエンドポイント(203)により、前記RTC機器(200)と前記第2のメディアエンドポイント(203)の間の確立された第1のメディア経路(146)を通して、圧縮されてもよい前記O/Aプロトコルを使用して、前記呼のための直接メディア経路(148)の確立を要求するステップ、および
前記第2のメディアエンドポイント(203)により、前記O/Aプロトコルを使用して、前記呼のための直接メディア経路(148)を確立するために、確立された第1のメディア経路(146)を通して、またはエンド・ツー・エンド・シグナリング・チャネル(152)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいHTTP URLの形であってもよい、呼設定、および前記第2のメディアエンドポイント(203)が接続される前記相互接続するサーバ(212b)のネットワークアドレスに関する情報を送信するステップ
からなるグループから選択される、直接メディア経路を確立または再確立するための処理を呼び出すステップと
をさらに備え、
前記RTC機器(200)により送信される情報および前記第2のメディアエンドポイント(203)により送信される情報を使うことで、ゲートウェイに統合されたサーバと相互接続された異なるタイプのネットワークセグメント内のエンドポイント間に、直接メディア経路が確立される方法。
【請求項15】
前記第2のメディアエンドポイント(203)が他のRTC機器(200)またはゲートウェイ(222)である、請求項1または14に記載の方法。
【請求項16】
2つ以上のメディアエンドポイント(202、203、203b)をさらに備える、請求項14による前記方法を使用して、ネットワークを介して通信するためのシステム。
【請求項17】
請求項16に記載のシステムのクライアント側である電気通信機器であって、前記第1のメディアエンドポイント(202)を実装する、電気通信機器。
【請求項18】
請求項16に記載の前記システムのサーバ側を実装する電気通信機器であって、前記サーバ側とは前記相互接続するサーバ(212、212b)であり、前記システムのサーバ側がセッション・ボーダ・コントローラ(Session Border Controller、SBC)の一部である電気通信機器。
【請求項19】
請求項16に記載の前記システムのサーバ側を実装する電気通信機器であって、前記サーバ側とは前記相互接続するサーバ(212、212b)であり、前記メディアエンドポイントの一部を実装するプログラムを組み入れ、前記プログラムをクライアントに送信することができる、電気通信機器。
【請求項20】
前記プログラムが、前記電気通信機器に組み込まれたウェブサーバ上にある、請求項19に記載の電気通信機器。
【請求項21】
請求項16に記載の前記システムのクライアント側またはサーバ側を実装するソフトウェアモジュールであって、前記クライアント側は前記第1のメディアエンドポイント(202)または前記第2のメディアエンドポイント(203)であり、前記サーバ側は前記相互接続するサーバ(212、212b)であり、ウェブブラウザ内の、またはスマートホン、タブレット、ラップトップ、またはパーソナルコンピュータもしくはコンピュータサーバのためのアプリケーションとしての、またはプログラムを実行するための、メモリに結合したプロセッサを備える電気通信機器内にある、ソフトウェアモジュール。
【請求項22】
メディア経路(146)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいメッセージ(164)をエンドポイントに送信する機能、
メディア経路(146)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいメッセージ(164)をエンドポイントから受信する機能、
品質または他の指標が評価される追加の代替メディア経路を確立し、その後、前記メディアトラフィックのために前記代替メディア経路を使用する機能、
セッション開始プロトコル(Session Initiation Protocol、SIP)を使用してリアルタイムに通信する機能、
WebRTC(Web Real Time Communication)プロトコルを使用してリアルタイムに通信する機能、
ICE(Interactive Connection Establishment)を使用してエンドポイント間にメディア経路を確立する機能、
STUN(Session Traversal Utilities for NAT)プロトコルを使用してメディア経路を確立する機能、
TURN(Traversal Using Relays around NAT)プロトコルを使用してメディア経路を確立する機能、
エンドポイントまたはネットワークセグメントが相互のピア・ツー・ピア・メディア互換性を有するかどうかの、自己学習処理から得られる知識を記憶する機能、
時間が制限されてもよく、かつWebRTCサーバ内に記憶されることができ、かつWebRTCブラウザクライアントに短縮した形で送信されるWebRTC HTTP URLクリック・ツー・コール・リンクを生成する機能、
時間が制限されてもよく、かつWebRTCサーバ内に記憶され、かつWebRTCブラウザユーザから短縮した形で受信されるWebRTC HTTP URLリンクを実行する機能、
他の方法では利用できない場合があるWebRTC機能を呼び出すためのWebRTC HTTP URLリンク内の特定のドメイン名拡張を、たとえば、wrtc.company.com内のwrtcを識別する機能、
RTCクライアントのためのグラフィカル・ユーザ・インタフェースで呼状態に基づき連絡先をリストの形で整理する機能、
移動体アプリケーションで使用される、小さな3つのバーティカルドット記号またはメニューライン記号によりRTCクライアントのためのグラフィカル・ユーザ・インタフェースで単一連絡先のための拡張可能な動作メニューを表す機能、
プッシュ通知により着信呼を受け取るために、スマートホンまたは他の移動体機器のスリープ状態を解除する機能、
構内交換機(Private Branch eXchange、PBX)の機能を統合する機能、
セッション・ボーダ・コントローラ(SBC)の機能を統合する機能、
ユニファイド通信(Unified Communication、UC)のソリューション機能を統合する機能、
SIPゲートウェイ機能にWebRTCを統合する機能、
コールセンタまたはコンタクトセンタの機能を統合する機能、
状況依存のクリック・ツー・コール・リンクを生成する機能、
状況依存のクリック・ツー・コール・リンクを実行する機能、
WebRTCブラウザをクライアントとして使用してコールエージェントを接続する機能、および、
インスタントメッセージング(Instant messaging、IM)、プレゼンス、画面共有、およびグループ呼出の機能を提供する機能、
からなるグループから選択される機能を遂行するプログラムを備える、請求項21に記載のソフトウェアモジュール。
【請求項23】
前記RTC機器(200)に結合したユーザエージェントが、前記相互接続するサーバ(212、212b)内に実装される、請求項16に記載のシステム。
【請求項24】
前記相互接続するサーバ(212、212b)が、互いの間で前記SIPプロトコルを使用し、前記RTC機器(200)に結合したSIPユーザエージェントが、前記相互接続するサーバ(212、212b)内に実装される、請求項23に記載のシステム。
【請求項25】
相互接続するサーバ(212)は、ゲートウェイ(222)と組み合わされる、請求項16に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連特許出願の相互参照)
本出願は、開示全体が参照により本明細書に組み込まれる、2015年5月5日に出願された米国特許仮出願第62/157,359号明細書に基づき、その優先権の恩典を主張する。
【0002】
本方法、電気通信機器、システム、またはソフトウェアモジュールは、一般に電気通信の分野に関する。
【背景技術】
【0003】
現在の広域電話網、すなわち、PSTN(Public Switched Telephone Network、公衆電話交換網)は、限定された帯域幅(3.5kHzだけ)の音声通信のために構築されている。広帯域ネットワーク、たとえば、インターネットはまた、リアルタイムの個人間通信、たとえば、しばしばVoIP(Voice over Internet Protocol)と呼ばれる音声通信のために使用することができる。インターネットは、データの内容またはアプリケーションとは無関係にエンドポイント間でデータを転送し、したがって、転送ネットワークと呼ばれる。
【0004】
VoIP、またはより一般にリアルタイム通信(Real Time Communication、RTC)はまた、従来の電話(Plain Old Telephony Service、POTS)以外のマルチメディア通信、たとえば、ビデオ、プレゼンス、およびインスタントメッセージングのために使用される。RTCのための標準およびドラフトが、多くの場合インターネット技術タスクフォース(Internet Engineering Task Force、IETF)により規定される。
【0005】
セッション開始プロトコル(Session Initiation Protocol、SIP、RFC3261)は、RTCのために広く使用されているプロトコルである。RFC(Request for Comments)は、IETFにより規定されるインターネット標準である。WebRTC(Web Real−Time Communication)は、IETFおよびWWWコンソーシアム(World Wide Web Consortium、W3C)により開発および標準化中の、ウェブブラウザの中に組み込まれるRTCである。
【0006】
RTCプロトコルは、エンドポイント機器間で音声およびビデオなどのメディアストリームを確立するために使用され、多くの場合、電話通信のような機能およびサービスを提供する。RTCプロトコルは多くの場合呼設定手順を、すなわち、呼がどのように開始され、処理され、完了するかを規定する。
【0007】
データ通信ネットワークは、典型的にはインターネットのようなパケット交換網であり、パケットのアドレスにより指定される宛先にデータからなるパケットを送付する。パケットはまた、典型的にはパケットが送信されたソースアドレスを含む。データパケットは、リクエスト、応答、または文書、ファイル、もしくは映画および音声のようなメディアを表すデータを含むメッセージであってもよく、エンドポイント間で交換される。
【0008】
データ通信ネットワークはまた、多くの場合組み合わされ、かつ単にNAT(Network Address Translator)、またはファイアウォール、またはアクセスルータと呼ばれることもあるNATまたはファイアウォールを通してグローバルネットワークと通信するプライベートセグメント、イントラネット、またはローカル・エリア・ネットワーク(Local Area Network、LAN)を含んでもよい。
【0009】
パケット交換網では、トラフィックは送信および受信されているデータパケットである。
【0010】
リアル・タイム・トラフィックは、音声、またはビデオのような他のメディアのストリームである。そのようなメディアストリームは、ネットワークを介して電話通信のようなサービスまたは呼により使用される。
【0011】
メディア経路は、そのようなメディアストリームをいくつかの異なるタイプのネットワークセグメントから構成されてもよいネットワークを介して転送する。
【0012】
さまざまな機器、クライアント、およびサーバなどのエンドポイントは、ネットワーク・アクセス・ポイントに接続する、イーサネット(登録商標)、Wi−Fi、またはLTE無線インタフェースのようなネットワークインタフェースを1つまたはいくつか有する。
【0013】
ネットワーク内のアドレスは、(IPv4アドレスまたはIPv6アドレスのような)数字、またはたとえば、ドメイン・ネーム・システム(Domain Name System、DNS)のサービスにより数字アドレスにさらに変換される完全修飾ドメイン名(Fully Qualified Domain Name、FQDN)のような記号アドレスであってもよい。
【0014】
そのようなアドレスはまた、使用されているプロトコルを、またはこの状況では一般にネットワークアドレスの1つの形とすることができる、上記で例証したアドレスタイプの拡張(たとえば、ポートが指定されたIPv4アドレス132.64.75.1:1234)として単に使用されているプロトコルを示すために、ポート番号によりさらに指定されてもよい。
【0015】
さまざまな機器、クライアント、およびサーバなどのエンドポイントは、トラフィックを送信および受信することができる、ネットワーク内のアドレスを1つまたはいくつか有する。典型的には、エンドポイントに至るアドレスは、エンドポイントのネットワークインタフェース、およびネットワークのアクセスポイントに依存する。
【0016】
サーバは、クライアントによりアクセスされるネットワーク機器である。クライアントは、コンピュータ上のプログラム、またはネットワークに接続された機器とすることができる。
【0017】
アプリケーションサーバは、ユーザにサービスまたは機能を提供するサーバである。
【0018】
ネットワーク・アクセス・ポイントは異なる場所にあり、イーサネット(登録商標)、ADSLモデム、ケーブルモデム、ファイバなどの異なる固定アクセス技術、およびたとえばWi−Fi、3G、4G LTEなどのさまざまな無線および移動体技術を使用することができる。
【0019】
公衆インターネット、およびプライベートなイントラネットまたはLANのような一般的なネットワークセグメントに加えて、特定用途向けネットワークセグメントが、たとえば、音声のための、およびおそらくはビデオのためであろうが一般的なデータトラフィックのためではない、シグナリングおよびメディアを伝える電話通信タイプのネットワークがある。VoIP(Voice over IP)は、インターネットのような一般的なデータネットワークを介しても、移動体の世界で呼ばれるようなOTT(Over The Top)でも、またはIPネットワークを使用するVoLTE(Voice over LTE)のような特定用途向けネットワークセグメントを介してもよい。
【0020】
シグナリングは、典型的にはネットワークセグメントを介したエンドポイントとプロキシとサーバの間のシグナリングチャネル内のメッセージである。シグナリングチャネルを介したシグナリングは、たとえば、無線有効範囲を解放する、機器のインタフェースを変更する、またはネットワークセグメントのアクセスポイントを変更するときに中断することができるが、その後、シグナリング接続性を再確立するように回復することができる。
【0021】
ファイアウォールおよびNATは、典型的にはリアルタイム通信を遮断し、これは、プライベートネットワークのエッジにあるセッション・ボーダ・コントローラ(Session Border Controller、SBC)により、またはたとえば、STUN(Session Traversal Utilities for NAT、RFC5389)、TURN(Traversal Using Relays around NAT、RFC5766)、およびICE(Interactive Connectivity Establishment、RFC5245)などの方法もしくはプロトコルにより解決される問題である。
【0022】
TURNサーバは、2つのネットワークアドレス間のトラフィックを中継する、中継サーバの一例である。TURNサーバはRTCエンドポイントにより発見されることができ、封じ込められたネットワークセグメントの場合、封じ込められたネットワークセグメントの外側で、RTCメディアトラフィックのために使用されなければならない。
【0023】
SBCはまた、VoIPおよびRTCのためのセキュリティおよび相互運用性の機能を実装し、多くの場合インターネット電話通信サービスプロバイダの(ITSPの)VoIPサービスをIP−PBXに接続するために使用され、SIPトランキングとも呼ばれる。
【0024】
IP−PBXは、インターネットプロトコル(Internet Protocol、IP)構内交換機(Private Branch eXchange、PBX)である。
【0025】
コールセンタは、ほとんどの場合IP−PBXまたはユニファイドコミュニケーション(Unified Communication、UC)のソリューションがITSPのSIPトランクを経由して呼を受け取ることに基づく。これらの呼は、典型的には電話網から料金無料番号(米国では800番)を経由して開始される。
【0026】
PBXまたはUCの機能は、音声応答録音装置(Interactive Voice Response、IVR)、キュー、音声メール、およびビデオメールである可能性がある。
【0027】
インスタントメッセージング(Instant messaging、IM)、プレゼンス、画面共有、およびグループ呼出は、他のRTC機能である。
【0028】
プロトコルは、通信の言語および方法を規定する1組の規則である。
【0029】
一例が、どのメディアおよびコーデックを使用すべきか、およびメディアをどこに送信すべきかを記述するセッション記述プロトコル(Session Description Protocol、SDP、RFC4566)である。そのようなリアルタイム通信を、一方のエンドポイントが、エンドポイント間のメディア通信セッションを設定するために自分の意向およびメディア能力で応じることができる他のエンドポイントに提供することができる。これがオファー・アンド・アンサ・プロトコル(Offer and Answer protocol、O/Aプロトコル)である。
【0030】
O/Aプロトコルは、典型的にはメディアタイプを、たとえば、音声およびビデオがどのコーデックを使用すべきかを指定する。
【0031】
そのようなO/Aプロトコルはまた、たとえば、NATトラバーサルのためにICEプロトコルにより規定されるような、エンドポイント間にメディア経路をどのように設定すべきかの方法および候補を提案してもよい。
【0032】
メディア経路は、典型的にはリアルタイム通信のために設定されるが、その一方で、より範囲が広い用語である通信経路は、メディアを表しても表さなくてもよいデータを伝達するための直接チャネルまたは間接チャネルを指す。
【0033】
メディアエンドポイントは、典型的には、音声またはビデオを表すリアル・タイム・トラフィックを含むメディアストリームが流れることができるようにするように、ネットワークを介してメディア経路が結合されるエンドポイントである。
【0034】
再び設定された、メディアエンドポイント間に確立されたメディア経路は、再確立されたと言われる。
【0035】
メディアエンドポイントは、サーバ、たとえば、TURNサーバを通過して、または通過することなく、他のメディアエンドポイントに直接至るメディア経路を設定することができる場合、ピア・ツー・ピア・メディア能力を有する。相互のピア・ツー・ピア・メディア能力は、2つのエンドポイントに互換性があり、かつ互いの間に直接メディア経路を設定することができることを意味する。
【0036】
セッション開始プロトコル(SIP)は、ユーザを見つけて、SIPクライアント間に呼を設定するために使用され、SIPクライアントのリアルタイム通信機器、たとえば、ハードウェアSIP電話機またはソフトウェアSIP電話機は、コンピュータ上のソフトウェアアプリケーションである。SIPは、レジストラおよびプロキシサーバを使用してユーザを見つけるシグナリングプロトコルであり、SDP O/Aプロトコルをさらに使用して、SIPクライアントエンドポイント間にメディアチャネルを確立する。SIPクライアントは、典型的にはユーザをSIPプロキシにインタフェースで接続するSIPユーザエージェントを含む。
【0037】
WebRTC(Web Real Time Communication)は、ウェブブラウザを拡張してウェブブラウザ間のリアルタイム通信を可能にするための、標準化中の1組の勧告およびプロトコルである。WebRTCは、ユーザを見つけるためのシグナリングを指定するのではなく、同じウェブサーバに接続されたウェブブラウザが、SDP O/Aプロトコルを使用して、ウェブブラウザ間のリアルタイム通信のためのメディアチャネルを確立することができるようにする。WebRTCは、STUNおよびTURNを含むICEプロトコルを使用して、WebRTCメディアエンドポイント間にメディア経路を設定する。
【0038】
したがって、メディアエンドポイントを含むRTC機器は、ウェブサーバからRTC機器のプログラムコードを(HTMLおよびJava Script(登録商標)の形で)取り出すWebRTCブラウザ内に実装されてもよい。
【0039】
WebRTCを用いると、メディアストリームはDTLS−SRTPプロトコルを使用して暗号化され、「中間者」攻撃から保護される。保護は、暗号化鍵を生成するために使用されるチャネルまたは経路とは違った他のチャネルまたは経路を介した当事者間での指紋(暗号化鍵生成のために使用される証明書のデジタル署名)の交換を伴う。これは、メディア経路またはシグナリング経路を傍受するだけではメディアトラフィックを解読することができないことを意味する。
【0040】
ウェブブラウザは、ワールド・ワイド・ウェブ(ウェブ)、インターネット上のサーバ、またはウェブサーバ上に実装されたイントラネットにアクセスするために、コンピュータまたはスマートホン上で走らせるプログラムである。
【0041】
ソフトウェアアプリケーションは、コンピュータまたはスマートホン上で走らせる他のプログラムである。
【0042】
ウェブサーバは、ウェブブラウザ内で実行するためのプログラムコードを、典型的にはJava Script(登録商標)をウェブブラウザに伝達することができ、これはWebRTCと共に使用される技術である。
【0043】
ハイパーテキスト転送プロトコル(Hyper Text Transfer Protocol、HTTP)URL(または単に「リンク」)は、ウェブ資源を識別し、ウェブ資源を実行する際の動作を指定する。たとえば、URLは、ドメイン名がexample.orgであるサーバから、関連するプログラムコードがHTTPを使って得られるウェブ資源である/wiki/Main_Pageを指してもよい。
【0044】
WebRTCブラウザ内でHTTP URLを実行することにより、アドレス指定されているウェブサーバから設定すべき呼を開始してもよく、これは、新興のWebRTC技術の有用な特徴である。そのようなURLは、設定すべき呼の電話番号および他の情報を、たとえば呼び出すために使用することができるURLの時間制限を含んでもよい。
【0045】
WebRTC HTTP URLは長く、不明瞭な場合があり、Bitlyなどの、リンクを短縮するサービスが、Bitlyが記憶している長いHTTP URLを表す固有のストリングにちなんで、Bitlyの短いドメイン名bit.lyを使用するので、URLがウェブブラウザ内で実行されたときに、Bitlyに進み、BitlyがそのURLを完全な長いウェブリンクにリダイレクトする。
【0046】
そのようなWebRTCのクリック・ツー・コール・リンクは、ブラウザ内でクリックされたときに呼び出されるWebRTCサーバにより生成され、WebRTCサーバに記憶されることができる。たとえば、サーバのドメイン名が次に続く固有のストリングから構成される短縮されたリンクは、それをWebRTCブラウザ内で実行することが意図されるユーザに渡される。最後の有効な時間を暗号化することにより、または短縮されたリンクが有効である限りずっとWebRTCサーバにリンク変換を記憶することだけにより、時間制限を実装することができる。
【0047】
クリック・ツー・コール・リンク、またはそのようなリンクを実行するボタンもまたウェブサイト上で使用することができ、しばしば状況に依存し、すなわち、リンクをクリックしたのは誰か、行われた可能性があるのはどの選択か、リンクがいつクリックされたか、およびリンクがどこからクリックされたかに関する情報を伝えることができる。
【0048】
ウェブブラウザの中にはWebRTCをサポートするものもあれば、サポートしないものもあり、他よりもサポートが充実したものもある。したがって、他の方法では利用できない場合があるWebRTC機能を呼び出すために、WebRTC HTTP URLリンク内に特定のドメイン名拡張を、たとえば、wrtc.company.com内にwrtcを規定し、識別することが有利な場合がある。
【0049】
ゲートウェイは、より多くのユーザ間でサービスが機能することができるようにするように、異なるネットワークセグメントおよびプロトコルの間で変換を行うために使用される。
【0050】
クライアントは、必要なときにクライアントのサーバにアクセスするが、RTCクライアント、たとえば、SIPまたはWebRTCのクライアントもまた、着信シグナリングのため、着信呼のため、または進行中の呼に関するメディア経路を再確立するために、これらのサーバに至る接続を維持する必要がある。
【0051】
メディアエンドポイントは、典型的にはメディアトラフィック(メディアストリーム)を伝えるメディア経路がどのアドレス間で設定されているかをわかっており、それにより、メディア経路が個々のアドレス変更に依存するかどうかを判断することができる。
【0052】
移動体機器であるスマートホンは、使用されていないときにスリープ状態に移行して、残っているバッテリ時間を節約することができるが、しばしば、メッセージを受信する、または集中型プッシュ通知サーバからのいわゆるプッシュ通知により着信VoIP呼の準備をするために、スリープ状態を解除することができる。
【0053】
VoIP、ソフトクライアント、スマートホン、ならびにRTCを使った拡張通信の可能性および機能により、RTCクライアントのグラフィカル・ユーザ・インタフェース(Graphical User Interface、GUI)が重要になっている。GUIを改善する1つの方法が、呼状態(たとえば、アイドル、活動中、グループ呼出中、保留中、キューnの中にある、転送中、着信未応答呼など)に基づいて別個のリストの形で連絡先(人またはユーザ)を整理することであり、この場合、(リストの形の、または単体の)各連絡先は、現在利用可能な選択を列挙する拡張可能な動作メニュー(たとえば、呼び出す、電話を切る、転送する、保留する、会議接続する、ビデオをミュート/ミュート解除する、音声をミュート/ミュート解除する、メッセージを送信する、プレゼンスおよび場合によってはさらに管理上のタスクを変更する)を有する。そのようなメニューは、短い記号を通して、たとえば、スマートホンにより連絡先の行で一般に使用される3つのバーティカルドット記号またはメニューライン記号を通して拡張することができる。
【0054】
リアル・タイム・メディア・チャネルでは、デュアル・トーン・マルチ・フリーケンシ(Dual Tone Multi Frequency、DTMF)の数字を可聴周波として符号化して、またはデータパケットの形で、帯域外で伝達することができる。DTMFで規定される記号は、0、1、2、3、4、5、6、7、8、9、#、*、A、B、C、およびDである。
【発明の概要】
【発明が解決しようとする課題】
【0055】
メモリに結合したプロセッサをサーバおよびゲートウェイが有する最新のネットワークおよび電気通信機器によって、電話通信はリアルタイム通信、すなわちRTCに発展しており、呼がネットワークを介してシグナリングチャネルを経由して設定され、次に、音声またはビデオのようなRTCメディアトラフィックがメディアエンドポイント間を流れることができる、ネットワークを介したメディア経路の確立が続く。
【課題を解決するための手段】
【0056】
一様態では、呼のハンドオーバが、スマートホンまたはラップトップコンピュータのようなRTC機器がWi−Fi、LTE無線または有線イーサネット(登録商標)のようなネットワークインタフェースをいくつか有してもよく、かつRTC機器がそのサーバに接続したときに接続識別情報を作成し、次に、シグナリングチャネルとメディア経路の両方を監視し、試験し、ネットワークへのアクセスが変更されたときにシグナリングチャネルの接続性を回復し、必要なときにメディア経路を確立または再確立することにより、インターネット、イントラネット、または電話通信タイプのネットワークセグメントのような異なるネットワークセグメントの異なるアクセスポイントからネットワークにアクセスしてもよい環境で実装される。
【0057】
他の様態では、メディア経路を再確立する必要性が、シグナリングチャネルおよびメディア経路のために使用されるアドレスがさまざまに変更されることにより判断される。
【0058】
他の様態では、シグナリングチャネルを監視するためにメッセージを送信する頻度が、プロセッサの能力および電力消費を節約するために、呼が継続中かどうか、またはNATもしくはファイアウォールの通路を存続させる必要があるかどうかに適合させられる。
【0059】
他の様態では、シグナリングもしくはメディアに関して互換性のないエンドポイント間で呼を接続するために、またはシグナリングもしくはメディアに関して互換性のないネットワークセグメントを介して呼を接続するために、ゲートウェイが形成される。
【0060】
他の様態では、監視、解析、および記録する目的でプロキシおよびメディアサーバを含むことにより、傍受するゲートウェイを通してメディア経路が確立または再確立される。
【0061】
他の様態では、監視、解析、および記録する目的でTURNサーバを含むことにより、傍受するゲートウェイを通してメディア経路が確立される、または再確立される。
【0062】
他の様態では、よりリッチなメディア、改善されたメディア品質、より低いネットワーク負荷、またはより低コストの呼のために、直接メディア経路を確立または再確立することにより、異なるタイプのネットワークセグメントを介したメディア経路が避けられる。
【0063】
他の様態では、異なるタイプのネットワークセグメントを有するネットワークを介して通信するためのシステムが、2つ以上のRTC機器を使用する。
【0064】
他の様態では、ユーザエージェントがRTC機器に結合されたネットワークを介して通信するためのシステムが、サーバまたは相互接続するサーバ内に実装される。
【0065】
他の様態では、相互接続するサーバが、SIPプロトコルを使用し、RTC機器に結合したSIPユーザエージェントが、RTC機器内ではなくサーバ内に実装され、これは、RTC機器自体がSIPクライアントであった場合にあてはまる。
【0066】
他の様態では、ゲートウェイの負荷を軽減するために、ゲートウェイ内ではなく、RTC機器の規定されたプロトコルから
離脱することにより、RTC機器内に、エンドポイントとの、またはネットワークセグメントとの互換性を実装する。
【0067】
一様態では、呼のハンドオーバを提供するために、異なるタイプのネットワークセグメントのネットワーク・アクセス・ポイントに接続された1つまたは複数の異なるタイプのネットワークインタフェースを有するエンドポイント間にメディア経路を確立または再確立するための方法が、第1のメディアエンドポイント、第2のメディアエンドポイント、およびサーバを備えるリアルタイム通信機器を提供するステップであって、RTC機器、第2のメディアエンドポイント、およびサーバの各々が、メモリ、およびメモリに結合したプロセッサを有するステップ、RTC機器および第2のメディアエンドポイントが使用されるネットワークセグメントのアクセスポイントから、複数のアドレスでサーバを到達可能にするステップ、RTC機器とサーバの間でメッセージを送信および受信するように、何らかのネットワーク・アクセス・ポイントに接続されたRTC機器の少なくとも1つのネットワークインタフェースを配置するステップ、O/Aプロトコル(Offer and Answer protocol)を使用してRTC機器と第2のメディアエンドポイントの間にメディア経路を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するようにRTC機器および第2のメディアエンドポイントを構成し、次いで、RTC機器とサーバの間に接続を確立した後に、RTC機器とサーバの間で共有される固有の接続識別情報を作成して、非応答接続を識別し、かつ回復することができるようにし、サーバに接続するためにRTC機器により使用されるネットワーク・アクセス・ポイントもしくはネットワークインタフェースが変更されることがあるときに、またはメディア経路のために使用されるアクセスポイントもしくはネットワークインタフェースが呼の間に変更されることがあるときに、RTC機器により、ネットワークセグメントのアクセスポイントからサーバに至るアドレスを収集するステップにより行われる。
【0068】
他の様態では、サーバに至る1つまたは複数のアドレスを呼設定手順から取り出すステップ、サーバからのメッセージのソースアドレスとしてサーバに至る1つまたは複数のアドレスを取り出すステップ、サーバに至る1つまたは複数のアドレスを運ぶメッセージをサーバから受信するステップ、DNSまたは他のデータベースによるサーバに至るアドレスの検索を使用して、サーバに至る所定のアドレスからなるリストを記憶するステップ、RTC機器により、サーバのアドレスにメッセージを繰り返し送信し、応答を受信しない場合、応答を受信し、かつ応答を受信したアドレスにメッセージを送信し続けることによりシグナリング接続性を回復するまで、他の収集されたサーバに至るアドレスを試みるステップ、RTC機器とサーバの間のシグナリングを回復した後に、RTC機器により、呼を受け取ることができるように、またはO/Aプロトコルを使用して、RTC機器と第2のメディアエンドポイントの間にメディア経路を確立することができるように、特定の接続を回復するためにサーバに接続識別情報を提示するステップ、RTC機器により、メディア経路が再確立される必要があるかどうかを監視する、または通知されることにより、メディア経路再確立の必要性を判断するステップ、およびメディア経路を再確立する必要がある場合、RTC機器により、サーバを経由してO/Aプロトコルを使用することにより、RTC機器と第2のメディアエンドポイントの間のメディア経路の再確立を開始するステップのうちの1つまたは複数により、ネットワークセグメントのアクセスポイントからサーバに至るアドレスをRTC機器が収集してもよい。
【0069】
他の様態では、異なるタイプのネットワークセグメントのネットワーク・アクセス・ポイントに接続された1つまたは複数の異なるタイプのネットワークインタフェースを有するエンドポイント間にメディア経路を確立または再確立するための方法が、RTC機器の1つまたは複数が、サーバに接続するために使用されるサーバのアドレスが変更されたことを検出する、またはサーバからのメッセージにより通知され、かつメディア経路がその変更された宛先アドレスに依存するということによる、RTC機器が、メッセージの宛先アドレスが以前のアドレスと比較して変更されたメッセージをサーバから受信し、かつメディア経路がその変更されたアドレスに依存するということによる、RTC機器が、メディア経路のためのサーバのアドレスが変更されたことを検出することによる、RTC機器が、サーバを経由して第2のメディアエンドポイントから得たメッセージにより、第2のメディアエンドポイントによりメディア経路のために使用されるアドレスが変更されたということを通知されることによる、およびRTC機器が、RTC機器と第2のメディアエンドポイントの間のメディア経路で、どちらかの方向でトラフィックが停止した、または劣化したことを検出する、または通知されることによる、アドレスまたはメディア経路状態が変更されたというイベントの発生により、RTC機器によりメディア経路再確立の必要性を判断するステップを含む。
【0070】
他の様態では、異なるタイプのネットワークセグメントのネットワーク・アクセス・ポイントに接続された1つまたは複数の異なるタイプのネットワークインタフェースを有するエンドポイント間にメディア経路を確立および再確立するための方法が、RTC機器により、呼が継続しているかどうか、または存続させる必要があるNATまたはファイアウォールの通路があるかどうかに応じて、サーバにメッセージを繰り返し送信する頻度を適合させるステップを含む。
【0071】
他の様態では、異なるタイプのネットワークセグメントのネットワーク・アクセス・ポイントに接続された1つまたは複数の異なるタイプのネットワークインタフェースを有するエンドポイント間にメディア経路を確立または再確立するための方法が、RTC機器により使用されるプロトコルがメディア暗号化を必要とし、かつ暗号化鍵がメディアエンドポイントによりメディア経路を介して取り決められ、かつシグナリングチャネルを通してサーバにだけ利用可能な指紋を調べることにより中間者攻撃から保護するときに、シグナリングもしくはメディアに関してRTC機器と互換性がないエンドポイントに呼を接続するために、またはシグナリングもしくはメディアに関して互換性のないネットワークセグメントを介して呼を接続するために、第2のメディアエンドポイントをサーバと統合してゲートウェイを形成するステップを含む。
【0072】
他の様態では、監視、解析、および記録の目的で、指紋を使用して中間者攻撃からメディアトラフィックが保護される通信プロトコルを使用して、RTC機器とRTCサービスの間でリアルタイム通信メディアトラフィックを傍受し、解読するためにエンドポイント間にメディア経路を確立するための方法が、第1のメディアエンドポイント、第2のメディアエンドポイント、RTCサーバ、および傍受するゲートウェイを備えるリアルタイム通信機器を提供するステップであって、RTC機器、第2のメディアエンドポイント、RTCサーバ、および傍受するゲートウェイの各々が、メモリ、およびメモリに結合したプロセッサを有するステップ、RTCサービスおよびメディアサーバにより使用される通信プロトコルのためのプロキシを、傍受するゲートウェイと統合するステップであって、プロキシおよびメディアサーバの各々が、メモリ、およびメモリに結合したプロセッサを有するステップ、プロキシがメッセージを書き換えることにより、RTC機器とメディアサーバの間に、およびメディアサーバと第2のメディアエンドポイントの間に、RTCメディア経路を確立するステップ、メディアサーバによりRTCメディアを傍受、解読、および伝達するために、プロキシがメッセージを書き換えることにより指紋を配置するステップ、およびRTCサービスにより使用される通信プロトコルのために前記プロキシを使用するようにRTC機器を構成するステップにより行われる。
【0073】
他の様態では、監視、解析、および記録の目的で、指紋を使用して中間者攻撃からメディアトラフィックが保護されるTURNプロトコルを使用して、RTC機器とRTCサービスの間でリアルタイム通信メディアトラフィックを傍受し、解読するためにエンドポイント間にメディア経路を確立するための方法が、第1のメディアエンドポイント、第2のメディアエンドポイント、RTCサーバ、および傍受するゲートウェイを備えるリアルタイム通信機器を提供するステップであって、RTC機器、第2のメディアエンドポイント、RTCサーバ、および傍受するゲートウェイの各々が、メモリ、およびメモリに結合したプロセッサを有するステップ、メモリ、およびメモリに結合したプロセッサを有するTURNサーバを、傍受するゲートウェイと統合するステップ、TURNサーバを使用するようにRTC機器またはRTCサービスを構成することにより、または封じ込められたネットワークセグメント内でメディアエンドポイントの1つがTURNサーバを発見することにより、RTC機器とTURNサーバの間に、およびTURNサーバと第2のメディアエンドポイントの間に、RTCメディア経路を確立するステップ、および傍受するゲートウェイを通過するRTCメディアトラフィックを解読するために、第1のメディアエンドポイントにより、または第2のメディアエンドポイントにより、傍受するゲートウェイにRTCメディアトラフィックのための解読鍵を運ぶステップにより行われる。
【0074】
他の様態では、よりリッチなメディア、改善されたメディア品質、より低いネットワーク負荷、またはより低コストの呼のためのメディア経路を実現するために、異なるタイプのネットワークセグメント間を、ゲートウェイを有するネットワークを介して接続される、ピア・ツー・ピア・メディア能力を有するエンドポイント間にメディア経路を確立または再確立するための方法が、第1のメディアエンドポイント、第2のメディアエンドポイント、および相互接続するサーバを備えるリアルタイム通信機器を提供するステップであって、RTC機器、第2のメディアエンドポイント、および相互接続するサーバの各々が、メモリ、およびメモリに結合したプロセッサを有するステップ、O/Aプロトコル(Offer and Answer protocol)を使用して、異なるタイプのメディアトラフィックのためのメディア経路を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するようにRTC機器および第2のメディアエンドポイントを構成するステップ、RTC機器および第2のメディアエンドポイントが相互のピア・ツー・ピア・メディア互換性を有するかどうか、または相互接続するサーバが、RTC機器と第2のメディアエンドポイントの間でO/Aプロトコルを運んで、RTC機器と第2のメディアエンドポイントの間に直接メディア経路を確立するかどうかを知ることなく、RTC機器と第2のメディアエンドポイントの間に呼を設定しようとするステップ、RTC機器により、第2のメディアエンドポイントが接続される相互接続するサーバに至る第1のシグナリングチャネルを確立するステップ、およびRTC機器により、相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、直接メディア経路の確立および再確立のための処理を呼び出すステップにより行われる。
【0075】
他の様態では、直接メディア経路を確立または再確立するための処理が、RTC機器により、RTC機器と第2のメディアエンドポイントの間のエンド・ツー・エンド・シグナリング・チャネルを通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路の確立を要求するステップ、RTC機器により、RTC機器と第2のメディアエンドポイントの間の確立された第1のメディア経路を通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路の確立を要求するステップ、およびRTC機器により、O/Aプロトコルを使用して、呼のための直接メディア経路を確立するために、確立された第1のメディア経路を通して、またはエンド・ツー・エンド・シグナリング・チャネルを通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいHTTP URLの形であってもよい、呼設定に関する情報、およびRTC機器が接続される相互接続するサーバのネットワークアドレスに関する情報を送信するステップ、および第2のメディアエンドポイントにより、相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、直接メディア経路の確立または再確立のための処理を呼び出すステップのうちの1つまたは複数により呼び出される。
【0076】
他の様態では、直接メディア経路を確立または再確立するための処理が、第2のメディアエンドポイントにより、RTC機器と第2のメディアエンドポイントの間のエンド・ツー・エンド・シグナリング・チャネルを通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路の確立を要求するステップ、第2のメディアエンドポイントにより、RTC機器と第2のメディアエンドポイントの間の確立された第1のメディア経路を通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路の確立を要求するステップ、および第2のメディアエンドポイントにより、O/Aプロトコルを使用して、呼のための直接メディア経路を確立するために、確立された第1のメディア経路を通して、またはエンド・ツー・エンド・シグナリング・チャネルを通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいHTTP URLの形であってもよい、呼設定に関する情報、および第2のメディアエンドポイントが接続される相互接続するサーバのネットワークアドレスに関する情報を送信するステップのうちの1つまたは複数により呼び出される。
【0077】
他の様態では、第2のエンドポイントが、他のRTC機器またはゲートウェイである。
【0078】
他の様態では、ネットワークを介して通信するためのシステムが、2つ以上のRTCエンドポイントを含む。
【0079】
他の様態では、システムのクライアント側が、電気通信機器により実装される。
【0080】
他の様態では、セッション・ボーダ・コントローラの一部であってもよい、システムのサーバ側が、電気通信機器により実装される。
【0081】
他の様態では、電気通信のための機器が、プログラムを組み入れ、クライアントにプログラムを送信することができる。
【0082】
他の様態では、電気通信のための機器が、ウェブサーバである。
【0083】
他の様態では、システムのクライアント側またはサーバ側が、ウェブブラウザ内のソフトウェアモジュール、またはスマートホン、タブレット、ラップトップ、またはパーソナルコンピュータもしくはコンピュータサーバのためのアプリケーションとしてのソフトウェアモジュール、またはプログラムを実行するためのプロセッサを備える電気通信機器内のソフトウェアモジュールにより実装される。
【0084】
他の様態では、ソフトウェアモジュールが、メディア経路(146)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいメッセージ(164)をエンドポイントに送信する機能、メディア経路(146)を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいメッセージ(164)をエンドポイントから受信する機能、メディアトラフィックのための代替メディア経路を使用して、品質または他の指標が評価される追加の代替メディア経路を確立する機能、セッション開始プロトコル(SIP)を使用してリアルタイムで通信する機能、WebRTC(Web Real Time Communication)プロトコルを使用してリアルタイムで通信する機能、ICE(Interactive Connection Establishment)を使用してエンドポイント間にメディア経路を確立する機能、STUN(Session Traversal Utilities for NAT)プロトコルを使用してメディア経路を確立する機能、TURN(Traversal Using Relays around NAT)プロトコルを使用してメディア経路を確立する機能、自己学習処理から得られる、エンドポイントまたはネットワークセグメントが相互のピア・ツー・ピア・メディア互換性を有するかどうかの知識を記憶する機能、時間が制限されてもよく、WebRTCサーバに記憶され、かつWebRTCブラウザユーザに短縮した形で送信されることができるWebRTC HTTP URLクリック・ツー・コール・リンクを生成する機能、時間が制限されてもよく、かつWebRTCサーバに記憶することができ、かつWebRTCブラウザユーザから短縮した形で受信することができるWebRTC HTTP URLリンクを実行する機能、他の方法で利用可能ではない場合があるWebRTC機能を呼び出すために、WebRTC HTTP URLリンク内に特定のドメイン名拡張を、たとえば、wrtc.company.com内にwrtcを識別する機能、RTCクライアントのためのグラフィカル・ユーザ・インタフェースで、呼状態に基づきリストの形で連絡先を整理する機能、移動体アプリケーションで使用される、小さな3つのバーティカルドット記号またはメニューライン記号により、RTCクライアントのためのグラフィカル・ユーザ・インタフェースで単一の連絡先のための拡張可能な動作メニューを表す機能、プッシュ通知によりスマートホンまたは他の移動体機器のスリープ状態を解除して、着信呼を受け取る機能、構内交換機(PBX)機能を統合する機能、セッション・ボーダ・コントローラ(SBC)機能を統合する機能、ユニファイドコミュニケーション(UC)のソリューション機能を統合する機能、SIPゲートウェイ機能にWebRTCを統合する機能、コールセンタまたはコンタクトセンタの機能を統合する機能、状況依存のクリック・ツー・コール・リンクを生成する機能、状況依存のクリック・ツー・コール・リンクを実行する機能、WebRTCブラウザをクライアントとして使用して、コールエージェントを接続する機能、およびインスタントメッセージング(IM)、プレゼンス、画面共有、およびグループ呼出を提供する機能などの機能を遂行するプログラムを含む。
【0085】
他の様態では、システムのRTC機器に結合したユーザエージェントが、サーバ、相互接続するサーバ、またはRTCサーバ内に実装される。
【0086】
他の様態では、相互接続するサーバが、互いの間でSIPプロトコルを使用し、RTC機器に結合したSIPユーザエージェントが、相互接続するサーバ内に実装される。
【0087】
他の様態では、サーバまたは相互接続するサーバが、ゲートウェイまたは傍受するゲートウェイと組み合わされる。
【0088】
他の様態では、メディアエンドポイントのための規定されたO/Aプロトコルがエンドポイントまたはネットワークセグメントと互換性がないときに、ゲートウェイの負荷を軽減して通信を可能にするために、規定されたO/Aプロトコルから
離脱することにより、通信すべきエンドポイントおよびネットワークセグメントと互換性があるO/Aプロトコルをメディアエンドポイント内に実装し、メディアエンドポイントのための規定されたメディア経路能力がエンドポイントまたはネットワークセグメントと互換性がないときに、ゲートウェイの負荷を軽減して通信を可能にするために、規定されたメディア経路能力から
離脱することにより、通信すべきエンドポイントおよびネットワークセグメントと互換性があるメディア経路能力をメディアエンドポイント内に実装する。
【0089】
本明細書に組み込まれ、かつ本明細書の一部を形成する添付図面は、本発明のさまざまな実施形態を例示し、本明細書と共に本発明の原理を説明し、かつ当業者が本発明を利用することができるようにする役割をさらに果たしている。図面では、同様の参照番号が同一の要素または機能的に類似する要素を示す。添付図面と併せて考慮したときに、以下の詳細な説明を参照することにより、本発明がよりよく理解されるようになるので、本発明のより完全な理解、および本発明の付随する利点の多くが容易に得られるであろう。
【図面の簡単な説明】
【0090】
【
図1】関連技術による、メモリを接続されたプロセッサを含む機器、エンドポイント、サーバ、プロキシ、およびゲートウェイを示す。
【
図2】関連技術による、1つのサーバを使用して2つのRTC機器間でリアルタイム通信するためのシステムを示す。
【
図3】関連技術による、異なるネットワークセグメントのエンドポイント間でリアルタイム通信するためのシステムを示す。
【
図4】関連技術による、ゲートウェイにより分離された異なるネットワークセグメント上のエンドポイント間でリアルタイム通信するためのシステムを示す。
【
図5】本発明の一実施形態による、エンドポイント間で呼をハンドオーバするための方法を使用するシステムを示す。
【
図6】本発明の一実施形態による、ゲートウェイを含む呼をハンドオーバするための方法を使用するシステムを示す。
【
図7】本発明の一実施形態による、プロキシおよびメディアサーバを使用してリアルタイム通信(RTC)メディアトラフィックを傍受し、解読するための方法を使用するシステムを示す。
【
図8】本発明の一実施形態による、TURNサーバを使用してリアルタイム通信(RTC)メディアトラフィックを傍受し、解読するための方法を使用するシステムを示す。
【
図9】本発明の一実施形態による、異なるタイプのネットワークセグメントを介してエンドポイント間に直接メディア経路を実現するための方法を使用するシステムを示す。
【
図10A】一実施形態による、呼をハンドオーバするためにエンドポイント間にメディア経路を確立または再確立するための処理を示す。
【
図10B】一実施形態による、呼をハンドオーバするためにエンドポイント間にメディア経路を確立または再確立するための処理を示す。
【
図11】プロキシを使用する一実施形態による、エンドポイント間でRTCトラフィックを傍受するためのメディア経路を確立するための処理を示す。
【
図12】TURNサーバを使用する一実施形態による、エンドポイント間でRTCトラフィックを傍受するためのメディア経路を確立するための処理を示す。
【
図13】一実施形態による、エンドポイント間にメディア経路を確立または再確立するための処理を示す。
【発明を実施するための形態】
【0091】
一実施形態による、エンドポイント間にメディア経路を確立または再確立するための方法が
図5に示されており、この図では、エンドポイントが、異なるタイプの1つまたは複数のネットワークインタフェース194を有し、呼のハンドオーバを実装するために、異なるタイプのネットワークセグメント104、106、108のネットワーク・アクセス・ポイント140に接続される。
【0092】
携帯電話は、典型的には異なる携帯電話基地局を通して電話網にアクセスするときに、呼が維持され、継続することができるようにする。同様に、メディアストリームを確立および再確立するこの実施形態により、リアルタイム通信機器(RTC機器)200(たとえば、スマートホン上のソフトウェアクライアントまたはアプリケーション)が、ネットワーク・アクセス・ポイントが変更されたときに、異なるネットワークインタフェース(たとえば、固定イーサネット(登録商標)、Wi−Fi、移動体3Gデータ、およびLTE)を使用するときに、およびさまざまなネットワーク・アクセス・サービス・プロバイダを経由するときに、継続している呼を維持することができるようになる。
【0093】
呼をハンドオーバするこの能力を実現するために、一方のメディアエンドポイント202および通信すべき他方のメディアエンドポイント203を含むリアルタイム通信機器(RTC機器)200が、O/Aプロトコル(Offer and Answer protocol)160を使用して、一方のメディアエンドポイント202と他方のメディアエンドポイント203の間にメディア経路146を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有する。そのようなメディア経路が、
図3に示すファイアウォールまたはNAT、および
図1に示すTURNサーバを通過してもよい。
【0094】
両方のエンドポイントは、エンドポイントが使用されるネットワークセグメント104、106、および108のアクセスポイント140から、何らかのアドレス120で到達可能なサーバ210に接続することができる。
【0095】
RTC機器(200)は、少なくとも1つのネットワークインタフェース(194)を経由して何らかのネットワーク・アクセス・ポイント140に接続され、メッセージ164を送信および受信することにより、サーバ210に至る、またはサーバ210を通るシグナリングチャネルを確立する。
【0096】
RTC機器200は、他のネットワークセグメント104、106、108を経由してアクセスするおかげで、サーバ210の数値アドレスが変更された可能性がある場合でさえ、DNSで検索されるFQDNを経由してサーバ210に到達することができる。サーバ210は、各セグメント上で別個のアドレス120を有するいくつかのネットワークセグメントに接続されてもよい。このとき、他のネットワークセグメント104、106、108にアクセスを変更するRTC機器200が、アクセスポイント140が変更される以前に、RTC機器200が接続される、さまざまなネットワークセグメント104、106、108上のサーバ210のアドレス120を、サーバ210から受信していた可能性があり、このとき、新しいネットワークセグメントを経由して再接続することができる。
【0097】
RTC機器200とサーバ210の間で接続を確立した後に、非応答接続を識別し、回復することができるようになるように、固有の接続識別情報が作成され、RTC機器200とサーバ210の間で共有される。
【0098】
サーバ210に接続するためにRTC機器200により使用されるネットワーク・アクセス・ポイント140もしくはネットワークインタフェース194が変更される可能性があるときに、またはメディア経路146のために使用されるアクセスポイント140もしくはネットワークインタフェース194が呼の間に変更される可能性があるときに、以下のステップによりメディア経路146を確立または再確立することができる:
【0099】
−RTC機器(200)が、サーバ210に至る1つまたは複数のアドレス120を呼設定手順から取り出すステップにより、サーバ210に至る1つまたは複数のアドレス120をサーバ210からのメッセージ164のソースアドレスとして取り出すステップにより、サーバ210に至る1つまたは複数のアドレス120を運ぶメッセージ164をサーバ210から受信することにより、DNSまたは他のデータベースを使用してサーバ210に至るアドレス120を検索することにより、またはサーバ210に至る所定のアドレス120からなるリストを記憶することにより、ネットワークセグメント104、106、および108のアクセスポイント140からサーバ210に至るアドレス120を収集する。
【0100】
−RTC機器200が、サーバ210のアドレス120にメッセージ164を繰り返し送信し、応答を受信しない場合、応答を受信し、かつ応答を受信したアドレス(120)にメッセージ(164)を送信し続けることによりシグナリングの接続性を回復するまで、他の収集されたサーバ210に至るアドレス120を試みる。
【0101】
−RTC機器200とサーバ210の間のシグナリングが回復した場合、呼を受け取ることができるように、またはO/Aプロトコル160を使用してRTC機器200と第2のメディアエンドポイント203の間にメディア経路を確立および再確立することができるように、特定の接続を回復するために、RTC機器200によりサーバ210に接続識別情報が提示される。
【0102】
−RTC機器200が、メディア経路146を再確立する必要があるかどうかを監視する、または通知されることにより、メディア経路再確立の必要性を判断する。
【0103】
−メディア経路を再確立する必要がある場合、RTC機器200が、サーバ210を経由してO/Aプロトコル160を使用することにより、メディア経路146の再確立を開始する。
【0104】
メディアチャネルは、典型的には別個に監視され、中断した、または悪い品質を示すときだけ、再確立されるように試みられる。
【0105】
同じく
図5を参照する、呼のハンドオーバを行う他の実施形態では、RTC機器200が、以下のアドレスまたはメディア経路状態の変更のうちの1つが発生することにより、メディア経路確立の必要性を検出してもよい:
【0106】
−サーバ210に接続するために使用されるサーバ210のアドレスが変更されたことを、RTC機器200が検出する、またはサーバ210からのメッセージ164により通知され、かつメディア経路146がその変更されたアドレスに依存する。
【0107】
−メッセージ164の宛先アドレスが以前のメッセージと比較して変更されたサーバ210から、RTC機器200がメッセージ164を受信し、メディア経路146がその変更されたアドアレスに依存する。
【0108】
−RTC機器200が、メディア経路146のためのサーバ210のアドレスが変更されたことを検出する。
【0109】
−RTC機器200が、第2のメディアエンドポイントによりメディア経路146のために使用されるアドレスが変更されたことを、サーバを経由して第2のメディアエンドポイント203からのメッセージ164により通知される。
【0110】
−RTC機器200が、RTC機器200と第2のメディアエンドポイント203の間のメディア経路146で、どちらかの方向でトラフィックが停止した、または劣化したことを検出する、または通知される。
【0111】
メディアチャネルは、典型的には別個に監視され、中断した、または悪い品質を示すときだけ、再確立されるように試みられる。
【0112】
同じく
図5を参照する、呼のハンドオーバを行うための他の実施形態では、RTC機器200が、呼が継続しているかどうか、または存続させる必要があるNATまたはファイアウォールの通路があるかどうかに応じて、サーバ210にメッセージを繰り返し送信する頻度を適合させている。
【0113】
他の実施形態が
図6に示されており、この図では、RTC機器200により使用されるプロトコルがメディア暗号化を必要とし、かつ暗号化鍵がメディアエンドポイント202、203によりメディア経路146を介して取り決められ、かつシグナリングチャネルを通してサーバ210にだけ利用可能な指紋を調べることにより中間者攻撃から保護するときに、シグナリングまたはメディアに関してRTC機器200と互換性がないエンドポイントに呼を接続するために、またはシグナリングまたはメディアに関して互換性がないネットワークセグメント104、106、108を介して呼を接続するために、ゲートウェイ222が第2のメディアエンドポイント203をサーバ210と統合する。
【0114】
リアルタイム通信(RTC)メディアトラフィックを、通信プロトコルを使用してRTC機器200とRTCサービス228の間で傍受し、解読するために、エンドポイント間にメディア経路を確立または再確立するための方法であって、メディアトラフィックが監視、解析、および記録する目的で指紋を使用して中間者攻撃から保護される、本発明による方法が、
図7に示されている。
【0115】
最新のプロトコル、たとえば、WebRTCは、暗号化されたメディアトラフィックを可能にするだけでなく、エンドポイント間で暗号化されたメディアトラフィックを義務づけさえし、中間者攻撃からの保護を含み、コールセンタなどがRTC通信を監視し、解析し、記録することを困難にする。この実施形態では、シグナリングを制御するためにプロキシ211が使用され、メディアサーバ214がメディアトラフィックを傍受し、解読し、中継している。
【0116】
リアルタイム通信機器(RTC機器)200が、第1のメディアエンドポイント202、第2のメディアエンドポイント203、RTCサーバ218、および傍受するゲートウェイ224を備え、RTC機器200、第2のメディアエンドポイント203、RTCサーバ218、および傍受するゲートウェイ224の各々が、メモリ192、およびメモリ192に結合したプロセッサ190を有する。
【0117】
傍受するゲートウェイ224が、RTCサービス228により使用される通信プロトコルのためのプロキシ211、およびメディアサーバ214を統合し、プロキシ211およびメディアサーバ214の各々が、メモリ192、およびメモリ192に結合したプロセッサ190を有する。
【0118】
プロキシ211がメッセージ164、164bを書き換えることにより、RTC機器200とメディアサーバ214の間に、およびメディアサーバ214と第2のメディアエンドポイント203の間に、RTCメディア経路が確立される。
【0119】
メディアサーバ214によりRTCメディアトラフィックを傍受、解読、および伝達するために、プロキシ211がメッセージ164、164bを書き換えることにより、指紋が配置される。
【0120】
RTC機器200が、RTCサービス228により使用される通信プロトコルのために前記プロキシ211を使用するように構成される。
【0121】
リアルタイム通信(RTC)メディアトラフィックを、TURNプロトコルを使用してRTC機器200とRTCサービス228の間で傍受し、解読するために、エンドポイント間にメディア経路を確立または再確立するための方法であって、メディアトラフィックが監視、解析、および記録する目的で指紋を使用して中間者攻撃から保護される、他の実施形態による方法が、
図8に示されている。
【0122】
最新のプロトコル、たとえば、WebRTCは、暗号化されたメディアトラフィックを可能にするだけでなく、エンドポイント間で暗号化されたメディアトラフィックを義務づけさえし、中間者攻撃からの保護を含み、コールセンタなどがRTC通信を監視し、解析し、記録することを困難にする。この実施形態では、TURNサーバ216がメディアトラフィックを中継している。
【0123】
メディアストリームは、IETFのdraft−schwartz−rtcweb−return−06に概説されるように「封じ込められている」と考えられる場合、またはTURNサーバが自動的に発見される、もしくはソフトウェアアプリケーションにより割り当てられ、使用されるように強制される場合、TURNサーバを流れる。
【0124】
傍受するゲートウェイもまた、メディアエンドポイント間のIPデフォルトゲートウェイまたはファイアウォール/NATの中に構築されてもよい。
【0125】
傍受するサーバの他の場所が、RTCがプライベートドメイン上にあり、かつ外部トラフィックが監視されるべきである使用事例を取り扱うために、ローカルネットワークまたはプライベートネットワークと広域転送ネットワークとの間でリアル・タイム・トラフィックを取り扱う機器の中であってもよい。前記傍受するサーバに自分のメディアを送信する、そのようなプライベートドメインに至る遠隔ユーザもまた、提案する方法を使用して解析されることができる。
【0126】
さらに、クライアント、たとえばそうするように構成されたWebRTCブラウザが、ICE手順を修正することにより、または他の手段により、傍受するサーバを通してメディアを確立することができる。
【0127】
傍受するサーバ、たとえば現行のブラウザを通して鍵を運ぶように、またはメディアを確立するように実装していないクライアントに関しては、そのようなことは、ブラウザへのプラグインまたは拡張により追加することができる。
【0128】
リアルタイム通信機器(RTC機器)200が、第1のメディアエンドポイント202、第2のメディアエンドポイント203、RTCサーバ218、および傍受するゲートウェイ224を備え、RTC機器200、第2のメディアエンドポイント203、RTCサーバ218、および傍受するゲートウェイ224の各々が、メモリ192、およびメモリ192に結合したプロセッサ190を有する。
【0129】
傍受するゲートウェイ224が、メモリ192、およびメモリ192に結合したプロセッサ190を有するTURNサーバ216を、傍受するゲートウェイ224と統合する。
【0130】
TURNサーバ216を使用するようにRTC機器200またはRTCサービス228を構成することにより、または封じ込められたネットワークセグメント内のメディアエンドポイントのうちの一方202または203がTURNサーバ216を発見することにより、RTC機器200とTURNサーバ216の間に、およびTURNサーバ216と第2のメディアエンドポイント203の間に、RTCメディア経路が確立される。
【0131】
傍受するゲートウェイ224を通過するRTCメディアトラフィックを解読するために、第1のメディアエンドポイント202により、または第2のメディアエンドポイント203により、傍受するゲートウェイ224にRTCメディアトラフィックのための解読鍵が運ばれる。
【0132】
傍受するサーバはまた、典型的にはNATおよびファイアウォールを通り抜けるようにメディアフローを取り扱うSBC(セッション・ボーダ・コントローラ)の中に構築することができる。
【0133】
よりリッチなメディア、改善されたメディア品質、より低いネットワーク負荷、またはより低コストの呼のための直接メディア経路を実現するために、異なるタイプのネットワークセグメント104、106、108間を、ゲートウェイ222を有するネットワークを介して接続される、ピア・ツー・ピア・メディア能力を有するエンドポイント202、203間にメディア経路を確立または再確立するための、本実施形態による方法が、
図9に示されている。
【0134】
VoIPサービスは、呼がLAN(イントラネットタイプのネットワークセグメント)上で、またはインターネット上で、コンピュータクライアントまたはIP電話から開始されるときでさえ、電話通信タイプのネットワークセグメントの中にゲートウェイ機能をほとんどいつも含み、他方のエンドポイントがVoIP電話と互換性があるときでさえ、電話通信タイプのネットワークセグメントを伴うので、メディアトラフィックは制限される、またはコストがかかる。ビデオの能力がある最新のプロトコル、たとえば、WebRTCおよびSIP、またはそれらの組み合わせを使えば、電話通信タイプのネットワークセグメントを介してメディア経路を設定するよりはむしろ、互換性のあるエンドポイント間に直接メディア経路を確立するほうが有利である。
【0135】
リアルタイム通信呼は、今日では同じく大部分の通話も、いくつかのネットワークセグメントおよび相互接続するサーバ210、212を介してもよい、シグナリングチャネルを介したメッセージを使って2段階処理でエンドポイントを接続し、次に、同じくいくつかのネットワークセグメントおよびサーバを介してもよいメディアチャネル確立が続く。これらの接続のいずれも、少なくとも制限された量のデータをエンドポイント間で送信および受信するために使用することができ、従来の音声電話通信のためのメディア経路がデータ内容を、たとえばDTMF数字の形で依然として伝達することができることに注目されたい。
【0136】
2つのエンドポイントが、互いの間にエンドポイント間の直接メディア経路ではないシグナリングチャネルまたはメディア経路を確立したときに、設定処理を継続して、別の方法でゲートウェイを間に有するいくつかのネットワークセグメントを介したメディア経路であってもよい、ピア・ツー・ピア・メディア経路とも呼ばれる、エンドポイント間の直接メディア経路を確立または再確立することが有利な場合がある。エンドポイントのいずれかが、ピア・ツー・ピア・メディア経路能力を有していることを他方のエンドポイントに示すことができ、エンドポイントのいずれかが、そのような確立または再確立を開始することができる。そのような直接メディア経路は、この状況ではTURNサーバを含んでもよく、依然として直接メディア経路であると考えられてもよい。
【0137】
メディア経路の確立または再確立の開始は、O/Aプロトコルを使用することにより、シグナリングチャネルまたはメディア経路を介して信号で伝えられてもよい。しかしながら、メディア経路が音声のためだけのためにある場合、O/Aプロトコルは長すぎて、たとえばDTMFの数字に符号化することができず、その音声チャネルを介して伝達することができない場合がある。そのような場合、O/Aプロトコルの圧縮バージョンを使用することができる。あるいは(より望ましい場合がしばしばある)一方のエンドポイントが、自分が接続したのと同じサーバに他方のエンドポイントが接続するように要求することができ、そのサーバを通して、O/Aプロトコルを実行することができ、エンドポイント間に直接メディア経路を確立することができる。
【0138】
この仕組みは、この仕組みのシグナリングが伝達されるサーバ(ウェブサーバ)と連絡を保つWebRTCブラウザ内に実装することができる。その場合、リクエストは、シグナリングチャネルまたはメディア経路を介して他方のエンドポイントにHTTP URLの伝達として実装することができ、その後、次の共通サーバ210を経由して完全なO/Aプロトコルを信号で伝えることができる。
【0139】
リアルタイム通信機器(RTC機器)200が、第1のメディアエンドポイント202、第2のメディアエンドポイント203、および相互接続するサーバ212、212bを備え、RTC機器200、第2のメディアエンドポイント203、および相互接続するサーバ212、212bの各々が、メモリ192、およびメモリ192に結合したプロセッサ190を有する。
【0140】
RTC機器200および第2のメディアエンドポイント203が、O/Aプロトコル(Offer and Answer protocol)を使用して、異なるタイプのメディアトラフィックのためのメディア経路を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するように構成される。
【0141】
RTC機器200および第2のメディアエンドポイント203が相互のピア・ツー・ピア・メディア互換性を有するかどうか、または相互接続するサーバ212、212bがRTC機器200と第2のメディアエンドポイント203の間でO/Aプロトコルを運んでRTC機器200と第2のメディアエンドポイント203の間に直接メディア経路148を確立するかどうかを知ることなく、RTC機器200と第2のメディアエンドポイント203の間に呼を設定しようとするときに、以下のステップにより直接メディア経路148を確立することができる:
【0142】
−RTC機器200が、第2のメディアエンドポイント203が接続される相互接続するサーバ212bに至る第1のシグナリングチャネル150を確立する。
【0143】
−RTC機器200が相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、直接メディア経路の確立または再確立のために以下の処理のうちの1つを呼び出す。
【0144】
RTC機器200が、RTC機器200と第2のメディアエンドポイント203の間で、エンド・ツー・エンド・シグナリング・チャネル152を通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路148の確立を要求する、もしくは
【0145】
RTC機器200が、RTC機器200と第2のメディアエンドポイント203の間の確立された第1のメディア経路146を通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路148の確立を要求する、もしくは
【0146】
RTC機器200が、O/Aプロトコルを使用して、呼のための直接メディア経路148を確立するために、確立された第1のメディア経路146を通して、またはエンド・ツー・エンド・シグナリング・チャネル152を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいHTTP URLの形であってもよい、呼設定に関する情報、およびRTC機器200が接続される相互接続するサーバ212のネットワークアドレスに関する情報を送信する。
【0147】
−または第2のメディアエンドポイント203が、相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、直接メディア経路の確立または再確立のために以下の処理のうちの1つを呼び出す:
【0148】
第2のメディアエンドポイント203が、RTC機器200と第2のメディアエンドポイント203の間で、エンド・ツー・エンド・シグナリング・チャネル152を通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路148の確立を要求する、もしくは
【0149】
第2のメディアエンドポイント203が、RTC機器200と第2のメディアエンドポイント203の間の確立された第1のメディア経路146を通して、圧縮されてもよいO/Aプロトコルを使用して、呼のための直接メディア経路148の確立を要求する、もしくは
【0150】
第2のメディアエンドポイント203が、O/Aプロトコルを使用して、呼のための直接メディア経路148を確立するために、確立された第1のメディア経路146を通して、またはエンド・ツー・エンド・シグナリング・チャネル152を通して、短縮されても、圧縮されても、時間が制限されても、またはDTMF符号化されてもよいHTTP URLの形であってもよい、呼設定に関する情報、および第2のメディアエンドポイント203が接続される相互接続するサーバ212bのネットワークアドレスに関する情報を送信する。
【0151】
図5、
図7、
図8、および
図9を参照する他の実施形態では、第2のエンドポイント203が、他のRTC機器200またはゲートウェイ222、224であってもよい。
【0152】
他の実施形態が、2つ以上のエンドポイント202、203、203bをさらに備えるメディア経路を確立または再確立するための方法を使用して、ネットワークを介して通信するためのシステムであってもよい。
【0153】
他の実施形態では、RTC機器200に結合したユーザエージェントが、サーバ210または相互接続するサーバ212、212b内に実装される。
【0154】
図9を参照する他の実施形態が、相互接続するサーバ212、212bが互いの間でSIPプロトコルを使用し、かつRTC機器200に結合したSIPユーザエージェントが、相互接続するサーバ212、212b内に実装されるシステムである。
【0155】
図6を参照する他の実施形態は、ゲートウェイ222の負荷を軽減して通信を可能にするためにあり、(i)メディアエンドポイント202、203、203bのための規定されたO/Aプロトコルが、エンドポイント208もしくは206、またはネットワークセグメント104、106、もしくは108と互換性がないときに、規定されたO/Aプロトコルから
離脱することにより、通信すべきエンドポイントおよびネットワークセグメントと互換性があるO/Aプロトコルをメディアエンドポイント202、203、203b内に実装し、(ii)メディアエンドポイント202、203、203bのための規定されたメディア経路能力が、エンドポイント208もしくは206、またはネットワークセグメント104、106、もしくは108と互換性がないときに、規定されたメディア経路能力から
離脱することにより、通信すべきエンドポイントおよびネットワークセグメントと互換性があるメディア経路能力をメディアエンドポイント202、203、203b内に実装し、ゲートウェイ222の負荷を軽減して通信を可能にする。
【0156】
他の実施形態では、ネットワークを介して通信するためのシステムが、2つ以上のRTCエンドポイントを含む。
【0157】
他の実施形態では、システムのクライアント側が、電気通信機器により実装される。
【0158】
他の実施形態では、セッション・ボーダ・コントローラの一部であってもよい、システムのサーバ側が、電気通信機器により実装される。
【0159】
他の実施形態では、電気通信のための機器が、プログラムを組み入れ、クライアントにプログラムを送信することができる。
【0160】
他の実施形態では、電気通信のための機器が、ウェブサーバである。
【0161】
他の実施形態では、システムのクライアント側またはサーバ側が、ウェブブラウザ内のソフトウェアモジュール、またはスマートホン、タブレット、ラップトップ、またはパーソナルコンピュータもしくはコンピュータサーバのためのアプリケーションとしてのソフトウェアモジュール、またはプログラムを実行するためのプロセッサを備える電気通信機器内のソフトウェアモジュールにより実装される。
【0162】
他の実施形態では、システムのRTC機器に結合したユーザエージェントが、サーバ、相互接続するサーバ、またはRTCサーバ内に実装される。
【0163】
他の実施形態では、相互接続するサーバが、互いの間でSIPプロトコルを使用し、RTC機器に結合したSIPユーザエージェントが、相互接続するサーバ内に実装される。
【0164】
他の実施形態では、サーバまたは相互接続するサーバが、ゲートウェイまたは傍受するゲートウェイと組み合わされる。
【0165】
図10Aおよび
図10Bには、一実施形態による、呼をハンドオーバするためにエンドポイント間にメディア経路を確立または再確立するための処理が示されている。
図10Aに示す第1の操作1002では、第1のメディアエンドポイント、第2のメディアエンドポイント、およびサーバを備えるリアルタイム通信機器(RTC機器)が提供される。第2の操作1004では、ネットワークセグメントのアクセスポイントから、複数のアドレスでサーバを到達可能にする。第3の操作1006では、何らかのネットワーク・アクセス・ポイントに接続されたRTC機器の少なくとも1つのネットワークインタフェースが、RTC機器とサーバの間でメッセージを送信および受信するように配置される。第4の操作1008では、RTC機器および第2のメディアエンドポイントが、O/Aプロトコル(Offer and Answer protocol)を使用して、RTC機器と第2のメディアエンドポイントの間にメディア経路を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するように構成される。第5の操作1010では、非応答接続を識別し、かつ回復することができるようになるように、RTC機器とサーバの間で共有される固有の接続識別情報が作成される。第6の操作1012では、RTC機器により、ネットワークセグメントのアクセスポイントからサーバに至るアドレスが収集される。
図10Bに示す第7の操作1014では、RTC機器によりサーバのアドレスにメッセージが繰り返し送信され、応答が全く受信されない場合、応答が受信され、かつ応答が受信されたアドレスにメッセージを送信し続けることによりシグナリング接続性が回復するまで、他の収集されたサーバに至るアドレスを試みる。第8の操作1016では、呼を受け取ることができるように、またはO/Aプロトコルを使用して、RTC機器と第2のメディアエンドポイントの間にメディア経路を確立または再確立することができるように、特定の接続を回復するために、RTC機器によりサーバに接続識別情報が提示される。第9の操作1018では、RTC機器により、メディア経路を再確立する必要性が判断され、メディア経路を再確立する必要がある場合、メディア経路の再確立が開始される。
【0166】
図11には、プロキシを使用する一実施形態による、エンドポイント間でRTCトラフィックを傍受するためのメディア経路を確立するための処理が示されている。第1の操作1102では、第1のメディアエンドポイント、第2のメディアエンドポイント、RTCサーバ、および傍受するゲートウェイを備えるリアルタイム通信(RTC)機器が提供される。第2の操作1104では、RTC機器およびメディアサーバにより使用される通信プロトコルのためのプロキシが、傍受するゲートウェイと統合される。第3の操作1106では、RTC機器とメディアサーバの間に、およびメディアサーバと第2のメディアエンドポイントの間に、RTCメディア経路が確立される。第4の操作1108では、メディアサーバによりRTCメディアトラフィックを解読および伝達するために、プロキシがメッセージを書き換えることにより、傍受のための指紋が配置される。第5の操作1110では、RTC機器により使用される通信プロトコルのためにプロキシを使用するようにRTC機器が構成される。
【0167】
図12には、TURNサーバを使用する一実施形態による、エンドポイント間でRTCトラフィックを傍受するためのメディア経路を確立するための処理が示されている。第1の操作1202では、第1のメディアエンドポイント、第2のメディアエンドポイント、RTCサーバ、および傍受するゲートウェイを備えるリアルタイム通信機器(RTC機器)が提供される。第2の操作1204では、TURNサーバが、傍受するゲートウェイと統合される。第3の操作1206では、RTC機器とTURNサーバの間に、およびTURNサーバと第2のメディアエンドポイントの間に、RTCメディア経路が確立される。第4の操作1208では、第1のメディアエンドポイント(202)により、または第2のメディアエンドポイントにより、RTCメディアトラフィックのための解読鍵が、傍受するゲートウェイ(224)に運ばれる。
【0168】
図13には、一実施形態による、エンドポイント間にメディア経路を確立または再確立するための処理が示されている。操作1302では、第1のメディアエンドポイント、第2のメディアエンドポイント、および相互接続するサーバを備えるリアルタイム通信機器(RTC機器)が提供され、RTC機器、第2のメディアエンドポイント、および相互接続するサーバの各々が、メモリ、およびメモリに結合したプロセッサを有する。操作1304では、RTC機器および第2のメディアエンドポイントが、O/Aプロトコル(Offer and Answer protocol)を使用して、異なるタイプのメディアトラフィックのためのメディア経路を確立および再確立することにより、ピア・ツー・ピア・メディア能力を有するように構成される。操作1306では、RTC機器および第2のメディアエンドポイントが相互のピア・ツー・ピア・メディア互換性を有するかどうか、または相互接続するサーバがRTC機器と第2のメディアエンドポイントの間でO/Aプロトコルを運んでRTC機器と第2のメディアエンドポイントの間に直接メディア経路を確立するかどうかを知ることなく、RTC機器と第2のメディアエンドポイントの間に呼を設定しようとする。操作1310では、RTC機器が相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、直接メディア経路の確立または再確立のための処理を呼び出す。操作1312では、第2のメディアエンドポイントが相互のピア・ツー・ピア・メディア互換性の指示を受信し、次いで、直接メディア経路の確立または再確立のための処理を呼び出す。
【0169】
実施形態は、データを記憶し、取り出し、および/もしくは出力する、ならびに/または他のコンピュータと通信することができる(限定しない例で)任意のコンピュータなどのコンピューティングハードウェア(コンピューティング装置)および/またはソフトウェア内に実装することができる。実施形態を実装するプログラム/ソフトウェアは、コンピュータ可読記録媒体を備えるコンピュータ可読媒体上に記録されてもよい。実施形態を実装するプログラム/ソフトウェアはまた、伝送通信媒体を介して伝送されてもよい。コンピュータ可読記録媒体の例には、磁気記録装置、光ディスク、光磁気ディスク、および/または半導体メモリ(たとえば、RAM、ROM、FLASHなど)が含まれる。磁気記録装置の例には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、および磁気テープ(MT)が含まれる。光ディスクの例には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc−Read Only Memory)、およびCD−R(Recordable)/RWが含まれる。通信媒体の一例には、搬送波信号が含まれる。
【0170】
さらに、実施形態の一様態によれば、説明した特徴、機能、および/または操作の任意の組み合わせを提供することができる。
【0171】
実施形態の多くの特徴および利点が詳細な明細書から明らかであり、したがって、添付の特許請求の範囲により、本発明の真の精神および範囲に入る、実施形態のそのような特徴および利点すべてを包含することが意図される。さらに、当業者が数多くの修正形態および変更形態を容易に思いつくので、本発明の実施形態を、例示し、説明したまさにその構成および操作に限定することは望ましくなく、それに応じて、適切な修正形態および均等物すべてが本発明の範囲に入ると訴えられてもよい。
【0172】
WebRTCについて言及しているときに、WebRTCはまた、他のリアルタイム通信プロトコル、または一般に通信方法を意味する(またはそれらに適用される)場合がある。