exoSip开发者手册

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

exoSip开发者手册
exoSip 开发者手册
1 扩展的eXosip协议栈
1.1 如何初始化libeXosip2
当使用eXosip时,你的首要任务是初始化eXosip上下文和libosip库(语法分析器和状态机)。

这是在使用libeXosip2之前一定要完成的。

include
int i;
TRACE_INITIALIZE (6, stdout);
i=eXosip_init();
if (i!=0)
return -1;
//在特定的socket上监听
i = eXosip_listen_addr (IPPROTO_UDP, NULL, port, AF_INET,
0);
if (i!=0)
{
eXosip_quit();
fprintf (stderr, "could not initialize transport layer\n");
return -1;
}
…初始化之后就可以发送消息或者等待eXosip事件的到来…
在前面的代码中,您学习了如何:
初始化osip trace(用- DENABLE_TRACE编译此代码)
初始化eXosip(和osip)堆栈
为信号打开一个套接字(只有UDP要初始eXosip2)
现在你要处理eXosip事件。

下面是一些来获得eXosip_event从在eXosip2堆栈的代码。

eXosip_event_t *je;
for (;;)
{
je = eXosip_event_wait (0, 50);
eXosip_lock();
eXosip_automatic_action ();
eXosip_unlock();
if (je == NULL)
break;
if (je->type == EXOSIP_CALL_NEW)
{
....
....
}
else if (je->type == EXOSIP_CALL_ACK)
{
....
....
}
else if (je->type == EXOSIP_CALL_ANSWERED) {
....
....
}
else .....
....
....
eXosip_event_free(je);
你将为每个SIP消息的发送收到一个事件,每个事件包含。

相关文档
最新文档