freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文(于嵌入式linux的voip終端設(shè)計(jì)-資料下載頁(yè)

2024-11-10 10:08本頁(yè)面

【導(dǎo)讀】摘要VoIP是指利用IP網(wǎng)絡(luò)傳送話音的技術(shù),也稱網(wǎng)絡(luò)電話或IP電話。體技術(shù)和網(wǎng)絡(luò)互連技術(shù)的推動(dòng)下,VoIP技術(shù)誕生雖然時(shí)間很短,但發(fā)展迅猛。嵌入式VoIP終端作為嵌入式技術(shù)與VoIP技術(shù)的結(jié)合,有著廣闊的。于網(wǎng)絡(luò)傳輸?shù)腞TP模塊。在信令控制部分,在研究并分析開(kāi)源oSIP協(xié)議棧的事務(wù)。狀態(tài)機(jī)模型的基礎(chǔ)上,解決了信令控制問(wèn)題。在語(yǔ)音信號(hào)處理和數(shù)據(jù)包傳輸部分,RTP、RTCP協(xié)議概述..

  

【正文】 。 22 第五章 嵌入式 VoIP 終端軟件的設(shè)計(jì)和實(shí)現(xiàn) 在嵌入式終端的硬件平臺(tái)、操作系統(tǒng)平臺(tái)與宿主機(jī)開(kāi)發(fā)環(huán)境搭建完成以后。本章將深入討論在構(gòu)建完成的平臺(tái)上如何利用現(xiàn)有的開(kāi)源軟件資源,實(shí)現(xiàn)嵌入式 VoIP終端軟件 的設(shè)計(jì)和實(shí)現(xiàn)。 嵌入式 VoIP 終端軟件主要指系統(tǒng)層次結(jié)構(gòu)中協(xié)議棧和用戶程序兩個(gè)層次。協(xié)議棧層擔(dān)負(fù) SIP 消息解析, UAS 和 UAC 事務(wù)處理,多媒體流傳輸?shù)热蝿?wù)。主要包括 SIP 模塊、 RTP 模塊和語(yǔ)音處理模塊三個(gè)模塊。用戶程序?qū)蛹粗骺爻绦?,完成終端軟件與用戶之間的交互和對(duì)各下層模塊的控制,是其協(xié)同工作 。本章將分別介紹這幾個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)。 SIP 模塊 oSIP 本文 已經(jīng)介紹過(guò)本系統(tǒng)選用了開(kāi)源協(xié)議棧 oSIP。 oSIP 主要包括 三個(gè)模塊 :解析器模塊、狀態(tài)機(jī)模塊和工具模塊 [4] 。 1. 解析器模塊 : 該模塊主要完成對(duì) SIP 消息( INVITE、 ACK、 OPTIONS、 CANCEL、BYE、 REGISTER 消息)結(jié)構(gòu)剖析、 SDP 消息結(jié)構(gòu)剖析以及 URI 結(jié)構(gòu)的剖析。此外,該模塊還可以解析一部分 SIP 頭域 2. 狀態(tài)機(jī)模塊: SIP 中是以事務(wù)為單位來(lái)描述各種請(qǐng)求和響應(yīng)的交互過(guò)程的。該模塊主要完成對(duì)某個(gè) SIP 事務(wù)(注冊(cè)過(guò)程、呼叫過(guò)程等)的狀態(tài)記錄,并在特定狀態(tài)下觸發(fā)相應(yīng)的時(shí)間或回調(diào)函數(shù)。回調(diào)函數(shù)為上層應(yīng)用程序控制 SIP 會(huì)話提供了豐富的接口。 3. 工具模塊: 該模塊為可選項(xiàng), 主要提供一些 處理 SDP 協(xié)商及會(huì)話等的 一些工具。 oSIP 的結(jié)構(gòu)組成如圖 ,從圖中可以看出 在 oSIP 的 3 個(gè)模塊 中,狀態(tài)機(jī)模塊是其核心,其他模塊的執(zhí)行都是通過(guò)狀態(tài)機(jī)模塊觸發(fā)或執(zhí)行的。由于狀態(tài)機(jī)模塊的重要性,下面將詳細(xì)介紹 oSIP 的狀態(tài)機(jī)模塊。 第 五 章 嵌入式 VOIP 終端軟件的設(shè)計(jì)和實(shí)現(xiàn) 23 圖 oSIP 結(jié)構(gòu) oSIP 狀態(tài)機(jī)( Finite State Machines)主要分為:客戶端邀請(qǐng)事務(wù)( ICT, Invite Client(Outgoing) Transaction),客戶端非邀請(qǐng)事務(wù)( NICT, NonInvite Client(Outgoing) Transaction),服務(wù)器端邀請(qǐng)事務(wù) ( IST, Invite Server(Ining) Transaction),服務(wù)器端非邀請(qǐng)事務(wù)( NIST, NonInvite Server(Ining) Transaction)。前兩種狀態(tài)機(jī)是由客戶端發(fā)起的,后兩種狀態(tài)機(jī)是由服務(wù)器發(fā)起的,這 4 種狀態(tài)機(jī)含蓋了 SIP 的各種事務(wù)類型。其中 ICT 是 SIP 客戶端中最典型的 SIP 事務(wù),也是 SIP 客戶端中最常見(jiàn)的事務(wù)。圖 詳細(xì)說(shuō)明了 ICT 狀態(tài)機(jī)。 圖 ICT 狀態(tài)機(jī) 江蘇大學(xué)本科畢業(yè)論文 24 oSIP 的 4 種狀態(tài)機(jī)對(duì)應(yīng)了 SIP 中的 4 種基本事務(wù),而 在 SIP 信令的通信過(guò)程 中,事務(wù)是最基本的通信單元,所以在用 oSIP 實(shí)現(xiàn) SIP 協(xié)議棧的過(guò)程中,對(duì)于這 4 種狀態(tài)機(jī)的維護(hù)和管理是非常關(guān)鍵的。從圖中可以看出 oSIP 的狀態(tài)機(jī)比較復(fù)雜,管理起來(lái)也比較復(fù)雜,但在實(shí)際的應(yīng)用過(guò)程中不需要對(duì)狀態(tài)機(jī)進(jìn)行管理,這里需要管理的是事務(wù),在事務(wù)初始化的同時(shí), oSIP 協(xié)議棧內(nèi)部會(huì)對(duì)狀態(tài)機(jī)進(jìn)行管理,這也是 oSIP模塊松耦合的表現(xiàn)之一。鑒于 oSIP 只是實(shí)現(xiàn)了 SIP 協(xié)議棧的狀態(tài)機(jī),在 VoIP 終端中直接使用比較復(fù)雜,我們使用 oSIP 的擴(kuò)展函數(shù)庫(kù) eXosip 簡(jiǎn)化開(kāi)發(fā)任務(wù)。下面我們將詳細(xì)介紹 eXosip 庫(kù)的內(nèi)容。 eXosip eXosip 是 oSIP 的一個(gè)擴(kuò)展協(xié)議集,其在 oSIP 的基礎(chǔ)上部分封裝了 oSIP 協(xié)議棧,使其更容易被使用。 eXosip 使用 UDP Socket 套接字實(shí)現(xiàn)底層 SIP 協(xié)議的接收 /發(fā)送;使用定時(shí)輪循的方式調(diào)用 oSIP 的事務(wù)處理函數(shù),這部分是協(xié)議棧運(yùn)轉(zhuǎn)的核心。通過(guò)添加 /讀取事務(wù)消息管道的方式,驅(qū)動(dòng)事務(wù)的狀態(tài)機(jī),使得來(lái)自遠(yuǎn)端的 SIP 信令能匯報(bào)給調(diào)用程序,來(lái)自調(diào)用程序的反饋能通過(guò) SIP 信令回傳給遠(yuǎn)端;增加了對(duì)各個(gè)類型事務(wù)的超時(shí)處理,確保所有資源都能循環(huán)使用,不會(huì)被耗用殆盡;使用 jevent 消息管道來(lái) 向上通知調(diào)用程序底層發(fā)生的事件,調(diào)用程序只要讀取該消息管道,就能獲得感興趣的事件,進(jìn)行相關(guān)的處理。 eXosip 函數(shù)庫(kù)中的主要數(shù)據(jù)結(jié)構(gòu): struct eXosip_event { eXosip_event_type_t type char textinfo [256] void external_reference osip_message_t *request osip_message_t *response osip_message_t *ack int tid int did int rid int cid int sid int nid int ss_status int ss_reason } 主要 eXoSIP 函數(shù)舉例 : 第 五 章 嵌入式 VOIP 終端軟件的設(shè)計(jì)和實(shí)現(xiàn) 25 1. int eXosip_init ( void ) 用途:初始 化 eXosip 函數(shù)庫(kù) 2. int eXosip_listen_addr (int transport, const char *addr, int port, int family, int secure ) 用途:監(jiān)聽(tīng)發(fā)送到指定端口的 sip 事件 參數(shù): Transport:使用 IPPROTO_UDP 指定使用 UDP 協(xié)議 Addr:指定綁定的地址 (NULL 代表所有接口 ) Port:指定監(jiān)聽(tīng)的端口 . (0 代表隨機(jī)端口 ) Family:指定使用協(xié)議族 (AF_INET 或者 AF_INET6). Secure: 0 指定 UDP 或者 TCP, 1 指定 TLS. 3. eXosip_event_t * eXosip_event_wait ( int tv_s, int tv_ms) 用途:指定查詢 sip 事件的時(shí)間間隔 參數(shù): tv_s:間隔時(shí)間 (單位:秒 ) tv_ms:間隔時(shí)間 (單位:毫秒 ) 4. int eXosip_call_build_initial_invite (osip_message_t, **invite, const char *to, const char *from, const char *ro ute, const char *subject ) 用途:為一個(gè)新的呼叫構(gòu)造默認(rèn)的 INVITE 消息 . 參數(shù): Invite:指向 SIP 消息的指針 . To:被呼叫著的 SIP URL. From:呼叫者的 SIP URL. Route: INVITE 消息的頭部 . (可選 ) Subject:呼叫的主題 . 5. int eXosip_call_send_initial_invite (osip_message_t *invite ) 用途:發(fā)送已構(gòu)造完畢的 INVITE 消息 參數(shù): Invite:待發(fā)送的 INVITE 消息 。 RTP 模塊 本系統(tǒng)的 RTP 模塊采用開(kāi)源的 RTP 協(xié)議棧 oRTP[16],利用該協(xié)議棧可以較方便的實(shí)現(xiàn)對(duì)實(shí)時(shí)媒體的傳輸和控制,如對(duì)本地待發(fā)數(shù)據(jù)的 RTP 封裝,對(duì)接收到的 RTP包拆包以及通過(guò)對(duì)網(wǎng)絡(luò) RTCP 監(jiān)測(cè),適當(dāng)?shù)恼{(diào)整本地的編解碼器策略。 RTP 提供了時(shí)間戳、序列號(hào)以及其它的結(jié)構(gòu)用于控制實(shí)時(shí)數(shù)據(jù)的流放,發(fā)送端依照即時(shí)的采樣在數(shù)據(jù)包里設(shè)置了時(shí)間標(biāo)簽。在接收端收到數(shù)據(jù)包后,就依照時(shí)間標(biāo)簽按照正確的速率恢復(fù)成原始的媒體流。 RTP 和 UDP 二者共同完成運(yùn)輸層協(xié)議功能 :RTP 負(fù)責(zé)數(shù)據(jù)包按時(shí)間標(biāo)記和封裝 。UDP 只是 傳輸數(shù)據(jù)包,不考慮數(shù)據(jù)包之間的時(shí)間順序。 RTP 數(shù)據(jù)發(fā)送的過(guò)程可以簡(jiǎn)單描述如下 : 江蘇大學(xué)本科畢業(yè)論文 26 (l)持續(xù)地從數(shù)據(jù)隊(duì)列中取出待發(fā)送的數(shù)據(jù) 。 (2)根據(jù)系統(tǒng)時(shí)間生成當(dāng)前的時(shí)間戳 。 (3)將數(shù)據(jù)和時(shí)間戳一起交由協(xié)議棧發(fā)送處理 。 (4)協(xié)議棧完成對(duì)數(shù)據(jù)的 RTP 格式封裝并交付 UDP 層發(fā)送。 當(dāng)從網(wǎng)絡(luò)上接收到 RTP/RTCP 包時(shí),首先調(diào)用 RTC 解包模塊進(jìn)行拆包,然后按照一定的時(shí)間粒度調(diào)用去抖緩沖中的函數(shù)將壓縮語(yǔ)音包送給 CPU,通過(guò) CPU 還原成媒體信號(hào),最后經(jīng) Codec 芯片進(jìn)行 D/A 轉(zhuǎn)換后送至終端輸出。數(shù)據(jù)拆包過(guò)程如圖 所示。 圖 RTP 數(shù)據(jù)包拆包 語(yǔ)音處理模塊 語(yǔ)音處理模塊的工作是完成語(yǔ)音信號(hào)的采集、編碼、解碼和回放,其大致的工作流程如圖 所示,可分為語(yǔ)音數(shù)據(jù)發(fā)送和語(yǔ)音數(shù)據(jù)接收兩個(gè)部分。 第 五 章 嵌入式 VOIP 終端軟件的設(shè)計(jì)和實(shí)現(xiàn) 27 圖 語(yǔ)音模塊處理流程 語(yǔ)音數(shù)據(jù)發(fā)送的過(guò)程為 : 1. 通過(guò) UAC3556B 編解碼芯片完成語(yǔ)音信號(hào)的脈沖編碼調(diào)制 (PCM),將模擬信號(hào)轉(zhuǎn)化成數(shù)字信號(hào) 。 2. 采用選定的編碼標(biāo)準(zhǔn)對(duì)數(shù)字信號(hào)進(jìn)行壓縮編碼 。 3. 加上 RTP 頭和其它頭部字段,封裝數(shù)據(jù)包送到 UDP 協(xié)議層傳輸,完成音頻信號(hào)的發(fā)送。 4. 語(yǔ)音數(shù)據(jù)的接收,采用在 SDP 協(xié)商過(guò)程中獲得的對(duì)方 的編碼方式,首先需要從 RTP 包中獲得語(yǔ)音的編碼信號(hào),對(duì)數(shù)據(jù)進(jìn)行解碼,然后將這些經(jīng)過(guò)解碼的信號(hào)解調(diào)還原成模擬信號(hào)。 本系統(tǒng)中采用 Mediastreamer 媒體庫(kù)完成語(yǔ)音模塊的功能。 Mediastramer 媒體庫(kù)將語(yǔ)音模塊的工作分為 Write/Read Device, Encode/Decode, Rtp_Send/Rtp_Recv六部分,每一個(gè)部分都可以 聲明成 為一個(gè) MS_FILTER。 每一個(gè) MS_FILTER 可以從另一個(gè) MS_FILTER 讀入數(shù)據(jù)作為輸入,并將數(shù)據(jù)輸出作為另一個(gè) MS_FILTER 的輸入。發(fā)送或接受 語(yǔ)音流時(shí)將需要使用的 MS_FILTER 按順序使用 Ms_Filter_Link 連接起來(lái),即可完成語(yǔ)音從采集到編碼再到發(fā)送或從接受到解碼到播放 的任務(wù)。 主控程序 主控程序 的工作是向用戶提供友好的交互界面,管理和監(jiān)控各獨(dú)立模塊,解析用戶的指令,根據(jù)不同的用戶指令,操作各功能模塊使其協(xié)同操作完成用戶的指令要求。 江蘇大學(xué)本科畢業(yè)論文 28 其在各模塊中的位置如圖 所示: 圖 主控程序示意圖 針對(duì)不同的用戶操作,終端軟件的工作流程不同,由于篇幅限制,不能詳細(xì)介紹所有的工作流程。撥打電話是用戶最常用的操作,下面將簡(jiǎn)要介紹用戶 進(jìn)行撥打電話操作后終端軟件的工作流程,工作流程圖如圖 所示: 第 五 章 嵌入式 VOIP 終端軟件的設(shè)計(jì)和實(shí)現(xiàn) 29 圖 呼叫操作流程圖 主控程序解析到用戶請(qǐng)求進(jìn)行呼叫操作,主控程序初始化 eXosip,Mediastreamer 函數(shù)庫(kù),使各模塊處于初始化狀態(tài)。初始化結(jié)束后,調(diào)用 eXosip 庫(kù)中的 INVITE 請(qǐng)求子函數(shù),向被叫方發(fā)送帶有 SDP 協(xié)商消息的 INVITE 信令消息。發(fā)送結(jié)束后,監(jiān)聽(tīng)信令接收端口直到收到對(duì)方 OK( 200)確認(rèn)消息?;貜?fù)被叫方 ACK消息確認(rèn)此次呼叫,并根據(jù)協(xié)商的媒體信息設(shè)置 Mediastreamer 媒體庫(kù)中發(fā)送語(yǔ)音流使用的語(yǔ)音編碼 器, RTP 的收發(fā)端口等參數(shù)。設(shè)置結(jié)束后,觸發(fā)媒體庫(kù)中的發(fā)送與接收函數(shù)。同時(shí)開(kāi)始聲音數(shù)據(jù)的采集與回放,聲音數(shù)據(jù)的編碼與解碼和 RTP 流的封包與解包。呼叫正式開(kāi)始。 30 第六章 系統(tǒng)測(cè)試 本章對(duì)第五章實(shí)現(xiàn)的嵌入式 VoIP 終端原型展開(kāi)實(shí)際的測(cè)試,主要從 SIP 實(shí)現(xiàn)的流程,功能的實(shí)現(xiàn)這兩個(gè) 個(gè)方面考察嵌入式 VoIP 終端原型。 測(cè)試環(huán)境 在本測(cè)試中,使用一臺(tái)安裝 SIP 軟終端 Linphone 的臺(tái)式計(jì)算機(jī), IP 地址為 待測(cè)試的嵌入式 VoIP 終端原型 通過(guò) 10M 以太網(wǎng)接口接入局域網(wǎng), IP 地址為 , 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖 所示。 圖 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 此外,我們還使用了免費(fèi)的網(wǎng)絡(luò)協(xié)議分析程序 Wireshark。借助這個(gè)工具可以交互式地瀏覽抓取到的網(wǎng)絡(luò)上的數(shù)據(jù)包,查看每一個(gè)數(shù)據(jù)包的摘要和詳細(xì)信息。 測(cè)試方案與結(jié)果 RFC 3261 規(guī)定了 基本的 SIP 終端會(huì)話建立、會(huì)話管理、會(huì)話結(jié)束等活動(dòng)的工作流程。這個(gè)部分里,我們借助 Wireshark 工具對(duì)報(bào)文進(jìn)行分析,驗(yàn)證嵌入式 SIP 終端原型的工作流程,以會(huì)話建立過(guò)程為例 :嵌入式 VoIP 終端為主叫方 (用戶名 test1),被叫方為 PC 上的 Linphone(用戶名 test2)。 圖 是 Wireshark 抓取的相關(guān)報(bào)文列表。 第 六 章 系統(tǒng)測(cè)試 31 圖 報(bào)文列表 從圖中可
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1