羅有平,汲錫林
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.中國電子設備系統工程公司研究所,北京 100141)
統一通信(Unified Communication,UC)是融合了電信網應用和互聯網應用的綜合解決方案[1],通過對用戶多種通信方式的融合,使用戶可以利用客戶端進行通信[2],并能夠訪問其所需的語音、視頻和數據等多媒體應用服務[3],以方便用戶使用并豐富其體驗。
統一通信客戶端是統一通信系統的外在表現形式[4],為用戶提供了體驗統一通信業務的接口。通過客戶端與服務器間協議交互,協同完成統一通信系統提供的各項功能:聯系人管理、群組管理、狀態呈現、即時消息、文件傳輸、音視頻呼叫、音視頻會議、監控調看和云臺控制等[5]。實現這些功能涉及的協議包括:初始會話協議(Session Initiation Protocol,SIP)、XML配置訪問協議(XML Configuration Access Protocol,XCAP)、消息會話中繼協議(Message Session Relay Protocol,MSRP)、簡單對象訪問協議(Simple Object Access Protocol,SOAP)、Diameter、輕量級目錄訪問協議(Lightweight Directory Access Protocol,LDAP)和簡單網絡管理協議(Simple Network Management Protocol,SNMP)等多種協議,每種協議都與統一通信系統中的具體功能相關,發揮著各自的重要作用,文獻[6-10] 對這些協議進行了詳細描述。
用戶可以在電腦、手機、平板和智能話機等多種硬件終端上使用統一通信系統提供的豐富業務,這就要求統一通信客戶端軟件能運行在不同的系統平臺上[11],例如:Android、IOS、Windows和Linux等操作系統,上述需求決定了統一通信客戶端軟件必須能夠跨平臺移植開發。
開發統一通信客戶端的傳統方法是基于一款操作系統提供的接口,從多種協議實現、邏輯處理、數據存儲到人機界面逐步開發[12],開發人員需要熟練掌握多種復雜協議、各操作系統接口及開發手段,開發難度極高,且很難保證用戶跨終端使用的一致性體驗。
為了屏蔽協議交互的復雜性,將統一通信系統中的協議交互封裝成接口(Application Programming Interface,API)的形式開放給統一通信客戶端開發者,使其能夠更加簡單、方便地開發多種應用。所以全球一些知名的通信企業均有其軟件開發工具包(Software Development Kit,SDK),分別提供Windows SDK、Android SDK、JS SDK[13]。
統一通信客戶端的跨平臺平滑移植對于提高代碼可復用性有著重要意義[14],更決定了軟件功能的一致性。但各廠家提供的SDK雖與操作系統平臺具有強相關的缺陷,但目前很難與國內外大公司同臺競爭,只能立足軍民融合領域、企業通信及行業用戶,走定制化道路,快速響應用戶個性化需求,所以需要研究跨平臺的統一通信客戶端軟件架構。
統一通信客戶端軟件架構如圖 1所示,由支撐層、通信層、應用與業務邏輯層和界面展現層4層組成。

圖1 統一通信客戶端軟件體系架構
該分層架構將人機交互界面與業務處理模塊、底層通信模塊、系統平臺進行分離,保證了客戶端軟件中模塊之間的獨立性,使得架構具有更好的擴展性和可維護性。
將支撐層、通信層和應用與業務邏輯層3層編譯成統一通信客戶端SDK,基于該SDK進行統一通信客戶端軟件開發,開發者不需要考慮協議流程的細節,只需要關心友好人機界面的設計與實現[15]。
分層跨平臺軟件架構對于提高統一通信客戶端軟件的穩定性和一致性都會起到良好的作用,更能加快客戶端軟件的研發進度[16]。隨著用戶的體驗和使用,統一通信客戶端必然會進行完善和改進,而這些完善和改進基本上都是針對應用方面的,不具備平臺相關性,軟件的升級和改進可以同時適用多個平臺,這對于后期維護可以說是事半功倍[17]。
支撐層的零操作系統(Zero Operating System,ZOS)是運行在操作系統上的操作系統服務平臺,提供了支持多種操作系統環境下的統一抽象接口操作,如線程、信號量、互斥量、消息隊列和內存等。高層軟件與底層的操作系統實現分離,使高層軟件可以在不考慮特定的處理機、編譯器和操作系統的基礎上,降低操作系統對軟件開發和維護的影響,使開發人員把更多的精力放在對應用的總體把握和設計實現上,開發操作系統無關的應用,方便編程調試和程序的移植[18]。
ZOS對上層提供穩定高效的服務,是整個平臺的基礎。ZOS采用組件技術,提供任務管理、消息隊列、計時器管理、內存管理、數據緩沖區管理、日志管理、鏈表、隊列、字符串操作、文件、信號量和互斥等,對上層提供統一穩定的服務,上層應用軟件直接使用ZOS的抽象接口,開發操作系統無關的應用。ZOS組成如圖 2所示。

