<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于oSIP的嵌入式SIP終端的研究與實(shí)現

基于oSIP的嵌入式SIP終端的研究與實(shí)現

作者: 時(shí)間:2008-04-08 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:分析了開(kāi)源協(xié)議棧o的運行機制。在o基礎上,設計了一個(gè)S3C2410A微處理器平臺,使用WinCE操作系統的SIP。
關(guān)鍵詞:SIP協(xié)議;SIP用戶(hù)代理;;系統;ARM

1、 引言

目前,IETF的SIP協(xié)議(Session Initiate Protocol, 會(huì )話(huà)初始協(xié)議)已獲得業(yè)界越來(lái)越多的關(guān)注和支持,正逐步成為下一代網(wǎng)絡(luò )(NGN)中的核心協(xié)議之一[1]。SIP協(xié)議相對簡(jiǎn)單、易于、可擴展性強、更適合IP網(wǎng)絡(luò ),被廣泛的用于VoIP系統的組建[2]。及其擴展eXosip作為開(kāi)源的SIP協(xié)議棧,以其結構簡(jiǎn)單、功能豐富、易于移植等優(yōu)點(diǎn)成為在系統上構建VoIP應用的首選。本文分析了協(xié)議棧的運行機制,設計了將oSIP協(xié)議棧移植到嵌入式操作系統并以此為基礎開(kāi)發(fā)嵌入式SIP客戶(hù)端的方案。

2、 oSIP協(xié)議棧

2.1 SIP協(xié)議

SIP協(xié)議是一個(gè)用于建立、更改和終止多媒體會(huì )話(huà)的應用層協(xié)議?,F在的協(xié)議文本是IETF于2002年7月發(fā)表的RFC3261。SIP分別從用戶(hù)定位、用戶(hù)狀態(tài)查詢(xún)、用戶(hù)能力查詢(xún)、會(huì )話(huà)建立、會(huì )話(huà)管理五個(gè)方面實(shí)現對多媒體通信的控制。作為一種信令控制協(xié)議,它需要和IETF的其它協(xié)議如SDP、RTP、RTSP和SAP等協(xié)同工作。SIP會(huì )話(huà)中的媒體交換可以使用任何傳輸協(xié)議,但工程上一般都以RTP(Real-time Transmit Protocol,實(shí)時(shí)傳輸協(xié)議)作為傳輸協(xié)議。

SIP采用C/S模式的工作方式,包含兩類(lèi)元素:SIP用戶(hù)代理(User Agent, UA)和SIP服務(wù)器。根據用戶(hù)代理在會(huì )話(huà)中扮演的角色不同又可分為用戶(hù)代理客戶(hù)機(User Agent Client, UAC)和用戶(hù)代理服務(wù)器(User Agent Server, UAS),前者發(fā)起呼叫請求,后者響應呼叫請求。

2.2 oSIP協(xié)議棧

oSIP是遵循IETF標準,使用ANSI C編寫(xiě),源代碼開(kāi)放的SIP協(xié)議棧。oSIP主要有下列優(yōu)點(diǎn):

(1)結構小巧簡(jiǎn)單,只有400K左右,適合在嵌入式系統上應用;

(2)可移植性好,已被成功的應用于Solaris、HP Unix、VxWorks、Windows和GNU/Linux[3] (2.2.16和2.4.7)等系統中;

(3)工作穩定、兼容性強。

oSIP主要由解析模塊、工具模塊和狀態(tài)機模塊構成,其核心是狀態(tài)機模塊[4](如圖1所示)。

圖1 oSIP結構

解析模塊完成對SIP請求和響應進(jìn)行封裝與解析處理。解析模塊又可分為SIP解析、SDP解析與URL解析。

工具模塊主要提供一些處理工具用于對話(huà)管理和SDP協(xié)商。

狀態(tài)機模塊負責對某個(gè)事務(wù)(如注冊過(guò)程、呼叫過(guò)程等)狀態(tài)的維持及處理,并在特定的狀態(tài)下觸發(fā)響應的事件或回調函數。根據RFC描述中關(guān)于SIP協(xié)議事務(wù)層的定義,oSIP

