當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]引言 隨著移動(dòng)終端設(shè)備朝著越來(lái)越智能化的方向發(fā)展,原本只具備簡(jiǎn)單通話功能的手機(jī),也開始增加越來(lái)越多的服務(wù)功能。在移動(dòng)終端上實(shí)現(xiàn)更多的功能,已經(jīng)成為研發(fā)人員的一個(gè)新目標(biāo)之一,這些功能為人們的生活提供

引言
    隨著移動(dòng)終端設(shè)備朝著越來(lái)越智能化的方向發(fā)展,原本只具備簡(jiǎn)單通話功能的手機(jī),也開始增加越來(lái)越多的服務(wù)功能。在移動(dòng)終端上實(shí)現(xiàn)更多的功能,已經(jīng)成為研發(fā)人員的一個(gè)新目標(biāo)之一,這些功能為人們的生活提供著極大的便利,而VoIP技術(shù)就是其中的一個(gè)重要應(yīng)用?,F(xiàn)如今,VoIP技術(shù)已經(jīng)在計(jì)算機(jī)上得到了廣泛的應(yīng)用,出現(xiàn)了一大批基于VoIP的應(yīng)用軟件,而隨著移動(dòng)終端逐漸可以方便地接入WLAN,在其上面進(jìn)行多媒體技術(shù)的開發(fā)已經(jīng)成為一個(gè)新的熱點(diǎn),尤其是在現(xiàn)如今最熱門的Android操作系統(tǒng)上面。隨著移動(dòng)終端的處理能力日益強(qiáng)大,可以實(shí)現(xiàn)過去無(wú)法進(jìn)行的復(fù)雜視頻編解碼處理,因此如果進(jìn)一步結(jié)合VoIP技術(shù),實(shí)現(xiàn)一個(gè)VoIP可視通話系統(tǒng),這將是一個(gè)很好的研究課題,同時(shí)也將會(huì)有很好的市場(chǎng)前景。

1 系統(tǒng)設(shè)計(jì)方案和系統(tǒng)結(jié)構(gòu)
1.1 系統(tǒng)設(shè)計(jì)方案
   
本方案所設(shè)計(jì)的局域網(wǎng)內(nèi)基于Wi—Fi的可視化VoIP通話系統(tǒng)主要包含了以下功能:
    ①移動(dòng)終端(如手機(jī)、PDA)用戶對(duì)系統(tǒng)個(gè)性化的配置,用戶可以根據(jù)自己的需求和愛好選擇需要的功能;
    ②實(shí)現(xiàn)移動(dòng)終端用戶向服務(wù)器發(fā)出請(qǐng)求并完成注冊(cè)的功能;
    ③移動(dòng)終端用戶對(duì)語(yǔ)音視頻數(shù)據(jù)的采集和編碼,并通過RTP(實(shí)時(shí)傳輸協(xié)議)/RTCP(RTP傳輸控制協(xié)議)進(jìn)行傳輸和控制;
    ④OpenSIPS開源服務(wù)器完成對(duì)會(huì)話的控制,包括會(huì)話的注冊(cè)、發(fā)起、維護(hù)與結(jié)束、注銷等功能;
    ⑤界面的開發(fā),作為一個(gè)應(yīng)用程序。一個(gè)友好的界面是不可或缺的,我們通過它來(lái)與用戶進(jìn)行交互。
1.2 系統(tǒng)結(jié)構(gòu)
   
系統(tǒng)的總體架構(gòu)采用了客戶端和服務(wù)器(C/S)模型,客戶端利用自身的Wi—Fi模塊接入網(wǎng)絡(luò)。通過SIP協(xié)議與Open SIPS服務(wù)器建立會(huì)話,在傳輸層以IP數(shù)據(jù)包的形式傳輸語(yǔ)音視頻數(shù)據(jù)?;赪i—Fi的可視化VoIP通話系統(tǒng)結(jié)構(gòu)如圖1所示。


    系統(tǒng)主要由SIP客戶終端和OpenSIPS開源服務(wù)器兩部分組成??蛻艚K端采用Android操作系統(tǒng)的智能手機(jī)和平板電腦。客戶終端包括了SIP User Agent邏輯實(shí)體,并且支持AMR、G.729音頻編解碼,以及H.263和H.264視頻編解碼。

