/** Structure for accessing parsed SIP headers. */
typedef struct sip_s sip_t;
/**SIP message object.
*
* This structure contains a parsed SIP message. The struct is usually
* referred with typedef #sip_t. It is used to access the headers and
* payload within the SIP message. The generic transport aspects of the
* message, like network address, is accessed using the #msg_t object
* directly.
*/
struct sip_s {
msg_common_t sip_common[1]; /**< For recursive inclusion */
msg_pub_t *sip_next; /**< Dummy link to msgfrag */
void *sip_user; /**< Application data */
unsigned sip_size; /**< Size of structure */
int sip_flags; /**< Parser flags */
sip_error_t *sip_error; /**< Erroneous headers */
/* Pseudoheaders */
sip_request_t *sip_request; /**< Request line */
sip_status_t *sip_status; /**< Status line */
/* === Headers start here */
sip_via_t *sip_via; /**< Via (v) */
sip_route_t *sip_route; /**< Route */
sip_record_route_t *sip_record_route; /**< Record-Route */
sip_max_forwards_t *sip_max_forwards; /**< Max-Forwards */
sip_proxy_require_t *sip_proxy_require; /**< Proxy-Require */
sip_from_t *sip_from; /**< From (f) */
sip_to_t *sip_to; /**< To (t) */
sip_call_id_t *sip_call_id; /**< Call-ID (i) */
sip_cseq_t *sip_cseq; /**< CSeq */
sip_contact_t *sip_contact; /**< Contact (m) */
sip_rseq_t *sip_rseq; /**< RSeq */
sip_rack_t *sip_rack; /**< RAck */
/* Caller Preferences */
sip_request_disposition_t *sip_request_disposition;
/**< Request-Disposition (d) */
sip_accept_contact_t *sip_accept_contact;/**< Accept-Contact (a) */
sip_reject_contact_t *sip_reject_contact;/**< Reject-Contact (j) */
sip_expires_t *sip_expires; /**< Expires */
sip_date_t *sip_date; /**< Date */
sip_retry_after_t *sip_retry_after; /**< Retry-After */
sip_timestamp_t *sip_timestamp; /**< Timestamp */
sip_min_expires_t *sip_min_expires; /**< Min-Expires */
sip_subject_t *sip_subject; /**< Subject (s) */
sip_priority_t *sip_priority; /**< Priority */
sip_call_info_t *sip_call_info; /**< Call-Info */
sip_organization_t *sip_organization; /**< Organization */
sip_server_t *sip_server; /**< Server */
sip_user_agent_t *sip_user_agent; /**< User-Agent */
sip_in_reply_to_t *sip_in_reply_to; /**< In-Reply-To */
sip_accept_t *sip_accept; /**< Accept */
sip_accept_encoding_t *sip_accept_encoding; /**< Accept-Encoding */
sip_accept_language_t *sip_accept_language; /**< Accept-Language */
sip_allow_t *sip_allow; /**< Allow */
sip_require_t *sip_require; /**< Require */
sip_supported_t *sip_supported; /**< Supported (k) */
sip_unsupported_t *sip_unsupported; /**< Unsupported */
/* RFC 3265 */
sip_event_t *sip_event; /**< Event (o) */
sip_allow_events_t *sip_allow_events; /**< Allow-Events (u) */
sip_subscription_state_t *sip_subscription_state;
/**< Subscription-State */
sip_proxy_authenticate_t *sip_proxy_authenticate;
/**< Proxy-Authenticate */
sip_proxy_authentication_info_t *sip_proxy_authentication_info;
/**< Proxy-Authentication-Info */
sip_proxy_authorization_t *sip_proxy_authorization;
/**< Proxy-Authorization */
sip_authorization_t *sip_authorization;
/**< Authorization */
sip_www_authenticate_t *sip_www_authenticate;
/**< WWW-Authenticate */
sip_authentication_info_t *sip_authentication_info;
/**< Authentication-Info */
sip_error_info_t *sip_error_info; /**< Error-Info */
sip_warning_t *sip_warning; /**< Warning */
/* RFC 3515 */
sip_refer_to_t *sip_refer_to; /**< Refer-To (r) */
sip_referred_by_t *sip_referred_by; /**< Referred-By (b) */
sip_replaces_t *sip_replaces; /**< Replaces */
/* draft-ietf-sip-session-timer */
sip_session_expires_t *sip_session_expires;
/**< Session-Expires (x) */
sip_min_se_t *sip_min_se; /**< Min-SE */
sip_path_t *sip_path; /**< Path */
sip_service_route_t *sip_service_route; /**< Service-Route */
sip_reason_t *sip_reason; /**< Reason */
sip_security_client_t *sip_security_client; /**< Security-Client */
sip_security_server_t *sip_security_server; /**< Security-Server */
sip_security_verify_t *sip_security_verify; /**< Security-Verify */
sip_privacy_t *sip_privacy; /**< Privacy */
sip_etag_t *sip_etag; /**< SIP-ETag */
sip_if_match_t *sip_if_match; /**< SIP-If-Match */
/* Entity headers */
sip_mime_version_t *sip_mime_version; /**< MIME-Version */
sip_content_type_t *sip_content_type; /**< Content-Type (c) */
sip_content_encoding_t *sip_content_encoding;
/**< Content-Encoding (e) */
sip_content_language_t *sip_content_language; /**< Content-Language */
sip_content_disposition_t *sip_content_disposition;
/**< Content-Disposition */
sip_content_length_t *sip_content_length;/**< Content-Length (l) */
/* === Headers end here */
sip_unknown_t *sip_unknown; /**< Unknown headers */
sip_separator_t *sip_separator;
/**< Separator between headers and payload */
sip_payload_t *sip_payload; /**< Message payload */
msg_multipart_t *sip_multipart; /**< Multipart MIME payload */
};