圖2 ZOS組成
通信層提供了底層協議的封裝,屏蔽了底層協議細節和業務流程,為上層提供了應用開發接口API,方便上層業務邏輯對底層協議的調用,主要包括與統一通信系統服務器之間的通信協議、語音引擎和視頻引擎等。
通信協議組件主要包括SIP、XCAP和MSRP。協議組件負責完成與統一通信服務器交互消息的編解碼。
語音引擎實現G.711和G.729等音頻編碼,包括防抖控制、靜音檢測、語音激活檢測、舒適噪音、回聲抑制和降噪處理等功能。
視頻引擎完成H.263、MPEG4、H.264和H.265等視頻編碼以及音視頻同步、畫面平滑處理和動態碼率控制等功能。
應用與業務邏輯層是客戶端軟件的重要組成部分,對上通過API和回調函數實現應用開發者的配置和管理,對下調用通信層協議組件和媒體處理,完成統一通信系統中客戶端的業務邏輯處理。
應用與業務邏輯層實現統一通信業務的邏輯功能,由狀態/事務管理模塊和各種業務組件組成,如圖3所示。狀態/事務管理模塊負責初始化和釋放各個業務組件,管理客戶端的所有會話和窗口。通過應用與業務處理模塊能夠實現通信模式的管理、調度和切換。各種業務組件實現了各種業務邏輯,完成終端用戶的語音、視頻和數據等通信功能。

圖3 應用與業務邏輯層組成
數據庫管理模塊存儲用戶注冊信息和SDK運行過程的中間數據信息等,為其他功能模塊的運行提供支撐。
聯系人管理模塊實現添加、修改、刪除聯系人,維護聯系人列表的狀態等功能。
群組管理模塊實現創建群組、添加群組成員、刪除群組成員、編輯群組屬性和刪除群組等功能。
即時消息功能模塊實現文本、表情、圖片、語音和涂鴉等信息內容的即時消息推送服務,具有消息群發、離線消息等功能。
狀態呈現功能模塊實現實時的顯示用戶在線狀態(空閑、忙碌和離線等)的訂閱與發布。
文件傳輸功能模塊實現點對點文件傳輸以及大消息業務層傳輸控制。
音視頻呼叫功能模塊主要完成點對點音視頻通話,同時提供呼叫保持和呼叫等待等補充業務。
多媒體會議功能模塊實現發起即時或預約會議、邀請成員入會、刪除會議成員、結束會議、關閉發言權控制、會議策略控制和會場控制等功能。
界面展現層主要用于實現人機交互的用戶體驗,包括主界面、登陸界面、消息界面、群組管理界面、會議界面和撥號界面等。一方面用戶通過界面輸入信息,并通過控制中心模塊轉發給相應的應用與業務邏輯處理模塊;另一方面用戶界面通過控制中心模塊接收來自相應業務邏輯的信息,并展現給用戶,從而實現客戶端的人機交互。
基于上述軟件架構進行統一通信客戶端軟件設計與開發,以“簡單、簡潔、好用”為設計目標,功能調用具有快捷鍵,用戶可在各功能間快速切換。開展通信主界面、配置管理界面、音視頻電話撥號界面和消息界面等功能界面的設計,統一通信客戶端軟件界面設計如圖4所示。

圖4 統一通信客戶端軟件界面設計
為了驗證統一通信客戶端軟件的跨平臺性,打造一個要素全、可迭代、可擴展的統一通信軟件平臺,構建了支持各類音視頻資源IP化接入的統一通信系統,系統拓撲如圖5所示。
客戶端平臺主要包括:模擬電話、手臺、視頻會議終端、攝像頭、PC終端、Android手持終端、IOS手持終端、平板終端和智能多業務終端等。其中模擬電話、電臺通過網關接入到統一通信系統中,作為傳統通信終端,可使用音頻電話或音頻會議業務;PC終端、Android手持終端、IOS手持終端、平板終端和智能多業務終端上分別運行跨平臺的客戶端軟件,通過該客戶端軟件可以訪問統一通信服務系統所提供的所有音頻、視頻和數據業務。客戶端軟件以用戶為中心,融合多種媒體,增強用戶體驗。

