• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SIP協(xié)議的WebRTC信令研究與應(yīng)用①

      2018-09-17 08:50:00孫建偉
      關(guān)鍵詞:信令服務(wù)器端音視頻

      孫建偉,陳 立,2,王 衛(wèi)

      1(中國科學(xué)院 沈陽計(jì)算技術(shù)研究所,沈陽 110168)

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

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

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

      本文介紹了WebRTC和SIP融合已有的兩種方案,分析了WebRTC和SIP互通需要解決的問題,提出了一種WebRTC的PeerConnection層和SIP協(xié)議在客戶端融合的方案,最后在多種客戶端實(shí)現(xiàn)了WebRTC和SIP融合的應(yīng)用,并和其他方案對比得出了此方案的優(yōu)缺點(diǎn).

      1 相關(guān)技術(shù)簡介

      1.1 SIP協(xié)議簡介

      SIP是基于文本的、獨(dú)立于傳輸層的應(yīng)用層IMS核心協(xié)議.其用于建立,結(jié)束以及中斷多媒體會(huì)話[3].

      1.2 WebRTC簡介

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

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

      從信令的角度來看,當(dāng)下主要有兩種SIP和WebRTC互通方案[7]:一種是基于服務(wù)器開發(fā) SIP/WebRTC 轉(zhuǎn)換網(wǎng)關(guān).另一種是用 JavaScript 實(shí)現(xiàn) SIP 協(xié)議,在此協(xié)議棧的基礎(chǔ)上構(gòu)建WebRTC 應(yīng)用.

      2.1 基于服務(wù)器端的信令轉(zhuǎn)化網(wǎng)關(guān)實(shí)現(xiàn)WebRTC和IMS網(wǎng)絡(luò)互通

      這種方案通過開發(fā)SIP/WebRTC轉(zhuǎn)化網(wǎng)關(guān)實(shí)現(xiàn)SIP信令和WebRTC信令的轉(zhuǎn)化,如webrtc2sip[8]就是這種方案的典型代表.基于服務(wù)器端的信令轉(zhuǎn)化網(wǎng)關(guān)實(shí)現(xiàn)WebRTC和IMS網(wǎng)絡(luò)互通架構(gòu)圖如圖1所示.

      2.2 基于JavaScript實(shí)現(xiàn)的SIP協(xié)議開發(fā)IMS客戶端

      這種方案用JavaScript實(shí)現(xiàn)SIP協(xié)議并向Web應(yīng)用開發(fā)者提供JavaScript API.開發(fā)者調(diào)用WebRTC JavaScript API開發(fā)出的 WebRTC 應(yīng)用可以采用WebSocket傳輸SIP信令.開發(fā)者通過此類WebRTC應(yīng)用直接注冊并登錄支持WebSocket[9]的SIP Server,與傳統(tǒng) SIP終端進(jìn)行通信.使用這種解決方案的開源SIP項(xiàng)目有Jssip和SipML5.

      圖1 基于服務(wù)器端的信令轉(zhuǎn)化網(wǎng)關(guān)實(shí)現(xiàn)WebRTC和IMS網(wǎng)絡(luò)互通架構(gòu)

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

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

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

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

      圖2 WebRTC 的 PeerConnection 層和 SIP 協(xié)議在客戶端的融合方案架構(gòu)

      3 WebRTC 的 PeerConnection 層和 SIP 協(xié)議在客戶端融合系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      本方案中最重要的一個(gè)環(huán)節(jié)就是SIPRTC本地網(wǎng)關(guān)的設(shè)計(jì),其功能包括 WebRTC SDP 和 SIP SDP 轉(zhuǎn)化和 SIP 信令和 WebRTC PeerConnection API映射.

      3.1 WebRTC的PeerConnection層和SIP協(xié)議在客戶端融合方案的本地網(wǎng)關(guān)設(shè)計(jì)

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

      表1 WebRTC 和 SIP 媒體和信令的異同點(diǎn)對比表

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

      (1)Alice 調(diào)用 PeerConnection 層 createoffer API,并通過SIPRTC本地網(wǎng)關(guān)轉(zhuǎn)化成SIP(INVITE)消息發(fā)送給Bob;

      (2)Bob 接收 SIP 消息后,調(diào)用 PeerConnection 層setRemoteDescription、createAnswer API,并通過SIPRTC 本地網(wǎng)關(guān)轉(zhuǎn)化成 SIP(180 Ring、200 OK)消息發(fā)送給Alice;

      (3)Alice 接收 SIP 消息,調(diào)用 PeerConnection 層setRemoteDescription API,并發(fā)送 SIP(ACK)消息給Bob,此時(shí)建立了p2p或者通過多媒體中轉(zhuǎn)服務(wù)器的多媒體會(huì)話;

      (4)Alice調(diào)用 PeerConnection層removeRemoteStream API,并通過 SIPRTC 本地網(wǎng)關(guān)轉(zhuǎn)化成SIP(BYE)消息發(fā)送給Bob;

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

      3.2 WebRTC的PeerConnection層和SIP協(xié)議在客戶端融合方案的應(yīng)用實(shí)現(xiàn)

      圖4為客戶端應(yīng)用設(shè)計(jì)的架構(gòu),在完成SIPRTC本地網(wǎng)關(guān)后,業(yè)務(wù)邏輯只需調(diào)用SIP接口,從而便于業(yè)務(wù)邏輯的實(shí)現(xiàn);MQTT用于文本聊天等功能的實(shí)現(xiàn).

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

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

      本實(shí)驗(yàn)在服務(wù)器端使用OpenSIPS部署SIP服務(wù)器,使用 Google 的 Stun Server作為 ICE 代理,使用Asterisk服務(wù)器部署多媒體中轉(zhuǎn)服務(wù)器.

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

      圖3 WebRTC PeerConnetion 和 SIP 映射流程

      圖4 客戶端應(yīng)用設(shè)計(jì)架構(gòu)

      圖5 SIPRTC 本地網(wǎng)關(guān)轉(zhuǎn)化的呼叫信令

      圖6 SIPRTC 本地網(wǎng)關(guān)轉(zhuǎn)化的響應(yīng)信令

      經(jīng)過多次測試和抓包分析,驗(yàn)證了WebRTC的PeerConnection層在客戶端融合SIP協(xié)議方案的可行性,對比前兩種方案,發(fā)現(xiàn)本方案的客戶端流暢度要高于前兩種方案的客戶端;且本方案服務(wù)器造成的延遲要低于方案一的服務(wù)器,特別是服務(wù)器負(fù)載較大時(shí),本方案服務(wù)器造成的延遲會(huì)明顯低于方案一的服務(wù)器.

      5 結(jié)論

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

      圖7 Android 端發(fā)出呼叫

      圖8 iOS 端視頻會(huì)話

      猜你喜歡
      信令服務(wù)器端音視頻
      SLS字段在七號信令中的運(yùn)用
      3KB深圳市一禾音視頻科技有限公司
      移動(dòng)信令在交通大數(shù)據(jù)分析中的應(yīng)用探索
      WIFI音視頻信號傳輸?shù)年P(guān)鍵問題探究
      電子制作(2018年12期)2018-08-01 00:48:06
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      基于信令分析的TD-LTE無線網(wǎng)絡(luò)應(yīng)用研究
      高速公路整合移動(dòng)音視頻系統(tǒng)應(yīng)用
      LTE網(wǎng)絡(luò)信令采集數(shù)據(jù)的分析及探討
      在Windows中安裝OpenVPN
      Roland專業(yè)音視頻新技術(shù)研討會(huì)在上海召開
      阿克| 新建县| 车险| 阳谷县| 拜城县| 丰宁| 德庆县| 青州市| 云梦县| 古浪县| 松江区| 塘沽区| 常州市| 渝中区| 苏尼特右旗| 大庆市| 古浪县| 尖扎县| 城步| 天门市| 合川市| 万盛区| 威远县| 海门市| 武义县| 青神县| 饶阳县| 莱芜市| 镇坪县| 湘西| 都昌县| 民县| 临沧市| 家居| 富平县| 鲜城| 新蔡县| 射阳县| 绥阳县| 常宁市| 泾阳县|