The Route header is defined in RFC 3261 as follows:
Route = "Route" HCOLON route-param *(COMMA route-param)
route-param = name-addr *( SEMI rr-param )
The parsed Route header is stored in sip_route_t structure.
Data Structures | |
| struct | sip_route_s |
| Structure for Route and Record-Route header fields. More... | |
Defines | |
| #define | sip_route(sip) |
| Access a SIP Route header structure sip_route_t from sip_t. | |
| #define | SIP_ROUTE_INIT() |
| Initializer for structure sip_route_t. | |
| #define | SIPTAG_ROUTE(x) |
| Tag list item for pointer to a Route header structure sip_route_t. | |
| #define | SIPTAG_ROUTE_REF(x) |
| Tag list item for reference to a Route header pointer. | |
| #define | SIPTAG_ROUTE_STR(s) |
| Tag list item for string with Route header value. | |
| #define | SIPTAG_ROUTE_STR_REF(x) |
| Tag list item for reference to a Route header string. | |
Typedefs | |
| typedef sip_route_s | sip_route_t |
| The structure sip_route_t contains representation of SIP Route header. | |
Functions | |
| issize_t | sip_route_d (su_home_t *, msg_header_t *, char *s, isize_t slen) |
| Parse a SIP Route header. | |
| issize_t | sip_route_e (char b[], isize_t bsiz, msg_header_t const *h, int flags) |
| Print a SIP Route header. | |
| sip_route_t * | sip_route_init (sip_route_t x[1]) |
| Initialize a structure sip_route_t. | |
| int | sip_is_route (sip_header_t const *header) |
| Test if header object is instance of sip_route_t. | |
| sip_route_t * | sip_route_dup (su_home_t *home, sip_route_t const *hdr)) |
| Duplicate a list of Route header header structures sip_route_t. | |
| sip_route_t * | sip_route_copy (su_home_t *home, sip_route_t const *hdr)) |
| Copy a list of Route header header structures sip_route_t. | |
| sip_route_t * | sip_route_make (su_home_t *home, char const *s)) |
| Make a Route header structure sip_route_t. | |
| sip_route_t * | sip_route_format (su_home_t *home, char const *fmt,...))) |
| Make a Route header from formatting result. | |
| sip_route_t * | sip_route_create (su_home_t *home, url_t const *url, url_t const *maddr) |
| Create a Route header object. | |
| sip_route_t * | sip_route_remove (msg_t *msg, sip_t *sip) |
| Get first route header and remove it from its fragment chain. | |
| sip_route_t * | sip_route_pop (msg_t *msg, sip_t *sip) |
| Get last route header and remove it from its fragment chain. | |
| sip_route_t * | sip_route_follow (msg_t *msg, sip_t *sip) |
| Get first route header and rewrite the RequestURI. | |
| int | sip_route_is_loose (sip_route_t const *r) |
| Check if route header has lr param. | |
| sip_route_t * | sip_route_reverse_as (su_home_t *home, msg_hclass_t *hc, sip_route_t const *route) |
| Reverse a route header (Route, Record-Route, Path, Service-Route). | |
| sip_route_t * | sip_route_reverse (su_home_t *home, sip_route_t const *route) |
| Reverse a Route header. | |
| sip_route_t * | sip_route_fixdup_as (su_home_t *home, msg_hclass_t *hc, sip_route_t const *route) |
| Fix and duplicate a route header (Route, Record-Route, Path, Service-Route). | |
| sip_route_t * | sip_route_fixdup (su_home_t *home, sip_route_t const *route) |
| Fix and duplicate a Route header. | |
| sip_route_t * | sip_route_fix (sip_route_t *route) |
| Fix Route header. | |
Variables | |
| msg_hclass_t | sip_route_class [] |
| Header class for Route header. | |
| tag_typedef_t | siptag_route |
| Tag for Route header object. | |
| tag_typedef_t | siptag_route_str |
| Tag for string with Route header value. | |
|
|
Initializer for structure sip_route_t. A static sip_route_t structure for Route header must be initialized with the SIP_ROUTE_INIT() macro. For instance, |
|
|
Tag list item for pointer to a Route header structure sip_route_t. The SIPTAG_ROUTE() macro is used to include a tag item with a pointer to a sip_route_t structure in a tag list.
|
|
|
Tag list item for string with Route header value. The SIPTAG_ROUTE_STR() macro is used to include a tag item with a string containing value of a sip_route_t header in a tag list.
The corresponding tag taking reference parameter is SIPTAG_ROUTE_STR_REF(). |
|
|
The structure sip_route_t contains representation of SIP Route header. The sip_route_t is defined as follows: typedef struct sip_route_s { sip_common_t r_common[1]; // Common fragment info sip_route_t *r_next; // Link to next @Route char const *r_display; // Display name url_t r_url[1]; // @Route URL msg_param_t const *r_params; // List of route parameters } sip_route_t; |
|
|
Test if header object is instance of sip_route_t. Check if the header class is an instance of Route header object and return true (nonzero), otherwise return false (zero).
|
|
||||||||||||
|
Copy a list of Route header header structures sip_route_t.
The function sip_route_copy() copies a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||
|
Create a Route header object. Creates a route entry from two URLs; first one provides the URL, second maddr parameter and port.
|
|
||||||||||||
|
Duplicate a list of Route header header structures sip_route_t.
Duplicate a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||
|
Fix and duplicate a Route header. Copy a route header like Record-Route or Path as Route. |
|
||||||||||||||||
|
Make a Route header from formatting result. Make a new sip_route_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_route_t.
|
|
|
Initialize a structure sip_route_t. An sip_route_t structure for Route header can be initialized with the sip_route_init() function/macro. For instance, |
|
|
Check if route header has lr param. "lr" param can be either URL or header parameter. |
|
||||||||||||
|
Make a Route header structure sip_route_t. The function sip_route_make() makes a new sip_route_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
|
|
||||||||||||
|
Reverse a Route header. Reverse A route header like Record-Route or Path. |
|
|
Header class for Route header. The header class sip_route_class defines how a SIP Route header is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_route_t header structure. |