It can be used with HRPF scenarios. It is defined in RFC 3326 as follows:
Reason = "Reason" HCOLON reason-value *(COMMA reason-value)
reason-value = protocol *(SEMI reason-params)
protocol = "SIP" / "Q.850" / token
reason-params = protocol-cause / reason-text
/ reason-extension
protocol-cause = "cause" EQUAL cause
cause = 1*DIGIT
reason-text = "text" EQUAL quoted-string
reason-extension = generic-param
The parsed Reason header is stored in sip_reason_t structure.
Data Structures | |
| struct | sip_reason_s |
| Structure for Reason header field. More... | |
Defines | |
| #define | sip_reason(sip) |
| Access a SIP Reason header structure sip_reason_t from sip_t. | |
| #define | SIP_REASON_INIT() |
| Initializer for structure sip_reason_t. | |
| #define | SIPTAG_REASON(x) |
| Tag list item for pointer to a Reason header structure sip_reason_t. | |
| #define | SIPTAG_REASON_REF(x) |
| Tag list item for reference to a Reason header pointer. | |
| #define | SIPTAG_REASON_STR(s) |
| Tag list item for string with Reason header value. | |
| #define | SIPTAG_REASON_STR_REF(x) |
| Tag list item for reference to a Reason header string. | |
Typedefs | |
| typedef sip_reason_s | sip_reason_t |
| The structure sip_reason_t contains representation of SIP Reason header. | |
Functions | |
| issize_t | sip_reason_d (su_home_t *, msg_header_t *, char *s, isize_t slen) |
| Parse a SIP Reason header. | |
| issize_t | sip_reason_e (char b[], isize_t bsiz, msg_header_t const *h, int flags) |
| Print a SIP Reason header. | |
| sip_reason_t * | sip_reason_init (sip_reason_t x[1]) |
| Initialize a structure sip_reason_t. | |
| int | sip_is_reason (sip_header_t const *header) |
| Test if header object is instance of sip_reason_t. | |
| sip_reason_t * | sip_reason_dup (su_home_t *home, sip_reason_t const *hdr)) |
| Duplicate a list of Reason header header structures sip_reason_t. | |
| sip_reason_t * | sip_reason_copy (su_home_t *home, sip_reason_t const *hdr)) |
| Copy a list of Reason header header structures sip_reason_t. | |
| sip_reason_t * | sip_reason_make (su_home_t *home, char const *s)) |
| Make a Reason header structure sip_reason_t. | |
| sip_reason_t * | sip_reason_format (su_home_t *home, char const *fmt,...))) |
| Make a Reason header from formatting result. | |
Variables | |
| msg_hclass_t | sip_reason_class [] |
| Header class for Reason header. | |
| tag_typedef_t | siptag_reason |
| Tag for Reason header object. | |
| tag_typedef_t | siptag_reason_str |
| Tag for string with Reason header value. | |
|
|
Initializer for structure sip_reason_t. A static sip_reason_t structure for Reason header must be initialized with the SIP_REASON_INIT() macro. For instance, |
|
|
Tag list item for pointer to a Reason header structure sip_reason_t. The SIPTAG_REASON() macro is used to include a tag item with a pointer to a sip_reason_t structure in a tag list.
|
|
|
Tag list item for string with Reason header value. The SIPTAG_REASON_STR() macro is used to include a tag item with a string containing value of a sip_reason_t header in a tag list.
The corresponding tag taking reference parameter is SIPTAG_REASON_STR_REF(). |
|
|
The structure sip_reason_t contains representation of SIP Reason header. The sip_reason_t is defined as follows: typedef struct sip_reason_s { sip_common_t re_common[1]; // Common fragment info sip_reason_t *re_next; // Link to next <reason-value> char const *re_protocol; // Protocol msg_param_t const *re_params; // List of reason parameters char const *re_cause; // Value of cause parameter char const *re_text; // Value of text parameter } sip_reason_t; |
|
|
Test if header object is instance of sip_reason_t. Check if the header class is an instance of Reason header object and return true (nonzero), otherwise return false (zero).
|
|
||||||||||||
|
Copy a list of Reason header header structures sip_reason_t.
The function sip_reason_copy() copies a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||
|
Duplicate a list of Reason header header structures sip_reason_t.
Duplicate a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||
|
Make a Reason header from formatting result. Make a new sip_reason_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_reason_t.
|
|
|
Initialize a structure sip_reason_t. An sip_reason_t structure for Reason header can be initialized with the sip_reason_init() function/macro. For instance, |
|
||||||||||||
|
Make a Reason header structure sip_reason_t. The function sip_reason_make() makes a new sip_reason_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
|
|
|
Header class for Reason header. The header class sip_reason_class defines how a SIP Reason header is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_reason_t header structure. |