eXosip2 osip 编译安装

eXosip2-3.6.0 编译安装

刚开始我使用了 下面文章介绍里版本  我以为不支持tcp 

其实是因为我服务端的端口 没有写对。

https://www.cnblogs.com/elisha-blogs/p/3974534.html 

cd /home/sip
wget http://ftp.twaren.net/Unix/NonGNU//osip/libosip2-3.6.0.tar.gz
wget http://download.savannah.gnu.org/releases/exosip/libeXosip2-3.6.0.tar.gz

tar zxvf libosip2-3.6.0.tar.gz -C /usr/local/src
tar zxvf libeXosip2-3.6.0.tar.gz -C /usr/local/src
cd /usr/local/src
cd libosip2-3.6.0
./configure
make
make install
cd ../libeXosip2-3.6.0
./configure
make
make install

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
ldconfig

jrtplib
https://blog.csdn.net/caoshangpa/article/details/52571183

 

文章很好的介绍了 osip exosip 的windows 编译安装    唯一需要优化的是 我觉得都用静态编译  就不存在导出问题。

http://www.cnblogs.com/dyllove98/archive/2013/06/25/3155427.html 

 

文章很好的介绍了 linux下环境变量设置
https://www.linuxidc.com/Linux/2017-03/142338.htm

linux 抓包 sip
tcpdump -i eth1 -nn -A port 5061 > sip.tmp
-i eth1 表示网卡
-nn 直接以 IP 及 port number 显示,而非主机名称 避免了dns
-A 以ascll 显示

 

eXosip2-5.0.0 编译安装

下面是用最新的 eXosip2-5.0.0 编译安装的

window 平台

我用的vs2010 

编译exosip

exosip 代码原文件缺失了“eXrefer_api.c”这个文件 我从4.1.0低版本 获取方式src。

删除
HAVE_OPENSSL_SSL_H
TSC_OPENSSL
TSC_WINDOWS
TSC_SUPPORT

 HAVE_CARES_H  未使用c-ares

c-ares-xxx  用的版本 1.11.0 我试了1.15.0的编译不过去。

 

参考:

https://blog.csdn.net/bikeytang/article/details/53448735

https://blog.csdn.net/dgyanyong/article/details/50818101

文章添加的Qwave.lib;;delayimp.lib;.lib 解决

https://blog.csdn.net/qq_41840387/article/details/79564471

转载于:https://www.cnblogs.com/swing07/p/10604340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用exosip和osip协议栈来打印服务器发送过来的信令信息,你可以使用以下的C程序代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <exosip2/exosip.h> int running = 1; void sigint_handler(int signal) { running = 0; } int main(int argc, char **argv) { osip_message_t *message; int status, duration; exosip_event_t *evt; struct timeval tv; exosip_t *ctx; signal(SIGINT, sigint_handler); ctx = exosip_malloc(); status = exosip_init(ctx); if (status != 0) { fprintf(stderr, "Failed to initialize exosip.\n"); exit(EXIT_FAILURE); } /* Register with server */ exosip_listen_address_set(ctx, "udp", "0.0.0.0", 5060, AF_INET6, IPPROTO_UDP, 0); exosip_add_authentication_info(ctx, "example.com", "username", "password", NULL, "MD5", NULL); exosip_register_build_initial_register(ctx, "sip:example.com", "sip:username@example.com", "sip:example.com", NULL, 3600, &message); exosip_register_send_register(ctx, message); while (running) { tv.tv_sec = 1; tv.tv_usec = 0; evt = exosip_event_wait(ctx, tv); if (evt == NULL) { continue; } switch (evt->type) { case EXOSIP_REGISTRATION_FAILURE: fprintf(stderr, "Registration failed.\n"); running = 0; break; case EXOSIP_REGISTRATION_SUCCESS: printf("Registered with server.\n"); break; case EXOSIP_MESSAGE_NEW: message = evt->request; printf("Received message: %s\n", message->sip); break; default: break; } exosip_event_free(evt); } /* Unregister from server */ exosip_register_build_initial_register(ctx, "sip:example.com", "sip:username@example.com", "sip:example.com", NULL, 0, &message); exosip_register_send_register(ctx, message); /* Cleanup */ exosip_quit(ctx); exosip_free(ctx); osip_free(message); return 0; } ``` 这个程序会使用exosip协议栈来注册到服务器,并且监听服务器发送过来的信令信息。当程序接收到新的信令信息时,它会将信息打印出来。如果你想要修改程序,可以在`case EXOSIP_MESSAGE_NEW`中添加你自己的处理逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值