国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WebRTC應用層網(wǎng)關在iOS端的設計與實現(xiàn)①

2017-10-20 03:08:22孫建偉
計算機系統(tǒng)應用 2017年10期
關鍵詞:編解碼應用層信令

孫建偉 ,李 超 ,2,于 波

1(中國科學院 沈陽計算技術研究所,沈陽 110168)2(中國科學院大學,北京 100049)

基于WebRTC應用層網(wǎng)關在iOS端的設計與實現(xiàn)①

孫建偉1,李 超1,2,于 波1

1(中國科學院 沈陽計算技術研究所,沈陽 110168)2(中國科學院大學,北京 100049)

隨著近年來新媒體技術的快速發(fā)展,用戶對實時音視頻通信的質(zhì)量要求越來越高.WebRTC技術的出現(xiàn),以其強大的音視頻處理引擎迅速占領市場,對多媒體通信行業(yè)產(chǎn)生了巨大的影響.然而WebRTC提供的JSEP僅僅能完成簡單的媒體鏈接功能,在企業(yè)級的通信中需要結合其他模塊或者信令協(xié)議才能勝任完整的應用.本文著重研究了WebRTC與SIP的互通問題,并在iOS端基于WebRTC技術設計實現(xiàn)了一種應用層網(wǎng)關,通過實驗驗證了該網(wǎng)關的可行性與實用性.

WebRTC; 應用層網(wǎng)關; iOS; 實時通信

隨著多媒體技術、實時通信技術的發(fā)展[1],各種社交和辦公應用app增長迅速,例如國外的facebook,skype等.國內(nèi)的微信,QQ等都有音視頻通信的功能.伴隨著移動端用戶的不斷增長,人們通過手機進行音視頻通信的需求量也日益增大,如何提高音視頻傳輸質(zhì)量成為了重點.

WebRTC技術使瀏覽器成為一個實時通信應用平臺[2].目前全球瀏覽器廠商越來越多的加入到WebRTC技術的大潮中.2011年6月Google提出了開源的即時通訊項目WebRTC,該項目提供了視頻會議的核心技術:音視頻采集、網(wǎng)絡傳輸、音視頻編解碼、信號優(yōu)化和處理等[3].WebRTC給移動通訊行業(yè)帶來了新突破,這將造成深遠的影響.

SIP是IMS的核心技術,對多媒體會話的建立,中斷,結束等起著很大的作用,并已發(fā)展成熟得到廣泛應用.WebRTC強大的音視頻處理引擎,吸引越來越多的移動端開發(fā)人員研究.WebRTC提供的JSEP是一種弱的信令控制協(xié)議,僅僅能完成簡單的媒體鏈接功能,在企業(yè)級的通信中需要結合其他模塊或者信令協(xié)議才能勝任完整的應用.本文詳細對比了SIP與WebRTC的差異,以及JSEP與SIP轉換存在的問題,最終設計和實現(xiàn)在iOS端WebRTC與SIP融合的應用層網(wǎng)關.

1 WebRTC 與 SIP 轉換在 iOS 端的技術簡介

1.1 iOS系統(tǒng)背景以及架構

iOS是蘋果公司于2007年發(fā)布的智能終端操作系統(tǒng).iOS系統(tǒng)分為以下四部分:核心系統(tǒng)層、核心服務層、媒體層和交互層.

1.2 WebRTC相關技術分析

WebRTC是基于瀏覽器平臺的實時音視頻通信技術.如圖1 所示,WebRTC 包含三個主要部分:語音引擎模塊,視頻引擎模塊和傳輸模塊.

圖1 WebRTC 結構

1.3 SIP協(xié)議簡介

會話初始協(xié)議 SIP(session initiation protocol)是基于文本的,獨立于傳輸層的應用層控制協(xié)議.其用于建立,結束以及中斷多媒體會話[4].是IMS的核心協(xié)議.

2 WebRTC 應用層網(wǎng)關的研究

2.1 需要解決的問題

WebRTC在媒體流控制層面上提出了JSEP的連接方式.在信令層對信令沒有提出標準,而是由開發(fā)者自己選擇.WebRTC提供的JSEP是一種弱的信令控制協(xié)議,其與強信令協(xié)議的不同在于僅僅能完成簡單的媒體鏈接功能而不能完成整個會話過程的所有控制機制.所以在企業(yè)級的通信中需要結合其他模塊或者信令協(xié)議才能勝任完整的應用.要實現(xiàn)WebRTC與IMS的核心協(xié)議SIP相結合,重點在于如何解決信令互通問題.

如圖2對二者協(xié)議棧的分析對比可得出,WebRTC有一個封裝好的基于瀏覽器的接口.WebRTC通信一般使用HTTP或者Socket,WebRTC可以融合SIP做信令控制.

