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

正文內(nèi)容

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

2025-07-21 16:56本頁(yè)面
  

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