sip 1.12.11devel
/tmp/buildd/sofia-sip-1.12.11+20110422/libsofia-sip-ua/sip/sofia-sip/sip.h
Go to the documentation of this file.
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 *)(intptr_t)-1)
00085 
00087 #define SIP_PROTOCOL_TAG ((void *)(uintptr_t)0x53495020) /* 'SIP ' */
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) */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Sofia-SIP 1.12.11devel - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.