于世航 張建中 齊幸輝
(河北遠東通信系統工程有限公司,河北石家莊 050002)
基于WebRTC的多媒體通信軟終端技術研究
于世航 張建中 齊幸輝
(河北遠東通信系統工程有限公司,河北石家莊 050002)
為了提高多媒體通信終端之間的通信效率,增強用戶的體驗,研究基于WebRTC的多媒體通信軟終端技術。利用WebRTC技術,用戶之間可以直接利用基于HTML5技術的瀏覽器進行多媒體通信,大大提高了用戶之間通信的便捷性。重點描述了WebRTC技術的產生背景、WebRTC功能架構以及WebRTC技術相關概念特點;介紹了WebRTC技術在統一通信軟終端的應用,并分析了應用WebRTC技術所帶來的優勢和限制WebRTC技術發展的一些因素。
WebRTC多媒體統一通信HTML5
隨著網絡和通信技術的發展,人們之間的通信逐漸由傳統的語音通信向多媒體通信發展,與此同時通信軟終端的結構也變得越來越復雜,為了使用終端必須安裝相關軟件或插件,這給人們帶來了極大的不便。
WebRTC(Web Real-Time Communication)是一種構建
定稿日期:2015-02-26在Web瀏覽器基礎上的實時音視頻通信技術,本質是將實時通信應用所需要的音視頻捕獲及處理、網絡傳輸及會話控制等功能集成到Web瀏覽器當中[1]。基于WebRTC的多媒體通信軟終端可以使用戶避免安裝插件軟件的復雜過程,直接在支持WebRTC技術的瀏覽器上進行實時的音視頻通信,用戶體驗一致性高。另外,基于WebRTC的多媒體軟終端使用Javascript和HTML5開發,開發者不需要為專門的操作系統開發不同的版本;開發者只需重點關注業務本身而不必太關注媒體信息的處理。
2.1 WebRTC介紹
WebRTC由Google收購的Global IP Solution公司開發,并由Google在2010年向外開放,目前已成為實時通信技術的熱點。WebRTC項目的目的主要是讓Web開發者能夠基于瀏覽器簡便快捷的開發出豐富的實時多媒體應用,而無需下載安裝任何插件,Web開發者也無需關注多媒體數字信號的處理過程,只需編寫簡單的Javascript程序即可實現[2]。
在Google公司的推動下,WebRTC標準化工作取得了快速發展。2010年5月,IETF成立RTCWeb工作組負責需求、總體方案和協議的制定,并為W3C(World Wide Web Consortium)提供輸入。與此同時,W3C成立WebRTC工作組負責客戶端API的定義,這些應用編程接口用于幫助Web應用完成Web瀏覽器之間點對點或點對多點之間的實時通信[3]。
幾個主要的瀏覽器(Firefox、Chrome、Opera)也都緊跟著標準化進展的步伐推出了支持WebRTC的版本。目前各個瀏覽器版本對WebRTC的支持如表1所示。

表1 各瀏覽器對WebRTC的支持情況
2.2 HTML5技術
HTML5技術是Web的新一代技術標準,它是是構建并呈現互聯網內容的一種語言方式,被認是互聯網的核心技術之一。HTML最早被提出是在1990年,到1997年演變到HTML4,并逐漸發展成為互聯網標準,廣泛應用于Web應用的開發。HTML5的前身名為Web Application 1.0,于2004年被WHATWG提出,2007年被W3C接納,并成立了新的HTML工作團隊[4]。HTML5是HTML的第5個版本,也是最新版本。HTML5技術指的是包括javascript、HTML和CSS等一系列技術的集合。它減少了瀏覽器對于插件(如Adobe Flash、Microsoft Silverlight)的依賴,同時HTML5提供了一些能夠很好增強Web多媒體應用的標準集。具體來說,HTML5添加了許多新的語法特征,新的元素如〈video〉、〈audio〉、〈canvas〉被添加,這些元素的添加使得程序可以直接使用支持HTML5技術的瀏覽器直接處理音視頻信息;同時HTML5也刪除了〈big〉、〈caption〉、〈basefont〉等元素。在HTML5中,DOM和API也成為了其基礎部分[5]。總的來說,HTML5技術使得頁面設計更加簡化,分離了頁面的布局和樣式,腳本的復雜度也隨之降低,同時減少了Web應用對插件的依賴性[6]。HTML5的核心技術主要包括對音視頻的支持、Canvas畫布、離線存儲、Web Socket等。
2.3 通信信令技術
通信信令是和通信有關的一系列控制信號,涉及通信網中的連接、建立、控制、管理等方面的信息交換。信令是通信網絡的神經,它指揮整個通信網絡有效地運行和服務,信令的性能在很大程度上反映了網絡向用戶提供的服務能力和服務質量[7]。
隨著通信技術的發展,通信網絡也逐步由PSTN網絡向NGN(Next Generation Network)演變,NGN的主要特點是業務與控制、接入與承載彼此分離,而SIP(Session Initiation Protocol)信令很好的適應了這一特點,下面簡要介紹SIP信令。
SIP網絡主要分為以下幾個邏輯實體:User Agent(用戶代理)、Proxy(代理服務器)、Register(注冊服務器)、Redirect Server(重定向服務器),這些實體之間采用SIP通信。其中用戶代理對接收到的請求或響應消息進行代理,然后發送到SIP網絡中;代理服務器主要完成信息的轉發;注冊服務器接收用戶的注冊請求。
SIP消息采用文本方式,因此相對于二進制的信令,SIP消息簡單易懂。可分為請求和響應兩大類。響應以三位數字進行表征,第一位表示類別,后兩位與第一位結合表示不同的響應消息[8]。
WebRTC功能架構如圖1所示。

