Its syntax is defined in RFC 3261 as follows:
Contact = ("Contact" / "m" ) HCOLON ( STAR / (contact-param *(COMMA contact-param))) contact-param = (name-addr / addr-spec) *(SEMI contact-params) name-addr = [ display-name ] LAQUOT addr-spec RAQUOT addr-spec = SIP-URI / SIPS-URI / absoluteURI display-name = *(token LWS)/ quoted-string contact-params = c-p-q / c-p-expires / contact-extension c-p-q = "q" EQUAL qvalue c-p-expires = "expires" EQUAL delta-seconds contact-extension = generic-param delta-seconds = 1*DIGIT
Data Structures | |
| struct | sip_contact_s |
| Structure for Contact header field. More... | |
Defines | |
| #define | sip_contact(sip) |
| Access a SIP Contact header structure sip_contact_t from sip_t. | |
| #define | SIP_CONTACT_INIT() |
| Initializer for structure sip_contact_t. | |
| #define | SIPTAG_CONTACT(x) |
| Tag list item for pointer to a Contact header structure sip_contact_t. | |
| #define | SIPTAG_CONTACT_REF(x) |
| Tag list item for reference to a Contact header pointer. | |
| #define | SIPTAG_CONTACT_STR(s) |
| Tag list item for string with Contact header value. | |
| #define | SIPTAG_CONTACT_STR_REF(x) |
| Tag list item for reference to a Contact header string. | |
Typedefs | |
| typedef sip_contact_s | sip_contact_t |
| The structure sip_contact_t contains representation of SIP Contact header. | |
Functions | |
| issize_t | sip_contact_d (su_home_t *, msg_header_t *, char *s, isize_t slen) |
| Parse a SIP Contact header. | |
| issize_t | sip_contact_e (char b[], isize_t bsiz, msg_header_t const *h, int flags) |
| Print a SIP Contact header. | |
| sip_contact_t * | sip_contact_init (sip_contact_t x[1]) |
| Initialize a structure sip_contact_t. | |
| int | sip_is_contact (sip_header_t const *header) |
| Test if header object is instance of sip_contact_t. | |
| sip_contact_t * | sip_contact_dup (su_home_t *home, sip_contact_t const *hdr)) |
| Duplicate a list of Contact header header structures sip_contact_t. | |
| sip_contact_t * | sip_contact_copy (su_home_t *home, sip_contact_t const *hdr)) |
| Copy a list of Contact header header structures sip_contact_t. | |
| sip_contact_t * | sip_contact_make (su_home_t *home, char const *s)) |
| Make a Contact header structure sip_contact_t. | |
| sip_contact_t * | sip_contact_format (su_home_t *home, char const *fmt,...))) |
| Make a Contact header from formatting result. | |
| int | sip_contact_add_param (su_home_t *home, sip_contact_t *m, char const *param) |
| Add a parameter to a Contact header object. | |
| sip_contact_t * | sip_contact_create (su_home_t *home, url_string_t const *url, char const *p,...) |
| Create a Contact header object. | |
Variables | |
| msg_hclass_t | sip_contact_class [] |
| Header class for Contact header. | |
| tag_typedef_t | siptag_contact |
| Tag for Contact header object. | |
| tag_typedef_t | siptag_contact_str |
| Tag for string with Contact header value. | |
|
|
Initializer for structure sip_contact_t. A static sip_contact_t structure for Contact header must be initialized with the SIP_CONTACT_INIT() macro. For instance, |
|
|
Tag list item for pointer to a Contact header structure sip_contact_t. The SIPTAG_CONTACT() macro is used to include a tag item with a pointer to a sip_contact_t structure in a tag list.
|
|
|
Tag list item for string with Contact header value. The SIPTAG_CONTACT_STR() macro is used to include a tag item with a string containing value of a sip_contact_t header in a tag list.
The corresponding tag taking reference parameter is SIPTAG_CONTACT_STR_REF(). |
|
|
The structure sip_contact_t contains representation of SIP Contact header. The sip_contact_t is defined as follows: typedef struct sip_contact_s { sip_common_t m_common[1]; // Common fragment info sip_contact_t *m_next; // Link to next char const *m_display; // Display name url_t m_url[1]; // SIP URL msg_param_t const *m_params; // List of contact-params char const *m_comment; // Comment char const *m_q; // Priority char const *m_expires; // Expiration time } sip_contact_t;
|
|
||||||||||||||||
|
Add a parameter to a Contact header object.
Add a parameter to a Contact object. It does not copy the contents of the string
|
|
||||||||||||
|
Copy a list of Contact header header structures sip_contact_t.
The function sip_contact_copy() copies a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||||||
|
Create a Contact header object. Create a Contact header object with the given URL and list of parameters.
|
|
||||||||||||
|
Duplicate a list of Contact header header structures sip_contact_t.
Duplicate a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||
|
Make a Contact header from formatting result. Make a new sip_contact_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_contact_t.
|
|
|
Initialize a structure sip_contact_t. An sip_contact_t structure for Contact header can be initialized with the sip_contact_init() function/macro. For instance, |
|
||||||||||||
|
Make a Contact header structure sip_contact_t. The function sip_contact_make() makes a new sip_contact_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
|
|
|
Test if header object is instance of sip_contact_t. Check if the header class is an instance of Contact header object and return true (nonzero), otherwise return false (zero).
|
|
|
Header class for Contact header. The header class sip_contact_class defines how a SIP Contact header is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_contact_t header structure. |