陸屹 趙巍
關(guān)鍵詞:WebSocket;音視頻通信;WebRTC;SIP;視頻營業(yè)廳
0 引言
隨著全社會數(shù)字化轉(zhuǎn)型的加快,電信運(yùn)營商內(nèi)部也正在不斷推送業(yè)務(wù)向著線上化、智能化、云化方向發(fā)展,做強(qiáng)做大線上觸點(diǎn),拉通線下線上能力。隨著5G 時(shí)代移動互聯(lián)網(wǎng)VOIP 技術(shù)發(fā)展,以及視頻應(yīng)用的普及,大眾客戶在日常生活中越來越接受與認(rèn)可視頻通話的交流方式,傳統(tǒng)的線下營業(yè)廳服務(wù)方式正呈現(xiàn)客流下降、廳店減少的趨勢。與此同時(shí),線上自助服務(wù)方式發(fā)展迅猛。
然而,對于不了解運(yùn)營商業(yè)務(wù)、不熟悉智能手機(jī)操作的各類人群,線上服務(wù)存在一定的使用門檻,特別是面對復(fù)雜業(yè)務(wù)處理流程的場景,難以通過自助的方式順暢的完成信息查詢與業(yè)務(wù)辦理。因此,探索和建設(shè)基于音/視頻協(xié)同的遠(yuǎn)程自助營業(yè)廳,在線上服務(wù)中融入視頻交互人工服務(wù)非常必要。
1 視頻營業(yè)廳定義
視頻營業(yè)廳是以4、5G 網(wǎng)絡(luò)技術(shù)、WebRTC 實(shí)時(shí)通訊、在線業(yè)務(wù)辦理等手段為基礎(chǔ)的新型服務(wù)平臺,通過音視頻交互的方式實(shí)現(xiàn)客戶與營業(yè)員進(jìn)行一對一、面對面溝通與業(yè)務(wù)辦理操作,為客戶提供一種方便快捷的服務(wù)方式。通過該新型服務(wù)設(shè)施的建設(shè),建立起客戶與運(yùn)營商的在線紐帶,幫助運(yùn)營商降低實(shí)體營業(yè)廳數(shù)量及規(guī)模,有效降低固定資本和運(yùn)營成本,提升運(yùn)營成效。
2 關(guān)鍵技術(shù)
2.1 WebRTC 音視頻通信
WebRTC(Web Real-Time Communications)是一項(xiàng)基于Web 的實(shí)時(shí)通訊技術(shù),由Google 收購VoIP軟件開發(fā)商Global IP Solutions 的GIPS 引擎后于2011 年開放并更名為“WebRTC”。它允許網(wǎng)絡(luò)上不同的應(yīng)用或者Web 站點(diǎn),在不借助中間媒介的情況下,建立點(diǎn)對點(diǎn)(Peer-to-Peer)的連接,實(shí)現(xiàn)音、視頻流或者其他任意數(shù)據(jù)的傳輸。WebRTC 提供的核心技術(shù)有音視頻的采集、編解碼、網(wǎng)絡(luò)傳輸功能[1],其技術(shù)框架如圖1 所示。
WebRTC 具備良好的跨平臺支持,應(yīng)用開發(fā)者可以集成WebAPI 進(jìn)行自有應(yīng)用的構(gòu)建,主要通過Network Stream API、RTCPeerConnection、Peer-topeerData API 三類開放接口,其分別負(fù)責(zé)媒體流定義、通信控制和數(shù)據(jù)交換[2]。本文設(shè)計(jì)的端側(cè)應(yīng)用,將開放接口集成在NativeAPP 中,以SDK 方式封裝,和手機(jī)營業(yè)廳客戶端整合。
本文在設(shè)計(jì)實(shí)現(xiàn)中,采用的視頻通信技術(shù)架構(gòu)主要包含用戶端、視頻網(wǎng)關(guān)、信令媒體、資源服務(wù)模塊,如圖2 所示。用戶端實(shí)現(xiàn)PC 端和APP 移動端的WebRTC 客戶端,視頻網(wǎng)關(guān)實(shí)現(xiàn)了SIP over Websoket與WebRTC 的RTP 轉(zhuǎn)換為SIP 網(wǎng)絡(luò)所支持的標(biāo)準(zhǔn)SIP與RTP 協(xié)議,信令媒體模塊提供PBX 和媒體服務(wù),資源服務(wù)提供文件NAS 存儲服務(wù)。
2.2 WebSocket
WebSocket 是HTML5 開始提供的一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù),是一種在單個(gè)TCP 連接上進(jìn)行全雙工通信的協(xié)議。WebSocket 通信協(xié)議于2011 年被IETF 定為標(biāo)準(zhǔn)RFC 6455,并由RFC7936 補(bǔ)充規(guī)范[3]。WebSocket API 也被W3C 定為標(biāo)準(zhǔn)。相對于HTTP這種非持久的協(xié)議來說,WebSocket是一個(gè)持久化網(wǎng)絡(luò)通信的協(xié)議,它不僅可以實(shí)現(xiàn)客戶端請求服務(wù)器,同時(shí)可以允許服務(wù)端主動向客戶端推送數(shù)據(jù),是真正的雙向平等對話[4]。
在本文視頻營業(yè)廳系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)中采用了基于WebSocket 的SIP over WebSocket 信令方案,并通過WebSocket 實(shí)時(shí)同步客戶端與服務(wù)端之間的排隊(duì)信息、接續(xù)狀態(tài)、網(wǎng)絡(luò)延遲信息等。
3 系統(tǒng)設(shè)計(jì)
3.1 架構(gòu)設(shè)計(jì)
視頻營業(yè)廳基于微服務(wù)架構(gòu)設(shè)計(jì),主體部分采用了JavaEE 的Sping 框架開發(fā),數(shù)據(jù)庫使用MySQL,并運(yùn)用了Redis 緩存基礎(chǔ)配置和熱點(diǎn)數(shù)據(jù),各個(gè)微服務(wù)之間主要采用RabbitMQ 消息隊(duì)列進(jìn)行數(shù)據(jù)狀態(tài)同步,主要架構(gòu)可分為四個(gè)部分,包括用戶端系統(tǒng)、視頻通信系統(tǒng)、座席工作臺、配套基礎(chǔ)應(yīng)用組成,如圖3 所示。
⑴ 用戶端是提供給客戶、座席人員操作界面,可支持智能手機(jī)、PC 的接入,手機(jī)端通過集成了WebRTC功能SDK 的手機(jī)營業(yè)廳客戶端實(shí)現(xiàn)接入,PC 端通過Chrome、Edge 等原生支持WebRTC 的瀏覽器接入。
⑵ 視頻通信系統(tǒng)是視頻營業(yè)廳的核心組件,包括接入管理、視頻網(wǎng)關(guān)、信令控制、媒體處理、音視頻錄制等功能模塊,用于實(shí)現(xiàn)客戶與座席人員的語音、視頻及數(shù)據(jù)傳輸?shù)葘?shí)時(shí)通訊功能。
接入管理:對用戶端的呼叫接入請求進(jìn)行處理,并根據(jù)技能信息路由分配座席,反饋排隊(duì)狀態(tài)和接續(xù)應(yīng)答通知。
視頻網(wǎng)關(guān):提供SIP 與流媒體的代理服務(wù),將SIP over Websoket 與WebRTC 的RTP 轉(zhuǎn)換為SIP 網(wǎng)路所支持的SIP 與RTP。
信令控制:控制音視頻媒體的開啟與關(guān)閉,并交換雙方網(wǎng)絡(luò)信息、協(xié)商媒體編碼、分辨率等功能。
媒體處理:對音視頻媒體的采集、編解碼、渲染等進(jìn)行統(tǒng)一處理。
音視頻錄制:對音視頻媒體進(jìn)行轉(zhuǎn)碼、錄制、存儲等功能。
⑶ 座席工作臺提供了營業(yè)廳座席人員使用的統(tǒng)一操作平臺,集成了CRM(客戶關(guān)系管理)系統(tǒng)、業(yè)務(wù)中臺、人像比對的系統(tǒng)能力。
CRM 系統(tǒng):提供客戶基礎(chǔ)信息與業(yè)務(wù)信息的查詢功能。
業(yè)務(wù)中臺:提供業(yè)務(wù)的訂單下單、二次確認(rèn)、訂單的處理能力。
人像比對:提供實(shí)現(xiàn)視頻圖像的人像識別、實(shí)人認(rèn)證能力。
⑷ 配套基礎(chǔ)服務(wù)包含日志中心、配置中心、數(shù)據(jù)分析、監(jiān)控告警等模塊。
日志中心:實(shí)現(xiàn)座席接續(xù)操作日志,用戶接入流轉(zhuǎn)日志,會話信息等日志信息的記錄與管理。
配置中心:對技能與技能組、平臺工號權(quán)限、路由分配策略等進(jìn)行統(tǒng)一的配置管理。
數(shù)據(jù)分析:對系統(tǒng)和業(yè)務(wù)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,并提供相關(guān)報(bào)表查詢功能。
監(jiān)控告警:實(shí)時(shí)監(jiān)控系統(tǒng)個(gè)模塊的運(yùn)行狀態(tài)、性能、負(fù)載等各項(xiàng)指標(biāo),并對異常情況進(jìn)行實(shí)施的維護(hù)告警。
3.2 高可用設(shè)計(jì)
視頻營業(yè)廳系統(tǒng)采用高可用、高并發(fā)、高可擴(kuò)展的設(shè)計(jì)思路,核心模塊均支持跨機(jī)房的集群化部署,集群間通過KeepAlived ?;顧C(jī)制實(shí)現(xiàn)服務(wù)的高效連續(xù)運(yùn)行,避免單點(diǎn)故障。KeepAlived 是一個(gè)TCP/IP 協(xié)議棧中第3,4,5 層交換機(jī)制的軟件,它的作用是檢測服務(wù)器狀態(tài),如果有一臺服務(wù)器死機(jī)或故障,它將有故障的服務(wù)器從系統(tǒng)中剔除,當(dāng)服務(wù)器工作正常后,KeepAlived 自動將Web 服務(wù)器加到服務(wù)器群中,這些工作全部自動完成,不需要人工干涉[5],即使部分應(yīng)用節(jié)點(diǎn)即使宕機(jī)也能做到前臺無感知或者快速自動恢復(fù)。視頻營業(yè)廳的核心組件視頻通信系統(tǒng)的部署架構(gòu),如圖4 所示。
3.3 業(yè)務(wù)流程設(shè)計(jì)
客戶使用手機(jī)營業(yè)廳APP 的視頻通話申請,經(jīng)過接入管控層、視頻通信系統(tǒng),與視頻營業(yè)廳座席人員建立視頻通信,座席人員通過視頻工作臺與CRM系統(tǒng)、業(yè)務(wù)中臺等協(xié)同實(shí)現(xiàn)客戶信息查詢、人像比對、業(yè)務(wù)下單、訂單信息推送、客戶遠(yuǎn)程確認(rèn)后,完成業(yè)務(wù)辦理。主要流程如圖5 所示。
⑴ 客戶通過手廳APP 申請視頻服務(wù),視頻通信系統(tǒng)進(jìn)行技能隊(duì)列排隊(duì),反饋排隊(duì)進(jìn)度,手廳端展示排隊(duì)信息;
⑵ 排隊(duì)完成后,視頻通信系統(tǒng)根據(jù)策略分配座席人員,同步反饋手廳APP 端和通知座席工作臺端,手廳端展示等待接聽,座席側(cè)進(jìn)行振鈴;
⑶ 座席側(cè)接續(xù)應(yīng)答后,通過視頻通信系統(tǒng)通知手廳APP 側(cè),并建立視頻通信連接,實(shí)現(xiàn)視頻通話,手廳APP 和座席工作臺分別展示客戶和座席人員視頻圖像,如圖6 所示;
⑷ 座席工作臺根據(jù)呼入的客戶號碼展示業(yè)務(wù)信息,如果客戶有辦理業(yè)務(wù)需求,則根據(jù)視頻圖像關(guān)鍵幀,通過人像比對功能完成實(shí)人認(rèn)證,并提交業(yè)務(wù)訂單;
⑸ 座席工作臺將業(yè)務(wù)訂單信息、協(xié)議遠(yuǎn)程推送給客戶,客戶進(jìn)行業(yè)務(wù)二次確認(rèn),如圖7 所示。確認(rèn)后系統(tǒng)完成訂單處理,并通知客戶業(yè)務(wù)辦理結(jié)果;
⑹ 當(dāng)客戶完成所有業(yè)務(wù)咨詢、辦理后,進(jìn)行掛斷操作,視頻通信系統(tǒng)接收到掛斷指令后,通知座席工作臺,結(jié)束通信;
4 平臺應(yīng)用效果
中國移動浙江公司已于2021 年9 月將視頻營業(yè)廳投入使用,目前已在全省開設(shè)了22 個(gè)視頻營業(yè)廳共44 個(gè)專席,月均通話服務(wù)量2391 單,系統(tǒng)建設(shè)容量可支持200 個(gè)專席同時(shí)進(jìn)行視頻通話,并可根據(jù)開設(shè)專席的需要隨時(shí)進(jìn)行擴(kuò)容,有效的解決了客戶在到實(shí)體廳店、線上自助辦理時(shí)遇到的困境,并將線上面對面咨詢、業(yè)務(wù)辦理的模式融入千家萬戶的日常生活,滿足不同的服務(wù)需求。同時(shí)視頻營業(yè)廳在日常的使用中也不斷進(jìn)行優(yōu)化打磨,努力打造出更規(guī)范、更智能的服務(wù)平臺,積極推進(jìn)數(shù)智化轉(zhuǎn)型。
2022.1-2022.12 期間,浙江移動使用視頻營業(yè)廳的情況如表1 所示。
5 結(jié)束語
本文通過對WebSocket、WebRTC 等技術(shù)的研究,設(shè)計(jì)并實(shí)現(xiàn)了視頻營業(yè)廳系統(tǒng),客戶通過手機(jī)營業(yè)廳APP 與視頻營業(yè)廳座席人員進(jìn)行實(shí)時(shí)音視頻通信,運(yùn)用在各類的服務(wù)咨詢、業(yè)務(wù)辦理等場景,提供了全新的服務(wù)方式與用戶體驗(yàn),實(shí)現(xiàn)了營業(yè)廳的降本增效。后續(xù)將進(jìn)一步優(yōu)化客戶端接入能力,擴(kuò)展通過微信、手機(jī)瀏覽器等更多種的接入方式,提升客戶使用的便捷性。同時(shí)不斷擴(kuò)展平臺的能力,將音視頻通信平臺的能力運(yùn)用于視頻客服、視頻會議和遠(yuǎn)程視頻培訓(xùn)等更多場景中。