下载:
https://c-ares.haxx.se/ 下载:c-ares-1.15.0.tar.gz
http://ftp.twaren.net/Unix/NonGNU//osip/ 下载:libosip2-5.1.0.tar.gz
http://ftp.yzu.edu.tw/nongnu/exosip/ 下载:libexosip2-5.1.0.tar.gz
官方文档http://www.antisip.com/documentation/exosip2/group__howto__registration.html
解压到同文件夹且重命名
打开exosip\platform\vsnet文件夹下的eXosip.sln,会提示升级,确定
关闭vs修改exosip\platform\vsnet文件夹下的libcares.vcxproj
ares_platform.h
ares_platform.c
ares_create_query.c
ares_strsplit.h
ares_strsplit.c
头文件放一起
再打开项目
点击工程eXosip, 右键选择属性,配置属性->c/c+±>预处理器->预处理器定义,去掉 HAVE_OPENSSL_SSL_H:也可加入ssl 源码
修改eXrefer_api.c 为https://github.com/aurelihein/exosip/blob/master/src/eXrefer_api.c 内容
再修改osip\platform\vsnet目录下面的osip2.def、osipparser2.def两个文件,具体如下:
打开osip2.def文件,在最末尾加一行:
osip_transaction_set_naptr_record @138
打开osipparser2.def文件,在文件最后添加:
osip_realloc @417
osip_strcasestr @418
__osip_uri_escape_userinfo @419
ok
最后在解决方案上点击 重新生成解决方案 最后找到debug下的lib文件 4个 这个不需要编译动态库
测试新建项目
导入include和lib 在分别项目的include 下拷过来 lib为刚才编译的
项目配置include的和lib
好了新建一个测试
#include <eXosip2/eXosip.h>
#include <winsock.h>
#pragma comment(lib, "Dnsapi.lib")
#pragma comment(lib, "Iphlpapi.lib")
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "eXosip.lib")
#pragma comment(lib, "libcares.lib")
#pragma comment(lib, "osip2.lib")
#pragma comment(lib, "osipparser2.lib")
#pragma comment(lib, "Qwave.lib")
#pragma comment(lib, "delayimp.lib")
int main()
{
eXosip_t* sip = eXosip_malloc();
if (eXosip_init(sip) == OSIP_SUCCESS)
{
printf( "exosip init success");
if (eXosip_listen_addr(sip, IPPROTO_UDP, NULL, 0, AF_INET, 0) == OSIP_SUCCESS)
{
printf(exosip listen addr success" );
}
}
eXosip_quit(sip);
system("pause");
return 0;
}
运行看到success 表示成功
后续教程请博客列表查看
对此感兴趣的可以加群261074724