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

?

WebRTC技術(shù)在語音平臺中的應用研究*

2018-03-13 01:19:02
通信技術(shù) 2018年2期
關(guān)鍵詞:開發(fā)者瀏覽器網(wǎng)頁

趙 宇

0 引 言

WebRTC是一個開源項目,可以在瀏覽器中不借助任何插件進行實時通信。由Google、Opera和Mozilla主導的這一項目,允許開發(fā)者在瀏覽器中僅使用JavaScript API和HTML5將聲音、訊息和視頻融為一體。盡管WebRTC提供了一些標準以促進創(chuàng)新,但尚有一些問題需要解決。其中,兩個大問題是缺少標準化信令和瀏覽器的普遍支持。WebRTC聯(lián)盟曾故意遺漏信令標準來避免沖突,使各方盡快就標準達成共識。因此,廠商目前可以使用各不相同的協(xié)議,包括SIP、WebSockets以及HTTP協(xié)議,從而使WebRTC跨瀏覽器應用而被廣泛支持。

1 WebRTC簡介

WebRTC,名稱源自網(wǎng)頁實時通信(Web Real-Time Communication)的縮寫,是一個支持網(wǎng)頁瀏覽器進行實時語音對話或視頻對話的技術(shù)。WebRTC實現(xiàn)了基于網(wǎng)頁的視頻會議,標準是WHATWG協(xié)議,目的是通過瀏覽器提供簡單的javascript就可以達到實時通訊(Real-Time Communications,RTC)能力。

WebRTC項目的最終目的主要是讓Web開發(fā)者能夠基于瀏覽器輕易快捷地開發(fā)出豐富的實時多媒體應用,而無需下載安裝任何插件;Web開發(fā)者也無需關(guān)注多媒體的數(shù)字信號處理過程,只需編寫簡單的Javascript程序即可實現(xiàn)[1]。WebRTC提供了視頻會議的核心技術(shù),包括音視頻的采集、編解碼、網(wǎng)絡傳輸、顯示等功能,且支持跨平臺windows、linux、mac、android。谷歌瀏覽器、火狐瀏覽器、360安全瀏覽器等,目前支持WebRTC技術(shù)標準。

2 WebRTC系統(tǒng)架構(gòu)

WebRTC的系統(tǒng)架構(gòu),如圖1所示。

圖1 WebRTC系統(tǒng)架構(gòu)

3 WebRTC架構(gòu)組件介紹

如圖1所示,WebRTC架構(gòu)組件主要包括Web應用APP、面向Web應用開發(fā)者的Web API、面向瀏覽器廠商開發(fā)者的WebRTC Native C++ API以及WebRTC 內(nèi)核[2]。

Web開發(fā)者開發(fā)的程序,是指Web開發(fā)者可以基于集成WebRTC的瀏覽器提供的Web API開發(fā)基于視頻、音頻的實時通信應用,如云呼叫中心JSSIP框架和坐席應用。

Web API是指面向第三方開發(fā)者的WebRTC標準API(Javascript)。這些API可分成Network Stream API、RTCPeerConnection和Peer-to-peer Data API三類。

Network Stream API的主要對象包括[3]:

①MediaStream用來表示媒體數(shù)據(jù)流;

②MediaStreamTrack,在瀏覽器中表示媒體源;

③ RTCPeerConnection,RTCPeerConnection對象允許用戶在兩個瀏覽器之間直接通訊;

④RTCIceCandidate表示ICE協(xié)議的候選者;

⑤RTCIceServer表示ICE Server;

⑥Peer-to-peer Data API表示點對點數(shù)據(jù)接口;

⑦DataChannel:數(shù)據(jù)通道表示一個在兩個節(jié)點之間的雙向的數(shù)據(jù)通道。

⑧WebRTC Native C++ API是指本地C++ API層,它使瀏覽器廠商容易實現(xiàn)WebRTC標準的Web API,抽象地對數(shù)字信號過程進行處理。

WebRTC核心層包括:

