999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SIP協議的WebRTC信令研究與應用①

2018-09-17 08:50:00孫建偉
計算機系統應用 2018年9期
關鍵詞:融合

孫建偉,陳 立,2,王 衛

1(中國科學院 沈陽計算技術研究所,沈陽 110168)

2(中國科學院大學,北京 100049)

Web實時通信(WebRTC)[1]是一種構建在Web瀏覽器上的實時音視頻通信技術.WebRTC由Google收購 Global IP Solution 公司而獲得的一項技術,并在2011年將其開源.WebRTC提供了音視頻采集、網絡傳輸、音視頻編解碼、信號優化和處理等[2]一整套的音視頻通信解決方案.由于WebRTC強大的多媒體處理引擎,WebRTC 已經在 Chrome、Firefox、Opera、Android、iOS等瀏覽器和平臺上得到了支持.

會話初始協議(Session Initiation Protocol,SIP)是一個應用層的信令控制協議,是IMS的核心的、成熟的、已經得到廣泛應用的技術,用于創建、修改和釋放一個或多個參與者的會話.WebRTC提供的JSEP是一種僅維護信令狀態機的弱信令控制協議,在企業級融合通信應用中必須將WebRTC和實際的信令協議相結合.

本文介紹了WebRTC和SIP融合已有的兩種方案,分析了WebRTC和SIP互通需要解決的問題,提出了一種WebRTC的PeerConnection層和SIP協議在客戶端融合的方案,最后在多種客戶端實現了WebRTC和SIP融合的應用,并和其他方案對比得出了此方案的優缺點.

1 相關技術簡介

1.1 SIP協議簡介

SIP是基于文本的、獨立于傳輸層的應用層IMS核心協議.其用于建立,結束以及中斷多媒體會話[3].

1.2 WebRTC簡介

WebRTC語音引擎支持iSAC、iLBC、Opus 等多種編解碼器.音頻NetEQ算法包括抖動緩沖和丟包補償模塊以延遲減至最小并提高音頻質量[4].WebRTC視頻引擎包含采集、編解碼(VP9、VP8、可添加H264等編解碼器)、加解密、媒體文件、圖像處理與顯示、網絡傳輸與媒體流控制等技術[5].WebRTC提供JSEP這樣的弱信令目的就是為了讓WebRTC強大的多媒體處理能力可以和不同的實際的信令協議相結合,如 SIP、ROAP、XMPP、Jingle 等[6].

2 WebRTC 的 PeerConnection 層和 SIP 協議在客戶端融合方案的研究

從信令的角度來看,當下主要有兩種SIP和WebRTC互通方案[7]:一種是基于服務器開發 SIP/WebRTC 轉換網關.另一種是用 JavaScript 實現 SIP 協議,在此協議棧的基礎上構建WebRTC 應用.

2.1 基于服務器端的信令轉化網關實現WebRTC和IMS網絡互通

這種方案通過開發SIP/WebRTC轉化網關實現SIP信令和WebRTC信令的轉化,如webrtc2sip[8]就是這種方案的典型代表.基于服務器端的信令轉化網關實現WebRTC和IMS網絡互通架構圖如圖1所示.

2.2 基于JavaScript實現的SIP協議開發IMS客戶端

這種方案用JavaScript實現SIP協議并向Web應用開發者提供JavaScript API.開發者調用WebRTC JavaScript API開發出的 WebRTC 應用可以采用WebSocket傳輸SIP信令.開發者通過此類WebRTC應用直接注冊并登錄支持WebSocket[9]的SIP Server,與傳統 SIP終端進行通信.使用這種解決方案的開源SIP項目有Jssip和SipML5.

圖1 基于服務器端的信令轉化網關實現WebRTC和IMS網絡互通架構

2.3 WebRTC的PeerConnection層和SIP協議在客戶端融合方案

WebRTC C++ API(PeerConnection 層)是面向瀏覽器廠商的,使的瀏覽器廠商容易在此基礎上實現WebRTC標準的Web API.本文提出了一種WebRTC的PeerConnection層和SIP協議在客戶端實現融合互通的方案,可以適當避免上述兩種方案的缺陷.該方案主要通過內嵌于客戶端SIPRTC本地網關做WebRTC SDP和 SIP SDP的轉化及 SIP信令和 WebRTC PeerConnection API的映射.該方案基于 WebRTC PeerConnection API,但不局限于 C++ API,也包括編譯等手段產生的其他語言的PeerConnection 層API,相應的不同終端結合的SIP模塊會有所不同.WebRTC的PeerConnection層和SIP協議在客戶端的融合方案架構如圖2所示.

