基于WebRTC、Jingle之融合通信分析与实现

国学论文计算机论文

基于WebRTC、Jingle之融合通信分析与实现

超级医生围观:℉更新时间:12-18 11:15

基于WebRTC、Jingle之融合通信分析与实现

第一章 绪论

1.1 课题背景及意义

2021 年 5 月 18 日,谷歌宣布与总部位于 San Francisco 的挪威公司 Global IP Solutions(GIPS)达成了收购协议,至此,谷歌获得 WebRTC 技术。GIPS 公司的主要技术是 Voice和 Video IP 技术。经过一年多时间,在 2021 年,谷歌把 WebRTC 按照 BSD 协议的形式开源了,同年 W3C 启动 WebRTC 计划,使 WebRTC 成为 HTML5 标准的一部分[1]。WebRTC 的全称是网页实时通讯(Web Real Time Communication),它无需插件,就可以实现浏览器之间的交流功能,这意味着终端用户无需安装任何东西,就能在浏览器里面进行实时地语音和视频通信[2,3]。但是 WebRTC 的功能绝不仅仅是支持电话会议,虽然 WebRTC 可以用于日常通话,但它还允许开发人员轻松嵌入实时地音频和视频,而且 WebRTC 还有文件共享的功能。对于那些依赖于实时通讯功能的开发商而言,有了 WebRTC,他们的产品正式投放到市场上的时间将会被大大缩短,而且开发成本也会降低。比如,开发人员加一个 VoIP 客户端到自己的应用程序里就像 HTML5 增加一个拖拽功能;一样简易。目前,在 PC 端上,国外厂商中支持 WebRTC 技术的浏览器有谷歌 Chrome 浏览器[4],火狐 Firefox,Opera 浏览器,而国内厂商中有傲游浏览器。而在移动设备端,2021 年爱立信推出了全球首款兼容 WebRTC 的浏览器 Bowser,Opera 在 2021 年推出了支持WebRTC 的 Android 版浏览器。XMPP 协议是 IM 协议四种协议中之一[5],和 SIP 协议一起作为最常使用的即时消息协议之一。XMPP 协议具有广泛的使用场景,由于其具有扩展性好,开放性,弹性佳等特点,使得它具有很好的扩展应用,其中典型的扩展应用是支持 P2P,支持音视频会话的扩展。而 ingle 就是这样的一种扩展协议,在 XMPP 基础上 ingle 良好的支持音视频和 P2P 等特点,对于 XMPP 的音视频会话带来了极大的便利,也会 XMPP 协议的未来的发展奠定了良好的基础。对于 XMPP 来说,目前支持 XMPP 协议的客户端有 GoogleTal,网易泡泡,Psi,Spar 等。

.

1.2 研究现状

WebRTC 随着谷歌的开放政策,目前在国内外发展迅猛,在浏览器上面的支持性来看,谷歌的 Chrome 浏览器,火狐 Firefox 浏览器,Opera 浏览器已经开始支持 WebRTC了,而国内浏览器厂商傲游云浏览器也开始支持,在移动端,安卓版的 Opera 的手机浏览器也已经支持 WebRTC,而爱立信专门推出了全球首个可在移动设备中使用的、兼容WebRTC 技术的浏览器,名为Bowser;。目前国外的研究还大部分是在浏览器厂商对这项新的技术的支持性方面,Dialogic公司所实施的2021WebRTC 影响调查;中显示,90%电信专家预计 WebRTC 在 5 年内普及。在语音视频方面,目前国外比较知名的是 Sype,国内也有很多即时通讯工具支持视频通话,如腾讯的 QQ,移动端的抖音,易信等。WebRTC 研究方面,目前还是以国外的研究为主,国外在 WebRTC 上首先是表现在各大浏览器厂商对该项技术的支持方面,其次是对于 WebRTC 技术框架的完善和改进,以谷歌为首的对 WebRTC 不断进行完善改进,而国内方面,目前除了也是一些浏览器厂商的支持外,也有一部分在研究 WebRTC 里面相应的技术,如语音模块的回声消除等,对于 WebRTC 网络与其他网络的融合方面,目前有一部分在研究与 IMS 网络的融合,而基于 PSTN 以及 ingle 网络等其他网络的融合相对来说还比较少。ingle 协议作为 XMPP 协议的扩展协议,拥有 XMPP 协议的众多优点,即时通信协议中主流的是 SIP 和 XMPP,与同样支持语音视频的 SIP 相比,具有更强大的扩展性和灵活性,主要是支持语音视频,作为开源协议。

.

第二章 相关技术及原理分析

2.1 WebRTC

WebRTC 英文全称是 Web Real-Time Communication,中文是网页实时通信的缩写,它能够支持网页浏览器进行实时语音通话,或者是支持视频通话。在 2021 年 6 月 1 日开始进行开源,这项技术最终在谷歌、Mozilla 基金会、Opera 的支持下成为了标准,万维网联盟的 W3C 强烈推荐标准。WebRTC 这项技术是一种在浏览器内部所进行的实时语音和视频通信的技术,它是谷歌在 2021 年的时候,通过收购 Global IP Solutions 公司来所获得的一项技术。这项技术是基于 WHATWG 协议,它是为了通过浏览器的手段来提供简易的 avaScript,这样就可以达到实时语音视频通讯的一项技术。在 2021 年时,谷歌通过在 BSD 许可协议下,向所有开发人员开放了这个 WebRTC 架构的源代码。

