osip_message_t结构体详解
时间: 2023-06-12 09:08:11 浏览: 69
osip_message_t结构体是SIP协议栈中的一个重要数据结构,它用于存储SIP消息的各种信息,包括请求行、消息头、消息体等。下面是osip_message_t结构体的详细说明:
```c
typedef struct osip_message osip_message_t;
struct osip_message {
int status_code; /* for SIP response only */
osip_from_t *from;
osip_to_t *to;
osip_via_t *vias;
osip_call_id_t *call_id;
osip_cseq_t *cseq;
osip_contact_t *contact;
osip_route_t *routes;
osip_record_route_t *record_routes;
osip_www_authenticate_t *www_authenticate;
osip_proxy_authenticate_t *proxy_authenticate;
osip_authorization_t *authorization;
osip_proxy_authorization_t *proxy_authorization;
osip_content_type_t *content_type;
char *body;
size_t body_len;
char *reason_phrase; /* for SIP response only */
char *sip_version; /* for SIP response only */
char *sip_method; /* for SIP request only */
char *sip_uri; /* for SIP request only */
char *sip_body; /* for SIP request only */
size_t sip_body_len; /* for SIP request only */
int message_property; /* message type (REQUEST, RESPONSE) */
int message_flags;
};
```
其中,字段的含义如下:
- `status_code`:响应码,仅用于SIP响应消息。
- `from`:From头域。
- `to`:To头域。
- `vias`:Via头域。
- `call_id`:Call-ID头域。
- `cseq`:CSeq头域。
- `contact`:Contact头域。
- `routes`:Route头域。
- `record_routes`:Record-Route头域。
- `www_authenticate`:WWW-Authenticate头域。
- `proxy_authenticate`:Proxy-Authenticate头域。
- `authorization`:Authorization头域。
- `proxy_authorization`:Proxy-Authorization头域。
- `content_type`:Content-Type头域。
- `body`:消息体。
- `body_len`:消息体长度。
- `reason_phrase`:响应原因短语,仅用于SIP响应消息。
- `sip_version`:SIP协议版本,仅用于SIP响应消息。
- `sip_method`:SIP请求方法,仅用于SIP请求消息。
- `sip_uri`:SIP请求URI,仅用于SIP请求消息。
- `sip_body`:SIP请求消息体,仅用于SIP请求消息。
- `sip_body_len`:SIP请求消息体长度,仅用于SIP请求消息。
- `message_property`:消息类型,取值为REQUEST或RESPONSE。
- `message_flags`:消息标志。