67 #define sip_is_sip(sip) ((sip) && (sip)->sip_ident == SIP_PROTOCOL_TAG)
70 #define SIP_HDR_INIT(name) {{{ 0, 0, sip_##name##_class }}}
73 #define SIP_HEADER_INIT(h, sip_class, size) \
74 ((void)memset((h), 0, (size)), \
75 (void)(((sip_common_t *)(h))->h_class = (sip_class)), \
100 void const *extra, va_list headers);
126 #define sip_fragment_clear(a) ((a)->h_data = NULL, (a)->h_len = 0)
129 #if !defined(__GNUC__) && !defined(__attribute__)
130 #define __attribute__(x)
138 __attribute__((__format__ (printf, 3, 4)));
143 SOFIAPUBVAR
char const sip_method_name_ack[];
144 SOFIAPUBVAR
char const sip_method_name_bye[];
145 SOFIAPUBVAR
char const sip_method_name_cancel[];
146 SOFIAPUBVAR
char const sip_method_name_invite[];
147 SOFIAPUBVAR
char const sip_method_name_options[];
148 SOFIAPUBVAR
char const sip_method_name_register[];
149 SOFIAPUBVAR
char const sip_method_name_info[];
150 SOFIAPUBVAR
char const sip_method_name_prack[];
151 SOFIAPUBVAR
char const sip_method_name_comet[];
152 SOFIAPUBVAR
char const sip_method_name_message[];
153 SOFIAPUBVAR
char const sip_method_name_subscribe[];
154 SOFIAPUBVAR
char const sip_method_name_notify[];
155 SOFIAPUBVAR
char const sip_method_name_refer[];
158 SOFIAPUBVAR
char const sip_transport_udp[];
160 SOFIAPUBVAR
char const sip_transport_tcp[];
162 SOFIAPUBVAR
char const sip_transport_sctp[];
164 SOFIAPUBVAR
char const sip_transport_tls[];
166 SOFIAPUBVAR
char const sip_version_2_0[];
168 #define SIP_VERSION_CURRENT sip_version_2_0
174 #define SIP_PORT(s) ((s) ? (s) : "5060")
177 #define SIPS_PORT(s) ((s) ? (s) : "5061")
187 #define SIP_METHOD_NAME(method, name) \
188 ((method) == sip_method_unknown ? (name) : sip_method_name(method, name))
190 #define sip_header_make(h, c, s) \
191 ((sip_header_t *)msg_header_make((h), (c), (s)))
192 #define sip_header_vformat(h, c, f, a) \
193 ((sip_header_t *)msg_header_vformat((h), (c), (f), (a)))
206 char const *version);
213 char const *version);
221 unsigned method,
char const *name);
270 char const *transport,
280 tp = strchr(tp,
'/');
282 tp = strchr(tp + 1,
'/');
315 #define SIP_PAYLOAD_INIT2(data, length) \
316 {{{ 0, 0, sip_payload_class, data, length }, NULL, data, length }}
356 #define SIP_IS_ALLOWED(allow, method) \
357 (sip_method_unknown < (method) && (method) < 32 && \
358 (allow) && ((allow)->k_bitmap & (1 << (method))) != 0)
507 #define sip_from_make_url sip_from_create
508 #define sip_to_make_url sip_to_create
509 #define sip_params_find msg_params_find