①Transport/Session(傳輸/會話層)組件采用libjingle庫的部分組件實現(xiàn),無須使用xmpp/jingle協(xié)議;

②RTP Stack協(xié)議棧,即Real Time Protocol;

③STUN/ICE可以通過STUN和ICE組件建立不同類型網(wǎng)絡間的呼叫連接;

④Session Management是一個抽象的會話層,提供會話建立和管理功能。該層協(xié)議留給應用開發(fā)者自定義實現(xiàn)。

⑤VoiceEngine(音頻引擎)是包含一系列音頻多媒體處理的框架,包括從視頻采集卡到網(wǎng)絡傳輸端的整個解決方案。

⑥VideoEngine(視頻引擎)是包含一系列視頻處理的整體框架,包括從攝像頭采集視頻到視頻信息網(wǎng)絡傳輸再到視頻顯示的整個完整過程的解決方案。

4 WebRTC技術(shù)在云呼叫中心平臺的應用

為了方便租用云呼叫中心坐席的用戶使用,將WebRTC技術(shù)引入云呼叫中心系統(tǒng)平臺。用戶通過瀏覽器網(wǎng)頁,不用加載任何插件即可進行通話,且用戶不需了解任何關(guān)于SIP參數(shù)的專業(yè)配置[4]。系統(tǒng)架構(gòu)圖,如圖2所示。

圖2 系統(tǒng)架構(gòu)

在云呼叫中心系統(tǒng)的核心軟交換平臺增加了對WebRTC的適配模塊,即增加對WebSOCKET的支持和SIP OVER WebSOCKET的處理。這樣核心軟交換平臺就實現(xiàn)了WebRTC和標準SIP AGENT之間的交換,從而達到相互通信的目的。

整個平臺的架構(gòu)是完全分布式的,采用高內(nèi)聚、低耦合的模塊化設計思想。軟交換平臺可以分布式擴展,并且根據(jù)坐席和SIP中繼線路分配相應的負荷量,確保系統(tǒng)平滑擴展,沒有瓶頸。Web和應用服務器可以采用集群方式擴展,數(shù)據(jù)庫服務器可以采用ORACLE RAC來做集群擴展。

模塊之間采用業(yè)界最好的ICE中間件實現(xiàn)分布式通信和負載均衡,通信安全可靠。Web瀏覽器和服務器之間采用HTTPS協(xié)議,實現(xiàn)了客戶數(shù)據(jù)的高度安全保護,采用SRTP實現(xiàn)語音媒體通信的安全性,確保不能被監(jiān)聽。

坐席的通話方式支持IP話機(支持視頻)、IAD電話、網(wǎng)絡電話軟件(支持視頻)、網(wǎng)頁通話(瀏覽器WebRTC,支持視頻)和綁定手機或固定電話。客戶端采用瀏覽器方式即B/S結(jié)構(gòu),易于升級,便于采用互聯(lián)網(wǎng)方式運營。

系統(tǒng)核心軟交換平臺采用基于業(yè)界最先進的開源軟交換系統(tǒng)FREESWITCH定制開發(fā)的、支持集群的功能強大的軟交換系統(tǒng),支持SIP等常見軟交換協(xié)議。

核心軟交換平臺配置了功能強大的TTS(文本語音轉(zhuǎn)換引擎)、MCU和錄音錄像引擎。核心軟交換平臺通過SIP中繼和聯(lián)通軟交換網(wǎng)絡互聯(lián)。每個SIP中繼對應一組中繼號碼段,每個SIP中繼接入到不同的軟交換服務器。

數(shù)據(jù)庫系統(tǒng)采用ORACLE,具備業(yè)界最好的安全性和可靠性。擴容時,可以采用ORACLE RAC實現(xiàn)。

Web和應用服務器可以采用集群方式擴展,實現(xiàn)云呼叫中心系統(tǒng)的所有功能。和其他系統(tǒng)的互聯(lián)采用標準HTTP協(xié)議和JavaScript函數(shù)API接口。

ACD/IVR/CTI以及視頻會議控制服務端軟件,支持多服務器部署。

