00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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
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
02935
02936 SOFIA_END_DECLS
02937
02938 #endif