圖2 WebRTC 與 SIP 協(xié)議棧對比

如表1對WebRTC與SIP比較可知:

(1)媒體協(xié)商協(xié)議方面.二者都使用了SDP(會話描述協(xié)議),而且都是Offer/Answer請求應答模型.

(2)在媒體傳輸方面,WebRTC 采用 SRTP,而 SIP采用了RTP也可以使用SRTP.沒有使用RTP會話復用的SIP客戶端可能無法理解WebRTC的SDP.

(3)在傳輸控制方面,SIP中RTP和RTCP是單獨分開的,在WebRTC中兩者存在復用結構.

(4)在音頻編解碼二者均支持G.711標準而在視頻編解碼方面WebRTC支持VP8,所以二者沒有兼容的編解碼.

表1 WebRTC 與 SIP 協(xié)議的不同

綜上所述,要解決WebRTC與SIP的互通問題,需要進行信令轉換,ICE兼容以及編解碼等方面的研究.本文重點是設計WebRTC的應用層網(wǎng)關,對于媒體網(wǎng)關解決音視頻編解碼兼容性問題以及ICE兼容性就不做詳細介紹了.

2.2 已有的解決方案

主流的解決方案有以下幾種[5]:第一種是基于Java-Script實現(xiàn)SIP協(xié)議,在其上構建WebRTC,第二種開發(fā)SIP/WebRTC轉換網(wǎng)關內(nèi)置到WebRTC服務器中,第三種是開發(fā)SIP/WebRTC轉換網(wǎng)關單獨作為服務器.

第一種用JavaScript實現(xiàn)SIP協(xié)議并給Web應用程序開發(fā)者提供JS API.這種WebRTC應用可以支持SIP Server,可與傳統(tǒng)SIP客戶端進行通信.

第二種和第三種方案是開發(fā)SIP/WebRTC網(wǎng)關實現(xiàn)SIP與WebRTC的互通.采用這種解決方案的開源項目webrtc2sip[6](由愛立信公司提出).

上述三種解決方案都存在缺陷,第一種方案是對Web應用程序開發(fā)很便利的解決方案,對iOS客戶端來說是不適用的.而第二種第三種是開發(fā)一個轉換網(wǎng)關,不管是嵌入到WebRTC服務器還是單獨出一個服務器,都增加了服務器的成本.如果用戶量足夠大很可能會使服務器性能大大降低.針對以上問題,本文提出在客戶端實現(xiàn)JSEP-TO-SIP的應用層網(wǎng)關結構.

3 系統(tǒng)設計

3.1 系統(tǒng)框架

如圖3所示的設計中包含了iOS客戶端(內(nèi)嵌JSEPTO-SIP 的信令網(wǎng)關),媒體網(wǎng)關,SIP 服務器.本文主要思想是將信令網(wǎng)關與媒體網(wǎng)關分離.將JSEP-TO-SIP網(wǎng)關嵌入到iOS端,進而減小服務器的壓力和開銷成本.

圖3 iOS客戶端到iOS客戶端的信令通道

iOS客戶端通過JSEP-TO-SIP網(wǎng)關對ROAP/JSEP到SIP的協(xié)議轉換和對等的iOS客戶端連接.iOS客戶端應用程序主要實現(xiàn)用戶登錄,撥號,視頻顯示界面等.JSEP-TO-SIP網(wǎng)關負責把JSEP信令轉換成SIP信令,并發(fā)送給SIP服務器,以及將SIP信令轉換成JSEP信令.通過信令交換媒體信息后,兩端建立起P2P的SRTP媒體通道.

如表2是JSEP與SIP的映射關系.

表2 JSEP 到 SIP 映射

JSEP-TO-SIP網(wǎng)關負責JSEP到SIP的轉換以及SIP到JSEP的轉換.重點解決的就是WebRTC與SIP協(xié)議棧的區(qū)別而產(chǎn)生的互通的問題.

3.2 JSEP-TO-SIP網(wǎng)關工作流程舉例

如圖4所示,JSEP與SIP的交互過程為:

(1)ClientA和ClientB分別創(chuàng)建自己RTCPeer-Connection實例.

(2)ClientA,ClientB 通過 RTCPeerConnection 所提供的setLocalDescription()方法,將自己的SDP描述符等其它參數(shù)信息交給RTCPeerConnection實例[7].

圖4 JSEP 與 SIP 信令交互過程

(3)ClientA通過RTCPeerConnection所提供的createOffer()方法建立一個包含ClientA的SDP描述符等其它參數(shù)信息的offer信令.ClientA將Offer信令發(fā)送給JSEP-TO-SIP網(wǎng)關.