2.2 ingle 与 XMPP

XMPP 是 Extensible Messaging and Presence Protocol 的简称,中文为可扩展通讯和表示协议。前身是 abber 协议,它是一种以 XML 为基础的开放式实时通信协议。与IMPP、PRIM、SIMPLE 合称为四大 IM 协议,而 XMPP 作为其中之一是最灵活的。ingle 协议是 XMPP 的扩展,它添加了 P2P 会话控制,以实现如同 VOIP 或者视频会议的多媒体交互,ingle 是由 Google 以及 XMPP 标准基金会设计。其多媒体流被设计用于 RTP,若需要,可由 NAT 穿透辅助以使用 ICE(交互式连接)。在 XMPP 中一共定义了三种角色,客户端,服务器和网关。如图 2-3 的 XMPP 网络架构图所示,XMPP 客户端一般是通过 TCP 与服务器进行直接连接,XMPP 服务器是主要负责管理同其他个体的会话连接,大多数 XMPP 服务器是允许存储部分客户端的信息的,比如联系人列表。而网关的主要功能是连通 XMPP 网络同其他非 XMPP 网络的纽带,负责 XMPP 协议同外部其他非 XMPP 协议的系统进行相互转换,基于网关的通信是在服务器与网关之间,以及网关与其他外部系统之间发生的。

.

第三章 融合通信研究与设计......25

3.1 系统总体设计方案研究 ......... 25

3.1.1 两种方案研究.......... 25

3.1.2 总体方案设计.......... 26

3.2 客户端信令现实机研究 ......... 29

3.3 融合网关设计方案 ....... 32

3.4 协议对比分析 .......... 36

3.5 信令交互设计 .......... 37

3.6 本章小结 ........ 39

第四章 融合网关实现及关键技术........40

4.1 信令网关 ........ 40

4.2 媒体网关 ........ 47

4.2.1 RTP 模块实现........... 47

4.2.2 视频模块实现.......... 53

4.3 会话管理 ........ 58

4.4 本章小结 ........ 59

第五章 融合通信测试及分析......60

5.1 测试环境 ........ 60

5.2 功能测试 ........ 61

5.3 性能测试......... 63

5.4 本章小结 ........ 66

第五章 融合通信测试及分析

通过前面两章对 WebRTC 和 ingle 网络的融合网关的详细设计和实现,已经对融合网关中的信令网关和媒体网关的信令转换模块,会话管理,音视频模块,以及相应的WebRTC 接口和 ingle 接口等进行了设计和实现。因此本章主要是针对融合网关的方案进行测试,以检验方案的可行性,正确性和合理性。在本章测试环节中,将分成两个部分进行测试,一个是功能测试,主要验证本融合网关设计的正确性与否,用以检验是否能够互通。另一部分是性能测试,性能测试主要是验证融合网关方案的丢包情况,并对其作出分析。本文 WebRTC 客户端是部署在普通 PC 机上,WebRTC 客户端目前支持性最好的是谷歌 Chrome 浏览器,因此本文 WebRTC 客户端是基于 Chrome 浏览器的,本文使用SimpleWebRTC 的 Demo,这个 Demo 使用 WebSocet 作为信令协议。本文在 Demo 基础上进行修改,在参考 Sipml5 基础上,满足支持视频传输。ingle 客户端同样部署在普通 PC 机上,ingle 客户端本文在 smacs-jingle 和minijingle 开源库基础上实现个简易 demo 来做测试。

..

结论

随着 WebRTC 技术的发展,以及 XMPP 开源网络的发展,ingle 作为其 XMPP 扩展协议,在 P2P,音视频支持等方面表现出了良好的特性。在研究 WebRTC 网络与 ingle网络的基础上,分析了 WebRTC 网络和 ingle 网络信令交互特点,底层编解码支持,NAT 穿透支持等。在此基础上,本文针对两者网络的不同特点,按照标准研究了两者之间的相同点和不同点,通过设计融合网关来解决两者网络在视频方面的互通问题。WebRTC 网络在视频支持上,以谷歌为首的是默认支持 VP8 格式,而 ingle 虽然标准上有好几种格式支持,但目前以 H.264 为主。而音频方面,两者均可支持 G711 音频格式,因此在音频上本文暂没考虑。信令方面,ingle 网络音视频会话建立采用 ingle 协议,而 WebRTC 的实现则丰富多样,本文正是基于这样的应用背景下,研究了融合网关的实现,并针对融合网关进行设计和实现。通过信令交互的设计转换,以及会话建立,视频转换的支持,使得 WebRT 网络和ingle 网络具备互通的可能性。在此基础上实现了信令交互转换,RTP 处理,H.264 和VP8 底层转换三大核心模块。媒体转换部分实现了通过研究现有的技术实现以及在目前的技术基础上,利用现有的 ffmpeg,libvpx 等相应成熟稳重的开源库,研究实现了 RTP 的对 H.264 和 VP8 的解封装,H.264 和 VP8 的编解码转换的过程。

........

参考文献(略)

标题:基于WebRTC、Jingle之融合通信分析与实现

链接:http://m.zhaichaow.cn/lunwen/jisuanji/429085.html