在行业有些混乱的今天,WebRTC已经成为除了传统的Voice over IP 和 Video over IP (VoIP)之外的又一个可行的基于IP的通信解决方案。凭借雄厚的产业后盾,WebRTC正在被大力推广。这些技术是互补还是竞争?他们能够共存吗?他们如何共存并惠及最终用户?他们各自的用处是什么?何处有重叠?
WebRTC与VoIP两者都旨在提升用户体验,无论消费者在任何地方使用任何设备通过任何网络都可以实现无缝连接。不过,虽然VoIP在过去十年中已经以不同形式被部署,如在DSL/cable调制解调器上实现VoIP,在Wi-Fi/3G ( VoWiFi/3G )上实现语音,在LTE(VoLTE)实现语音和Rich Communication Suite (RCS),WebRTC则主要是集中在基于浏览器的通信上。
VoIP
一些VoIP的基本要素包括信令、媒体引擎、会话描述协议(SDP)、实时传输协议/实时控制协议(RTP/RTCP)、网络地址转换(NAT)、安全协议、服务质量(QoS),以及其他电话组件。VoIP实质上是封装了所有这一切,再加上用户界面,包括拨号、通讯录/联系人列表和呼叫历史记录(未接/已接/已拨电话),以提供一个完整的VoIP客户端。
信令主要用于建立,维护和终止两个或多个用户之间的呼叫。一些流行的信令协议,包括会话发起协议(SIP)、H.323和可扩展消息处理现场协议(XMPP)。SIP是应用最广泛的信令协议。它可以处理所有的呼叫管理和辅助功能,如呼叫等待,呼叫转移,和其他呼叫功能。SIP还支持多路会议。在与媒体服务器配合使用,它可以支持多个视频和语音信道的混合。SIP服务器,在另一方面,帮助定位和注册用户的位置,并提供发送/接收消息的能力。
一个媒体引擎包括两个主要组件:一个语音引擎和一个视频引擎。语音引擎包括语音预处理、语音编解码、语音活动检测(VAD)和舒适噪声产生(CNG)。视频引擎由一个视频解码器、音频/视频唇音同步、视频抖动缓冲器和其他视频设备。
作为媒体引擎的一部分,语音预处理包括声学回声消除(AEC),其从音频信道中消除声学回声;噪声消除(NC),其消除环境噪声;以及自动增益控制(AGC),其维持一致的音频电平。
此外,还有一个广泛的窄带语音编解码器(8千赫采样),支持低至4.75千比特/秒(AMR-NB编解码器)到64千比特/秒(G.711编解码器)。VoIP现已过渡到HD(16千赫采样),如AMR-WB,以求更卓越的语音质量。最广泛使用的视频编解码器为H.264 AVC。某些旧系统仍然使用的H.263,有的企业使用H.264 SVC。他们最终都将迁移到H.265,它将降低50%的比特率,同时保持与H.264一致的质量。
VoIP支持传输层安全(TLS),用于信令和SRTP。TLS提供在互联网上的通信安全。它支持两个通信应用程序之间的私密性和数据完整性。TLS也被用于提供SIP信令验证和加密。 SRTP提供机密性、消息认证、RTP流量的重播保护,并控制RTP和RTCP的流量。
最后,VoIP支持互动式连接建立(ICE)协议与STUN 和TURN,使媒体流通过企业防火墙和NAT设备建立在不同类型网络之间的连接。
WebRTC
WebRTC是一个实时的语音和视频通信引擎,主要是使用在浏览器上。那么它与VoIP有什么不同?
WebRTC媒体引擎与上面提到的传统VoIP媒体引擎有很多相似之处,可以与很多协议集成使用,如ICE / STUN / TURN、安全协议、RTP / RTCP、SDP,以及音频/相机/显示器等安全点对点视频通信接口。它还集成了Opus全频段语音编解码器和VP8视频编解码器。
WebRTC是一个压缩的软件包,为Web开发人员提供自定义的应用程序编程接口(APIs),使Web开发人员更容易在他们基于Web的应用中实现VoIP。它不包括任何信令协议,它将开发/采购/集成信令的选择权留给了开发人员。通过集成某信令协议到WebRTC中,可以在浏览器上创建一个完整的VoIP软客户端。
除了媒体引擎,WebRTC提供了一个数据信道。数据传输通常被认为是非实时的、具有缓冲和多次重新传输功能的、在TCP上的传输。然而,WebRTC数据通道在浏览器之间实现了低延迟点到点用户数据包协议(UDP)连接,这对于互动式多方游戏、文件共享、屏幕共享等应用是非常理想的。WebRTC也允许并行数据传输和视频会议等操作。对于安全的UDP数据连接它支持数据包传输层安全(DTLS)。
要设置WebRTC端到端会话,WebRTC提供了简单的API,例如getUserMedia, RTCPeerConnection,RTCDataChannel和RTCSessionDescription,分别得到本地音频和视频接口,建立端到端之间的连接,连接音频/视频流和任意数据,交换会话描述。但是,如何才能让传统
VoIP提供商实现WebRTC
只需在服务器端进行一个很小的改变就可以实现WebRTC。它是基于浏览器的,所以,它除了传统的SIP服务器外还需要一个Web服务器。今天大多数传统VoIP生态系统支持G.7xx/AMR语音编解码器和H.264视频编解码器,而WebRTC支持G.711/Opus语音编解码器和VP8和/或H.264编解码器(还没有最后定下来,仍在讨论)。一些转码则可能需要,这会增加延迟时间和成本。工作正在顺利进行,以解决互操作性问题。
总结
WebRTC是VoIP在浏览器世界里的延伸。它可以重复使用现有的VoIP基础设施。这对于VoIP来说是一个好消息,因为采用WebRTC的只会提高整体VoIP的价值。
此外,对于低成本的基于浏览器的联络中心来说WebRTC是非常理想的应用。VoIP可以嵌入到运营商推广的VoLTE应用之中,因此,WebRTC和VoIP,它们可以支持范围广泛的消费者和企业应用。
正如任何技术的早期都有改进的余地一样,一个显而易见的解决方案似乎是整合具有互补性的WebRTC和VoIP技术,充分利用优化的音频和视频接口,以及已经到位的VoIP基础设施。不断地将WebRTC整合到各种形式的VoIP之中的努力,将使我们在不久的将来看到更多的新应用。