eXosip和oSIP 库 (libosip2)的区别
libosip2 (oSIP) 是一个 轻量级、专注于 SIP 协议解析/构建和基础事务管理的库,它不处理网络传输。eXosip 是构建在 libosip2 之上的一个 高层封装库,它实现了完整的 SIP 用户代理 (UA) 核心功能,包括网络传输、完整的事务和对话状态机、事件管理以及应用友好的 API
- oSIP 就像汽车的零部件供应商: 提供高质量的发动机 (SIP 解析/构建)、变速箱 (基础事务管理)、底盘 (对话结构)。
- eXosip 就像整车厂: 它采购 oSIP 的零部件,自己设计制造车身、电气系统、悬挂 (网络传输, 完整状态机),并将所有部件组装成一辆能开上路的完整汽车 (完整的 SIP UA),还提供方向盘、油门踏板 (高层 API) 给司机 (应用开发者) 使用。
协作关系
eXosip 调用 oSIP:
- 解析收到的 SIP 消息: 使用 osip_message_parse() 将收到的字节流转换成结构化的 osip_message_t 对象。
- 构建要发送的 SIP 消息: 使用 oSIP 的各种 osip_xxx_set() 函数和 osip_message_to_str() 构建出符合规范的 SIP 消息字符串。
- 创建和管理事务/对话对象: 使用 osip_transaction_new(), osip_dialog_new() 等 API 创建基础对象,eXosip 在此基础上管理其完整生命周期和状态。
- 处理 URI、头域等: 使用 oSIP 的工具函数解析、操作 SIP URI 和各种头域参数。
eXosip 扩展 oSIP:
- 驱动状态机: oSIP 定义了事务状态 (如 PROCEEDING, COMPLETED, CON

最低0.47元/天 解锁文章
2866

被折叠的 条评论
为什么被折叠?



