于世航 張建中 齊幸輝
(河北遠(yuǎn)東通信系統(tǒng)工程有限公司,河北石家莊 050002)
基于WebRTC的多媒體通信軟終端技術(shù)研究
于世航 張建中 齊幸輝
(河北遠(yuǎn)東通信系統(tǒng)工程有限公司,河北石家莊 050002)
為了提高多媒體通信終端之間的通信效率,增強(qiáng)用戶的體驗(yàn),研究基于WebRTC的多媒體通信軟終端技術(shù)。利用WebRTC技術(shù),用戶之間可以直接利用基于HTML5技術(shù)的瀏覽器進(jìn)行多媒體通信,大大提高了用戶之間通信的便捷性。重點(diǎn)描述了WebRTC技術(shù)的產(chǎn)生背景、WebRTC功能架構(gòu)以及WebRTC技術(shù)相關(guān)概念特點(diǎn);介紹了WebRTC技術(shù)在統(tǒng)一通信軟終端的應(yīng)用,并分析了應(yīng)用WebRTC技術(shù)所帶來(lái)的優(yōu)勢(shì)和限制WebRTC技術(shù)發(fā)展的一些因素。
WebRTC多媒體統(tǒng)一通信HTML5
隨著網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,人們之間的通信逐漸由傳統(tǒng)的語(yǔ)音通信向多媒體通信發(fā)展,與此同時(shí)通信軟終端的結(jié)構(gòu)也變得越來(lái)越復(fù)雜,為了使用終端必須安裝相關(guān)軟件或插件,這給人們帶來(lái)了極大的不便。
WebRTC(Web Real-Time Communication)是一種構(gòu)建
定稿日期:2015-02-26在Web瀏覽器基礎(chǔ)上的實(shí)時(shí)音視頻通信技術(shù),本質(zhì)是將實(shí)時(shí)通信應(yīng)用所需要的音視頻捕獲及處理、網(wǎng)絡(luò)傳輸及會(huì)話控制等功能集成到Web瀏覽器當(dāng)中[1]?;赪ebRTC的多媒體通信軟終端可以使用戶避免安裝插件軟件的復(fù)雜過(guò)程,直接在支持WebRTC技術(shù)的瀏覽器上進(jìn)行實(shí)時(shí)的音視頻通信,用戶體驗(yàn)一致性高。另外,基于WebRTC的多媒體軟終端使用Javascript和HTML5開(kāi)發(fā),開(kāi)發(fā)者不需要為專門的操作系統(tǒng)開(kāi)發(fā)不同的版本;開(kāi)發(fā)者只需重點(diǎn)關(guān)注業(yè)務(wù)本身而不必太關(guān)注媒體信息的處理。
2.1 WebRTC介紹
WebRTC由Google收購(gòu)的Global IP Solution公司開(kāi)發(fā),并由Google在2010年向外開(kāi)放,目前已成為實(shí)時(shí)通信技術(shù)的熱點(diǎn)。WebRTC項(xiàng)目的目的主要是讓W(xué)eb開(kāi)發(fā)者能夠基于瀏覽器簡(jiǎn)便快捷的開(kāi)發(fā)出豐富的實(shí)時(shí)多媒體應(yīng)用,而無(wú)需下載安裝任何插件,Web開(kāi)發(fā)者也無(wú)需關(guān)注多媒體數(shù)字信號(hào)的處理過(guò)程,只需編寫簡(jiǎn)單的Javascript程序即可實(shí)現(xiàn)[2]。
在Google公司的推動(dòng)下,WebRTC標(biāo)準(zhǔn)化工作取得了快速發(fā)展。2010年5月,IETF成立RTCWeb工作組負(fù)責(zé)需求、總體方案和協(xié)議的制定,并為W3C(World Wide Web Consortium)提供輸入。與此同時(shí),W3C成立WebRTC工作組負(fù)責(zé)客戶端API的定義,這些應(yīng)用編程接口用于幫助Web應(yīng)用完成Web瀏覽器之間點(diǎn)對(duì)點(diǎn)或點(diǎn)對(duì)多點(diǎn)之間的實(shí)時(shí)通信[3]。
幾個(gè)主要的瀏覽器(Firefox、Chrome、Opera)也都緊跟著標(biāo)準(zhǔn)化進(jìn)展的步伐推出了支持WebRTC的版本。目前各個(gè)瀏覽器版本對(duì)WebRTC的支持如表1所示。
表1 各瀏覽器對(duì)WebRTC的支持情況
2.2 HTML5技術(shù)
HTML5技術(shù)是Web的新一代技術(shù)標(biāo)準(zhǔn),它是是構(gòu)建并呈現(xiàn)互聯(lián)網(wǎng)內(nèi)容的一種語(yǔ)言方式,被認(rèn)是互聯(lián)網(wǎng)的核心技術(shù)之一。HTML最早被提出是在1990年,到1997年演變到HTML4,并逐漸發(fā)展成為互聯(lián)網(wǎng)標(biāo)準(zhǔn),廣泛應(yīng)用于Web應(yīng)用的開(kāi)發(fā)。HTML5的前身名為Web Application 1.0,于2004年被WHATWG提出,2007年被W3C接納,并成立了新的HTML工作團(tuán)隊(duì)[4]。HTML5是HTML的第5個(gè)版本,也是最新版本。HTML5技術(shù)指的是包括javascript、HTML和CSS等一系列技術(shù)的集合。它減少了瀏覽器對(duì)于插件(如Adobe Flash、Microsoft Silverlight)的依賴,同時(shí)HTML5提供了一些能夠很好增強(qiáng)Web多媒體應(yīng)用的標(biāo)準(zhǔn)集。具體來(lái)說(shuō),HTML5添加了許多新的語(yǔ)法特征,新的元素如〈video〉、〈audio〉、〈canvas〉被添加,這些元素的添加使得程序可以直接使用支持HTML5技術(shù)的瀏覽器直接處理音視頻信息;同時(shí)HTML5也刪除了〈big〉、〈caption〉、〈basefont〉等元素。在HTML5中,DOM和API也成為了其基礎(chǔ)部分[5]。總的來(lái)說(shuō),HTML5技術(shù)使得頁(yè)面設(shè)計(jì)更加簡(jiǎn)化,分離了頁(yè)面的布局和樣式,腳本的復(fù)雜度也隨之降低,同時(shí)減少了Web應(yīng)用對(duì)插件的依賴性[6]。HTML5的核心技術(shù)主要包括對(duì)音視頻的支持、Canvas畫布、離線存儲(chǔ)、Web Socket等。
2.3 通信信令技術(shù)
通信信令是和通信有關(guān)的一系列控制信號(hào),涉及通信網(wǎng)中的連接、建立、控制、管理等方面的信息交換。信令是通信網(wǎng)絡(luò)的神經(jīng),它指揮整個(gè)通信網(wǎng)絡(luò)有效地運(yùn)行和服務(wù),信令的性能在很大程度上反映了網(wǎng)絡(luò)向用戶提供的服務(wù)能力和服務(wù)質(zhì)量[7]。
隨著通信技術(shù)的發(fā)展,通信網(wǎng)絡(luò)也逐步由PSTN網(wǎng)絡(luò)向NGN(Next Generation Network)演變,NGN的主要特點(diǎn)是業(yè)務(wù)與控制、接入與承載彼此分離,而SIP(Session Initiation Protocol)信令很好的適應(yīng)了這一特點(diǎn),下面簡(jiǎn)要介紹SIP信令。
SIP網(wǎng)絡(luò)主要分為以下幾個(gè)邏輯實(shí)體:User Agent(用戶代理)、Proxy(代理服務(wù)器)、Register(注冊(cè)服務(wù)器)、Redirect Server(重定向服務(wù)器),這些實(shí)體之間采用SIP通信。其中用戶代理對(duì)接收到的請(qǐng)求或響應(yīng)消息進(jìn)行代理,然后發(fā)送到SIP網(wǎng)絡(luò)中;代理服務(wù)器主要完成信息的轉(zhuǎn)發(fā);注冊(cè)服務(wù)器接收用戶的注冊(cè)請(qǐng)求。
SIP消息采用文本方式,因此相對(duì)于二進(jìn)制的信令,SIP消息簡(jiǎn)單易懂??煞譃檎?qǐng)求和響應(yīng)兩大類。響應(yīng)以三位數(shù)字進(jìn)行表征,第一位表示類別,后兩位與第一位結(jié)合表示不同的響應(yīng)消息[8]。
WebRTC功能架構(gòu)如圖1所示。
圖1中的WebRTC Web API層是面向第三方開(kāi)發(fā)者的WebRTC標(biāo)準(zhǔn)API,這些API使得開(kāi)發(fā)者可以便捷地開(kāi)發(fā)出Web多媒體應(yīng)用,主要包含三方面的API:RTCPeerConnection、Network Stream API、Peer-to-Peer Data API。WebRTC native API(C++)是本地C++API層,主要面向?yàn)g覽器廠商,抽象地對(duì)數(shù)字信號(hào)進(jìn)行處理;Session Managermen層提供會(huì)話建立和管理的功能,該層功能留給開(kāi)發(fā)者自己定義實(shí)現(xiàn)。Voice Engine是包含一系列音頻多媒體處理的框架,包括從視頻采集卡到網(wǎng)絡(luò)傳輸端等整個(gè)解決方案:iSAC/iLBC編解碼、語(yǔ)音NetEQ技術(shù)、回聲消除、噪音抑制技術(shù)。Video Engine是一系列視頻處理技術(shù)的組合,包括視頻抖動(dòng)緩沖、VP8編解碼、圖像增強(qiáng)模塊。在Transport層中,媒體流的傳輸主要使用RTP/SRTP協(xié)議,并采用ICE技術(shù)進(jìn)行媒體流的私網(wǎng)穿透(需要STUN或TURN服務(wù)器支持)??偟膩?lái)說(shuō),WebRTC向?yàn)g覽器引入了音視頻引擎、網(wǎng)絡(luò)傳輸及會(huì)話控制的功能,音視頻引擎提供了從音視頻采集設(shè)備到網(wǎng)絡(luò)傳輸端的整個(gè)處理方案,且都采用了開(kāi)源編碼格式。
統(tǒng)一通信是指把計(jì)算機(jī)技術(shù)與傳統(tǒng)通信技術(shù)融為一體的新通信模式,作為一種解決方案和應(yīng)用,其核心內(nèi)容是:使人們可以通過(guò)任何網(wǎng)絡(luò)設(shè)備在任何時(shí)間和地點(diǎn)來(lái)獲得自由的多媒體通信。也就是說(shuō),統(tǒng)一通信將語(yǔ)音、短消息、多媒體和數(shù)據(jù)等等所有信息類型合為一體,從而為人們帶來(lái)選擇的自由和效率的提升。它不僅僅是Web層面的互聯(lián)互通,而是以人為本的應(yīng)用層面的協(xié)同與融合,是一個(gè)更高層次的理念,新一代通信與IT產(chǎn)業(yè)[9]。
在統(tǒng)一通信系統(tǒng)中,客戶端主要為用戶提供語(yǔ)音、視頻、即時(shí)消息、文件傳輸、通訊錄等實(shí)時(shí)通信服務(wù)和登錄鑒權(quán)服務(wù)??蛻舳耸紫仁褂描b權(quán)功能登錄服務(wù)器,然后客戶端之間通過(guò)服務(wù)器提供的服務(wù)進(jìn)行實(shí)時(shí)通信。統(tǒng)一通信客戶端主要包含PC客戶端和手機(jī)客戶端(包括android和iOS)。
傳統(tǒng)的客戶端需要考慮到平臺(tái)的差異,例如在PC端、android端和iOS端的開(kāi)發(fā)有很大的差異,這給開(kāi)發(fā)人員帶來(lái)了很多不必要的麻煩;另外,由于要使用到多媒體通信的功能,用戶在使用客戶端時(shí)還需要安裝相關(guān)軟件和插件來(lái)實(shí)現(xiàn)多媒體通信功能,這給用戶也帶來(lái)了很大的不便。
使用WebRTC技術(shù)可以很好的解決上述問(wèn)題,WebRTC技術(shù)是基于瀏覽器的,開(kāi)發(fā)人員可以通過(guò)簡(jiǎn)單的javascript技術(shù)來(lái)實(shí)現(xiàn)客戶端程序的開(kāi)發(fā)而不用考慮平臺(tái)之間的差異[10];另外,由于WebRTC技術(shù)自帶的多媒體搜集和處理功能,用戶只需通過(guò)PC和手機(jī)的瀏覽器輸入網(wǎng)址登錄客戶端,然后進(jìn)行多媒體通信而不需要安裝控件和插件,其架構(gòu)如圖2所示。
圖2 基于WebRTC多媒體客戶端架構(gòu)
基于WebRTC的統(tǒng)一通信客戶端屏蔽掉了PC、android 和iOS平臺(tái)之間的差異,客戶端開(kāi)發(fā)者用javascript語(yǔ)言編寫統(tǒng)一通信系統(tǒng)的功能界面;另外,由于WebRTC沒(méi)有給出抽象會(huì)話層的實(shí)現(xiàn),因此客戶端開(kāi)發(fā)者還需編寫抽象會(huì)話層的協(xié)議,來(lái)提供會(huì)話建立和管理功能。
圖2中,在Web客戶端,功能界面包含登錄、音視頻呼叫接收等界面。用戶通過(guò)功能界面登錄服務(wù)器后,可以發(fā)起音視頻等呼叫,客戶端與服務(wù)器之間通過(guò)開(kāi)發(fā)人員定義的會(huì)話協(xié)議(SIP、XMPP等)進(jìn)行連接,呼叫過(guò)程如圖3所示。
圖3 WebRTC客戶端呼叫流程
發(fā)起呼叫請(qǐng)求后,WebRTC客戶端首先通過(guò)WebRTC技術(shù)提供的getUserMedia()函數(shù)獲取本地音視頻設(shè)備的音視頻媒體流,然后通過(guò)WebRTC接口創(chuàng)建本地的PeerConnection,將MediaStream添加到PeerConnection;添加成功后調(diào)用定義的會(huì)話協(xié)議接口發(fā)送INVITE消息(使用SIP協(xié)議),通過(guò)服務(wù)器轉(zhuǎn)發(fā)到達(dá)對(duì)端,對(duì)端接收到呼叫請(qǐng)求后,與發(fā)送端操作相同,最后發(fā)送接受呼叫請(qǐng)求的消息。發(fā)送端接收到該消息后,二者之間就建立了WebRTC連接。連接成功后,客戶端之間就可以利用WebRTC技術(shù)進(jìn)行音視頻信息的傳輸通信。WebRTC客戶端不僅可以相互之間進(jìn)行多媒體通信,同時(shí)也可以與其他SIP終端,如IP電話、SIP視頻話機(jī)、原有軟終端等進(jìn)行多媒體通信。
在如今這個(gè)Web技術(shù)快速發(fā)展的時(shí)代,WebRTC多媒體通信軟終端以其極大的便利性必然會(huì)取代原有的通信客戶端,獲得長(zhǎng)足的發(fā)展。WebRTC技術(shù)雖然可以為用戶和開(kāi)發(fā)人員提供便捷的通信方式,但現(xiàn)在還處于發(fā)展階段,WebRTC技術(shù)的標(biāo)準(zhǔn)化工作還在進(jìn)行當(dāng)中;另外,當(dāng)前支持WebRTC技術(shù)的瀏覽器還沒(méi)有完全普及,這在一定程度上會(huì)限制其發(fā)展。
[1]LOPEZ F L,PARIS D M,BENITEZ M R,et al.Kurento:a media server technology for convergent www/mobile real-time multimedia communications supporting webrtc[C].2013-06-15,2013:1-6.
[2]Global IP solution.http://zh.wikipedia. org/wiki/Global_IP_sound.
[3]W3C draft-2012.WebRTC 1.0:real-time communication between browsers[S].
[4]W3C HTML5.http://www.w3.org/TR/html5/.
[5]Goldstein A,Lazarls L.Weyl E.HTML5與CSS3實(shí)戰(zhàn)指南[M].宋松譯.北京:人民郵電出版社,2011.
[6]張志明,柯衛(wèi).基于HTML5的視頻通信云服務(wù)應(yīng)用技術(shù)研究[J].電信科學(xué),2012,28(10):31-37.
[7]盧華,王保保.oSIP協(xié)議棧的研究和應(yīng)用[J].電子科技,2006 (2):61-64.
[8]陸立,張鵬生,張華,等.NGN協(xié)議原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2004.
[9]張俊,蘇海鵬.統(tǒng)一通信簡(jiǎn)介[J].中國(guó)交通信息化,2013(7): 104-105.
[10]付斌,楊鑫,王松等.WebRTC技術(shù)研究及其應(yīng)用[J].電信科學(xué),2013,29(9):108-112.
Research on Multimedia Communication Soft Terminal Based on WebRTC
YU Shi-hang,ZHANG Jian-zhong,QI Xing-hui
(Hebei Far-east Communication System Engineering Co.,Ltd,Shijiazhuang Hebei 050002,China)
In order to improve the communication efficiency between multimedia communication terminals and enhance the user experience,this paper studies the soft terminal technology of multimedia communication based on WebRTC.Using WebRTC technology,the users can directly implement the multimedia communication via the browser based on HTML5 technology with each other,which greatly improves the communication convenience between users.This paper mainly describes the production background, functional architecture and concept characteristics of WebRTC,introduces the application of WebRTC technology in unified communication software terminal,and analyzes the advantages by using WebRTC technology and the factors for limiting the development of WebRTC technology.
WebRTC;multimedia;unified communication;HTML5
TP37
A
1008-1739(2015)06-55-4