#include "config.h"
#include "sofia-sip/sip_parser.h"
#include <sofia-sip/su_tag_class.h>
#include <sofia-sip/su_tag_inline.h>
#include <sofia-sip/sip_tag_class.h>
#include <sofia-sip/sip_tag.h>
#include <sofia-sip/su_tagarg.h>
#include <sofia-sip/su_strlst.h>
#include <ctype.h>
#include <assert.h>
#include <stddef.h>
#include <string.h>
Include dependency graph for sip_tag_class.c:
Functions | |
tagi_t * | siptag_filter (tagi_t *dst, tagi_t const f[], tagi_t const *src, void **bb) |
Filter a for SIP header tag. | |
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. | |
int | sip_add_tagis (msg_t *msg, sip_t *sip, tagi_t const **inout_list) |
Add duplicates of headers from taglist to the SIP message. | |
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. | |
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. | |
Variables | |
tag_class_t | siphdrtag_class [1] |
Tag class for SIP headers. | |
tag_class_t | sipstrtag_class [1] |
Tag class for string values of SIP headers. | |
tag_class_t | sipmsgtag_class [1] |
Tag class for SIP message. |
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.
The SIP URI can contain a query part separated with the "?", which specifies SIP headers that are included in the request constructed from the URI. For example, using URI
<sip:example.com?subject=test> would include @Subject header with value "test" in the request. @param home memory home used to allocate query string (if NULL, use malloc) @param tag, value, ... list of tagged arguments @bug This function returns NULL if SIPTAG_REQUEST(), SIPTAG_STATUS(), SIPTAG_HEADER(), SIPTAG_UNKNOWN(), SIPTAG_ERROR(), SIPTAG_SEPARATOR(), or any corresponding string tag is included in the tag list. It ignores SIPTAG_SIP(). @par Example @code url->url_headers = sip_headers_as_url_query(home, SIPTAG_REPLACES(replaces), TAG_END());
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.
SIP headers encoded as URL query is parsed returned as a tag list. Unknown headers are encoded as SIPTAG_HEADER_STR().
home | memory home used to alloate string (if NULL, malloc() it) | |
query | query part from SIP URL | |
parser | optional SIP parser used |
Filter a for SIP header tag.
[in] | dst | tag list for filtering result. May be NULL. |
[in] | f | filter tag |
[in] | src | tag item from source list. |
[in,out] | bb | pointer to pointer of mempory area used to dup the filtering result |