2 系統(tǒng)開發(fā)中關(guān)鍵技術(shù)的研究
2.1 SIP協(xié)議
   
SIP協(xié)議(Session Initiation Protocol,會(huì)話發(fā)起協(xié)議)是由IETF(Internet工程任務(wù)組)2001年提出的IP電話信令協(xié)議,用于在IP數(shù)據(jù)網(wǎng)絡(luò)上建立、改變和結(jié)束多媒體會(huì)話。SIP能夠使用互聯(lián)網(wǎng)的端點(diǎn)(用戶代理)來(lái)發(fā)現(xiàn)參與者,并且協(xié)商它們共享會(huì)話的特性,SIP獨(dú)立運(yùn)行于底層的通信協(xié)議之上,并且不依賴于所建立的會(huì)話類型。SIP協(xié)議的主要目的是解決IP網(wǎng)中的信令控制,以及同Soft Switch的通信,從而構(gòu)成下一代的增值業(yè)務(wù)平臺(tái),對(duì)電信、銀行、金融等行業(yè)提供更好的增值業(yè)務(wù)。
    SIP是一個(gè)應(yīng)用層的控制協(xié)議,可以用來(lái)建立、修改和終止多媒體會(huì)話(或者會(huì)議),例如互聯(lián)網(wǎng)電話。SIP也可以邀請(qǐng)參與者參加已經(jīng)存在的會(huì)話,例如電話會(huì)議。它可以很方便地在一個(gè)已經(jīng)存在的會(huì)話中增加(或者刪除)媒體。SIP透明地支持名字映射和重定向服務(wù),這些特性用于支持個(gè)人移動(dòng)業(yè)務(wù),也就是說用戶可以使用一個(gè)唯一的外部標(biāo)識(shí),而無(wú)須考慮它們所在的實(shí)際網(wǎng)絡(luò)位置。SIP在建立和終止多媒體通信方面支持了很多的功能。
2.2 Android手機(jī)操作系統(tǒng)
   
Android是一種以Linux內(nèi)核為基礎(chǔ)、源碼開放的手機(jī)操作系統(tǒng)。Android系統(tǒng)采用Java語(yǔ)言開發(fā),它內(nèi)部含有一個(gè)Dalvik虛擬機(jī)(Dalvik VM),應(yīng)用程序運(yùn)行在Dalvik虛擬機(jī)上,而Dalvik虛擬機(jī)則運(yùn)行在Linux內(nèi)核上。Androld利用JNI實(shí)現(xiàn)了Java與C的通信。Android系統(tǒng)的體系結(jié)構(gòu)分為了4層:
    ①Linux內(nèi)核層,是硬件和應(yīng)用軟件之間的抽象層,提供硬件抽象功能,提供安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議堆棧和驅(qū)動(dòng)程序等;
    ②中間件層,包括函數(shù)庫(kù)和Androld運(yùn)行時(shí),其中函數(shù)庫(kù)主要提供一組基于C/C++的函數(shù)庫(kù),Android運(yùn)行時(shí)包括核心庫(kù)和Dalvik虛擬機(jī);
    ③應(yīng)用程序框架層,采用Java語(yǔ)言實(shí)現(xiàn),它提供了Androld平臺(tái)基本的管理功能和組件重用機(jī)制;
    ④應(yīng)用程序?qū)?,提供貼近用戶的Android應(yīng)用功能程序,包括鬧鐘、記事本、通訊錄、電子郵件客戶端、瀏覽器和日歷等。
