用于获取和关联web实时通信交互流特性的方法和系统的制作方法

文档序号:7810461阅读:198来源:国知局
用于获取和关联web实时通信交互流特性的方法和系统的制作方法
【专利摘要】本发明涉及用于获取和关联WEB实时通信交互流特性的方法和系统。实施例包括获取和关联Web实时通信(WebRTC)交互流特性,以及相关的方法、系统和计算机可读介质。在一个实施例中,用于获取和关联WebRTC交互流的特性的方法包括:由在计算设备上执行的WebRTC客户端的获取代理接收用于建立WebRTC交互流的对等连接发起对话。所述方法还包括由所述获取代理基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性。所述方法还包括由关联代理从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性,以及存储所述WebRTC交互流的所述一个或者多个特性。所述方法还包括由所述关联代理关联一个或者多个所存储的特性,以及基于所述关联生成一个或者多个交互记录。
【专利说明】用于获取和关联WEB实时通信交互流特性的方法和系统

【技术领域】
[0001]本公开的技术通常涉及Web实时通信(WebRTC)交互会话。

【背景技术】
[0002]Web实时通信(WebRTC)正致力于形成用于将实时通信功能集成到web客户端(例如web浏览器)中以使得能够与其它web客户端进行直接交互的行业标准。通过标准标记标签(例如超文本标记语言(HTML5)的第5版本提供的标记标签)和客户端侧脚本应用程序编程接口(API)(例如JavaScript API), web开发者可以实现这种实时通信功能。更多关于WebRTC 的信息可以在“WebRTC:APIs and RTCWEB Protocols of the HTML5Real_TimeWeb,,,(Alan B.Johnston and Daniel C.Burnett, 2nd Edit1n (2013Digital Codex LLC))中找到,其全部内容在此通过弓I用被并入本文。
[0003]WebRTC提供了用于在点对点交互会话和多方交互会话中建立实时的视频、音频和/或数据流的内置能力。WebRTC标准正在由万维网联盟(W3C)和互联网工程任务组(IETF)联合开发。关于WebRTC标准的现状的信息例如可以在http: //www.w3c.0rg和http: //www/ietf.0rg 找到。
[0004]为了建立一个WebRTC交互流(例如,实时视频、音频和/或数据交换),两个WebRTC客户端可以从web应用服务器中检索启用了 WebRTC的web应用,例如HTML5/JavaScript web应用。这两个WebRTC客户端然后通过所述web应用参与用于发起对等连接的对话,WebRTC交互流在该对等连接上传递。所述对等连接发起对话包括:在这两个WebRTC客户端和/或帮助WebRTC交互流的建立的web应用服务器之间传输的任何数据。作为非限制性的例子,所述对等连接发起会话可以包括:WebRTC会话描述对象、HTTP头数据、证书、密钥和/或网络路由数据。所述对等连接发起对话可以包括传送定义该交互会话的特性的参数和就所述参数达成一致的媒体协商。
[0005]在一些实施例中,所述媒体协商可以通过WebRTC offer (提议)/answer (应答)交换来实现。WebRTC offer/answer交换通常通过安全网络连接(例如超文本安全传输协议(HTTPS)连接或者安全Web套接字(WebSockets)连接)进行。在WebRTC offer/answer交换中,发送端计算设备上的第一 WebRTC客户端向接收端计算设备上的第二 WebRTC客户端发送“offer”。所述offer包括:WebRTC会话描述对象,该WebRTC会话描述对象指定第一WebRTC客户端支持的且在WebRTC交互流中优选使用的媒体类型和功能。第二 WebRTC客户端然后用WebRTC会话描述对象“answer”进行响应,所述WebRTC会话描述对象“answer”指示:对于所述WebRTC交互流,所提议的媒体类型和功能中的哪些是第二WebRTC客户端支持的且可接受的。应当理解,对等连接发起对话可以利用除WebRTC offer/answer交换之外的机制来在WebRTC端点之间建立WebRTC交互流。
[0006]一旦完成了对等连接发起对话,所述WebRTC客户端可以彼此建立一个直接对等连接,并且可以开始传输实时通信的数据包或媒体的交换。所述WebRTC客户端之间的对等连接通常利用安全实时传输协议(SRTP)来传输实时媒体流,并且可以将各种其它协议用于实时数据的互换。
[0007]为了安全、法律、使用票据背书(usage bill back)和/或归档的目的,一些环境可能要求包括WebRTC交互流的所有通信交互的记录被保持。例如,企业制度可能规定记载在企业网络上传输的所有WebRTC交互流的记录应当被保存。但是,因为对等连接发起对话和对等连接本身可以在安全网络连接上发生或者可以被加密,能够提供对WebRTC交互流的识别力的对等连接发起对话和WebRTC交互流中的数据对该企业来说可能不透明。因此,该企业可能缺乏超越关于构成WebRTC交互流的网络流量的最基本的数据来生成WebRTC交互流的记录的能力。此外,由于典型的WebRTC交互流的拓扑结构,利用端点之间的中央网络元件来监控WebRTC交互流可能不实际或者不可取。作为非限制性的例子,WebRTC交互流可以从一个端点直接传递到另一端点,从而绕开中央网络元件。


