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

正文內(nèi)容

osip協(xié)議棧及exosiportp等使用入門-資料下載頁

2025-07-21 16:56本頁面
  

【正文】 sip_thread_exit()結(jié)束事務(wù)處理即程序終結(jié),再接下去看, _eXosip_execute 是最終的處理函數(shù)了,而且它在程序未終結(jié)情況下是一直邏輯在執(zhí)行。 看到 _eXosip_execute 的代碼中有很多時(shí)間函數(shù)和變量,仔細(xì)看,調(diào)用了osip_timers_gettimeout 而不是系統(tǒng) API 為了跨平臺,來實(shí)現(xiàn)定時(shí)器功能,除去一些控制代碼,主要處理函數(shù)是eXosip_read_message(1,),即取出消息,1表示只取出一條消息,其代碼量非常的大,但同樣的,其中也許多的控制代碼和錯(cuò)誤檢測代碼,我們在查看時(shí)可以暫時(shí)忽略掉它們。 根據(jù) jpipe_read(,buf2,499),我們可以估計(jì), buf2中應(yīng)該是保存的我們的控制管道的數(shù)據(jù),具體作用至些還沒有表現(xiàn)出來,應(yīng)該是用來反映一些狀態(tài)機(jī)內(nèi)部的警示之類的信息,實(shí)際的 SIP 的處理的狀態(tài)機(jī)的數(shù)據(jù)是存放在 buf 中,使用 _eXosip_recvfrom 獲取的,獲取后sipevent=osip_parse(buf,i)解析,使用osip_find_transaction_and_add_event(,sipevent)來查詢事件對應(yīng)的事務(wù)狀態(tài)機(jī),找到后就如同其注解所說明的, /*handled by oSIP! */,即我們上文設(shè)置的那一大堆回調(diào)函數(shù),至此,我們知道了整個(gè) SIP 應(yīng)用所處理的大概流程了。 如果沒有找到事務(wù)狀態(tài)機(jī)呢 ?直接丟棄嗎 ?不是的,如果這是一個(gè)回應(yīng)消息,但沒有事務(wù)狀態(tài)機(jī)處理它,那它是一個(gè)錯(cuò)誤的,要進(jìn)行清理后才能丟棄,而如果是一個(gè)請求,那更不能丟棄了,因?yàn)?UAS 事務(wù)狀態(tài)機(jī)要由它來啟動(dòng)創(chuàng)建的。 先來看錯(cuò)誤的回應(yīng)消息的處理函數(shù)eXosip_process_response_out_of_transaction,可以看到其代碼就是一大堆的賦值語句, XXX=NULL,即將一大堆的運(yùn)行時(shí)變量清空,再調(diào)用osip_event_free 清空事件,或者就是一些復(fù)雜的情況下,需要通過解析現(xiàn)在的運(yùn)行時(shí)數(shù)據(jù),從中分析出 可能 的正在等待回應(yīng)的對端,并發(fā)送相關(guān)終結(jié)通知消息等等,可以根據(jù)實(shí)際需要進(jìn)行簡化。 請求事件處理 eXosip_process_newrequest,首先是對事件進(jìn)行探測,MSG_IS_INVITE、 MSG_IS_ACK、 MSG_IS_REQUEST…,對事件進(jìn)行所屬狀態(tài)機(jī)分類,隨后使用_eXosip_transaction_init(amp。transaction,(osip_fsm_type_t)tx_type,eXosip.j_osip,evtsip)根據(jù)探測結(jié)果進(jìn)行狀態(tài)機(jī)初始化,實(shí)際調(diào)用的是osip_transaction_init,初始化后即將事件入狀態(tài)機(jī)osip_transaction_add_event(transaction,evt),由狀態(tài)機(jī)自動(dòng)處理后調(diào)用相應(yīng)回調(diào)函數(shù)處理邏輯了。 線程調(diào)用的事件處理函數(shù)代碼最后是 if( 0) { _eXosip_keep_alive(); } 這段代碼印證了上文提到了, keep_alive 是用來設(shè)置是否自動(dòng)重新注冊,由 _eXosip_keep_alive 函數(shù)來實(shí)現(xiàn)自動(dòng)將 eXosip 全局變量中保存的注冊消息解析后自動(dòng)根據(jù)需要重新向 SIP 服務(wù)器發(fā)起 Register 注冊。 同樣,因?yàn)樽韵l(fā)起是 UAC 的行為,將它放在這里,可以看出來所有事件消息的事務(wù)狀態(tài)機(jī)處理都是在這里,只不過這里只創(chuàng)建 UAS 的事務(wù)狀態(tài)機(jī),UAC 的事務(wù)狀態(tài)機(jī)的創(chuàng)建則要繼續(xù)到下面找了,從我們的 YouToo 軟電話代碼中可知,發(fā)起呼叫和發(fā)起注冊分別調(diào)用了 eXosip_call_send_initial_invite,eXosip_register_send_register 這兩個(gè)函數(shù) (另外用到的兩個(gè) build 函數(shù)則是分別構(gòu)建這兩個(gè) send 函數(shù)要發(fā)送的 SIP消息 ),查看這兩個(gè)函數(shù)可知, UAC 的事務(wù)處理狀態(tài)機(jī)是在這里進(jìn)行初始化的。 eXosip_register_send_register 中可以看到是_eXosip_transaction_init(amp。transaction,NICT,reg)初始化UAC 狀態(tài)機(jī),實(shí)際也同 UAS 是調(diào)用的 osip_transaction_init 函數(shù),同樣使用osip_transaction_add_event(transaction,sipevent)將事件入狀態(tài)機(jī),狀態(tài)機(jī)隨后將自動(dòng)處理調(diào)用相應(yīng)回調(diào)函數(shù)處理邏輯了。 另有 osip_new_outgoing_sipmessage(reg),表示發(fā)送消息,到這里,我們應(yīng)該可以理解,真實(shí)的發(fā)送操作,是要到由狀態(tài)機(jī)處理后,調(diào)用了消息發(fā)送回調(diào)函數(shù)才真正地將注冊消息發(fā)送出去的。 同注冊消息發(fā)送,它是 NICT 狀態(tài)機(jī),呼叫消息的發(fā)送是 ICT,由eXosip_call_send_initial_invite 處理,_eXosip_transaction_init(amp。transaction,ICT,invite)初始化了狀態(tài)機(jī),之前還有一個(gè) eXosip_call_init 是用來初始化 eXosip 的一些參數(shù)的,暫時(shí)不管它,同樣 osip_new_outgoing_sipmessage(invite)發(fā)送呼叫消息,但實(shí)際還是要狀態(tài)機(jī)處理后調(diào)用消息發(fā)送回調(diào)函數(shù)真實(shí)發(fā)送呼叫請求函數(shù)的,osip_transaction_add_event(transaction,sipevent)則標(biāo)準(zhǔn)地,將事件入狀態(tài)機(jī),狀態(tài)機(jī)將能處理隨后的應(yīng)用邏輯調(diào)用相應(yīng)的回調(diào)函數(shù)了。 好了,作了這么多的 分析,我們了解了 eXosip 是怎樣調(diào)用 oSIP 來形成被我能方便地再次調(diào)用的了,可以看到,為了實(shí)現(xiàn)最大限度的跨平臺和兼容性,代碼中有大量的測試代碼,宏定義和錯(cuò)誤再處理代碼,看起來非常吃力,但了解了其主要的調(diào)用框架: 初始化,回調(diào)函數(shù)設(shè)置, UAC 和 UAS 事務(wù)處理狀態(tài)機(jī)的啟動(dòng),事件處理流程等,就可以基本明白了 oSIP 各個(gè)函數(shù)的主要作用和正確的用法了,下一步,可以參考 eXosip 來針對某個(gè)應(yīng)用,去除掉大量暫時(shí)用不到的代碼,來構(gòu)建一個(gè)簡單的 SIP 軟電話和 SIP 服務(wù)器,來進(jìn)一步深入 oSIP 學(xué)習(xí)應(yīng)用了。 特別聲明: 1: 資料來源于互聯(lián)網(wǎng),版權(quán)歸屬原作者 2:資料內(nèi)容屬于網(wǎng)絡(luò)意見,與本賬號立場無關(guān) 3:如有侵權(quán),請告知,立即刪除。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1