exoSip 开发者手册 下载本文

内容发布更新时间 : 2024/5/14 2:47:43星期一 下面是文章的全部内容请认真阅读。

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