CN104205991A - 用于降低呼叫建立时间的系统和方法 - Google Patents
用于降低呼叫建立时间的系统和方法 Download PDFInfo
- Publication number
- CN104205991A CN104205991A CN201380014058.5A CN201380014058A CN104205991A CN 104205991 A CN104205991 A CN 104205991A CN 201380014058 A CN201380014058 A CN 201380014058A CN 104205991 A CN104205991 A CN 104205991A
- Authority
- CN
- China
- Prior art keywords
- internal server
- callee
- caller
- server
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004891 communication Methods 0.000 claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000013461 design Methods 0.000 description 34
- 238000005516 engineering process Methods 0.000 description 9
- 230000001413 cellular effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 101000706162 Homo sapiens Protein stum homolog Proteins 0.000 description 1
- 102100031097 Protein stum homolog Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 239000011469 building brick Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/40—Support for services or applications
- H04L65/4061—Push-to services, e.g. push-to-talk or push-to-video
-
- 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/80—Responding to QoS
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42025—Calling or Called party identification service
- H04M3/42034—Calling party identification service
- H04M3/42042—Notifying the called party of information on the calling party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
-
- 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
-
- 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/2564—NAT traversal for a higher-layer protocol, e.g. for session initiation protocol [SIP]
-
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4535—Network directories; Name-to-address mapping using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种用于降低至少两个设备之间的实时通信的呼叫建立时间的方法。该方法包括:在系统的第一内部服务器接收来自呼叫者的第一通信,其中该第一通信是推送请求,该推送请求包括发起与被呼叫者的连接的尝试;经由第一内部服务器向被呼叫者发送推送通知,其中该第一内部服务器具有至少两个接口,其中该至少两个接口的每一个接口都包含用户数据报协议(UDP)端口,其中该发送包括:通过第一内部服务器将被呼叫者能够连接到的该至少两个接口的外部UDP(IP,端口)对封装到推送通知中。
Description
相关申请:
本申请涉及并要求于2012年5月10日提交的申请号为61/645,249、标题为“SECURED WIRELESS SESSION INITIATEFRAMEWORK”的美国临时专利申请的优先权。本申请还涉及并要求于2013年3月15日提交的申请号为13/834,152、标题为“SECUREDWIRELESS SESSION INITIATE FRAMEWORK”的美国专利申请的优先权。在此通过引用将上述各申请并入本文。
背景技术
无论是直接点对点(成功穿越NAT)还是经由网络中继器(TURN),当前的技术和方法都依赖于XMPP/TURN/STUM/ICE“超时传输(jabber)”协议(源于即时通讯时代)来连接两个客户端以实时通信。更具体地,当前技术包括下列基于超时传输的方案:ejabberd(目前流行的基于Erlang的XMPP服务器方案);OpenFire;Tigase;libjingle(谷歌的用于p2p客户端的开源实施方案);TURN服务器(http://turnserver.souceforqe.net/);STUN服务器(http://sourceforqe.net/proiects/stun/)。无论哪种实施方案,当前基于XMPP的技术都遭遇到了连接时间长和往返回合(round-trip)多的问题。
呼叫者与被呼叫者之间的呼叫建立(连接)时间越长,呼叫者挂断电话、不耐烦和沮丧的可能性越大。因此,连接时间越快,建立呼叫连接的概率越高。
附图说明
图1A根据实施例描绘了安全的无线会话发起框架探戈(tango)(“SWIFT”)系统,该系统用于降低在实时通信中的两个客户端的连接过程中的连接建立时间。
图1B根据实施例描绘了SWIFT服务器,该服务器用于降低在实时通信中的两个客户端的连接过程中的连接建立时间。
图2根据实施例描绘了用于降低在实时通信中的两个客户端的连接过程中的连接建立时间的方法的流程图。
图3A和3B根据实施例描绘了用于降低在实时通信中的两个客户端的连接过程中的连接建立时间的方法的流程图。
除非具体指出,本说明书中提及的附图应当被理解为不是按照比例绘制的。
具体实施方式
现将对本技术的实施例进行详细的引用,在附图中示出了它们的示例。尽管将会结合不同的实施例对本技术进行描述,但是应当理解的是,它们无意将本技术限制于这些实施例。相反,本技术意在覆盖包含在由所附权利要求所界定的不同实施例的精神和范围内的所有的替代、修改和等同。
此外,在下面的实施例的描述中,阐述了大量具体细节以提供对本技术的透彻理解。但是,可在没有这些具体细节的情况下实施本技术。在其它情况下,为了避免对所呈现的实施例的各个方面产生不必要的模糊,未对公知的方法、过程、组件和电路进行详细的描述。
以下讨论将首先描述传统技术的概述,随后给出对传统技术加以改良的各个实施例的简要描述。接下来讨论将会返回到图1A、图1B、图2、图3A、图3B的描述,它们根据不同实施例描述了用于降低呼叫建立时间的系统和方法。
概述
在两个客户端之间建立实时连接时,传统的基于XMPP的技术的实施方式会遭遇连接时间过长和往返回合过多的问题。例如,用于建立呼叫的传统协议是序列化的:以连续方式执行步骤,使得客户端与服务器之间在建立呼叫连接之前产生许多来回通信。
呼叫者与被呼叫者之间呼叫建立(连接)时间越长,呼叫者挂断电话、不耐烦和沮丧的可能性越大。相反,连接时间越快,呼叫者不挂电话和进行呼叫连接的可能性越大。呼叫建立时间对于实际连接的呼叫的百分比是重要因素。
此外,移动网络可以是不同的网络类型(例如,3G、wifi)。传统的会话发起协议需要在呼叫建立过程中对其中一个网络切换进行重新协商,这会使得客户感觉在该呼叫中“卡住”。提供了多个用于实现两个客户端之间的实时通信的连接的系统和方法的实施例,这种连接明显更少的连接开销(例如,往返回合),因此降减少被“卡住”的感受。
对照需要分别连接到TURN/STUN和jabber服务器的传统技术,实施例使用同一服务器进行NAT穿越、呼叫建立、流量中转,从而有助于重新建立呼叫(例如,在2G/wifi切换)并进一步减少客户端在呼叫建立过程中需要打开和/或控制的连接的数量。
此外,由于实施例默认包括基于UDP的协议,因此能够充分利用无线通道。因为蜂窝式网络上的丢包通常是随机性的,并且通常是源于无线电干扰而不是拥塞的指示,因此基于TCP的协议不适宜最大程度地利用蜂窝式网络上的可用带宽,这是因为它们将这种丢包解释为拥挤,并以放弃作为响应。当依赖于大量的往返回合(如对于传统呼叫建立协议的17个往返回合)建立连接时,将加重这种不良的运行情况。由于我们默认使用UDP,我们能够使用UDP之上的我们自己的中转控制,这可避免这种毫无意义的等待并且对蜂窝式网络上的随机丢包有更好的抵抗力。因此,我们得到更快的连接速度。此外,当网络接口独立地切换(例如,Wifi切换为蜂窝式以及反向切换)时,存在优点:将不得不建立完整的TCP连接以重新建立“客户端环境”从而使服务器知道它实际上与之前的连接相同。使用UDP比使用TCP轻量得多,因为每个数据包包含足够的关于这种环境的信息,使服务器接收到来自新接口的UDP数据包时立刻执行切换。
总而言之,这些实施例能够降低呼叫建立时间。传统的呼叫建立时间要花费17至大约28个往返回合的时间,并且数据包大多通过TCP连接传送,这有可能会遭受大量的TCP中转超时。这些实施例能够将呼叫建立时间降低到大约3个往返回合的时间,并且默认使用UDP协议。因此,利用更少的往返回合时间和使用UDP协议,通过减少传统的“jabber连接故障”和其它的XMPP相关的超时(目前,这占所有呼叫建立尝试的大约6%),提升了呼叫建立成功率。
实施例的详细描述
图1A根据实施例描绘了安全的无线会话启动框架探戈(tango)(“SWIFT”)系统100,该系统用于降低在实时通信中的两个客户端的连接过程中的连接建立时间。图1B根据实施例描绘了SWIFT服务器110B。图2描绘了由SWIFT系统100执行的方法200的流程图,该方法200用于降低在实时通信中的两个客户端的连接过程中的连接建立时间。
简单地说,SWIFT系统100包括:服务商105(SWIFT系统100内部的服务器);至少一个SWIFT服务器110A、110B、110C、110n…(“SWIFT服务器110”,除非另有说明。在下面也将SWIFT服务器110描述为“第一内部设备110”。SWIFT服务器110是第一内部设备110的一个示例。在下面的一些实施例中,将服务商105描述为“第二内部设备105”。)
每个SWIFT服务器110包括两个接口。其中一个接口145为虚拟IP(“VIP”)(内部IP),而另一个接口150为外部开放IP。VIP是一个负载平衡示例,它允许IP流量拆分到多个服务器上。VIP具有IP地址,该地址必须是公众可得到从而可以使用的。VIP具有至少一个分派给它的真实服务器,VIP将流量分配给该服务器。通常,存在多个真实服务器,VIP将会在它们中传播流量。
在一些实施例中,每个接口包括传输控制协议(TCP)端口和用户数据报协议(UDP)端口。
总的来说,SWIFT服务器110有助于发起两个客户端之间的会话并在它们之间中转流量(如果需要)。SWIFT服务器110会保存路由表,该表将用户名映射到客户端的特定的UDP IP/端口或TCP套接口。路由表中的每个条目将根据客户流量更新。如果在60秒内未接收到来自特定TCP套接口或UDP IP端口的数据包,则会将其从路由表中移除。除了该表格,SWIFT服务器110不保存源自客户的任何状态,因此我们将SWIFT服务器110称为无状态服务器。当SWIFT服务器110停止或崩溃时,将会通过接收客户的流量来快速重新生成整个路由表并快速恢复服务。由于该同一无状态特性,它自然支持客户端无缝WiFi/3G切换。
现参照图1A、图1B和图2,在操作222,通过首先向SWIFT服务器110发送推送请求来尝试连接SWIFT服务器110的负载平衡器,呼叫者客户端115(“呼叫者115”)发起呼叫。从呼叫者115到被呼叫者120的推送请求包括呼叫者115的帐户标识。负载平衡器将会将该呼叫定向至其中一个SWIFT服务器210。DNS任播(anycast)用于在不同负载平衡器(站点)之间寻找适当的站点。
在操作224,SWIFT服务器110通过SWIFT服务器110与服务商105之间的HTTP restful API将操作222的推送请求发送至服务商105,包括帐户标识信息。
在操作226,服务商105将动态配置信息和给被呼叫者120的信息列表发送至SWIFT服务器110。该动态配置信息基于只针对呼叫者115的设备类型和网络类型(3G/WiFi)。
在操作228,SWIFT服务器110在适当的时机将“快速推送”(一种推送通知)立刻发送至被呼叫者120。如果被呼叫者120已经与SWIFT服务器110连接,则该快速推送激活被呼叫者120。SWIFT服务器110将其自身的外部TCP和UDP IP/端口嵌入到发送给被呼叫者120的“快速推送”有效负荷(payload)中。被呼叫者120随后将能够连接至该外部IP端口。“快速推送”默认是基于UDP的,因此它会被多次发送给被呼叫者。
在操作232,与操作228中将快速推送发送给被呼叫者120的同时,服务商105向由第三方或Tango提供的推送服务(例如,由AppleTM,GoogleTM(GCM/C2DM),MicrosoftTM,TangoTM提供的推送服务)发送推送请求并且随后推送通知被发送给被呼叫者120从而激活被呼叫者120。与“快速推送”相同,该推送通知将包含SWIFT服务器110的TCP和UDP IP/端口。
值得注意的是,在一个实施例中,在操作226(其中服务商105向SWIFT服务器110发送推送通知)后,操作228的快速推送与操作232的第三方通知推送是同时发生的。操作228的快速推送通知比操作232的第三方推送通知更快到达被呼叫者120。在另一个实施例中,在操作232,服务商105向多个设备发送推送通知。
此外,在操作236,SWIFT服务器110向呼叫者115发送推送响应,其中将被呼叫者220的信息及其动态配置发送给呼叫者115。
在操作238,(通过操作228或者操作232)被呼叫者120已接收到包含SWIFT服务器110的准确UDP和TCP IP/端口的推送通知,并且向SWIFT服务器110发送“连接”信息。在某些iOS和Winphone情况下,还包含由被呼叫者120设置的“接受标记”以表示120将会接受呼叫者115的通信。在某些情况下,被呼叫者120通过他的呼叫设备(例如,Android、PC)上的显示屏来指示出他对预期通信的接受,因此“接受”信息将被单独发送。
在操作240,SWIFT服务器110向服务商105发送有关被呼叫者120的信息(例如,所使用的网络接口)并向服务商105查询用于呼叫者115和被呼叫者120之间的视频/音频/网络速率控制的最佳算法。值得注意的是,服务商105已经具有了在操作224采集的呼叫者115的信息。在操作242,服务商105向SWIFT服务器110发送动态配置,该动态配置包括在呼叫者115和被呼叫者120之间的通信连接中使用的最佳算法。例如,如果呼叫者115和被呼叫者120都使用wifi,则他们将会使用另外的网络控制算法。为了确定将要使用的最佳算法,同时为了适应呼叫者115和被呼叫者120使用的不同网络,服务商105需要同时了解呼叫者115和被呼叫者120的配置。
在操作244,在操作242中发送至SWIFT服务器110的动态配置被转发至呼叫者115。同样,在操作244,SWIFT服务器110将会在该信息中嵌入被呼叫者120的外部IP/端口,其将会用于后面的NAT穿越来生成呼叫者115和被呼叫者120之间的点对点直接通道。此外,在操作246,在操作242时发送至SWIFT服务器110的动态配置被发送至被呼叫者120。
值得注意的是,呼叫者115和被呼叫者120只与SWIFT服务器110通信(或者接收来自第三方260的通信)。但是,SWIFT服务器110从服务商105获取与相应于呼叫者115和被呼叫者120的动态配置信息相对应的信息。
在操作248,呼叫者115向SWIFT服务器110发送信号,确定接收到在操作244时从呼叫者120通过SWIFT服务器110转发给呼叫者115的数据。
在操作250,SWIFT服务器110向被呼叫者120发送操作248中的确认通信。在操作250,SWIFT服务器110还会将呼叫者115的外部IP/端口装入该信息中,其目的是用于被呼叫者120的NAT穿越(生成点对点直接连接)。
在操作252,在一个实施例中,对于AndroidTM或者PC而言,在操作228(或类似操作)时发送的推送通知未显示在被呼叫者120正在使用的设备的屏幕上。以将推送通知显示在被呼叫者120的设备显示器上的另一种方式将推送通知通知给被呼叫者120。在这种情况下,被呼叫者120向呼叫者115发送额外的接受信息以表明被呼叫者120已经接受与呼叫者115的通信。
在一个实施例中,SWIFT服务器110起到中转通道的作用,该通道用于呼叫者115与被呼叫者120之间进行直接地传输视频/音频。
在一个实施例中,在创建中转通道之后,呼叫者115和被呼叫者120将尝试使用彼此的外部IP/端口来生成直接的点对点通道。如果这种尝试成功,则SWIFT系统100从使用SWIFT服务器110的中转通道切换为使用点对点通道。点对点通道是呼叫者115和被呼叫者120(客户端)之间的直接通道。通过从中转通道切换到点对点通道,这些实施例创建了更加直接的路径,通过该路径可在呼叫者115与被呼叫者120之间传输包含通信的数据包。这条更加直接的路径提供了更快的数据包穿越、更少的延时,并降低了服务器的负荷。该切换是无缝的,因此不存在从使用中转通道执行的操作变化为使用点对点通道执行的操作的用户可察觉的(音频/视频信号)迹象。即使点对点通道在使用中,呼叫者115与被呼叫者120也保持与SWIFT服务器110联系,因此在切换期间中转通道上的在途数据包将不会丢失。
参照图2、图3A和图3B,示出了根据实施例的用于降低在实时通信中的两个客户端的连接期间呼叫建立时间的方法的流程图。在不同实施例中,方法200和300是在计算机可读和计算机可执行指令的控制下通过一个或多个处理器和电子组件实现的。计算机可读和计算机可执行指令驻留在例如有形的数据存储零件中,如计算机可用易失性和非易失性存储器。但是,计算机可读和计算机可执行指令可驻留在任意类型的计算机可读存储介质中。在一些实施例中,方法200和300是由服务商105和SWIFT服务器110执行的(如相对于图1A和1B所描述的),或者由诸如本文所描述的SWIFT系统100的系统来执行。
仍参照图1A,在一个实施例中,如本文已描述的,标记为110B的第一内部服务器是SWIFT服务器110。SWIFT服务器110B起到客户端(呼叫者115与被呼叫者120)之间的中转设备的作用。现在参照图1A和图1B,根据实施例示出了(SWIFT服务器110的)SWIFT服务器110B。SWIFT服务器110B包括下列组件:推送请求接收器155;推送通知发送器175。SWIFT服务器110还可选择性地包括下列组件:推送请求发送器160;通信接收器170;安全模块140;动态配置信息接收器165;接口145;接口150;推送通知响应器(未示出)。安全模块140可选择性地包括:解密器,被配置用于解密在第一内部服务器接收到的控制数据包,其中所述控制数据包是推送请求的一部分;密码访问器,被配置用于访问封装在控制数据包的报头中的密码,其中所述解密器还被配置用于使用所述密码来解密所述控制数据包;签名比较器和控制数据包认证器。签名比较器被配置用于将与呼叫者相对应的第一签名和位于所述报头中的第二签名进行比较。控制数据包认证器与签名比较器耦接,并且控制数据包认证器被配置为当所述第一签名与所述第二签名匹配并成功解密时认证控制数据包。
SWIFT服务器110通过SWIFT服务器110内的不同模块对推送请求进行接收、发送、响应,例如下列模块:结合操作222使用的接收来自呼叫者115的推送请求的推送请求接收器155;结合操作224、228、230使用的向被呼叫者120发送推送通知的推送通知发送器175;结合操作236使用的通过将被呼叫者120的信息发送至呼叫者115来响应操作238时发送的连接标记的推送通知响应器;以及两个接口145和150。
尽管SWIFT服务器110通常只在呼叫者115、被呼叫者120以及服务商105之间进行中转信息,但是SWIFT服务器110实际上解译控制数据包中的信息(控制数据包包含在呼叫建立过程中在客户端与服务商105之间发送的信息。例如,在操作222的来自呼叫者115的推送请求包含(或者就是)控制数据包。)(该推送请求由推送请求发送器160通过SWIFT服务器110发送给服务商105)。
实施例还提供了用于从呼叫者115到被呼叫者120的通信数据包的系统和方法,其降低了连接建立时间,而不牺牲安全性。SWIFT系统100不依赖于SSL,而且更轻量。SWIFT系统100使用下面的方法200:(1)客户端从“供应中心”获得认证令牌,该认证令牌包含加密的{用户名,密码}对。密匙在所有的SWIFT服务器210A-210n…中共享,并且对于客户端而言是未知的,但是客户端知道{用户名;密码}的明文数值;(2)客户端用上述的密码对所有的控制数据包加密。SWIFT服务器用密匙对每个控制数据包中的认证令牌解密,导出特定客户端的密码并随后使用该密码来解密控制数据包的有效负荷;(3)数据包不通过SWIFT系统200来加密,而是可在两个客户方之间进行端到端的加密;(4)为了防止“重放攻击”,每个客户端评估服务器时间戳并使用自身的密码对其进行标记。如果服务器发现时间戳正确地位于适当的窗口中,则控制数据包通过该验证。否则,服务器将会发送随机数来验证该客户端。该随机数包含客户端的源IP端口和当前的服务器时间戳。客户端将自身的时钟与服务器时间戳之间的差异存储在它的本地存储器,从而使其不会因为时间戳偏差再被验证;(5)如果服务器检测到客户端使用不同的UDP IP端口或TCP套接口向服务器上传数据,则总是会立即进行随机数验证。如果该随机数成功地被客户端签署(它预期会在发送给服务器的后续数据包中),则服务器将会将相应的客户端入口切换到该新的TCP套接口或UDP IP端口。
当控制数据包被发送至SWIFT服务器110时,客户端的密码被用于加密控制数据包以及被用于封装数据包签名,并且将该数据包签名置于控制数据包的报头之中。一旦SWIFT服务器110接收到控制数据包的报头中的认证令牌,SWIFT服务器110便使用密码来解密控制数据包。SWIFT服务器110还将其具有的客户端的签名与位于控制数据包的报头中的签名进行对比。如果签名匹配并成功加密,则SWIFT服务器110已经验证过控制数据包。在验证之后,SWIFT服务器110接收和处理(中转)控制数据包。SWIFT服务器110确保控制数据包来自特定用户并随后解密控制数据包。因此,根据实施例,减少往返次数和加速连接建立时间并没有牺牲安全性。
在UDP被任何位于客户端和SWIFT服务器110之间的防火墙封锁的情况下,也可使用TCP建立呼叫,这被称为防火墙穿越。为了快速穿越防火墙,客户端总是同时使用UDP和TCP。一旦证实UDP有效,则TCP将会停止。状态机将帮助算出关闭TCP连接的正确时间。
这些服务器的职责之一是帮助建立直接的点对点通道,因此要确定哪个呼叫者115和被呼叫者120的IP和端口看上去像来自外界的。传统的用于确定该信息的方法是向“TURN/STUN”服务器发送单独的请求来获得“P2P候选人”。相对于传统的方法,在本文所述的方法200期间,SWIFT系统200本质上发现UDP IP端口,由此在确定哪个呼叫者115和被呼叫者120的IP/端口看上去像来自外界时,避免了额外的步骤(或时间需求)。
服务商105(这里也称为“第二内部服务器105”)可选择性地包括下列任意组件:推送请求接收器125;第一动态配置发送器130;第二动态配置发送器140;信息接收器135。推送请求接收器125接收来自SWIFT服务器110的推送请求。第一动态配置发送器130将被呼叫者120的动态配置(呼叫建立过程中的最佳算法)发送至SWIFT服务器110。第二动态配置发送器140将被呼叫者120与呼叫者115的动态配置发送至SWIFT服务器110。信息接收器135接收来自SWIFT服务器110的关于呼叫者115与被呼叫者120的信息。
服务商105用于完成至少例如与像AppleTM、GoogleTM的系统接合来推送通知的功能。如本文所描述的,服务商105与第三方260通信以发送推送通知,该推送通知激活被呼叫者120。
由此,这些实施例提供了默认基于UDP的方法和系统。因此,这些实施例不会像使用基于TCP的方法或系统出现易于丢包的现象。此外,这些实施例提供用于在数据包传输过程中对信息打包,因此节省了更多的其间将采集打包信息的往返回合。在传统的系统和方法中,各步骤是按照顺序完成的,而在这些实施例中是以并行的方式完成的,从而使得呼叫建立过程中的颤动(chatter)量最小化。
现参照图3A和图3B,根据实施例示出了一种用于降低至少两个设备之间实时通信的呼叫建立时间的方法300。在操作305,在系统的第一内部服务器,接收到来自呼叫者的第一通信,其中该第一通信是包含发起与被呼叫者连接的尝试的推送请求。在操作310,推送请求经由所述内部服务器发送给被呼叫者,其中第一内部服务器具有至少两个接口,其中该至少两个接口的每一个都包括用户数据报协议(UDP)端口,其中该发送包括通过第一内部服务器,将被呼叫者能够连接到的该至少两个接口的外部UDP IP/端口嵌入推送请求中。
在操作315,从系统第二内部服务器、呼叫者和被呼叫者中的至少一个接收通信,其中接收通信包括:接收打包信息,其中该打包信息的各部分能够在第一内部服务器、第二内部服务器、呼叫者和被呼叫者之间被连续地发送或接收。
在操作320,同时使用UDP端口和传输控制协议(TCP)端口来发起或接受呼叫,其中的所述至少两个端口的每一个都包括TCP端口。UDP IP/端口被用作至少UDP IP/端口和TCP端口的默认端口使用;并且如果确定UDP IP/端口有效,则终止TCP端口的使用。
在操作325,使用UDP IP/端口在与被呼叫者和呼叫者相关的网络类型之间进行无缝切换。
在操作330,通过第一内部服务器,在呼叫者、第二内部服务器和被呼叫者之间中转一组通信,其中该组通信至少包括第一通信。
在操作335,通过第一内部服务器,解译包含在作为推送请求的一部分发送的控制数据包中的信息。
在操作340,第一内部服务器对其接收到的控制数据包解密,该控制数据包作为推送请求的一部分。在其他一些实施例中,被封装到控制数据包的报头的密码被访问,使用该密码通过第一内部服务器解密控制数据包。其他一些实施例包括:通过第一内部服务器,将与呼叫者对应的第一签名和位于报头中的第二签名进行比较;如果第一签名与第二签名匹配并成功解密,则通过第一内部服务器验证控制数据包。
在操作345,接收到来自系统的第二内部服务器的动态配置信息,其中该动态配置信息包括基于呼叫者信息和被呼叫者信息选定的要使用的协议,其中呼叫者信息与被呼叫者信息包括呼叫者和被呼叫者的设备时间和存储器时间,并且其中该选定的协议包括使在呼叫者与被呼叫者之间的连接建立时间期间的往返回合最小化的最佳适配方法。
本公开描述了一种用于降低至少两个设备之间的实时通信的呼叫建立时间的方法。所述方法包括:在系统的第一内部服务器接收来自呼叫者的第一通信,其中该第一通信是一个推送请求,该推送请求包括发起与被呼叫者的连接的尝试;通过第一内部服务器向被呼叫者发送推送通知,其中该第一内部服务器具有至少两个接口,其中该至少两个接口的每一个都包含用户数据报协议(UDP)端口,其中该发送包括:通过第一内部服务器将被呼叫者能够连接到的该至少两个接口的外部UDP(IP,端口)对封装到推送通知内。
本文描述了安全的无线会话发起框架和用于降低实时通信的呼叫建立时间的系统和方法的不同实施例。尽管已描述具体的实施例,但是应当认识到,实施例不应被解释为由这些描述所限制,而是根据权利要求进行解释。
本文描述的所有的元件、部件和步骤是优选地包括。应当理解的是,如本领域技术人员将显而易见的是,任何的这些元件、部件和步骤都可以被其他元件、部件和步骤代替,或者一起删除。
构思:
本文至少披露了下列构思:
构思1:一种非易失性计算机可读存储介质,其存储有指令,当执行该指令时,使计算机处理器执行用于降低在至少两个设备之间的实时通信的呼叫建立时间的方法,所述方法包括:
在系统的第一内部服务器接收来自呼叫者的第一通信,其中所述的第一通信是包含发起与被呼叫者连接的尝试的推送请求;
经由所述第一内部服务器向所述被呼叫者发送推送通知,其中所述的第一内部服务器具有至少两个接口,其中所述至少两个接口中的每一个都包含用户数据报协议(UDP)端口,其中所述发送包括:
通过所述第一内部服务器将所述被呼叫者能够连接到的所述至少两个接口的外部UDP(IP,端口)对嵌入到所述推送通知中。
构思2:构思1所述的非易失性计算机可读存储介质,还包括指令用于:
从所述系统的第二内部服务器、所述呼叫者和所述被呼叫者中至少一个接收通信,其中所述接收通信包括:
接收打包信息,其中所述打包信息的各部分能够在所述第一内部服务器、所述第二内部服务器、所述呼叫者和所述被呼之间被连续地发送或接收。
构思3:构思1或2所述的非易失性计算机可读存储介质,还包括指令用于:
同时使用所述UDP端口和传输控制协议(TCP)端口来发起呼叫或接受呼叫,其中所述至少两个接口中的每一个都包含所述TCP端口;
利用所述UDP端口作为至少所述UDP端口和所述TCP端口的默认端口;以及
如果确定所述UDP端口有效,则终止所述TCP端口的使用。
构思4:构思1、2或3所述的非易失性计算机可读存储介质,还包括指令用于:
利用所述UDP端口,在与所述被呼叫者和所述呼叫者相关的网络类型之间无缝切换。
构思5:构思1、2、3或4所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,在所述呼叫者、第二内部服务器和所述被呼叫者之间中转一组通信,其中所述一组通信至少包含所述第一通信。
构思6:构思1、2、3、4或5所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,解译包含在作为所述推送请求的一部分发送的控制数据包内的信息。
构思7:构思1、2、3、4、5或6所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,解密在所述第一内部服务器接收到的控制数据包,所述控制数据包是所述推送请求的一部分。
构思8:构思1、2、3、4、5、6或7所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,访问封装在所述控制数据包的报头中的密码;以及
通过所述第一内部服务器,使用所述密码来解密所述控制数据包。
构思9:构思1、2、3、4、5、6、7或8所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,将与所述呼叫者相对应的第一签名和位于所述报头中的第二签名进行比较;以及
如果所述第一签名和所述第二签名匹配且所述解密成功,则通过所述第一内部服务器验证所述控制数据包。
构思10:构思1、2、3、4、5、6、7、8或9所述的非易失性计算机可读存储介质,还包括指令用于:
从所述系统的第二内部服务器接收动态配置信息,其中所述动态配置信息包括根据呼叫者信息和被呼叫者信息选定的要使用的协议,其中所述呼叫者信息和所述被呼叫者信息包含所述呼叫者和所述被呼叫者的设备时间和存储器时间,其中所述选定的协议包括最佳适配方法,其中所述选定的协议包括音频/视频协议。
构思11:一种用于降低在至少两个设备之间的实时通信的呼叫建立时间的系统,所述系统包括:
第一内部服务器,其与第二内部服务器耦接,所述第一内部服务器包括:
推送请求接收器,其被配置用于在系统的第一内部服务器接收来自呼叫者的第一通信,其中所述第一通信是推送请求和发起与被呼叫者连接的尝试;以及
推送通知发送器,其被配置用于经由所述第一内部服务器向所述被呼叫者发送推送通知,其中所述的第一内部服务器具有至少两个接口,其中所述至少两个接口中的每一个接口都包含用户数据报协议(UDP)端口,其中所述至少两个接口的外部UDP端口被嵌入到所述推送通知中,使得呼叫者能够连接到所述外部UDP端口。
构思12:构思11所述的系统,其中所述的第一内部服务器还包括:
通信接收器,其被配置用于从所述系统的所述第二内部服务器、所述呼叫者和所述被呼叫者中的至少一个接收通信,其中所述接收通信包括:
接收打包信息,其中所述打包信息的各部分能够在所述第一内部服务器、所述第二内部服务器、所述呼叫者、所述被呼叫者之间被连续地发送或接收。
构思13:构思11或12所述的系统,其中所述的第一内部服务器还包括:
安全模块,其与所述第一内部服务器耦接,并且包括控制数据包,所述控制数据包解译器被配置用于解译包含在作为所述推送请求的一部分发送的控制数据包内的信息。
构思14:构思11、12或13所述的系统,其中所述的安全模块还包括:
解密器,其被配置用于解密在所述第一内部服务器接收到的控制数据包,所述控制数据包是所述推送请求的一部分。
构思15:构思11、12、13或14所述的系统,其中所述的安全模块还包括:
密码访问器,其被配置用于访问封装在所述控制数据包的报头中的密码,其中所述解密器还被配置用于使用所述密码来解密所述控制数据包。
构思16:构思11、12、13、14或15所述的系统,其中所述安全模块还包括:
签名比较器,其被配置用于将与所述呼叫者相对应的第一签名和位于所述报头中的第二签名进行比较;以及
控制数据包验证器,其与所述签字比较器耦接,所述控制数据包验证器被配置用于如果所述第一签名与所述第二签名匹配并且所述解密成功,验证所述控制数据包。
构思17:构思11、12、13、14、15或16所述的系统,其中所述的第一内部服务器还包括:
动态配置信息接收器,其被配置用于接收来自所述第二内部服务器的动态配置信息,其中所述的动态配置信息包括基于呼叫者信息和被呼叫者信息选定的要使用的协议,其中所述呼叫者信息和被呼叫者信息包含所述呼叫者和所述被呼叫者的设备时间和存储器时间,其中所述选定的协议包括最佳适配方法,并且是音频/视频协议。
Claims (17)
1.一种非易失性计算机可读存储介质,其存储有指令,当执行该指令时,使得计算机处理器执行用于降低至少两个设备之间的实时通信的呼叫建立时间的方法,所述方法包括:
在系统的第一内部服务器接收来自呼叫者的第一通信,其中所述第一通信是包含发起与被呼叫者连接的尝试的推送请求;
经由所述第一内部服务器向所述被呼叫者发送推送通知,其中所述第一内部服务器具有至少两个接口,其中所述至少两个接口中的每一个接口都包含用户数据报协议(UDP)端口,其中所述发送包括:
通过所述第一内部服务器将所述被呼叫者能够连接到的所述至少两个接口的外部UDP(IP,端口)对嵌入到所述推送通知中。
2.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
从所述系统的第二内部服务器、所述呼叫者和所述被呼叫者中的至少一个接收通信,其中所述接收通信包括:
接收打包信息,其中所述打包信息的各部分能够在所述第一内部服务器、所述第二内部服务器、所述呼叫者和所述被呼之间被连续地发送或接收。
3.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
同时使用所述UDP端口和传输控制协议(TCP)端口来发起呼叫或接受呼叫,其中所述至少两个接口中的每一个都包含所述TCP端口;
利用所述UDP端口作为至少UDP端口和TCP端口的默认端口;以及
如果确定所述UDP端口有效,则终止所述TCP端口的使用。
4.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
利用所述UDP端口,在与所述被呼叫者和所述呼叫者相关的网络类型之间无缝切换。
5.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,在所述呼叫者、第二内部服务器和所述被呼叫者之间中转一组通信,其中所述一组通信至少包含所述第一通信。
6.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,解译包含在作为所述推送请求的一部分发送的控制数据包内的信息。
7.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,解密在所述第一内部服务器接收到的控制数据包,所述控制数据包是所述推送请求的一部分。
8.如权利要求7所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,访问封装在所述控制数据包的报头中的密码;以及
通过所述第一内部服务器,使用所述密码来解密所述控制数据包。
9.如权利要求8所述的非易失性计算机可读存储介质,还包括指令用于:
通过所述第一内部服务器,将与所述呼叫者相对应的第一签名和位于所述报头中的第二签名比较;以及
如果所述第一签名和所述第二签名匹配并解密成功,则通过所述第一内部服务器验证所述控制数据包。
10.如权利要求1所述的非易失性计算机可读存储介质,还包括指令用于:
接收来自所述系统的第二内部服务器的动态配置信息,其中所述动态配置信息包括基于呼叫者信息和被呼叫者信息选定的要使用的协议,其中所述呼叫者信息和被呼叫者信息包含所述呼叫者和所述被呼叫者的设备时间和存储器时间,其中所述选定的协议包括最佳适配方法,其中所述选定的协议包括音频/视频协议。
11.一种用于降低至少两个设备之间的实时通信中的呼叫建立时间的系统,所述系统包括:
第一内部服务器,其与第二内部服务器耦接,所述第一内部服务器包括:
推送请求接收器,其被配置用于在系统的第一内部服务器接收来自呼叫者的第一通信,其中所述第一通信是包含发起与被呼叫者连接的尝试的推送请求;以及
推送通知发送器,其被配置用于通过所述第一内部服务器向所述被呼叫者发送推送通知,其中所述第一内部服务器具有至少两个接口,其中所述至少两个接口中的每一个接口都包含用户数据报协议(UDP)端口,其中所述至少两个接口的外部UDP端口被嵌入到所述推送通知中,使得所述被呼叫者能够连接到所述外部UDP端口。
12.如权利要求11所述的系统,其中所述第一内部服务器还包括:
通信接收器,其被配置用于从所述系统的所述第二内部服务器、所述呼叫者和所述被呼叫者中的至少一个接收通信,其中所述通信包括:
打包信息,其中所述打包信息的各部分能够在所述第一内部服务器、所述第二内部服务器、所述呼叫者和所述被呼叫者之间被连续地发送或接收。
13.如权利要求11所述的系统,其中所述第一内部服务器还包括:
安全模块,其与所述第一内部服务器耦接,并且包含控制数据包,所述控制数据包解译器被配置用于解译包含在作为所述推送请求的一部分发送的控制数据包内的信息。
14.如权利要求13所述的系统,其中所述安全模块还包括:
解密器,其被配置用于解密在所述第一内部服务器接收到的控制数据包,所述控制数据包是所述推送请求的一部分。
15.如权利要求14所述的系统,其中所述安全模块还包括:
密码访问器,其被配置用于访问封装在所述控制数据包的报头中的密码;其中所述解密器还被配置用于使用所述密码解密所述控制数据包。
16.如权利要求15所述的系统,其中所述安全模块还包括:
签字比较器,其被配置用于将与所述呼叫者相对应的第一签名和位于所述报头中的第二签名比较;以及
控制数据包验证器,其与所述签字比较器耦接,如果所述第一签名与所述第二签名匹配且解密成功,所述控制数据包验证器被配置用于验证所述控制数据包。
17.如权利要求11所述的系统,其中所述第一内部服务器还包括:
动态配置信息接收器,其被配置用于接收来自所述第二内部服务器的动态配置信息,其中所述动态配置信息包括基于呼叫者信息和被呼叫者信息选定的要使用的协议,其中所述呼叫者信息和被呼叫者信息包含所述呼叫者和所述被呼叫者的设备时间和存储器时间,其中所述选定的协议包括最佳适配方法,并且是音频/视频协议。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261645249P | 2012-05-10 | 2012-05-10 | |
US61/645,249 | 2012-05-10 | ||
US13/834,152 | 2013-03-15 | ||
US13/834,152 US9319439B2 (en) | 2012-05-10 | 2013-03-15 | Secured wireless session initiate framework |
PCT/US2013/040586 WO2013170177A1 (en) | 2012-05-10 | 2013-05-10 | System and method for reducing a call establishment time |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104205991A true CN104205991A (zh) | 2014-12-10 |
Family
ID=49551311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380014058.5A Pending CN104205991A (zh) | 2012-05-10 | 2013-05-10 | 用于降低呼叫建立时间的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9319439B2 (zh) |
EP (1) | EP2848080A4 (zh) |
JP (1) | JP2015525018A (zh) |
KR (1) | KR20150009517A (zh) |
CN (1) | CN104205991A (zh) |
WO (1) | WO2013170177A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US9438638B2 (en) * | 2013-03-15 | 2016-09-06 | Silicon Graphics International Corp. | Method for transparently connecting augmented network socket operations |
WO2015059568A1 (en) * | 2013-10-21 | 2015-04-30 | IPalive AB | Finding and using servers for certain services |
JP6193185B2 (ja) * | 2014-07-09 | 2017-09-06 | 株式会社東芝 | 通信装置、端末装置およびプログラム |
US9288324B2 (en) * | 2014-08-18 | 2016-03-15 | Wells Fargo Bank, N.A. | Call center call-back push notifications |
US20160285924A1 (en) * | 2015-03-27 | 2016-09-29 | Soundover, Inc. | Communication channel creation using sound stream |
EP3363131B1 (en) | 2015-10-16 | 2021-08-18 | Hewlett-Packard Development Company, L.P. | Notification systems |
US20170163607A1 (en) * | 2015-12-03 | 2017-06-08 | Microsoft Technology Licensing, Llc | Establishing a Communication Event Using Secure Signalling |
US10193934B2 (en) | 2015-12-03 | 2019-01-29 | Microsoft Technology Licensing, Llc | Data compression for communications signalling |
US10362069B2 (en) | 2015-12-03 | 2019-07-23 | Microsoft Technology Licensing, Llc | Protocol fallback |
WO2017137076A1 (en) * | 2016-02-10 | 2017-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for transport protocol selection and setup of a connection between a client and a server |
US10587749B2 (en) | 2017-03-10 | 2020-03-10 | T-Mobile Usa, Inc. | Enhancement content asset presentation on user devices |
WO2020049593A1 (en) * | 2018-09-07 | 2020-03-12 | Sling Media Pvt Ltd. | Security architecture for video streaming |
US11159677B1 (en) * | 2019-10-31 | 2021-10-26 | Facebook, Inc. | Call status effects |
US11381680B1 (en) | 2019-10-31 | 2022-07-05 | Meta Platforms, Inc. | Call status effects |
US11652729B1 (en) * | 2022-07-19 | 2023-05-16 | Uab 360 It | Enabling efficient communications in a mesh network |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102090032A (zh) * | 2008-06-24 | 2011-06-08 | 微软公司 | 用于管理中继服务器之间的通信的技术 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070047523A1 (en) * | 2001-08-16 | 2007-03-01 | Roamware, Inc. | Method and system for call-setup triggered push content |
US7047561B1 (en) * | 2000-09-28 | 2006-05-16 | Nortel Networks Limited | Firewall for real-time internet applications |
US6694145B2 (en) * | 2001-12-27 | 2004-02-17 | Nokia Corporation | Synchronization of signaling messages and multimedia content loading |
EP1613024A1 (en) | 2004-06-29 | 2006-01-04 | Alcatel Alsthom Compagnie Generale D'electricite | Method and call server for establishing a bidirectional peer-to-peer communication link |
EP1804455A1 (en) | 2005-12-27 | 2007-07-04 | Siemens S.p.A. | Method and system to exchange videos in real-time taken by one's cellular handset during two-party voice calls |
US9030968B2 (en) * | 2006-06-16 | 2015-05-12 | Alcatel Lucent | System and method for processing a conference session through a communication channel |
KR101606142B1 (ko) | 2008-11-28 | 2016-03-25 | 삼성전자주식회사 | 음성패킷망에서 네트워크 주소 번역 통과를 지원하기 위한 장치 및 방법 |
US8171148B2 (en) | 2009-04-17 | 2012-05-01 | Sling Media, Inc. | Systems and methods for establishing connections between devices communicating over a network |
TWI415441B (zh) * | 2010-07-26 | 2013-11-11 | Quanta Comp Inc | 語音/影像通訊系統、終端及其方法 |
US8788881B2 (en) * | 2011-08-17 | 2014-07-22 | Lookout, Inc. | System and method for mobile device push communications |
GB2504461B (en) * | 2012-06-14 | 2014-12-03 | Microsoft Corp | Notification of communication events |
GB201210598D0 (en) * | 2012-06-14 | 2012-08-01 | Microsoft Corp | Notification of communication events |
US9258172B2 (en) * | 2012-10-24 | 2016-02-09 | Microsoft Technology Licensing, Llc | Calling an unready terminal |
TWI477108B (zh) * | 2013-02-22 | 2015-03-11 | Quanta Comp Inc | 視訊會議建立方法 |
US9967199B2 (en) * | 2013-12-09 | 2018-05-08 | Nicira, Inc. | Inspecting operations of a machine to detect elephant flows |
-
2013
- 2013-03-15 US US13/834,152 patent/US9319439B2/en active Active
- 2013-05-10 EP EP13787484.8A patent/EP2848080A4/en not_active Withdrawn
- 2013-05-10 KR KR1020147025252A patent/KR20150009517A/ko not_active Application Discontinuation
- 2013-05-10 CN CN201380014058.5A patent/CN104205991A/zh active Pending
- 2013-05-10 JP JP2015511766A patent/JP2015525018A/ja active Pending
- 2013-05-10 WO PCT/US2013/040586 patent/WO2013170177A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102090032A (zh) * | 2008-06-24 | 2011-06-08 | 微软公司 | 用于管理中继服务器之间的通信的技术 |
Also Published As
Publication number | Publication date |
---|---|
JP2015525018A (ja) | 2015-08-27 |
WO2013170177A1 (en) | 2013-11-14 |
US9319439B2 (en) | 2016-04-19 |
EP2848080A1 (en) | 2015-03-18 |
EP2848080A4 (en) | 2016-03-02 |
KR20150009517A (ko) | 2015-01-26 |
US20140108668A1 (en) | 2014-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104205991A (zh) | 用于降低呼叫建立时间的系统和方法 | |
US11122027B2 (en) | End-to-end M2M service layer sessions | |
CN109274634B (zh) | 多媒体通信方法及装置、存储介质 | |
KR101213285B1 (ko) | 이동통신 시스템에서 아이들모드 단말기의 세션 설정 프로토콜 데이터를 전송하는 방법 및 장치 | |
EP2533465B1 (en) | Method and terminal for access control of network service | |
EP3125594B1 (en) | Intelligent communication method and terminal | |
EP1746801A2 (en) | Transmission of packet data over a network with a security protocol | |
EP2632103A1 (en) | Ims multimedia communication method and system, terminal and ims core network | |
US20140205096A1 (en) | Un-ciphered network operation solution | |
US10411994B2 (en) | Multi-link convergence method, server, client, and system | |
CN109417548A (zh) | 封装媒体流量在基于数据报的传输层上的高效传输 | |
WO2020097453A1 (en) | System and method for first time automatic on-boarding of wi-fi access point | |
CN108924157B (zh) | 一种基于IPSec VPN的报文转发方法及装置 | |
JP2015037275A (ja) | 移動通信端末 | |
WO2013189398A2 (zh) | 应用数据推送方法、装置及系统 | |
WO2023046177A1 (zh) | 无人机数据加密传输方法、装置、设备及存储介质 | |
KR101144912B1 (ko) | 트래픽 기반 통신 시스템 및 방법 | |
WO2013052004A1 (en) | "a communication system for content distribution, a server device for controlling content distribution, a client device for requesting content, and corresponding methods" | |
JP4854035B2 (ja) | Ims/mmdシステムにおける複数のポリシー制御サーバを用いた呼接続方法及びシステム | |
KR101730404B1 (ko) | 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티 | |
WO2024108900A1 (zh) | 一种电子签名验证方法及装置 | |
KR20010011089A (ko) | 엠펙-2 디지털 방송망에서 인터넷 액세스가 가능한 방송/통신통합 시스템 및 연결 제어 방법 | |
WO2012147248A1 (ja) | 通話連動システム、宅内制御装置、通話連動方法 | |
JP5516271B2 (ja) | メディア・ゲートウェイ・システム、メディア・ゲートウェイ制御方法、メディア・ゲートウェイ制御装置、及び、メディア・ゲートウェイ制御プログラム | |
KR102087404B1 (ko) | 전자 장치에서 보안 패킷을 처리하기 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141210 |