It is defined in RFC 3261 as follows:
From = ( "From" / "f" ) HCOLON from-spec from-spec = ( name-addr / addr-spec ) *( SEMI from-param ) from-param = tag-param / generic-param tag-param = "tag" EQUAL token
The parsed From header is stored in sip_from_t structure.
Data Structures | |
| struct | sip_addr_s |
| Structure for From and To headers. More... | |
Defines | |
| #define | sip_from(sip) |
| Access a SIP From header structure sip_from_t from sip_t. | |
| #define | SIP_FROM_INIT() |
| Initializer for structure sip_from_t. | |
| #define | SIPTAG_FROM(x) |
| Tag list item for pointer to a From header structure sip_from_t. | |
| #define | SIPTAG_FROM_REF(x) |
| Tag list item for reference to a From header pointer. | |
| #define | SIPTAG_FROM_STR(s) |
| Tag list item for string with From header value. | |
| #define | SIPTAG_FROM_STR_REF(x) |
| Tag list item for reference to a From header string. | |
Typedefs | |
| typedef sip_addr_s | sip_from_t |
| The structure sip_from_t contains representation of From header. | |
Functions | |
| issize_t | sip_from_d (su_home_t *, msg_header_t *, char *s, isize_t slen) |
| Parse a SIP From header. | |
| issize_t | sip_from_e (char b[], isize_t bsiz, msg_header_t const *h, int flags) |
| Print a SIP From header. | |
| sip_from_t * | sip_from_init (sip_from_t x[1]) |
| Initialize a structure sip_from_t. | |
| int | sip_is_from (sip_header_t const *header) |
| Test if header object is instance of sip_from_t. | |
| sip_from_t * | sip_from_dup (su_home_t *home, sip_from_t const *hdr)) |
| Duplicate a list of From header header structures sip_from_t. | |
| sip_from_t * | sip_from_copy (su_home_t *home, sip_from_t const *hdr)) |
| Copy a list of From header header structures sip_from_t. | |
| sip_from_t * | sip_from_make (su_home_t *home, char const *s)) |
| Make a From header structure sip_from_t. | |
| sip_from_t * | sip_from_format (su_home_t *home, char const *fmt,...))) |
| Make a From header from formatting result. | |
| sip_from_t * | sip_from_create (su_home_t *home, url_string_t const *s) |
| Create a From header object. | |
| int | sip_from_add_param (su_home_t *home, sip_from_t *from, char const *param) |
| Add a parameter to an sip_from_t object. | |
| int | sip_from_tag (su_home_t *home, sip_from_t *from, char const *tag) |
| Add a tag to a From header. | |
Variables | |
| msg_hclass_t | sip_from_class [] |
| Header class for From header. | |
| tag_typedef_t | siptag_from |
| Tag for From header object. | |
| tag_typedef_t | siptag_from_str |
| Tag for string with From header value. | |
|
|
Initializer for structure sip_from_t. A static sip_from_t structure for From header must be initialized with the SIP_FROM_INIT() macro. For instance, |
|
|
Tag list item for pointer to a From header structure sip_from_t. The SIPTAG_FROM() macro is used to include a tag item with a pointer to a sip_from_t structure in a tag list.
|
|
|
Tag list item for string with From header value. The SIPTAG_FROM_STR() macro is used to include a tag item with a string containing value of a sip_from_t header in a tag list.
The corresponding tag taking reference parameter is SIPTAG_FROM_STR_REF(). |
|
|
The structure sip_from_t contains representation of From header. The sip_from_t is defined as follows: typedef struct sip_addr_s { sip_common_t a_common[1]; // Common fragment info sip_error_t *a_next; // Link to next char const *a_display; // Display name url_t a_url[1]; // URL msg_param_t const *a_params; // List of from-param char const *a_comment; // Comment char const *a_tag; // Tag parameter } sip_from_t; |
|
||||||||||||||||
|
Add a parameter to an sip_from_t object.
|
|
||||||||||||
|
Copy a list of From header header structures sip_from_t.
The function sip_from_copy() copies a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||
|
Create a From header object.
|
|
||||||||||||
|
Duplicate a list of From header header structures sip_from_t.
Duplicate a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||
|
Make a From header from formatting result. Make a new sip_from_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_from_t.
|
|
|
Initialize a structure sip_from_t. An sip_from_t structure for From header can be initialized with the sip_from_init() function/macro. For instance, |
|
||||||||||||
|
Make a From header structure sip_from_t. The function sip_from_make() makes a new sip_from_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
|
|
||||||||||||||||
|
Add a tag to a From header. If tag is identical with the existing one, nothing will be done. An error is returned, if the header already contains a different tag. The tag can be provided either as a single token ("deadbeer") or as in parameter form ("tag=deadbeer"). In both cases the tag is duplicated using the memory home home.
|
|
|
Test if header object is instance of sip_from_t. Check if the header class is an instance of From header object and return true (nonzero), otherwise return false (zero).
|
|
|
Header class for From header. The header class sip_from_class defines how a SIP From header is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_from_t header structure. |