00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef SIP_H
00026
00027 #define SIP_H
00028
00038 #ifndef MSG_TYPES_H
00039 #include <sofia-sip/msg_types.h>
00040 #endif
00041 #ifndef MSG_MIME_H
00042 #include <sofia-sip/msg_mime.h>
00043 #endif
00044
00045 SOFIA_BEGIN_DECLS
00046
00048 typedef enum {
00049 sip_method_invalid = -1,
00050 sip_method_unknown = 0,
00051 sip_method_invite,
00052 sip_method_ack,
00053 sip_method_cancel,
00054 sip_method_bye,
00055 sip_method_options,
00056 sip_method_register,
00057 sip_method_info,
00058 sip_method_prack,
00059 sip_method_update,
00060 sip_method_message,
00061 sip_method_subscribe,
00062 sip_method_notify,
00063 sip_method_refer,
00064 sip_method_publish,
00065 } sip_method_t;
00066
00067 #define SIP_METHOD(s) sip_method_unknown, #s
00068 #define SIP_METHOD_ACK sip_method_ack, "ACK"
00069 #define SIP_METHOD_CANCEL sip_method_cancel, "CANCEL"
00070 #define SIP_METHOD_BYE sip_method_bye, "BYE"
00071 #define SIP_METHOD_INVITE sip_method_invite, "INVITE"
00072 #define SIP_METHOD_OPTIONS sip_method_options, "OPTIONS"
00073 #define SIP_METHOD_REGISTER sip_method_register, "REGISTER"
00074 #define SIP_METHOD_INFO sip_method_info, "INFO"
00075 #define SIP_METHOD_PRACK sip_method_prack, "PRACK"
00076 #define SIP_METHOD_UPDATE sip_method_update, "UPDATE"
00077 #define SIP_METHOD_MESSAGE sip_method_message, "MESSAGE"
00078 #define SIP_METHOD_SUBSCRIBE sip_method_subscribe, "SUBSCRIBE"
00079 #define SIP_METHOD_NOTIFY sip_method_notify, "NOTIFY"
00080 #define SIP_METHOD_REFER sip_method_refer, "REFER"
00081 #define SIP_METHOD_PUBLISH sip_method_publish, "PUBLISH"
00082
00084 #define SIP_NONE ((void const *)-1L)
00085
00087 #define SIP_PROTOCOL_TAG ((void *)0x53495020)
00088
00089 enum {
00091 SIP_DEFAULT_PORT = 5060,
00092 #define SIP_DEFAULT_PORT SIP_DEFAULT_PORT
00093
00095 #define SIP_DEFAULT_SERV "5060"
00096
00098 SIPS_DEFAULT_PORT = 5061,
00099 #define SIPS_DEFAULT_PORT SIPS_DEFAULT_PORT
00100
00101 #define SIPS_DEFAULT_SERV "5061"
00102 };
00103
00105 typedef msg_time_t sip_time_t;
00106
00108 #define SIP_TIME_MAX ((sip_time_t)MSG_TIME_MAX)
00109
00111 typedef struct sip_s sip_t;
00112
00114 typedef union sip_header_u sip_header_t;
00115
00117 typedef struct msg_generic_s sip_generic_t;
00118 #define g_value g_string
00119
00121 typedef msg_common_t sip_common_t;
00122
00124 typedef msg_param_t sip_param_t;
00125
00127 typedef struct sip_addr_s sip_addr_t;
00128
00130 typedef msg_auth_t sip_auth_t;
00131
00133 typedef struct sip_request_s sip_request_t;
00135 typedef struct sip_status_s sip_status_t;
00137 typedef msg_error_t sip_error_t;
00138
00140 typedef msg_unknown_t sip_unknown_t;
00142 typedef msg_separator_t sip_separator_t;
00144 typedef msg_payload_t sip_payload_t;
00145
00146
00147 typedef struct sip_accept_s sip_accept_t;
00148 typedef msg_accept_any_t sip_accept_encoding_t;
00149 typedef msg_accept_any_t sip_accept_language_t;
00150 typedef msg_list_t sip_allow_t;
00151 typedef struct sip_authentication_info_s
00152 sip_authentication_info_t;
00153 typedef sip_auth_t sip_authorization_t;
00154 typedef struct sip_call_id_s sip_call_id_t;
00155 typedef struct sip_call_info_s sip_call_info_t;
00156 typedef struct sip_contact_s sip_contact_t;
00157 typedef struct sip_cseq_s sip_cseq_t;
00158 typedef sip_generic_t sip_etag_t;
00159 typedef sip_generic_t sip_if_match_t;
00160 typedef msg_content_disposition_t sip_content_disposition_t;
00161 typedef msg_list_t sip_content_encoding_t;
00162 typedef msg_list_t sip_content_language_t;
00163 typedef struct sip_content_length_s sip_content_length_t;
00164 typedef struct msg_content_type_s sip_content_type_t;
00165 typedef sip_generic_t sip_mime_version_t;
00166 typedef struct sip_date_s sip_date_t;
00167 typedef struct sip_error_info_s sip_error_info_t;
00168 typedef struct sip_expires_s sip_expires_t;
00169 typedef struct sip_addr_s sip_from_t;
00170 typedef msg_list_t sip_in_reply_to_t;
00171 typedef struct sip_max_forwards_s sip_max_forwards_t;
00172 typedef struct sip_min_expires_s sip_min_expires_t;
00173 typedef struct sip_min_se_s sip_min_se_t;
00174 typedef sip_generic_t sip_organization_t;
00175 typedef sip_generic_t sip_priority_t;
00176 typedef sip_auth_t sip_proxy_authenticate_t;
00177 typedef struct sip_authentication_info_s
00178 sip_proxy_authentication_info_t;
00179 typedef sip_auth_t sip_proxy_authorization_t;
00180 typedef msg_list_t sip_proxy_require_t;
00181 typedef struct sip_rack_s sip_rack_t;
00182 typedef struct sip_reason_s sip_reason_t;
00183 typedef struct sip_route_s sip_record_route_t;
00184
00185 typedef struct sip_refer_to_s sip_refer_to_t;
00186 typedef struct sip_referred_by_s sip_referred_by_t;
00187 typedef struct sip_replaces_s sip_replaces_t;
00188
00189 typedef struct sip_request_disposition_s sip_request_disposition_t;
00190
00191 typedef struct sip_caller_prefs_s sip_caller_prefs_t;
00192 typedef struct sip_caller_prefs_s sip_accept_contact_t;
00193 typedef struct sip_caller_prefs_s sip_reject_contact_t;
00194
00195 typedef msg_list_t sip_require_t;
00196 typedef struct sip_retry_after_s sip_retry_after_t;
00197 typedef struct sip_route_s sip_route_t;
00198 typedef struct sip_rseq_s sip_rseq_t;
00199 typedef sip_generic_t sip_server_t;
00200 typedef struct sip_session_expires_s
00201 sip_session_expires_t;
00202 typedef sip_generic_t sip_subject_t;
00203 typedef struct sip_subscription_state_s
00204 sip_subscription_state_t;
00205 typedef msg_list_t sip_supported_t;
00206 typedef struct sip_timestamp_s sip_timestamp_t;
00207 typedef struct sip_addr_s sip_to_t;
00208 typedef msg_list_t sip_unsupported_t;
00209 typedef sip_generic_t sip_user_agent_t;
00210 typedef struct sip_via_s sip_via_t;
00211 typedef msg_warning_t sip_warning_t;
00212 typedef sip_auth_t sip_www_authenticate_t;
00213
00214 typedef struct sip_event_s sip_event_t;
00215 typedef msg_list_t sip_allow_events_t;
00216
00217
00218 typedef struct sip_privacy_s sip_privacy_t;
00219
00220
00221 typedef struct sip_route_s sip_path_t;
00222
00223
00224 typedef struct sip_security_agree_s sip_security_client_t;
00225 typedef struct sip_security_agree_s sip_security_server_t;
00226 typedef struct sip_security_agree_s sip_security_verify_t;
00227
00228
00229 typedef struct sip_route_s sip_service_route_t;
00230
00231
00239 struct sip_s {
00240 msg_common_t sip_common[1];
00241 msg_pub_t *sip_next;
00242 void *sip_user;
00243 unsigned sip_size;
00244 int sip_flags;
00245
00246 sip_error_t *sip_error;
00248
00249 sip_request_t *sip_request;
00250 sip_status_t *sip_status;
00252
00253 sip_via_t *sip_via;
00254 sip_route_t *sip_route;
00255 sip_record_route_t *sip_record_route;
00256 sip_max_forwards_t *sip_max_forwards;
00257 sip_proxy_require_t *sip_proxy_require;
00259 sip_from_t *sip_from;
00260 sip_to_t *sip_to;
00261 sip_call_id_t *sip_call_id;
00262 sip_cseq_t *sip_cseq;
00263 sip_contact_t *sip_contact;
00264 sip_rseq_t *sip_rseq;
00265 sip_rack_t *sip_rack;
00267
00268 sip_request_disposition_t *sip_request_disposition;
00270 sip_accept_contact_t *sip_accept_contact;
00271 sip_reject_contact_t *sip_reject_contact;
00273 sip_expires_t *sip_expires;
00274 sip_date_t *sip_date;
00275 sip_retry_after_t *sip_retry_after;
00276 sip_timestamp_t *sip_timestamp;
00277 sip_min_expires_t *sip_min_expires;
00279 sip_subject_t *sip_subject;
00280 sip_priority_t *sip_priority;
00282 sip_call_info_t *sip_call_info;
00283 sip_organization_t *sip_organization;
00284 sip_server_t *sip_server;
00285 sip_user_agent_t *sip_user_agent;
00286 sip_in_reply_to_t *sip_in_reply_to;
00288 sip_accept_t *sip_accept;
00289 sip_accept_encoding_t *sip_accept_encoding;
00290 sip_accept_language_t *sip_accept_language;
00292 sip_allow_t *sip_allow;
00293 sip_require_t *sip_require;
00294 sip_supported_t *sip_supported;
00295 sip_unsupported_t *sip_unsupported;
00297
00298 sip_event_t *sip_event;
00299 sip_allow_events_t *sip_allow_events;
00300 sip_subscription_state_t *sip_subscription_state;
00303 sip_proxy_authenticate_t *sip_proxy_authenticate;
00305 sip_proxy_authentication_info_t *sip_proxy_authentication_info;
00307 sip_proxy_authorization_t *sip_proxy_authorization;
00309 sip_authorization_t *sip_authorization;
00311 sip_www_authenticate_t *sip_www_authenticate;
00313 sip_authentication_info_t *sip_authentication_info;
00315 sip_error_info_t *sip_error_info;
00316 sip_warning_t *sip_warning;
00318
00319 sip_refer_to_t *sip_refer_to;
00320 sip_referred_by_t *sip_referred_by;
00321 sip_replaces_t *sip_replaces;
00323
00324 sip_session_expires_t *sip_session_expires;
00326 sip_min_se_t *sip_min_se;
00328 sip_path_t *sip_path;
00329 sip_service_route_t *sip_service_route;
00331 sip_reason_t *sip_reason;
00333 sip_security_client_t *sip_security_client;
00334 sip_security_server_t *sip_security_server;
00335 sip_security_verify_t *sip_security_verify;
00337 sip_privacy_t *sip_privacy;
00339 sip_etag_t *sip_etag;
00340 sip_if_match_t *sip_if_match;
00342
00343 sip_mime_version_t *sip_mime_version;
00344 sip_content_type_t *sip_content_type;
00345 sip_content_encoding_t *sip_content_encoding;
00347 sip_content_language_t *sip_content_language;
00348 sip_content_disposition_t *sip_content_disposition;
00350 sip_content_length_t *sip_content_length;
00352
00353
00354 sip_unknown_t *sip_unknown;
00355 sip_separator_t *sip_separator;
00357 sip_payload_t *sip_payload;
00358 msg_multipart_t *sip_multipart;
00359 };
00360
00361
00365 struct sip_request_s
00366 {
00367 sip_common_t rq_common[1];
00368 sip_error_t *rq_next;
00369 sip_method_t rq_method;
00370 char const *rq_method_name;
00371 url_t rq_url[1];
00372 char const *rq_version;
00373 };
00374
00378 struct sip_status_s
00379 {
00380 sip_common_t st_common[1];
00381 sip_error_t *st_next;
00382 char const *st_version;
00383 int st_status;
00384 char const *st_phrase;
00385 };
00386
00390 struct sip_addr_s
00391 {
00392 sip_common_t a_common[1];
00393 sip_error_t *a_next;
00394 char const *a_display;
00395 url_t a_url[1];
00396 msg_param_t const *a_params;
00397 char const *a_comment;
00399 char const *a_tag;
00400 };
00401
00402 #define a_user a_url->url_user
00403 #define a_host a_url->url_host
00404
00408 struct sip_accept_s
00409 {
00410 sip_common_t ac_common[1];
00411 sip_accept_t *ac_next;
00412 char const *ac_type;
00413 char const *ac_subtype;
00414 msg_param_t const *ac_params;
00415 char const *ac_q;
00416 };
00417
00421 struct sip_authentication_info_s
00422 {
00423 sip_common_t ai_common[1];
00424 sip_error_t *ai_next;
00425 msg_param_t const *ai_params;
00426 };
00427
00431 struct sip_call_id_s {
00432 sip_common_t i_common[1];
00433 sip_call_id_t *i_next;
00434 char const *i_id;
00435 uint32_t i_hash;
00436 };
00437
00441 struct sip_call_info_s
00442 {
00443 sip_common_t ci_common[1];
00444 sip_call_info_t *ci_next;
00445 url_t ci_url[1];
00446 msg_param_t const *ci_params;
00447 char const *ci_purpose;
00448 };
00449
00453 struct sip_cseq_s
00454 {
00455 sip_common_t cs_common[1];
00456 sip_error_t *cs_next;
00457 uint32_t cs_seq;
00458 sip_method_t cs_method;
00459 char const *cs_method_name;
00460 };
00461
00465 struct sip_contact_s
00466 {
00467 sip_common_t m_common[1];
00468 sip_contact_t *m_next;
00469 char const *m_display;
00470 url_t m_url[1];
00471 msg_param_t const *m_params;
00472 char const *m_comment;
00474 char const *m_q;
00475 char const *m_expires;
00476 };
00477
00481 struct sip_content_length_s
00482 {
00483 sip_common_t l_common[1];
00484 sip_error_t *l_next;
00485 uint32_t l_length;
00486 };
00487
00488 #if DOCUMENTATION_ONLY
00489
00493 struct sip_content_type_s
00494 {
00495 sip_common_t c_common[1];
00496 sip_error_t *c_next;
00497 char const *c_type;
00498 char const *c_subtype;
00499 msg_param_t const *c_params;
00500 };
00501 #endif
00502
00506 struct sip_date_s
00507 {
00508 sip_common_t d_common[1];
00509 sip_date_t *d_next;
00510 sip_time_t d_time;
00511 };
00512
00516 struct sip_error_info_s
00517 {
00518 sip_common_t ei_common[1];
00519 sip_call_info_t *ei_next;
00520 url_t ei_url[1];
00521 msg_param_t const *ei_params;
00522 };
00523
00527 struct sip_event_s
00528 {
00529 sip_common_t o_common[1];
00530 sip_error_t *o_next;
00531 char const * o_type;
00532 msg_param_t const *o_params;
00533 char const *o_id;
00534 };
00535
00539 struct sip_expires_s
00540 {
00541 sip_common_t ex_common[1];
00542 sip_error_t *ex_next;
00543 sip_time_t ex_date;
00544 # define ex_time ex_date
00545 sip_time_t ex_delta;
00546 };
00547
00551 struct sip_max_forwards_s
00552 {
00553 sip_common_t mf_common[1];
00554 sip_error_t *mf_next;
00555 unsigned long mf_count;
00556 };
00557
00561 struct sip_min_expires_s
00562 {
00563 sip_common_t me_common[1];
00564 sip_error_t *me_next;
00565 unsigned long me_delta;
00566 };
00567
00571 struct sip_rack_s
00572 {
00573 sip_common_t ra_common;
00574 sip_error_t *ra_next;
00575 uint32_t ra_response;
00576 uint32_t ra_cseq;
00577 sip_method_t ra_method;
00578 char const *ra_method_name;
00579 };
00580
00584 struct sip_refer_to_s
00585 {
00586 sip_common_t r_common[1];
00587 sip_error_t *r_next;
00588 char const *r_display;
00589 url_t r_url[1];
00590 msg_param_t const *r_params;
00591 };
00592
00596 struct sip_referred_by_s
00597 {
00598 sip_common_t b_common[1];
00599 sip_error_t *b_next;
00600 char const *b_display;
00601 url_t b_url[1];
00602 msg_param_t const *b_params;
00603 char const *b_cid;
00604 };
00605
00606
00610 struct sip_replaces_s
00611 {
00612 sip_common_t rp_common[1];
00613 sip_error_t *rp_next;
00614 char const *rp_call_id;
00615 msg_param_t const *rp_params;
00616 char const *rp_to_tag;
00617 char const *rp_from_tag;
00618 unsigned rp_early_only;
00619 };
00620
00621
00625 struct sip_retry_after_s {
00626 sip_common_t af_common[1];
00627 sip_error_t *af_next;
00628 sip_time_t af_delta;
00629 char const *af_comment;
00630 msg_param_t const *af_params;
00631 char const *af_duration;
00632 };
00633
00637 struct sip_request_disposition_s
00638 {
00639 sip_common_t rd_common[1];
00640 sip_unknown_t *rd_next;
00641 char const **rd_items;
00642 };
00643
00647 struct sip_caller_prefs_s
00648 {
00649 sip_common_t cp_common[1];
00650 sip_caller_prefs_t *cp_next;
00651 msg_param_t const *cp_params;
00652 char const *cp_q;
00653 unsigned cp_require : 1;
00654 unsigned cp_explicit : 1;
00655 };
00656
00660 struct sip_reason_s
00661 {
00662 sip_common_t re_common[1];
00663 sip_reason_t *re_next;
00664 char const *re_protocol;
00665 msg_param_t const *re_params;
00666 char const *re_cause;
00667 char const *re_text;
00668 };
00669
00673 struct sip_route_s
00674 {
00675 sip_common_t r_common[1];
00676 sip_route_t *r_next;
00677 char const *r_display;
00678 url_t r_url[1];
00679 msg_param_t const *r_params;
00680 };
00681
00685 struct sip_rseq_s
00686 {
00687 sip_common_t rs_common;
00688 sip_error_t *rs_next;
00689 unsigned long rs_response;
00690 };
00691
00695 struct sip_session_expires_s
00696 {
00697 sip_common_t x_common[1];
00698 sip_error_t *x_next;
00699 unsigned long x_delta;
00700 msg_param_t const *x_params;
00701 char const *x_refresher;
00702 };
00703
00707 struct sip_min_se_s
00708 {
00709 sip_common_t min_common[1];
00710 sip_error_t *min_next;
00711 unsigned long min_delta;
00712 msg_param_t const *min_params;
00713 };
00714
00718 struct sip_subscription_state_s
00719 {
00720 sip_common_t ss_common[1];
00721 sip_error_t *ss_next;
00723 char const *ss_substate;
00724 msg_param_t const *ss_params;
00725 char const *ss_reason;
00726 char const *ss_expires;
00727 char const *ss_retry_after;
00728 };
00729
00733 struct sip_timestamp_s
00734 {
00735 sip_common_t ts_common[1];
00736 sip_error_t *ts_next;
00737 char const *ts_stamp;
00738 char const *ts_delay;
00739 };
00740
00744 struct sip_via_s
00745 {
00746 sip_common_t v_common[1];
00747 sip_via_t *v_next;
00748 char const *v_protocol;
00749 char const *v_host;
00750 char const *v_port;
00751 msg_param_t const *v_params;
00752 char const *v_comment;
00753 char const *v_ttl;
00754 char const *v_maddr;
00755 char const *v_received;
00756 char const *v_branch;
00757 char const *v_rport;
00758 char const *v_comp;
00759 };
00760
00765 struct sip_security_agree_s
00766 {
00767 sip_common_t sa_common[1];
00768 struct sip_security_agree_s
00769 *sa_next;
00770 char const *sa_mec;
00771 msg_param_t const *sa_params;
00772 char const *sa_q;
00773 char const *sa_d_alg;
00774 char const *sa_d_qop;
00775 char const *sa_d_ver;
00776 };
00777
00781 struct sip_privacy_s
00782 {
00783 sip_common_t priv_common[1];
00784 sip_error_t *priv_next;
00785 msg_param_t const *priv_values;
00786 };
00787
00788
00789
00790
00791 union sip_header_u
00792 {
00793 sip_common_t sh_common[1];
00794 struct
00795 {
00796 sip_common_t shn_common;
00797 sip_header_t *shn_next;
00798 } sh_header_next[1];
00799 #define sh_next sh_header_next->shn_next
00800 #define sh_class sh_common->h_class
00801 #define sh_succ sh_common->h_succ
00802 #define sh_prev sh_common->h_prev
00803 #define sh_data sh_common->h_data
00804 #define sh_len sh_common->h_len
00805
00806 sip_addr_t sh_addr[1];
00807 sip_auth_t sh_auth[1];
00808 sip_generic_t sh_generic[1];
00809
00810 sip_request_t sh_request[1];
00811 sip_status_t sh_status[1];
00812
00813 sip_error_t sh_error[1];
00814
00815 sip_via_t sh_via[1];
00816 sip_route_t sh_route[1];
00817 sip_record_route_t sh_record_route[1];
00818 sip_max_forwards_t sh_max_forwards[1];
00819
00820 sip_from_t sh_from[1];
00821 sip_to_t sh_to[1];
00822 sip_contact_t sh_contact[1];
00823 sip_call_id_t sh_call_id[1];
00824 sip_cseq_t sh_cseq[1];
00825 sip_rseq_t sh_rseq[1];
00826 sip_rack_t sh_rack[1];
00827
00828 sip_subject_t sh_subject[1];
00829 sip_priority_t sh_priority[1];
00830
00831 sip_date_t sh_date[1];
00832 sip_retry_after_t sh_retry_after[1];
00833 sip_timestamp_t sh_timestamp[1];
00834 sip_expires_t sh_expires[1];
00835 sip_min_expires_t sh_min_expires[1];
00836
00837 sip_call_info_t sh_call_info[1];
00838 sip_organization_t sh_organization[1];
00839 sip_server_t sh_server[1];
00840 sip_user_agent_t sh_user_agent[1];
00841 sip_in_reply_to_t sh_in_reply_to[1];
00842
00843 sip_accept_t sh_accept[1];
00844 sip_accept_encoding_t sh_accept_encoding[1];
00845 sip_accept_language_t sh_accept_language[1];
00846
00847 sip_allow_t sh_allow[1];
00848 sip_require_t sh_require[1];
00849 sip_proxy_require_t sh_proxy_require[1];
00850 sip_supported_t sh_supported[1];
00851 sip_unsupported_t sh_unsupported[1];
00852
00853 sip_event_t sh_event[1];
00854 sip_allow_events_t sh_allow_events[1];
00855 sip_subscription_state_t sh_subscription_state[1];
00856
00857 sip_proxy_authenticate_t sh_proxy_authenticate[1];
00858 sip_proxy_authentication_info_t sh_proxy_authentication_info[1];
00859 sip_proxy_authorization_t sh_proxy_authorization[1];
00860
00861 sip_authorization_t sh_authorization[1];
00862 sip_www_authenticate_t sh_www_authenticate[1];
00863 sip_authentication_info_t sh_authentication_info[1];
00864
00865 sip_error_info_t sh_error_info[1];
00866 sip_warning_t sh_warning[1];
00867
00868 sip_refer_to_t sh_refer_to[1];
00869 sip_referred_by_t sh_referred_by[1];
00870 sip_replaces_t sh_replaces[1];
00871
00872
00873 sip_caller_prefs_t sh_caller_prefs[1];
00874 sip_request_disposition_t sh_request_disposition[1];
00875 sip_accept_contact_t sh_accept_contact[1];
00876 sip_reject_contact_t sh_reject_contact[1];
00877
00878 sip_session_expires_t sh_session_expires[1];
00879 sip_min_se_t sh_min_se[1];
00880
00881 sip_path_t sh_path[1];
00882 sip_service_route_t sh_service_route[1];
00883
00884 sip_reason_t sh_reason[1];
00885
00886 sip_security_client_t sh_security_client[1];
00887 sip_security_server_t sh_security_server[1];
00888 sip_security_verify_t sh_security_verify[1];
00889
00890 sip_privacy_t sh_privacy[1];
00891
00892 sip_etag_t sh_etag[1];
00893 sip_if_match_t sh_if_match[1];
00894
00895
00896 sip_mime_version_t sh_mime_version[1];
00897 sip_content_type_t sh_content_type[1];
00898 sip_content_encoding_t sh_content_encoding[1];
00899 sip_content_language_t sh_content_language[1];
00900 sip_content_length_t sh_content_length[1];
00901 sip_content_disposition_t sh_content_disposition[1];
00902
00903 sip_unknown_t sh_unknown[1];
00904
00905 sip_separator_t sh_separator[1];
00906 sip_payload_t sh_payload[1];
00907 };
00908
00909 SOFIA_END_DECLS
00910
00911 #endif