eXosip和osip库编译及应用程序编译

一、获取相关文件

osip    文件地址:ftp://ftp.gnu.org/gnu/osip

exoisp 文件地址:http://download.savannah.nongnu.org/releases/exosip/

本文创作时,最新版本都为5.0.0,因此以该版本为例子。

下载完成,进行解压操作

#: tar -zcvf libosip2-5.0.0.tar.gz
#: tar -zcvf libexosip2-5.0.0.tar.gz
#: export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH  

二、交叉编译版

先编译osip

#: cd /libosip2-5.0.0
#: ./configure --host=arm-linux-gnueabihf --prefix=/usr/local/sunxi/  --enable-static
#: make ARCH=arm
#: make install

再编译exosip

#: cd ../libexosip2-5.0.0
#: ./configure --host=arm-linux-gnueabihf --prefix=/usr/local/sunxi/  --enable-static  --with-lib-path=/usr/local/sunxi/
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值