圖5 統一通信系統拓撲圖
通過系列試驗及行業用戶推廣應用,基于上述軟件架構開發的客戶端軟件具備以下特點:
① 功能豐富:為用戶提供其所需要的語音、視頻、文本和圖片等多種媒體形式通信業務,包括語音通信、視頻通信、視頻會議、視頻監控、即時消息、群組通信和文件傳輸等;
② 平臺無關:SDK中引入了ZOS子層,屏蔽Android、IOS、Windows和Linux等操作系統接口差異性,為統一通信客戶端軟件跨平臺移植提供了保證;
③ 裁剪靈活:統一通信客戶端采用純軟件設計,可根據不同行業用戶的業務需求選配對應模塊,形成定制化客戶端軟件;
④ 擴展性強:統一通信客戶端軟件架構采用模塊化、組件化的設計機制,每種業務處理、業務控制都是一個獨立的軟件模塊,各個模塊之間通過總線形式進行通信,新增業務只需開發相應的業務處理模塊即可。
本文將支撐層、通信層、應用與業務邏輯層構建為跨平臺的統一通信客戶端SDK,基于SDK提供的統一API和回調函數,實現在Android、IOS、Windows和Linux等操作系統下的人機交互界面,并在包含多終端的統一通信系統環境中,驗證了統一通信客戶端軟件架構的正確性和跨平臺能力?;谠撥浖軜嬮_發的客戶端軟件易于跨平臺安裝,便于使用,操作便捷,能以開放性、兼容性的設計滿足不同行業用戶的應用需求,其個性化的業務定制能力為用戶提供了可用、好用的解決方案。
[1] 陳立水,王俊芳,趙進平,等.統一通信技術研究及展望[J].無線電通信技術,2014,40(2):1-3.
[2] 史黎黎,牛賓.基于Linux系統的即時通信軟件開發[J].無線電工程,2015,45(8):94-96.
[3] 韓亮.基于插件的統一通信客戶端框架的設計與實現[D].成都:電子科技大學,2011:35-40.
[4] 張庚,陳廣,楊瑩,等.統一通信中網絡通信錄關鍵技術實現[J].無線電通信技術,2014,40(4):85-89.
[5] 王俊,陳志輝,田永春.統一通信技術在戰術通信網中的應用研究[J].軍事通信技術,2014,47(2):82-85.
[6] RFC3261,SIP:Session Initiation Protocol[S],2002.
[7] RFC3262,Reliability of Provisional Response in the Session Initiation Protocol(SIP)[S],2002.
[8] RFC3264,An Offer/Answer Model with the Session Description Protocol (SDP)[S],2002.
[9] 3GPP TS 23.228,IP Multimedia Subsystem(IMS);Stage 2[S],2013.
[10] 3GPP TS 24.229,IP Multimedia Call Control Protocol based on SIP and SDP;Stage 3[S],2001.
[11] 靳娜.SIP 協議的研究與應用[J].計算機與信息技術,2007(12):90-91.
[12] 張海,SIP模式下統一通信端系統的設計與實現[J].信息通信,2016,167(11):194-195.
[13] 章鑫海.統一通信客戶端軟件設計[D].石家莊:河北科技大學,2015:47-49.
[14] 趙旨忠.一種應用于IP網絡的呼叫控制設計[J].無線電工程,2017,47(6):6-9.
[15] 常海濱.嵌入式系統中SIP協議在VOIP的應用及實現[J].電子設計工程.2016,24(10):94-96.
[16] 黃興平,徐鵬,楊放春.基于面向構件的軟件框架實現IMS CSCF[J].北京郵電大學學報,2006,29(S1):130-134.
[17] 鄭先鋒,張繼棠.IMS的關鍵技術和展望[J].電子技術應用,2006(6):31-33.
[18] 何維武,馮輝,譚淇文.基于Android平臺實現戰術統一通信客戶端[J].軍事通信技術,2016,37(4):82-85.