付 斌,楊 鑫,王 松,林 鴻
(1.中國電信股份有限公司北京研究院 北京 100035;2.法國電信北京研發(fā)中心 北京 100190)
WebRTC(Web real-time communication)是近年來興起的一項(xiàng) OTT(over the top)VoIP(voice over IP)技術(shù),目標(biāo)是通過簡單的JavaScript調(diào)用即可在瀏覽器上實(shí)現(xiàn)點(diǎn)對點(diǎn)語音、視頻和文件共享等業(yè)務(wù)。因?yàn)槠溟_放、開源且具有極大的使用便利性,從推出以來就受到了業(yè)界特別是互聯(lián)網(wǎng)和通信行業(yè)的廣泛關(guān)注。在互聯(lián)網(wǎng)應(yīng)用爆發(fā)式增長的大環(huán)境下,這種實(shí)時(shí)通信功能已經(jīng)成為各種互聯(lián)網(wǎng)應(yīng)用的基礎(chǔ)要素,也是WebRTC受到如此關(guān)注的主要原因。對于電信業(yè)而言,WebRTC提供的語音、視頻通信服務(wù)一定程度上會(huì)與傳統(tǒng)的電信業(yè)務(wù)產(chǎn)生競爭關(guān)系,對于同樣基于VoIP技術(shù)的IMS(IP multimedia subsystem)會(huì)產(chǎn)生一定的替代。另一方面,人們也在探索把WebRTC技術(shù)應(yīng)用于IMS中,如以Web方式接入IMS服務(wù),甚至整體上作為運(yùn)營商VoIP業(yè)務(wù)的一種選項(xiàng)。
WebRTC包括語音引擎(voice engine)、視頻引擎(video engine)、傳送(transport)功能和會(huì)話管理(session management)功能以及對本地音頻、視頻、網(wǎng)絡(luò)的操作功能和向?yàn)g覽器提供的 API(application programming interface)。目前公開的核心技術(shù)包括音視頻編解碼技術(shù),如音頻的NetEQ算法、回聲抑制、噪聲消除,視頻的抖動(dòng)處理、圖像增強(qiáng)等。絕大部分技術(shù)來源于Google向業(yè)界開源的一些項(xiàng)目(參閱http://www.webrtc.org)。媒體的傳送部分重用ICE(interactive session establishment)技術(shù),支持對4種類型NAT(network address translation)或防火墻的穿透,實(shí)現(xiàn)點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)等多種方式媒體通路的建立和傳送。
在Google等公司的推動(dòng)下,WebRTC的標(biāo)準(zhǔn)化工作取得了快速發(fā)展。2011年5月,IETF成立RTCWeb工作組負(fù)責(zé)需求、總體方案和協(xié)議的制定,并為W3C(World Wide Web Consortium)提供輸入。與此同時(shí),W3C成立WebRTC工作組負(fù)責(zé)客戶端API的定義,幾個(gè)主要的瀏覽器(Firefox、Chrome、Opera)也都緊跟著標(biāo)準(zhǔn)化進(jìn)展的步伐推出了支持WebRTC的版本。另外,3GPP也啟動(dòng)了WebRTC access to IMS的工作項(xiàng)目,并在2013年7月得到了全球主要運(yùn)營商和設(shè)備商的一致支持和積極參與。研究的內(nèi)容主要是實(shí)現(xiàn)WebRTC客戶端與IMS客戶端的互操作性,因此需要對IMS進(jìn)行增強(qiáng)。
近年來電信市場通信業(yè)務(wù)增長緩慢,來自電信市場研究公司TeleGeography的一份報(bào)告顯示,2012年國際電話通信量僅增長5%,達(dá)到4 900億分鐘。而與此同時(shí),互聯(lián)網(wǎng)通信類應(yīng)用卻保持著爆發(fā)式的增長速度。以Skype為例,2012年語音和視頻流量增長44%,達(dá)到1 670億分鐘,相當(dāng)于全部電信運(yùn)營商國際電話通信總量的1/3,這還不包括其他流行的通信類應(yīng)用(如 GTalk、微信、Viber、Line、Nimbuzz、KakaoTalk 等),對比如圖1所示。
圖1 國際電話通話分鐘數(shù)與Skype的對比(來源:TeleGeography)
WebRTC技術(shù)的出現(xiàn),必將進(jìn)一步加劇這一趨勢,因?yàn)橛脩粼谑褂眠@些應(yīng)用時(shí)將不再需要下載安裝客戶端(或插件),直接打開支持WebRTC的瀏覽器即可,這將為用戶帶來極大的便利性。如果這些通信類應(yīng)用都提供WebRTC方式的應(yīng)用支持,將會(huì)大大提高服務(wù)的可用性——只要有瀏覽器的地方,用戶就可以使用它們的服務(wù),而且會(huì)帶來新的使用方式和用戶體驗(yàn)。
WebRTC可以作為一種全新的VoIP應(yīng)用形態(tài),催生其他應(yīng)用向VoIP領(lǐng)域轉(zhuǎn)移和拓展。例如,各種電商、社交類應(yīng)用,通過對應(yīng)用平臺(tái)的增強(qiáng)實(shí)現(xiàn)WebRTC支持,這樣用戶之間可以直接在Web頁面上發(fā)起VoIP呼叫,把原有的服務(wù)能力自然延伸到VoIP領(lǐng)域,提供更為豐富和全面的用戶體驗(yàn)。
從產(chǎn)業(yè)發(fā)展的情況看,目前已經(jīng)有眾多著名互聯(lián)網(wǎng)廠商投入WebRTC技術(shù)研究和規(guī)范制定領(lǐng)域,更多的廠商潛心研究WebRTC已經(jīng)公開的技術(shù)和代碼,并在此之上開發(fā)各式各樣的應(yīng)用,可以預(yù)見,將來基于Web的通信會(huì)廣泛出現(xiàn)在各類互聯(lián)網(wǎng)應(yīng)用之中,而這必將對運(yùn)營商的通信業(yè)務(wù)帶來深遠(yuǎn)的影響。
從產(chǎn)業(yè)發(fā)展看,以Skype為代表的OTT VoIP應(yīng)用對運(yùn)營商通信業(yè)務(wù)帶來巨大的業(yè)務(wù)分流和替代已經(jīng)是大勢所趨,而WebRTC技術(shù)所帶來的便利性和新的用戶體驗(yàn)也必將極大地促進(jìn)這一趨勢的發(fā)展,從而侵蝕運(yùn)營商的語音業(yè)務(wù)。與此同時(shí),WebRTC的興起也給運(yùn)營商帶來更多的機(jī)遇,具體如下:
·WebRTC帶動(dòng)互聯(lián)網(wǎng)語音和視頻應(yīng)用的發(fā)展,為運(yùn)營商帶來巨大的數(shù)據(jù)流量,并拉動(dòng)接入需求的增長;
·WebRTC用戶成為運(yùn)營商的潛在客戶,運(yùn)營商可以通過與WebRTC的互通獲得更多的呼入呼出話務(wù)量,從而擴(kuò)大營收規(guī)模;
·借助WebRTC技術(shù),可以開發(fā)新的業(yè)務(wù)形式和解決方案,如使用戶從任意支持瀏覽器的設(shè)備上接入運(yùn)營商網(wǎng)絡(luò)。
WebRTC自推出以來就受到了廣泛關(guān)注,特別是與IMS關(guān)系的話題。事實(shí)上,兩者在服務(wù)能力、主要技術(shù)等方面有很多共同點(diǎn),主要體現(xiàn)在如下幾個(gè)方面:
·提供基于IP的基本語音、視頻服務(wù);
·在控制面有很多技術(shù)相通,如呼叫狀態(tài)處理、終端?;?、呼叫連續(xù)性等,媒體協(xié)商也基本一致(WebRTC還需要考慮呼叫狀態(tài)保存);
·語音、視頻編解碼技術(shù)以及回聲消除、糾錯(cuò)、碼率適應(yīng)算法等方面,可以共用 (出于規(guī)范定義的原因,IETF RTCWeb工作組對必須支持的語音、視頻編解碼和3GPP規(guī)范對IMS的要求存在很大不同);
·NAT和防火墻穿越方面,采用相同的ICE技術(shù)(IMS還有ALG(application layer gateway)方式的解決方案)。
從產(chǎn)品定位看,WebRTC技術(shù)定位于為雙方或者多方基于Web瀏覽器直接進(jìn)行實(shí)時(shí)交互式溝通,而IMS則為電信用戶提供多媒體通信(multimedia telephony)服務(wù),需要遵循原有通信業(yè)務(wù)和各種管制法規(guī)的要求,而WebRTC則沒有這些約束,這也從本質(zhì)上決定了兩者必然存在的差異,兩者對比見表1。
除此之外,兩者還有很多細(xì)節(jié)上的區(qū)別,如語音編碼方面,WebRTC只有G.711和Opus是必需的,而IMS則要求支持幾乎所有傳統(tǒng)電話網(wǎng)的編碼;媒體路由方面,IMS路由需要經(jīng)過核心網(wǎng),而WebRTC則可以是完全點(diǎn)對點(diǎn)的。另外,IMS作為基礎(chǔ)電信服務(wù)面向普遍的有通信需求的用戶,接入方式既包括智能終端,也包括其他各種類型的終端,如傳統(tǒng)電話、手機(jī)、IAD(integrated access device)、SIP話機(jī)等,如果WebRTC期望把服務(wù)延伸到電信用戶領(lǐng)域,也需要考慮與IMS的互聯(lián)互通。同樣的,IMS也可以引入WebRTC的技術(shù)成果,以提高服務(wù)的便利性和擴(kuò)展用戶規(guī)模。
需要指出的是,雖然WebRTC的目標(biāo)是提供基于瀏覽器的點(diǎn)對點(diǎn)語音、視頻等業(yè)務(wù),但其使用方式并不能完全局限于瀏覽器,其應(yīng)用方式主要包括如下幾種。
·基于瀏覽器的應(yīng)用,瀏覽器必須支持WebRTC,服務(wù)器提供呼叫控制。瀏覽器與服務(wù)器之間以HTTP或Web Socket交互。
·在本地應(yīng)用中使用WebRTC,即應(yīng)用客戶端集成WebRTC能力,與網(wǎng)絡(luò)側(cè)的服務(wù)器以XMPP、SIP等協(xié)議交互。有很多原有的VoIP類應(yīng)用都是通過這種方式改造使用WebRTC的一些技術(shù)成果。
經(jīng)過前面的對比和分析,WebRTC與IMS有著很多區(qū)別,但兩者并不是對立的,而是有著各自的應(yīng)用場合,能夠相互補(bǔ)充和結(jié)合。從IMS角度看,與WebRTC的結(jié)合主要有3種方式:利用WebRTC接入、與WebRTC互通和與WebRTC融合。
傳統(tǒng)的IMS客戶端包括硬終端和軟終端,WebRTC的出現(xiàn)使得單純基于瀏覽器的IMS客戶端成為可能。WebRTC瀏覽器提供了對本地麥克和攝像頭的訪問功能,封裝了媒體面所需要的能力,包括語音、視頻編解碼和NAT穿越等。
以WebRTC方式接入IMS的系統(tǒng)架構(gòu)如圖2所示,需要部署WebRTC接入網(wǎng)關(guān)連接到IMS網(wǎng)絡(luò)。WebRTC接入網(wǎng)關(guān)提供IMS應(yīng)用邏輯,包括用戶鑒權(quán)、呼叫控制等。媒體面需要有媒體服務(wù)器提供NAT穿越、轉(zhuǎn)碼等功能。IMS用戶通過支持WebRTC的瀏覽器連接到接入網(wǎng)關(guān)并以HTTP/Web Socket交互,首先實(shí)現(xiàn)用戶鑒權(quán)。鑒權(quán)通過后,在用戶UI上顯示撥號(hào)盤或者通訊錄列表供用戶發(fā)起和接收呼叫。呼叫建立的過程中,通過調(diào)用JavaScript API建立起媒體面連接,經(jīng)由媒體服務(wù)器轉(zhuǎn)接與IMS網(wǎng)絡(luò)建立媒體流。
表1 IMS與WebRTC的對比
這一方案應(yīng)用于運(yùn)營商為IMS用戶提供Web方式登錄使用IMS業(yè)務(wù)的場景,即用戶首先是運(yùn)營商的用戶。帶來的好處是顯而易見的,用戶不需要安裝或購買專用的客戶端即可使用IMS服務(wù)。由于是通過瀏覽器方式訪問WebRTC接入網(wǎng)關(guān),免去了終端軟件升級(jí)帶來的煩惱。鑒權(quán)時(shí)所使用的身份信息與通過其他方式登錄IMS一致。使用業(yè)務(wù)時(shí)如何處理與其他IMS終端的關(guān)系,可以由運(yùn)營商的策略來控制。
IMS用戶和WebRTC用戶之間相互進(jìn)行語音、視頻通話的場景,即兩個(gè)用戶分別屬于IMS網(wǎng)絡(luò)和WebRTC網(wǎng)絡(luò),由一端發(fā)起與另一端的通話。WebRTC呼叫服務(wù)平臺(tái)與IMS之間通過IMS與WebRTC的互通網(wǎng)關(guān)連接,如圖3所示。
圖3中WebRTC用戶通過瀏覽器接入WebRTC服務(wù)平臺(tái)。IMS用戶接入IMS網(wǎng)絡(luò),沒有在圖3中畫出,兩個(gè)用戶分別在各自的服務(wù)平臺(tái)鑒權(quán)。進(jìn)行互通時(shí),WebRTC平臺(tái)和IMS都需要進(jìn)行增強(qiáng),增加呼叫路由規(guī)則。當(dāng)WebRTC用戶發(fā)起呼叫時(shí),WebRTC平臺(tái)需要判別該用戶為IMS用戶,路由呼叫到WebRTC互通網(wǎng)關(guān),WebRTC網(wǎng)關(guān)向該IMS用戶標(biāo)識(shí)發(fā)起呼叫,然后按照IMS的規(guī)則進(jìn)行呼叫處理,反之亦然。需要說明的是,此時(shí)WebRTC互通網(wǎng)關(guān)與IMS網(wǎng)絡(luò)之間通過NNI(network to network interface)交互,交互的網(wǎng)元可以是I-CSCF或SBC(session border controller)。為了NAT穿越的需要,WebRTC用戶的媒體流可能需要經(jīng)過中間節(jié)點(diǎn)(如TURN服務(wù)器)中轉(zhuǎn),具體與網(wǎng)絡(luò)部署有關(guān)。
在這種場景下,用戶同時(shí)歸屬于WebRTC用戶和IMS用戶,用戶既可以在WebRTC平臺(tái)發(fā)起和接收呼叫,也可以在IMS網(wǎng)絡(luò)發(fā)起和接收呼叫,甚至可以在呼叫過程中在兩個(gè)域之間切換。這種方式對用戶而言有極大的自主性,可以根據(jù)偏好在不同的時(shí)候采用不同的服務(wù)。比如,網(wǎng)絡(luò)條件好時(shí)采用WebRTC服務(wù),條件變差時(shí)切換到IMS服務(wù),或者設(shè)置在國際漫游時(shí)自動(dòng)切換到WebRTC服務(wù),以節(jié)省資費(fèi)。對于這種場景的研究目前比較少,實(shí)現(xiàn)起來也比較復(fù)雜,需要對WebRTC和IMS網(wǎng)絡(luò)都進(jìn)行更多的增強(qiáng)并引入類似IMS VCC的能力,在這里不做詳細(xì)介紹。
WebRTC作為一項(xiàng)發(fā)展中的技術(shù),仍然有很多問題處于研究之中或有待研究,主要包括以下幾個(gè)方面。
·呼叫建立過程中的狀態(tài)保存問題,包括呼叫的會(huì)話狀態(tài)、媒體描述信息和ICE協(xié)商狀態(tài),瀏覽器刷新可能導(dǎo)致這些狀態(tài)信息丟失,目前考慮的方式是封裝成對象保存到服務(wù)器端,在完成信息保存的同時(shí),又避免了API的復(fù)雜化。
圖2 用戶以WebRTC方式接入IMS
圖3 IMS與WebRTC互通
·呼叫相關(guān)的協(xié)議和流程定義,包括對呼叫分支的處理,如串振、并振等方式以及SDP擴(kuò)展和交互過程,協(xié)議的擴(kuò)展目前由IETF RTCWeb工作組協(xié)同MMUSIC工作組進(jìn)行。
·QoS。對于提供DiffServ的網(wǎng)絡(luò),通過定義不同媒體流(音頻、交互式視頻、非交互式視頻、數(shù)據(jù))的優(yōu)先級(jí)提高QoS。
·WebRTC的安全。WebRTC的安全威脅是顯而易見的。由于瀏覽器提供了對本地資源的訪問,一個(gè)惡意的Web站點(diǎn)可能在用戶毫無察覺的情況下啟動(dòng)本地?cái)z像頭、麥克風(fēng)等侵犯用戶的隱私,或者冒充某個(gè)用戶的身份發(fā)起呼叫而難以識(shí)別。另外,屏幕共享時(shí),Web站點(diǎn)通過JavaScript代碼可能竊取超出用戶共享范圍的內(nèi)容。
·IMS用戶以WebRTC方式接入,提供用戶的鑒權(quán)、計(jì)費(fèi)、緊急服務(wù)以及合法監(jiān)聽等業(yè)務(wù)。
·WebRTC與IMS互通。
·WebRTC 與 PCC(policy and charging control)結(jié)合 ,以提高QoS和管控能力。
此外還有一些技術(shù)問題等待探索,如HTTP-only型NAT/防火墻的穿越、WebRTC緊急服務(wù)和合法監(jiān)聽的提供等。
在這個(gè)一切走向Web的時(shí)代,WebRTC以其極大的便利性必將獲得長足的發(fā)展。從現(xiàn)有的態(tài)勢看,傳統(tǒng)客戶端方式的VoIP應(yīng)用都紛紛推出對WebRTC的支持。各個(gè)主流的瀏覽器廠商對WebRTC的支持更是亦步亦趨。WebRTC的開源和對通信能力的封裝大大降低了VoIP應(yīng)用的開發(fā)難度,應(yīng)用開發(fā)者不需要具備專門的VoIP經(jīng)驗(yàn)就可以開發(fā)出專業(yè)的WebRTC應(yīng)用,這將促進(jìn)互聯(lián)網(wǎng)化的VoIP應(yīng)用能力的蓬勃發(fā)展。而WebRTC使用的便利性使得用戶可以隨時(shí)利用此類應(yīng)用發(fā)起語音、視頻呼叫或者文件共享,因此VoIP用戶規(guī)模也會(huì)迅速擴(kuò)大。一方面,這種趨勢會(huì)對運(yùn)營商的通信類業(yè)務(wù)帶來極大的影響;另一方面,VoIP應(yīng)用的普及和用戶群的擴(kuò)大也有利于運(yùn)營商擴(kuò)大服務(wù)范圍和話務(wù)流量,也會(huì)帶來可觀的數(shù)據(jù)流量。無論是引入WebRTC技術(shù)到運(yùn)營商業(yè)務(wù)中,還是與WebRTC互通,都會(huì)為運(yùn)營商帶來更多的價(jià)值。也許未來會(huì)形成以運(yùn)營商通信業(yè)務(wù)為代表的、受控的VoIP生態(tài)系統(tǒng)和一個(gè)以WebRTC為代表的OTT VoIP的生態(tài)系統(tǒng)共存的局面。前者服務(wù)于有QoS保障、高可靠性、提供普遍服務(wù)和全球互通的用戶群體,后者服務(wù)于互聯(lián)網(wǎng)化、低成本的有通信需求的用戶群體,兩者之間的互聯(lián)實(shí)現(xiàn)更大規(guī)模的互聯(lián)互通。
1 WebRTC.http://www.webrtc.org
2 W3C HTML5.http://www.w3.org/TR/html5/
3 W3C WebRTC Workgroup.http://www.w3.org/2011/04/webrtccharter.html
4 W3C WebRTC API.http://dev.w3.org/2011/webrtc/editor/webrtc.html
5 IETF RTCWeb Workgroup.http://tools.ietf.org/wg/rtcweb/charters
6 3GPP TR 23.701.Study on the Support of WebRTC IMS Client Access to IMS,2010
7 IETF RFC5245.ICE (interactive connectivity establishment).http://tools.ietf.org/html/rfc5245,2010
8 IETF RFC5389.STUN(session traversal utilities for NAT).http://tools.ietf.org/html/rfc5389,2008
9 IETF RFC5766.TURN (traversal using relays around NAT).http://tools.ietf.org/html/rfc5766,2010
10 IETF RFC6716.Opus(definition of the opus audio codec).http://tools.ietf.org/html/rfc6716,2013
11 IETF RFC3261.SIP(session initiation protocol).http://tools.ietf.org/html/rfc3261,2002
12 IETF RFC3264.SDP (session description protocol).http://tools.ietf.org/html/rfc3264,2010
13 IETF RFC6455.The Web socket protocol.http://tools.ietf.org/html/rfc6455,2011