【发明内容】

[0008]详细的说明书中公开的实施例提供了获取和关联Web实时通信(WebRTC)交互流特性。相关的方法、系统和计算机可读介质也被公开了。就这一点而言,在一个实施例中,提供了一种用于获取和关联WebRTC交互流的特性的方法。所述方法包括:由在计算设备上执行的WebRTC客户端的获取代理接收用于建立WebRTC交互流的对等连接发起对话。所述方法还包括:由所述获取代理基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性。所述方法还包括:由关联代理从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性。所述方法还包括:由关联代理存储WebRTC交互流的所述一个或者多个特性。所述方法还包括:由关联代理关联一个或者多个所存储的特性。所述方法还包括:由关联代理基于所述关联生成一个或者多个交互记录。
[0009]在另一个实施例中,提供了一种用于获取和关联WebRTC交互流的特性的系统。所述系统包括至少一个通信接口和与所述至少一个通信接口关联的并且包含获取代理的第一计算设备。所述获取代理被配置为接收用于建立WebRTC交互流的对等连接发起对话。所述获取代理还被配置为基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性。所述系统还包括与所述至少一个通信接口关联的并且包含关联代理的第二计算设备。所述关联代理被配置为从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性。所述关联代理还被配置为存储所述WebRTC交互流的所述一个或者多个特性。所述关联代理还被配置为关联一个或者多个所存储的特性。所述关联代理还被配置为基于所述关联生成一个或者多个交互记录。
[0010]在另一个实施例中,提供了一种非暂态计算机可读介质。所述非暂态计算机可读介质上存储有计算机可执行指令,以使得处理器执行一种方法,该方法包括由WebRTC客户端的获取代理接收用于建立WebRTC交互流的对等连接发起对话。由计算机可执行指令实现的所述方法还包括:由所述获取代理基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性。由计算机可执行指令实现的所述方法还包括:由关联代理从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性。由计算机可执行指令实现的所述方法还包括:由所述关联代理存储所述WebRTC交互流的所述一个或者多个特性。由计算机可执行指令实现的所述方法还包括:由所述关联代理关联一个或者多个所存储的特性。由计算机可执行指令实现的所述方法还包括:由所述关联代理基于所述关联生成一个或者多个交互记录。

【专利附图】

【附图说明】
[0011]包括在本说明书中并构成本说明书的一部分的附图示出了本公开的几个方面,并且与描述一起用于解释本公开的原理。
[0012]图1是示出包括Web实时通信(WebRTC)客户端的WebRTC交互流的示例性“三角形”拓扑结构的概念图,该WebRTC客户端包括通信地耦接到关联代理的获取代理;
[0013]图2是示出包括获取代理和关联代理的示例性系统内的示例性通信流的图;
[0014]图3是示出用于获取和关联WebRTC交互流特性的示例性操作的流程图;
[0015]图4是示出用于获取和关联WebRTC交互流的特性的更详细的示例性操作的流程图;以及
[0016]图5是可以包括图1中的获取代理和关联代理的示例性的基于处理器的系统的框图。

