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

正文內(nèi)容

osip協(xié)議棧及exosiportp等使用入門-文庫(kù)吧資料

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

【正文】 osip能訪問(wèn)到 eXosip 這個(gè)全局變量中設(shè)置的大量程序運(yùn)行時(shí)交互的信息,相當(dāng)于我們?cè)?VC 下開(kāi)啟一個(gè)線程時(shí),給線程傳入的一個(gè) void 指針指向我們的 MFC 應(yīng)用程序的當(dāng)前 dialog 對(duì)象實(shí)例,可以用void*osip_get_application_context(osip_t*osip)這個(gè)函數(shù)來(lái)取出指針來(lái)使用,不過(guò)好象 exosip 中并沒(méi)有用到它,可能是留給個(gè)人自已擴(kuò)展的吧 還能看到初始化代碼前面有一段 WIN32 平臺(tái)下的 SOCK 的初始化代碼,可以知道 eXosip 是用的原生的 winsock api 函數(shù),也就是我們可能以前學(xué)過(guò)的用VC和 WINAPI 寫 sock 程序時(shí) (不是 MFC),用到的那段 SOCK 初始代碼,還有一段有意思的代碼,就是 jpipe()函數(shù),它們返回的是一個(gè)管道,一個(gè)有 2個(gè)整型數(shù)值的數(shù)組 (一個(gè)進(jìn)一個(gè)出 ),查看其代碼發(fā)現(xiàn),非 WIN32 平臺(tái)是直接使用的pipe 系統(tǒng)函數(shù),而 WIN32 下則是用一對(duì) TCP 的本地 SOCK 連接來(lái)模擬的管道,一個(gè) SOCK 寫一個(gè) SOCK 讀,這段代碼是比較有 參考價(jià)值的: ) j=50; while(aport++amp。eXosip,0,sizeof(eXosip))完全清空和下面的類似=osip_strdup(eXosip/EXOSIP_VERSION)的 exosip 變量的一些初始值設(shè)置,其中有一個(gè) =0 應(yīng)該是一個(gè)狀態(tài)機(jī)開(kāi)關(guān),后面可以看到很多代碼檢測(cè)這個(gè)變量來(lái)決定是否繼續(xù)流程處理,默認(rèn)置成了 0表示現(xiàn)在 exosip 的處理流程是就緒的,即 ua是 not stop 的。 我們可以在代碼中看到很多 OSIP_TRACE,這是調(diào)試輸出宏調(diào)用了函數(shù)osip_trace,可以用 ENABLE_TRACE 宏來(lái)打開(kāi)調(diào)試以方便我們開(kāi)發(fā)調(diào)試。 eXosip_init()是 eXosip的初始化函數(shù),我們來(lái)看看它的內(nèi)部實(shí)現(xiàn): 首行是定義的 osip_t*osip,這在 oSIP 的官方手冊(cè)里我們看到,所有使用oSIP 的程序都要在最開(kāi)始處聲明一個(gè) osip_t 的指針,并使用 osip_init(amp。invite,dest_call,source_call,NULL,YouToo test demo! ); if(i! =0) { AfxMessageBox(Intial INVITE failed! \n); } char localip[128]; eXosip_guess_localip(AF_INET,localip,128); snprintf(tmp,4096, v=0\r\n o=josua 00 IN IP4%s\r\n s=conversation\r\n c=IN IP4%s\r\n t=0 0\r\n m=audio%s RTP/AVP 08 101\r\n a=rtpmap: 0 PCMU/8000\r\n a=rtpmap: 8 PCMA/8000\r\n a=rtpmap: 101 telephoneevent/8000\r\n a=fmtp: 101 011\r\n,localip,localip,9900); osip_message_set_body(invite,tmp,strlen(tmp)); osip_message_set_content_type(invite,application/sdp); eXosip_lock(); i=eXosip_call_send_initial_invite(invite); eXosip_unlock(); 掛斷或取消通話: int ret; ret=eXosip_call_terminate(call_id,dialog_id); if(0! =ret) { AfxMessageBox(hangup/terminate Failed! ); } 可以看到非常簡(jiǎn)單,再借助于 oRTP 和 Mediastreamer 開(kāi)發(fā)庫(kù),來(lái)快速為我們的 SIP 軟電話增加 RTP 和與系統(tǒng)語(yǔ)音 API 接口交互及語(yǔ)音編碼功能,即可以快速開(kāi)發(fā)出一個(gè)可用的 SIP 軟電話,關(guān)于 oRTP 和 Mediastreamer 的相關(guān)介紹不是本文重點(diǎn) ,將在有空的時(shí)候考慮增加相應(yīng)使用教程,后面跟貼中可以下載基本可用的完整 SIP 軟電話的 VC源碼工程文件供參考使用,完全 CopyLeft,歡迎轉(zhuǎn)載,但請(qǐng)?jiān)谵D(zhuǎn)載時(shí)注明作者信息,謝謝! 第二階段: 得到了一個(gè) SIP 軟電話模型后,我們可以根據(jù)軟電話的實(shí)際運(yùn)行表現(xiàn) (結(jié)合用 Ethereal 抓包分析 )來(lái)進(jìn)行代碼的分析,以達(dá)到利用 eXoSIP 來(lái)輔助我們學(xué)習(xí)oSIP 的最終目的 (如要快速開(kāi)發(fā)一個(gè)可用的 SIP 軟電話,請(qǐng)至前面提到的論壇去下載使用 oRTP 和 Mediastreamer 快速搭建的一個(gè)基本完整可用的 SIP 軟電話YouToo 版本的 VC 源碼工程文件作參考 )。t initialize eXosip! \n); return false; } ret=eXosip_listen_addr(IPPROTO_UDP,NULL,0,AF_INET,0); if(0! =ret) { eXosip_quit(); AfxMessageBox(Couldn39。 至此,我們有了一個(gè)簡(jiǎn)單的開(kāi)發(fā)環(huán)境了,可以充分利用網(wǎng)上大量的以 oSIP為基礎(chǔ)的代碼片段和官方說(shuō)明文檔開(kāi)始具體函數(shù)功能的測(cè)試和使用了: ) 我們先進(jìn)行一個(gè)簡(jiǎn)單的純 SIP 信令 (不帶語(yǔ)音連接建立 )的 UAC 的 SIP 終端的程序開(kāi)發(fā)的試驗(yàn) (即一個(gè)只能作為主叫不能作為被叫的的 SIP 軟電話模型 ),我們創(chuàng) 建一個(gè) MFC 應(yīng)用程序,對(duì)話框模式,照上面的說(shuō)明,設(shè)置工程包含我們上面得到的 oSIP 的相關(guān)開(kāi)發(fā)庫(kù)及 SDK 的一些開(kāi)發(fā)庫(kù),并且由于默認(rèn) LIBC 的沖突,需要排除 MSVCRT[D]開(kāi)發(fā)庫(kù) (其中 D代表 Debug 模式下,沒(méi)有 D表示Release 模式下 ),直接使用 eXosip 的幾個(gè)主要函數(shù)就可以創(chuàng)建一個(gè)基本的 SIP軟電話模型。 而要成功編譯 ExoSIP,似乎許多人被難住了,直接在 XPsp2 上,用 VC6,雖然你使用了 eXoSIP 推薦的 ,但是會(huì)得到一個(gè) sockaddr_storage結(jié)構(gòu)不能識(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1