圖1中的WebRTC Web API層是面向第三方開發者的WebRTC標準API,這些API使得開發者可以便捷地開發出Web多媒體應用,主要包含三方面的API:RTCPeerConnection、Network Stream API、Peer-to-Peer Data API。WebRTC native API(C++)是本地C++API層,主要面向瀏覽器廠商,抽象地對數字信號進行處理;Session Managermen層提供會話建立和管理的功能,該層功能留給開發者自己定義實現。Voice Engine是包含一系列音頻多媒體處理的框架,包括從視頻采集卡到網絡傳輸端等整個解決方案:iSAC/iLBC編解碼、語音NetEQ技術、回聲消除、噪音抑制技術。Video Engine是一系列視頻處理技術的組合,包括視頻抖動緩沖、VP8編解碼、圖像增強模塊。在Transport層中,媒體流的傳輸主要使用RTP/SRTP協議,并采用ICE技術進行媒體流的私網穿透(需要STUN或TURN服務器支持)。總的來說,WebRTC向瀏覽器引入了音視頻引擎、網絡傳輸及會話控制的功能,音視頻引擎提供了從音視頻采集設備到網絡傳輸端的整個處理方案,且都采用了開源編碼格式。
統一通信是指把計算機技術與傳統通信技術融為一體的新通信模式,作為一種解決方案和應用,其核心內容是:使人們可以通過任何網絡設備在任何時間和地點來獲得自由的多媒體通信。也就是說,統一通信將語音、短消息、多媒體和數據等等所有信息類型合為一體,從而為人們帶來選擇的自由和效率的提升。它不僅僅是Web層面的互聯互通,而是以人為本的應用層面的協同與融合,是一個更高層次的理念,新一代通信與IT產業[9]。
在統一通信系統中,客戶端主要為用戶提供語音、視頻、即時消息、文件傳輸、通訊錄等實時通信服務和登錄鑒權服務。客戶端首先使用鑒權功能登錄服務器,然后客戶端之間通過服務器提供的服務進行實時通信。統一通信客戶端主要包含PC客戶端和手機客戶端(包括android和iOS)。
傳統的客戶端需要考慮到平臺的差異,例如在PC端、android端和iOS端的開發有很大的差異,這給開發人員帶來了很多不必要的麻煩;另外,由于要使用到多媒體通信的功能,用戶在使用客戶端時還需要安裝相關軟件和插件來實現多媒體通信功能,這給用戶也帶來了很大的不便。
使用WebRTC技術可以很好的解決上述問題,WebRTC技術是基于瀏覽器的,開發人員可以通過簡單的javascript技術來實現客戶端程序的開發而不用考慮平臺之間的差異[10];另外,由于WebRTC技術自帶的多媒體搜集和處理功能,用戶只需通過PC和手機的瀏覽器輸入網址登錄客戶端,然后進行多媒體通信而不需要安裝控件和插件,其架構如圖2所示。

圖2 基于WebRTC多媒體客戶端架構
基于WebRTC的統一通信客戶端屏蔽掉了PC、android 和iOS平臺之間的差異,客戶端開發者用javascript語言編寫統一通信系統的功能界面;另外,由于WebRTC沒有給出抽象會話層的實現,因此客戶端開發者還需編寫抽象會話層的協議,來提供會話建立和管理功能。
圖2中,在Web客戶端,功能界面包含登錄、音視頻呼叫接收等界面。用戶通過功能界面登錄服務器后,可以發起音視頻等呼叫,客戶端與服務器之間通過開發人員定義的會話協議(SIP、XMPP等)進行連接,呼叫過程如圖3所示。

圖3 WebRTC客戶端呼叫流程
發起呼叫請求后,WebRTC客戶端首先通過WebRTC技術提供的getUserMedia()函數獲取本地音視頻設備的音視頻媒體流,然后通過WebRTC接口創建本地的PeerConnection,將MediaStream添加到PeerConnection;添加成功后調用定義的會話協議接口發送INVITE消息(使用SIP協議),通過服務器轉發到達對端,對端接收到呼叫請求后,與發送端操作相同,最后發送接受呼叫請求的消息。發送端接收到該消息后,二者之間就建立了WebRTC連接。連接成功后,客戶端之間就可以利用WebRTC技術進行音視頻信息的傳輸通信。WebRTC客戶端不僅可以相互之間進行多媒體通信,同時也可以與其他SIP終端,如IP電話、SIP視頻話機、原有軟終端等進行多媒體通信。
在如今這個Web技術快速發展的時代,WebRTC多媒體通信軟終端以其極大的便利性必然會取代原有的通信客戶端,獲得長足的發展。WebRTC技術雖然可以為用戶和開發人員提供便捷的通信方式,但現在還處于發展階段,WebRTC技術的標準化工作還在進行當中;另外,當前支持WebRTC技術的瀏覽器還沒有完全普及,這在一定程度上會限制其發展。
[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實戰指南[M].宋松譯.北京:人民郵電出版社,2011.
[6]張志明,柯衛.基于HTML5的視頻通信云服務應用技術研究[J].電信科學,2012,28(10):31-37.
[7]盧華,王保保.oSIP協議棧的研究和應用[J].電子科技,2006 (2):61-64.
[8]陸立,張鵬生,張華,等.NGN協議原理與應用[M].北京:機械工業出版社,2004.
[9]張俊,蘇海鵬.統一通信簡介[J].中國交通信息化,2013(7): 104-105.
[10]付斌,楊鑫,王松等.WebRTC技術研究及其應用[J].電信科學,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