首页 > 专题 > WebRTC重新定义通信 > 运营商借WebRTC技术 推进IMS视频业务发展

运营商借WebRTC技术 推进IMS视频业务发展
2012-08-13 16:16:00   评论:0 点击:

   Web的实时通信技术或简称WebRTC(Web Real Time Communication)是最近由Google推出的一项旨在支持网络浏览器进行实时语音对话或视频对话的软件架构。和传统的基于本地客户端或浏览器插件的多媒体通信方式不同,WebRTC通过将多媒体通信所必须的音视频处理(采集、编码、增强)、网络传输、会话控制等核心模块集成到浏览器内部,从而使第三方应用开发者仅需通过简单的JavaScript API调用即可获得实时的音视频通信能力。

  对于传统电信运营商而言,WebRTC技术既带来挑战,也意味着机遇。一方面,凭借浏览器的高市场占有率和庞大的用户量,WebRTC技术能够在很大程度上改变现有实时多媒体通信业务的生态环境和游戏规则,对运营商现有的以及未来将要在IMS网络中力推的多媒体实时通信业务产生冲击。另一方面,如果能够实现WebRTC技术与IMS的强强联合,也可以利用WebRTC作为WebApp所天生具有的规模推广、快速部署、维护成本低等优势,将其转化为推进IMS业务开展的重要动力,为IMS用户提供更加丰富的新应用,促使传统用户向IMS网络迁移,从而有效地将IMS能力转化为企业的商业价值。因此,WebRTC技术的的发展也受到运营商、爱立信、思科等设备制造厂商的关注。

WebRTC架构已获多方支持

  WebRTC软件架构由两套应用程序调用接口组成:Web API与Native API。

  Web API是WebRTC项目提供给第三方多媒体通信应用开发者的一套JavaScript实现的API。为了令WebRTC应用能够“一次开发,随处运行”,互联网标准化组织W3C已经开展了 WebRTC 1.0草案的制定工作,提供一些重要的API接口如Network Stream API与getUserMedia API。Native API是一组根据Web API定义的底层C++接口,二次开发者可以利用JavaScript对其进行封装供给浏览器调用,或者直接用其开发本地程序。因为Native API需要直接与底层的硬件及操作系统进行交互,所以在不同的系统环境,如Windows、Linux、Android中不尽相同。不同浏览器如Chrome、Firefox、Opera等,也会有不同的实现方式。

  从具体实现来看,WebRTC向浏览器加入了视频引擎、音频引擎、网络传输及会话控制等新功能模块。其中,音视频引擎模块提供了从音视频采集设备,如麦克风、摄像头,到网络侧音视频处理链的总体框架。为了避免专利纠纷,音视频编码都采用了开源的编码格式,如iLBC、iSAC、VP8等,同时提供相应的抖动缓冲及音视频增强等功能。在网络传输方面,WebRTC使用RTP/SPRT进行媒体流传输,使用ICE(Interactive Connectivity Establishment)技术进行媒体流的私网穿透。WebRTC客户端使用JSEP(Javascript Session Establishment Protocol)协议草案规范WebRTC通信双方应如何交换SDP信息,并进行媒体流协商和控制。JSEP的设计思路将媒体层的控制交由浏览器,而将信令层的控制交由Web应用开发者,从而使得信令状态机可与浏览器彻底分离,保持了协议的灵活性。目前,这些功能已经被集成到Google的Chrome浏览器中,其他浏览器如FireFox、Opera、IE10等也都宣称已经或将会支持WebRTC的主要功能。

WebRTC在IMS网络中的部署

  以下介绍一种如何在基于SIP的IMS网络架构中部署WebRTC端到端实时音视频通信应用的组网方案。出于复杂性的考虑,仅考虑了同类WebRTC客户端间的互通,而不涉及与其他SIP终端或PSTN电话间的互通问题。如图所示,WebRTC客户端是以JavaScript编写的,运行于Web浏览器中的Web应用,直接或通过私有网关连接至Internet网络。业务平台需要架设WebRTC代理服务器和STUN(Session Traversal Utilities for NAT)+TURN(Traversal Using Relays around NAT)服务器。SIP服务器则基于IMS核心网的原有配置,不做任何改动。图中的WebRTC客户端皆位于NAT或防火墙之后。在通信过程中,信令流与媒体流分两路进行传输。

1)WebRTC客户端

  WebRTC客户端是运行在浏览器中的Web应用程序,采用JavaScript脚本语言编写。其核心部分是一个SIP协议栈,用于发送、接收、解析SIP信令,以及维护SIP信令状态机。本方案中,WebRTC客户端作为WebSocket客户端通过WebSocket接口与WebSocket代理服务器相互连接。WebRTC客户端将SIP消息作为净载荷封装在WebSocket消息中进行传送。

2)WebSocket代理服务器

  WebSocket协议属于HTML5标准的一部分,是一种以HTML协议为传输层,用于实现浏览器间双向通信的协议。WebSocket协议兼容于现有HTTP 1.1协议,并通过Upgrade: websocket将协议升级为WebSocket协议。这样做可以充分利用HTTP协议现有的代理、过滤、认证等机制,从而大大降低了协议栈的开发成本。如图所示,通信双方通过WebSocket连接至WebSocket代理服务器。由于WebSocket连接是基于TCP的,因此不存在私网穿透问题。WebSocket代理服务器开启侦听端口,等待WebRTC客户端发起连接。当连接建立后,WebSocket代理服务器接收WebRTC客户端所发送的经过WebSocket封装的SIP消息,抽取出SIP消息后将SIP消息以UDP包形式发送给SIP服务器。SIP服务器将应答以UDP包形式返回给WebSocket代理服务器,WebSocket代理服务器会将SIP消息目的地址替换成实际的目的地址,再重新以WebSocket进行封装,然后发给消息接收方,从而实现客户端之间以及客户端与服务器端间的通信。

3)STUN+TURN服务器

  WebRTC的媒体流采用ICE技术进行私网穿透,此功能需要STUN或TURN服务器进行支持。图中给出的是使用TURN的情形,即两个WebRTC客户端皆位于对称NAT之后。此时媒体流必须通过TURN服务器进行中继才能够到达对方。

4)SIP服务器

  这里将IMS核心网简单抽象成为一台SIP服务器,实际上其是由CSCF、HSS等多个网元构成,并通过BAC网元与WebSocket服务器相连接。SIP服务器的主要功能是进行用户认证以及通话过程控制,但不负责媒体流的传输。通话双方必须事先在SIP服务器上注册,并周期性发送心跳包保持在线状态。

  目前,WebRTC仍处于其技术演进的早期阶段,相关标准文稿也在不断修订,在IMS网络中部署基于WebRTC的音视频实时通信应用的方式也存在许多不完善之处,如没有考虑视频会议等多方通话场景,没有考虑与现有SIP终端、PSTN电话,以及其他类型的WebRTC终端间的互通问题等。但相信随着相关标准和技术的不断完善,将WebRTC技术与IMS的结合将焕发更强大的生命,传统电信运营商如果能够把握未来互联网技术的发展方向,妥善利用WebRTC这一重要机遇,对于推进IMS业务开展、开拓新的业务领域将起到十分积极作用。

 

错误报告  分享到: