Loading...
Searching...
No Matches
sip_header.h
Go to the documentation of this file.
/*
* This file is part of the Sofia-SIP package
*
* Copyright (C) 2005 Nokia Corporation.
*
* Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
#ifndef SIP_HEADER_H
#define SIP_HEADER_H
#ifndef SU_ALLOC_H
#include <sofia-sip/su_alloc.h>
#endif
#ifndef SU_TAG_H
#include <sofia-sip/su_tag.h>
#endif
#ifndef SIP_H
#include <sofia-sip/sip.h>
#endif
#ifndef MSG_HEADER_H
#include <sofia-sip/msg_header.h>
#endif
#ifndef _STRING_H
#include <string.h>
#endif
SOFIA_BEGIN_DECLS
SOFIAPUBFUN msg_mclass_t const *sip_default_mclass(void);
SOFIAPUBFUN int sip_update_default_mclass(msg_mclass_t const *mclass);
SOFIAPUBFUN msg_mclass_t *sip_extend_mclass(msg_mclass_t *input);
#define sip_is_sip(sip) ((sip) && (sip)->sip_ident == SIP_PROTOCOL_TAG)
#define SIP_HDR_INIT(name) {{{ 0, 0, sip_##name##_class }}}
#define SIP_HEADER_INIT(h, sip_class, size) \
((void)memset((h), 0, (size)), \
(void)(((sip_common_t *)(h))->h_class = (sip_class)), \
(h))
SOFIAPUBFUN int sip_serialize(msg_t *msg, sip_t *sip);
SOFIAPUBFUN issize_t sip_e(sip_t const *sip, int flags, char b[], isize_t size);
SOFIAPUBFUN int sip_is_header(sip_header_t const *header);
SOFIAPUBFUN char *sip_header_as_string(su_home_t *home,
sip_header_t const *h);
SOFIAPUBFUN int sip_add_dup(msg_t *, sip_t *, sip_header_t const *);
SOFIAPUBFUN int sip_add_dup_as(msg_t *msg, sip_t *sip,
msg_hclass_t *hc, sip_header_t const *o);
SOFIAPUBFUN int sip_add_headers(msg_t *msg, sip_t *sip,
void const *extra, va_list headers);
SOFIAPUBFUN int sip_add_tl(msg_t *msg, sip_t *sip,
tag_type_t tag, tag_value_t value, ...);
SOFIAPUBFUN int sip_add_tagis(msg_t *, sip_t *, tagi_t const **inout_list);
SOFIAPUBFUN int sip_add_make(msg_t *, sip_t *, msg_hclass_t *hc, char const *s);
SOFIAPUBFUN char *sip_headers_as_url_query(su_home_t *home,
tag_type_t tag, tag_value_t value,
...);
SOFIAPUBFUN tagi_t *sip_url_query_as_taglist(su_home_t *home,
char const *query,
msg_mclass_t const *parser);
SOFIAPUBFUN int sip_complete_message(msg_t *msg);
#define sip_fragment_clear(a) ((a)->h_data = NULL, (a)->h_len = 0)
/* Use __attribute__ to allow argument checking for sip_header_format() */
#if !defined(__GNUC__) && !defined(__attribute__)
#define __attribute__(x)
#endif
SOFIAPUBFUN sip_header_t *sip_header_format(su_home_t *home,
msg_hclass_t *hc,
char const *fmt,
...)
__attribute__((__format__ (printf, 3, 4)));
SOFIAPUBFUN sip_time_t sip_now(void);
SOFIAPUBVAR char const sip_method_name_ack[];
SOFIAPUBVAR char const sip_method_name_bye[];
SOFIAPUBVAR char const sip_method_name_cancel[];
SOFIAPUBVAR char const sip_method_name_invite[];
SOFIAPUBVAR char const sip_method_name_options[];
SOFIAPUBVAR char const sip_method_name_register[];
SOFIAPUBVAR char const sip_method_name_info[];
SOFIAPUBVAR char const sip_method_name_prack[];
SOFIAPUBVAR char const sip_method_name_comet[];
SOFIAPUBVAR char const sip_method_name_message[];
SOFIAPUBVAR char const sip_method_name_subscribe[];
SOFIAPUBVAR char const sip_method_name_notify[];
SOFIAPUBVAR char const sip_method_name_refer[];
SOFIAPUBVAR char const sip_transport_udp[];
SOFIAPUBVAR char const sip_transport_tcp[];
SOFIAPUBVAR char const sip_transport_sctp[];
SOFIAPUBVAR char const sip_transport_tls[];
SOFIAPUBVAR char const sip_version_2_0[];
#define SIP_VERSION_CURRENT sip_version_2_0
SOFIAPUBVAR char const sip_parser_version[];
#define SIP_PORT(s) ((s) ? (s) : "5060")
#define SIPS_PORT(s) ((s) ? (s) : "5061")
SOFIAPUBFUN char const *sip_method_name(sip_method_t method, char const *name);
SOFIAPUBFUN sip_method_t sip_method_code(char const *name);
SOFIAPUBVAR char const * const sip_method_names[];
#define SIP_METHOD_NAME(method, name) \
((method) == sip_method_unknown ? (name) : sip_method_name(method, name))
#define sip_header_make(h, c, s) \
((sip_header_t *)msg_header_make((h), (c), (s)))
#define sip_header_vformat(h, c, f, a) \
((sip_header_t *)msg_header_vformat((h), (c), (f), (a)))
SOFIA_END_DECLS
#ifndef SIP_PROTOS_H
#include <sofia-sip/sip_protos.h>
#endif
SOFIA_BEGIN_DECLS
SOFIAPUBFUN
sip_request_t *sip_request_create(su_home_t *home,
sip_method_t method, const char *name,
url_string_t const *url,
char const *version);
SOFIAPUBFUN
sip_status_t *sip_status_create(su_home_t *home,
unsigned status,
char const *phrase,
char const *version);
SOFIAPUBFUN sip_call_id_t *sip_call_id_create(su_home_t *home,
char const *domain);
SOFIAPUBFUN sip_cseq_t *sip_cseq_create(su_home_t *, uint32_t seq,
unsigned method, char const *name);
SOFIAPUBFUN sip_contact_t * sip_contact_create(su_home_t *,
url_string_t const *url,
char const *param,
/* char const *params, */
...);
SOFIAPUBFUN sip_time_t sip_contact_expires(sip_contact_t const *m,
sip_expires_t const *ex,
sip_date_t const *date,
sip_time_t def,
sip_time_t now);
SOFIAPUBFUN
sip_content_length_t *sip_content_length_create(su_home_t *, uint32_t n);
SOFIAPUBFUN sip_date_t *sip_date_create(su_home_t *, sip_time_t t);
SOFIAPUBFUN sip_expires_t *sip_expires_create(su_home_t *, sip_time_t delta);
SOFIAPUBFUN sip_route_t *sip_route_create(su_home_t *home, url_t const *url,
url_t const *maddr);
SOFIAPUBFUN sip_record_route_t *sip_record_route_create(su_home_t *,
url_t const *rq_url,
url_t const *m_url);
SOFIAPUBFUN sip_from_t *sip_from_create(su_home_t *, url_string_t const *url);
SOFIAPUBFUN int sip_from_tag(su_home_t *, sip_from_t *from, char const *tag);
SOFIAPUBFUN sip_to_t *sip_to_create(su_home_t *, url_string_t const *url);
SOFIAPUBFUN int sip_to_tag(su_home_t *, sip_to_t *to, char const *tag);
SOFIAPUBFUN sip_via_t *sip_via_create(su_home_t *h,
char const *host,
char const *port,
char const *transport,
/* char const *params */
...);
#if SU_HAVE_INLINE
su_inline char const *sip_via_transport(sip_via_t const *v)
{
char const *tp = v->v_protocol;
if (tp) {
tp = strchr(tp, '/');
if (tp) {
tp = strchr(tp + 1, '/');
if (tp)
return tp + 1;
}
}
return NULL;
}
#else
char const *sip_via_transport(sip_via_t const *v);
#endif
SOFIAPUBFUN char const *sip_via_port(sip_via_t const *v, int *using_rport);
SOFIAPUBFUN
sip_payload_t *sip_payload_create(su_home_t *, void const *data, isize_t len);
#define SIP_PAYLOAD_INIT2(data, length) \
{{{ 0, 0, sip_payload_class, data, length }, NULL, data, length }}
SOFIAPUBFUN sip_separator_t *sip_separator_create(su_home_t *home);
SOFIAPUBFUN
sip_unsupported_t *sip_has_unsupported(su_home_t *,
sip_supported_t const *support,
sip_require_t const *require);
SOFIAPUBFUN
sip_unsupported_t *sip_has_unsupported2(su_home_t *,
sip_supported_t const *support,
sip_require_t const *by_require,
sip_require_t const *require);
SOFIAPUBFUN
sip_unsupported_t *
sip_has_unsupported_any(su_home_t *,
sip_supported_t const *support,
sip_require_t const *by_require,
sip_proxy_require_t const *by_proxy_require,
sip_require_t const *require,
sip_require_t const *require2,
sip_require_t const *require3);
SOFIAPUBFUN
int sip_has_supported(sip_supported_t const *support, char const *feature);
SOFIAPUBFUN
int sip_has_feature(msg_list_t const *supported, char const *feature);
SOFIAPUBFUN int sip_is_allowed(sip_allow_t const *allow,
sip_method_t method, char const *name);
#define SIP_IS_ALLOWED(allow, method) \
(sip_method_unknown < (method) && (method) < 32 && \
(allow) && ((allow)->k_bitmap & (1 << (method))) != 0)
enum sip_bad_mask {
sip_mask_request = (1 << 0),
sip_mask_response = (1 << 1),
sip_mask_ua = (1 << 2),
sip_mask_proxy = (1 << 3),
sip_mask_registrar = (1 << 4),
sip_mask_100rel = (1 << 5),
sip_mask_events = (1 << 6),
sip_mask_timer = (1 << 7),
sip_mask_privacy = (1 << 8),
sip_mask_pref = (1 << 9),
sip_mask_publish = (1 << 10)
/* NOTE:
* When adding bits, please update nta_agent_create() and
* NTATAG_BAD_RESP_MASK()/NTATAG_BAD_REQ_MASK() documentation.
*/
};
/* ------------------------------------------------------------------------- */
/* Here are @deprecated functions and names for compatibility */
SOFIAPUBFUN issize_t sip_header_e(char[], isize_t, sip_header_t const *, int);
SOFIAPUBFUN
sip_header_t *sip_header_d(su_home_t *, msg_t const *, char const *);
SOFIAPUBFUN issize_t sip_header_field_e(char[], isize_t, sip_header_t const *, int);
SOFIAPUBFUN issize_t sip_header_field_d(su_home_t *, sip_header_t *, char *, isize_t);
SOFIAPUBFUN isize_t sip_header_size(sip_header_t const *h);
SOFIAPUBFUN sip_header_t *sip_header_dup(su_home_t *, sip_header_t const *);
SOFIAPUBFUN sip_header_t *sip_header_copy(su_home_t *, sip_header_t const *o);
SOFIAPUBFUN int sip_allow_events_add(su_home_t *,
sip_allow_events_t *ae,
char const *e);
SOFIAPUBFUN int sip_contact_add_param(su_home_t *, sip_contact_t *,
char const *param);
SOFIAPUBFUN int sip_to_add_param(su_home_t *, sip_to_t *, char const *);
SOFIAPUBFUN int sip_from_add_param(su_home_t *, sip_from_t *, char const *);
SOFIAPUBFUN int sip_via_add_param(su_home_t *, sip_via_t *, char const *);
#define sip_from_make_url sip_from_create
#define sip_to_make_url sip_to_create
#define sip_params_find msg_params_find
SOFIA_END_DECLS
#endif
sip_allow_events_t
msg_list_t sip_allow_events_t
@
Definition sip.h:205
sip_allow_t
struct sip_allow_s sip_allow_t
@
Definition sip.h:142
sip_call_id_t
struct sip_call_id_s sip_call_id_t
@
Definition sip.h:145
sip_call_id_create
sip_call_id_t * sip_call_id_create(su_home_t *home, char const *domain)
Create a Call-ID header object.
Definition sip_basic.c:1123
sip_contact_add_param
int sip_contact_add_param(su_home_t *, sip_contact_t *, char const *param)
Add a parameter to a Contact header object.
Definition sip_basic.c:1487
sip_contact_t
struct sip_contact_s sip_contact_t
@
Definition sip.h:147
sip_contact_create
sip_contact_t * sip_contact_create(su_home_t *, url_string_t const *url, char const *param,...)
Create a Contact header object.
Definition sip_util.c:96
sip_content_length_t
struct sip_content_length_s sip_content_length_t
@
Definition sip.h:154
sip_content_length_create
sip_content_length_t * sip_content_length_create(su_home_t *, uint32_t n)
Create a Content-Length header object.
Definition sip_basic.c:1564
sip_cseq_t
struct sip_cseq_s sip_cseq_t
@
Definition sip.h:148
sip_cseq_create
sip_cseq_t * sip_cseq_create(su_home_t *, uint32_t seq, unsigned method, char const *name)
Create a CSeq header object.
Definition sip_basic.c:1280
sip_date_t
struct sip_date_s sip_date_t
@
Definition sip.h:157
sip_date_create
sip_date_t * sip_date_create(su_home_t *, sip_time_t t)
Create an Date header object.
Definition sip_basic.c:1650
sip_expires_create
sip_expires_t * sip_expires_create(su_home_t *, sip_time_t delta)
Create an Expires header object.
Definition sip_basic.c:1734
sip_contact_expires
sip_time_t sip_contact_expires(sip_contact_t const *m, sip_expires_t const *ex, sip_date_t const *date, sip_time_t def, sip_time_t now)
Calculate expiration time of a Contact header.
Definition sip_time.c:72
sip_expires_t
struct sip_expires_s sip_expires_t
@
Definition sip.h:159
sip_from_tag
int sip_from_tag(su_home_t *, sip_from_t *from, char const *tag)
Add a tag to a From header.
Definition sip_basic.c:1854
sip_from_t
struct sip_addr_s sip_from_t
@
Definition sip.h:160
sip_from_create
sip_from_t * sip_from_create(su_home_t *, url_string_t const *url)
Create a From header object.
Definition sip_basic.c:1813
sip_from_add_param
int sip_from_add_param(su_home_t *, sip_from_t *, char const *)
Add a parameter to an sip_from_t object.
Definition sip_basic.c:1831
sip_payload_t
msg_payload_t sip_payload_t
@
Definition sip.h:137
sip_payload_create
sip_payload_t * sip_payload_create(su_home_t *, void const *data, isize_t len)
Create a SIP payload structure.
Definition sip_basic.c:452
sip_proxy_require_t
msg_list_t sip_proxy_require_t
@
Definition sip.h:170
sip_record_route_create
sip_record_route_t * sip_record_route_create(su_home_t *, url_t const *rq_url, url_t const *m_url)
Create a Record-Route header object.
Definition sip_basic.c:2356
sip_record_route_t
struct sip_route_s sip_record_route_t
@
Definition sip.h:173
sip_request_create
sip_request_t * sip_request_create(su_home_t *home, sip_method_t method, const char *name, url_string_t const *url, char const *version)
Create a request line object.
Definition sip_basic.c:208
sip_request_t
struct sip_request_s sip_request_t
@
Definition sip.h:132
sip_require_t
msg_list_t sip_require_t
@
Definition sip.h:185
sip_route_create
sip_route_t * sip_route_create(su_home_t *home, url_t const *url, url_t const *maddr)
Create a Route header object.
Definition sip_basic.c:2281
sip_route_t
struct sip_route_s sip_route_t
@
Definition sip.h:187
sip_separator_t
msg_separator_t sip_separator_t
@
Definition sip.h:136
sip_separator_create
sip_separator_t * sip_separator_create(su_home_t *home)
Create a SIP separator line structure.
Definition sip_basic.c:514
sip_status_t
struct sip_status_s sip_status_t
@
Definition sip.h:133
sip_status_create
sip_status_t * sip_status_create(su_home_t *home, unsigned status, char const *phrase, char const *version)
Create a status line object.
Definition sip_basic.c:377
sip_supported_t
msg_list_t sip_supported_t
@
Definition sip.h:195
sip_to_t
struct sip_addr_s sip_to_t
@
Definition sip.h:197
sip_to_add_param
int sip_to_add_param(su_home_t *, sip_to_t *, char const *)
Add a parameter to a sip_to_t object.
Definition sip_basic.c:2446
sip_to_create
sip_to_t * sip_to_create(su_home_t *, url_string_t const *url)
Create a To header object.
Definition sip_basic.c:2426
sip_unsupported_t
msg_list_t sip_unsupported_t
@
Definition sip.h:198
sip_via_port
char const * sip_via_port(sip_via_t const *v, int *using_rport)
Get port number corresponding to a Via line.
Definition sip_basic.c:2753
sip_via_add_param
int sip_via_add_param(su_home_t *, sip_via_t *, char const *)
Add a parameter to a Via header object.
Definition sip_basic.c:2678
sip_via_t
struct sip_via_s sip_via_t
@
Definition sip.h:200
sip_via_create
sip_via_t * sip_via_create(su_home_t *h, char const *host, char const *port, char const *transport,...)
Create a Via object.
Definition sip_basic.c:2704
msg_header.h
msg_hclass_t
struct msg_hclass_s const msg_hclass_t
msg_list_t
struct msg_list_s msg_list_t
msg_t
struct msg_s msg_t
msg_mclass_t
struct msg_mclass_s msg_mclass_t
sip.h
SIP objects.
sip_t
struct sip_s sip_t
Structure for accessing parsed SIP headers.
Definition sip.h:111
sip_time_t
msg_time_t sip_time_t
Time in seconds since Jan 01 1900.
Definition sip.h:105
sip_header_t
union sip_header_u sip_header_t
Any SIP header - union of all possible SIP headers.
Definition sip.h:114
sip_method_t
sip_method_t
IDs for well-known SIP methods.
Definition sip.h:48
sip_header_field_e
issize_t sip_header_field_e(char[], isize_t, sip_header_t const *, int)
Encode contents of a SIP header field.
sip_via_transport
char const * sip_via_transport(sip_via_t const *v)
Get transport protocol name.
Definition sip_header.h:276
sip_has_unsupported_any
sip_unsupported_t * sip_has_unsupported_any(su_home_t *, sip_supported_t const *support, sip_require_t const *by_require, sip_proxy_require_t const *by_proxy_require, sip_require_t const *require, sip_require_t const *require2, sip_require_t const *require3)
Check if required features are not supported.
Definition sip_feature.c:396
sip_version_2_0
char const sip_version_2_0[]
SIP version 2.0.
Definition sip_parser.c:61
sip_header_format
sip_header_t * sip_header_format(su_home_t *home, msg_hclass_t *hc, char const *fmt,...)))
Make a SIP header with formatting provided.
Definition sip_header.c:97
sip_is_header
int sip_is_header(sip_header_t const *header)
Test if header is a pointer to a SIP header object.
sip_headers_as_url_query
char * sip_headers_as_url_query(su_home_t *home, tag_type_t tag, tag_value_t value,...)
Convert headers from taglist as URL query.
Definition sip_tag_class.c:302
sip_has_unsupported2
sip_unsupported_t * sip_has_unsupported2(su_home_t *, sip_supported_t const *support, sip_require_t const *by_require, sip_require_t const *require)
Check if required feature is not supported.
Definition sip_feature.c:362
sip_has_feature
int sip_has_feature(msg_list_t const *supported, char const *feature)
Check that a feature is in the list.
Definition sip_feature.c:471
sip_now
sip_time_t sip_now(void)
Return current time.
Definition sip_time.c:49
sip_has_supported
int sip_has_supported(sip_supported_t const *support, char const *feature)
Check that a feature is supported.
Definition sip_feature.c:488
sip_header_d
sip_header_t * sip_header_d(su_home_t *, msg_t const *, char const *)
Decode a SIP header string (name: contents CRLF?).
Definition sip_header.c:83
sip_method_code
sip_method_t sip_method_code(char const *name)
Return code corresponding to the method code.
Definition sip_parser.c:449
sip_header_size
isize_t sip_header_size(sip_header_t const *h)
Calculate the size of a SIP header and associated memory areas.
Definition sip_util.c:428
sip_header_as_string
char * sip_header_as_string(su_home_t *home, sip_header_t const *h)
Convert the header h to a string allocated from home.
Definition sip_util.c:394
sip_add_make
int sip_add_make(msg_t *, sip_t *, msg_hclass_t *hc, char const *s)
Parse a string as a header and add it to the SIP message.
Definition sip_header.c:130
sip_header_e
issize_t sip_header_e(char[], isize_t, sip_header_t const *, int)
Encode a SIP header field (name: contents CRLF).
Definition sip_header.c:92
sip_has_unsupported
sip_unsupported_t * sip_has_unsupported(su_home_t *, sip_supported_t const *support, sip_require_t const *require)
Check that a required feature is supported.
Definition sip_feature.c:346
sip_allow_events_add
int sip_allow_events_add(su_home_t *, sip_allow_events_t *ae, char const *e)
Add an event to Allow-Events header.
Definition sip_event.c:229
sip_complete_message
int sip_complete_message(msg_t *msg)
Complete SIP message.
Definition sip_parser.c:600
sip_add_tl
int sip_add_tl(msg_t *msg, sip_t *sip, tag_type_t tag, tag_value_t value,...)
Add duplicates of headers from taglist to the SIP message.
Definition sip_tag_class.c:191
sip_e
issize_t sip_e(sip_t const *sip, int flags, char b[], isize_t size)
Encode a SIP message.
sip_is_allowed
int sip_is_allowed(sip_allow_t const *allow, sip_method_t method, char const *name)
Return true if the method is listed in Allow header.
Definition sip_feature.c:129
sip_bad_mask
sip_bad_mask
Bitmasks for header classifications.
Definition sip_header.h:374
sip_mask_request
@ sip_mask_request
Bit marking essential headers in a request message.
Definition sip_header.h:380
sip_mask_privacy
@ sip_mask_privacy
Bit marking essential headers for privacy extension.
Definition sip_header.h:441
sip_mask_events
@ sip_mask_events
Bit marking essential headers for SIP events.
Definition sip_header.h:425
sip_mask_proxy
@ sip_mask_proxy
Bit marking essential headers for proxy server.
Definition sip_header.h:401
sip_mask_timer
@ sip_mask_timer
Bit marking essential headers for session timer extension.
Definition sip_header.h:433
sip_mask_pref
@ sip_mask_pref
Bit marking essential headers for caller preference extension.
Definition sip_header.h:449
sip_mask_registrar
@ sip_mask_registrar
Bit marking essential headers for registrar server.
Definition sip_header.h:409
sip_mask_publish
@ sip_mask_publish
Bit marking essential headers for PUBLISH servers and clients.
Definition sip_header.h:457
sip_mask_100rel
@ sip_mask_100rel
Bit marking essential headers for 100rel extension.
Definition sip_header.h:417
sip_mask_ua
@ sip_mask_ua
Bit marking essential headers for User-Agent.
Definition sip_header.h:394
sip_mask_response
@ sip_mask_response
Bit marking essential headers in a response message.
Definition sip_header.h:387
sip_header_dup
sip_header_t * sip_header_dup(su_home_t *, sip_header_t const *)
Duplicate (deep copy) a SIP header or whole list.
Definition sip_header.c:71
sip_header_copy
sip_header_t * sip_header_copy(su_home_t *, sip_header_t const *o)
Copy a SIP header or whole list.
Definition sip_header.c:60
sip_add_tagis
int sip_add_tagis(msg_t *, sip_t *, tagi_t const **inout_list)
Add duplicates of headers from taglist to the SIP message.
Definition sip_tag_class.c:209
sip_serialize
int sip_serialize(msg_t *msg, sip_t *sip)
Serialize headers into the fragment chain.
sip_url_query_as_taglist
tagi_t * sip_url_query_as_taglist(su_home_t *home, char const *query, msg_mclass_t const *parser)
Convert URL query to a tag list.
Definition sip_tag_class.c:418
sip_extend_mclass
msg_mclass_t * sip_extend_mclass(msg_mclass_t *input)
Extend SIP parser class with extension headers.
Definition sip_parser.c:127
sip_parser_version
char const sip_parser_version[]
SIP parser version.
Definition sip_parser.c:58
sip_add_headers
int sip_add_headers(msg_t *msg, sip_t *sip, void const *extra, va_list headers)
Add duplicates of headers to the SIP message.
sip_add_dup
int sip_add_dup(msg_t *, sip_t *, sip_header_t const *)
Add a duplicate of header object to a SIP message.
Definition sip_header.c:115
sip_method_name
char const * sip_method_name(sip_method_t method, char const *name)
Return string corresponding to the method.
Definition sip_parser.c:337
sip_header_field_d
issize_t sip_header_field_d(su_home_t *, sip_header_t *, char *, isize_t)
Decode the string containing header field.
Definition sip_util.c:365
sip_method_names
char const *const sip_method_names[]
Well-known SIP method names.
Definition sip_parser.c:316
sip_default_mclass
msg_mclass_t const * sip_default_mclass(void)
Return a built-in SIP parser object.
Definition sip_parser.c:69
sip_add_dup_as
int sip_add_dup_as(msg_t *msg, sip_t *sip, msg_hclass_t *hc, sip_header_t const *o)
Add a duplicate of header object to the SIP message.
Definition sip_header.c:122
sip_update_default_mclass
int sip_update_default_mclass(msg_mclass_t const *mclass)
Update the default SIP parser.
Definition sip_parser.c:98
sip_protos.h
SIP prototypes and macros for each header.
sip_via_s::v_protocol
char const * v_protocol
Application and transport protocol.
Definition sip.h:756
tagi_t
url_t
su_alloc.h
su_home_t
SU_HOME_T su_home_t
SOFIAPUBFUN
#define SOFIAPUBFUN
SOFIAPUBVAR
#define SOFIAPUBVAR
su_inline
#define su_inline
su_tag.h
tag_value_t
intptr_t tag_value_t
tag_type_t
struct tag_type_s const * tag_type_t
uint32_t
SU_U32_T uint32_t
url_string_t

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