2.3 OpenSIPS服務(wù)器的介紹和配置
    OpenSIPS是一個(gè)成熟的開源SIP服務(wù)器,它除了提供基本的SIP代理及SIP路由功能外,還提供了一些應(yīng)用級(jí)的功能。OpenSIPS的結(jié)構(gòu)非常靈活,其核心路由功能完全通過腳本來(lái)實(shí)現(xiàn),可靈活定制各種路由策略,方便地應(yīng)用于語(yǔ)音視頻通信、IM以及Presencce等。同時(shí)OpenSIPS是目前性能最高的SIP服務(wù)器之一,可用于電信級(jí)產(chǎn)品構(gòu)建。OpenSIPS憑借其可擴(kuò)展、模塊化的系統(tǒng)架構(gòu)提供了一個(gè)高度靈活的、用戶可配置的路由引擎,可以為voice、video、IM和presence等服務(wù)提供強(qiáng)大高效的路由、鑒權(quán)、NAT、網(wǎng)關(guān)協(xié)議轉(zhuǎn)化等功能。由于其穩(wěn)定高效等特點(diǎn),OpenSIPS已經(jīng)被諸多電信運(yùn)營(yíng)商應(yīng)用在自己的網(wǎng)絡(luò)體系中。
    本系統(tǒng)中,我們對(duì)OpenSIPS進(jìn)行了基本的配置,主要是通過配置文件opensips.cfg來(lái)實(shí)現(xiàn)的。該配置文件主要分為三個(gè)部分:
    ①第一部分主要是全局變量的設(shè)置,通過“Listen=udp:192.168.1.100:5060”語(yǔ)句來(lái)指定用于偵聽接收sip消息的端口和傳輸層協(xié)議;
    ②第二部分主要是加載模塊,并設(shè)置模塊的相應(yīng)參數(shù);
    ③第三部分主要是路由的策略和功能應(yīng)用。
    通過一些簡(jiǎn)單的配置,我們就能夠確保服務(wù)器端正常工作,為客戶端與服務(wù)器之間的通信提供了保障。完成配置后,我們?cè)诔?jí)終端上應(yīng)用openserctl start和openserctl stop命令開啟和關(guān)閉OpenSIPS服務(wù)器。

3 系統(tǒng)客戶端的設(shè)計(jì)
3.1 客戶端軟件設(shè)計(jì)的體系架構(gòu)
   
可視化VoIP通話系統(tǒng)客戶端的設(shè)計(jì)是基于Android平臺(tái)來(lái)實(shí)現(xiàn)的,Android是完全免費(fèi)開放的移動(dòng)設(shè)備平臺(tái),這給系統(tǒng)的開發(fā)提供了有利的條件。為了提高系統(tǒng)的可擴(kuò)展性和可移植性,根據(jù)Android的系統(tǒng)架構(gòu),本設(shè)計(jì)的可視化VoIP通話系統(tǒng)軟件架構(gòu)如圖2所示。


    我們將客戶端軟件架構(gòu)分成了UI層、Engine層、SIP層和網(wǎng)絡(luò)傳輸層4個(gè)部分,各層主要實(shí)現(xiàn)的功能如下:
    ①UI層。主要負(fù)責(zé)界面顯示模塊和界面事件的傳遞。
    ②Engine層。這一層是軟件的核心處理層,它啟動(dòng)各種服務(wù)、初始化軟件參數(shù)、處理各種UI事件、維持配置文件信息和保存全局屬性變量。其中包括UserAgenProfile(用戶配置文件屬性),UserAgent(用戶事件處理),VoIPEngine(核心處理中所有的UI事件、參數(shù)設(shè)計(jì)、服務(wù)
的啟動(dòng)都由此文件調(diào)度),以及RegisterAgent(注冊(cè)服務(wù)處理)。
    ③SIP層。提供所有的SIP消息模型,所有SIP消息的處理流程,包括發(fā)送、接收、封裝、解碼等等。
    ④網(wǎng)絡(luò)傳輸層。提供音頻、視頻信息的處理,此模塊對(duì)音頻、視頻進(jìn)行即時(shí)編解碼,同時(shí)發(fā)送數(shù)據(jù)。
3.2 客戶端軟件主要功能模塊的實(shí)現(xiàn)
3.2.1 通話功能模塊的實(shí)現(xiàn)
   
通話功能是系統(tǒng)的核心模塊,該模塊負(fù)責(zé)實(shí)現(xiàn)通話的整個(gè)流程,包括了注冊(cè)服務(wù)器、會(huì)話的發(fā)起和接收以及會(huì)話的結(jié)束。通話模塊的流程如圖3所示。


    首先,客戶端軟件進(jìn)行系統(tǒng)資源以及配置文件的初始化。初始化工作完成后,從主線程里創(chuàng)建一個(gè)SIP消息監(jiān)聽線程。該線程用來(lái)監(jiān)聽和處理SIP消息,創(chuàng)建子線程成功后,主線程向服務(wù)器發(fā)起注冊(cè)請(qǐng)求,待客戶端注冊(cè)成功后即可發(fā)起和接收會(huì)話進(jìn)行語(yǔ)音、視頻通信,會(huì)話結(jié)束后,伴隨著Activity的結(jié)束。在此過程中,主線程發(fā)出了一個(gè)結(jié)束信號(hào)給SIP消息監(jiān)聽線程,SIP消息監(jiān)聽線程收到這個(gè)結(jié)束信號(hào)后調(diào)用finish()方法退出,等待用戶的下一次呼叫操作。
