当前位置:首页 » 编程软件 » 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下生成库文件:

热点内容
机顶盒怎么看密码 发布:2025-07-15 05:46:48 浏览:921
电脑配置低怎么变得不卡 发布:2025-07-15 05:34:08 浏览:844
ios火影忍者手游脚本 发布:2025-07-15 05:31:34 浏览:82
iphone支付密码忘了怎么办 发布:2025-07-15 05:30:55 浏览:775
c语言打开网页 发布:2025-07-15 05:21:33 浏览:640
如何制作我的世界模组服务器 发布:2025-07-15 05:21:33 浏览:903
phparray加 发布:2025-07-15 05:20:41 浏览:782
4000以内二手安卓机怎么选 发布:2025-07-15 05:11:25 浏览:644
静态编译修复器 发布:2025-07-15 05:11:24 浏览:506
iphonexr的存储空间 发布:2025-07-15 05:09:20 浏览:328