協(xié)議棧有4種狀態(tài)機:客戶(hù)端邀請事務(wù)(ICT),客戶(hù)端非邀請事務(wù)(NICT),服務(wù)器端要求事務(wù)(IST),服務(wù)器端非邀請事務(wù)(NIST)。前兩種狀態(tài)機是由客戶(hù)端發(fā)起的,后兩種狀態(tài)機是由服務(wù)器發(fā)起的,這4種狀態(tài)機涵蓋了SIP的各種事務(wù)類(lèi)型。其中ICT(如圖2所示)是SIP客戶(hù)端中最常見(jiàn)的事務(wù)。

圖2 ICT狀態(tài)機狀態(tài)轉換圖

圖2中,cb_ict_xxx_xxx表示oSIP中ICT狀態(tài)機回調函數,當ICT從一種狀態(tài)到另一種狀態(tài)時(shí)oSIP協(xié)議棧將調用此函數。

oSIP專(zhuān)注于SIP底層解析,這使得它具有很高的效率。但另一方面,由于沒(méi)有提供高層的SIP會(huì )話(huà)控制API,使得上層應用在調用協(xié)議棧時(shí)很破碎,降低了易用性。為此oSIP的開(kāi)發(fā)者們又在oSIP的基礎上開(kāi)發(fā)了eXosip。eXosip是oSIP的擴展,它部分封裝了oSIP協(xié)議棧,使得它更容易被使用。eXosip實(shí)現了作為單個(gè)SIP的大部分功能。

3、 嵌入式SIP系統體系結構

3.1 嵌入式SIP終端的功能

嵌入式SIP終端是一個(gè)運行在嵌入式操作系統上的SIP用戶(hù)代理,主要包括SIP電話(huà)的注冊、呼叫、接聽(tīng)、掛斷等功能。它直接與用戶(hù)交互,接收輸入信息,進(jìn)行格式檢查,根據用戶(hù)的動(dòng)作初始化SIP消息,同時(shí)得到本地語(yǔ)音媒體接口信息,形成SDP描述,完成UDP或TCP封裝。

3.2 系統軟硬件平臺的選擇

為選擇合適的軟硬件平臺,我們收集了大量相關(guān)資料,經(jīng)過(guò)反復比較并結合現有實(shí)驗條件做出了如下選擇:

(1)嵌入式處理器種類(lèi)繁多,我們選擇了三星的S3C2410A微處理器。該處理器ARM920T內核,主頻最高為203MHz。是一款高性?xún)r(jià)比、低功耗、高集成度的CPU,專(zhuān)為手持設備和網(wǎng)絡(luò )應用設計,能滿(mǎn)足嵌入式系統低功耗、高性能、小體積的要求。同時(shí),S3C2410系列處理器已得到廣泛使用,技術(shù)資料豐富,這也是采用S3C2410平臺進(jìn)行開(kāi)發(fā)的有利條件。此外,我們還選用了帶有的觸摸屏的SHARP L35T23 3.5”液晶顯示器作為系統輸入/輸出設備。

(2)嵌入式操作系統方面,考慮到GUI界面開(kāi)發(fā)的難易程度,我們選擇了Microsoft的Windows CE.NET 4.2。WinCE 4.2版本在內核、實(shí)時(shí)性和網(wǎng)絡(luò )支持等方面做了很大的優(yōu)化和增強,同時(shí)還為WinCE的嵌入式系統的開(kāi)發(fā)提供了強大的工具――Platform Builder 4.2(PB 4.2)。這些特性有助于我們快速開(kāi)發(fā)嵌入式系統。

(3)在開(kāi)發(fā)工具的選擇上,我們選用了與Windows CE.NET 4.2同時(shí)推出的Microsoft Embedded Visual C++ 4.0(eVC 4.0)。這個(gè)開(kāi)發(fā)環(huán)境和VC6.0十分類(lèi)似,易于掌握,同時(shí)還包含有許多WinCE專(zhuān)用的標準開(kāi)發(fā)工具和遠程調試工具。

3.3 系統體系結構

我們設計的嵌入式SIP終端系統總體結構如圖3所示:

圖3 嵌入式SIP終端系統體系結構

整個(gè)系統分為3個(gè)層次:

(1)系統平臺層:包括硬件平臺及運行在其上的嵌入式操作系統,這是整個(gè)系統的基礎。

(2)協(xié)議棧層:運行SIP協(xié)議棧,為用戶(hù)程序提供調用。RTP模塊我們采用了開(kāi)源的jrtplib。jrtplib采用C++編寫(xiě),可以方便的移植到WinCE系統上。移植jrtplib到嵌入式操作系統不是本文的重點(diǎn),具體做法在此不再贅述。

