WePTT作為開放的平臺,提供核心的POC(實時語音對講)和IM(即時通信)相關(guān)技術(shù)能力,使第三方系統(tǒng)可以簡便快捷的實現(xiàn)服務(wù)器端與客戶端的二次開發(fā)需求。開放的接口和SDK包括:服務(wù)器對接接口、Android平臺SDK、iOS平臺SDK、Windows平臺ActiveX等。
WePTT平臺核心能力服務(wù)器如下圖:
注:
1)?圖中表示的為邏輯服務(wù),與實際部署的服務(wù)器設(shè)備無直接關(guān)系。
2)?DNS作為前置服務(wù)為DM提供負(fù)載均衡
3)?DM依據(jù)自有均衡策略為用戶分配SP
4)?多個DM對等分布,采用共享庫方式對數(shù)據(jù)訪問操作
5)?多個SP對等分布,基于路由機(jī)制通信
6)?每個SP管理一個或多個MDS
DM服務(wù)在整個系統(tǒng)中承擔(dān)所有與DB、數(shù)據(jù)等相關(guān)交互的數(shù)據(jù)管理工作,對客戶端提供TCP訪問接口,同時對其它服務(wù)也提供對應(yīng)DB操作的交互接口。DB可以單獨(dú)作為服務(wù)部署在不同的設(shè)備上,采用MySQL數(shù)據(jù)庫,Master/Slaver模式,?MemCache機(jī)制。
具體職能:
SP是承載在線用戶狀態(tài)的核心處理服務(wù),維護(hù)所有心跳用戶的語音會話和即時消息。多臺SP通過DM運(yùn)行監(jiān)控模塊負(fù)載均衡,各SP之間完全對等,通過路由機(jī)制相互尋址通信。
具體職能:
媒體服務(wù)主要承擔(dān)用戶的語音通話和分組的話語權(quán)權(quán)限控制,又分兩種服務(wù)形式:1)臨時組呼叫,2)固定群組或頻道通話。
具體職能:
WePTT對講Android?&?iOS?SDK為第三方應(yīng)用在Android和iOS智能平臺上提供了可以快速實現(xiàn)對講能力的開發(fā)組件,第三方應(yīng)用可通過SDK?Java?Package和Object-C來訪問所有這些能力,無需關(guān)心具體的邏輯實現(xiàn)和協(xié)議通信。
為了達(dá)到最好的通信性能和效果,SDK低層采用C/C++構(gòu)造相關(guān)的核心通信邏輯和模塊,透過JNI/Object-C為上層應(yīng)用提供訪問接口。低層已封裝了Session、Media、Audio、Codec等關(guān)鍵的協(xié)議、算法、網(wǎng)絡(luò)操作、狀態(tài)機(jī)、控制邏輯,以及線程規(guī)則管理、節(jié)電控制等模塊。?
SDK進(jìn)一步為第三方應(yīng)用的接口訪問進(jìn)行了封裝,將C/C++很好的轉(zhuǎn)化成Android?Java或Object-C面向?qū)ο蟮牧?xí)慣和方式。包含了數(shù)據(jù)類型、數(shù)據(jù)處理、用戶交互狀態(tài)機(jī)控制、以及為調(diào)用方提供可實現(xiàn)的Listener/Deletgate作為接口,從而形成面向Android?Java或Object-C程序員集成開發(fā)的接口層。整體方案分層明確,具有良好的擴(kuò)充能力,保證了優(yōu)良的運(yùn)行性能和低功耗運(yùn)行的特征,同時使第三方二次開發(fā)的工作量盡可能降到最低。
Windows平臺中提供ActiveX控件形式的SDK,可嵌入Web或其它應(yīng)用程序框架中以實現(xiàn)開放的POC和IM能力。ActiveX中提供了與Web層JavaScript頁面腳本交互的技術(shù)方式,以便滿足瘦客戶模式的二次開發(fā)。
WePTT平臺為第三方系統(tǒng)提供的開放能力主要體現(xiàn)如下幾部分:
作為兩個相對獨(dú)立的系統(tǒng)對接,用戶子系統(tǒng)對接是最為關(guān)鍵的第一步。對接的基本原則是使第三方系統(tǒng)中的用戶可以一一對應(yīng)到WePTT平臺,從而實現(xiàn)這些用戶可以使用WePTT所有開放的能力。WePTT平臺提供了系統(tǒng)對接常用的用戶匹配接口方式,第三方系統(tǒng)可以通過給定全網(wǎng)唯一的用戶ID匹配到WePTT中唯一對應(yīng)的用戶,從而建立兩個系統(tǒng)用戶的ID對照表。
系統(tǒng)同時支持針對某一指定用戶WePTT服務(wù)的開通和關(guān)閉,以便第三方系統(tǒng)對相應(yīng)用戶增值服務(wù)有效性的管理。例如第三方系統(tǒng)中WePTT服務(wù)僅作為其服務(wù)套餐之一,需要經(jīng)過一定流程或條件后再開通WePTT服務(wù),當(dāng)用戶到期時又需要將其WePTT服務(wù)關(guān)閉,可以通過平臺提供的接口來實現(xiàn)此需求。屆時WePTT平臺將根據(jù)第三方的指令對登錄WePTT服務(wù)的客戶端SDK進(jìn)行有效性確認(rèn)和限制,只有有效的用戶才能正常登錄和使用,基本流程大致如下圖所示:
考慮到客戶端SDK集成到第三方的APP中需要處理連接WePTT服務(wù)器的負(fù)載均衡,以及登錄流程整合后的優(yōu)化方案,系統(tǒng)設(shè)計上為第三方系統(tǒng)提供了服務(wù)端直接替客戶端獲取均衡配置的接口,這樣可以減少客戶端與服務(wù)器的交互,從而盡可能縮短客戶端登錄時間。具體流程如下圖:
WePTT服務(wù)作為一套“有狀態(tài)”的服務(wù)平臺,為第三方系統(tǒng)提供了隨時可以較為精確的查詢某指定用戶是否在線的狀態(tài)接口,以便第三方系統(tǒng)實現(xiàn)和某用戶在線情況相關(guān)的功能需求和邏輯。
在WePTT平臺中,固定會話組織形式是以“頻道”方式實現(xiàn)的,頻道中的成員之間可以在頻道內(nèi)實現(xiàn)POC實時語音通話、收發(fā)即時消息等功能,頻道與頻道之間互不影響、相對隔離,類似傳統(tǒng)對講機(jī)或數(shù)字集群的頻段。平臺提供了開放的接口用于管理所有用戶的頻道。具體功能包括:頻道的創(chuàng)建、刪除、屬性變更,以及頻道內(nèi)成員及其權(quán)限和優(yōu)先級的變更設(shè)定。
WePTT平臺的核心能力是提供POC實時語音對講,第三方客戶端或PC端可通過為Android、iOS以及Windows平臺封裝的SDK實現(xiàn)以下具體功能特征:
1)?賬戶登入登出:客戶端可通過SDK登入登出WePTT服務(wù)
2)?獲取頻道列表以及成員列表:SDK提供了接口和獲取用戶所屬的所有頻道列表,以及頻道中的成員信息
3)?頻道對講:所有頻道內(nèi)的成員均可連接到頻道會話,連接在同一頻道的用戶之間可以進(jìn)行實時語音對講,并受話語權(quán)控制;頻道成員數(shù)限定在300人以內(nèi)
4)?臨時呼叫/應(yīng)答:SDK可發(fā)起或掛斷1對1、1對多的呼叫應(yīng)答,也可以接聽或拒接對講來電;在會話中主叫方可邀請其它用戶進(jìn)入此會話;臨時會話成員數(shù)限定在30人以內(nèi)
5)?話語權(quán)控制:無論是頻道對講還是臨時呼叫/應(yīng)答均受話語權(quán)控制,即同一時間只允許一個人講話,其它人只能聽;臨時呼叫/應(yīng)答類型的會話中主叫有最高權(quán)限可直接搶斷任一成員的話語權(quán);而頻道類型的會話中,是否能搶斷別人講話取決于成員的優(yōu)先級高低,高級別成員可選擇搶斷低級別;同時頻道內(nèi)支持話語權(quán)排隊能力,即當(dāng)某一個用戶在講話時,其它成員也可以申請講話,但會給所有成員呈現(xiàn)出正在排隊的狀態(tài),多個等待話語權(quán)的成員按序排隊,允許排隊的成員最大數(shù)可有系統(tǒng)后端設(shè)定
6)?會話中狀態(tài)呈現(xiàn):在會話中無論是發(fā)言、排隊、或是進(jìn)出會話,其它成員均可及時看到狀態(tài)的變化
7)?用戶狀態(tài)呈現(xiàn):SDK支持用戶上下線狀態(tài)變化的即時通知和呈現(xiàn)
SDK除以上功能外,還為第三方封裝了相關(guān)的基本處理,如音頻狀態(tài)控制與編解碼、網(wǎng)絡(luò)狀態(tài)切換、普通電話處理接口等,無需調(diào)用方考慮邏輯處理。
同時POC在性能方面可滿足如下指標(biāo)(在網(wǎng)絡(luò)狀態(tài)良好的3G環(huán)境下):
1)?臨時會話的呼叫時延(從發(fā)起呼叫到對端振鈴)不高于3000ms;
2)?頻道呼通率和臨時呼叫應(yīng)答接通率不低于95%;
3)?POC語音端到端的時延不高于1000ms
平臺能力上除核心的POC外,還可支持高效的IM即時通信服務(wù),除了支持一般文本、圖片、錄音等媒介消息外,系統(tǒng)還提供可供第三方應(yīng)用自定義封裝的消息類型,以便實現(xiàn)更豐富而靈活的自定義需求。
主要能力特征為:
1)?消息類型:文本、圖片、錄音、自定義報文等
2)?支持頻道內(nèi),以及1對1、1對多臨時會話的消息收發(fā)
3)?支持離線消息讀取
第三方系統(tǒng)如果有需求希望接收來自客戶端SDK上報的信息,可通過此能力實現(xiàn),WePTT會將收到的消息原文傳遞給第三方指定的服務(wù)以進(jìn)行相關(guān)的服務(wù)處理,進(jìn)而支持一種自下而上的通道。
第三方系統(tǒng)可通過此服務(wù)批量向指定用戶推送自定義的報文,客戶端SDK收到后將把自定義報文剝離出原文并交給第三方客戶端應(yīng)用層自行處理,進(jìn)而實現(xiàn)自上而下的通道。
修訂:2014.03.19
最后編輯:2014-03-28