63 #ifndef SOFIA_SIP_SU_STRING_H 73 #define SIP_HDR_TEST(x) ((x)->sh_class) 76 #define SIP_HEADER_CLASS(c, l, s, params, kind, dup) \ 77 MSG_HEADER_CLASS(sip_, c, l, s, params, kind, sip_ ## dup, sip_ ## dup) 80 #define SIP_HEADER_CLASS_C(c, l, s, params, kind, dup) \ 81 MSG_HEADER_CLASS_C(sip_, c, l, s, params, kind, sip_ ## dup, sip_ ## dup) 84 #define SIP_HEADER_CLASS_G(c, l, s, kind) \ 85 MSG_HEADER_CLASS(sip_, c, l, s, g_common, kind, msg_generic, sip_null) 88 #define SIP_HEADER_CLASS_LIST(c, l, s, kind) \ 89 MSG_HEADER_CLASS(sip_, c, l, s, k_items, kind, msg_list, sip_null) 92 #define SIP_HEADER_CLASS_AUTH(c, l, kind) \ 93 MSG_HEADER_CLASS(sip_, c, l, "", au_params, kind, msg_auth, sip_null) 95 #define sip_null_update NULL 96 #define sip_any_update NULL 108 #define SIP_TRANSPORT_LEN(s) SIP_STRING_SIZE((s)) 127 char *b, isize_t xtra);
128 #define sip_any_route_update NULL 132 char const **return_display,
134 msg_param_t
const **return_params,
135 char const **return_comment);
140 int always_ltgt,
url_t const url[],
141 msg_param_t
const params[],
142 char const *comment);
145 msg_param_t
const params[],
150 msg_param_t
const **d_params,
151 msg_param_t
const params[],
152 char *b, isize_t xtra);
159 #define sip_generic_d msg_generic_d 160 #define sip_generic_e msg_generic_e 162 #define sip_numeric_d msg_numeric_d 163 #define sip_numeric_e msg_numeric_e 165 #define sip_any_copy_xtra msg_default_copy_xtra 166 #define sip_any_copy_one msg_default_copy_one 167 #define sip_any_dup_xtra msg_default_dup_xtra 168 #define sip_any_dup_one msg_default_dup_one 170 #define sip_generic_dup_xtra msg_generic_dup_xtra 171 #define sip_generic_dup_one msg_generic_dup_one 174 #define sip_auth_d msg_auth_d 175 #define sip_auth_e msg_auth_e 177 #define sip_header_dup_as msg_header_dup_as 178 #define sip_header_alloc msg_header_alloc 179 #define sip_header_copy_as msg_header_copy_as 181 #define SIP_ALIGN MSG_ALIGN 182 #define SIP_STRUCT_SIZE_ALIGN MSG_STRUCT_SIZE_ALIGN 183 #define SIP_STRUCT_ALIGN MSG_STRUCT_ALIGN 185 #define sip_comment_d msg_comment_d 186 #define sip_quoted_d(ss, qq) msg_quoted_d(ss, qq) 188 #define SIP_CHAR_E MSG_CHAR_E 189 #define SIP_STRING_LEN MSG_STRING_LEN 190 #define SIP_STRING_E MSG_STRING_E 191 #define SIP_STRING_DUP MSG_STRING_DUP 192 #define SIP_STRING_SIZE MSG_STRING_SIZE 193 #define SIP_NAME_E MSG_NAME_E 196 #define SIP_PARAM_MATCH MSG_PARAM_MATCH 197 #define SIP_PARAM_MATCH_P MSG_PARAM_MATCH_P 200 #define SIP_N_PARAMS MSG_N_PARAMS 201 #define sip_params_d msg_params_d 202 #define sip_params_dup msg_params_dup 203 #define SIP_PARAMS_NUM MSG_PARAMS_NUM 204 #define SIP_PARAMS_E MSG_PARAMS_E 205 #define SIP_PARAMS_SIZE MSG_PARAMS_SIZE 206 #define sip_params_count msg_params_count 207 #define sip_params_copy_xtra msg_params_copy_xtra 208 #define sip_params_copy msg_params_copy isize_t sip_transport_xtra(char const *transport)
Calculate extra space required by sip_transport_dup()
Definition: sip_parser.c:527
int sip_version_d(char **ss, char const **ver)
Parse SIP version.
Definition: sip_parser.c:229
isize_t sip_version_xtra(char const *version)
Calculate extra space required by version string.
Definition: sip_parser.c:284
struct msg_hclass_s const msg_hclass_t
isize_t sip_name_addr_xtra(char const *display, url_t const *addr, msg_param_t const params[], isize_t offset)
Calculate the extra size needed to duplicate a name-addr-params construct.
Definition: sip_basic.c:816
sip_method_t
IDs for well-known SIP methods.
Definition: sip.h:48
issize_t sip_name_addr_e(char b[], isize_t bsiz, int flags, char const *display, int always_ltgt, url_t const url[], msg_param_t const params[], char const *comment)
Encode name-addr and parameter list.
Definition: sip_basic.c:764
union sip_header_u sip_header_t
Any SIP header - union of all possible SIP headers.
Definition: sip.h:114
issize_t sip_extract_body(msg_t *, sip_t *, char b[], isize_t bsiz, int eos)
Extract SIP message body, including separator line.
Definition: sip_parser.c:168
void sip_version_dup(char **pp, char const **dd, char const *s)
Duplicate a transport string.
Definition: sip_parser.c:292
char * sip_word_at_word_d(char **ss)
Parse SIP <word "@" word> construct used in Call-ID.
Definition: sip_parser.c:566
issize_t sip_any_route_d(su_home_t *, sip_header_t *, char *s, isize_t slen)
Parse a Route or a Record-Route header.
Definition: sip_basic.c:2104
issize_t sip_transport_d(char **ss, char const **ttransport)
Decode transport.
Definition: sip_parser.c:457
SIP message object.
Definition: sip.h:230
issize_t sip_name_addr_d(su_home_t *home, char **inout_s, char const **return_display, url_t *out_url, msg_param_t const **return_params, char const **return_comment)
Parse name-addr.
Definition: sip_basic.c:648
void sip_transport_dup(char **pp, char const **dd, char const *s)
Duplicate a transport string.
Definition: sip_parser.c:543
char * sip_name_addr_dup(char const **d_display, char const *display, url_t *d_addr, url_t const *addr, msg_param_t const **d_params, msg_param_t const params[], char *b, isize_t xtra)
Duplicate a name-addr-params construct.
Definition: sip_basic.c:841
sip_method_t sip_method_d(char **ss, char const **nname)
Parse a SIP method name.
Definition: sip_parser.c:369