IVR是指語音流程模塊,主要處理來電的交互式語音響應??蛻敉ㄟ^不同的按鍵選擇不同的業(yè)務或者自助查詢服務,也可以通過語音識別(ASR)模塊識別客戶說話進行交互。不同的企業(yè)通過后臺Web管理頁面來定制自己企業(yè)的語音流程。例如,可以定義多個語音流程。不同的時段定義不同的語音流程,如上班時間的流程、休息時間的流程;也可以定義多個號碼的多個語音流程,其中每個號碼對應一個語音流程。

ACD(自動呼叫分配)模塊實現(xiàn)來電呼叫的排隊和自動分配以及坐席的管理。排隊和自動分配是以隊列為基本單位進行處理的,客戶可以在后臺Web管理頁面配置各個業(yè)務隊列,并定制其排隊和分配策略。

CTI模塊實現(xiàn)了來電的客戶信息識別以及服務端和客戶端的信息推送,如來電彈屏功能。錄音模塊實現(xiàn)了對坐席通話的實時錄音和存儲管理,TTS(文本轉(zhuǎn)語音)模塊實現(xiàn)了文本轉(zhuǎn)換為語音的功能,即在語音流程中播放指定的文字[5]。

FLEXGATE模塊實現(xiàn)了接收瀏覽器通過FLASH方式發(fā)送過來的控制命令,即關(guān)于CTI的坐席操作方面的控制命令通過FLASH實現(xiàn),如來電彈屏、簽入、簽出、上線、下線、外呼、會議、保持、監(jiān)聽、咨詢坐席等操作。瀏覽器的控制命令通過FLEXGATE和呼叫中心相關(guān)服務通信(IVR、ACD、CTI),系統(tǒng)部署如圖3所示。

圖3 系統(tǒng)部署

最后,基于JavaScript開發(fā)了瀏覽器網(wǎng)頁電話的支持框架JsSIP。這個框架是基于WebRTC的Web API開發(fā)的。它將框架集成到云呼叫中心網(wǎng)頁中,網(wǎng)頁就可以通過JavaScript調(diào)用簡單的框架提供的接口完成呼叫中心坐席電話的功能,完全可以替代傳統(tǒng)的網(wǎng)絡電話軟件或者插件。

5 JsSIP框架

瀏覽器應用框架如圖4所示。EXTJS框架實現(xiàn)各種管理軟件應用的頁面;FLASH組件實現(xiàn)ACD信令方面的通信;JsSIP組件實現(xiàn)音視頻通信,其建立在WebRTC的Web API層面開發(fā)。

圖4 瀏覽器應用框架

JsSIP是用于Web端SIP應用開發(fā)的一套JavaScript library。利用它可以實現(xiàn)完整的SIP協(xié)議棧和WebRTC交互功能,且可以在任何網(wǎng)站輕松提供一個功能齊全的SIP終端?;贘sSIP開發(fā)庫,任何網(wǎng)站只要添加幾行代碼就可以使用音頻、視頻和消息等實時通訊功能。

框架特點如下[6]:

(1)SIP over WebSocket傳送;

(2)Audio/video呼叫,即時消息和presence;

(3)純JavaScript代碼從最基礎構(gòu)建,容易使用功能完善的user API;

(4)可以和著名的OverSIP、Kamailio和Asterisk servers等SIP服務軟件互通。

JsSIP實現(xiàn)所遵循的規(guī)范如下:

RFC 3261“SIP∶ Session Initiation Protocol”

RFC 3311“SIP UPDATE Method”

RFC 3326“The Reason Header Field for SIP”

RFC 3327“SIP Extension Header Field for Registering Non-Adjacent Contacts”(Path header)

RFC 3428“SIP Extension for Instant Messaging”(MESSAGE method)

RFC 4028“Session Timers in SIP”

RFC 5626“Managing Client-Initiated Connections in SIP”(Outbound mechanism)

RFC 5954“Essential Correction for IPv6 ABNF and URI Comparison in RFC 3261”

