exoSip 开发者手册

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

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消息的发送收到一个事件,每个事件包含

相关文档
最新文档