osip2协议栈解析 osip2协议栈是开放源代码的sip协议栈,具有短小简洁的特点,核心特性为sip协议数据的解析和事务的管理。下面我们将对osip2协议栈进行详细的解析。 1. osip2协议栈介绍 osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一。它具有短小简洁的特点,核心特性为sip协议数据的解析和事务的管理。数据包的收发、RTP流的处理等,并不在Osip2中完成。应用程序使用Osip时需要单独去实现这些模块。osip2的缺点是没有很好的上层api封装,使得上层应用在调用协议栈时很破碎;只做到了transaction层次的协议过程解析,缺少call、session、dialog等过程的解析,这也增加了使用的难度。 2. osip2协议栈体系结构 OSIP主要由解析模块、工具模块和状态机模块构成,其核心是状态机模块。osip结构如图所示。 2.1 语法解析器 libosip库源码src/osipparser2为解析器源码,OSIP解析模块主要用于对SIP请求与响应进行封装与解析处理,分为SIP解析、URL解析与SDP解析完成对sip协议相关字段的构造和解析。比如,将紧凑的存储于内存buffer中的sip数据解析到清晰定义的数据结构体中,每一个字段代表sip协议中有意义的一个头域。SIP解析主要负责SIP标题头的解析与封装。SDP解析除了对数据包中SDP会话各类型进行解析外还包含对各类型的初始化和释放操作以及对整个SDP包的一些基本操作。URL解析主要负责对SIP URI中包含的host,port,username,password等信息进行解析与设置。 2.2 有限状态机 SIP状态机模块负责完成对某个事务状态的维持及处理。并且在特定的状态下触发相应的事件或者回调函数。OSIP协议栈的状态机主要分为4类:INVITE客户端事务ICT,非INVITE客户端事务NICT,INVITE服务器端事务IST,非INVITE服务器端事务NIST。 2.3 工具模块 OSIP工具模块分为对话管理工具和SDP协商工具。对话管理工具使用户能够根据RFC3261对dialog进行操作,建立相应dialog结构体。并通过对dialog结构体的添加、删除、查询实现对话管理。SDP协商工具负责向SIP终端用户提供协商codec等功能。 2.4 协议栈框架 框架并不是指代码的某一部分,而是指它的构成形式。主要有三部分:底层套接字接收/发送,模块间通信管道,上层调用。 osip2协议栈的解析可以分为协议栈介绍、体系结构、osip关键数据结构说明、osip协议栈的工作原理、osip的使用等几个部分来进行讲解。
剩余12页未读,继续阅读
- 粉丝: 34
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