方案一需要在SIP服務器上開發為了兼容WebRTC信令的轉換網關,開發成本較高,服務器也會因信令的轉換產生一定的延遲.但是該方案會減輕客戶端的開發負擔.方案二需要瀏覽器支持WebRTC,雖然目前主流的瀏覽器都已支持WebRTC,但限于瀏覽器的 WebRTC JavaScript API尚處于草案階段,在此基礎上開發應用會有所不便.但這種開發方式的開發流程較為簡單,代碼可以實現跨平臺.這兩種案都需要服務器端傳輸通道支持WebSocket;且這兩種方案開發的都是Web應用,Web應用在性能上會低于原生應用.

本文提出的方案首先可以不必在服務器端做兼容WebRTC的開發,從而減小服務器的壓力和信令轉換造成延遲;其次不需要服務器傳輸通道支持WebSocket,從而減小服務器傳輸通道的限制;最后由于此時客戶端由本來的 Web App 一躍變成 Native App,也一定程度上提高了客戶端的性能.該方案一定程度上加大了客戶端的工作量,但對比方案一的工作量,該方案的工作量完全可以接受.

圖2 WebRTC 的 PeerConnection 層和 SIP 協議在客戶端的融合方案架構

3 WebRTC 的 PeerConnection 層和 SIP 協議在客戶端融合系統設計與實現

本方案中最重要的一個環節就是SIPRTC本地網關的設計,其功能包括 WebRTC SDP 和 SIP SDP 轉化和 SIP 信令和 WebRTC PeerConnection API映射.

3.1 WebRTC的PeerConnection層和SIP協議在客戶端融合方案的本地網關設計

WebRTC 使用 JSEP(JavaScript Session Establish Protocol)提供的弱信令完成媒體協商.JSEP提供的信令分為主叫方的Offer信令和被叫方的Answer信令,信令中的主要信息均符合SDP(Session Description Protocol)標準.WebRTC和SIP在媒體和信令的異同點對比如表1所示.

表1 WebRTC 和 SIP 媒體和信令的異同點對比表

本方案中客戶端通過SIPRTC本地網關做信令轉化和接口映射,WebRTC PeerConnection 和 SIP 協議的映射流程如圖3所示,其中Alice是主叫,Bob是被叫.WebRTC PeerConnection和SIP映射步驟如下:

(1)Alice 調用 PeerConnection 層 createoffer API,并通過SIPRTC本地網關轉化成SIP(INVITE)消息發送給Bob;

(2)Bob 接收 SIP 消息后,調用 PeerConnection 層setRemoteDescription、createAnswer API,并通過SIPRTC 本地網關轉化成 SIP(180 Ring、200 OK)消息發送給Alice;

(3)Alice 接收 SIP 消息,調用 PeerConnection 層setRemoteDescription API,并發送 SIP(ACK)消息給Bob,此時建立了p2p或者通過多媒體中轉服務器的多媒體會話;

(4)Alice調用 PeerConnection層removeRemoteStream API,并通過 SIPRTC 本地網關轉化成SIP(BYE)消息發送給Bob;

(5)Bob 接收 SIP 消息,調用 PeerConnection 層removeRemoteStream API,并發送 SIP(200 OK)消息給Alice,至此完成一次音視頻會話.

3.2 WebRTC的PeerConnection層和SIP協議在客戶端融合方案的應用實現

圖4為客戶端應用設計的架構,在完成SIPRTC本地網關后,業務邏輯只需調用SIP接口,從而便于業務邏輯的實現;MQTT用于文本聊天等功能的實現.

視各客戶端不同,WebRTC 的 PeerConnection 在不同平臺結合的SIP模塊稍有不同,具體來說Windows平臺選擇 pjsip[10],Android 平臺選擇 sipdroid,iOS 平臺選擇sofiasip;相應的WebRTC的PeerConnection API不局限于某種語言的API,包括編譯手段產生的C++ API、Java API、OC API.

4 WebRTC 的 PeerConnection 層和 SIP 協議在客戶端融合方案的測試及對比

本實驗在服務器端使用OpenSIPS部署SIP服務器,使用 Google 的 Stun Server作為 ICE 代理,使用Asterisk服務器部署多媒體中轉服務器.

在Android、iOS、Windows客戶端完成了WebRTC PeerConnection 和 SIP 協議的融合,并測試了各平臺之間的音視頻通信.SIPRTC本地網關轉化的呼叫和響應信令如圖5和圖6所示.Android端發出呼叫 并和iOS端視頻通話如圖7和圖8所示.

圖3 WebRTC PeerConnetion 和 SIP 映射流程

