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

正文內(nèi)容

exosip2協(xié)議棧原理分析以及總結(jié)(編輯修改稿)

2025-06-10 04:52 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 _timers_ict(ist|nict|nist)_execute 和osip_ict(ist|nict|nist)_execute 這幾個(gè)函數(shù)。最后還檢查釋放已經(jīng)終結(jié)的call、registrations 以及publications。d. 如果 keep_alive 設(shè)置了,則調(diào)用_eXosip_keep_alive 檢查發(fā)送keep_alive 消息。這樣,當(dāng)遠(yuǎn)端的終端代理發(fā)送sip 消息過(guò)來(lái)時(shí),會(huì)被之前創(chuàng)建的監(jiān)聽(tīng)端口捕獲(sip 協(xié)議默認(rèn)的端口為5060)。在調(diào)用eXosip_read_message 接口時(shí)會(huì)將其接收上來(lái)。接收上來(lái)的數(shù)據(jù)存放在buffer 中交給接口_eXosip_handle_ining_message 來(lái)處理。在其中首先調(diào)用osip_parse 進(jìn)行消息的解析,這是osip 的核心功能之一。數(shù)據(jù)解析后,會(huì)生成一個(gè)osip_event 類型的事件。接著調(diào)用osip_message_fix_last_via_header 將接收到該消息的ip 地址和端口根據(jù)需要設(shè)置到數(shù)據(jù)頭的via 域中。這在消息返回時(shí)有可能發(fā)揮作用。為了能夠讓消息正確的被處理,調(diào)用osip_find_transaction_and_add_event 接口將其添加到osip 的事務(wù)隊(duì)列上。處理在這之后發(fā)生了分叉,如果osip 接納了該事件,接口直接返回,因?yàn)檫@說(shuō)明該事件在osip 上已經(jīng)有匹配的事務(wù)了,或者說(shuō)該事件是某一個(gè)事務(wù)過(guò)程的一部分。這樣在后面執(zhí)行狀態(tài)機(jī)的接口時(shí),該事件會(huì)被正確的處理。如果osip 沒(méi)有拿走該事件,則說(shuō)明針對(duì)該事件還沒(méi)有事務(wù)與之對(duì)應(yīng)。此時(shí),我們首先檢查其類型,如果是request,則說(shuō)明很可能是一個(gè)新的事件到來(lái)( 這將觸發(fā)服務(wù)端的狀態(tài)機(jī)的建立), 調(diào)用eXosip_process_newrequest 接口進(jìn)行處理。如果是response , 則調(diào)用接口eXosip_process_response_out_of_transaction 處理。在 eXosip_process_newrequest 接口中,如果是合法的事件,則會(huì)為其創(chuàng)建一個(gè)新的事務(wù)。也就是說(shuō)這是新事務(wù)的第一個(gè)事件。經(jīng)過(guò)一大堆的處理后,該事件可能就被osip 消化了,或者被exosip 消化了。如果需要上報(bào)給應(yīng)用,由應(yīng)用拿來(lái)對(duì)一些信息進(jìn)行存儲(chǔ)或者進(jìn)行圖形顯示之類,則會(huì)將該事件添加到exosip 的事件隊(duì)列上。如下圖所示: 應(yīng)用程序在exosip 初始化完之后需要調(diào)用如下類似的代碼,不斷從事件隊(duì)列上讀取事件,并進(jìn)行處理。eXosip_event_t *je。for (。){je = eXosip_event_wait (0, 50)。eXosip_lock()。eXosip_automatic_action ()。eXosip_unlock()。if (je == NULL)break。if (jetype == EXOSIP_CALL_NEW){........}else if (jetype == EXOSIP_CALL_ACK){........}else if (jetype == EXOSIP_CALL_ANSWERED){........}else .............eXosip_event_free(je)。}讀到事件后,判斷其類型進(jìn)行對(duì)應(yīng)的處理。這樣整個(gè)接收流程就完成了。 發(fā)送過(guò)程要發(fā)送數(shù)據(jù)時(shí),需要根據(jù)消息類型,調(diào)用exosip 對(duì)應(yīng)模塊的api 接口函數(shù)來(lái)完成。如果要發(fā)送的sip 消息不屬于當(dāng)前已有的任何事務(wù),則類似接收過(guò)程,調(diào)用osip 的相關(guān)接口創(chuàng)建一個(gè)新的事務(wù),同時(shí)根據(jù)消息生成一個(gè)事件,加到事務(wù)的事件隊(duì)列上。最后,喚醒exosip后臺(tái)進(jìn)程,使其驅(qū)動(dòng)osip 狀態(tài)機(jī),執(zhí)行剛添加的事件,從而完成數(shù)據(jù)的狀態(tài)處理和發(fā)送。當(dāng)然,也有一些消息并不通過(guò)osip 狀態(tài)機(jī),而是由exosip 直接調(diào)用回調(diào)函數(shù)cb_snd_message完成發(fā)送。 exosip 與上層應(yīng)用以及osip 之間的流程關(guān)系exosip 是對(duì)osip 庫(kù)的擴(kuò)展,那么它與osip 之間是什么樣的關(guān)系呢,這可參看下圖:上圖為接收過(guò)程的示意圖。Exosip 后臺(tái)任務(wù)不斷從網(wǎng)絡(luò)另一端讀取sip 消息,交給osip的parser 模塊解析,并將其轉(zhuǎn)換為events,添加到事務(wù)隊(duì)列上。同時(shí),exosip 后臺(tái)任務(wù)在不斷的驅(qū)動(dòng)osip 的狀態(tài)機(jī),這樣,事務(wù)隊(duì)列上的事件就會(huì)被處理
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1