新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于Android的VoIP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

基于Android的VoIP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2011-04-21 來源:網(wǎng)絡(luò) 收藏

主程序中的基本方式均按照上節(jié)中的過程,創(chuàng)建并初始化PJSUA;當(dāng)call按鍵被觸發(fā)時(shí)發(fā)起會(huì)話,調(diào)用make-call()方法;當(dāng)用戶接受通話時(shí),點(diǎn)擊hang或cancel按鍵,觸發(fā)hang()或采用destry()方法等。
用戶接口是通過 SDK來的,這部分幾乎全都是Java語言,由于UI不是本文的重點(diǎn),因此只介紹一個(gè)簡單的界面,實(shí)際應(yīng)用中用戶交互是非常重要的。為了所需的功能,至少需要一個(gè)文本框來提供SIP地址,以及兩個(gè)按鍵來控制會(huì)話發(fā)起和結(jié)束。另外,在呼叫與通話過程中,還需要一個(gè)頁面來顯示,這里可以通過對話框來顯示,最后的界面如圖2所示。

本文引用地址:http://2s4d.com/article/156376.htm

d.JPG



3 封裝與調(diào)試
為了能在平臺(tái)上方便地使用該,在了PJSIP協(xié)議棧、JNI接口以及UI之后,還需將上面所有的模塊進(jìn)行封裝。 SDK提供了一些很有用的工具,如aapt等,由于本文重點(diǎn)不在AndriodSDK,所以可以采用集成開發(fā)工具(如集成在Eclipse中的ADT)來封裝。在工程libs(如果不存在則新建)目錄下新建一個(gè)名為armeabi的目錄,將上節(jié)生成的.so庫文件放到該目錄下。ADT在封裝資源時(shí)會(huì)自動(dòng)將該庫文件封裝到apk文件中,apk是Android操作中應(yīng)用程序的封裝形式,在所有android平臺(tái)中均能使用。
封裝后安裝到Android手機(jī)、MID或虛擬機(jī)中,并發(fā)起會(huì)話。與開源SIP軟件Linphone通信的結(jié)果如圖2所示。

4 結(jié)語
通過測試表明,該能夠?qū)Πl(fā)起并很好地控制SIP信令,該系統(tǒng)由于采用SIP協(xié)議,因此與所有采用這一協(xié)議的軟件均能通信,如Lin-phone,Kphone等,功能測試中表現(xiàn)良好,實(shí)現(xiàn)了的基本需求。同時(shí)如果要增加功能,可以在Java類中添加相應(yīng)的方法并在應(yīng)用層調(diào)用即可,具有一定的可擴(kuò)展性。
由于手機(jī)等手持設(shè)備在規(guī)格和配置上的差異,該系統(tǒng)在具體的設(shè)備上使用時(shí),界面略有不同,但是同系統(tǒng)架構(gòu)的手機(jī)使用時(shí)并不影響功能,在HTC Desire和MOTO Milestone上測試均能正常使用。但是,當(dāng)移植到不同的架構(gòu)時(shí)(即使同時(shí)ARM架構(gòu)),仍需做一定的優(yōu)化,一般采取主流平臺(tái)的多種版本方式來解決,這也是所有多廠商移動(dòng)設(shè)備上一個(gè)無法避免的問題。


上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