(4)JSEP-TO-SIP網(wǎng)關將Offer信令轉換成SIP信令的Invite并發(fā)送給SIP服務器,SIP服務器根據(jù)被叫標識,找到ClientB并發(fā)送給ClientB的JSEP-TO-SIP網(wǎng)關.

(5)ClientB將信令中所包含的的SDP描述符等其它參數(shù)信息提取出來,通過RTCPeerConnection所提供的setRemoteDescription()方法交給ClientB的RTCPeerConnection實例[7].

(6)ClientB通過RTCPeerConnection所提供的createAnswer()方法建立一個包含ClientB的SDP描述符等其它參數(shù)信息的Answer信令.ClientB將Answer信令發(fā)送給JSEP-TO-SIP網(wǎng)關.

(7)JSEP-TO-SIP網(wǎng)關將Answer轉換成SIP的200 ok發(fā)送給SIP服務器,SIP服務器發(fā)送給ClientA的JSEP-TO-SIP網(wǎng)關.

(8)ClientA將其中ClientB的SDP描述符等其它參數(shù)信息提取出來,用setRemoteDescripttion()方法交給ClientA自己的RTCPeerConnection實例[7].

經(jīng)過以上步驟,ClientA和ClientB所建立的RTCPeerConnection實例包含了ClientA和ClientB的SDP描述符等其它參數(shù)信息[7].建立P2P的SRTP媒體通道,客戶端可以進行媒體傳輸.

3.3 WebRTC在iOS端的應用框架

從谷歌官網(wǎng)下載WebRTC源碼,得到源碼后,將其編譯,然后與PJSIP封裝成在iOS平臺可用的SDK如圖5所示為WebRTC與iOS結合架構圖.

圖5 iOS 與 WebRTC 結合架構圖

采用MVC模型對UI設計,其對項目文件易于管理,并且用戶只關心界面的視圖效果.

WebRTC語音引擎支持iSAC、iLBC、Opus 3種編解碼器.音頻NetEQ算法包括抖動緩沖及丟包補償模塊以延遲減至最小并提高音頻質(zhì)量[8].

視頻部分包含采集、編解碼(VP8)、加密、媒體文件、圖像處理與顯示、網(wǎng)絡傳輸與媒體流控制等技術[9].

4 測試及比較結果

本文完成了在iOS端WebRTC與SIP融合的應用層網(wǎng)關.并實現(xiàn)了在iOS客戶端的WebRTC應用的音視頻實時通信.應用層網(wǎng)關主要是基于Node.js實現(xiàn),WebRTC提供的JSEP是基于RTCPeerconnetion開發(fā)的,RTCPeerconnetion是Node.js向開發(fā)者提供的一個模塊,用于支持WebRTC服務.SIP模塊基于pjsip庫開發(fā)[10].

由于WebRTC采用JSEP作為控制協(xié)議,與SIP服務器交互時需要轉換為SIP信令.本文搭建的SIP/WebRTC互通實驗環(huán)境用Asterisk做SIP服務器,由于Asterisk具備媒體編解碼能力以及SRTP/RTP轉換功能,所以該實驗環(huán)境中,Asterisk也用作媒體網(wǎng)關.

本次實驗用15臺iphone進行測試,建立音視頻連接,相互通信共計20次.測試中通過WireShark抓包,獲得Offer信令經(jīng)應用層網(wǎng)關生成的INVITE消息和Answer信令經(jīng)應用層網(wǎng)關生成的200 OK應答消息,分別如圖6、圖7 所示.分析可知,信令網(wǎng)關在IMS網(wǎng)絡中表現(xiàn)的和傳統(tǒng)SIP終端一致.20次實驗中,在同一局域網(wǎng)內(nèi)WebRTC應用進行通信,JSEP-TO-SIP網(wǎng)關均可正常工作,達到預期效果,說明本文所提出的在iOS端實現(xiàn)JSEP-TO-SIP網(wǎng)關是可行的.

圖6 JSEP-TO-SIP 網(wǎng)關生成的 SIP 請求消息

圖7 JSEP-TO-SIP 網(wǎng)關生成的 SIP 應答消息

實驗過程中,WebRTC應用實時音視頻通信流暢,不過從雙方視頻畫面來看,存在 170 ms-270 ms 的延遲.JSEP-TO-SIP網(wǎng)關對信令的轉換帶來一定的時間延遲,但比在服務器端實現(xiàn)信令轉換的延遲有所減少,放到服務器處理網(wǎng)關轉換需要跟服務器交互以及服務器轉換網(wǎng)關需要做兩次轉換,而iOS端延遲的170 ms-270 ms是可以接受的.

5 結論

