當前位置:首頁 » 編程軟體 » linuxexosip編譯

linuxexosip編譯

發布時間: 2023-04-15 01:38:51

❶ SIP協議 SUBSCRIBE訂閱 404出錯碼

404錯誤的意思是沒有找陪帶到匹配的用戶,也就是請求URI里user部分(你包里的340200.。。。)。你需要查一下這個值你是從哪裡來的,server是否有與兆慶之匹配的已經注冊的用戶。
此外訂閱如果想要成功的話,幾個sip頭也必須是server能夠認識的,比如訂閱的事件包類型(Event header),消息體類型(content-type)。至於消息體力的內容,你這個看起來是私有協議,別人是幫不到蘆猜蘆你的。

❷ 畢業設計 SIP協議的實現

我們先進行一個簡單的純SIP信令(不帶語音連接建立)的UAC的SIP終端的程序開發的試驗(即一個只能作為主叫不能作為被叫的的SIP軟電話模型),我們創建一個MFC應用程序,對話框模式,照上面的說明,設置工程包含我們上面得到的oSIP的相關開發庫及SDK的一些開發庫,並且由於默認LIBC的沖突,需要排除MSVCRT[D]開發庫(其中D代表Debug模式下,沒有D表示Release模式下),直接使用eXosip的幾個主要函數就可以創建一個基本的SIP軟電話模型。

其主要流程為:
初始化eXosip庫-啟動事件監聽線程-向SIP Proxy注冊-向某SIP終端(電話號碼)發起呼叫-建立連接-結束連接

初始化代碼:
int ret = 0;

ret = eXosip_init ();
eXosip_set_user_agent("##YouToo0.1");

if(0 != ret)
{
AfxMessageBox("Couldn't initialize eXosip!\n");
return false;
}

ret = eXosip_listen_addr (IPPROTO_UDP, NULL, 0, AF_INET, 0);
if(0 != ret)
{
eXosip_quit ();
AfxMessageBox("Couldn't initialize transport layer!\n");
return false;
}

啟動事件監聽線程:
AfxBeginThread(sip_uac,(void *)this);

向SIP Proxy注冊:
eXosip_clear_authentication_info();
eXosip_add_authentication_info(uname, uname, upwd, "md5", NULL);

real_send_register(30); /* 自定義函數代碼請見源碼 */

發起呼叫(構建假的SDP描述,實際軟電話使用它構建RTP媒體連接):
osip_message_t *invite = NULL; /* 呼叫發起消息體 */
int i = eXosip_call_build_initial_invite (&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 0 0 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 0 8 101\r\n"
"a=rtpmap:0 PCMU/8000\r\n"
"a=rtpmap:8 PCMA/8000\r\n"
"a=rtpmap:101 telephone-event/8000\r\n"
"a=fmtp:101 0-11\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!");
}

❸ 使用VC++2008編譯exosip的動態庫文件dll遇到無法解析的外部符號問題。

產生這些錯誤是因為需要用到的一些函數在osip庫在def文件中沒導出。需要修改\libosip2-3.6.0\platform\vsnet目錄下面的osip2.def、osipparser2.def兩個文件,在文件的末尾導出這些函數,具體如下:
osip2.def:
osip_transaction_set_naptr_record @138

osipparser2.def:
osip_realloc @416
osip_strcasestr @417
__osip_uri_escape_userinfo @418

❹ 跪求SIP大神:Windows下編譯UAC的例子(libeXosip2-4.0.0)怎麼修改

你直接在搜索欄拿戚磨里打uac,就會出來個小藍旗子,最上面的,叫更改用戶賬戶控制設置,打開,有個東西,每拉一個位置,右邊會有提示的,一共四個選項,拉到底就行了,但是不建議這么做,電腦安全系數會降低好多,最好開到默認仔春,對你沒什麼太大影響,比visit好太多了。回答完消斗畢。

❺ sip協議如何用C語言實現

1、開源的sip伺服器端,比較好用的是Asterisk,標准C程序實現,代碼清晰。

2、sip的client相對比較多,主要有exosip,pjsip和opal。exosip簡單易用,在PC上用比較方便。但是涉及的相關資源太多,用了osip,srtp,ms2等眾多的開源庫,ms2下面還用到了ffmpeg,別的不說,光編譯就是噩夢。opal功能最強,雖然也用到了ffmpeg ,但是自己封裝的非常好,採用插件方式,調用靈活。opal採用class方式提供封裝,介面非常友好。感覺唯一不爽的地方,就是低層使用了ptlib,雖然多平台下都很好用,但放在嵌入式下感覺稍龐大了一些。pjsip精巧,方便移植,嵌入式下應該是首選。不過視頻頻支持方面擴展起來比opal麻煩。個人感覺,對於windows開發者來說,pjsip最大的好處就是代碼調試方便。整個工程一次編譯通過,另外兩個庫還要找很多相關的資源

