sofia-sip/sip_extra.h

Go to the documentation of this file.
00001 /* -*- C -*-
00002  *
00003  * This file is part of the Sofia-SIP package
00004  *
00005  * Copyright (C) 2006 Nokia Corporation.
00006  *
00007  * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden>
00008  *
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public License
00011  * as published by the Free Software Foundation; either version 2.1 of
00012  * the License, or (at your option) any later version.
00013  *
00014  * This library is distributed in the hope that it will be useful, but
00015  * WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00017  * Lesser General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public
00020  * License along with this library; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
00022  * 02110-1301 USA
00023  *
00024  */
00025 
00026 #ifndef SIP_EXTRA_H
00027 
00028 #define SIP_EXTRA_H
00029 
00039 #ifndef SIP_H
00040 #include <sofia-sip/sip.h>
00041 #endif
00042 
00043 #ifndef SIP_HEADER_H
00044 #include <sofia-sip/sip_header.h>
00045 #endif
00046 
00047 SOFIA_BEGIN_DECLS
00048 
00049 typedef struct sip_refer_sub_s      sip_refer_sub_t;
00050 
00054 struct sip_refer_sub_s
00055 {
00056   sip_common_t        rs_common[1];     
00057   sip_error_t        *rs_next;          
00058   char const         *rs_value;         
00059   msg_param_t const  *rs_params;        
00060 };
00061 
00062 typedef struct sip_alert_info_s sip_alert_info_t;
00063 
00067 struct sip_alert_info_s
00068 {
00069   sip_common_t        ai_common[1];     
00070   sip_alert_info_t   *ai_next;          
00071   url_t               ai_url[1];        
00072   msg_param_t const  *ai_params;        
00073 };
00074 
00075 typedef struct sip_reply_to_s sip_reply_to_t;
00076 
00080 struct sip_reply_to_s
00081 {
00082   sip_common_t        rplyto_common[1]; 
00083   sip_error_t        *rplyto_next;      
00084   char const         *rplyto_display;   
00085   url_t               rplyto_url[1];    
00086   msg_param_t const  *rplyto_params;    
00087 };
00088 
00089 typedef struct sip_suppress_body_if_match_s sip_suppress_body_if_match_t;
00090 
00094 struct sip_suppress_body_if_match_s
00095 {
00096   sip_common_t   sbim_common[1];        
00097   sip_error_t   *sbim_next;             
00098   char const    *sbim_tag;              
00099 };
00100 
00101 typedef struct sip_suppress_notify_if_match_s sip_suppress_notify_if_match_t;
00102 
00106 struct sip_suppress_notify_if_match_s
00107 {
00108   sip_common_t   snim_common[1];        
00109   sip_error_t   *snim_next;             
00110   char const    *snim_tag;              
00111 };
00112 
00113 typedef struct sip_p_asserted_identity_s sip_p_asserted_identity_t;
00114 
00118 struct sip_p_asserted_identity_s
00119 {
00120   sip_common_t       paid_common[1];
00121   sip_p_asserted_identity_t
00122                     *paid_next;     
00123   char const        *paid_display;  
00124   url_t              paid_url[1];   
00125 };
00126 
00127 typedef struct sip_p_preferred_identity_s sip_p_preferred_identity_t;
00128 
00132 struct sip_p_preferred_identity_s
00133 {
00134   sip_common_t       ppid_common[1];
00135   sip_p_preferred_identity_t
00136                     *ppid_next;     
00137   char const        *ppid_display;  
00138   url_t              ppid_url[1];   
00139 };
00140 
00141 
00142 int sip_p_initialize_remote_party_id_headers(msg_mclass_t *mclass);
00143 
00144 typedef struct sip_remote_party_id_s sip_remote_party_id_t;
00145 
00149 struct sip_remote_party_id_s
00150 {
00151   sip_common_t       rpid_common[1];
00152   sip_remote_party_id_t
00153                     *rpid_next;     
00154   char const        *rpid_display;  
00155   url_t              rpid_url[1];   
00156   sip_param_t const *rpid_params;   
00158   char const        *rpid_screen, *rpid_party, *rpid_id_type, *rpid_privacy;
00159 };
00160 
00161 
00162 
00164 #define SIP_HAVE_REFER_SUB 1
00165 
00166 
00167 enum { 
00174   sip_refer_sub_hash = 14607 
00175 };
00176 
00188 SIP_DLL extern msg_hclass_t sip_refer_sub_class[];
00189 
00190 
00196 SOFIAPUBFUN issize_t sip_refer_sub_d(su_home_t *, msg_header_t *,
00197                                        char *s, isize_t slen);
00198 
00200 SOFIAPUBFUN issize_t sip_refer_sub_e(char b[], isize_t bsiz,
00201                                     msg_header_t const *h, int flags);
00202 
00208 #define sip_refer_sub(sip) \
00209   ((sip_refer_sub_t *)msg_header_access((msg_pub_t*)(sip), sip_refer_sub_class))
00210 
00226 #define SIP_REFER_SUB_INIT() SIP_HDR_INIT(refer_sub)
00227 
00244 #if SU_HAVE_INLINE
00245 su_inline sip_refer_sub_t *sip_refer_sub_init(sip_refer_sub_t x[1])
00246 {
00247   return SIP_HEADER_INIT(x, sip_refer_sub_class, sizeof(sip_refer_sub_t));
00248 }
00249 #else
00250 #define sip_refer_sub_init(x) \
00251   SIP_HEADER_INIT(x, sip_refer_sub_class, sizeof(sip_refer_sub_t))
00252 #endif
00253 
00267 #if SU_HAVE_INLINE
00268 su_inline int sip_is_refer_sub(sip_header_t const *header)
00269 {
00270   return header && header->sh_class->hc_hash == sip_refer_sub_hash;
00271 }
00272 #else
00273 int sip_is_refer_sub(sip_header_t const *header);
00274 #endif
00275 
00276 #define sip_refer_sub_p(h) sip_is_refer_sub((h))
00277 
00278 
00308 #if SU_HAVE_INLINE
00309 su_inline
00310 #endif
00311 sip_refer_sub_t *sip_refer_sub_dup(su_home_t *home, sip_refer_sub_t const *hdr) 
00312      __attribute__((__malloc__));
00313 
00314 #if SU_HAVE_INLINE
00315 su_inline
00316 sip_refer_sub_t *sip_refer_sub_dup(su_home_t *home, sip_refer_sub_t const *hdr)
00317 { 
00318   return (sip_refer_sub_t *)
00319     msg_header_dup_as(home, sip_refer_sub_class, (msg_header_t const *)hdr);
00320 }
00321 #endif
00322 
00352 #if SU_HAVE_INLINE
00353 su_inline
00354 #endif
00355 sip_refer_sub_t *sip_refer_sub_copy(su_home_t *home, sip_refer_sub_t const *hdr) 
00356      __attribute__((__malloc__));
00357 
00358 #if SU_HAVE_INLINE
00359 su_inline
00360 sip_refer_sub_t *sip_refer_sub_copy(su_home_t *home, sip_refer_sub_t const *hdr) 
00361 { 
00362   return (sip_refer_sub_t *)
00363     msg_header_copy_as(home, sip_refer_sub_class, (msg_header_t const *)hdr); 
00364 }
00365 #endif
00366 
00383 #if SU_HAVE_INLINE
00384 su_inline 
00385 #endif
00386 sip_refer_sub_t *sip_refer_sub_make(su_home_t *home, char const *s)
00387      __attribute__((__malloc__));
00388 
00389 #if SU_HAVE_INLINE
00390 su_inline sip_refer_sub_t *sip_refer_sub_make(su_home_t *home, char const *s)
00391 {
00392   return (sip_refer_sub_t *)sip_header_make(home, sip_refer_sub_class, s);
00393 }
00394 #endif
00395 
00415 #if SU_HAVE_INLINE
00416 su_inline
00417 #endif
00418 sip_refer_sub_t *sip_refer_sub_format(su_home_t *home, char const *fmt, ...)
00419      __attribute__((__malloc__, __format__ (printf, 2, 3)));
00420 
00421 #if SU_HAVE_INLINE
00422 su_inline sip_refer_sub_t *sip_refer_sub_format(su_home_t *home, char const *fmt, ...)
00423 {
00424   sip_header_t *h;
00425   va_list ap;
00426   
00427   va_start(ap, fmt);
00428   h = sip_header_vformat(home, sip_refer_sub_class, fmt, ap);
00429   va_end(ap);
00430  
00431   return (sip_refer_sub_t *)h;
00432 }
00433 #endif
00434 
00454 #define SIPTAG_REFER_SUB(x) siptag_refer_sub, siptag_refer_sub_v(x)
00455 
00456 SOFIAPUBVAR tag_typedef_t siptag_refer_sub;
00457 
00462 #define SIPTAG_REFER_SUB_REF(x) siptag_refer_sub_ref, siptag_refer_sub_vr(&(x))
00463 SOFIAPUBVAR tag_typedef_t siptag_refer_sub_ref;
00464 
00486 #define SIPTAG_REFER_SUB_STR(s) siptag_refer_sub_str, tag_str_v(s)
00487 
00488 SOFIAPUBVAR tag_typedef_t siptag_refer_sub_str;
00489 
00494 #define SIPTAG_REFER_SUB_STR_REF(x) siptag_refer_sub_str_ref, tag_str_vr(&(x))
00495 SOFIAPUBVAR tag_typedef_t siptag_refer_sub_str_ref;
00496 
00497 #if SU_INLINE_TAG_CAST
00498 su_inline tag_value_t
00499 siptag_refer_sub_v(sip_refer_sub_t const *v)
00500 { return (tag_value_t)v; }
00501 su_inline tag_value_t
00502 siptag_refer_sub_vr(sip_refer_sub_t const **vp)
00503 { return (tag_value_t)vp; }
00504 #else
00505 #define siptag_refer_sub_v(v)   (tag_value_t)(v)
00506 #define siptag_refer_sub_vr(vp) (tag_value_t)(vp)
00507 #endif
00508 
00510 #define SIP_HAVE_ALERT_INFO 1
00511 
00512 
00513 enum { 
00520   sip_alert_info_hash = 53913 
00521 };
00522 
00534 SIP_DLL extern msg_hclass_t sip_alert_info_class[];
00535 
00536 
00542 SOFIAPUBFUN issize_t sip_alert_info_d(su_home_t *, msg_header_t *,
00543                                        char *s, isize_t slen);
00544 
00546 SOFIAPUBFUN issize_t sip_alert_info_e(char b[], isize_t bsiz,
00547                                     msg_header_t const *h, int flags);
00548 
00554 #define sip_alert_info(sip) \
00555   ((sip_alert_info_t *)msg_header_access((msg_pub_t*)(sip), sip_alert_info_class))
00556 
00572 #define SIP_ALERT_INFO_INIT() SIP_HDR_INIT(alert_info)
00573 
00590 #if SU_HAVE_INLINE
00591 su_inline sip_alert_info_t *sip_alert_info_init(sip_alert_info_t x[1])
00592 {
00593   return SIP_HEADER_INIT(x, sip_alert_info_class, sizeof(sip_alert_info_t));
00594 }
00595 #else
00596 #define sip_alert_info_init(x) \
00597   SIP_HEADER_INIT(x, sip_alert_info_class, sizeof(sip_alert_info_t))
00598 #endif
00599 
00613 #if SU_HAVE_INLINE
00614 su_inline int sip_is_alert_info(sip_header_t const *header)
00615 {
00616   return header && header->sh_class->hc_hash == sip_alert_info_hash;
00617 }
00618 #else
00619 int sip_is_alert_info(sip_header_t const *header);
00620 #endif
00621 
00622 #define sip_alert_info_p(h) sip_is_alert_info((h))
00623 
00624 
00654 #if SU_HAVE_INLINE
00655 su_inline
00656 #endif
00657 sip_alert_info_t *sip_alert_info_dup(su_home_t *home, sip_alert_info_t const *hdr) 
00658      __attribute__((__malloc__));
00659 
00660 #if SU_HAVE_INLINE
00661 su_inline
00662 sip_alert_info_t *sip_alert_info_dup(su_home_t *home, sip_alert_info_t const *hdr)
00663 { 
00664   return (sip_alert_info_t *)
00665     msg_header_dup_as(home, sip_alert_info_class, (msg_header_t const *)hdr);
00666 }
00667 #endif
00668 
00698 #if SU_HAVE_INLINE
00699 su_inline
00700 #endif
00701 sip_alert_info_t *sip_alert_info_copy(su_home_t *home, sip_alert_info_t const *hdr) 
00702      __attribute__((__malloc__));
00703 
00704 #if SU_HAVE_INLINE
00705 su_inline
00706 sip_alert_info_t *sip_alert_info_copy(su_home_t *home, sip_alert_info_t const *hdr) 
00707 { 
00708   return (sip_alert_info_t *)
00709     msg_header_copy_as(home, sip_alert_info_class, (msg_header_t const *)hdr); 
00710 }
00711 #endif
00712 
00729 #if SU_HAVE_INLINE
00730 su_inline 
00731 #endif
00732 sip_alert_info_t *sip_alert_info_make(su_home_t *home, char const *s)
00733      __attribute__((__malloc__));
00734 
00735 #if SU_HAVE_INLINE
00736 su_inline sip_alert_info_t *sip_alert_info_make(su_home_t *home, char const *s)
00737 {
00738   return (sip_alert_info_t *)sip_header_make(home, sip_alert_info_class, s);
00739 }
00740 #endif
00741 
00761 #if SU_HAVE_INLINE
00762 su_inline
00763 #endif
00764 sip_alert_info_t *sip_alert_info_format(su_home_t *home, char const *fmt, ...)
00765      __attribute__((__malloc__, __format__ (printf, 2, 3)));
00766 
00767 #if SU_HAVE_INLINE
00768 su_inline sip_alert_info_t *sip_alert_info_format(su_home_t *home, char const *fmt, ...)
00769 {
00770   sip_header_t *h;
00771   va_list ap;
00772   
00773   va_start(ap, fmt);
00774   h = sip_header_vformat(home, sip_alert_info_class, fmt, ap);
00775   va_end(ap);
00776  
00777   return (sip_alert_info_t *)h;
00778 }
00779 #endif
00780 
00800 #define SIPTAG_ALERT_INFO(x) siptag_alert_info, siptag_alert_info_v(x)
00801 
00802 SOFIAPUBVAR tag_typedef_t siptag_alert_info;
00803 
00808 #define SIPTAG_ALERT_INFO_REF(x) siptag_alert_info_ref, siptag_alert_info_vr(&(x))
00809 SOFIAPUBVAR tag_typedef_t siptag_alert_info_ref;
00810 
00832 #define SIPTAG_ALERT_INFO_STR(s) siptag_alert_info_str, tag_str_v(s)
00833 
00834 SOFIAPUBVAR tag_typedef_t siptag_alert_info_str;
00835 
00840 #define SIPTAG_ALERT_INFO_STR_REF(x) siptag_alert_info_str_ref, tag_str_vr(&(x))
00841 SOFIAPUBVAR tag_typedef_t siptag_alert_info_str_ref;
00842 
00843 #if SU_INLINE_TAG_CAST
00844 su_inline tag_value_t
00845 siptag_alert_info_v(sip_alert_info_t const *v)
00846 { return (tag_value_t)v; }
00847 su_inline tag_value_t
00848 siptag_alert_info_vr(sip_alert_info_t const **vp)
00849 { return (tag_value_t)vp; }
00850 #else
00851 #define siptag_alert_info_v(v)   (tag_value_t)(v)
00852 #define siptag_alert_info_vr(vp) (tag_value_t)(vp)
00853 #endif
00854 
00856 #define SIP_HAVE_REPLY_TO 1
00857 
00858 
00859 enum { 
00866   sip_reply_to_hash = 38016 
00867 };
00868 
00880 SIP_DLL extern msg_hclass_t sip_reply_to_class[];
00881 
00882 
00888 SOFIAPUBFUN issize_t sip_reply_to_d(su_home_t *, msg_header_t *,
00889                                        char *s, isize_t slen);
00890 
00892 SOFIAPUBFUN issize_t sip_reply_to_e(char b[], isize_t bsiz,
00893                                     msg_header_t const *h, int flags);
00894 
00900 #define sip_reply_to(sip) \
00901   ((sip_reply_to_t *)msg_header_access((msg_pub_t*)(sip), sip_reply_to_class))
00902 
00918 #define SIP_REPLY_TO_INIT() SIP_HDR_INIT(reply_to)
00919 
00936 #if SU_HAVE_INLINE
00937 su_inline sip_reply_to_t *sip_reply_to_init(sip_reply_to_t x[1])
00938 {
00939   return SIP_HEADER_INIT(x, sip_reply_to_class, sizeof(sip_reply_to_t));
00940 }
00941 #else
00942 #define sip_reply_to_init(x) \
00943   SIP_HEADER_INIT(x, sip_reply_to_class, sizeof(sip_reply_to_t))
00944 #endif
00945 
00959 #if SU_HAVE_INLINE
00960 su_inline int sip_is_reply_to(sip_header_t const *header)
00961 {
00962   return header && header->sh_class->hc_hash == sip_reply_to_hash;
00963 }
00964 #else
00965 int sip_is_reply_to(sip_header_t const *header);
00966 #endif
00967 
00968 #define sip_reply_to_p(h) sip_is_reply_to((h))
00969 
00970 
01000 #if SU_HAVE_INLINE
01001 su_inline
01002 #endif
01003 sip_reply_to_t *sip_reply_to_dup(su_home_t *home, sip_reply_to_t const *hdr) 
01004      __attribute__((__malloc__));
01005 
01006 #if SU_HAVE_INLINE
01007 su_inline
01008 sip_reply_to_t *sip_reply_to_dup(su_home_t *home, sip_reply_to_t const *hdr)
01009 { 
01010   return (sip_reply_to_t *)
01011     msg_header_dup_as(home, sip_reply_to_class, (msg_header_t const *)hdr);
01012 }
01013 #endif
01014 
01044 #if SU_HAVE_INLINE
01045 su_inline
01046 #endif
01047 sip_reply_to_t *sip_reply_to_copy(su_home_t *home, sip_reply_to_t const *hdr) 
01048      __attribute__((__malloc__));
01049 
01050 #if SU_HAVE_INLINE
01051 su_inline
01052 sip_reply_to_t *sip_reply_to_copy(su_home_t *home, sip_reply_to_t const *hdr) 
01053 { 
01054   return (sip_reply_to_t *)
01055     msg_header_copy_as(home, sip_reply_to_class, (msg_header_t const *)hdr); 
01056 }
01057 #endif
01058 
01075 #if SU_HAVE_INLINE
01076 su_inline 
01077 #endif
01078 sip_reply_to_t *sip_reply_to_make(su_home_t *home, char const *s)
01079      __attribute__((__malloc__));
01080 
01081 #if SU_HAVE_INLINE
01082 su_inline sip_reply_to_t *sip_reply_to_make(su_home_t *home, char const *s)
01083 {
01084   return (sip_reply_to_t *)sip_header_make(home, sip_reply_to_class, s);
01085 }
01086 #endif
01087 
01107 #if SU_HAVE_INLINE
01108 su_inline
01109 #endif
01110 sip_reply_to_t *sip_reply_to_format(su_home_t *home, char const *fmt, ...)
01111      __attribute__((__malloc__, __format__ (printf, 2, 3)));
01112 
01113 #if SU_HAVE_INLINE
01114 su_inline sip_reply_to_t *sip_reply_to_format(su_home_t *home, char const *fmt, ...)
01115 {
01116   sip_header_t *h;
01117   va_list ap;
01118   
01119   va_start(ap, fmt);
01120   h = sip_header_vformat(home, sip_reply_to_class, fmt, ap);
01121   va_end(ap);
01122  
01123   return (sip_reply_to_t *)h;
01124 }
01125 #endif
01126 
01146 #define SIPTAG_REPLY_TO(x) siptag_reply_to, siptag_reply_to_v(x)
01147 
01148 SOFIAPUBVAR tag_typedef_t siptag_reply_to;
01149 
01154 #define SIPTAG_REPLY_TO_REF(x) siptag_reply_to_ref, siptag_reply_to_vr(&(x))
01155 SOFIAPUBVAR tag_typedef_t siptag_reply_to_ref;
01156 
01178 #define SIPTAG_REPLY_TO_STR(s) siptag_reply_to_str, tag_str_v(s)
01179 
01180 SOFIAPUBVAR tag_typedef_t siptag_reply_to_str;
01181 
01186 #define SIPTAG_REPLY_TO_STR_REF(x) siptag_reply_to_str_ref, tag_str_vr(&(x))
01187 SOFIAPUBVAR tag_typedef_t siptag_reply_to_str_ref;
01188 
01189 #if SU_INLINE_TAG_CAST
01190 su_inline tag_value_t
01191 siptag_reply_to_v(sip_reply_to_t const *v)
01192 { return (tag_value_t)v; }
01193 su_inline tag_value_t
01194 siptag_reply_to_vr(sip_reply_to_t const **vp)
01195 { return (tag_value_t)vp; }
01196 #else
01197 #define siptag_reply_to_v(v)   (tag_value_t)(v)
01198 #define siptag_reply_to_vr(vp) (tag_value_t)(vp)
01199 #endif
01200 
01202 #define SIP_HAVE_REMOTE_PARTY_ID 1
01203 
01204 
01205 enum { 
01212   sip_remote_party_id_hash = 59907 
01213 };
01214 
01226 SIP_DLL extern msg_hclass_t sip_remote_party_id_class[];
01227 
01228 
01234 SOFIAPUBFUN issize_t sip_remote_party_id_d(su_home_t *, msg_header_t *,
01235                                        char *s, isize_t slen);
01236 
01238 SOFIAPUBFUN issize_t sip_remote_party_id_e(char b[], isize_t bsiz,
01239                                     msg_header_t const *h, int flags);
01240 
01246 #define sip_remote_party_id(sip) \
01247   ((sip_remote_party_id_t *)msg_header_access((msg_pub_t*)(sip), sip_remote_party_id_class))
01248 
01264 #define SIP_REMOTE_PARTY_ID_INIT() SIP_HDR_INIT(remote_party_id)
01265 
01282 #if SU_HAVE_INLINE
01283 su_inline sip_remote_party_id_t *sip_remote_party_id_init(sip_remote_party_id_t x[1])
01284 {
01285   return SIP_HEADER_INIT(x, sip_remote_party_id_class, sizeof(sip_remote_party_id_t));
01286 }
01287 #else
01288 #define sip_remote_party_id_init(x) \
01289   SIP_HEADER_INIT(x, sip_remote_party_id_class, sizeof(sip_remote_party_id_t))
01290 #endif
01291 
01305 #if SU_HAVE_INLINE
01306 su_inline int sip_is_remote_party_id(sip_header_t const *header)
01307 {
01308   return header && header->sh_class->hc_hash == sip_remote_party_id_hash;
01309 }
01310 #else
01311 int sip_is_remote_party_id(sip_header_t const *header);
01312 #endif
01313 
01314 #define sip_remote_party_id_p(h) sip_is_remote_party_id((h))
01315 
01316 
01346 #if SU_HAVE_INLINE
01347 su_inline
01348 #endif
01349 sip_remote_party_id_t *sip_remote_party_id_dup(su_home_t *home, sip_remote_party_id_t const *hdr) 
01350      __attribute__((__malloc__));
01351 
01352 #if SU_HAVE_INLINE
01353 su_inline
01354 sip_remote_party_id_t *sip_remote_party_id_dup(su_home_t *home, sip_remote_party_id_t const *hdr)
01355 { 
01356   return (sip_remote_party_id_t *)
01357     msg_header_dup_as(home, sip_remote_party_id_class, (msg_header_t const *)hdr);
01358 }
01359 #endif
01360 
01390 #if SU_HAVE_INLINE
01391 su_inline
01392 #endif
01393 sip_remote_party_id_t *sip_remote_party_id_copy(su_home_t *home, sip_remote_party_id_t const *hdr) 
01394      __attribute__((__malloc__));
01395 
01396 #if SU_HAVE_INLINE
01397 su_inline
01398 sip_remote_party_id_t *sip_remote_party_id_copy(su_home_t *home, sip_remote_party_id_t const *hdr) 
01399 { 
01400   return (sip_remote_party_id_t *)
01401     msg_header_copy_as(home, sip_remote_party_id_class, (msg_header_t const *)hdr); 
01402 }
01403 #endif
01404 
01421 #if SU_HAVE_INLINE
01422 su_inline 
01423 #endif
01424 sip_remote_party_id_t *sip_remote_party_id_make(su_home_t *home, char const *s)
01425      __attribute__((__malloc__));
01426 
01427 #if SU_HAVE_INLINE
01428 su_inline sip_remote_party_id_t *sip_remote_party_id_make(su_home_t *home, char const *s)
01429 {
01430   return (sip_remote_party_id_t *)sip_header_make(home, sip_remote_party_id_class, s);
01431 }
01432 #endif
01433 
01453 #if SU_HAVE_INLINE
01454 su_inline
01455 #endif
01456 sip_remote_party_id_t *sip_remote_party_id_format(su_home_t *home, char const *fmt, ...)
01457      __attribute__((__malloc__, __format__ (printf, 2, 3)));
01458 
01459 #if SU_HAVE_INLINE
01460 su_inline sip_remote_party_id_t *sip_remote_party_id_format(su_home_t *home, char const *fmt, ...)
01461 {
01462   sip_header_t *h;
01463   va_list ap;
01464   
01465   va_start(ap, fmt);
01466   h = sip_header_vformat(home, sip_remote_party_id_class, fmt, ap);
01467   va_end(ap);
01468  
01469   return (sip_remote_party_id_t *)h;
01470 }
01471 #endif
01472 
01492 #define SIPTAG_REMOTE_PARTY_ID(x) siptag_remote_party_id, siptag_remote_party_id_v(x)
01493 
01494 SOFIAPUBVAR tag_typedef_t siptag_remote_party_id;
01495 
01500 #define SIPTAG_REMOTE_PARTY_ID_REF(x) siptag_remote_party_id_ref, siptag_remote_party_id_vr(&(x))
01501 SOFIAPUBVAR tag_typedef_t siptag_remote_party_id_ref;
01502 
01524 #define SIPTAG_REMOTE_PARTY_ID_STR(s) siptag_remote_party_id_str, tag_str_v(s)
01525 
01526 SOFIAPUBVAR tag_typedef_t siptag_remote_party_id_str;
01527 
01532 #define SIPTAG_REMOTE_PARTY_ID_STR_REF(x) siptag_remote_party_id_str_ref, tag_str_vr(&(x))
01533 SOFIAPUBVAR tag_typedef_t siptag_remote_party_id_str_ref;
01534 
01535 #if SU_INLINE_TAG_CAST
01536 su_inline tag_value_t
01537 siptag_remote_party_id_v(sip_remote_party_id_t const *v)
01538 { return (tag_value_t)v; }
01539 su_inline tag_value_t
01540 siptag_remote_party_id_vr(sip_remote_party_id_t const **vp)
01541 { return (tag_value_t)vp; }
01542 #else
01543 #define siptag_remote_party_id_v(v)   (tag_value_t)(v)
01544 #define siptag_remote_party_id_vr(vp) (tag_value_t)(vp)
01545 #endif
01546 
01548 #define SIP_HAVE_P_ASSERTED_IDENTITY 1
01549 
01550 
01551 enum { 
01558   sip_p_asserted_identity_hash = 16399 
01559 };
01560 
01572 SIP_DLL extern msg_hclass_t sip_p_asserted_identity_class[];
01573 
01574 
01580 SOFIAPUBFUN issize_t sip_p_asserted_identity_d(su_home_t *, msg_header_t *,
01581                                        char *s, isize_t slen);
01582 
01584 SOFIAPUBFUN issize_t sip_p_asserted_identity_e(char b[], isize_t bsiz,
01585                                     msg_header_t const *h, int flags);
01586 
01592 #define sip_p_asserted_identity(sip) \
01593   ((sip_p_asserted_identity_t *)msg_header_access((msg_pub_t*)(sip), sip_p_asserted_identity_class))
01594 
01610 #define SIP_P_ASSERTED_IDENTITY_INIT() SIP_HDR_INIT(p_asserted_identity)
01611 
01628 #if SU_HAVE_INLINE
01629 su_inline sip_p_asserted_identity_t *sip_p_asserted_identity_init(sip_p_asserted_identity_t x[1])
01630 {
01631   return SIP_HEADER_INIT(x, sip_p_asserted_identity_class, sizeof(sip_p_asserted_identity_t));
01632 }
01633 #else
01634 #define sip_p_asserted_identity_init(x) \
01635   SIP_HEADER_INIT(x, sip_p_asserted_identity_class, sizeof(sip_p_asserted_identity_t))
01636 #endif
01637 
01651 #if SU_HAVE_INLINE
01652 su_inline int sip_is_p_asserted_identity(sip_header_t const *header)
01653 {
01654   return header && header->sh_class->hc_hash == sip_p_asserted_identity_hash;
01655 }
01656 #else
01657 int sip_is_p_asserted_identity(sip_header_t const *header);
01658 #endif
01659 
01660 #define sip_p_asserted_identity_p(h) sip_is_p_asserted_identity((h))
01661 
01662 
01692 #if SU_HAVE_INLINE
01693 su_inline
01694 #endif
01695 sip_p_asserted_identity_t *sip_p_asserted_identity_dup(su_home_t *home, sip_p_asserted_identity_t const *hdr) 
01696      __attribute__((__malloc__));
01697 
01698 #if SU_HAVE_INLINE
01699 su_inline
01700 sip_p_asserted_identity_t *sip_p_asserted_identity_dup(su_home_t *home, sip_p_asserted_identity_t const *hdr)
01701 { 
01702   return (sip_p_asserted_identity_t *)
01703     msg_header_dup_as(home, sip_p_asserted_identity_class, (msg_header_t const *)hdr);
01704 }
01705 #endif
01706 
01736 #if SU_HAVE_INLINE
01737 su_inline
01738 #endif
01739 sip_p_asserted_identity_t *sip_p_asserted_identity_copy(su_home_t *home, sip_p_asserted_identity_t const *hdr) 
01740      __attribute__((__malloc__));
01741 
01742 #if SU_HAVE_INLINE
01743 su_inline
01744 sip_p_asserted_identity_t *sip_p_asserted_identity_copy(su_home_t *home, sip_p_asserted_identity_t const *hdr) 
01745 { 
01746   return (sip_p_asserted_identity_t *)
01747     msg_header_copy_as(home, sip_p_asserted_identity_class, (msg_header_t const *)hdr); 
01748 }
01749 #endif
01750 
01767 #if SU_HAVE_INLINE
01768 su_inline 
01769 #endif
01770 sip_p_asserted_identity_t *sip_p_asserted_identity_make(su_home_t *home, char const *s)
01771      __attribute__((__malloc__));
01772 
01773 #if SU_HAVE_INLINE
01774 su_inline sip_p_asserted_identity_t *sip_p_asserted_identity_make(su_home_t *home, char const *s)
01775 {
01776   return (sip_p_asserted_identity_t *)sip_header_make(home, sip_p_asserted_identity_class, s);
01777 }
01778 #endif
01779 
01799 #if SU_HAVE_INLINE
01800 su_inline
01801 #endif
01802 sip_p_asserted_identity_t *sip_p_asserted_identity_format(su_home_t *home, char const *fmt, ...)
01803      __attribute__((__malloc__, __format__ (printf, 2, 3)));
01804 
01805 #if SU_HAVE_INLINE
01806 su_inline sip_p_asserted_identity_t *sip_p_asserted_identity_format(su_home_t *home, char const *fmt, ...)
01807 {
01808   sip_header_t *h;
01809   va_list ap;
01810   
01811   va_start(ap, fmt);
01812   h = sip_header_vformat(home, sip_p_asserted_identity_class, fmt, ap);
01813   va_end(ap);
01814  
01815   return (sip_p_asserted_identity_t *)h;
01816 }
01817 #endif
01818 
01838 #define SIPTAG_P_ASSERTED_IDENTITY(x) siptag_p_asserted_identity, siptag_p_asserted_identity_v(x)
01839 
01840 SOFIAPUBVAR tag_typedef_t siptag_p_asserted_identity;
01841 
01846 #define SIPTAG_P_ASSERTED_IDENTITY_REF(x) siptag_p_asserted_identity_ref, siptag_p_asserted_identity_vr(&(x))
01847 SOFIAPUBVAR tag_typedef_t siptag_p_asserted_identity_ref;
01848 
01870 #define SIPTAG_P_ASSERTED_IDENTITY_STR(s) siptag_p_asserted_identity_str, tag_str_v(s)
01871 
01872 SOFIAPUBVAR tag_typedef_t siptag_p_asserted_identity_str;
01873 
01878 #define SIPTAG_P_ASSERTED_IDENTITY_STR_REF(x) siptag_p_asserted_identity_str_ref, tag_str_vr(&(x))
01879 SOFIAPUBVAR tag_typedef_t siptag_p_asserted_identity_str_ref;
01880 
01881 #if SU_INLINE_TAG_CAST
01882 su_inline tag_value_t
01883 siptag_p_asserted_identity_v(sip_p_asserted_identity_t const *v)
01884 { return (tag_value_t)v; }
01885 su_inline tag_value_t
01886 siptag_p_asserted_identity_vr(sip_p_asserted_identity_t const **vp)
01887 { return (tag_value_t)vp; }
01888 #else
01889 #define siptag_p_asserted_identity_v(v)   (tag_value_t)(v)
01890 #define siptag_p_asserted_identity_vr(vp) (tag_value_t)(vp)
01891 #endif
01892 
01894 #define SIP_HAVE_P_PREFERRED_IDENTITY 1
01895 
01896 
01897 enum { 
01904   sip_p_preferred_identity_hash = 44591 
01905 };
01906 
01918 SIP_DLL extern msg_hclass_t sip_p_preferred_identity_class[];
01919 
01920 
01926 SOFIAPUBFUN issize_t sip_p_preferred_identity_d(su_home_t *, msg_header_t *,
01927                                        char *s, isize_t slen);
01928 
01930 SOFIAPUBFUN issize_t sip_p_preferred_identity_e(char b[], isize_t bsiz,
01931                                     msg_header_t const *h, int flags);
01932 
01938 #define sip_p_preferred_identity(sip) \
01939   ((sip_p_preferred_identity_t *)msg_header_access((msg_pub_t*)(sip), sip_p_preferred_identity_class))
01940 
01956 #define SIP_P_PREFERRED_IDENTITY_INIT() SIP_HDR_INIT(p_preferred_identity)
01957 
01974 #if SU_HAVE_INLINE
01975 su_inline sip_p_preferred_identity_t *sip_p_preferred_identity_init(sip_p_preferred_identity_t x[1])
01976 {
01977   return SIP_HEADER_INIT(x, sip_p_preferred_identity_class, sizeof(sip_p_preferred_identity_t));
01978 }
01979 #else
01980 #define sip_p_preferred_identity_init(x) \
01981   SIP_HEADER_INIT(x, sip_p_preferred_identity_class, sizeof(sip_p_preferred_identity_t))
01982 #endif
01983 
01997 #if SU_HAVE_INLINE
01998 su_inline int sip_is_p_preferred_identity(sip_header_t const *header)
01999 {
02000   return header && header->sh_class->hc_hash == sip_p_preferred_identity_hash;
02001 }
02002 #else
02003 int sip_is_p_preferred_identity(sip_header_t const *header);
02004 #endif
02005 
02006 #define sip_p_preferred_identity_p(h) sip_is_p_preferred_identity((h))
02007 
02008 
02038 #if SU_HAVE_INLINE
02039 su_inline
02040 #endif
02041 sip_p_preferred_identity_t *sip_p_preferred_identity_dup(su_home_t *home, sip_p_preferred_identity_t const *hdr) 
02042      __attribute__((__malloc__));
02043 
02044 #if SU_HAVE_INLINE
02045 su_inline
02046 sip_p_preferred_identity_t *sip_p_preferred_identity_dup(su_home_t *home, sip_p_preferred_identity_t const *hdr)
02047 { 
02048   return (sip_p_preferred_identity_t *)
02049     msg_header_dup_as(home, sip_p_preferred_identity_class, (msg_header_t const *)hdr);
02050 }
02051 #endif
02052 
02082 #if SU_HAVE_INLINE
02083 su_inline
02084 #endif
02085 sip_p_preferred_identity_t *sip_p_preferred_identity_copy(su_home_t *home, sip_p_preferred_identity_t const *hdr) 
02086      __attribute__((__malloc__));
02087 
02088 #if SU_HAVE_INLINE
02089 su_inline
02090 sip_p_preferred_identity_t *sip_p_preferred_identity_copy(su_home_t *home, sip_p_preferred_identity_t const *hdr) 
02091 { 
02092   return (sip_p_preferred_identity_t *)
02093     msg_header_copy_as(home, sip_p_preferred_identity_class, (msg_header_t const *)hdr); 
02094 }
02095 #endif
02096 
02113 #if SU_HAVE_INLINE
02114 su_inline 
02115 #endif
02116 sip_p_preferred_identity_t *sip_p_preferred_identity_make(su_home_t *home, char const *s)
02117      __attribute__((__malloc__));
02118 
02119 #if SU_HAVE_INLINE
02120 su_inline sip_p_preferred_identity_t *sip_p_preferred_identity_make(su_home_t *home, char const *s)
02121 {
02122   return (sip_p_preferred_identity_t *)sip_header_make(home, sip_p_preferred_identity_class, s);
02123 }
02124 #endif
02125 
02145 #if SU_HAVE_INLINE
02146 su_inline
02147 #endif
02148 sip_p_preferred_identity_t *sip_p_preferred_identity_format(su_home_t *home, char const *fmt, ...)
02149      __attribute__((__malloc__, __format__ (printf, 2, 3)));
02150 
02151 #if SU_HAVE_INLINE
02152 su_inline sip_p_preferred_identity_t *sip_p_preferred_identity_format(su_home_t *home, char const *fmt, ...)
02153 {
02154   sip_header_t *h;
02155   va_list ap;
02156   
02157   va_start(ap, fmt);
02158   h = sip_header_vformat(home, sip_p_preferred_identity_class, fmt, ap);
02159   va_end(ap);
02160  
02161   return (sip_p_preferred_identity_t *)h;
02162 }
02163 #endif
02164 
02184 #define SIPTAG_P_PREFERRED_IDENTITY(x) siptag_p_preferred_identity, siptag_p_preferred_identity_v(x)
02185 
02186 SOFIAPUBVAR tag_typedef_t siptag_p_preferred_identity;
02187 
02192 #define SIPTAG_P_PREFERRED_IDENTITY_REF(x) siptag_p_preferred_identity_ref, siptag_p_preferred_identity_vr(&(x))
02193 SOFIAPUBVAR tag_typedef_t siptag_p_preferred_identity_ref;
02194 
02216 #define SIPTAG_P_PREFERRED_IDENTITY_STR(s) siptag_p_preferred_identity_str, tag_str_v(s)
02217 
02218 SOFIAPUBVAR tag_typedef_t siptag_p_preferred_identity_str;
02219 
02224 #define SIPTAG_P_PREFERRED_IDENTITY_STR_REF(x) siptag_p_preferred_identity_str_ref, tag_str_vr(&(x))
02225 SOFIAPUBVAR tag_typedef_t siptag_p_preferred_identity_str_ref;
02226 
02227 #if SU_INLINE_TAG_CAST
02228 su_inline tag_value_t
02229 siptag_p_preferred_identity_v(sip_p_preferred_identity_t const *v)
02230 { return (tag_value_t)v; }
02231 su_inline tag_value_t
02232 siptag_p_preferred_identity_vr(sip_p_preferred_identity_t const **vp)
02233 { return (tag_value_t)vp; }
02234 #else
02235 #define siptag_p_preferred_identity_v(v)   (tag_value_t)(v)
02236 #define siptag_p_preferred_identity_vr(vp) (tag_value_t)(vp)
02237 #endif
02238 
02239 #if SU_HAVE_EXPERIMENTAL
02240 
02241 #define SIP_HAVE_SUPPRESS_BODY_IF_MATCH 1
02242 
02243 
02244 enum { 
02251   sip_suppress_body_if_match_hash = 49874 
02252 };
02253 
02265 SIP_DLL extern msg_hclass_t sip_suppress_body_if_match_class[];
02266 
02267 
02273 SOFIAPUBFUN issize_t sip_suppress_body_if_match_d(su_home_t *, msg_header_t *,
02274                                        char *s, isize_t slen);
02275 
02277 SOFIAPUBFUN issize_t sip_suppress_body_if_match_e(char b[], isize_t bsiz,
02278                                     msg_header_t const *h, int flags);
02279 
02285 #define sip_suppress_body_if_match(sip) \
02286   ((sip_suppress_body_if_match_t *)msg_header_access((msg_pub_t*)(sip), sip_suppress_body_if_match_class))
02287 
02303 #define SIP_SUPPRESS_BODY_IF_MATCH_INIT() SIP_HDR_INIT(suppress_body_if_match)
02304 
02321 #if SU_HAVE_INLINE
02322 su_inline sip_suppress_body_if_match_t *sip_suppress_body_if_match_init(sip_suppress_body_if_match_t x[1])
02323 {
02324   return SIP_HEADER_INIT(x, sip_suppress_body_if_match_class, sizeof(sip_suppress_body_if_match_t));
02325 }
02326 #else
02327 #define sip_suppress_body_if_match_init(x) \
02328   SIP_HEADER_INIT(x, sip_suppress_body_if_match_class, sizeof(sip_suppress_body_if_match_t))
02329 #endif
02330 
02344 #if SU_HAVE_INLINE
02345 su_inline int sip_is_suppress_body_if_match(sip_header_t const *header)
02346 {
02347   return header && header->sh_class->hc_hash == sip_suppress_body_if_match_hash;
02348 }
02349 #else
02350 int sip_is_suppress_body_if_match(sip_header_t const *header);
02351 #endif
02352 
02353 #define sip_suppress_body_if_match_p(h) sip_is_suppress_body_if_match((h))
02354 
02355 
02385 #if SU_HAVE_INLINE
02386 su_inline
02387 #endif
02388 sip_suppress_body_if_match_t *sip_suppress_body_if_match_dup(su_home_t *home, sip_suppress_body_if_match_t const *hdr) 
02389      __attribute__((__malloc__));
02390 
02391 #if SU_HAVE_INLINE
02392 su_inline
02393 sip_suppress_body_if_match_t *sip_suppress_body_if_match_dup(su_home_t *home, sip_suppress_body_if_match_t const *hdr)
02394 { 
02395   return (sip_suppress_body_if_match_t *)
02396     msg_header_dup_as(home, sip_suppress_body_if_match_class, (msg_header_t const *)hdr);
02397 }
02398 #endif
02399 
02429 #if SU_HAVE_INLINE
02430 su_inline
02431 #endif
02432 sip_suppress_body_if_match_t *sip_suppress_body_if_match_copy(su_home_t *home, sip_suppress_body_if_match_t const *hdr) 
02433      __attribute__((__malloc__));
02434 
02435 #if SU_HAVE_INLINE
02436 su_inline
02437 sip_suppress_body_if_match_t *sip_suppress_body_if_match_copy(su_home_t *home, sip_suppress_body_if_match_t const *hdr) 
02438 { 
02439   return (sip_suppress_body_if_match_t *)
02440     msg_header_copy_as(home, sip_suppress_body_if_match_class, (msg_header_t const *)hdr); 
02441 }
02442 #endif
02443 
02460 #if SU_HAVE_INLINE
02461 su_inline 
02462 #endif
02463 sip_suppress_body_if_match_t *sip_suppress_body_if_match_make(su_home_t *home, char const *s)
02464      __attribute__((__malloc__));
02465 
02466 #if SU_HAVE_INLINE
02467 su_inline sip_suppress_body_if_match_t *sip_suppress_body_if_match_make(su_home_t *home, char const *s)
02468 {
02469   return (sip_suppress_body_if_match_t *)sip_header_make(home, sip_suppress_body_if_match_class, s);
02470 }
02471 #endif
02472 
02492 #if SU_HAVE_INLINE
02493 su_inline
02494 #endif
02495 sip_suppress_body_if_match_t *sip_suppress_body_if_match_format(su_home_t *home, char const *fmt, ...)
02496      __attribute__((__malloc__, __format__ (printf, 2, 3)));
02497 
02498 #if SU_HAVE_INLINE
02499 su_inline sip_suppress_body_if_match_t *sip_suppress_body_if_match_format(su_home_t *home, char const *fmt, ...)
02500 {
02501   sip_header_t *h;
02502   va_list ap;
02503   
02504   va_start(ap, fmt);
02505   h = sip_header_vformat(home, sip_suppress_body_if_match_class, fmt, ap);
02506   va_end(ap);
02507  
02508   return (sip_suppress_body_if_match_t *)h;
02509 }
02510 #endif
02511 
02531 #define SIPTAG_SUPPRESS_BODY_IF_MATCH(x) siptag_suppress_body_if_match, siptag_suppress_body_if_match_v(x)
02532 
02533 SOFIAPUBVAR tag_typedef_t siptag_suppress_body_if_match;
02534 
02539 #define SIPTAG_SUPPRESS_BODY_IF_MATCH_REF(x) siptag_suppress_body_if_match_ref, siptag_suppress_body_if_match_vr(&(x))
02540 SOFIAPUBVAR tag_typedef_t siptag_suppress_body_if_match_ref;
02541 
02563 #define SIPTAG_SUPPRESS_BODY_IF_MATCH_STR(s) siptag_suppress_body_if_match_str, tag_str_v(s)
02564 
02565 SOFIAPUBVAR tag_typedef_t siptag_suppress_body_if_match_str;
02566 
02571 #define SIPTAG_SUPPRESS_BODY_IF_MATCH_STR_REF(x) siptag_suppress_body_if_match_str_ref, tag_str_vr(&(x))
02572 SOFIAPUBVAR tag_typedef_t siptag_suppress_body_if_match_str_ref;
02573 
02574 #if SU_INLINE_TAG_CAST
02575 su_inline tag_value_t
02576 siptag_suppress_body_if_match_v(sip_suppress_body_if_match_t const *v)
02577 { return (tag_value_t)v; }
02578 su_inline tag_value_t
02579 siptag_suppress_body_if_match_vr(sip_suppress_body_if_match_t const **vp)
02580 { return (tag_value_t)vp; }
02581 #else
02582 #define siptag_suppress_body_if_match_v(v)   (tag_value_t)(v)
02583 #define siptag_suppress_body_if_match_vr(vp) (tag_value_t)(vp)
02584 #endif
02585 
02586 #endif /* SU_HAVE_EXPERIMENTAL */
02587 #if SU_HAVE_EXPERIMENTAL
02588 
02589 #define SIP_HAVE_SUPPRESS_NOTIFY_IF_MATCH 1
02590 
02591 
02592 enum { 
02599   sip_suppress_notify_if_match_hash = 51341 
02600 };
02601 
02613 SIP_DLL extern msg_hclass_t sip_suppress_notify_if_match_class[];
02614 
02615 
02621 SOFIAPUBFUN issize_t sip_suppress_notify_if_match_d(su_home_t *, msg_header_t *,
02622                                        char *s, isize_t slen);
02623 
02625 SOFIAPUBFUN issize_t sip_suppress_notify_if_match_e(char b[], isize_t bsiz,
02626                                     msg_header_t const *h, int flags);
02627 
02633 #define sip_suppress_notify_if_match(sip) \
02634   ((sip_suppress_notify_if_match_t *)msg_header_access((msg_pub_t*)(sip), sip_suppress_notify_if_match_class))
02635 
02651 #define SIP_SUPPRESS_NOTIFY_IF_MATCH_INIT() SIP_HDR_INIT(suppress_notify_if_match)
02652 
02669 #if SU_HAVE_INLINE
02670 su_inline sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_init(sip_suppress_notify_if_match_t x[1])
02671 {
02672   return SIP_HEADER_INIT(x, sip_suppress_notify_if_match_class, sizeof(sip_suppress_notify_if_match_t));
02673 }
02674 #else
02675 #define sip_suppress_notify_if_match_init(x) \
02676   SIP_HEADER_INIT(x, sip_suppress_notify_if_match_class, sizeof(sip_suppress_notify_if_match_t))
02677 #endif
02678 
02692 #if SU_HAVE_INLINE
02693 su_inline int sip_is_suppress_notify_if_match(sip_header_t const *header)
02694 {
02695   return header && header->sh_class->hc_hash == sip_suppress_notify_if_match_hash;
02696 }
02697 #else
02698 int sip_is_suppress_notify_if_match(sip_header_t const *header);
02699 #endif
02700 
02701 #define sip_suppress_notify_if_match_p(h) sip_is_suppress_notify_if_match((h))
02702 
02703 
02733 #if SU_HAVE_INLINE
02734 su_inline
02735 #endif
02736 sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_dup(su_home_t *home, sip_suppress_notify_if_match_t const *hdr) 
02737      __attribute__((__malloc__));
02738 
02739 #if SU_HAVE_INLINE
02740 su_inline
02741 sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_dup(su_home_t *home, sip_suppress_notify_if_match_t const *hdr)
02742 { 
02743   return (sip_suppress_notify_if_match_t *)
02744     msg_header_dup_as(home, sip_suppress_notify_if_match_class, (msg_header_t const *)hdr);
02745 }
02746 #endif
02747 
02777 #if SU_HAVE_INLINE
02778 su_inline
02779 #endif
02780 sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_copy(su_home_t *home, sip_suppress_notify_if_match_t const *hdr) 
02781      __attribute__((__malloc__));
02782 
02783 #if SU_HAVE_INLINE
02784 su_inline
02785 sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_copy(su_home_t *home, sip_suppress_notify_if_match_t const *hdr) 
02786 { 
02787   return (sip_suppress_notify_if_match_t *)
02788     msg_header_copy_as(home, sip_suppress_notify_if_match_class, (msg_header_t const *)hdr); 
02789 }
02790 #endif
02791 
02808 #if SU_HAVE_INLINE
02809 su_inline 
02810 #endif
02811 sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_make(su_home_t *home, char const *s)
02812      __attribute__((__malloc__));
02813 
02814 #if SU_HAVE_INLINE
02815 su_inline sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_make(su_home_t *home, char const *s)
02816 {
02817   return (sip_suppress_notify_if_match_t *)sip_header_make(home, sip_suppress_notify_if_match_class, s);
02818 }
02819 #endif
02820 
02840 #if SU_HAVE_INLINE
02841 su_inline
02842 #endif
02843 sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_format(su_home_t *home, char const *fmt, ...)
02844      __attribute__((__malloc__, __format__ (printf, 2, 3)));
02845 
02846 #if SU_HAVE_INLINE
02847 su_inline sip_suppress_notify_if_match_t *sip_suppress_notify_if_match_format(su_home_t *home, char const *fmt, ...)
02848 {
02849   sip_header_t *h;
02850   va_list ap;
02851   
02852   va_start(ap, fmt);
02853   h = sip_header_vformat(home, sip_suppress_notify_if_match_class, fmt, ap);
02854   va_end(ap);
02855  
02856   return (sip_suppress_notify_if_match_t *)h;
02857 }
02858 #endif
02859 
02879 #define SIPTAG_SUPPRESS_NOTIFY_IF_MATCH(x) siptag_suppress_notify_if_match, siptag_suppress_notify_if_match_v(x)
02880 
02881 SOFIAPUBVAR tag_typedef_t siptag_suppress_notify_if_match;
02882 
02887 #define SIPTAG_SUPPRESS_NOTIFY_IF_MATCH_REF(x) siptag_suppress_notify_if_match_ref, siptag_suppress_notify_if_match_vr(&(x))
02888 SOFIAPUBVAR tag_typedef_t siptag_suppress_notify_if_match_ref;
02889 
02911 #define SIPTAG_SUPPRESS_NOTIFY_IF_MATCH_STR(s) siptag_suppress_notify_if_match_str, tag_str_v(s)
02912 
02913 SOFIAPUBVAR tag_typedef_t siptag_suppress_notify_if_match_str;
02914 
02919 #define SIPTAG_SUPPRESS_NOTIFY_IF_MATCH_STR_REF(x) siptag_suppress_notify_if_match_str_ref, tag_str_vr(&(x))
02920 SOFIAPUBVAR tag_typedef_t siptag_suppress_notify_if_match_str_ref;
02921 
02922 #if SU_INLINE_TAG_CAST
02923 su_inline tag_value_t
02924 siptag_suppress_notify_if_match_v(sip_suppress_notify_if_match_t const *v)
02925 { return (tag_value_t)v; }
02926 su_inline tag_value_t
02927 siptag_suppress_notify_if_match_vr(sip_suppress_notify_if_match_t const **vp)
02928 { return (tag_value_t)vp; }
02929 #else
02930 #define siptag_suppress_notify_if_match_v(v)   (tag_value_t)(v)
02931 #define siptag_suppress_notify_if_match_vr(vp) (tag_value_t)(vp)
02932 #endif
02933 
02934 #endif /* SU_HAVE_EXPERIMENTAL */
02935 
02936 SOFIA_END_DECLS
02937 
02938 #endif 

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