eXosip和osip Linux下载编译

一、前言

官网主页

http:// savannah.nongnu.org/projects/exosip/​

源码下载

Index of /download/exosip2/

当前源码版本

libexosip2-5.3.0.tar.gz                          

libosip2-5.3.0.tar.gz

二、编译

1 osip
编译过程指令
./configure --prefix=/home/dong/thrdparty/lib/osip(文件名为osip,路径为/home/dong/thrdparty/lib)

make

make install

编译出错解决
/usr/bin/mkdir -p '/home/dong/gb/open/lib/osip/lib'
/bin/sh ../../libtool --mode=install /usr/bin/install -c ​​ ​libosip2.la​​​ '/home/dong/gb/open/lib/osip/lib'
libtool: install: error: cannot install `​​ ​libosip2.la​​' to a directory not ending in /usr/local/lib

解决方案:执行make clean清除编译指令,因为之前编译之后,修改了configure选项直接又编译了。然后重新执行make指令

2 exosip
编译过程指令
./configure OSIP_CFLAGS="-I/home/dong/thrdparty/lib/osip/include" OSIP_LIBS="-L/home/dong/thrdparty/lib/osip/lib -losip2 -losipparser2"  --prefix=/home/dong/thrdparty/lib/exosip

make

make install

说明

OSIP_CFLAGS 指定osip头文件

OSIP_LIBS指定osip的动态库和静态库文件路径

编译出错解决
libtool: link: ranlib .libs/libeXosip2.a

/usr/bin/sed: can't read /usr/local/lib/libosipparser2.la: No such file or directory

libtool: link: `/usr/local/lib/libosipparser2.la' is not a valid libtool archive

解决方案:执行make clean清除编译指令,因为之前编译之后,修改了configure选项直接又编译了。然后重新执行make指令

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用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`中添加你自己的处理逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值