RFC 6026“Correct Transaction Handling for 2xx Responses to SIP INVITE Requests”

RFC 7118“The WebSocket Protocol as a Transport for SIP”

JsSIP User Agent是JsSIP的核心元素,代表一個關(guān)聯(lián)的SIP帳號的SIP客戶端。JsSIP User Agent在JsSIP.UA class中定義。在同一個Web應用中,可以創(chuàng)建多個JsSIP User Agents。這在同一Web應用中運行多個不同的SIP帳號的情況下十分有用。

6 結(jié) 語

Google認為,支持互聯(lián)網(wǎng)的核心技術(shù)如HTML、HTTP和TCP/IP是開放免費的,互聯(lián)網(wǎng)也因此繁榮,所以音視頻技術(shù)也必須免費且高質(zhì)量。因此,WebRTC是變革者,將徹底改變media engines市場。

[1] 聶曉飛.基于WebRTC的跨平臺視頻會議系統(tǒng)的設計與實現(xiàn)[D].北京:北京交通大學,2014.NIE Xiao-fei.Design and Implementation of Crossplatform Video Conference System Based on WebRTC[D].Beijing:Beijing Jiaotong University,2014.

[2] 何明亮.WebRTC技術(shù)的研究與應用[D].南京:南京郵電大學,2014.HE Ming-liang.Research and Practice of the WebRTC Technology[D].Nanjing:Nanjing University of Posts and Telecommunication,2014.

[3] Bergkvist A,Burnett D C,Jennings C,et al.WebRTC1.0:Real-timeCommunication Between BrowsersW3C Editor’s Draft03[Z].2013.

[4] 陳龍明.基于JXTA和WebRTC的視頻會議系統(tǒng)設計與實現(xiàn)[D].合肥:中國科學院大學,2013.CHEN Long-ming.Design and Implementation of Video Conference System Based on JXTA and WebRTC[D].Hefei:University of Chinese Academy of Sciences,2013.

[5] Burnett D C,Narayanan A.Media Capture and Streams,W3CEditor’s Draft 30[Z].2013.

[6] 孫進寶.基于WebRTC的混音服務器的研究與設計[D].西安:西安電子科技大學,2014.SUN Jin-bao.Research and Design of WebRTC Based Mixer Server[D].Xi’an:Xidian University,2014.

猜你喜歡
開發(fā)者瀏覽器網(wǎng)頁
反瀏覽器指紋追蹤
電子制作(2019年10期)2019-06-17 11:45:14
基于CSS的網(wǎng)頁導航欄的設計
電子制作(2018年10期)2018-08-04 03:24:38
基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
電子制作(2017年2期)2017-05-17 03:54:56
16%游戲開發(fā)者看好VR
CHIP新電腦(2016年3期)2016-03-10 13:06:42
環(huán)球瀏覽器
再見,那些年我們嘲笑過的IE瀏覽器
英語學習(2015年6期)2016-01-30 00:37:23
網(wǎng)頁制作在英語教學中的應用
電子測試(2015年18期)2016-01-14 01:22:58
iOS開發(fā)者調(diào)查
電腦迷(2015年8期)2015-05-30 12:27:10
iOS開發(fā)者調(diào)查
電腦迷(2015年4期)2015-05-30 05:24:09
10個必知的網(wǎng)頁設計術(shù)語
海安县| 武威市| 汝城县| 夏邑县| 文成县| 黔西| 九龙坡区| 汨罗市| 广灵县| 万安县| 剑川县| 油尖旺区| 青阳县| 菏泽市| 寻乌县| 平潭县| 湖北省| 海安县| 新巴尔虎左旗| 汨罗市| 谷城县| 南丰县| 绥滨县| 华宁县| 齐齐哈尔市| 湘潭市| 沧州市| 桃源县| 常熟市| 湾仔区| 秭归县| 隆林| 龙游县| 阜宁县| 云龙县| 东乡族自治县| 许昌县| 西峡县| 丽水市| 高邑县| 南投市|