【具体实施方式】
[0017]现在参考附图描述本公开的几个实施例。词语“示例性”在这里用来表示“用作例子、实例或图示”。这里描述为“示例性”的任何实施例不必被解释为相对于其它实施例是优选的或者有优势。
[0018]详细的说明书中公开的实施例提供了获取和关联Web实时通信(WebRTC)交互流特性。相关的方法、系统和计算机可读介质也被公开了。就这一点而言,在一个实施例中,提供了一种用于获取和关联WebRTC交互流的特性的方法。所述方法包括:由在计算设备上执行的WebRTC客户端的获取代理接收用于建立WebRTC交互流的对等连接发起对话。所述方法还包括:由所述获取代理基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性。所述方法还包括:由关联代理从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性。所述方法还包括:由所述关联代理存储所述WebRTC交互流的所述一个或者多个特性。所述方法还包括:由所述关联代理关联一个或者多个所存储的特性。所述方法还包括:由所述关联代理基于所述关联生成一个或者多个交互记录。
[0019]就这一点而言,图1示出了这里公开的用于获取和关联WebRTC交互流特性的示例性WebRTC交互系统10。特别地,该示例性WebRTC交互系统10包括提供用于确定WebRTC交互流特性的点的获取代理12,否则WebRTC交互流特性可能对于网络元件不可访问。此夕卜,示例性WebRTC交互系统10包括通信地耦接到获取代理12的关联代理14,该关联代理14关联存储的WebRTC交互流特性以生成交互记录16。如这里使用的,“WebRTC交互会话”通常表示在两个或者更多个端点之间建立对等连接并开始WebRTC交互流的操作。这里公开的“WebRTC交互流”表示根据WebRTC标准和协议在两个或者更多个端点之间传递的交互媒体流和/或交互数据流。作为非限制性的例子,构成WebRTC交互流的交互媒体流可以包括实时音频流和/或实时视频流,或者其它实时媒体或数据流。构成WebRTC交互流的数据和/或媒体在这里被统称为“内容”。
[0020]在讨论获取代理12和关联代理14的细节之前,先描述图1中的WebRTC交互系统10中的WebRTC交互流的建立。在图1中,第一计算设备18运行第一 WebRTC客户端20,第二计算设备22运行第二 WebRTC客户端24。应当理解,计算设备18和22可以都位于同一个公共或专用网络内,或者可以位于分立的、通信地耦接的多个公共或专用网络内。图1中的WebRTC交互系统10的一些实施例可以规定,计算设备18和22中的每一个可以是任何具有网络通信能力的计算设备,作为非限制性的例子,例如智能手机、平板计算机、专用web装置、媒体服务器、台式计算机或服务器计算机、或者为特定目的构建的通信设备。为了将计算设备18和22连接到一个或者多个公共和/或专用网络,计算设备18和22分别包括通信接口 26和28。在一些实施例中,计算设备18和22的元件可以分布在一个以上的计算设备18和22上。
[0021]在这个例子中,作为非限制性的例子,WebRTC客户端20和24可以都是web浏览器应用、专用通信应用或者无界面应用(例如守护程序(daemon)/服务应用)。WebRTC客户端20包括脚本引擎30和WebRTC功能提供器32。类似地,WebRTC客户端24包括脚本引擎34和WebRTC功能提供器36。脚本引擎30和34使得用脚本语言(例如JavaScript)编写的客户端侧应用能够分别在WebRTC客户端20和24中被执行。脚本引擎30和34还提供了应用编程接口(API)以帮助进行与WebRTC客户端20和/或24内的其它功能提供器、计算设备18和/或22,和/或与其它web客户端、用户设备或web服务器的通信。WebRTC客户端20的WebRTC功能提供器32和WebRTC客户端24的WebRTC功能提供器36实现通过WebRTC实现实时交互流所需的协议、编解码器和API。如双向箭头38所示,脚本引擎30和WebRTC功能提供器32通过一组定义的API通信地耦接。同样地,如双向箭头40所示,脚本引擎34和WebRTC功能提供器36通信地耦接。
[0022]WebRTC应用服务器42被提供以向请求的WebRTC客户端20、24提供启用了 WebRTC的web应用(未示出)。在一些实施例中,WebRTC应用服务器42可以是单个服务器,但是在一些应用中,WebRTC应用服务器42可以包括互相通信地耦接的多个服务器。应当理解,WebRTC应用服务器42可以驻留在与计算设备18和/或22相同的公共或专用网络内,或者可以位于一个分立的、通信地耦接的公共或专用网络内。
[0023]图1还示出了由于在WebRTC客户端20和WebRTC客户端24之间建立WebRTC交互流44而导致的有特点的WebRTC “三角形”拓扑结构。为了建立WebRTC交互流44,WebRTC客户端20和WebRTC客户端24都从WebRTC应用服务器42下载同一个WebRTC web应用(未示出)。在一些实施例中,该WebRTC web应用包括HTML5/JavaScript web应用,该应用利用HTML5提供丰富的用户接口,并且利用JavaScript来处理用户输入和与WebRTC应用服务器42通信。
[0024]WebRTC客户端20和WebRTC客户端24然后分别与WebRTC应用服务器42建立安全web连接46和48,并且参与对等连接发起对话50。对等连接发起对话50可以包括在WebRTC客户端20、WebRTC客户端24和/或WebRTC应用服务器42之间传输的任何数据,以为WebRTC交互流44建立对等连接。作为非限制性的例子,对等连接发起对话50可以包括=WebRTC会话描述对象、HTTP头数据、证书、密钥和/或网络路由数据。在一些实施例中,对等连接发起对话50可以包括WebRTC offer/answer交换。对等连接发起对话50期间交换的数据可以用来确定用于期望的WebRTC交互流44的媒体类型和能力。一旦完成对等连接发起对话50,WebRTC交互流44可以通过在WebRTC客户端20和WebRTC客户端24之间的安全对等连接54被建立。因此,在图1中,WebRTC “三角形”的顶点是WebRTC应用服务器42、WebRTC客户端20和WebRTC客户端24。“三角形”的边由安全网络连接46和48以及安全对等连接54表示。
[0025]应当理解,一些实施例可以利用除图1中所示的WebRTC“三角形”拓扑结构之外的拓扑结构。作为非限制性例子,例如,一些实施例可以利用“梯形”拓扑结构,其中两个web服务器通过诸如会话发起协议(SIP)或Jingle的协议直接互相通信。还应当理解,替代于WebRTC客户端24,计算设备22可以包括SIP客户端设备、Jingle客户端设备或者通信地耦接到电话的公共交换电话网络(PSTN)网关设备。
[0026]在一些实施例中,安全web连接46和/或安全对等连接54可以穿过网络元件56。网络元件56可以是具有网络通信能力并且提供媒体传输和/或媒体处理功能的计算设备。作为非限制性的例子,网络元件56可以是TURN(Traversal Using Relay around NAT,使用中继穿透NAT)服务器。
[0027]在图1的例子中,对等连接发起对话50发生在安全web连接46上,而得到的WebRTC交互流44通过安全对等连接54传递。因此,在其网络上发生了 WebRTC交互流44的实体生成用于安全、法律、
[0028]使用单据背书和/或归档目的的WebRTC交互流44的记录是不实际的和不可能的。例如,如果WebRTC客户端20是企业网络的一部分,负责施行企业制度的企业网络的元件可能无法确定WebRTC交互流44中涉及的参与者、网站或服务器的身份。
[0029]就这一点而言,提供了图1中的获取代理12和关联代理14。如双向箭头57所示,获取代理12通信地耦接到WebRTC客户端20的脚本引擎30。在一些实施例中,获取代理12可以被实现为WebRTC客户端20的扩展或插件,可以被集成到WebRTC功能提供器32和/或脚本引擎30中,并且/或者可以是从WebRTC应用服务器42下载的WebRTC应用(未示出)的一部分。获取代理12被配置为在对等连接发起对话50在WebRTC服务器20内被接收后访问对等连接发起对话50的内容。作为非限制性例子,获取代理12也可以访问由传输对等连接发起对话50的包提供的数据,例如源互联网协议(IP)地址、目的IP地址、源端口号、目的端口号和/或使用的网络协议。因此,在WebRTC交互流44的建立期间,图1中的获取代理12接收在安全web连接46上传输的对等连接发起对话50。获取代理12可以基于对等连接发起对话50确定WebRTC交互流44的特性。在不安全的网络通讯的情形中,获取代理12可以为了确定WebRTC交互流44的特性,类似地分析对等连接发起对话50。作为非限制性例子,获取代理12可以确定WebRTC交互流44特性,所述特性包括但不限于如下特性:用户身份、网站身份、传输身份、服务器身份、传输地址、互联网协议(IP)地址、媒体流的变化的指示、媒体流的终止的指示和/或时间戳。
[0030]获取代理12将所确定的WebRTC交互流44的特性传输(由箭头58表示)到关联代理14。作为非限制性例子,在一些实施例中,获取代理12通过超文本传输协议(HTTP)、超文本安全传输协议(HTTPS)或者网络套接字(WebSockets)连接,通信地耦接到关联代理14。一些实施例可以规定,获取代理12可以通过在获取代理12和关联代理14之间建立的安全WebRTC数据流(未示出)传输WebRTC交互流特性。关联代理14可以位于计算设备18上,位于在同一个公共或者专用网络内与计算设备18不同的计算设备上,或者位于分立的、通信地耦接的公共或者专用网络中的计算设备上。
[0031]当接收到WebRTC交互流特性时,关联代理14存储所述WebRTC交互流特性,以在同时或以后用于生成交互记录16。关联代理14可以利用本领域技术人员所知道的任何合适的数据库或数据仓库来存储所述WebRTC交互流特性。关联代理14可以然后关联一个或者多个所存储的与WebRTC交互流和/或一个或者多个并发的或者先前的WebRTC交互流(未示出)相关的特性(未示出)。在一些实施例中,所述一个或者多个存储的特性可以是从多个源收集到的WebRTC交互流44的特性,而一些实施例可以规定所述一个或者多个存储的特性与其它并发的或者先前的WebRTC交互流相关。这样,关联代理14可以了解WebRTC交互流44的各方面,否则很难弄清这些方面,作为非限制性的例子,例如WebRTC交互流44中的一个或者多个参与者的身份、端点能力或者关于WebRTC交互流44中涉及的网站和服务器的信息。关联代理14基于所述关联的结果生成交互记录16。作为非限制性例子,在一些实施例中,交互记录16可以包括呼叫描述记录、呼叫详情记录或者交易记录。
[0032]一些实施例可以规定,关联代理14还从提供媒体传输和/或媒体处理功能的一个或者多个网络元件56接收媒体特性(由虚线箭头60指示)。在一些实施例中,所述媒体特性可以包括媒体传输特性,例如关于WebRTC交互流44的变化、WebRTC交互流44的路由或者WebRTC交互流44的终止的数据。根据这里公开的一些实施例,所述媒体特性可以包括媒体处理特性,例如与对WebRTC交互流44进行编码和/或代码转换相关的数据。所述媒体特性可以由关联代理14存储,并且与存储的WebRTC交互流特性和/或存储的媒体特性相关联以生成交互记录16。
[0033]为了说明图1中由获取代理12和关联代理14获取和关联WebRTC交互流特性期间的示例性通信流,提供了图2。在图2中,图1中的关联代理14、WebRTC客户端20、WebRTC应用服务器42和WebRTC客户端24都用垂直的虚线表示。WebRTC功能提供器32、脚本引擎30和WebRTC客户端20的获取代理12作为独立的元件示出,以更好地说明其间的通信流。应当理解,WebRTC客户端24可以包括脚本引擎34和WebRTC功能提供器36,但是为了清楚起见从这个例子中省略了它们。还应当理解,WebRTC客户端20和24都从WebRTC应用服务器42下载了启用了 WebRTC的web应用,例如HTML5/JavaScript WebRTC应用。
[0034]从图2中可见,WebRTC交互流的建立开始于对应于图1中的对等连接发起对话50的WebRTC offer/answer交换。因此,WebRTC客户端24以加密的格式(在这个例子中,通过HTTPS连接)向WebRTC应用服务器42发送会话描述对象。WebRTC会话描述对象是称为SDP对象A的会话描述协议(SDP)对象,并且由箭头62指示。SDP对象A表示WebRTC offer/answer交换中的“offer”。SDP对象A指定了 WebRTC客户端24支持和且在所述WebRTC交互流中优选使用的媒体类型和能力。如箭头64所示,WebRTC应用服务器42通过安全web连接将SDP对象A转发给WebRTC客户端20的获取代理12。
[0035]如上所述,获取代理12可以访问对等连接发起对话50的SDP对象A的内容,并且还可以访问对等连接发起对话50期间交换的其他数据,例如由传输对等连接发起对话50的包提供的HTTP头数据、证书、密钥和/或网络路由数据。按照这种方式,获取代理12可以确定将建立的WebRTC交互流的特性。作为非限制性例子,在一些实施例中,WebRTC交互流特性可以包括用户身份、网站身份、传输身份、服务器身份、传输地址、互联网协议(IP)地址、媒体流的变化的指示、媒体流的终止的指示和/或WebRTC交互流的时间戳。
[0036]如箭头66所示,获取代理12接下来将SDP对象A传递给脚本引擎30用于传统的处理。在脚本引擎30从获取代理12接收到SDP对象A之后,作为响应,脚本引擎30向获取代理12发送WebRTC会话描述对象(如箭头68所示),该WebRTC会话描述对象称为SDP对象B。在这个例子中,SDP对象B表不WebRTC offer/answer交换中的“answer”。在一些实施例中,获取代理12可以检查SDP对象B以进一步确定将建立的WebRTC交互流的特性。如箭头70所示,SDP对象B然后通过安全网络连接被发送到WebRTC应用服务器42。如箭头72所示,WebRTC应用服务器42继而将SDP对象B转发给WebRTC客户端24。
[0037]继续参考图2,WebRTC客户端20和24 (具体地,WebRTC功能提供器32)然后开始“冲孔(hole punching) ”以确定在WebRTC客户端20和24之间建立直接通信的最佳方式。图2中的双向箭头74示出了冲孔处理。冲孔是一种经常使用例如交互式连接建立(ICE)的协议的技术,其中两个web客户端通过不受限制的第三方服务器(未示出)建立连接,该第三方服务器揭示内部和外部地址信息以用于直接通信。如果冲孔成功,则WebRTC客户端24和WebRTC客户端20的WebRTC功能提供器32开始密钥协商以建立安全对等连接(由双向箭头76所示)。当建立起安全对等连接后,如双向箭头78所示,WebRTC客户端24和WebRTC客户端20的WebRTC功能提供器32开始交换安全WebRTC交互流。
[0038]WebRTC客户端20的获取代理12将所确定的WebRTC交互流的特性传送给关联代理14以用于存储。在一些实施例中,WebRTC交互流特性可以通过安全HTTP/HTTPS连接或Web套接字连接传送,而一些实施例可以规定,所述特性通过在获取代理12和关联代理14之间建立的WebRTC数据流传送。在后一情形中,如双向箭头80所示,获取代理12和关联代理14首先建立安全WebRTC数据流。如箭头82所示,关联代理14然后从获取代理12接收并存储WebRTC交互流的特性。
[0039]为了一般性地描述用于获取和关联WebRTC交互流特性的示例性操作,提供了图3。为清楚起见,图3参考图1中的示例性WebRTC交互系统10的元件。图3是示出图1中的获取代理12和关联代理14的示例性操作的流程图。在图3的这一例子中,操作开始于WebRTC客户端20的获取代理12接收到用于建立WebRTC交互流44的对等连接发起对话50 (方框84)。获取代理12然后基于对等连接发起对话50确定WebRTC交互流44的一个或者多个特性(方框86)。在一些实施例中,可以基于在对等连接发起对话50期间交换的WebRTC会话描述对象(未示出)的内容、和/或由传输对等连接发起对话50的包提供的HTTP头数据、证书、密钥和/或网络路由数据,来确定WebRTC交互流44的特性。作为非限制性例子,WebRTC交互流44的特性可以包括:用户身份、网址身份、传输身份、服务器身份、传输地址、互联网协议(IP)地址、媒体流的变化的指示、媒体流的终止的指示和/或WebRTC交互流44的时间戳。
[0040]关联代理14然后从获取代理12接收WebRTC交互流44的所述一个或者多个特性(方框88)。一些实施例可以规定,WebRTC交互流特性通过安全HTTP/HTTPS连接或Web套接字连接传送,或者通过在获取代理12和关联代理14之间建立的WebRTC数据流传送。关联代理14然后存储WebRTC交互流44的所述一个或者多个特性(方框90)。存储WebRTC交互流44的所述一个或者多个特性可以包括:在关联代理14能够访问的数据库或其他数据仓库中存储所述特性。
[0041]关联代理14可以然后关联一个或者多个所存储的与WebRTC交互流44和/或一个或者多个并发的或先前的WebRTC交互流(未示出)相关的特性(未示出)(方框92)。在一些实施例中,所述一个或者多个所存储的特性可以是从多个源收集的WebRTC交互流44的特性,而一些实施例可以规定所述一个或者多个所存储的特性与其它并发的或者先前的WebRTC交互流相关。按照这种方式,关联代理14可以了解WebRTC交互流44的参与者或其它方面。关联代理14基于所述关联生成一个或者多个交互记录16 (方框94)。作为非限制性例子,所述一个或者多个交互记录16可以包括呼叫描述记录、呼叫详情记录或者交易记录。在一些实施例中,必要时,所存储的WebRTC交互流特性可以随后被关联代理14删除。作为非限制性例子,所存储的WebRTC交互流特性可以在一段定义的时间间隔过去之后被擦除,或者当由关联代理14确定所存储的WebRTC交互流特性不再提供有用的识别力时而被删除。
[0042]图4更详细地提供了用于图1中的获取代理12和关联代理14以提供WebRTC交互流特性的获取和关联的示例性一般性处理。为了说明的目的,图4参考图1中的示例性WebRTC交互系统10的元件。操作开始于WebRTC客户端20的获取代理12接收到用于建立WebRTC交互流44的对等连接发起对话50 (方框96)。获取代理12基于对等连接发起对话50确定WebRTC交互流44的一个或者多个特性(方框98)。在一些实施例中,可以基于在对等连接发起对话50期间交换的WebRTC会话描述对象(未示出)的内容、和/或由传输对等连接发起对话50的包提供的HTTP头数据、证书、密钥和/或网络路由数据,来确定WebRTC交互流44的特性。作为非限制性例子,由获取代理12确定的WebRTC交互流44的特性可以包括=WebRTC交互流44的用户身份、网站身份、传输身份、服务器身份、传输地址、互联网协议(IP)地址、媒体流的变化的指示、媒体流的终止的指示和/或时间戳。
[0043]一些实施例可以规定,获取代理12和关联代理14被配置为通过安全HTTP/HTTPS连接或Web套接字连接传送,或者通过在获取代理12和关联代理14之间建立的WebRTC数据流传送。在后一情形中,WebRTC客户端20可以可选地在WebRTC客户端20和关联代理14之间建立WebRTC数据流(方框100)。关联代理14然后从获取代理12接收WebRTC交互流44的所述一个或者多个特性(方框102)。关联代理14存储WebRTC交互流44的所述一个或者多个特性(方框104)。根据这里公开的一些实施例,存储WebRTC交互流44的所述一个或者多个特性可以包括:在关联代理14能够访问的数据库或其他数据仓库中存储所述特性。
[0044]关联代理14也可以可选地从网络元件56接收WebRTC交互流44的一个或者多个媒体特性(方框106)。在一些实施例中,所述媒体特性可以包括媒体传输特性,例如关于WebRTC交互流44的变化、WebRTC交互流44的路由或者WebRTC交互流44的终止的数据。根据这里公开的一些实施例,所述媒体特性可以包括媒体处理特性,例如与对WebRTC交互流44进行编码和/或代码转换相关的数据。关联代理14可以然后存储WebRTC交互流44的所述一个或者多个媒体特性(方框108)。
[0045]关联代理14可以然后关联一个或者多个所存储的特性(和/或一个或者多个所存储的媒体特性,如果合适的话)(方框110)。通过关联所存储的特性,关联代理14可以产生对WebRTC交互流44的多个方面的了解,否则很难确定它。作为非限制性例子,这种了解可以包括:一个或者多个参与者的身份、对端点能力的了解或者关于WebRTC交互流44中涉及的网站和服务器的信息。基于所述关联,关联代理14可以生成一个或者多个交互记录16(方框112)。作为非限制性例子,在一些实施例中,所述一个或者多个记录16可以包括呼叫描述记录、呼叫详情记录或者交易记录。在一些实施例中,必要时,所存储的WebRTC交互流特性可以随后被关联代理14删除。作为非限制性例子,所存储的WebRTC交互流特性可以在一段定义的时间间隔过去之后被擦除,或者当由关联代理14确定所存储的WebRTC交互流特性不再提供有用的了解时而被删除。
[0046]图5提供了处理系统114的示意图,该处理系统为适于执行指令以执行这里描述的功能的示例性计算机系统116的示例性形式。在一些实施例中,处理系统114可以执行指令以执行图1中的获取代理12和关联代理14的功能。对于这一点来说,处理系统114可以包括计算机系统116,用于使得处理系统114执行任何一种或者多种这里讨论的方法的一组指令可以在该计算机系统内被执行。处理系统114可以被连接(作为非限制性例子,联网)到局域网(LAN)、内联网、外联网或互联网中的其他机器。处理系统114可以在客户端-服务器网络环境中运行,或者作为对等(或分布式)网络环境中的对等机器。尽管只示出了一个单独的处理系统114,术语“控制器”和“服务器”也应当被认为是包括单独或者联合执行一组(或多组)指令以执行任何一种或者多种这里讨论的方法的机器的任何集合。处理系统114可以是服务器、个人计算机、台式计算机、膝上计算机、个人数字助理(PDA)、计算平板、移动设备或者任何其他设备,并且可以表示服务器或者用户的计算机(作为非限制性例子)。
[0047]示例性计算机系统116包括处理设备或者处理器118、主存储器120(作为非限制性例子,只读存储器(ROM)、闪存、诸如同步DRAM (SDRAM)的动态随机存取存储器(DRAM)等)和静态存储器122 (作为非限制性例子,闪存、静态随机存取存储器(SRAM)等),它们可以通过总线124互相通信。替代地,处理设备118可以直接地或者通过一些其他连接手段被连接到主存储器120和/或静态存储器122。
[0048]处理设备118表示一个或者多个处理设备,例如微处理器、中央处理单元(CPU)等。更特别地,处理设备118可以是复杂指令集(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器、执行其它指令集的处理器或者执行指令集的组合的处理器。处理设备118被配置为执行指令126和/或缓存的指令128中的处理逻辑,以执行这里讨论的操作和步骤。
[0049]计算机系统116还可以包括网络接口设备130的形式的通信接口。它还可以包括或者不包括用于接收当执行指令126和128时传送给计算机系统116的输入和选择的输入装置132。它还可以包括或者不包括输出装置134,输出装置134包括但不限于显示器136。显示器136可以是视频显示单元(作为非限制性例子,液晶显示器(IXD)或者阴极射线管(CRT))、字母数字输入设备(作为非限制性例子,键盘)、光标控制设备(作为非限制性例子,鼠标)和/或触摸屏设备(作为非限制性例子,平板输入设备或者屏幕)。
[0050]计算机系统116可以包括或者不包括数据存储设备138,该数据存储设备包括用驱动器140将这里描述的功能存储在计算机可读介质142中,该计算机可读介质上存储了实现任何一种或者多种这里描述的方法或者功能的一组或者多组指令144 (例如,软件)。作为非限制性例子,所述功能可以包括处理系统114、参与者用户设备和/或许可服务器的方法和/或其它功能。在被计算机系统116执行期间,一组或者多组指令144也可以完全地或者至少部分地位于主存储器120内和/或处理设备118内。主存储器120和处理设备118也构成了机器可访问的存储介质。指令126、128和/或144可以进一步通过网络接口设备130被传输或者接收。网络146可以是内部网络或者互联网络。
[0051]尽管在示例性实施例中示出的计算机可读介质142是单个介质,术语“机器可访问的存储介质”应当被认为包括存储一个或者多个指令集144的单个介质或者多个介质(作为非限制性例子,集中式或者分布式数据库和/或关联的缓存和服务器)。还应当认为术语“机器可访问的存储介质”包括能够存储、编码或者携带由机器执行并使得机器执行任何一种或者多种这里公开的方法的一组指令的任何介质。因此,应当认为术语“机器可访问的存储介质”包括但不限于,固态存储器、光磁介质和载波信号。
[0052]这里公开的实施例可以以硬件和存储在硬件中的指令实现,并且,作为非限制性例子,可以位于随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM或者现有技术中已知的任何其它形式的计算机可读介质中。示例性存储介质被耦接到处理器,使得处理器能够从该存储介质读取信息并且向该存储介质写入信息。或者,存储介质可以被集成到处理器。处理器和存储介质可以位于专用集成电路(ASIC)中。该ASIC可以位于远程站中。或者,处理器和存储介质可以作为分立部件位于远程站、基站或服务器中。
[0053]还应当注意,在任何这里的示例性实施例中描述的操作步骤被描述以提供例子和讨论。除了所示出的顺序之外,所描述的操作可以以多种不同的顺序被执行。并且,单个操作步骤中描述的操作可以实际上在多个不同步骤中被执行。此外,示例性实施例中讨论的一个或者多个操作步骤可以被组合。应当理解,对于本领域技术人员来说,流程图中示出的操作步骤显然可以有多种修改形式。本领域技术人员还应当理解,可以用各种不同技术中的任何一种来表示信息和信号。作为非限制性例子,上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、粒子的磁场、粒子的光场或者它们的任意组合来表示。
[0054]本公开的上述描述是用来使得本领域技术人员能够利用本公开。对于本领域技术人员来说本公开显然有各种修改形式,并且在不偏离本公开的原理或者范围的情况下,可以将这里定义的一般原理应用到其他变型中。因此,本公开不应限于这里描述的例子和设计,而是与符合这里公开的原理和新特征的最大范围一致。
【权利要求】
1.一种用于获取和关联Web实时通信(WebRTC)交互流的特性的方法,包括: 由在计算设备上执行的WebRTC客户端的获取代理接收用于建立WebRTC交互流的对等连接发起对话; 由所述获取代理基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性; 由关联代理从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性; 由所述关联代理存储所述WebRTC交互流的所述一个或者多个特性; 由所述关联代理关联一个或者多个所存储的特性;以及 由所述关联代理基于所述关联生成一个或者多个交互记录。
2.根据权利要求1所述的方法,其中所述WebRTC交互流的所述一个或者多个特性包括用户身份、网站身份、传输身份、服务器身份、传输地址、互联网协议(IP)地址、媒体流的变化的指示、媒体流的终止的指示或者时间戳或者它们的组合。
3.根据权利要求1所述的方法,还包括: 由关联代理从网络元件接收所述WebRTC交互流的一个或者多个媒体特性;以及 存储所述一个或者多个媒体特性; 其中所述关联包括关联一个或者多个所存储的媒体特性。
4.根据权利要求3所述的方法,其中所述一个或者多个媒体特性包括一个或者多个媒体传输特性或者一个或者多个媒体处理特性、或者它们的组合。
5.根据权利要求1所述的方法,其中接收所述WebRTC交互流的所述一个或者多个特性包括: 在所述获取代理和所述关联代理之间建立WebRTC数据流;以及由所述关联代理通过所述WebRTC数据流接收所述WebRTC交互流的所述一个或者多个特性。
6.根据权利要求1所述的方法,其中接收所述WebRTC交互流的所述一个或者多个特性包括:通过超文本传输协议(HTTP)、超文本安全传输协议(HTTPS)或者Web套接字(WebSockets)或者它们的组合来接收所述一个或者多个特性。
7.一种用于获取和关联Web实时通信(WebRTC)交互流的特性的系统,包括: 至少一个通信接口; 与所述至少一个通信接口关联的第一计算设备,所述第一计算设备包括获取代理,所述获取代理被配置为: 接收用于建立WebRTC交互流的对等连接发起对话;以及基于所述对等连接发起对话确定所述WebRTC交互流的一个或者多个特性;以及与所述至少一个通信接口关联的第二计算设备,所述第二计算设备包括关联代理,所述关联代理被配置为: 从所述获取代理接收所述WebRTC交互流的所述一个或者多个特性; 存储所述WebRTC交互流的所述一个或者多个特性; 关联一个或者多个所存储的特性;以及 基于所述关联生成一个或者多个交互记录。
8.根据权利要求7所述的系统,其中所述获取代理被配置为确定用户身份、网站身份、传输身份、服务器身份、传输地址、互联网协议(IP)地址、媒体流的变化的指示、媒体流的终止的指示或者WebRTC交互流的时间戳或者它们的组合。
9.根据权利要求7所述的系统,其中所述关联代理还被配置为: 从网络元件接收所述WebRTC交互流的一个或者多个媒体特性; 存储所述一个或者多个媒体特性;以及 关联一个或者多个所存储的媒体特性。
10.根据权利要求7所述的系统,其中所述获取代理还被配置为在所述获取代理和所述关联代理之间建立WebRTC数据流;并且 其中所述关联代理还被配置为通过所述WebRTC数据流接收所述WebRTC交互流的所述一个或者多个特性。
【文档编号】H04L29/08GK104348710SQ201410373098
【公开日】2015年2月11日 申请日期:2014年7月31日 优先权日:2013年7月31日
【发明者】H·S·瓦克斯曼, J·H·约亚库姆 申请人:阿瓦亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1