JP6293902B2 - ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ - Google Patents

ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ Download PDF

Info

Publication number
JP6293902B2
JP6293902B2 JP2016542097A JP2016542097A JP6293902B2 JP 6293902 B2 JP6293902 B2 JP 6293902B2 JP 2016542097 A JP2016542097 A JP 2016542097A JP 2016542097 A JP2016542097 A JP 2016542097A JP 6293902 B2 JP6293902 B2 JP 6293902B2
Authority
JP
Japan
Prior art keywords
protocol
target peer
mobile device
cellular network
target
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.)
Expired - Fee Related
Application number
JP2016542097A
Other languages
English (en)
Other versions
JP2016532404A (ja
JP2016532404A5 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016532404A publication Critical patent/JP2016532404A/ja
Publication of JP2016532404A5 publication Critical patent/JP2016532404A5/ja
Application granted granted Critical
Publication of JP6293902B2 publication Critical patent/JP6293902B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/28Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • 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/1069Session establishment or de-establishment
    • 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/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/04Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
    • H04W40/06Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources based on characteristics of available antennas
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses

Landscapes

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

Description

関連出願の相互参照
[0001]本出願は、その全体がともに参照により本明細書に組み込まれる、2013年9月13日に出願された米国仮特許出願第61/877,914号の優先権を主張する、2014年6月12日に出願された米国非仮特許出願第14/303,324号の優先権を主張する。
[0002]本開示は、一般にネットワーク通信に関し、より詳細には、モバイルデバイスにおけるネットワーク通信に関する。
[0003]WebRTC(ウェブリアルタイム通信:Web Real-Time Communications)は、JavaScript(登録商標)アプリケーションプログラミングインターフェース(API)を介してリアルタイム通信機能をウェブブラウザに追加することを目的とするオープンなプロジェクト(an open project)である。WebRTCは、プラグイン、ダウンロード、またはインストールを必要とすることなしに、ウェブ上でリッチなリアルタイムマルチメディアアプリケーションを書く能力をウェブアプリケーション開発者に提供する。たとえば、WebRTCは、(たとえば、同じデバイス上の、同じプライベートネットワーク中の、両方とも別個のファイアウォールの後ろにある(both behind distinct firewalls)などの)複数のターゲットピアの相対ロケーションにかかわらず、複数のブラウザベースのアプリケーション間のピアツーピアリアルタイム通信を可能にし得る。
[0004]WebRTCは、インターネットプロトコル(IP)ベースの通信セッションにおける複数のターゲットピアが、それらの間の最も良好な可能なメディア経路を発見することを可能にする、対話型通信確立(ICE:Interactive Communication Establishment)と呼ばれる技法を採用する。これは、ICE実装形態が、ネットワークアドレス変換(NAT:Network Address Translation)のタイプまたは2つのターゲットピアの間にあり得るファイアウォールの事前知識を必要としないNATトラバーサル(traversal)のためのターンキー・ソリューションであるという点で有用であり得る。
[0005]ICEは、NATのためのセッション・トラバーサル・ユーティリティ(STUN:Session Traversal Utilities for NAT)およびトラバーサル・ユージング・リレー・アラウンドNAT(TURN:Traversal Using Relays Around NAT)プロトコルを活用する。STUNは、ターゲットピアが、それがNATトラバーサルボックスの後ろにあるかどうかをIPベースのプロトコルによって発見することができるそのIPベースのプロトコルである。オープンなインターネットにおいて知られているサーバとコンタクトを取り、応答を受信することによって、ターゲットピアは、それ自体のIPアドレスを、STUNサーバがSTUNメッセージのための発信IPアドレス(originating IP address)として検出したIPアドレスと比較することができる。このようにして、ターゲットピアは、それがNATの後ろにある(is behind a NAT)かどうかを迅速に決定することができる。
[0006]一例では、(ピアとしても知られる)複数のターゲットピアのうちの1つによって公衆インターネット上の知られているSTUNサーバにSTUN要求メッセージが送られる。STUNサーバのIPアドレスは、ピアによってアプリオリに知られ得るか、または(たとえば、ドメインネームシステム(DNS)サービスの助けをかりて)発見可能である。STUNサーバがピアからSTUN要求を受信したとき、STUNサーバは、発信IPアドレスを含むSTUN応答メッセージを返送する。NATがピアとSTUNサーバとの間に存在した(たとえば、ピアがプライベートネットワーク上にある)場合、STUN応答メッセージ中のIPアドレスは、それのプライベートネットワーク上のピアのIPアドレスに一致しない。この種類のメッセージングはNATトラバーサルの問題を部分的に解決するにすぎない。NATは、ピアのプライベートIPアドレスと、ピアのためにNATによって公衆インターネットにおけるすべての宛先に与えられたIPアドレスとの間に1対1のマッピングが存在するという点で、サーバ反射的(server-reflexive)であり得る。しかしながら、多くのNATは対称的であり、公衆インターネット上のピアの宛先IPアドレスの各々についてピアのためのユニークなIPアドレスマッピングがある。したがって、単純なIPアドレス発見を越える機構が必要とされた。その結果、TURNプロトコルが開発された。
[0007]TURNは、NATされたピアとの間でトラフィックを中継する公衆インターネット上のTURNサーバをセットアップすることによって、インターネット上の任意の他のターゲットピアからのトラフィックを受信するNATされたピアの問題を解決する。たとえば、発信ピア(originating peer)は、メッセージ完全性を保証するための必要なフィールドを通常用いないで「TURN Allocate」要求を最初に送る。それに応じて、TURNサーバは、将来のメッセージングのための必要な値(たとえば、ハッシングのためのノンス(nonce))をもつ「Allocate Error」メッセージを送り、それの後、発信ピアが、必要なメッセージ完全性をもつ「TURN Allocate」メッセージを再送し、「TURN Allocate」応答を受信することができ、ここで、NATされたピアは、NATの後ろのそれの存在を決定するだけでなく、他のピアとの通信をセットアップするために使用され得るTURNサーバからの中継されたIPアドレスを割り振られ得る。
[0008]ICEは、2つのピアが、NATの存在下でそれらの間の最も良好な可能なメディア経路をネゴシエートすることができるように、STUNおよびTURNの使用を中心とするフレームワークを提供する。それらとコンタクトを取るために使用され得るIPアドレスおよびポートの各ピアの検出に基づいて、IPアドレス/ポートの「候補ペア」がICEクライアント指定の優先度(ICE client-specified priority)に関してテストされ、ランク付けされる。ICE規格は優先度付けのための例示的なアルゴリズムを提供する。その結果、ICEは、プロトコル(たとえば、セッション記述プロトコル(SDP))に基づいて複数のピア間の通信セッションのパラメータをネゴシエートするためのオファー/応答機構(an offer/answer mechanism)を定義する。
[0009]本開示はネットワーク通信に関する。モバイルデバイスのための通信を容易にするための方法、システム、および技法が提供される。
[0010]一実施形態によれば、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にする方法は、モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトすることを含む。モバイルデバイスはセルラーネットワークに結合され、内部ネットワークはネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離される。本方法はまた、ターゲットピアがセルラーネットワークを介して到達可能であるかどうかを決定することを含む。本方法は、ターゲットピアがセルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求をセルラーネットワーク上でターゲットピアに送ることをさらに含む。
[0011]別の実施形態によれば、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするためのシステムは、モバイルデバイス上で実行可能なインターセプトモジュールを含む。内部ネットワークはネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、モバイルデバイスはセルラーネットワークに結合される。インターセプトモジュールは、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトする。本システムはまた、モバイルデバイス上で実行可能な通信モジュールを含む。通信モジュールは、ターゲットピアがセルラーネットワークを介して到達可能であるかどうかを決定し、ターゲットピアがセルラーワークを介して到達可能であると決定されたとき、通信モジュールのネットワークが、第1のプロトコルにおいて通信するための要求をセルラーネットワーク上でターゲットピアに送る。
[0012]別の実施形態によれば、コンピュータ可読媒体は、モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトすることと、モバイルデバイスがセルラーネットワークに結合され、ターゲットピアがセルラーネットワークを介して到達可能であるかどうかを決定することと、ターゲットピアがセルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求をセルラーネットワーク上でターゲットピアに送ることとを含む動作を実行するためのコンピュータ実行可能命令を記憶している。
[0013]別の実施形態によれば、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするための装置は、ターゲットピアとのリアルタイム通信接続を開始するための発信ピアからの通信をモバイルデバイスにおいてインターセプトするための手段を含む。モバイルデバイスはセルラーネットワークに結合され、内部ネットワークはネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離される。本装置はまた、ターゲットピアがセルラーネットワークを介して到達可能であるかどうかを決定するための手段を含む。本装置は、ターゲットピアがセルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求をセルラーネットワーク上でターゲットピアに送るための手段をさらに含む。
[0014]本明細書の一部をなす添付の図面は、本発明の実施形態を示し、説明とともに、実施形態の原理について説明するようにさらに働く。図面において、同様の参照番号は、同等であるかまたは機能的に類似する要素を示し得る。要素が最初に現れる図面は、概して、対応する参照番号中の最も左の桁によって示される。
[0015]一実施形態による、ターゲットピアと内部ネットワーク内に位置するモバイルデバイスとを含むシステムを示すブロック図。 [0016]一実施形態による、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするためのシステムを示すブロック図。 [0017]一実施形態による、部分的な呼セットアップ・シグナリング図。 [0018]一実施形態による、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするための方法を示す簡略フローチャート。 [0019]一実施形態による、デジタル信号プロセッサを含むワイヤレスデバイスを示すブロック図。
詳細な説明
I.概説
II.例示的なシステムアーキテクチャ
III.例示的な方法
IV.例示的なワイヤレスデバイス
I.概説
[0020]以下の開示は、本開示の異なる特徴を実装するための、多くの異なる実施形態または例を与えることを理解されたい。いくつかの実施形態は、これらの具体的な詳細の一部または全部なしに実施され得る。本開示を簡略化するために、構成要素、モジュール、および構成の特定の例について以下で説明する。これらは、もちろん、例にすぎず、限定するものではない。
[0021]現在規格化されているWebRTC技術は、ウェブ開発者が複数のブラウザ間でピアツーピア感覚でリアルタイム通信を確立することを可能にする。WebRTCは、2つのピア間の2方向リアルタイム通信機能を提供するアプリケーションである。現在のWebRTC仕様は、NATのトラバーサル(traversal)のためのICE規格に対する依存性を有する。セルラーネットワーク上での展開シナリオを仮定すれば、WebRTCのコンテキストにおけるICEセッションは、モバイルデバイスのバッテリー寿命に影響を及ぼし、不要なオーバージエア・トランザクション(over-the-air transactions)を生じ得る非効率性を生じ得る。
[0022]特に、ICEは、特にセルラーコンテキストにおいて動作するとき、より詳細には、IPマルチメディア・サブシステム(IMS)対応コアネットワークと相互動作するとき、潜在的に問題になり得る。たとえば、潜在的な問題は、SDPベースのオファー/応答機構が、(オーバージエアの、および無線アクセスネットワーク(RAN)内の両方の)セルラーネットワーク容量に関してそれら自体の関連するコストを有する、かなりの数のオーバージエア・メッセージング・トランザクションを生じることがあることである。別の潜在的な問題は、(IMSを含む)多くの既存のボイスオーバーIP(VoIP)ターゲットピアがICEをサポートしないことである。別の潜在的な問題は、ICEがSTUNバインディングプロシージャ(STUN binding procedure)に基づくキープアライブ機構(keep-alive mechanisms)を可能にすることである。アプリケーションベースのキープアライブ機構は、ネットワーク効率コストを有するだけでなく、モバイルデバイスのバッテリー寿命を潜在的に限定することがあることがよく知られている。別の潜在的な問題は、WebRTCに関して、ユーザが何らかの理由でアプリケーション(たとえば、ブラウザ)をシャットダウンした場合、ICEコンテキストが潜在的に失われ得、オファー/応答交換が新たに開始しなければならないことがあることである。別の潜在的な問題は、両方のピアがファイアウォールの後ろにないとき、ICEが効率を提供しないことであり、これは、ハンドセット間通信(handset-to-handset communications)の場合、一般的である。さらに、ICEは、本質的に単一の候補ペアしかない場合でも、メディア検査を依然として実装し得る。これは非限定的な潜在的な問題のリストである。
[0023]本開示は、複数のWebRTCピア間の効率的な通信を保証するために、ブラウザ発信ICEプロシージャ(browser-originated ICE procedures)、および事業者展開ネットワーク(an operator-deployed network)によって提供されるレバレッジサービス(leverage services)(たとえば、プレゼンス)を仲介する、モバイルデバイス上で実行可能なプロキシ、および関連する機能を使用するための技法を提供する。
[0024]簡潔のために、本開示は、WebRTCについて、複数のアプリケーション間のリアルタイム通信を可能にする技術であるものとして説明し、ICEについて、NATトラバーサル技術(たとえば、STUNおよびTURN)を使用して複数のリモートピアを接続する技術であるものとして説明することがあるが、これは限定するものではなく、これらの能力を提供する他の技術が本開示の範囲内に入ることを理解されたい。
II.例示的なシステムアーキテクチャ
[0025]図1は、一実施形態による、ターゲットピアと内部ネットワーク102内に位置するモバイルデバイスとを含むシステム100を示すブロック図である。
[0026]内部ネットワーク102は、たとえば、セルラーネットワークであり得る。内部ネットワーク102はネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離される。モバイルデバイス104、106、108、および110は、内部ネットワーク102に結合され、各々とおよび/または外部ネットワーク中にあるターゲットピアと通信し得る。モバイルデバイスの例は、スマートフォン、携帯情報端末(PDA)、タブレット、およびラップトップである。他のモバイルデバイスが本開示の範囲内に入る。
[0027]システム100は、ハードウェア、ソフトウェア、またはその両方の組合せで実装され得るファイアウォール120を含む。ターゲットピア122は、ファイアウォール120の後ろにあるものとして示されている。無認可のインターネットユーザが、たとえば、ネットワーク112に接続された、イントラネットなど、プライベートネットワークにアクセスすることを防ぐために、ファイアウォールが頻繁に使用される。
[0028]ネットワーク112は、様々な構成を含み、インターネット、ワールドワイドウェブ、イントラネット、仮想プライベートネットワーク、ワイドエリアネットワーク、ローカルネットワーク、1つまたは複数の会社に独占的な(proprietary to)通信プロトコルを使用するプライベートネットワーク、セルラーおよび他のワイヤレスネットワーク、インターネットリレーチャットチャネル(IRC:Internet relay chat channel)、インスタントメッセージング、簡易メール転送プロトコル(SMTP)、イーサネット(登録商標)、WiFi(/登録商標)およびHTTP、ならびに上記の様々な組合せを含む様々なプロトコルを使用し得る。ネットワーク112はSIPをサポートし得る。一例では、ネットワーク112はロングタームエボリューション(LTE(登録商標))ネットワークを含む。LTEネットワークは、ワイヤレスブロードバンド技術であり、IPに基づくそれのアーキテクチャを有する。
[0029]ファイアウォール120は、ルールのセットおよび他の基準に基づいて(たとえば、ターゲットピア122への)ネットワーク送信を許可または拒否するように構成される。イントラネットに出入りするすべてのメッセージは、各メッセージを検査し、指定されたセキュリティ基準を満たさないものをブロックする、ファイアウォール120を通過する。ファイアウォール120は、NAT機能を実装することによってネットワークの後ろのホストを保護するための機能を有し得る。ファイアウォールは、RFC1918において定義されているプライベートアドレスを、ファイアウォールの後ろで保護されるホストに与える。
[0030]図2は、一実施形態による、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするためのシステム200を示すブロック図である。内部ネットワークは、NATによって1つまたは複数の外部ネットワークから分離され得る。
[0031]システム200は、ブラウザ202などのクライアントアプリケーションと、プロキシ204とを実行することが可能なモバイルデバイス110を含む。ブラウザ202は、ウェブページにアクセスし、それをモバイルデバイス110のディスプレイ上に表示することが可能であり得る。ブラウザ202はまた、音声およびビデオコーディング、ならびにモバイルデバイス上で実行しているターゲットアプリケーションとのリアルタイムでの通信を確立することが可能であり得る。一例では、ブラウザ202およびターゲットアプリケーションは、それぞれ、モバイルデバイス上で実行しているブラウザであり、このブラウザはリアルタイムで互いに通信する。そのような例では、モバイルデバイス110のユーザは、ユーザが、呼を発する(place a call)ためにウェブページによって与えられるオプションをクリックすることを可能にするウェブページにブラウザを向け得る。ユーザは、たとえば、ブラウザのアドレスバー中にウェブページのユニフォームリソースロケーション(URL)を打ち込むか、またはウェブページを提供することをサーバに行わせるハイパーリンクを選択することによって、ウェブページにブラウザを向け得る。ブラウザは、電話回線を使用せずに呼を発し得る。そうではなく、ブラウザは、呼を発するためにターゲットピアとのネットワーク112上での接続を確立し得る。一例では、ネットワーク112はインターネットであり、ブラウザ202は、呼を発するためにインターネットを介してIP接続をセットアップする。
[0032]一実施形態では、ブラウザ202は、呼を発するためにWRTC技術を使用する。上記で説明したように、WRTCは、欠点を有し得るICEを使用する。たとえば、ICEは、「重い」プロトコルであり、接続を確立するために複数の往復メッセージングの使用を伴う。プロキシ204は、セルラー接続により良く適合するように通信を最適化するためになど、モバイルデバイス110とターゲットピアとの間の通信を容易にするために使用され得る。たとえば、WebRTCコンテキストにおけるプロキシ204は、ブラウザ202から発生するICEメッセージングを仲介し、同時に、事業者ファイアウォール内にあるものとしてプロキシ204がすでに検出した他のターゲットピアへの接続性を確立するために、使用され得る。プロキシ204は、プロキシ204がその上で実行しているモバイルデバイス110がNATによって1つまたは複数の外部ネットワークから分離されるかどうかを決定することが可能である。一例では、プロキシ204は、モバイルデバイス110がNATによって1つまたは複数の外部ネットワークから分離されるかどうかを決定するためにICEを使用しない。そうではなく、プロキシ204は、モバイルデバイス110がNATによって1つまたは複数の外部ネットワークから分離されることを知るように事前構成され得る。したがって、ICEメッセージがモバイルデバイス110とターゲットピアとの間で往復して送られることは不要であり得る。
[0033]図3に、一実施形態による、部分的な呼セットアップ・シグナリング図300を示す。図300は、プロキシ204とのICEベースの呼発信(an ICE-based call origination)を示し、ターゲットピアがファイアウォールの後ろにないと仮定する。
[0034]一例では、ブラウザ202はモバイルデバイス110上で実行しており、ユーザは、WebRTCJavaScriptApp302をホストするウェブサイトにブラウザを向ける。WebRTCJavaScriptApp302は、プロキシ204がモバイルデバイス110上で実行しているかどうかを検出し、プロキシ204と通信するように構成された、JavaScriptアプリケーションであり得る。図3では、呼「呼発信(call origination)(ターゲットのSIP URI)」が、WebRTCJavaScriptApp302からプロキシ204に対して生成され、ブラウザによって与えられた最小量の接続性を使用し得る。たとえば、ブラウザは、WebRTCJavaScriptApp302が、たとえば、WebSocketまたはXMLHttpRequestを使用してプロキシ204に発信呼を発する(place the origination call)ことを可能にするために、ベース接続性をもつパイプ(a pipe with base connectivity)を与え得る。ブラウザ202は、WebRTCJavaScriptApp302が、プロキシ204にパケットを送り、それからパケットを受信し、パケットがプロキシ204によって正常に受信されたかどうかをWebRTCJavaScriptApp302に通知することを可能にし得る。
[0035]一例では、ウェブサイトプロバイダは、プロキシ204の機能が実現されることを可能にするために、サードパーティ(たとえば、プロキシ204のプロバイダ)からのWebRTCJavaScriptApp302を与えられる。モバイルデバイス110のユーザが呼を発することを希望する場合、ユーザは、ウェブサイトにブラウザ202を向けるか、またはWebRTCJavaScriptApp302をホストするウェブサイトにリダイレクトされ得る。別の例では、WebRTCJavaScriptApp302はモバイルデバイス110上にプレインストールされる。
[0036]WebRTCJavaScriptApp302は、プロキシ204がモバイルデバイス110上にインストールされているかどうかを検出するために、呼「呼発信(ターゲットのSIP URI)」を送り得る。一例では、プロキシ204は、事前指定されたIPアドレスを割り当てられる。事前指定されたIPアドレスは、デバイス(たとえば、モバイルデバイス110)上でのローカル使用のために予約されたIPアドレスであり得る。一例では、IPアドレスは127.0.0.1である。プロキシ204は、プロキシがモバイルデバイス110上に常駐するかどうかを要求する通信を受信し得、プロキシがモバイルデバイス110上に常駐することを示す通信を送り得る。
[0037]一例では、プロキシ204がモバイルデバイス110上にインストールされていることをWebRTCJavaScriptApp302が検出したとき、WebRTCJavaScriptApp302は、プロキシ204のサービスを要求するためにプロキシ204に直接コンタクトを取る。WebRTCJavaScriptApp302は、プロキシ204への接続を確立し、プロキシ204と通信するようにブラウザ202に命令し得る。一例では、WebRTCJavaScriptApp302は、プロキシ204がブラウザ202と同じデバイス上で実行していることをブラウザ202に通知しない。ブラウザ202から受信された呼に応答して、プロキシ204は、以下で説明するように、ブラウザ202に関する限り、有効なエンドポイントを模倣し得る。
[0038]プロキシ204がモバイルデバイス110上にインストールされているか否かにかかわらず、WebRTCJavaScriptApp302は、RTCPeerConnectionオブジェクトを初期化するために、呼「New RTCPeerConnection(“iceServers”:[{“url”:”stun:127.0.0.1:3478”}])をブラウザ202に送り得る。RTCPeerConnectionオブジェクトが初期化されると、WebRTCJavaScriptApp302は別の呼「createOffer()」をブラウザ202に送り得る。ブラウザ202は、次いで、NATの存在下でモバイルデバイス110とターゲットピアとの間の最も良好な可能なメディア経路をネゴシエートするためにICEを使用し得る。
[0039]円306中に示されているように、ブラウザ202は呼「TurnAllocateRequest(メッセージ完全性なし)」をプロキシ204に送り、プロキシ204は呼「TurnAllocateRequest(メッセージ完全性なし)」を受信する。プロキシ204は応答「TurnAllocateError(ナンスを含む)」をブラウザ202に送り、ブラウザ202は応答「TurnAllocateError(ノンスを含む)」を受信する。ブラウザは別の呼「TurnAllocateRequest(メッセージ完全性を含む)」をプロキシ204に送り、プロキシ204は呼「TurnAllocateRequest(メッセージ完全性を含む)」を受信する。プロキシ204は応答「TurnAllocate(サーバ反射的アドレス、中継されたIPおよびポート)」を送り、ブラウザ202は応答「TurnAllocate(サーバ反射的アドレス、中継されたIPおよびポート)」を受信する。
[0040]ブラウザ202が円306中のICEメッセージング呼を実行したとき、ブラウザ202はプロキシ204からの応答をシグナリングする有効なリターンを期待する。円306中の呼は、プロキシ204によってマスクされ得る無駄なTURNメッセージングを示す。一実施形態では、プロキシ204は、複数のTURNメッセージを受信するが、それらをオーバージエアで送らない。プロキシ204は、呼をセットアップするために、オーバージエアで最小量の情報を送り得る。一実施形態では、プロキシ204は、ターゲットピアに送るための呼をブラウザ202からTURNプロトコルにおいて受信し、これらの呼のうちの1つまたは複数を廃棄する。そうではなく、プロキシ204は、ターゲットピアとのリアルタイム通信を開始するために、ターゲットピアに SIP invite を送ることを決定し得る。
[0041]一例では、プロキシ204は、それが、たとえば、SIP invite をターゲットピアに送り、SIPを使用してターゲットピアと通信することによって、無駄なシグナリングをなくし得るように、WebRTCセッションをプロキシ204に向けるための要求を送る。ユーザは、WebRTC接続(たとえば、規格におけるピア接続)をセットアップすることと、ICEメッセージングがプロキシ204を通るように、WebRTCセッションを、たとえば、IPアドレス127.0.0.1に向けることと、を行うために、ブラウザ202においてAPIを呼び出し得る。これは、ブラウザ202が提供することができないことがある最適化をプロキシ204が提供するので、有利であり得る。たとえば、ブラウザ202は、モバイルデバイス110がどのように(たとえば、セルラー接続またはWiFIを介して)ネットワークに結合されるかを決定することができないことがあり、また、モバイルデバイス110がNATの後ろにあるかどうかを決定することができないことがある。したがって、2つのピアがそれらの間の最も良好な可能なメディア経路をネゴシエートすることができるようにICEを使用するのではなく、プロキシ204は発信ピア(originating peer)からターゲットピアにSIP招待を送り得る。
[0042]プロキシ204は、リアルタイム通信接続を開始するために、ブラウザ202からターゲットピアへの通信をインターセプトし得る。プロキシ204は、これらのタイプの通信のためにモバイルデバイス110上でリッスンし得る。プロキシ204は、ターゲットピアがセルラーネットワーク102を介して到達可能であるかどうかを決定し得る。一例では、ターゲットピアはセルラーネットワーク102の加入者であり、プロキシ204は、プロキシ204がセルラーネットワーク上にあり、セルラーネットワークの事業者が、プロキシ204が使用するプレゼンスサービス(a presence service)を有するので、ターゲットピアがセルラーネットワーク102を介して到達可能であるかどうかを決定することが可能であり得る。ターゲットピアがセルラーネットワークを介して到達可能であると決定されたとき、プロキシ204は、ICEとは異なるプロトコルを使用して通信するための要求をセルラーネットワーク上でターゲットピアに送り得る。一例では、そのプロトコルはSIPであるが、他のシグナリング通信プロトコルが使用され得る。
[0043]WebRTCJavaScriptApp302が、プロキシ204がモバイルデバイス110上にインストールされていることを検出したとき、WebRTCJavaScriptApp302は、WebRTCを使用してターゲットピアとの呼をセットアップすることを希望し得る。一例では、WebRTCJavaScriptApp302は、ターゲットピアの番号を有し、「呼発信」呼を使用してウェブソケットを通してその番号を送る。プロキシ204は、ターゲットピアがネットワーク112上にあるかどうかを検出し得る。ターゲットピアがネットワーク112上にある場合、プロキシ204はターゲットピアに直接にメッセージをルーティングし得る。説明したように、プロキシ204は、ターゲットピアに円306中に示されたTURNメッセージを送るのではなく、SIPを使用してターゲットピアと通信し得る。
[0044]一実施形態では、プロキシ204はSIPレジストリに登録する。事業者SIPレジストラ(an operator SIP registrar)は、早期の呼受付け/拒否を与えるために活用され得、ターゲットピアが現在登録されていない場合、ターゲットピアのネットワーク起動のページングをトリガするために使用され得る。呼発信は、事業者提供のピア証明書(たとえば、SIPユニフォームリソース識別子(URI))を活用することができる。説明したように、プロキシ204は、TURNサーバを模倣し、その結果、不要なTURNシグナリングまたはICE接続性検査がオーバージエアで進むことを防ぎ得る。このようにして、プロキシ204は、オーバージエアで不要なデータを送ることを回避し、したがって、モバイルデバイス110に電力を供給するバッテリーのバッテリー寿命を最適化し得る。
[0045]さらに、周期的なICE接続性検査はキープアライブ機構(a keep-alive mechanism)としても使用され得る。モバイルデバイス上のアプリケーション対応(この場合、ブラウザ対応)キープアライブ機構は、それらの実装形態に基づく知られている問題を有する。プロキシ204は、ICEベースのキープアライブデータ(ICE-based keep-alive data)を変調し、ブロックさえし得る。一例では、プロキシ204は、ターゲットピアに送られているキープアライブメッセージ(keep-alive messages)のレートを決定し、ターゲットピアに送られているキープアライブメッセージのレートを変調する。レートを変調することは、1つまたは複数のキープアライブメッセージをインターセプトすることと、インターセプトされたキープアライブメッセージのうちの1つまたは複数を廃棄することと含み得る。
[0046]ターゲットピアは、SIP招待を受け付けるかまたは拒否することによって、プロキシ204に応答し得る。ターゲットピアは、プロキシ204と同様のプロキシを実行していることもしていないこともある。ターゲットピアがプロキシ204と同様のプロキシを実行していない場合、メッセージは、ターゲットピア上で実行しているアプリケーションにルーティングされ得、プロキシ204は、ターゲットピア上で実行しているアプリケーションと通信し得る。ターゲットピアがプロキシを実行している場合、プロキシ204およびターゲットピア上で実行している他のプロキシは互いに直接通信し得、それらの対応するブラウザから出て来るほとんどすべてのメッセージをドロップし得る。2つのプロキシはSIPメッセージングを介して通信し得る。
[0047]プロキシ204は、それがターゲットピアについて有する情報に基づいてメッセージを廃棄し得る。たとえば、ターゲットピアがファイアウォールの外側に位置するとき、プロキシ204は上記で説明したものと同じ程度の効率を与えることが可能でないことがある。ターゲットピアがファイアウォールの外側に位置するとき、プロキシ204は、どのようにターゲットピアに直接到達すべきかを知らないことがある。したがって、プロキシ204は、どのようにターゲットピアに到達すべきかを決定する(たとえば、どんなIPアドレスがファイアウォールの外側でそのターゲットピアにブロードキャストされているかを決定する)ためのTURNメッセージを送り、ターゲットピアに到達するためのリレーチャネルをファイアウォールの外側にセットアップし得る。最悪の場合、プロキシ204は、ICEメッセージングをピアに伝えるにすぎないことがあり、これは、ターゲットピアが事業者ファイアウォールの外側にある場合に起こり得る。オーバージエアで進むブラウザ発信トラフィック(browser originated traffic)を制限している間にIMSコアネットワーク能力(たとえば、ピアプレゼンス検出)が活用され得るような非効率性が、ICEの場合存在する。
[0048]さらに、ターゲットピアがセルラーネットワーク上で到達可能でないと決定されたとき、プロキシ204は、ICEを使用して通信するための要求をターゲットピアに送る。たとえば、ターゲットピアはローミングしていることがある。
[0049]別の例では、WebRTCJavaScriptApp302が、プロキシ204がモバイルデバイス110上にインストールされていないことを検出したとき、WebRTCJavaScriptApp302は、通信を容易にするために任意のプロキシを利用することなしにブラウザ202とのWebRTC接続を確立する。そのような例では、ブラウザ202は、円306中に示されているように、特定の言及した呼を送り、特定の言及した呼を受信し得る。WebRTCJavaScriptApp302は、WebRTCJavaScriptApp302が、たとえば、IPアドレス127.0.0.1にあるオブジェクトとの接続をセットアップすることができないというメッセージをブラウザ202から受信し得、このメッセージに基づいて、WebRTCJavaScriptApp302は、プロキシ204がモバイルデバイス110上にインストールされていないと決定し得る。
[0050]上記で説明し、ここでさらに強調するように、図1〜図3は例にすぎず、特許請求の範囲を過度に限定するべきではない。
III.例示的な方法
[0051]図4は、一実施形態による、内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするための方法400を示す簡略フローチャートである。一実施形態では、内部ネットワークはネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離される。方法400は、限定するものではなく、他の適用例において使用され得る。
[0052]方法400はブロック410〜430を含む。ブロック410において、モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信がインターセプトされ、モバイルデバイスはセルラーネットワークに結合される。一例では、プロキシ204は、モバイルデバイス110上で実行しており、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトし、ここで、モバイルデバイス110はセルラーネットワークに結合される。
[0053]ブロック420において、ターゲットピアがセルラーネットワークを介して到達可能であるかどうかが決定される。一例では、プロキシ204が、ターゲットピアがセルラーネットワークを介して到達可能であるかどうかを決定する。ブロック430において、ターゲットピアがセルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求がセルラーネットワーク上でターゲットピアに送られる。一例では、ターゲットピアがセルラーネットワークを介して到達可能であると決定されたとき、プロキシ204は、第1のプロトコルにおいて通信するための要求をセルラーネットワーク上でターゲットピアに送る。
[0054]また、上記で説明したブロック410〜430の前に、それらの間に、またはそれらの後に追加のプロセスが実行され得ることを理解されたい。また、本明細書で説明する方法400のブロックのうちの1つまたは複数は、必要に応じて省略されるか、組み合わせられるか、または異なるシーケンスにおいて実行され得ることを理解されたい。
IV.例示的なワイヤレスデバイス
[0055]図5は、一実施形態による、デジタル信号プロセッサを含むワイヤレスデバイス500を示すブロック図である。ワイヤレスデバイス500は、内部ネットワーク内に位置するワイヤレスデバイス500とターゲットピアとの間の通信を容易にするための複数の命令を処理するために、デジタル信号プロセッサ(DSP)501などのプロセッサを含み、ここで、内部ネットワークは、NATによって1つまたは複数の外部ネットワークから分離される。一例では、DSP501は方法400に従って命令を処理する。モバイルデバイス110はワイヤレスデバイス500として実装され得る。
[0056]図5はまた、DSP501とディスプレイ532とに結合されたディスプレイコントローラ530を示す。コーダ/デコーダ(コーデック)534もDSP501に結合され得る。スピーカー536およびマイクロフォン538がコーデック534に結合され得る。さらに、ワイヤレスコントローラ540がDSP501とワイヤレスアンテナ548とに結合され得る。一実施形態では、DSP501、ディスプレイコントローラ530、メモリ550、コーデック534、およびワイヤレスコントローラ540は、システム・イン・パッケージまたはシステムオンチップデバイス556中に含まれる。
[0057]一実施形態では、入力デバイス530および電源560はシステム・オン・チップ・デバイス556に結合される。その上、一実施形態では、図5に示されているように、ディスプレイ532、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ548、および電源560は、システム・オン・チップ・デバイス556の外部にある。ディスプレイ532、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ548、および電源560の各々は、インターフェースまたはコントローラなど、システム・オン・チップ・デバイス556の構成要素に結合され得る。ワイヤレスデバイスのユーザは、マイクロフォン538に話をするか、またはディスプレイ532を介して他のユーザを見ることによって、別のユーザと通信し得る。
[0058]さらに、本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、構成、モジュール、回路、およびステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップを、上記では概して、それらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
[0059]本明細書で開示した実施形態に関して説明した方法のステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD−ROM)、または当技術分野で知られている他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体は特定用途向け集積回路(ASIC)中に存在し得る。ASICはコンピューティングデバイスまたはユーザ端末中に存在し得る。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末中に個別構成要素として存在し得る。
[0060]開示した実施形態の前述の説明は、当業者が開示した実施形態を製造または使用することを可能にするために与えたものである。これらの実施形態への様々な変更は当業者には容易に明らかになり、本明細書で定義した原理は本開示の範囲から逸脱することなく他の実施形態に適用され得る。したがって、本開示は、本明細書に示した実施形態に限定されるものではなく、以下の特許請求の範囲によって定義される原理および新規の特徴に一致する可能な最も広い範囲を与えられるべきである。したがって、本開示は特許請求の範囲のみによって限定される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] 内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にする方法であって、前記内部ネットワークがネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、前記方法は、
モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトすることと、前記モバイルデバイスがセルラーネットワークに結合されている、
前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定することと、
前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送ることとを備える、方法。
[C2] 前記通信が、前記モバイルデバイス上で実行しているクライアントアプリケーションから送られる、C1に記載の方法。
[C3] 前記クライアントアプリケーションがブラウザである、C2に記載の方法。
[C4] 前記ターゲットピアに送るための1つまたは複数の呼を前記クライアントアプリケーションから第2のプロトコルにおいて受信することと、前記第2のプロトコルが前記第1のプロトコルとは異なる、
前記受信された呼のうちの1つまたは複数を廃棄することとをさらに備える、C2に記載の方法。
[C5] 前記モバイルデバイスが、スマートフォン、タブレット、ラップトップ、または携帯情報端末である、C1に記載の方法。
[C6] 前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、前記第1のプロトコルとは異なる第2のプロトコルにおいて前記ターゲットピアと通信するための要求を送ることをさらに備え、前記第2のプロトコルは、2つのターゲットピアのうちのターゲットピアがネットワークアドレス変換(NAT)の後ろにあるかどうかを決定するための、前記2つのターゲットピア間のプロトコル交換である、C1に記載の方法。
[C7] 前記第2のプロトコルが、前記モバイルデバイスから前記ターゲットピアへの1つまたは複数の経路を発見することと、互いに対して前記1つまたは複数の経路に優先度を割り当てることとを含む、C6に記載の方法。
[C8] 前記第2のプロトコルが、前記モバイルデバイスの外部インターネットプロトコル(IP)アドレスの表現を発見するための第3のプロトコルによる通信を送ることを含む、C7に記載の方法。
[C9] 前記第3のプロトコルがSTUNである、C8に記載の方法。
[C10] 前記第2のプロトコルが、前記2つのターゲットピア間の永続的接続を確立するための第3のプロトコルによる通信を送ることを含む、C7に記載の方法。
[C11] 前記第3のプロトコルがTURNである、C10に記載の方法。
[C12] 前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定され、前記方法は、
前記ターゲットピアに送られているキープアライブメッセージのレートを決定することと、
前記ターゲットピアに送られているキープアライブメッセージの前記レートを変調することとをさらに備え、ここにおいて、前記変調することが、キープアライブメッセージをインターセプトすることと、前記インターセプトされたキープアライブメッセージのうちの1つまたは複数を廃棄することとを含む、C1に記載の方法。
[C13] 前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、対話型通信確立(ICE)を使用して通信するための要求を前記ターゲットピアに送ることをさらに備える、C1に記載の方法。
[C14] プロキシが前記モバイルデバイス上に常駐するかどうかを要求する通信を受信することと、
前記プロキシが前記モバイルデバイス上に常駐することを示す通信を送ることとをさらに備える、C1に記載の方法。
[C15] 前記プロキシが、事前に指定されたIPアドレスを割り当てられる、C1に記載の方法。
[C16] 前記プロキシが、前記モバイルデバイス上で使用するために予約されたIPアドレスを割り当てられる、C1に記載の方法。
[C17] 前記セルラーネットワークがLTEネットワークである、C1に記載の方法。
[C18] 内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするためのシステムであって、前記内部ネットワークがネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、前記システムは、
モバイルデバイス上で実行可能なインターセプトモジュールと、ここにおいて、前記インターセプトモジュールが、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトし、ここにおいて、前記モバイルデバイスがセルラーネットワークに結合されている、
前記モバイルデバイス上で実行可能な通信モジュールと、ここにおいて、前記通信モジュールは、前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定し、前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、前記通信モジュールのネットワークが、第1のプロトコルにおいて通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送る、を備える、システム。
[C19] 前記通信が、前記モバイルデバイス上で実行しているクライアントアプリケーションから送られる、C18に記載のシステム。
[C20] 前記インターセプトモジュールが、前記ターゲットピアに送るための1つまたは複数の呼を前記クライアントアプリケーションから第2のプロトコルにおいて受信し、前記受信された呼のうちの1つまたは複数を廃棄し、ここにおいて、前記第2のプロトコルが前記第1のプロトコルとは異なる、C19に記載のシステム。
[C21] 前記モバイルデバイスが、スマートフォン、タブレット、ラップトップ、または携帯情報端末である、C18に記載のシステム。
[C22] 前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、前記インターセプトモジュールが、前記第1のプロトコルとは異なる第2のプロトコルにおいて前記ターゲットピアと通信するための要求を送り、ここにおいて、前記第2のプロトコルは、2つのターゲットピアのうちのターゲットピアがネットワークアドレス変換(NAT)の後ろにあるかどうかを決定するための、前記2つのターゲットピア間のプロトコル交換である、C18に記載のシステム。
[C23] 前記インターセプトモジュールが、前記モバイルデバイスから前記ターゲットピアへの1つまたは複数の経路を発見し、互いに対して前記1つまたは複数の経路に優先度を割り当てる、C22に記載のシステム。
[C24] 前記インターセプトモジュールが、前記2つのターゲットピア間の永続的接続を確立するための第3のプロトコルによる通信を送る、C22に記載のシステム。
[C25] 前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、前記インターセプトモジュールが、前記ターゲットピアに送られているキープアライブメッセージのレートを決定し、前記ターゲットピアに送られているキープアライブメッセージの前記レートを変調し、ここにおいて、前記インターセプトモジュールが、キープアライブメッセージをインターセプトし、前記インターセプトされたキープアライブメッセージのうちの1つまたは複数を廃棄する、C18に記載のシステム。
[C26] モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトすることと、前記モバイルデバイスがセルラーネットワークに結合されている、
前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定することと、
前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送ることとを備える動作を実行するためのコンピュータ実行可能命令を記憶したコンピュータ可読媒体。
[C27] 内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするための装置であって、前記内部ネットワークがネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、前記装置は、
ターゲットピアとのリアルタイム通信接続を開始するための発信ピアからの通信をモバイルデバイスにおいてインターセプトするための手段と、前記モバイルデバイスがセルラーネットワークに結合されている、
前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定するための手段と、
前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、第1のプロトコルにおいて通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送るための手段とを備える、装置。

