sip 1.12.10
|
00001 /* 00002 * This file is part of the Sofia-SIP package 00003 * 00004 * Copyright (C) 2005 Nokia Corporation. 00005 * 00006 * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden> 00007 * 00008 * This library is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public License 00010 * as published by the Free Software Foundation; either version 2.1 of 00011 * the License, or (at your option) any later version. 00012 * 00013 * This library is distributed in the hope that it will be useful, but 00014 * WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with this library; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 00021 * 02110-1301 USA 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) /* 'SIP'20 */ 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 00132 typedef struct sip_request_s sip_request_t; 00133 typedef struct sip_status_s sip_status_t; 00134 typedef msg_error_t sip_error_t; 00135 typedef msg_unknown_t sip_unknown_t; 00136 typedef msg_separator_t sip_separator_t; 00137 typedef msg_payload_t sip_payload_t; 00138 00139 typedef struct sip_accept_s sip_accept_t; 00140 typedef msg_accept_any_t sip_accept_encoding_t; 00141 typedef msg_accept_any_t sip_accept_language_t; 00142 typedef struct sip_allow_s sip_allow_t; 00143 typedef struct msg_auth_info_s sip_authentication_info_t; 00144 typedef struct msg_auth_s sip_authorization_t; 00145 typedef struct sip_call_id_s sip_call_id_t; 00146 typedef struct sip_call_info_s sip_call_info_t; 00147 typedef struct sip_contact_s sip_contact_t; 00148 typedef struct sip_cseq_s sip_cseq_t; 00149 typedef struct msg_generic_s sip_etag_t; 00150 typedef struct msg_generic_s sip_if_match_t; 00151 typedef msg_content_disposition_t sip_content_disposition_t; 00152 typedef msg_list_t sip_content_encoding_t; 00153 typedef msg_list_t sip_content_language_t; 00154 typedef struct sip_content_length_s sip_content_length_t; 00155 typedef struct msg_content_type_s sip_content_type_t; 00156 typedef struct msg_generic_s sip_mime_version_t; 00157 typedef struct sip_date_s sip_date_t; 00158 typedef struct sip_error_info_s sip_error_info_t; 00159 typedef struct sip_expires_s sip_expires_t; 00160 typedef struct sip_addr_s sip_from_t; 00161 typedef msg_list_t sip_in_reply_to_t; 00162 typedef struct sip_max_forwards_s sip_max_forwards_t; 00163 typedef struct sip_min_expires_s sip_min_expires_t; 00164 typedef struct sip_min_se_s sip_min_se_t; 00165 typedef struct msg_generic_s sip_organization_t; 00166 typedef struct msg_generic_s sip_priority_t; 00167 typedef struct msg_auth_s sip_proxy_authenticate_t; 00168 typedef struct msg_auth_info_s sip_proxy_authentication_info_t; 00169 typedef struct msg_auth_s sip_proxy_authorization_t; 00170 typedef msg_list_t sip_proxy_require_t; 00171 typedef struct sip_rack_s sip_rack_t; 00172 typedef struct sip_reason_s sip_reason_t; 00173 typedef struct sip_route_s sip_record_route_t; 00174 00175 typedef struct sip_refer_to_s sip_refer_to_t; 00176 typedef struct sip_referred_by_s sip_referred_by_t; 00177 typedef struct sip_replaces_s sip_replaces_t; 00178 00179 typedef struct sip_request_disposition_s sip_request_disposition_t; 00180 00181 typedef struct sip_caller_prefs_s sip_caller_prefs_t; 00182 typedef struct sip_caller_prefs_s sip_accept_contact_t; 00183 typedef struct sip_caller_prefs_s sip_reject_contact_t; 00184 00185 typedef msg_list_t sip_require_t; 00186 typedef struct sip_retry_after_s sip_retry_after_t; 00187 typedef struct sip_route_s sip_route_t; 00188 typedef struct sip_rseq_s sip_rseq_t; 00189 typedef struct msg_generic_s sip_server_t; 00190 typedef struct sip_session_expires_s 00191 sip_session_expires_t; 00192 typedef struct msg_generic_s sip_subject_t; 00193 typedef struct sip_subscription_state_s 00194 sip_subscription_state_t; 00195 typedef msg_list_t sip_supported_t; 00196 typedef struct sip_timestamp_s sip_timestamp_t; 00197 typedef struct sip_addr_s sip_to_t; 00198 typedef msg_list_t sip_unsupported_t; 00199 typedef struct msg_generic_s sip_user_agent_t; 00200 typedef struct sip_via_s sip_via_t; 00201 typedef msg_warning_t sip_warning_t; 00202 typedef struct msg_auth_s sip_www_authenticate_t; 00203 00204 typedef struct sip_event_s sip_event_t; 00205 typedef msg_list_t sip_allow_events_t; 00206 00207 /* RFC 3323 - @Privacy */ 00208 typedef struct sip_privacy_s sip_privacy_t; 00209 00210 /* RFC 3327 - @Path */ 00211 typedef struct sip_route_s sip_path_t; 00212 00213 /* RFC 3329 - Security Mechanism Agreement */ 00214 typedef struct sip_security_agree_s sip_security_client_t; 00215 typedef struct sip_security_agree_s sip_security_server_t; 00216 typedef struct sip_security_agree_s sip_security_verify_t; 00217 00218 /* RFC 3608 - Service Route */ 00219 typedef struct sip_route_s sip_service_route_t; 00220 00221 00230 struct sip_s { 00231 msg_common_t sip_common[1]; 00232 msg_pub_t *sip_next; 00233 void *sip_user; 00234 unsigned sip_size; 00235 int sip_flags; 00237 sip_error_t *sip_error; 00239 /* Pseudoheaders */ 00240 sip_request_t *sip_request; 00241 sip_status_t *sip_status; 00243 /* === Headers start here */ 00244 sip_via_t *sip_via; 00245 sip_route_t *sip_route; 00246 sip_record_route_t *sip_record_route; 00247 sip_max_forwards_t *sip_max_forwards; 00248 sip_proxy_require_t *sip_proxy_require; 00250 sip_from_t *sip_from; 00251 sip_to_t *sip_to; 00252 sip_call_id_t *sip_call_id; 00253 sip_cseq_t *sip_cseq; 00254 sip_contact_t *sip_contact; 00255 sip_rseq_t *sip_rseq; 00256 sip_rack_t *sip_rack; 00258 /* Caller Preferences */ 00259 sip_request_disposition_t *sip_request_disposition; 00261 sip_accept_contact_t *sip_accept_contact; 00262 sip_reject_contact_t *sip_reject_contact; 00264 sip_expires_t *sip_expires; 00265 sip_date_t *sip_date; 00266 sip_retry_after_t *sip_retry_after; 00267 sip_timestamp_t *sip_timestamp; 00268 sip_min_expires_t *sip_min_expires; 00270 sip_subject_t *sip_subject; 00271 sip_priority_t *sip_priority; 00273 sip_call_info_t *sip_call_info; 00274 sip_organization_t *sip_organization; 00275 sip_server_t *sip_server; 00276 sip_user_agent_t *sip_user_agent; 00277 sip_in_reply_to_t *sip_in_reply_to; 00279 sip_accept_t *sip_accept; 00280 sip_accept_encoding_t *sip_accept_encoding; 00281 sip_accept_language_t *sip_accept_language; 00283 sip_allow_t *sip_allow; 00284 sip_require_t *sip_require; 00285 sip_supported_t *sip_supported; 00286 sip_unsupported_t *sip_unsupported; 00288 /* RFC 3265 */ 00289 sip_event_t *sip_event; 00290 sip_allow_events_t *sip_allow_events; 00291 sip_subscription_state_t *sip_subscription_state; 00294 sip_proxy_authenticate_t *sip_proxy_authenticate; 00296 sip_proxy_authentication_info_t *sip_proxy_authentication_info; 00298 sip_proxy_authorization_t *sip_proxy_authorization; 00300 sip_authorization_t *sip_authorization; 00302 sip_www_authenticate_t *sip_www_authenticate; 00304 sip_authentication_info_t *sip_authentication_info; 00306 sip_error_info_t *sip_error_info; 00307 sip_warning_t *sip_warning; 00309 /* RFC 3515 */ 00310 sip_refer_to_t *sip_refer_to; 00311 sip_referred_by_t *sip_referred_by; 00312 sip_replaces_t *sip_replaces; 00314 /* draft-ietf-sip-session-timer */ 00315 sip_session_expires_t *sip_session_expires; 00317 sip_min_se_t *sip_min_se; 00319 sip_path_t *sip_path; 00320 sip_service_route_t *sip_service_route; 00322 sip_reason_t *sip_reason; 00324 sip_security_client_t *sip_security_client; 00325 sip_security_server_t *sip_security_server; 00326 sip_security_verify_t *sip_security_verify; 00328 sip_privacy_t *sip_privacy; 00330 sip_etag_t *sip_etag; 00331 sip_if_match_t *sip_if_match; 00333 /* Entity headers */ 00334 sip_mime_version_t *sip_mime_version; 00335 sip_content_type_t *sip_content_type; 00336 sip_content_encoding_t *sip_content_encoding; 00338 sip_content_language_t *sip_content_language; 00339 sip_content_disposition_t *sip_content_disposition; 00341 sip_content_length_t *sip_content_length; 00343 /* === Headers end here */ 00344 00345 sip_unknown_t *sip_unknown; 00346 sip_separator_t *sip_separator; 00348 sip_payload_t *sip_payload; 00349 msg_multipart_t *sip_multipart; 00350 }; 00351 00352 00356 struct sip_request_s 00357 { 00358 sip_common_t rq_common[1]; 00359 sip_error_t *rq_next; 00360 sip_method_t rq_method; 00361 char const *rq_method_name; 00362 url_t rq_url[1]; 00363 char const *rq_version; 00364 }; 00365 00369 struct sip_status_s 00370 { 00371 sip_common_t st_common[1]; 00372 sip_error_t *st_next; 00373 char const *st_version; 00374 int st_status; 00375 char const *st_phrase; 00376 }; 00377 00381 struct sip_addr_s 00382 { 00383 sip_common_t a_common[1]; 00384 sip_error_t *a_next; 00385 char const *a_display; 00386 url_t a_url[1]; 00387 msg_param_t const *a_params; 00388 char const *a_comment; 00390 char const *a_tag; 00391 }; 00392 00393 #define a_user a_url->url_user 00394 #define a_host a_url->url_host 00395 00399 struct sip_accept_s 00400 { 00401 sip_common_t ac_common[1]; 00402 sip_accept_t *ac_next; 00403 char const *ac_type; 00404 char const *ac_subtype; 00405 msg_param_t const *ac_params; 00406 char const *ac_q; 00407 }; 00408 00414 struct sip_allow_s 00415 { 00416 msg_common_t k_common[1]; 00417 msg_list_t *k_next; 00418 msg_param_t *k_items; 00419 uint32_t k_bitmap; 00421 }; 00422 00428 struct sip_authentication_info_s 00429 { 00430 sip_common_t ai_common[1]; 00431 sip_error_t *ai_next; 00432 msg_param_t const *ai_params; 00433 }; 00434 00438 struct sip_call_id_s { 00439 sip_common_t i_common[1]; 00440 sip_call_id_t *i_next; 00441 char const *i_id; 00442 uint32_t i_hash; 00443 }; 00444 00448 struct sip_call_info_s 00449 { 00450 sip_common_t ci_common[1]; 00451 sip_call_info_t *ci_next; 00452 url_t ci_url[1]; 00453 msg_param_t const *ci_params; 00454 char const *ci_purpose; 00455 }; 00456 00460 struct sip_cseq_s 00461 { 00462 sip_common_t cs_common[1]; 00463 sip_error_t *cs_next; 00464 uint32_t cs_seq; 00465 sip_method_t cs_method; 00466 char const *cs_method_name; 00467 }; 00468 00472 struct sip_contact_s 00473 { 00474 sip_common_t m_common[1]; 00475 sip_contact_t *m_next; 00476 char const *m_display; 00477 url_t m_url[1]; 00478 msg_param_t const *m_params; 00479 char const *m_comment; 00481 char const *m_q; 00482 char const *m_expires; 00483 }; 00484 00488 struct sip_content_length_s 00489 { 00490 sip_common_t l_common[1]; 00491 sip_error_t *l_next; 00492 uint32_t l_length; 00493 }; 00494 00495 #if DOCUMENTATION_ONLY 00496 00500 struct sip_content_type_s 00501 { 00502 sip_common_t c_common[1]; 00503 sip_error_t *c_next; 00504 char const *c_type; 00505 char const *c_subtype; 00506 msg_param_t const *c_params; 00507 }; 00508 #endif 00509 00513 struct sip_date_s 00514 { 00515 sip_common_t d_common[1]; 00516 sip_date_t *d_next; 00517 sip_time_t d_time; 00518 }; 00519 00523 struct sip_error_info_s 00524 { 00525 sip_common_t ei_common[1]; 00526 sip_call_info_t *ei_next; 00527 url_t ei_url[1]; 00528 msg_param_t const *ei_params; 00529 }; 00530 00534 struct sip_event_s 00535 { 00536 sip_common_t o_common[1]; 00537 sip_error_t *o_next; 00538 char const * o_type; 00539 msg_param_t const *o_params; 00540 char const *o_id; 00541 }; 00542 00546 struct sip_expires_s 00547 { 00548 sip_common_t ex_common[1]; 00549 sip_error_t *ex_next; 00550 sip_time_t ex_date; 00551 # define ex_time ex_date 00552 sip_time_t ex_delta; 00553 }; 00554 00558 struct sip_max_forwards_s 00559 { 00560 sip_common_t mf_common[1]; 00561 sip_error_t *mf_next; 00562 unsigned long mf_count; 00563 }; 00564 00568 struct sip_min_expires_s 00569 { 00570 sip_common_t me_common[1]; 00571 sip_error_t *me_next; 00572 unsigned long me_delta; 00573 }; 00574 00578 struct sip_rack_s 00579 { 00580 sip_common_t ra_common; 00581 sip_error_t *ra_next; 00582 uint32_t ra_response; 00583 uint32_t ra_cseq; 00584 sip_method_t ra_method; 00585 char const *ra_method_name; 00586 }; 00587 00591 struct sip_refer_to_s 00592 { 00593 sip_common_t r_common[1]; 00594 sip_error_t *r_next; 00595 char const *r_display; 00596 url_t r_url[1]; 00597 msg_param_t const *r_params; 00598 }; 00599 00603 struct sip_referred_by_s 00604 { 00605 sip_common_t b_common[1]; 00606 sip_error_t *b_next; 00607 char const *b_display; 00608 url_t b_url[1]; 00609 msg_param_t const *b_params; 00610 char const *b_cid; 00611 }; 00612 00613 00617 struct sip_replaces_s 00618 { 00619 sip_common_t rp_common[1]; 00620 sip_error_t *rp_next; 00621 char const *rp_call_id; 00622 msg_param_t const *rp_params; 00623 char const *rp_to_tag; 00624 char const *rp_from_tag; 00625 unsigned rp_early_only; 00626 }; 00627 00628 00632 struct sip_retry_after_s { 00633 sip_common_t af_common[1]; 00634 sip_error_t *af_next; 00635 sip_time_t af_delta; 00636 char const *af_comment; 00637 msg_param_t const *af_params; 00638 char const *af_duration; 00639 }; 00640 00644 struct sip_request_disposition_s 00645 { 00646 sip_common_t rd_common[1]; 00647 sip_error_t *rd_next; 00648 msg_param_t *rd_items; 00649 }; 00650 00654 struct sip_caller_prefs_s 00655 { 00656 sip_common_t cp_common[1]; 00657 sip_caller_prefs_t *cp_next; 00658 msg_param_t const *cp_params; 00659 char const *cp_q; 00660 unsigned cp_require :1; 00661 unsigned cp_explicit :1; 00662 }; 00663 00667 struct sip_reason_s 00668 { 00669 sip_common_t re_common[1]; 00670 sip_reason_t *re_next; 00671 char const *re_protocol; 00672 msg_param_t const *re_params; 00673 char const *re_cause; 00674 char const *re_text; 00675 }; 00676 00680 struct sip_route_s 00681 { 00682 sip_common_t r_common[1]; 00683 sip_route_t *r_next; 00684 char const *r_display; 00685 url_t r_url[1]; 00686 msg_param_t const *r_params; 00687 }; 00688 00692 struct sip_rseq_s 00693 { 00694 sip_common_t rs_common[1]; 00695 sip_error_t *rs_next; 00696 unsigned long rs_response; 00697 }; 00698 00702 struct sip_session_expires_s 00703 { 00704 sip_common_t x_common[1]; 00705 sip_error_t *x_next; 00706 unsigned long x_delta; 00707 msg_param_t const *x_params; 00708 char const *x_refresher; 00710 }; 00711 00715 struct sip_min_se_s 00716 { 00717 sip_common_t min_common[1]; 00718 sip_error_t *min_next; 00719 unsigned long min_delta; 00720 msg_param_t const *min_params; 00721 }; 00722 00726 struct sip_subscription_state_s 00727 { 00728 sip_common_t ss_common[1]; 00729 sip_error_t *ss_next; 00731 char const *ss_substate; 00732 msg_param_t const *ss_params; 00733 char const *ss_reason; 00734 char const *ss_expires; 00735 char const *ss_retry_after; 00736 }; 00737 00741 struct sip_timestamp_s 00742 { 00743 sip_common_t ts_common[1]; 00744 sip_error_t *ts_next; 00745 char const *ts_stamp; 00746 char const *ts_delay; 00747 }; 00748 00752 struct sip_via_s 00753 { 00754 sip_common_t v_common[1]; 00755 sip_via_t *v_next; 00756 char const *v_protocol; 00757 char const *v_host; 00758 char const *v_port; 00759 msg_param_t const *v_params; 00760 char const *v_comment; 00761 char const *v_ttl; 00762 char const *v_maddr; 00763 char const *v_received; 00764 char const *v_branch; 00765 char const *v_rport; 00766 char const *v_comp; 00767 }; 00768 00773 struct sip_security_agree_s 00774 { 00775 sip_common_t sa_common[1]; 00776 struct sip_security_agree_s 00777 *sa_next; 00778 char const *sa_mec; 00779 msg_param_t const *sa_params; 00780 char const *sa_q; 00781 char const *sa_d_alg; 00782 char const *sa_d_qop; 00783 char const *sa_d_ver; 00784 }; 00785 00789 struct sip_privacy_s 00790 { 00791 sip_common_t priv_common[1]; 00792 sip_error_t *priv_next; 00793 msg_param_t const *priv_values; 00794 }; 00795 00796 /* union representing any SIP header 00797 * these are arrays of size 1 for easy casting 00798 */ 00799 union sip_header_u 00800 { 00801 sip_common_t sh_common[1]; 00802 struct 00803 { 00804 sip_common_t shn_common; 00805 sip_header_t *shn_next; 00806 } sh_header_next[1]; 00807 #define sh_next sh_header_next->shn_next 00808 #define sh_class sh_common->h_class 00809 #define sh_succ sh_common->h_succ 00810 #define sh_prev sh_common->h_prev 00811 #define sh_data sh_common->h_data 00812 #define sh_len sh_common->h_len 00813 00814 sip_addr_t sh_addr[1]; 00815 sip_auth_t sh_auth[1]; 00816 sip_generic_t sh_generic[1]; 00817 00818 sip_request_t sh_request[1]; 00819 sip_status_t sh_status[1]; 00820 00821 sip_error_t sh_error[1]; 00822 00823 sip_via_t sh_via[1]; 00824 sip_route_t sh_route[1]; 00825 sip_record_route_t sh_record_route[1]; 00826 sip_max_forwards_t sh_max_forwards[1]; 00827 00828 sip_from_t sh_from[1]; 00829 sip_to_t sh_to[1]; 00830 sip_contact_t sh_contact[1]; 00831 sip_call_id_t sh_call_id[1]; 00832 sip_cseq_t sh_cseq[1]; 00833 sip_rseq_t sh_rseq[1]; 00834 sip_rack_t sh_rack[1]; 00835 00836 sip_subject_t sh_subject[1]; 00837 sip_priority_t sh_priority[1]; 00838 00839 sip_date_t sh_date[1]; 00840 sip_retry_after_t sh_retry_after[1]; 00841 sip_timestamp_t sh_timestamp[1]; 00842 sip_expires_t sh_expires[1]; 00843 sip_min_expires_t sh_min_expires[1]; 00844 00845 sip_call_info_t sh_call_info[1]; 00846 sip_organization_t sh_organization[1]; 00847 sip_server_t sh_server[1]; 00848 sip_user_agent_t sh_user_agent[1]; 00849 sip_in_reply_to_t sh_in_reply_to[1]; 00850 00851 sip_accept_t sh_accept[1]; 00852 sip_accept_encoding_t sh_accept_encoding[1]; 00853 sip_accept_language_t sh_accept_language[1]; 00854 00855 sip_allow_t sh_allow[1]; 00856 sip_require_t sh_require[1]; 00857 sip_proxy_require_t sh_proxy_require[1]; 00858 sip_supported_t sh_supported[1]; 00859 sip_unsupported_t sh_unsupported[1]; 00860 00861 sip_event_t sh_event[1]; 00862 sip_allow_events_t sh_allow_events[1]; 00863 sip_subscription_state_t sh_subscription_state[1]; 00864 00865 sip_proxy_authenticate_t sh_proxy_authenticate[1]; 00866 sip_proxy_authentication_info_t sh_proxy_authentication_info[1]; 00867 sip_proxy_authorization_t sh_proxy_authorization[1]; 00868 00869 sip_authorization_t sh_authorization[1]; 00870 sip_www_authenticate_t sh_www_authenticate[1]; 00871 sip_authentication_info_t sh_authentication_info[1]; 00872 00873 sip_error_info_t sh_error_info[1]; 00874 sip_warning_t sh_warning[1]; 00875 00876 sip_refer_to_t sh_refer_to[1]; 00877 sip_referred_by_t sh_referred_by[1]; 00878 sip_replaces_t sh_replaces[1]; 00879 00880 /* Caller-Preferences */ 00881 sip_caller_prefs_t sh_caller_prefs[1]; 00882 sip_request_disposition_t sh_request_disposition[1]; 00883 sip_accept_contact_t sh_accept_contact[1]; 00884 sip_reject_contact_t sh_reject_contact[1]; 00885 00886 sip_session_expires_t sh_session_expires[1]; 00887 sip_min_se_t sh_min_se[1]; 00888 00889 sip_path_t sh_path[1]; 00890 sip_service_route_t sh_service_route[1]; 00891 00892 sip_reason_t sh_reason[1]; 00893 00894 sip_security_client_t sh_security_client[1]; 00895 sip_security_server_t sh_security_server[1]; 00896 sip_security_verify_t sh_security_verify[1]; 00897 00898 sip_privacy_t sh_privacy[1]; 00899 00900 sip_etag_t sh_etag[1]; 00901 sip_if_match_t sh_if_match[1]; 00902 00903 /* Entity headers */ 00904 sip_mime_version_t sh_mime_version[1]; 00905 sip_content_type_t sh_content_type[1]; 00906 sip_content_encoding_t sh_content_encoding[1]; 00907 sip_content_language_t sh_content_language[1]; 00908 sip_content_length_t sh_content_length[1]; 00909 sip_content_disposition_t sh_content_disposition[1]; 00910 00911 sip_unknown_t sh_unknown[1]; 00912 00913 sip_separator_t sh_separator[1]; 00914 sip_payload_t sh_payload[1]; 00915 }; 00916 00917 SOFIA_END_DECLS 00918 00919 #endif /* !defined(SIP_H) */