3.2.2 媒體流管理模塊的實(shí)現(xiàn)
   
在本系統(tǒng)中,媒體流管理模塊用來(lái)實(shí)現(xiàn)通話過程中音視頻的實(shí)時(shí)采集、編碼和播放功能,為了便于系統(tǒng)的調(diào)用,設(shè)計(jì)中實(shí)現(xiàn)了幾個(gè)主要的功能函數(shù)StartMediaStream()、StopMediaStream()、InitMediaChannel(),分別完成開啟音視頻操作、關(guān)閉音視頻操作、媒體流通道的初始化。為了具體實(shí)現(xiàn)媒體流的管理功能,系統(tǒng)需要向下調(diào)用RTP/RTCP庫(kù)、音視頻編解碼、采集播放等接口。使用RTP/RTCP協(xié)議是目前解決流媒體實(shí)時(shí)傳輸問題的最好辦法,RTP負(fù)責(zé)流媒體數(shù)據(jù)的發(fā)送和接收,而RTCP負(fù)責(zé)提供數(shù)據(jù)分發(fā)質(zhì)量反饋信息。
    對(duì)于編解碼庫(kù)的加載,系統(tǒng)中采用了JNI技術(shù)實(shí)現(xiàn)了底層C/C++與上層Java的通信,具體的函數(shù)語(yǔ)句如下:
    static{
        System.loadLibrary(“Mediacodec”);
    }
    其中,Mediacodec是視頻編解碼動(dòng)態(tài)鏈接庫(kù)的名稱,源文件為Mediacodec.so,通過以上方法,我們實(shí)現(xiàn)了底層和上層應(yīng)用之間的通信。

4 封裝與測(cè)試
   
為了能夠在Android操作系統(tǒng)的智能手機(jī)和平板電腦上面方便地移植和使用該系統(tǒng),在實(shí)現(xiàn)了各模塊的功能后,還需將上面所有的模塊進(jìn)行封裝。Android SDK本身就提供了一些很有用的工具。由于本文的重點(diǎn)環(huán)節(jié)不在于Android SDK上,所以我們采用集成開發(fā)工具——集成在Eclipse中的ADT插件來(lái)對(duì)整個(gè)系統(tǒng)進(jìn)行封裝。在工程libs(如果不存在則新建)目錄下新建一個(gè)名為armeabi的目錄,將Eclipse中編譯生成的.so庫(kù)文件放到該目錄下。ADT在封裝資源時(shí)會(huì)自動(dòng)將該庫(kù)文件封裝到apk文件中,apk是Android手機(jī)操作系統(tǒng)中應(yīng)用程序的封裝形式,在所有Android平臺(tái)中均能使用。將封裝后的apk包安裝到Android手機(jī)、PDA或虛擬機(jī)中。
    系統(tǒng)測(cè)試環(huán)境由OpenSIPS服務(wù)器和安裝有可視化VoIP通話軟件的移動(dòng)終端組成。測(cè)試結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,性能良好,通話過程中無(wú)明顯回音,圖像清晰流暢,語(yǔ)音和視頻能夠保持同步。由于本系統(tǒng)運(yùn)行在局域網(wǎng)內(nèi),通話延遲基本為零,充分滿足了可視化VoIP通話系統(tǒng)的要求。

結(jié)語(yǔ)
   
本文中所設(shè)計(jì)的可視化VoIP通話系統(tǒng)屬于無(wú)線局域網(wǎng)領(lǐng)域的應(yīng)用。系統(tǒng)在無(wú)線局域網(wǎng)內(nèi)具有信令處理穩(wěn)定、通話無(wú)時(shí)延、視頻清晰流暢、語(yǔ)音視頻同步性高等優(yōu)點(diǎn),在實(shí)際應(yīng)用中具有潛在的市場(chǎng)價(jià)值。但本系統(tǒng)仍然有許多的不足之處,比如說信令不夠完善、服務(wù)過于單一等缺點(diǎn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