Claims (23)

  1. 内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にする方法であって、前記内部ネットワークがネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、前記方法は、
    モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトすることであって、前記モバイルデバイスがセルラーネットワークに結合されており、前記通信が、第1のプロトコルに適合し、前記モバイルデバイス上で実行しているクライアントアプリケーションから前記ターゲットピアに送られ、前記第1のプロトコルは、STUNを使用して2つのターゲットピアのうちの前記ターゲットピアがNATの後ろにあるかどうかを決定するための、前記2つのターゲットピア間のプロトコル交換である、インターセプトすることと、
    前記プロキシにおいて、前記第1のプロトコルとは異なるプレゼンスプロトコルに関連付けられたレジストリに登録することであって、前記セルラーネットワークの事業者が、1つまたは複数の登録されたプロキシにプレゼンスサービスを提供し、前記プレゼンスサービスが、前記プレゼンスプロトコルに関連付けられる、登録することと、
    前記プレゼンスサービスを介して前記プロキシにおいて、前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定することと、
    前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、前記プレゼンスプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送ることと、
    前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、前記第1のプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記ターゲットピアに送ることと
    を備える、方法。
  2. 前記クライアントアプリケーションがブラウザである、請求項1に記載の方法。
  3. 前記ターゲットピアに送るための1つまたは複数の呼を前記クライアントアプリケーションから前記第1のプロトコルにおいて受信することと、
    前記受信された呼のうちの1つまたは複数を廃棄することと
    をさらに備える、請求項1に記載の方法。
  4. 前記モバイルデバイスが、スマートフォン、タブレット、ラップトップ、または携帯情報端末である、請求項1に記載の方法。
  5. 前記第1のプロトコルが、前記モバイルデバイスから前記ターゲットピアへの1つまたは複数の経路を発見することと、互いに対して前記1つまたは複数の経路に優先度を割り当てることとを含む、請求項1に記載の方法。
  6. 前記第1のプロトコルが、前記モバイルデバイスの外部インターネットプロトコル(IP)アドレスを発見するための第3のプロトコルによる通信を送ることを含む、請求項5に記載の方法。
  7. 前記第3のプロトコルがTURNである、請求項6に記載の方法。
  8. 前記第1のプロトコルが、前記2つのターゲットピア間の永続的接続を確立するための第3のプロトコルによる通信を送ることを含む、請求項5に記載の方法。
  9. 前記第3のプロトコルがTURNである、請求項8に記載の方法。
  10. 前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定され、
    前記方法は、
    前記ターゲットピアに送られているキープアライブメッセージのレートを決定することと、
    前記ターゲットピアに送られているキープアライブメッセージの前記レートを変調することと
    をさらに備え、ここにおいて、前記変調することが、キープアライブメッセージをインターセプトすることと、前記インターセプトされたキープアライブメッセージのうちの1つまたは複数を廃棄することとを含む、請求項1に記載の方法。
  11. 前記第1のプロトコルが対話型通信確立(ICE)である、請求項1に記載の方法。
  12. プロキシが前記モバイルデバイス上に常駐するかどうかを要求する通信を受信することと、
    前記プロキシが前記モバイルデバイス上に常駐することを示す通信を送ることと
    をさらに備える、請求項1に記載の方法。
  13. 前記プロキシが、事前に指定されたIPアドレスを割り当てられる、請求項1に記載の方法。
  14. 前記プロキシが、前記モバイルデバイス上で使用するために予約されたIPアドレスを割り当てられる、請求項1に記載の方法。
  15. 前記セルラーネットワークがLTEネットワークである、請求項1に記載の方法。
  16. 内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするためのシステムであって、前記内部ネットワークがネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、前記システムは、
    モバイルデバイス上で実行可能なインターセプトモジュールと、ここにおいて、前記インターセプトモジュールが、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトし、ここにおいて、前記モバイルデバイスがセルラーネットワークに結合されており、前記通信が、第1のプロトコルに適合し、前記モバイルデバイス上で実行しているクライアントアプリケーションから前記ターゲットピアに送られ、前記第1のプロトコルは、STUNを使用して2つのターゲットピアのうちの前記ターゲットピアがNATの後ろにあるかどうかを決定するための、前記2つのターゲットピア間のプロトコル交換である、
    前記第1のプロトコルとは異なるプレゼンスプロトコルに関連付けられたレジストリに登録するプロキシと、ここにおいて、前記セルラーネットワークの事業者が、1つまたは複数の登録されたプロキシにプレゼンスサービスを提供し、前記プレゼンスサービスが、前記プレゼンスプロトコルに関連付けられる、
    前記モバイルデバイス上で実行可能な通信モジュールと、ここにおいて、前記通信モジュールは、前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定し、前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、前記通信モジュールのネットワークが、前記プレゼンスプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送り、前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、前記通信モジュールが、前記第1のプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記ターゲットピアに送る、
    を備える、システム。
  17. 前記インターセプトモジュールが、前記ターゲットピアに送るための1つまたは複数の呼を前記クライアントアプリケーションから前記第1のプロトコルにおいて受信し、前記受信された呼のうちの1つまたは複数を廃棄する、請求項16に記載のシステム。
  18. 前記モバイルデバイスが、スマートフォン、タブレット、ラップトップ、または携帯情報端末である、請求項16に記載のシステム。
  19. 前記インターセプトモジュールが、前記モバイルデバイスから前記ターゲットピアへの1つまたは複数の経路を発見し、互いに対して前記1つまたは複数の経路に優先度を割り当てる、請求項16に記載のシステム。
  20. 前記インターセプトモジュールが、前記2つのターゲットピア間の永続的接続を確立するための第3のプロトコルによる通信を送る、請求項16に記載のシステム。
  21. 前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、前記インターセプトモジュールが、前記ターゲットピアに送られているキープアライブメッセージのレートを決定し、前記ターゲットピアに送られているキープアライブメッセージの前記レートを変調し、ここにおいて、前記インターセプトモジュールが、キープアライブメッセージをインターセプトし、前記インターセプトされたキープアライブメッセージのうちの1つまたは複数を廃棄する、請求項16に記載のシステム。
  22. モバイルデバイス上で実行しているプロキシにおいて、ターゲットピアとのリアルタイム通信接続を開始するための通信をインターセプトすることであって、前記モバイルデバイスがセルラーネットワークに結合されており、前記通信が、第1のプロトコルに適合し、前記モバイルデバイス上で実行しているクライアントアプリケーションから前記ターゲットピアに送られ、前記第1のプロトコルは、STUNを使用して2つのターゲットピアのうちの前記ターゲットピアがNATの後ろにあるかどうかを決定するための、前記2つのターゲットピア間のプロトコル交換である、インターセプトすることと、
    前記プロキシにおいて、前記第1のプロトコルとは異なるプレゼンスプロトコルに関連付けられたレジストリに登録することであって、前記セルラーネットワークの事業者が、1つまたは複数の登録されたプロキシにプレゼンスサービスを提供し、前記プレゼンスサービスが、前記プレゼンスプロトコルに関連付けられる、登録することと、
    前記プレゼンスサービスを介して前記プロキシにおいて、前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定することと、
    前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、前記プレゼンスプロトコルにおいて前記クライアントアプリケーショ通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送ることと、
    前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、前記第1のプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記ターゲットピアに送ることと
    を備える動作を実行するためのコンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体。
  23. 内部ネットワーク内に位置するモバイルデバイスとターゲットピアとの間の通信を容易にするための装置であって、前記内部ネットワークがネットワークアドレス変換(NAT)によって1つまたは複数の外部ネットワークから分離され、前記装置は、
    ターゲットピアとのリアルタイム通信接続を開始するための発信ピアからの通信をモバイルデバイスにおいてインターセプトするための手段と、前記モバイルデバイスがセルラーネットワークに結合されており、前記通信が、第1のプロトコルに適合し、前記モバイルデバイス上で実行しているクライアントアプリケーションから前記ターゲットピアに送られ、前記第1のプロトコルは、STUNを使用して2つのターゲットピアのうちの前記ターゲットピアがNATの後ろにあるかどうかを決定するための、前記2つのターゲットピア間のプロトコル交換である、
    前記ターゲットピアが前記セルラーネットワークを介して到達可能であるかどうかを決定するための手段と、
    前記ターゲットピアが前記セルラーネットワークを介して到達可能であると決定されたとき、プレゼンスプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記セルラーネットワーク上で前記ターゲットピアに送るための手段と、
    前記ターゲットピアが前記セルラーネットワーク上で到達可能でないと決定されたとき、前記第1のプロトコルにおいて前記クライアントアプリケーションと通信するための要求を前記ターゲットピアに送るための手段と
    を備える、装置。
