WebRTC是采用web技术实现RTC(实时通信:比如音视频通话、白板、桌面共享、文件共享、文字聊天等)的简称,整个技术簇包含大量的各种技术规范。当RTC的各种功能内嵌到浏览器和提供JavaScript API接口后,使用web技术大大简化了RTC客户端的开发,将实时通信能力嵌入到各种基于web的业务中。
由于WebRTC是由google贡献的开源代码,也可以作为Native库,开发iOS/Android移动app或者mac/linux/windows的原生app。
WebRTC对信令并没有做多少强制性规范,因此,呼叫接续和SDP交换可能随着解决方案的不同而千变万化。而在电信IMS和VoIP领域,一般采用SIP信令,信令的传输方式有UDP/TCP/TLS/SCTP。为了融合WebRTC和传统的通信网,IETF通过RFC 7118定义了SIP信令的新传输方式:websocket和secure websocket。Websocket基于TCP承载而secure websocket基于TLS承载。
WebRTC的音视频虽然还是采用RTP封装后传输,但是为了安全性,实际上是采用了SRTP规范来对音视频加密,避免监听。由于WebRTC没有标准的信令过程,为了完成SRTP的加解密上下文协商,又引入DTLS规范来完成SRTP所需要的加解密key的交换。
WebRTC最初的设想是针对P2P模式,并没有集中点,这就必然面临在防火墙后的两个客户端互通的问题。这就引入了ICE/STUN等NAT/防火墙穿透协议,通过在公网架设ICE/STUN服务器完成NAT/防火墙的打洞功能,甚至在某些情况下还必须做媒体包的代理。而在企业通信中,一般采用集中模式而不是P2P模式,IETF针对穿透协议做了调整,提出ICE Lite模式,由企业通信服务器即做ICE server,同时也做媒体代理,简化部署。
综上所述,企业要利用WebRTC的功能和优势,特别是要和现有通信系统融合时,需要掌握大量的知识,开发和部署都较为困难。如果采用毅航WebRTC解决方案,将大大减少工作量,可以较快地实现和部署基于WebRTC的业务。
毅航WebRTC解决方案提供两个核心部件:WebRTC SBC和多端SDK(Web/iOS/Android)。
SBC作为服务端,完成WebRTC信令/媒体和传统通信网络的互通。
多端SDK提供各种API接口,简化WebRTC客户端的开发。
如下图:
企业webservice是企业业务系统,由客户提供。
企业通信系统或者呼叫中心是现有的传统模式。
毅航互联透传SBC-5000(简称vSBC)提供类似IMS网络A-SBC和I-SBC的功能,用于网络拓扑隐藏、NAT穿透、内外网隔离、VoIP安全和广域网组网等场景,也可以用于协议转换、SIP信令整形、视频会议、WebRTC接入等SBC场景。
毅航互联vSBC支持双机主备冗余功能(HA),主备切换不影响通话,现有通话不会中断,满足运营级要求。
毅航互联vSBC支持话单,可用于计费等运营场景。
毅航互联vSBC是纯软件实现,可部署在专用服务器、通用服务器、虚拟机(VMware、KVM、VirtualBox)和云平台(阿里云、腾讯云、百度云、华为云等)。
毅航互联vSBC具有高性能和大容量的特点。呼叫:500呼叫/秒,5000并发。注册:500事务/秒,5000并发。
毅航互联vSBC不执行媒体的编解码转换,并且采用内核包转发,具有极高的性能。
一些和webrtc相关的特点:
• 支持ICE Lite
• 支持DTLS和SRTP
•SIP over WebSocket
•Audio/Video codec透传
•SIP信令传输方式 –WebSocket/UDP/TCP/TLS, IPv4/IPv6
•RTPSRTP相互转换
•SIP注册代理/本地注册
提供较为简单的API接口,让客户很容易开发WebRTC客户端。
•Web SDK支持的浏览器:Chrome, Firefox, Safari, Edge
•iOS和Android Native SDK
毅航互联vSBC支持SIP over websocket、SRTP/DTLS和ICE,完全满足WebRTC的要求。同时,vSBC也支持传统的SIP/RTP,可以在WebRTC和传统VoIP网络间作相互换。
如下图,客户很容易在web中提供基于webrtc技术的界面,完成一键click呼叫,email嵌入呼叫,短信嵌入呼叫等功能。
传统座席电话不能够嵌入web或者采用插件嵌入,将座席界面分成两个不同的部分,不便于座席的单点登录等管理。采用WebRTC技术,将座席界面完全融合到web中,很容易实现单点登录,座席移机等功能,简化了座席的管理。
毅航互联vSBC支持基于SIP over websocket的座席代理功能,将WebRTC座席转换为标准SIP注册到原有系统中,并可以执行WebRTC和标准SIP间的信令和语音的相互转换,让原有呼叫中心系统不需要结构上的调整。如下图:
https://github.com/onsip/sip.js
以及基于此js库的实现。
https://github.com/versatica/JsSIP
以及基于此js库的实现。
https://www.doubango.org/sipml5/