(3)用戶(hù)程序層:負責接收用戶(hù)的輸入,根據用戶(hù)請求類(lèi)型調用協(xié)議棧層功能,同時(shí)實(shí)現oSIP的回調函數,并將結果反饋給用戶(hù)。

4、 嵌入式SIP終端的實(shí)現

4.1 系統平臺層實(shí)現

本系統開(kāi)發(fā)使用的硬件設備都直接向設備供應商購買(mǎi),但由于嵌入式系統是軟硬件高度結合的系統,還需要根據硬件條件定制一個(gè)WinCE平臺。在PB中可以定制出滿(mǎn)足各種不同需求的CE系統。我們使用設備供應商提供的BSP,利用PB平臺創(chuàng )建向導新建了一個(gè)WinCE映象文件并將其下載到開(kāi)發(fā)板中固化。

4.2 協(xié)議棧層的實(shí)現

oSIP協(xié)議棧在設計之初就考慮到了滿(mǎn)足嵌入式操作系統的的特定要求,這使得只需做很少量的修改(主要是需要加入一些針對WinCE的頭文件)就能將oSIP移植到WinCE系統中。

另外,WinCE的API中沒(méi)有time()函數的實(shí)現,我們需要自己實(shí)現這個(gè)函數,代碼如下:

#ifdef _WIN32_WCE

SYSTEMTIME t;

#endif

……

#ifdef _WIN32_WCE

GetSystemTime(t);

now = (int)((t.wYear-1970)*365*24*3600+t.wMonth*30*24*3600+t.wDay*24*3600+t.wHour*3600+ t.wMinute *60+t.wSecond);

#else

now = time(NULL);

#endif

完成必要的修改后,重新編譯就可以得到能在WinCE系統上使用動(dòng)態(tài)鏈接庫。

4.3 用戶(hù)程序層的實(shí)現

在系統啟動(dòng)過(guò)程中,用戶(hù)程序首先根據用戶(hù)配置對系統全局變量進(jìn)行賦值操作,然后向oSIP協(xié)議棧注冊回調函數,并啟動(dòng)數據包監聽(tīng)線(xiàn)程。一旦接受到數據包,則調用協(xié)議棧功能生成相應事件并判斷該事件的處理事務(wù)是否存在,若存在則將事件放入該事務(wù)中,否則生成新的事務(wù),啟動(dòng)事務(wù)執行線(xiàn)程。同時(shí)根據用戶(hù)動(dòng)作生成相應事件交由協(xié)議棧處理。

oSIP通過(guò)狀態(tài)機回調函數與用戶(hù)程序通信,向用戶(hù)程序通告事件的發(fā)生及事務(wù)狀態(tài)。用戶(hù)程序調用oSIP協(xié)議棧API發(fā)起oSIP動(dòng)作(添加事件,事件處理等)。

5、 結束語(yǔ)

本文提出了一個(gè)基于A(yíng)RM9核心的處理器平臺,以oSIP協(xié)議棧為基礎的嵌入式SIP終端設計方案,并就嵌入式系統平臺搭建、協(xié)議棧移植、SIP用戶(hù)代理的實(shí)現等問(wèn)題進(jìn)行了討論。測試結果表明,根據該方案實(shí)現的嵌入式SIP終端系統能實(shí)現預想的功能和性能。有理由相信,隨著(zhù)SIP協(xié)議的廣泛應用和嵌入式技術(shù)的不斷發(fā)展,嵌入式SIP終端將具有美好的前景。

本文作者創(chuàng )新點(diǎn):本文討論并實(shí)現了oSIP協(xié)議棧在WinCE系統上的移植和應用,提出了一個(gè)嵌入式SIP終端的系統分層結構同時(shí)指出了上述分層結構中各層次在實(shí)現時(shí)要注意的主要問(wèn)題。

參考文獻

[1] 司端鋒,韓心慧,龍勤等.SIP標準中的核心技術(shù)與進(jìn)展[J].軟件學(xué)報.2005 16(2).

[2] 劉志軍,王風(fēng)著(zhù),張孟輝等.軟交換技術(shù)協(xié)議SIP及其在VoIP中應用[J].微計算機信息.2006,09-3:169-172

[3] 盧華,王保保.oSIP協(xié)議棧的及應用[J].電子科技.2006.2.

[4] libosip Documentation 2.2.0.http://www.gnu.org/software/osip/doc/html/

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>