圖4 客戶端應用設計架構

圖5 SIPRTC 本地網關轉化的呼叫信令

圖6 SIPRTC 本地網關轉化的響應信令

經過多次測試和抓包分析,驗證了WebRTC的PeerConnection層在客戶端融合SIP協議方案的可行性,對比前兩種方案,發現本方案的客戶端流暢度要高于前兩種方案的客戶端;且本方案服務器造成的延遲要低于方案一的服務器,特別是服務器負載較大時,本方案服務器造成的延遲會明顯低于方案一的服務器.

5 結論

本文介紹了已有的WebRTC和SIP協議融合的方案,研究了WebRTC和SIP協議互通需要解決的問題,提出了一種WebRTC的PeerConnection層和SIP協議在客戶端融合的方案,通過查閱大量資料、搭建試驗環境、編碼、測試和對比,驗證了該方案的可行性和優越性.但是由于使用Google提供的Stun Server做ICE代理,有時會有明顯的延遲,后期的工作將集中研究、開發及搭建自己的ICE代理;另外后期我們也將在不同應用場景下對各客戶端的穩定性做測試,盡早將該方案產品從實驗室推向市場.

圖7 Android 端發出呼叫

圖8 iOS 端視頻會話

猜你喜歡
融合
一次函數“四融合”
兩個壓縮體融合為一個壓縮體的充分必要條件
村企黨建聯建融合共贏
今日農業(2021年19期)2022-01-12 06:16:36
融合菜
寬窄融合便攜箱TPFS500
寬窄融合便攜箱IPFS500
從創新出發,與高考數列相遇、融合
寬窄融合便攜箱IPFS500
《融合》
現代出版(2020年3期)2020-06-20 07:10:34
“四心融合”架起頤養“幸福橋”
福利中國(2015年4期)2015-01-03 08:03:38
主站蜘蛛池模板: 亚洲欧洲综合| 亚洲AV人人澡人人双人| 日韩毛片基地| 国产精品女熟高潮视频| a级毛片免费网站| 永久免费精品视频| 国产乱子伦手机在线| 91在线国内在线播放老师| 香蕉在线视频网站| 久久精品人人做人人爽电影蜜月| 亚洲久悠悠色悠在线播放| 亚洲色图欧美在线| 2018日日摸夜夜添狠狠躁| 色综合久久88色综合天天提莫| 国产欧美日韩另类精彩视频| 国产精品久久久久久久伊一| 欧洲日本亚洲中文字幕| 国产一区二区三区在线精品专区| 青青热久麻豆精品视频在线观看| 午夜视频www| 亚洲自偷自拍另类小说| 久久精品国产亚洲麻豆| 亚洲综合婷婷激情| 91在线一9|永久视频在线| 国产精品无码久久久久久| 亚洲自拍另类| 亚洲综合国产一区二区三区| 亚洲av无码牛牛影视在线二区| 日韩高清在线观看不卡一区二区 | 色婷婷电影网| 亚洲va在线观看| 久久精品无码国产一区二区三区 | 国内视频精品| 丰满的少妇人妻无码区| 欧美成人综合在线| 久久人搡人人玩人妻精品 | 久久精品亚洲热综合一区二区| 丁香六月综合网| 国产在线欧美| 成人精品区| 色色中文字幕| 国产真实乱子伦精品视手机观看 | a在线亚洲男人的天堂试看| 国内精品视频区在线2021| 九九热精品视频在线| 五月婷婷综合色| 国产成人精品免费av| 久久五月视频| 日本www在线视频| 亚洲A∨无码精品午夜在线观看| 国产亚洲日韩av在线| 成人综合久久综合| swag国产精品| 久久这里只有精品66| 欧美福利在线观看| 日韩欧美国产精品| 欧美在线精品一区二区三区| 国产99精品视频| 国产又爽又黄无遮挡免费观看| 国产国拍精品视频免费看| 国产精品美女在线| 国产网站免费观看| 午夜老司机永久免费看片| 熟妇人妻无乱码中文字幕真矢织江 | 直接黄91麻豆网站| 99视频在线观看免费| 天天摸天天操免费播放小视频| 一级毛片a女人刺激视频免费| 中文字幕欧美日韩高清| 亚洲第一成人在线| 免费中文字幕一级毛片| 无码 在线 在线| 亚洲第一视频网| 亚洲精品日产AⅤ| 国产无码性爱一区二区三区| 国产chinese男男gay视频网| 欧美视频免费一区二区三区| 久草网视频在线| 国内99精品激情视频精品| 久久免费观看视频| 毛片视频网址| 少妇精品在线|