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