本文分析了SIP和WebRTC控制協(xié)議轉換問題,介紹了現(xiàn)存的解決方案,并提出了在iOS端實現(xiàn)JSEPTO-SIP網(wǎng)關.通過搭建實驗環(huán)境,驗證了該方案的可行性以及優(yōu)越性.當然還需要考慮到JSEP-TO-SIP網(wǎng)關的負載能力,時間延遲以及處理協(xié)議轉換對iOS端性能的影響和耗電量等問題.

1陳建明,張翼翔.用于移動學習的流媒體服務器研究.微型機與應用,2013,32(3):10–12.

2竹洪濤.一種基于SIP和WebRTC的實時可視對講方案設計[碩士學位論文].成都:西南交通大學,2013.

3王桐.基于Android智能移動終端的無線遠程管控系統(tǒng)研究與應用[碩士學位論文].成都:西南交通大學,2013.

4鄧敦望.SIP視頻會議服務器設計與實現(xiàn)[碩士學位論文].北京:北京郵電大學,2010.

5Amirante A,Castaldi T,Miniero L,et al.On the seamless interaction between WebRTC browsers and SIP-based conferencing systems.IEEE Communications Magazine,2013,51(4):42–47.[doi:10.1109/MCOM.2013.6495759]

6Mamadou DIOP.Webrtc2sip-smart SIP and media gateway for WebRTC endpoints technical guide.http://www.webrtc2sip.org/technical-guide-1.0.pdf.[2013].

7胡勛,周淵平.基于WebRTC的Android移動端無線視頻傳輸.微型機與應用,2015,34(19):83–85.[doi:10.3969/j.issn.1674-7720.2015.19.024]

8吳江銳.WebRTC語音引擎中NetEQ技術的研究[碩士學位論文].西安:西安電子科技大學,2013.

9胡敏,劉六程,劉鵬.基于WebRTC的視頻會議系統(tǒng)的設計與實現(xiàn).電視技術,2013,37(1):141–143,150.

10黃月祥.基于PJSIP的嵌入式VoIP終端的研究與實現(xiàn)[碩士學位論文].昆明:昆明理工大學,2011.

Design and Implementation of iOS Audio and Video Transmission Based on WebRTC

SUN Jian-Wei1,LI Chao1,2,YU Bo1

1(Shenyang Institute of Computer Technology,Chinese Academy of Sciences,Shenyang 110168,China)2(University of Chinese Academy of Sciences,Beijing 100049,China)

With the development of multimedia technology,and the real-time communication technology,people’s requirement for real-time audio and video communication is higher and higher.The WebRTC technology emerges and occupies the market quickly based on its powerful audio and video processing engine,which has a huge impact on multimedia communications industry.WebRTC JSEP provided,however,can only perform simple media link function.It is required to combine with other modules or signaling protocol to do a complete application in the communication of enterprise.This paper focuses on the WebRTC communication with the SIP,and in the iOS terminal it designs and implements a kind of application layer gateway based on WebRTC technology.Finally,the feasibility and practicability of the gateway is verified with experiments.

WebRTC; application layer gateway; iOS; real-time communication

孫建偉,李超,于波.基于WebRTC應用層網(wǎng)關在iOS端的設計與實現(xiàn).計算機系統(tǒng)應用,2017,26(10):89–94.http://www.c-sa.org.cn/1003-3254/5987.html

國家科技重大專項-數(shù)控系統(tǒng)功能安全關鍵技術研究(2014ZX04009031)

2017-01-15; 采用時間:2017-02-15

猜你喜歡
編解碼應用層信令
1553B總線控制器編解碼設計
SLS字段在七號信令中的運用
大型民機試飛遙測視頻編解碼方法研究
移動信令在交通大數(shù)據(jù)分析中的應用探索
基于H.265編解碼的高清視頻傳輸系統(tǒng)研究
電子測試(2018年18期)2018-11-14 02:30:54
基于信令分析的TD-LTE無線網(wǎng)絡應用研究
消費導刊(2017年24期)2018-01-31 01:28:37
基于分級保護的OA系統(tǒng)應用層訪問控制研究
LTE網(wǎng)絡信令采集數(shù)據(jù)的分析及探討
新一代雙向互動電力線通信技術的應用層協(xié)議研究
物聯(lián)網(wǎng)技術在信息機房制冷系統(tǒng)中的應用
东港市| 东至县| 双流县| 永年县| 广河县| 新竹市| 安龙县| 运城市| 邵武市| 东兴市| 苏尼特左旗| 余江县| 贵港市| 晴隆县| 同德县| 芮城县| 承德县| 娄烦县| 三穗县| 两当县| 琼海市| 松江区| 商南县| 新兴县| 罗定市| 含山县| 永德县| 临海市| 伊吾县| 平顶山市| 长岭县| 日照市| 枣强县| 上杭县| 大英县| 清涧县| 古浪县| 轮台县| 曲沃县| 大洼县| 鄂尔多斯市|