JP2016542097A 2013-09-13 2014-09-11 ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ Expired - Fee Related JP6293902B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361877914P 2013-09-13 2013-09-13
US61/877,914 2013-09-13
US14/303,324 US9516575B2 (en) 2013-09-13 2014-06-12 Mobile device based proxy for browser-originated procedures
US14/303,324 2014-06-12
PCT/US2014/055162 WO2015038752A1 (en) 2013-09-13 2014-09-11 A mobile-device based proxy for browser-originated procedures

Publications (3)

Publication Number Publication Date
JP2016532404A JP2016532404A (ja) 2016-10-13
JP2016532404A5 JP2016532404A5 (ja) 2017-06-01
JP6293902B2 true JP6293902B2 (ja) 2018-03-14

Family

ID=51660018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016542097A Expired - Fee Related JP6293902B2 (ja) 2013-09-13 2014-09-11 ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ

Country Status (5)

Country Link
US (1) US9516575B2 (ja)
EP (1) EP3044929B1 (ja)
JP (1) JP6293902B2 (ja)
CN (1) CN105556921B (ja)
WO (1) WO2015038752A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10263952B2 (en) 2013-10-31 2019-04-16 Avaya Inc. Providing origin insight for web applications via session traversal utilities for network address translation (STUN) messages, and related methods, systems, and computer-readable media
US10033866B2 (en) 2016-02-19 2018-07-24 At&T Intellectual Property I, L.P. Facilitation of an internet protocol multimedia platform

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3996718B2 (ja) * 1999-01-07 2007-10-24 株式会社日立コミュニケーションテクノロジー 端末間通信方法
US6373817B1 (en) * 1999-12-30 2002-04-16 At&T Corp. Chase me system
US20020035605A1 (en) * 2000-01-26 2002-03-21 Mcdowell Mark Use of presence and location information concerning wireless subscribers for instant messaging and mobile commerce
US7318100B2 (en) 2003-04-14 2008-01-08 Riverbed Technology, Inc. Cooperative proxy auto-discovery and connection interception
US7428580B2 (en) * 2003-11-26 2008-09-23 Aol Llc Electronic message forwarding
US8571011B2 (en) 2004-08-13 2013-10-29 Verizon Business Global Llc Method and system for providing voice over IP managed services utilizing a centralized data store
US7602748B2 (en) 2004-08-13 2009-10-13 Verizon Business Global Llc Fixed-mobile communications with mid-session mode switching
US7293360B2 (en) * 2005-04-13 2007-11-13 Mentor Group, Llc Knife blade opening mechanism
CN102281335A (zh) * 2010-06-09 2011-12-14 北京和信锐智科技有限公司 保持网络nat绑定的方法
EP2599003B1 (en) 2010-07-26 2018-07-11 Seven Networks, LLC Mobile network traffic coordination across multiple applications
WO2013108121A2 (en) 2012-01-17 2013-07-25 IPalive AB A device, software module, system or business method for global real-time telecommunication

