基于Windows CE的SIP軟件電話的設(shè)計(jì)與實(shí)現(xiàn)

相關(guān)專題: 無線

摘要:本文提出了一種基于SIP協(xié)議的軟件電話的軟件結(jié)構(gòu)和設(shè)計(jì)實(shí)現(xiàn)方案。該方案以嵌入式Windows CE為平臺(tái),中間件采用開源的SIP協(xié)議棧oSIP/eXosip,通過協(xié)議棧的移植和在協(xié)議棧之上應(yīng)用程序的開發(fā),實(shí)現(xiàn)了SIP軟件電話。測試結(jié)果表明,該軟件電話在布置Windows CE的PDA上具有良好的語音通話質(zhì)量。

1 引言

VOIP 的迅速普及,出現(xiàn)了越來越多的VOIP 的固定電話終端。隨著VOIP 的進(jìn)一步發(fā)展,為了滿足移動(dòng)用戶VOIP 通信的需要,無線VOIP 通訊將是未來的發(fā)展趨勢。現(xiàn)在手持 PDA 用戶越來越多,都具有無線上網(wǎng)功能,如果能開發(fā)一個(gè)在PDA 上運(yùn)行的VOIP 軟件電話,就可以滿足這些PDA 用戶的無線VOIP 通信的需求,具有非常重要的實(shí)際

意義。由于嵌入式Windows CE(WinCE)是PDA 最流行的操作系統(tǒng),而目前大多數(shù)VOIP終端都采用SIP 協(xié)議,因此,本文提出了一種Windows CE 平臺(tái)下基于SIP 協(xié)議的VOIP 解決方案。該方案以嵌入式Windows CE 為平臺(tái),eMbedded C++ 4.0 為開發(fā)工具,中間件采用開源的SIP 協(xié)議棧oSIP/eXosip,通過進(jìn)行協(xié)議棧的移植和在協(xié)議棧之上應(yīng)用程序的開發(fā),實(shí)現(xiàn)了SIP 軟件電話。

2 設(shè)計(jì)方案

軟件結(jié)構(gòu)如圖 1 所示。

SIP 軟件電話的結(jié)構(gòu)包括呼叫控制和語音通信兩大模塊。呼叫控制由SIP 信令來完成,主要實(shí)現(xiàn)呼叫的建立、修改和拆除;語音通信模塊由音頻數(shù)據(jù)接口,音頻編解碼和 RTP 傳輸三個(gè)子模塊組成,實(shí)現(xiàn)語音的采集,編碼,傳輸和播放。

音頻數(shù)據(jù)接口模塊實(shí)現(xiàn)語音的采集和播放, 采用Windows CE 的低層音頻服務(wù), 因?yàn)榈蛯右纛l服務(wù)中的回調(diào)機(jī)制為其提供了很大的方便;音頻編解碼采用的是G.729A 語音壓縮技術(shù),它屬于低比特率話音編碼,適合語音在IP 網(wǎng)絡(luò)傳輸;語音采用RTP 包傳輸。對呼叫控制模塊,直接移植開源 oSIP/eXosip 協(xié)議棧到WinCE 上,通過調(diào)用協(xié)議棧的API 函數(shù),實(shí)現(xiàn)對呼叫的控制。RTP 傳輸用開源JRTPLIB,JRTPLIB 也需要在WinCE 進(jìn)行移植。

3 具體實(shí)現(xiàn)

基于上述方案,具體實(shí)現(xiàn)包括協(xié)議棧移植、呼叫控制和語音通信三部分。

3.1 協(xié)議棧移植

oSIP/eXosip 主要支持Win32 及Linux、VxWorks 等一些嵌入式系統(tǒng),將oSIP/eXosip 移植到WinCE 上,可以在Win32 基礎(chǔ)上進(jìn)行。WinCE 可以兼容大部分的Win32 API,在WinCE上移植oSIP/eXosip 主要有3 種情況:與Win32 兼容的API,與Win32 不兼容API 和不同的頭文件支持和預(yù)定義。與Win32 兼容的API 只要修改條件編譯選項(xiàng),與 Win32 不兼容API可以用其他的WinCE 上的API 來代替并作相關(guān)修改,另外,WinCE 和Win32 的某些頭文件和預(yù)定義也不同,也需要進(jìn)行相關(guān)修改工作。表1 給出了移植的一些示例。

在 WinCE 上對JRTPLIB 進(jìn)行移植與SIP 協(xié)議棧的移植類似,注意WinCE 下的RTP 裝載數(shù)據(jù)包最大2K,和PC 上的64K 不同。

3.2 呼叫控制模塊

呼叫控制模塊用來向代理服務(wù)器注冊以及進(jìn)行會(huì)話的建立、修改和終止,實(shí)現(xiàn)對呼叫的控制。因此呼叫控制模塊分為注冊和呼叫兩部分,都是通過底層的SIP 協(xié)議棧來完成的。上層應(yīng)用程序調(diào)用SIP 協(xié)議棧提供的API 函數(shù),通知協(xié)議棧進(jìn)行相應(yīng)的操作,協(xié)議棧將底層檢測到的事件以消息的形式報(bào)告給應(yīng)用層,應(yīng)用層收到SIP 事件后作相應(yīng)處理。

3.2.1 注冊

注冊的實(shí)現(xiàn)過程首先是由客戶端向代理服務(wù)器發(fā)出 REGISTER 注冊請求,并等待服務(wù)器返回響應(yīng)消息?蛻舳吮仨氃谑盏角耙粋(gè)REGISTER 請求的最終響應(yīng)之后或者前一個(gè)REGISTER 請求超時(shí)的情況下,才能發(fā)送一次新的注冊請求,注冊流程和對應(yīng)的SIP 協(xié)議棧API 函數(shù)調(diào)用或協(xié)議棧的事件通知分別如圖2(B)和(A)。

來源:維庫開發(fā)網(wǎng)


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動(dòng):6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息