It is defined in RFC 3261 as follows:
Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF Status-Code = Informational / Redirection / Success / Client-Error / Server-Error / Global-Failure / extension-code extension-code = 3DIGIT Reason-Phrase = *(reserved / unreserved / escaped / UTF8-NONASCII / UTF8-CONT / SP / HTAB)
The parsed status line is stored in sip_status_t structure.
Data Structures | |
| struct | sip_status_s |
| Structure for SIP status line. More... | |
Defines | |
| #define | sip_status(sip) |
| Access a SIP status line structure sip_status_t from sip_t. | |
| #define | SIP_STATUS_INIT() |
| Initializer for structure sip_status_t. | |
| #define | SIPTAG_STATUS(x) |
| Tag list item for pointer to a status line structure sip_status_t. | |
| #define | SIPTAG_STATUS_REF(x) |
| Tag list item for reference to a status line pointer. | |
| #define | SIPTAG_STATUS_STR(s) |
| Tag list item for string with status line value. | |
| #define | SIPTAG_STATUS_STR_REF(x) |
| Tag list item for reference to a status line string. | |
Typedefs | |
| typedef sip_status_s | sip_status_t |
| The structure sip_status_t contains representation of SIP status line. | |
Functions | |
| issize_t | sip_status_d (su_home_t *, msg_header_t *, char *s, isize_t slen) |
| Parse a SIP status line. | |
| issize_t | sip_status_e (char b[], isize_t bsiz, msg_header_t const *h, int flags) |
| Print a SIP status line. | |
| sip_status_t * | sip_status_init (sip_status_t x[1]) |
| Initialize a structure sip_status_t. | |
| int | sip_is_status (sip_header_t const *header) |
| Test if header object is instance of sip_status_t. | |
| sip_status_t * | sip_status_dup (su_home_t *home, sip_status_t const *hdr)) |
| Duplicate a list of status line header structures sip_status_t. | |
| sip_status_t * | sip_status_copy (su_home_t *home, sip_status_t const *hdr)) |
| Copy a list of status line header structures sip_status_t. | |
| sip_status_t * | sip_status_make (su_home_t *home, char const *s)) |
| Make a status line structure sip_status_t. | |
| sip_status_t * | sip_status_format (su_home_t *home, char const *fmt,...))) |
| Make a status line from formatting result. | |
| sip_status_t * | sip_status_create (su_home_t *home, unsigned status, char const *phrase, char const *version) |
| Create a status line object. | |
Variables | |
| msg_hclass_t | sip_status_class [] |
| Header class for status line. | |
| tag_typedef_t | siptag_status |
| Tag for status line object. | |
| tag_typedef_t | siptag_status_str |
| Tag for string with status line value. | |
|
|
Initializer for structure sip_status_t. A static sip_status_t structure for status line must be initialized with the SIP_STATUS_INIT() macro. For instance, |
|
|
Tag list item for pointer to a status line structure sip_status_t. The SIPTAG_STATUS() macro is used to include a tag item with a pointer to a sip_status_t structure in a tag list.
|
|
|
Tag list item for string with status line value. The SIPTAG_STATUS_STR() macro is used to include a tag item with a string containing value of a sip_status_t header in a tag list.
The corresponding tag taking reference parameter is SIPTAG_STATUS_STR_REF(). |
|
|
The structure sip_status_t contains representation of SIP status line. The sip_status_t is defined as follows: typedef struct sip_status_s { sip_common_t st_common[1]; // Common fragment info sip_unknown_t *st_next; // Link to next (dummy) char const *st_version; // Protocol version int st_status; // Status code char const *st_phrase; // Status phrase } sip_status_t; |
|
|
Test if header object is instance of sip_status_t. Check if the header class is an instance of status line object and return true (nonzero), otherwise return false (zero).
|
|
||||||||||||
|
Copy a list of status line header structures sip_status_t.
The function sip_status_copy() copies a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||||||
|
Create a status line object.
|
|
||||||||||||
|
Duplicate a list of status line header structures sip_status_t.
Duplicate a header structure hdr. If the header structure hdr contains a reference (
|
|
||||||||||||||||
|
Make a status line from formatting result. Make a new sip_status_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_status_t.
|
|
|
Initialize a structure sip_status_t. An sip_status_t structure for status line can be initialized with the sip_status_init() function/macro. For instance, |
|
||||||||||||
|
Make a status line structure sip_status_t. The function sip_status_make() makes a new sip_status_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
|
|
|
Header class for status line. The header class sip_status_class defines how a SIP status line is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_status_t header structure. |