3、其他的一些協議棧也調試過,比如reSipphone,好象是這個名字,還有Yate,不過從快速開發角度看,都不太合適。現在搞sip開發的,一開始就是先找好協議棧。linphone,ekiga什麼的,但龐大。對於剛開始做的,最好是一個精簡的demo。後來找到pjsip下面的幾個例子,慢慢地了解了sip的工作流程,當然少不了抓包工具和tcpmp。
不過,其實,sip沒有想像中的那麼麻煩。現在回頭看,剛開始做項目,使用協議棧絕對不是好想法。如果換個方向,先熟悉SIP基本協議,然後自己改造一個,或完全寫一個,可能效果更好。

❻ 錯誤 1 fatal error C1083: 無法打開包括文件:「eXosip2.h/eXosip.h」: No such file or directory c:\use

1. 將頭文機eXosip.h放到eXosip2目錄下肢運,在工程設置里添加include路徑包含脊拿eXosip2目錄
2. 通過添加工程文件方法把eXosip.h頭文歷野梁件加入工程,修改
#include "eXosip2/eXosip.h "

#include "eXosip.h "

❼ 跪求VS2008下如何編譯exosip

當我有這個問題的時候,就一直Mark你的問題,結果等到我解決了你的問題還沒人回答。
我來回答下吧。
OK,先從http://download.savannah.gnu.org/releases/exosip/ 下載exosip2最新項目,我是用的
libeXosip2-3.6.0,編譯工具VS2008

前期需要什麼?osip2開源項目,openssl開源項目,或者直接下載已經編譯好的lib和dll

自己新建一個空的dll項目,將其中exosip2中的源代碼和頭文件都加進來,在自己的項目目錄下建一個include和一個lib目錄。include里將osip和openssl的頭文件加進來,lib里將osip和openssl的lib文件加進來。(官方放出的源代碼里竟然有個低級變數沒聲明的錯誤,自己改過來)然後就是搞人的項目屬性問題了。按照下面的來

編譯的附加包含目錄指定之前建好的include目錄
鏈接的附加庫目錄指定之前建好的lib目錄

預處理宏定義處:SRV_RECORD;_CRT_SECURE_NO_DEPRECATE;HAVE_OPENSSL_SSL_H;EXOSIP_EXPORTS;_DEBUG;ENABLE_TRACE;WIN32;_WINDOWS;_USRDLL;OSIP_MT;_MT
鏈接器附加依賴項:
osip2.lib osipparser2.lib WSock32.Lib IPHlpApi.Lib WS2_32.Lib Dnsapi.lib ssleay32.lib libeay32.lib Crypt32.Lib

編譯自己建好的exosip2項目,如果有鏈接錯誤,檢查出錯的函數的頭文件和lib文件是否被正確指明路徑。我在編譯的時候很多osip的函數連接錯誤,發現osip2的def文件里有些函數沒聲明,所以接著改def文件,重新編譯osip2,再返回exosip項目編譯。

總之折騰半天後算是通過了,生成exosip2.lib 和exosip2.dll。
希望能幫到你,我就這樣解決了。

❽ 你好,如果把linphone集成的Qt中,是通過調用編譯好的linphone庫還是把源碼文件添加到工程中呢

這兩種方式都可以啊

那個10s的提示是正常的,exosip的工作線程打出來的

linux 下怎麼編譯exosip

無論是哪一種程序,在Linux 系統下進槐改閉行編譯的思路都是差不多的:首先要有 C 語言(或者別的語言)的源程序,然後使用相配套的編譯器對源程序進行編譯,生成中間代碼(注意:此時還不是最終的可執行文件)、最後還必須要將前面編譯好的中間代碼和Linux 系統提供的庫文件(*.lib,殲凳或者 *.o)進行有效鉛裂的鏈接,最後生成一個可執行的二進制代碼程序。

❿ 如何編譯osip和exosip

1.進入libosip2-3.6.0\platform\vsnet目錄,用VS2010直接打開osip.sln文件,項目自動轉換

2.更改libosip2-3.6.0\platform\vsnet\osip2.def 文件,在文件末尾追加

osip_transaction_set_naptr_record @138

3.更改libosip2-3.6.0\platform\vsnet\osipparser2.def 文件,在文件末尾追加

osip_realloc @416 osip_strcasestr @417
__osip_uri_escape_userinfo @418
4.先編譯osipparser2,再編譯osip2,最後在libosip2-3.6.0\platform\vsnet\Debug DLL下生成庫文件:

熱點內容
ftp上傳網頁 發布:2025-07-15 01:13:09 瀏覽:181
音樂文件夾圖標 發布:2025-07-15 01:03:41 瀏覽:494
安卓機怎麼反向充電 發布:2025-07-15 01:03:40 瀏覽:500
電腦使用華為雲伺服器 發布:2025-07-15 00:48:10 瀏覽:533
中考應該如何排解壓力 發布:2025-07-15 00:17:54 瀏覽:362
安卓第三方應用軟體是什麼 發布:2025-07-15 00:12:06 瀏覽:149
程序業務配置存儲 發布:2025-07-14 23:52:16 瀏覽:685
csdn編程挑戰 發布:2025-07-14 23:52:08 瀏覽:791
國外乘法演算法 發布:2025-07-14 23:51:14 瀏覽:11
phpexplodet 發布:2025-07-14 23:46:44 瀏覽:566