Also Published As

Publication number Publication date
JP2016532404A (ja) 2016-10-13
WO2015038752A1 (en) 2015-03-19
EP3044929A1 (en) 2016-07-20
CN105556921A (zh) 2016-05-04
US20150078263A1 (en) 2015-03-19
EP3044929B1 (en) 2018-05-30
CN105556921B (zh) 2018-08-10
US9516575B2 (en) 2016-12-06

Similar Documents

Publication Publication Date Title
US9515995B2 (en) Method and apparatus for network address translation and firewall traversal
JP5972398B2 (ja) Iceベースnatトラバーサル
US20080215669A1 (en) System and Method for Peer-to-Peer Connection of Clients Behind Symmetric Firewalls
JP6367339B2 (ja) プレゼンスおよびオンデバイスプロキシング
EP2018756B1 (en) Address translation in a communication system
US20130308628A1 (en) Nat traversal for voip
CA3021223C (en) A method and a system for using relays for network optimization in ip-based communication networks
US20150358795A1 (en) Browser emergency call method, system, and mobile device in real-time communication
JP4961368B2 (ja) 端末装置、nat越え方法、及びプログラム
JP2013506358A (ja) エンドツーエンドコールの実現方法、エンドツーエンドコール端末及びシステム
JP2023542398A (ja) データ処理方法、装置、関連機器及び記憶媒体
JP6293902B2 (ja) ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ
Srirama et al. Tcp hole punching approach to address devices in mobile networks
Tseng et al. Can: A context-aware NAT traversal scheme
US10375175B2 (en) Method and apparatus for terminal application accessing NAS
US8812694B2 (en) Dialog establishment over a peer-to-peer architecture
US10819755B1 (en) Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping
JP2016532404A5 (ja)
CA2799507C (en) Dialog establishment over a peer-to-peer architecture
CN103179091A (zh) Sip终端穿越防火墙的方法
EP2084885B1 (en) Address translation
WO2014032734A1 (en) Determination of correct location information server

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170405

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170405

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170405

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171013

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: 20180116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180214

R150 Certificate of patent or registration of utility model

Ref document number: 6293902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees