eXosip用户手册:1.1 如何初始化libeXosip2
2012-09-04 22:30
781 查看
说明:本文的内容是根据官方的eXosip_User_Manual来翻译,为了省时间提高效率,部分内容是意译,部分内容个人觉得没有必要,所以不翻译。后续的相关文章亦如此。
1.1 如何初始化libeXosip2
使用eXosip时,第一步工作是初始化eXosip和libosip库(解析器和状态机)。在使用libeXosip2前必须必须先做这一步。
然后可以发送消息,等待并处理eXosip事件。
每当发送一个SIP消息,都会收到一个事件。每个事件包含受影响事务的原始请求,以及触发有效事件的最后应答,
你可以从这些信息获取所有的头部,并存储起来,以方便后续的操作或者显示。
例如:当收到一个呼叫传输REFER请求时,你可以检索“refer-To”头部:
eXosip_event包含呼叫标识符、注册信息、传入订阅、呼出订阅等。这些标识符将会被API用于控制呼叫、注册、传入或呼出订阅,这些API将会建立默认的带SIP头的信息头(From, To, Call-ID, CSeq, Route, Record-Route,Max-Forward...),并为你发送信息。
1.1 如何初始化libeXosip2
使用eXosip时,第一步工作是初始化eXosip和libosip库(解析器和状态机)。在使用libeXosip2前必须必须先做这一步。
#include <eXosip2/eXosip.h> int i; i = eXosip_init(); // 初始化eXosip和osip协议栈 if (i != 0) return -1; i = eXosip_listen_addr (IPPROTO_UDP, NULL, 5060, AF_INET, 0); // 打开信号socket if (i != 0) // 传输层初始化失败 { eXosip_quit(); return -1; }
然后可以发送消息,等待并处理eXosip事件。
eXosip_event_t *je = NULL; while (1) { je = eXosip_event_wait(0,50); // 侦听是否有消息到来 eXosip_lock(); eXosip_default_action(je); eXosip_unlock (); if (je == NULL) // 没有接收到消息 continue; switch (je->type) { case EXOSIP_MESSAGE_NEW: break; case EXOSIP_CALL_INVITE: break; case EXOSIP_CALL_ACK: break; case EXOSIP_CALL_CLOSED: break; case ...: break; default: break; } eXosip_event_free(je); }
每当发送一个SIP消息,都会收到一个事件。每个事件包含受影响事务的原始请求,以及触发有效事件的最后应答,
你可以从这些信息获取所有的头部,并存储起来,以方便后续的操作或者显示。
例如:当收到一个呼叫传输REFER请求时,你可以检索“refer-To”头部:
osip_header_t *referto_head = NULL; i = osip_message_header_get_byname(evt->sip, "refer-To", 0, &referto_head); if (referto_head == NULL || referto_head->value == NULL)
eXosip_event包含呼叫标识符、注册信息、传入订阅、呼出订阅等。这些标识符将会被API用于控制呼叫、注册、传入或呼出订阅,这些API将会建立默认的带SIP头的信息头(From, To, Call-ID, CSeq, Route, Record-Route,Max-Forward...),并为你发送信息。
相关文章推荐
- eXosip用户手册:1.2 如何初始化、修改或终止呼叫
- eXoisp用户手册:1.3 如何发送或者升级注册
- 如何打开osip/eXosip库的trace log 调试信息
- 如何编写好的用户手册?
- Freeswitch中文用户手册(第四章 SIP)----2
- QuteCom手记:exosip初始化和构建INVITE请求
- 如何实现在自己编写的asterisk用户平台实现添加Extensions , sip ,user!
- Apusic 1.1 用户手册(PDF)
- 如何编译osip和exosip
- 开源 免费 java CMS - 用户手册1.1发布
- Freeswitch中文用户手册(第四章 SIP)----2
- (翻译)如何编写好的用户手册
- 基于osip2/eXosip2协议栈的应用开发之(1):翻译:eXosip开发手册
- 开源 免费 java CMS - 用户手册1.1发布 .
- Java - Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?
- 最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面
- rabbitmq-service用户手册(翻译)
- 用户如何有效地利用数据字典
- Nginx实战基础篇五 如何让用户通过用户名密码认证访问我们的web站点
- 《ERP从内部集成起步》读书笔记——第一章 Garthner公司是如何提出ERP的 1.1尊重历史