<form id="tprxv"></form>

                  <address id="tprxv"></address>

                      <address id="tprxv"></address>

                        <form id="tprxv"><form id="tprxv"><meter id="tprxv"></meter></form></form>

                        Home > 電話會議新聞動態 > 技術文檔 > 基于eXosip協議棧的SIP電話的研究與實現

                        基于eXosip協議棧的SIP電話的研究與實現

                        2014/05/01 meeteasy

                        SIP(Session Initiation Protoco1)稱為會話初始化協議,工作在應用層,用來建立、修改、終結一個或者多個參與者會話的 進程。SIP協議是基于lP網絡的實時通信應用協議,主要用來解 決lP網絡上的信令控制,為因特網的成功應用提供的接入。SIP電話是通過lP網絡承載語音業務,且IP電話系統、多媒體會議 控制系統在VOIP系統實現、多媒體通信系統、無線語音通信領域應用更加廣泛,且大多數系統均采用SIP協議作為其信令控制協議,因此,SIP協議棧的選擇和應用就顯得尤為重要。

                        eXosip2是一個源碼公開的、使用標準C編寫的免費協議棧,是oSlP的擴展協議集,部分封裝了oSIP協議棧,結構簡單小巧,更容易被使用,是實現SIP協議的較好的選擇。

                        1、oSIP和eXosip協議棧簡介

                        1.1 oSIP協議棧特點

                        oSlP是按照RFC3261(SIP)和RFC2327(SDP)的標準,公開源代碼,應用標準C語言的一個協議棧。oSlP結構簡單、快速、小巧、功能齊全,在SIP客戶端、服務器端和嵌入式系統等方面具有廣泛的應用前景。

                        oSlP不提供高層的 SIP會話控制的API,主要提供一些解析SIP/SDP消 息的API和事務處理的狀 態機。oSIP協議棧主要由 語法解析器模塊、狀態及模塊和工具模塊構成。如圖1所示。

                        oSlP結構圖
                        oSIP解析模塊主要用來對SIP請求與響應進行封裝和解析處理,完成SIP消息的結構分析、SDP消息結構分析和URL結構分析。

                        狀態機模塊主要完成對某個事務的狀態記錄,并在特定的狀態下出發相應的回調函數完成對該事件的響應行為。狀態機的類型可分為:ICT(Invite Client Transaction)、NICT(Non—In vite Client Transaction)、IST(Invite Server Transaction)、NIST (Non-Invite Server Transaction)。

                        工具模塊主要由兩部分組成:SDP協商工具和對話管理工具。SDP協商用于終端之間的能力協商功能,主要采用offer/an—swer模式,對話管理工具主要是利用協議棧提供的一些API函數來實現自己的對話管理,把不同的事務映射到相應的事務層。

                        1.2 eXosiP協議棧

                        eXosip是oSlP協議棧的一個擴展協議集,部分封裝了oS-IP,使其更容易被使用。它實現了作為單個的SIP終端的大部分功能,如認證、注冊、呼叫等。eXosip使用UDP socket來實現底層SIP協議的接收與發送,并且使用定時輪詢的方式來調用 oSlP的事務處理函數,通過添加與讀取事務消息管道的方式來 驅動事務的狀態機,使得遠端的SIP信令能夠匯報給調用程序, 來自調用程序的反饋能通過SIP信令回傳給遠端。使用jevent 消息管道向上通知調用程序底層發生的事件,調用程序只需要 讀取該消息管道,即可獲得感興趣的時間,進行相關的處理。 eXosip增加了call、dialog、registration、subscription等過程的解析,使其使用性更強,但由于局限于UA的實現,在register、 sip server等應用中不容易,且eXosip未增加線程并發處理機制,只實現了音頻支持,缺少對視頻及其他數據格式的支持。因此,oSlP與eXosip協議棧相結合是實現SIP協議棧較好的選 擇,但需要根據不同的需求增加相應的內容。

                        2、SIP電話的設計

                        2.1系統總體設計

                        eXosip是分布式的協議棧,采用 C/S結構的消息機制,將控制信息封裝到消息的頭域中,通過消息的傳遞來實現呼叫控制。與基于其他協議如H.323協議的IP電話相比,利用eXosip協議棧實現的SIP電話結構更加小巧,更加的智能化,更加簡單靈活、可擴展性強,可傳遞數據、控制信息等,實現呼叫、注冊、接聽、掛斷 等功能。SIP終端系統的總體架構主要由3部分組成:底層硬件平臺部分、操作系統、SIP終端軟件系統(應用程序)。設計框架如圖2所示。

                        SIP電話系統總體框架圖

                        2.2硬件設計

                        圖3硬件設計框圖

                        本設計硬件部分采用三星公司的ARM9開發板Mini2440,以Samsung S3C2440為微處理器,包含專業穩定的硬件特性,該設 計硬件主要包含以下幾部分:電源系統,復位系統,網絡通信系統,串口通信部分及JTAG調試部分。

                        經過大量的資料收集,選擇Mini2440開發板,該處理器集 成度高,外圍電路簡單,高性價比,低功耗,基于ARM92OT內 核,主頻為400MHz,最高可達533MHz,非常適用于手持設備和網絡應用,能夠滿足嵌入式系統對于體積小、低成本、低功耗、高性能的要求。

                        存儲系統包括,~DRAM內存和Flash存儲。該開發板采用兩片外接的共64M bytes的SDRAM芯片,并接形成32.bit的 總線數據寬度,增加了訪問速度,用于運行操作系統和應用程序。Mini2440具備兩種Flash:Nor Flash和Nand Flash,本設計中使用Nand Flash,主要用來存儲操作系統、應用程序和用戶數據等。

                        網絡接口采用DM9000網卡芯片,可以自適應1O/10OM 網絡。

                        2.3軟件設計流程

                        軟件系統的設計主要包含兩個方面:協議棧層和用戶程序層。協議棧層主要實現的是消息解析,UAS及UAC事務處理,多媒體流的傳輸等功能,主要包括SIP模塊和RTP模塊,應用socket的 模式與上層進行信息交換,本設計采用eXosip2協議棧和oRTP 協議棧來實現。用戶程序層主要由用戶交互模塊,用戶代理模塊及語音處理模塊等組成。用戶交互模塊主要負責接收用戶輸入的信息,同時向用戶反饋底層的信息。用戶代理模塊則根據用戶的請求類型去調用協議棧層的功能,實現eXosip的回調,同時將結果反饋給用戶。語音處理模塊主要實現音頻的編解碼功能。

                        2.3.1協議棧層

                        eXosip是一個分布式的協議棧,采用C/S結構的消息機制,提供SIP操作所需的基本數據結構和各種應用程序編程接口,將控制信息封裝到消息頭域中,通過消息的傳遞來實現呼叫控制。點到點的呼叫流程如下:首先,用戶要想服務器端發起注冊請求,平臺進行鑒權分析,確認用戶注冊權限并接受注冊請求。用戶代理U1向服務器端發出lNVITE請求發起會話,并通過服務器設備轉發,到達另一用戶代理U2,若U2同意建立本次會話,返回2xx響應,不同意則返回 3xx、4xx、5xx、6xx響應。在U1收到最終響應之前,U2可發送臨時響應通知U1當前處理進展。U1收到服務器端的響應后,發送ACK確認收到響應,之后便建立會話,消息傳輸結束時一方發送Bye請求,另一方給一個200響應結束會話,流程如圖4所示。

                        會話流程圖

                        RTP模塊采用開源的RTP協議棧oRTP,可以方便的實現對實時媒體的傳輸控制。RTP提供了時間戳、序列號及其他結構 來控制實時數據的流放,在接收到RTP/RTCP包時,軸線需要 條喲過RTP/RTCP捷豹模塊進行拆包,之后根據一定的時間標 簽調用去抖緩沖中的函數把壓縮語音包傳給CPU,并通過CPU 恢復成原始的媒體信號,再經過C0DEC芯片進行D/A轉換, 最終送至終端輸出。

                        2.3.2 用戶程序層

                        語音處理模塊主要實現語音信號的采集、編碼、解碼和回放,由語音數據發送和接收兩部分組成,其工作流程如圖5。
                        語音處理模塊

                        首先音頻信號通過編解碼芯片完成脈沖編碼調制,將模擬信號轉化為數字信號,并采用所選的編碼標準對數字信號進行壓縮編碼,再加上RTP頭字段和其他的頭字段將封裝數據包UDP信號傳輸層即完成發送,接收通過SDP的協商獲得編碼方式進行解碼,還原為模擬信號。

                        本設計中采用的音頻壓縮編碼方式主要是G-711和speex。G.711是PCM 編碼,對語音信號進行采集和量化,產生 64kbit/s的碼流,此編碼方式產生的語音質量較高,但要稀罕用很高的帶寬。 Speex編解碼器是專門針對VOlP而設計的開源音頻編解碼器,具有較強的帶寬適應能力,可以在大部分的網絡環境下正常工作,在低比特率時傳輸質量也很好

                        2.4軟件設計

                        軟件設計流程如圖6所示。

                        軟件設計流程圖

                        注冊過程具體程序包括幾部分:

                        初始化eXosip2協議棧(eXosip_init()),監聽(eXosip_lis_ten_addr()),鑒權(eXosip_addr_authenticaation_info()),建立注冊請求(eXosip_register_build_ initial_register()),發送注冊請求(eXosip_register_send_reg_ister()),等待服務器響應(eXosip_event_wait()),注冊成功后 釋放(eXosip_event_free())。

                        呼叫過程具體程序包括以下幾個部分:

                        呼叫端的過程為:建立請求(eXosip_call_build_initial_invite ()),發送請求(eXosip_call_send_initial_invite()),等待響應 (eXosip_event_wait()),收到200響應之后建立應答(ex_ osip_call_build_ack()),發送應答(eXosip_call_send_ack()), 獲取對方的sdp消息(eXosip_get_remote_sdp()),從sdp消 息中借此出媒體類型和端13號(sdp_message_to_str(), sdp_message m_port_get()),獲取本地sdp消息及本地端13 號(eXosip_get_local_sdp(),sdp_message_m_port_get())等待呼叫確認后建立呼叫。接收方則對接收到的消息進行判斷后 建立相應的應答消息并發送。

                        語音傳輸部分包括呼叫過程中添加語音類型、端口號、源lP 及目的lP等SDP消息,主要用到的函數由eXosip_mes_sage_set_supported(),eXosip_message_set_body(),eX_osip_message_seUype()等,還有一部分主要是調用oRTP協 議棧的API函數,實現語音文件的傳輸,主要用到的函數有:初 始化(ortp_init(),ortp—scheduler_init()),會議的建立(rtp_ses_sion_new(),rtp_session_set_schedul ing_mode(),rtp_ses_ sion_set_blocking_mode()),賦予本地地址并從SDP消息中獲 得端口號(rtp_session_set_local_addr()),從輸入參數中獲取 目的地址及端El號(rtp_session_set_remote_addr()),發送傳 輸文件(rtp_session_send_with_ts())。

                        3、結束語

                        本文簡單介紹了oSIP和eXosip協議棧,根據SIP電話的設計流程,介紹了基于eXosip協議棧的SIP電話的設計與實現過程,實現了用戶注冊管理及會話的控制,達到了預期的設計。該協議棧占用空間小,呼叫建立時間較短且呼叫成功率高,滿足嵌入式設備對可靠性、實時性及存儲性的要求,但是也存在著一些不足,相信在進一步的研究中會獲得更大的進展。

                        eXosip協議棧, oSIP, SIP, SIP電話

                        如沒特殊注明,文章均為好會通科技原創,轉載請注明來自 http://www.nuansatogel.com/archives/2901.htm.
                        ?

                        copyright 2004-2013     粵ICP備12061155號-1

                        Sitemap|XML|RSS|隱私政策|EN|
                        精品少妇白浆小泬60P,四虎免费精品视频,黑人大荫蒂BBWBBBAAss,国产麻豆一区二区三区精品视频