CN105556921A - 用于浏览器始发规程的基于移动设备的代理 - Google Patents
用于浏览器始发规程的基于移动设备的代理 Download PDFInfo
- Publication number
- CN105556921A CN105556921A CN201480050616.8A CN201480050616A CN105556921A CN 105556921 A CN105556921 A CN 105556921A CN 201480050616 A CN201480050616 A CN 201480050616A CN 105556921 A CN105556921 A CN 105556921A
- Authority
- CN
- China
- Prior art keywords
- target peer
- communication
- mobile device
- cellular network
- peer
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/28—Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2575—NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2589—NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/04—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
- H04W40/06—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources based on characteristics of available antennas
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation 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)
Abstract
一种促进位于内部网络内的移动设备与目标对等体之间的通信的示例方法包括在正在移动设备上执行的代理处截取用于发起与目标对等体的实时通信连接的通信。该移动设备耦合至蜂窝网络,并且该内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开。该示例方法还包括确定该目标对等体是否经由该蜂窝网络可到达。该示例方法进一步包括当确定目标对等体经由蜂窝网络可到达时,通过该蜂窝网络向该目标对等体发送用第一协议通信的请求。
Description
相关申请的交叉引用
本申请要求于2014年6月12日提交的美国非临时专利申请No.14/303,324的优先权,该美国非临时专利申请要求于2013年9月13日提交的美国临时专利申请No.61/877,914的优先权,这两篇申请的全部内容通过援引纳入于此。
公开领域
本公开一般涉及网络通信,并且尤其涉及移动设备处的网络通信。
背景技术
WebRTC(网页实时通信)是旨在经由JavaScript应用编程接口(API)向网页浏览器添加实时通信能力的开放项目。WebRTC为网页应用开发者提供了在网页上编写丰富的、实时多媒体应用的能力,而不需要插件、下载、或安装。例如,WebRTC可以实现基于浏览器的应用之间的对等实时通信而不管目标对等体的相对位置(例如,在同一设备上、在同一专用网络中、双方位于不同的防火墙后面等等)。
WebRTC采用被称为交互式通信建立(ICE)的技术,这种技术允许基于网际协议(IP)的通信会话中的目标对等体发现它们之间的最佳可能媒体路径。这在ICE实现是不需要对于可位于两个目标对等体之间的NAT或防火墙类型的先验知识的网络地址转译(NAT)穿越整体解决方案的意义上可能是有用的。
ICE利用了针对NAT的会话穿越实用程序(STUN)协议以及使用中继穿越NAT(TURN)协议。STUN是目标对等体可用于发现它是否在NAT穿越盒后面的基于IP的协议。通过联系开放式因特网中的已知服务器并接收返回的响应,目标对等体可将它自己的IP地址与STUN服务器被检测为STUN消息的始发IP地址的IP地址作比较。以此方式,目标对等体可快速确定其是否在NAT后面。
在一示例中,STUN请求消息由目标对等体之一(也被称为对等方)在公共因特网上向已知STUN服务器发送。STUN服务器的IP地址可以是对等体先验已知的或是可发现的(例如,在域名系统(DNS)服务的帮助下)。当STUN服务器从对等体接收到STUN请求时,STUN服务器发回包括始发IP地址的STUN响应消息。如果NAT存在于对等体与STUN服务器之间(例如,对等体在专用网络上),则STUN响应消息中的IP地址将与对等体在其专用网络上的IP地址不匹配。这种类型的消息接发仅部分解决了NAT穿越问题。NAT可以是服务器自反的,因为对等体的专用IP地址与由NAT代表该对等体向公共因特网中的所有目的地提供的IP地址之间存在一对一映射。然而,许多NAT是对称的——对于对等体,针对其在公共因特网上的每个目的地IP地址存在唯一性IP地址映射。因此,需要一种超越简单IP地址发现的机制。作为结果,开发了TURN协议。
TURN通过在公共因特网上设立中继往来于NAT对等体的话务的TURN服务器来解决了NAT对等体从因特网上的任何其他目标对等体接收话务的问题。例如,始发对等体初始发送通常没有用于确保消息完整性的必要字段的“TURN分配”请求。作为响应,TURN服务器发送带有关于将来消息接发的必要值(例如,用于散列的一次性数)的“分配错误”消息,此后始发对等体可以重新发送带有必要消息完整性的“TURN分配”消息并接收“TURN分配”响应,其中NAT对等体不仅能够确定其存在于NAT后面,并且还可被分配来自TURN服务器的可被用于设立与其他对等体的通信的中继IP地址。
ICE提供了围绕使用STUN和TURN的框架,从而两个对等体可以在存在NAT的情况下协商它们之间的最佳可能媒体路径。基于每个对等体检测可被用于联系它们的IP地址和端口,按ICE客户端指定的优先级来测试并排名IP地址/端口的“候选对”。ICE标准提供了用于区分优先级的示例算法。作为结果,ICE定义了用于基于协议(例如,会话描述协议(SDP))来协商各对等体之间的通信会话的参数的提供/应答(offer/answer)机制。
简要概述
本公开涉及网络通信。提供了用于促进移动设备的通信的方法、系统和技术。
根据一实施例,一种促进位于内部网络内的移动设备与目标对等体之间的通信的方法包括在正在移动设备上执行的代理处截取用于发起与目标对等体的实时通信连接的通信。该移动设备耦合至蜂窝网络,并且该内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开。该方法还包括确定该目标对等体是否经由该蜂窝网络可到达。该方法进一步包括当确定目标对等体经由蜂窝网络可到达时,通过该蜂窝网络向该目标对等体发送用第一协议通信的请求。
根据另一实施例,一种促进位于内部网络内的移动设备与目标对等体之间的通信的系统包括能在移动设备上执行的截取模块。该内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开,并且该移动设备耦合至蜂窝网络。该截取模块截取用于发起与目标对等体的实时通信连接的通信。该系统还包括能在该移动设备执行的通信模块。该通信模块确定目标对等体是否经由蜂窝网络可到达,并且当确定目标对等体经由蜂窝网络可到达时,通信模块通过蜂窝网络向目标对等体发送用第一协议通信的请求。
根据另一实施例,一种其上存储有计算机可执行指令的计算机可读介质,所述指令用于执行以下操作,包括:在正在移动设备上执行的代理处截取用于发起与目标对等体的实时通信连接的通信,该移动设备耦合至蜂窝网络,确定该目标对等体是否经由该蜂窝网络可到达;以及当确定目标对等体经由蜂窝网络可到达时,通过蜂窝网络向目标对等体发送用第一协议通信的请求。
根据另一实施例,一种用于促进位于内部网络内的移动设备与目标对等体之间的通信的装备包括用于在移动设备处截取来自始发对等体的用于发起与目标对等体的实时通信连接的通信的装置。该移动设备耦合至蜂窝网络,并且该内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开。该装备还包括用于确定该目标对等体是否经由该蜂窝网络可到达的装置。该装备进一步包括用于在确定目标对等体经由蜂窝网络可到达时通过该蜂窝网络向该目标对等体发送用第一协议通信的请求的装置。
附图简述
形成本说明书一部分的诸附图解说了本发明的诸实施例,并且与本描述一起进一步用以解释诸实施例的原理。在附图中,类似的参考标号可指示相同元件或功能上类似的元件。元件在其中首次出现的附图通常由对应参考标记中的最左边的数字指示。
图1是解说根据一实施例的包括目标对等体和位于内部网络内的移动设备的系统的框图。
图2是解说根据一实施例的用于促进位于内部网络内的移动设备与目标对等体之间的通信的系统的框图。
图3解说根据一实施例的部分呼叫设立信令示图。
图4是解说根据一实施例的用于促进位于内部网络内的移动设备与目标对等体之间的通信的方法的简化流程图。
图5是解说根据一实施例的包括数字信号处理器的无线设备的框图。
详细描述
I.总览
II.示例系统架构
III.示例方法
IV.示例无线设备
I.总览
应领会,以下公开提供用于实现本公开的不同特征的许多不同实施例或示例。一些实施例可在没有这些具体细节中的一些或所有细节的情况下实践。以下描述组件、模块、和安排的具体示例以简化本公开。当然,这些仅是示例且不旨在是限制性的。
当前被标准化的WebRTC技术使网页开发者能在浏览器之间建立对等意义上的实时通信。WebRTC是在两个对等体之间提供双向实时通信能力的应用。当前的WebRTC规范依赖于ICE标准来穿越NAT。给定蜂窝网络上的部署场景,在WebRTC上下文中的ICE会话可能导致低效,这会影响移动设备电池寿命并且导致不必要的空中事务。
具体而言,ICE可能潜在地是有问题的,特别是在蜂窝上下文中操作时且尤其是在与启用IP多媒体子系统(IMS)的核心网互操作时。例如,潜在的问题是基于SDP的提供/应答机制可能导致显著数目的具有它们自己的在蜂窝网络容量(无论在空中还是在无线电接入网络(RAN)内)方面的相关联成本的空中消息接发事务。另一个潜在问题是许多现有的IP语音(VoIP)目标对等体(包括IMS)不支持ICE。另一个潜在问题是ICE允许基于STUN绑定规程的保活机制。众所周知,基于应用的保活机制不仅具有网络效率成本,而且还可能潜在地限制移动设备的电池寿命。另一个潜在问题是对于WebRTC,如果用户出于任何原因关闭了应用(例如,浏览器),则可能潜在丢失ICE上下文且可能不得不重新开始提供/应答交换。另一个潜在问题是ICE在两个对等体不在防火墙后面时不提供效率,这对于手持机到手持机通信是常见的。进一步,即使实质上只有单个候选对,ICE仍可能实现媒体检查。这是非限制性潜在问题的列表。
本公开提供用于使用能在移动设备上执行的代理以及中介浏览器始发ICE规程并利用由运营商部署的网络所提供的服务(例如,在场)的相关联功能性来确保各WebRTC对等体之间的高效通信的技术。
为了简明起见,本公开可能将WebRTC描述为实现应用间的实时通信的技术,以及将ICE描述为使用NAT穿越技术(例如,STUN和TURN)来连接远程对等体的技术,但是这并不旨在限制并且应当理解,提供这些能力的其他技术落在本公开的范围内。
II.示例系统架构
图1是解说根据一实施例的包括目标对等体和位于内部网络102内的移动设备的系统100的框图。
内部网络102可以是例如蜂窝网络。内部网络102通过网络地址转译(NAT)与一个或多个外部网络分隔开。移动设备104、106、108和110耦合至内部网络102并且可彼此通信和/或与位于外部网络中的目标对等体通信。移动设备的示例为智能电话、个人数字助理(PDA)、平板和膝上型计算机。其他移动设备在本公开的范围内。
系统100包括可在硬件、软件、或这两者的组合中实现的防火墙120。目标对等体122被解说为在防火墙120后面。防火墙经常被用于防止未授权的因特网用户访问连接至例如网络112的专用网(诸如内联网)。
网络112可包括各种配置并且使用各种协议,包括因特网、万维网、内联网、虚拟专用网、广域网、局域网、使用一个或多个公司专有的通信协议的专用网、蜂窝网络和其他无线网、因特网中继聊天信道(IRC)、即时消息接发、简单邮件传输协议(SMTP)、以太网、WiFi和HTTP、以及前述的各种组合。网络112可支持SIP。在一个示例中,网络112包括长期演进(LTE)网络。LTE网络是无线宽带技术并且具有其基于IP的架构。
防火墙120被配置成基于规则集和其它准则来准许或拒绝网络传输(例如,至目标对等体122的网络传输)。进入或离开内联网的所有消息穿过防火墙120,防火墙120检查每条消息并阻挡不符合指定安全性准则的那些消息。防火墙120可具有通过实现NAT功能性来保护网络后面的主机的功能性。防火墙向防火墙背后保护的主机提供如在RFC1918中所定义的专有地址。
图2是解说根据一实施例的用于促进位于内部网络内的移动设备与目标对等体之间的通信的系统200的框图。该内部网络可通过NAT与一个或多个外部网络分隔开。
系统200包括能够执行客户端应用(诸如浏览器202)和代理204的移动设备110。浏览器202可以能够访问网页并且在移动设备110的显示器上显示网页。浏览器202还可以能够进行语音和视频编码并且与在移动设备上执行的目标应用实时地建立通信。在一个示例中,浏览器202和目标应用各自是在移动设备上执行的浏览器,并且这些浏览器彼此实时地通信。在此类示例中,移动设备110的用户可以将浏览器指向网页,该网页使得用户能点击该网页所提供的选项以拨出呼叫。用户可以通过例如在浏览器的地址栏中键入网页的统一资源定位(URL)或者选择使得服务器提供网页的超链接来将浏览器指向网页。浏览器可以拨出呼叫而不使用电话线。确切而言,浏览器可以在网络112上建立与目标对等体的连接以拨出呼叫。在一个示例中,网络112是因特网,并且浏览器202经由因特网设立IP连接以拨出呼叫。
在一实施例中,浏览器202使用WRTC技术来拨出呼叫。如上所述,WRTC使用ICE,这可具有缺点。例如,ICE是“笨重的”协议且需要使用多次来回消息接发来建立连接。代理204可被用于促进移动设备110与目标对等体之间的通信,诸如优化该通信以更好地适应蜂窝连接。例如,WebRTC上下文中的代理204可被用于中介从浏览器202始发的ICE消息接发,同时又建立至代理204已检测为在运营商防火墙内的其他目标对等体的连通性。代理204能够确定正执行代理204的移动设备110是否通过NAT与一个或多个外部网络分隔开。在一示例中,代理204不使用ICE来确定移动设备110是否通过NAT与一个或多个外部网络分隔开。确切而言,代理204可被预配置成知晓移动设备110通过NAT与一个或多个外部网络分隔开。如此,可能没有必要在移动设备110与目标对等体之间来回发送ICE消息。
图3解说根据一实施例的部分呼叫设立信令示图300。示图300解说具有代理204的基于ICE的呼叫始发,并且假定目标对等体不在防火墙后面。
在一示例中,浏览器202在移动设备110上执行,并且用户将该浏览器指向主存WebRTCJavaScriptApp302的网站。WebRTCJavaScriptApp302可以是配置成检测代理204是否在移动设备110上执行并与代理204通信的JavaScript应用。在图3中,从WebRTCJavaScriptApp302生成至代理204的呼叫“呼叫始发(目标的SIPURI)”,并且其可以使用由浏览器提供的最小连通量。例如,浏览器可以提供具有基本连通性的管道以使WebRTCJavaScriptApp302能使用例如WebSocket或XMLHttpRequest来向代理204拨出始发呼叫。浏览器202可以允许WebRTCJavaScriptApp302向代理204发送分组以及从其接收分组,并且向WebRTCJavaScriptApp302通知这些分组是否被代理204成功接收。
在一示例中,从第三方(例如,代理204的提供者)向网站提供者提供WebRTCJavaScriptApp302,以使代理204的功能性能够实现。如果移动设备110的用户希望拨出呼叫,则用户可将浏览器202指向网站或重定向至主存WebRTCJavaScriptApp302的网站。在另一示例中,WebRTCJavaScriptApp302被预装在移动设备110上。
WebRTCJavaScriptApp302可发送呼叫“呼叫始发(目标的SIPURI)”以检测代理204是否被安装在移动设备110上。在一示例中,代理204被指派预先指定的IP地址。预先指定的IP地址可以是保留以供设备(例如,移动设备110)上的本地使用的IP地址。在一示例中,该IP地址是127.0.0.1。代理204可以接收请求代理是否驻留在移动设备110上的通信,并且可以发送指示该代理驻留在移动设备110上的通信。
在一示例中,当WebRTCJavaScriptApp302检测到代理204安装在移动设备110上时,WebRTCJavaScriptApp302直接联系代理204以请求其服务。WebRTCJavaScriptApp302可指令浏览器202建立至代理204的连接并与代理204通信。在一示例中,WebRTCJavaScriptApp302不向浏览器202通知代理204在与浏览器202相同的设备上执行。响应于从浏览器202所接收的呼叫,只要与浏览器202有关,代理204就可以模仿有效端点,如以下所讨论的。
无论代理204是否被安装在移动设备110上,WebRTCJavaScriptApp302可向浏览器202发送呼叫“NewRTCPeerConnection(新RTC对等体连接)”(“iceServers”:[{“url”:”stun:127.0.0.1:3478”}])以初始化RTCPeerConnection对象。一旦RTCPeerConnection对象已被初始化,WebRTCJavaScriptApp302就向浏览器202发送另一个呼叫“createOffer()”。浏览器202随后可使用ICE来在存在NAT的情况下协商移动设备110与目标对等体之间的最佳可能媒体路径。
如圈306中所解说的,浏览器202向代理204发送呼叫“Turn分配请求(无消息完整性)”,并且代理204接收该呼叫“Turn分配请求(无消息完整性)”。代理204向浏览器202发送响应“Turn分配错误(包括一次性数)”,并且浏览器202接收该响应“Turn分配错误(包括一次性数)”。浏览器向代理204发送另一个呼叫“Turn分配请求(包括消息完整性)”,并且代理204接收呼叫“Turn分配请求(包括消息完整性)”。代理204发送响应“Turn分配(服务器自反地址、中继IP和端口)”,并且浏览器202接收该响应“Turn分配(服务器自反地址、中继IP和端口)”。
当浏览器202执行圈306中的ICE消息接发呼叫时,浏览器202预期来自代理204的有效返回信令响应。圈306中的呼叫解说可被代理204掩蔽的浪费的TURN消息接发。在一实施例中,代理204接收这些TURN消息,但是不在空中发送它们。代理204可在空中发送最小信息量以设立呼叫。在一实施例中,代理204从浏览器202接收TURN协议的呼叫以发送给目标对等体,并且丢弃这些呼叫中的一个或多个呼叫。确切而言,代理204可确定要向目标对等体发送SIP邀请以发起与该目标对等体的实时通信。
在一示例中,代理204发送具有至代理204的WebRTC会话点的请求,从而其可通过例如向目标对等体发送SIP邀请并使用SIP与该目标对等体通信来消除浪费的信令。用户可调用浏览器202中的API以设立WebRTC连接(例如,标准中的对等连接)并具有至例如IP地址127.0.0.1的WebRTC会话点,从而ICE消息接发通过代理204。这可能是有利的,因为代理204提供了浏览器202可能无法提供的优化。例如,浏览器202可能无法确定移动设备110如何耦合至网络(例如,经由蜂窝连接或WiFI),并且还可能无法确定移动设备110是否在NAT后面。由此,代理204可从始发对等体向目标对等体发送SIP邀请,不而是使用ICE以使得两个对等体可以协商它们之间的最佳可能媒体路径。
代理204可截取从浏览器202到目标对等体的用于发起实时通信连接的通信。代理204可在移动设备110上监听这些类型的通信。代理204可确定目标对等体是否经由蜂窝网络102可到达。在一示例中,目标对等体是蜂窝网络102的订户,并且代理204可以能够确定目标对等体是否经由蜂窝网络102可到达,因为代理204在蜂窝网络上且该蜂窝网络的运营商具有代理204使用的在场服务。当确定目标对等体经由该蜂窝网络可到达时,代理204可通过该蜂窝网络向该目标对等体发送使用不同于ICE的协议来通信的请求。在一示例中,该协议是SIP,尽管可以使用其他信令通信协议。
当WebRTCJavaScriptApp302检测到代理204安装在移动设备110上时,WebRTCJavaScriptApp302可能希望使用WebRTC与目标对等体设立呼叫。在一示例中,WebRTCJavaScriptApp302具有目标对等体的号码,并且使用“呼叫始发”呼叫通过websocket(网页套接字)发送该号码。代理204可检测目标对等体是否在网络112上。如果目标对等体在网络112上,则代理204可直接向目标对等体路由消息。如所讨论的,代理204可使用SIP与目标对等体通信,而不是向目标对等体发送圈306中所解说的TURN消息。
在一实施例中,代理204向SIP注册表注册。运营商SIP注册器可被利用来提供提早呼叫接受/拒绝,并且可被用于在目标对等体当前未注册的情况下触发对目标对等体的由网络发起的寻呼。呼叫始发可利用运营商提供的对等凭证(例如,SIP统一资源标识符(URI))。如所讨论的,代理204可以模仿TURN服务器,并且作为结果,防止不必要的TURN信令或ICE连通性检查在空中进行。以此方式,代理204可避免在空中发送不必要的数据,由此优化向移动设备110供电的电池的电池寿命。
进一步,周期性ICE连通性检查也可被用作保活机制。移动设备上的应用启用的(在该情形中是浏览器启用的)保活机制具有已知的基于它们的实现的问题。代理204可以调制以及甚至阻塞基于ICE的保活数据。在一示例中,代理204确定保活消息被发送给目标对等体的速率,并且调制保活消息被发送给目标对等体的速率。调制速率可包括截取一个或多个保活消息并丢弃所截取保活消息中的一个或多个保活消息。
目标对等体可通过接受或拒绝SIP邀请来响应代理204。目标对等体可以在或可以不在运行类似于代理204的代理。如果目标对等体不在运行类似于代理204的代理,则消息可被路由至在目标对等体上运行的应用,并且代理204可与在目标对等体上运行的该应用通信。如果目标对等体在运行代理,则代理204和在该目标对等体上运行的另一个代理可彼此直接通信并且可丢弃从它们对应的浏览器离开的几乎所有消息。这两个代理可经由SIP消息接发来通信。
代理204可基于其具有的关于目标对等体的信息来丢弃消息。例如,当目标对等体位于防火墙之外时,代理204可能无法提供如以上所描述的那么高的效率。当目标对等体位于防火墙之外时,代理204可能不知道如何直接到达目标对等体。因此,代理204可发送TURN消息以确定如何到达目标对等体(例如,确认哪一个至该目标对等体的IP地址在防火墙之外被广播)并在该防火墙之外设立中继信道以到达该目标对等体。在最坏的情况下,代理204可将ICE消息接发简单地传递给各对等体,这可能在目标对等体在运营商防火墙之外的情况下发生。ICE存在低效,以使得可在限制浏览器始发话务在空中行进的同时利用IMS核心网能力(例如,对等体在场检测)。
进一步,当确定目标对等体在蜂窝网络上不可到达时,代理204向目标对等体发送使用ICE来通信的请求。例如,目标对等体可能在漫游。
在另一示例中,当WebRTCJavaScriptApp302检测到代理204未安装在移动设备110上时,WebRTCJavaScriptApp302建立与浏览器202的WebRTC连接而不利用任何代理来促进通信。在此类示例中,浏览器202可发送特定的所标记呼叫,并且接收如圈306中所解说的该特定的所标记呼叫。WebRTCJavaScriptApp302可从浏览器202接收关于WebRTCJavaScriptApp302无法与在例如IP地址127.0.0.1处的对象设立连接的消息,并且WebRTCJavaScriptApp302可基于该消息来确定代理204未安装在移动设备110上。
如以上所讨论并在此进一步强调的,图1-3仅仅是示例,其不应当过度限制权利要求的范围。
III.示例方法
图4是解说根据一实施例的用于促进位于内部网络内的移动设备与目标对等体之间的通信的方法400的简化流程图。在一实施例中,该内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开。方法400并不意在限制并且可以用于其他应用中。
方法400包括框410-430。在框410,在移动设备上执行的代理处,截取用于发起与目标对等体的实时通信连接的通信,该移动设备耦合至蜂窝网络。在一示例中,代理204在移动设备110上执行,并且截取用于发起与目标对等体的实时通信连接的通信,其中移动设备110耦合至蜂窝网络。
在框420,确定目标对等体是否经由蜂窝网络可到达。在一示例中,代理204确定目标对等体是否经由蜂窝网络可到达。在框430,当确定目标对等体经由蜂窝网络可到达时,通过蜂窝网络向目标对等体发送用第一协议通信的请求。在一示例中,当确定目标对等体经由蜂窝网络可到达时,代理204通过蜂窝网络向目标对等体发送用第一协议通信的请求。
还应当理解,附加的过程可以在以上所讨论的框410-430之前、期间或之后执行。还应当理解,本文中所描述的方法400的一个或多个框可以按需被省略、组合或以不同次序执行。
IV.示例无线设备
图5是解说根据一实施例的包括数字信号处理器的无线设备500的框图。无线设备500包括处理器(诸如数字信号处理器(DSP)501)以处理多个指令来促进位于内部网络中的无线设备500与目标对等体之间的通信,其中该内部网络通过NAT与一个或多个外部网络分隔开。在一个示例中,DSP501根据方法400处理指令。移动设备110可以被实现为无线设备500。
图5还示出了耦合至DSP501和显示器532的显示器控制器530。编码器/解码器(CODEC)534也可耦合至DSP501。扬声器536和话筒538可耦合至CODEC534。附加地,无线控制器540可耦合至DSP501和无线天线548。在一实施例中,DSP501、显示器控制器530、存储器550、CODEC534以及无线控制器540被包括在系统级封装或片上系统设备556中。
在一实施例中,输入设备530和电源560耦合至片上系统设备556。此外,在一实施例中,如图5中所解说的,显示器532、输入设备530、扬声器536、话筒538、无线天线548和电源560在片上系统设备556的外部。显示器532、输入设备530、扬声器536、话筒538、无线天线548和电源560中的每一者可耦合至片上系统设备556的组件,诸如接口或控制器。无线设备的用户可以与另一用户通过向话筒538讲话或者经由显示器532看到另一用户来通信。
本领域技术人员将进一步领会,结合本文所公开的实施例来描述的各种解说性逻辑框、配置、模块、电路、和步骤可实现为电子硬件、计算机软件或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、配置、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文所公开的实施例描述的方法的各个步骤可直接用硬件、由处理器执行的软件模块或这两者的组合来实现。软件模块可驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、压缩盘只读存储器(CD-ROM)或本领域中所知的任何其他形式的存储介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算设备或用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在计算设备或用户终端中。
提供对所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使用所公开的实施例。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文中定义的原理可被应用于其他实施例而不会脱离本公开的范围。因此,本公开并非旨在被限定于本文中示出的实施例,而是应被授予与如由所附权利要求定义的原理和新颖性特征一致的最广的可能范围。因此,本公开仅由权利要求来限定。
Claims (27)
1.一种促进位于内部网络内的移动设备与目标对等体之间的通信的方法,所述内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开,所述方法包括:
在正在移动设备上执行的代理处截取用于发起与目标对等体的实时通信连接的通信,所述移动设备耦合至蜂窝网络;
确定所述目标对等体是否经由所述蜂窝网络可到达;以及
当确定所述目标对等体经由所述蜂窝网络可到达时,通过所述蜂窝网络向所述目标对等体发送用第一协议通信的请求。
2.如权利要求1所述的方法,其特征在于,所述通信是从正在所述移动设备上执行的客户端应用发送的。
3.如权利要求2所述的方法,其特征在于,所述客户端应用是浏览器。
4.如权利要求2所述的方法,其特征在于,进一步包括:
从所述客户端应用接收第二协议的要发送给所述目标对等体的一个或多个呼叫,所述第二协议不同于所述第一协议;以及
丢弃所接收的呼叫中的一个或多个呼叫。
5.如权利要求1所述的方法,其特征在于,所述移动设备是智能电话、平板计算机、膝上型计算机或个人数字助理。
6.如权利要求1所述的方法,其特征在于,进一步包括:
当确定所述目标对等体在所述蜂窝网络上不可到达时,发送用不同于所述第一协议的第二协议与所述目标对等体通信的请求,所述第二协议是在两个目标对等体之间用于确定所述两个目标对等体中的一目标对等体是否在网络地址转译(NAT)后面的协议交换。
7.如权利要求6所述的方法,其特征在于,所述第二协议包括发现从所述移动设备至所述目标对等体的一条或多条路径并向所述一条或多条路径指派相对于彼此的优先级。
8.如权利要求7所述的方法,其特征在于,所述第二协议包括根据第三协议发送通信以发现所述移动设备的外部网际协议(IP)地址的表示。
9.如权利要求8所述的方法,其特征在于,所述第三协议是STUN。
10.如权利要求7所述的方法,其特征在于,所述第二协议包括根据第三协议发送通信以建立所述两个目标对等体之间的持久连接。
11.如权利要求10所述的方法,其特征在于,所述第三协议是TURN。
12.如权利要求1所述的方法,其特征在于,确定所述目标对等体经由所述蜂窝网络可到达,所述方法进一步包括:
确定向所述目标对等体发送保活消息的速率;以及
调制向所述目标对等体发送保活消息的速率,其中所述调制包括截取保活消息并丢弃所截取的保活消息中的一个或多个保活消息。
13.如权利要求1所述的方法,其特征在于,进一步包括:
当确定所述目标对等体在所述蜂窝网络上不可到达时,向所述目标对等体发送使用交互式通信建立(ICE)来通信的请求。
14.如权利要求1所述的方法,其特征在于,进一步包括:
接收请求关于代理是否驻留在所述移动设备上的通信;以及
发送指示所述代理驻留在所述移动设备上的通信。
15.如权利要求1所述的方法,其特征在于,所述代理被指派预先指定的IP地址。
16.如权利要求1所述的方法,其特征在于,所述代理被指派被保留以供在所述移动设备上使用的IP地址。
17.如权利要求1所述的方法,其特征在于,所述蜂窝网络是LTE网络。
18.一种用于促进位于内部网络内的移动设备与目标对等体之间的通信的系统,所述内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开,所述系统包括:
能在移动设备上执行的截取模块,其中所述截取模块截取用于发起与目标对等体的实时通信连接的通信,其中所述移动设备耦合至蜂窝网络;以及
能在所述移动设备上执行的通信模块,其中所述通信模块确定所述目标对等体是否经由所述蜂窝网络可到达,并且当确定所述目标对等体经由所述蜂窝网络可到达时,所述通信模块通过所述蜂窝网络向所述目标对等体发送用第一协议通信的请求。
19.如权利要求18所述的系统,其特征在于,所述通信是从正在所述移动设备上执行的客户端应用发送的。
20.如权利要求19所述的系统,其特征在于,所述截取模块从所述客户端应用接收第二协议的要发送给所述目标对等体的一个或多个呼叫并丢弃所接收的呼叫中的一个或多个呼叫,其中所述第二协议不同于所述第一协议。
21.如权利要求18所述的系统,其特征在于,所述移动设备是智能电话、平板计算机、膝上型计算机或个人数字助理。
22.如权利要求18所述的系统,其特征在于,当确定所述目标对等体在所述蜂窝网络上不可到达时,所述截取模块发送用不同于所述第一协议的第二协议与所述目标对等体通信的请求,其中所述第二协议是在两个目标对等体之间用于确定所述两个目标对等体中的一目标对等体是否在网络地址转译(NAT)后面的协议交换。
23.如权利要求22所述的系统,其特征在于,所述截取模块发现从所述移动设备至所述目标对等体的一条或多条路径并向所述一条或多条路径指派相对于彼此的优先级。
24.如权利要求22所述的系统,其特征在于,所述截取模块根据第三协议发送通信以建立所述两个目标对等体之间的持久连接。
25.如权利要求18所述的系统,其特征在于,当确定所述目标对等体经由所述蜂窝网络可到达时,所述截取模块确定向所述目标对等体发送保活消息的速率并调制向所述目标对等体发送保活消息的速率,其中所述截取模块截取保活消息并丢弃所截取的保活消息中的一个或多个保活消息。
26.一种其上存储有计算机可执行指令的计算机可读介质,所述指令用于执行以下操作,包括:
在正在移动设备上执行的代理处截取用于发起与目标对等体的实时通信连接的通信,所述移动设备耦合至蜂窝网络;
确定所述目标对等体是否经由所述蜂窝网络可到达;以及
当确定所述目标对等体经由所述蜂窝网络可到达时,通过所述蜂窝网络向所述目标对等体发送用第一协议通信的请求。
27.一种促进位于内部网络内的移动设备与目标对等体之间的通信的装备,所述内部网络通过网络地址转译(NAT)与一个或多个外部网络分隔开,所述装备包括:
用于在移动设备处截取来自始发对等体的用于发起与目标对等体的实时通信连接的通信的装置,所述移动设备耦合至蜂窝网络;
用于确定所述目标对等体是否经由所述蜂窝网络可到达的装置;以及
用于在确定所述目标对等体经由所述蜂窝网络可到达时通过所述蜂窝网络向所述目标对等体发送用第一协议通信的请求的装置。
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 | 2014-06-12 | ||
US14/303,324 US9516575B2 (en) | 2013-09-13 | 2014-06-12 | Mobile device based proxy for browser-originated procedures |
PCT/US2014/055162 WO2015038752A1 (en) | 2013-09-13 | 2014-09-11 | A mobile-device based proxy for browser-originated procedures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105556921A true CN105556921A (zh) | 2016-05-04 |
CN105556921B CN105556921B (zh) | 2018-08-10 |
Family
ID=51660018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480050616.8A Expired - Fee Related CN105556921B (zh) | 2013-09-13 | 2014-09-11 | 用于浏览器始发规程的基于移动设备的代理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9516575B2 (zh) |
EP (1) | EP3044929B1 (zh) |
JP (1) | JP6293902B2 (zh) |
CN (1) | CN105556921B (zh) |
WO (1) | WO2015038752A1 (zh) |
Families Citing this family (2)
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 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650629B1 (en) * | 1999-01-07 | 2003-11-18 | Hitachi, Ltd. | Method and system for terminal communication |
US20040243703A1 (en) * | 2003-04-14 | 2004-12-02 | Nbt Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
CN101193730A (zh) * | 2005-04-13 | 2008-06-04 | 门特集团有限责任公司 | 刀具刀片开启机构 |
CN102281335A (zh) * | 2010-06-09 | 2011-12-14 | 北京和信锐智科技有限公司 | 保持网络nat绑定的方法 |
WO2013108121A2 (en) * | 2012-01-17 | 2013-07-25 | IPalive AB | A device, software module, system or business method for global real-time telecommunication |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7428580B2 (en) * | 2003-11-26 | 2008-09-23 | Aol Llc | Electronic message forwarding |
US7706401B2 (en) | 2004-08-13 | 2010-04-27 | Verizon Business Global Llc | Method and system for providing interdomain traversal in support of packetized voice transmissions |
US7602748B2 (en) | 2004-08-13 | 2009-10-13 | Verizon Business Global Llc | Fixed-mobile communications with mid-session mode switching |
WO2012018430A1 (en) | 2010-07-26 | 2012-02-09 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
-
2014
- 2014-06-12 US US14/303,324 patent/US9516575B2/en active Active
- 2014-09-11 CN CN201480050616.8A patent/CN105556921B/zh not_active Expired - Fee Related
- 2014-09-11 EP EP14780671.5A patent/EP3044929B1/en not_active Not-in-force
- 2014-09-11 JP JP2016542097A patent/JP6293902B2/ja not_active Expired - Fee Related
- 2014-09-11 WO PCT/US2014/055162 patent/WO2015038752A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650629B1 (en) * | 1999-01-07 | 2003-11-18 | Hitachi, Ltd. | Method and system for terminal communication |
US20040243703A1 (en) * | 2003-04-14 | 2004-12-02 | Nbt Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
CN101193730A (zh) * | 2005-04-13 | 2008-06-04 | 门特集团有限责任公司 | 刀具刀片开启机构 |
CN102281335A (zh) * | 2010-06-09 | 2011-12-14 | 北京和信锐智科技有限公司 | 保持网络nat绑定的方法 |
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 |
---|---|
US9516575B2 (en) | 2016-12-06 |
EP3044929A1 (en) | 2016-07-20 |
WO2015038752A1 (en) | 2015-03-19 |
JP6293902B2 (ja) | 2018-03-14 |
JP2016532404A (ja) | 2016-10-13 |
CN105556921B (zh) | 2018-08-10 |
US20150078263A1 (en) | 2015-03-19 |
EP3044929B1 (en) | 2018-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6199407B2 (ja) | リアルタイム通信におけるブラウザ緊急呼び出し方法、システムおよび移動装置 | |
US9401962B2 (en) | Traffic steering system | |
KR101176144B1 (ko) | 다중 네트워크 환경에서의 피어-투-피어 접속 시스템 및 방법 | |
CN102546559B (zh) | 受限网络中端到端传输数据的方法、设备和系统 | |
CN104040998A (zh) | 基于ice的nat遍历 | |
CN103107983B (zh) | 网络系统的数据管理方法及其相关系统 | |
JP5518202B2 (ja) | エンドツーエンドコールの実現方法、エンドツーエンドコール端末及びシステム | |
CN102780675B (zh) | 流媒体业务的传输方法、装置和系统 | |
CN106604119B (zh) | 一种用于智能电视私有云设备的网络穿透方法及系统 | |
CN105580338A (zh) | 存在性和设备上代理 | |
JP2013506358A5 (zh) | ||
KR20140121520A (ko) | 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법 | |
JP4940335B2 (ja) | 電話交換装置及び電話端末及び電話システムで使用される制御方法 | |
CN103152444B (zh) | 中继方式的网络地址转换及报文传输方法及装置、系统 | |
US8457111B2 (en) | Voice communication method and system in ubiquitous robotic companion environment | |
JP2013153438A (ja) | インターネットを介して移動端末間に通信接続を確立するための方法、コンピュータプログラムおよび記憶媒体 | |
CN105556921A (zh) | 用于浏览器始发规程的基于移动设备的代理 | |
JP2008258917A (ja) | 同一nat配下通信制御システム、nat装置、同一nat配下通信制御方法、及びプログラム | |
CN102255980B (zh) | 管理会话初始协议呼叫信息的方法和装置 | |
CN102158991B (zh) | 设备管理的方法、网关设备及设备管理服务器 | |
JP4728933B2 (ja) | Ip電話通信システム、ip電話通信方法、およびそのプログラム | |
JP2004253961A (ja) | 呼制御サーバおよび移動通信システム | |
CN117397220A (zh) | 用于促进一级号码的路由的系统和方法 | |
CN112333799A (zh) | 一种语音通话方法、网络系统及用户终端 | |
CA2799507A1 (en) | Dialog establishment over a peer-to-peer architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180810 Termination date: 20190911 |
|
CF01 | Termination of patent right due to non-payment of annual fee |