http://sofia-sip.sourceforge.net/refdocs/msg/index.html,翻译自官网的这张网页。
MIME介绍参考:http://blog.csdn.net/cxm_hwj/article/details/6690058。
模块元信息
模块包括可以处理基于文本协议(SIP,HTTP和RTSP)的消息和头的解析器和函数。还提供MIME头和MIME multipart消息的解析,MIME对这些协议来说比较常见。
-
联系人:
- Pekka Pessi < Pekka.Pessi@nokia-email.address.hidden>
-
状态:
- Sofia SIP Core library
-
许可:
- LGPL
-
贡献者:
-
- Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>
msg模块的内容
msg模块包括如下一些公共头文件:
- <sofia-sip/msg.h>基本消息接口
- <sofia-sip/msg_types.h>消息和头的结构体定义和typedef
- <sofia-sip/msg_protos.h>针对通用头的特定头函数原型
- <sofia-sip/msg_header.h>操作消息头的函数原型和宏
- <sofia-sip/msg_addr.h>访问和消息相关的网络地址和I/O载体的函数
- <sofia-sip/msg_date.h>处理日期和时间的类型和函数
- <sofia-sip/msg_mime.h>MIME头和MIME multipart消息的类型、函数原型和宏
- <sofia-sip/msg_mime_protos.h>MIME头特定函数原型
除了这些接口,解析器文档描述了扩展解析器使其支持新的头所需具备的功能,或者扩展解析器使其支持新的协议所需具备的功能。为解析器增加一些新的头,或者扩充已有头的定义都是可行的。组成这些解析器的头文件是:
- <sofia-sip/msg_parser.h>解析函数,宏
- <sofia-sip/msg_mclass.h>消息工厂对象定义
- <sofia-sip/msg_mclass_hash.h>头名称哈希
解析器,消息和头
Sofia msg模块包含基于文本的类似RFC 822消息的接口。当前,定义了三个解析器:SIP,HTTP和MIME。
每个头对应的C结构体在<sofia-sip/msg_types.h>头文件中给出,或者在协议特定的头文件中给出。这些协议特定的头文件有<sofia-sip/sip.h>,<sofia-sip/http.h>和<sofia-sip/msg_mime.h>。对每个头,都会有头类结构体,一些标准函数,以及在tag列表中的tag。
作为惯例,所有SIP头的标识符都以sip开始,所有的宏都以SIP开始。HTTP也有着同样的惯例:使用http前缀。和他们相关的MIME头和函数在msg模块中定义,他们使用msg前缀。SIP或HTTP头使用的结构体在<sofia-sip/msg_types.h>头文件中定义,为每个特定的协议都会有一个单独的typdedef,,例如Accept头会被定义多次:
typedef struct msg_accept_s sip_accept_t;