Its syntax is defined in RFC 3891 section 6.1 as follows:
Replaces = "Replaces" HCOLON callid *(SEMI replaces-param) replaces-param = to-tag / from-tag / early-flag / generic-param to-tag = "to-tag" EQUAL token from-tag = "from-tag" EQUAL token early-flag = "early-only"
A Replaces header field MUST contain exactly one <to-tag> and exactly one <from-tag>, as they are required for unique dialog matching. For compatibility with dialogs initiated by RFC 2543 compliant UAs, a tag of zero ("0") matches both tags of zero and null. A Replaces header field MAY contain the <early-only> flag.
The parsed Replaces header is stored in sip_replaces_t structure.
Data Structures | |
| struct | sip_replaces_s |
| Structure for Replaces header. More... | |
Defines | |
| #define | sip_replaces(sip) |
| Access a SIP Replaces header structure sip_replaces_t from sip_t. | |
| #define | SIP_REPLACES_INIT() |
| Initializer for structure sip_replaces_t. | |
| #define | SIPTAG_REPLACES(x) |
| Tag list item for pointer to a Replaces header structure sip_replaces_t. | |
| #define | SIPTAG_REPLACES_REF(x) |
| Tag list item for reference to a Replaces header pointer. | |
| #define | SIPTAG_REPLACES_STR(s) |
| Tag list item for string with Replaces header value. | |
| #define | SIPTAG_REPLACES_STR_REF(x) |
| Tag list item for reference to a Replaces header string. | |
Typedefs | |
| typedef sip_replaces_s | sip_replaces_t |
| The structure sip_replaces_t contains representation of Replaces header. | |
Functions | |
| issize_t | sip_replaces_d (su_home_t *, msg_header_t *, char *s, isize_t slen) |
| Parse a SIP Replaces header. | |
| issize_t | sip_replaces_e (char b[], isize_t bsiz, msg_header_t const *h, int flags) |
| Print a SIP Replaces header. | |
| sip_replaces_t * | sip_replaces_init (sip_replaces_t x[1]) |
| Initialize a structure sip_replaces_t. | |
| int | sip_is_replaces (sip_header_t const *header) |
| Test if header object is instance of sip_replaces_t. | |
| sip_replaces_t * | sip_replaces_dup (su_home_t *home, sip_replaces_t const *hdr)) |
| Duplicate a list of Replaces header header structures sip_replaces_t. | |
| sip_replaces_t * | sip_replaces_copy (su_home_t *home, sip_replaces_t const *hdr)) |
| Copy a list of Replaces header header structures sip_replaces_t. | |
| sip_replaces_t * | sip_replaces_make (su_home_t *home, char const *s)) |
| Make a Replaces header structure sip_replaces_t. | |
| sip_replaces_t * | sip_replaces_format (su_home_t *home, char const *fmt,...))) |
| Make a Replaces header from formatting result. | |
Variables | |
| msg_hclass_t | sip_replaces_class [] |
| Header class for Replaces header. | |
| tag_typedef_t | siptag_replaces |
| Tag for Replaces header object. | |
| tag_typedef_t | siptag_replaces_str |
| Tag for string with Replaces header value. | |
|
|
Initializer for structure sip_replaces_t. A static sip_replaces_t structure for Replaces header must be initialized with the SIP_REPLACES_INIT() macro. For instance, |
|
|
Tag list item for pointer to a Replaces header structure sip_replaces_t. The SIPTAG_REPLACES() macro is used to include a tag item with a pointer to a sip_replaces_t structure in a tag list.
|
|
|
Tag list item for string with Replaces header value. The SIPTAG_REPLACES_STR() macro is used to include a tag item with a string containing value of a sip_replaces_t header in a tag list.
The corresponding tag taking reference parameter is SIPTAG_REPLACES_STR_REF(). |
|
|
The structure sip_replaces_t contains representation of Replaces header. The sip_replaces_t is defined as follows: typedef struct sip_replaces_s { sip_common_t rp_common[1]; // Common fragment info sip_error_t *rp_next; // Dummy link to next char const *rp_call_id; // @CallID of dialog to replace msg_param_t const *rp_params; // List of parameters char const *rp_to_tag; // Value of "to-tag" parameter char const *rp_from_tag; // Value of "from-tag" parameter unsigned rp_early_only; // early-only parameter } sip_replaces_t; |
|
|
Test if header object is instance of sip_replaces_t. Check if the header class is an instance of Replaces header object and return true (nonzero), otherwise return false (zero).
|
|
||||||||||||
|
Copy a list of Replaces header header structures sip_replaces_t.
The function sip_replaces_copy() copies a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||
|
Duplicate a list of Replaces header header structures sip_replaces_t.
Duplicate a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||
|
Make a Replaces header from formatting result. Make a new sip_replaces_t object using formatting result as its value. The function first prints the arguments according to the format fmt specified. Then it allocates a new header structure, and parses the formatting result to the structure sip_replaces_t.
|
|
|
Initialize a structure sip_replaces_t. An sip_replaces_t structure for Replaces header can be initialized with the sip_replaces_init() function/macro. For instance, |
|
||||||||||||
|
Make a Replaces header structure sip_replaces_t. The function sip_replaces_make() makes a new sip_replaces_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
|
|
|
Header class for Replaces header. The header class sip_replaces_class defines how a SIP Replaces header is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_replaces_t header structure. |