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

正文內容

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

2025-07-01 16:56 本頁面


【正文】 需在Link 中手工添加 oSIP 和 oSIPparser 的 lib 庫 )。 創(chuàng)建新工程,可以是任意工程,我們從最簡單的 Win32 控制臺程序開始,為了成功使用 oSIP,我們需要引用相關庫,調用相關頭文件,經(jīng)過多次試驗,發(fā)現(xiàn)需要引用如下的庫: 其中,除了我們上面編譯得到的三個 oSIP 庫外,其它庫都是系統(tǒng)庫,其中有一些是新安裝的 Platform SDK 所新提供的。 至此,我們有了一個簡單的開發(fā)環(huán)境了,可以充分利用網(wǎng)上大量的以 oSIP為基礎的代碼片段和官方說明文檔開始具體函數(shù)功能的測試和使用了: ) 我們先進行一個簡單的純 SIP 信令 (不帶語音連接建立 )的 UAC 的 SIP 終端的程序開發(fā)的試驗 (即一個只能作為主叫不能作為被叫的的 SIP 軟電話模型 ),我們創(chuàng) 建一個 MFC 應用程序,對話框模式,照上面的說明,設置工程包含我們上面得到的 oSIP 的相關開發(fā)庫及 SDK 的一些開發(fā)庫,并且由于默認 LIBC 的沖突,需要排除 MSVCRT[D]開發(fā)庫 (其中 D代表 Debug 模式下,沒有 D表示Release 模式下 ),直接使用 eXosip 的幾個主要函數(shù)就可以創(chuàng)建一個基本的 SIP軟電話模型。 其主要流程為: 初始化 eXosip 庫 啟動事件監(jiān)聽線程 向 SIP Proxy 注冊 向某 SIP 終端 (電話號碼 )發(fā)起呼叫 建立連接 結束連接 初始化代碼: int ret=0; ret=eXosip_init(); eXosip_set_user_agent(); if(0! =ret) { AfxMessageBox(Couldn39。t initialize eXosip! \n); return false; } ret=eXosip_listen_addr(IPPROTO_UDP,NULL,0,AF_INET,0); if(0! =ret) { eXosip_quit(); AfxMessageBox(Couldn39。t initialize transport layer! \n); return false; } 啟動事件監(jiān)聽線程: AfxBeginThread(sip_uac,(void*)this); 向 SIP Proxy 注冊: eXosip_clear_authentication_info(); eXosip_add_authentication_info(uname,uname,upwd,md5,NULL); real_send_register(30); /*自定義函數(shù)代碼請見源碼 */ 發(fā) 起呼叫 (構建假的 SDP 描述,實際軟電話使用它構建 RTP 媒體連接 ): osip_message_t*invite=NULL; /*呼叫發(fā)起消息體 */ int i=eXosip_call_build_initial_invite(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! ); } 可以看到非常簡單,再借助于 oRTP 和 Mediastreamer 開發(fā)庫,來快速為我們的 SIP 軟電話增加 RTP 和與系統(tǒng)語音 API 接口交互及語音編碼功能,即可以快速開發(fā)出一個可用的 SIP 軟電話,關于 oRTP 和 Mediastreamer 的相關介紹不是本文重點 ,將在有空的時候考慮增加相應使用教程,后面跟貼中可以下載基本可用的完整 SIP 軟電話的 VC源碼工程文件供參考使用,完全 CopyLeft,歡迎轉載,但請在轉載時注明作者信息,謝謝! 第二階段: 得到了一個 SIP 軟電話模型后,我們可以根據(jù)軟電話的實際運行表現(xiàn) (結合用 Ethereal 抓包分析 )來進行代碼的分析,以達到利用 eXoSIP 來輔助我們學習oSIP 的最終目的 (如要快速開發(fā)一個可用的 SIP 軟電話,請至前面提到的論壇去下載使用 oRTP 和 Mediastreamer 快速搭建的一個基本完整可用的 SIP 軟電話YouToo 版本的 VC 源碼工程文件作參考 )。 現(xiàn)在從 eXosip 的初始化函數(shù)開始入手,來分析 oSIP 的使用,這是第二階段,第三階段就是深入學習 oSIP 的源碼了,但大多數(shù)情況下應該沒有必要了,因為在第二階段就有部分涉及到第三階段的工作了,而且 oSIP 的源碼也就大多是一些 SIP 數(shù)據(jù)的語法解析和狀態(tài)機的實現(xiàn),能深入理解了 SIP 協(xié)議后,這些只是一種實現(xiàn)方式,沒必要完全去接受,而是可以用自己的方式和風格來實現(xiàn)一套,比如,更輕量化更有適用目的性的方式, oSIP 則只起
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1