exoSip 开发者手册
1 扩展的eXosip协议栈
1.1 如何初始化libeXosip2
当使用eXosip时,你的首要任务是初始化eXosip上下文和libosip库(语法分析器和状态机)。这是在使用libeXosip2之前一定要完成的。
include
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消息的发送收到一个事件,每个事件包含