libosip
5.3.0
|
Classes | |
struct | osip_message |
Macros | |
#define | SIP_MESSAGE_MAX_LENGTH 8000 |
#define | BODY_MESSAGE_MAX_SIZE 4000 |
#define | MSG_IS_RESPONSE(msg) ((msg)->status_code != 0) |
#define | MSG_IS_REQUEST(msg) ((msg)->status_code == 0) |
#define | MSG_IS_INVITE(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "INVITE")) |
#define | MSG_IS_ACK(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "ACK")) |
#define | MSG_IS_REGISTER(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "REGISTER")) |
#define | MSG_IS_BYE(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "BYE")) |
#define | MSG_IS_OPTIONS(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "OPTIONS")) |
#define | MSG_IS_INFO(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "INFO")) |
#define | MSG_IS_CANCEL(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "CANCEL")) |
#define | MSG_IS_REFER(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "REFER")) |
#define | MSG_IS_NOTIFY(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "NOTIFY")) |
#define | MSG_IS_SUBSCRIBE(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "SUBSCRIBE")) |
#define | MSG_IS_MESSAGE(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "MESSAGE")) |
#define | MSG_IS_PRACK(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "PRACK")) |
#define | MSG_IS_UPDATE(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "UPDATE")) |
#define | MSG_IS_PUBLISH(msg) (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "PUBLISH")) |
#define | MSG_IS_STATUS_1XX(msg) ((msg)->status_code >= 100 && (msg)->status_code < 200) |
#define | MSG_IS_STATUS_2XX(msg) ((msg)->status_code >= 200 && (msg)->status_code < 300) |
#define | MSG_IS_STATUS_3XX(msg) ((msg)->status_code >= 300 && (msg)->status_code < 400) |
#define | MSG_IS_STATUS_4XX(msg) ((msg)->status_code >= 400 && (msg)->status_code < 500) |
#define | MSG_IS_STATUS_5XX(msg) ((msg)->status_code >= 500 && (msg)->status_code < 600) |
#define | MSG_IS_STATUS_6XX(msg) ((msg)->status_code >= 600 && (msg)->status_code < 700) |
#define | MSG_TEST_CODE(msg, code) (MSG_IS_RESPONSE(msg) && (code) == (msg)->status_code) |
#define | MSG_IS_RESPONSE_FOR(msg, requestname) (MSG_IS_RESPONSE(msg) && 0 == strcmp((msg)->cseq->method, (requestname))) |
#define | osip_generic_param_init(GP) osip_uri_param_init(GP) |
#define | osip_generic_param_free(GP) osip_uri_param_free(GP) |
#define | osip_generic_param_set(GP, NAME, VALUE) osip_uri_param_set(GP, NAME, VALUE) |
#define | osip_generic_param_clone osip_uri_param_clone |
#define | osip_generic_param_add(LIST, NAME, VALUE) osip_uri_param_add(LIST, NAME, VALUE) |
#define | osip_generic_param_get_byname(LIST, NAME, DEST) osip_uri_param_get_byname(LIST, NAME, DEST) |
Typedefs | |
typedef struct osip_message | osip_message_t |
#define BODY_MESSAGE_MAX_SIZE 4000 |
You can define the maximum length for a body inside a SIP message.
#define MSG_IS_ACK | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "ACK")) |
Test if the message is an ACK REQUEST
msg | the SIP message. |
#define MSG_IS_BYE | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "BYE")) |
Test if the message is a BYE REQUEST
msg | the SIP message. |
#define MSG_IS_CANCEL | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "CANCEL")) |
Test if the message is a CANCEL REQUEST
msg | the SIP message. |
#define MSG_IS_INFO | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "INFO")) |
Test if the message is an INFO REQUEST
msg | the SIP message. |
#define MSG_IS_INVITE | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "INVITE")) |
Test if the message is an INVITE REQUEST
msg | the SIP message. |
#define MSG_IS_MESSAGE | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "MESSAGE")) |
Test if the message is a MESSAGE REQUEST
msg | the SIP message. |
#define MSG_IS_NOTIFY | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "NOTIFY")) |
Test if the message is a NOTIFY REQUEST
msg | the SIP message. |
#define MSG_IS_OPTIONS | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "OPTIONS")) |
Test if the message is an OPTIONS REQUEST
msg | the SIP message. |
#define MSG_IS_PRACK | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "PRACK")) |
Test if the message is a PRACK REQUEST (!! PRACK IS NOT SUPPORTED by the fsm!!)
msg | the SIP message. |
#define MSG_IS_PUBLISH | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "PUBLISH")) |
Test if the message is an UPDATE REQUEST
msg | the SIP message. |
#define MSG_IS_REFER | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "REFER")) |
Test if the message is a REFER REQUEST
msg | the SIP message. |
#define MSG_IS_REGISTER | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "REGISTER")) |
Test if the message is a REGISTER REQUEST
msg | the SIP message. |
#define MSG_IS_REQUEST | ( | msg | ) | ((msg)->status_code == 0) |
Test if the message is a SIP REQUEST
msg | the SIP message. |
#define MSG_IS_RESPONSE | ( | msg | ) | ((msg)->status_code != 0) |
Test if the message is a SIP RESPONSE
msg | the SIP message. |
#define MSG_IS_RESPONSE_FOR | ( | msg, | |
requestname | |||
) | (MSG_IS_RESPONSE(msg) && 0 == strcmp((msg)->cseq->method, (requestname))) |
Test if the message is a response for a REQUEST of certain type
msg | the SIP message. |
requestname | the method name to match. |
#define MSG_IS_STATUS_1XX | ( | msg | ) | ((msg)->status_code >= 100 && (msg)->status_code < 200) |
Test if the message is a response with status between 100 and 199
msg | the SIP message. |
#define MSG_IS_STATUS_2XX | ( | msg | ) | ((msg)->status_code >= 200 && (msg)->status_code < 300) |
Test if the message is a response with status between 200 and 299
msg | the SIP message. |
#define MSG_IS_STATUS_3XX | ( | msg | ) | ((msg)->status_code >= 300 && (msg)->status_code < 400) |
Test if the message is a response with status between 300 and 399
msg | the SIP message. |
#define MSG_IS_STATUS_4XX | ( | msg | ) | ((msg)->status_code >= 400 && (msg)->status_code < 500) |
Test if the message is a response with status between 400 and 499
msg | the SIP message. |
#define MSG_IS_STATUS_5XX | ( | msg | ) | ((msg)->status_code >= 500 && (msg)->status_code < 600) |
Test if the message is a response with status between 500 and 599
msg | the SIP message. |
#define MSG_IS_STATUS_6XX | ( | msg | ) | ((msg)->status_code >= 600 && (msg)->status_code < 700) |
Test if the message is a response with status between 600 and 699
msg | the SIP message. |
#define MSG_IS_SUBSCRIBE | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "SUBSCRIBE")) |
Test if the message is a SUBSCRIBE REQUEST
msg | the SIP message. |
#define MSG_IS_UPDATE | ( | msg | ) | (MSG_IS_REQUEST(msg) && 0 == strcmp((msg)->sip_method, "UPDATE")) |
Test if the message is an UPDATE REQUEST
msg | the SIP message. |
#define MSG_TEST_CODE | ( | msg, | |
code | |||
) | (MSG_IS_RESPONSE(msg) && (code) == (msg)->status_code) |
Test if the message is a response with a status set to the code value.
msg | the SIP message. |
code | the status code. |
#define osip_generic_param_add | ( | LIST, | |
NAME, | |||
VALUE | |||
) | osip_uri_param_add(LIST, NAME, VALUE) |
Allocate and add a generic parameter element in a list.
LIST | The list of generic parameter element to work on. |
NAME | The token name. |
VALUE | The token value. |
#define osip_generic_param_clone osip_uri_param_clone |
Clone a generic parameter element.
GP | The element to work on. |
DEST | The resulting new allocated buffer. |
#define osip_generic_param_free | ( | GP | ) | osip_uri_param_free(GP) |
Free a generic parameter element.
GP | The element to work on. |
#define osip_generic_param_get_byname | ( | LIST, | |
NAME, | |||
DEST | |||
) | osip_uri_param_get_byname(LIST, NAME, DEST) |
Find in a generic parameter element in a list.
LIST | The list of generic parameter element to work on. |
NAME | The name of the parameter element to find. |
DEST | A pointer on the element found. |
#define osip_generic_param_init | ( | GP | ) | osip_uri_param_init(GP) |
Allocate a generic parameter element.
GP | The element to work on. |
#define osip_generic_param_set | ( | GP, | |
NAME, | |||
VALUE | |||
) | osip_uri_param_set(GP, NAME, VALUE) |
Set values of a generic parameter element.
GP | The element to work on. |
NAME | The token name. |
VALUE | The token value. |
#define SIP_MESSAGE_MAX_LENGTH 8000 |
You can re-define your own maximum length for SIP message.
Structure for SIP Message (REQUEST and RESPONSE).
char* osip_generic_param_get_name | ( | const osip_generic_param_t * | generic_param | ) |
Get the name of a generic parameter element.
generic_param | The element to work on. |
References osip_uri_param::gname.
char* osip_generic_param_get_value | ( | const osip_generic_param_t * | generic_param | ) |
Get the value of a generic parameter element.
generic_param | The element to work on. |
References osip_uri_param::gname, and osip_uri_param::gvalue.
void osip_generic_param_set_name | ( | osip_generic_param_t * | generic_param, |
char * | name | ||
) |
Set the name of a generic parameter element.
generic_param | The element to work on. |
name | the token name to set. |
References osip_uri_param::gname.
void osip_generic_param_set_value | ( | osip_generic_param_t * | generic_param, |
char * | value | ||
) |
Set the value of a generic parameter element.
generic_param | The element to work on. |
value | the token name to set. |
References osip_uri_param::gvalue.
int osip_message_clone | ( | const osip_message_t * | sip, |
osip_message_t ** | dest | ||
) |
Clone a osip_message_t element.
sip | The element to clone. |
dest | The new allocated element cloned. |
References osip_message::accept_encodings, osip_message::accept_languages, osip_message::accepts, osip_message::alert_infos, osip_message::allows, osip_message::application_data, osip_message::authentication_infos, osip_message::authorizations, osip_message::bodies, osip_message::call_id, osip_message::call_infos, osip_message::contacts, osip_message::content_encodings, osip_message::content_length, osip_message::content_type, osip_message::cseq, osip_message::error_infos, osip_message::from, osip_message::headers, osip_message::message, osip_message::message_length, osip_message::message_property, osip_message::mime_version, osip_accept_clone, osip_accept_encoding_clone(), osip_accept_language_clone, osip_alert_info_clone, osip_allow_clone, osip_authentication_info_clone(), osip_authorization_clone(), osip_body_clone(), osip_call_id_clone(), osip_call_info_clone(), osip_contact_clone(), osip_content_encoding_clone, osip_content_length_clone(), osip_content_type_clone(), osip_cseq_clone(), osip_error_info_clone, osip_from_clone(), osip_header_clone(), osip_list_clone(), osip_message_free(), osip_message_init(), osip_mime_version_clone, osip_proxy_authenticate_clone, osip_proxy_authentication_info_clone, osip_proxy_authorization_clone, osip_record_route_clone, osip_route_clone, osip_to_clone(), osip_uri_clone(), osip_via_clone(), osip_www_authenticate_clone(), osip_message::proxy_authenticates, osip_message::proxy_authentication_infos, osip_message::proxy_authorizations, osip_message::reason_phrase, osip_message::record_routes, osip_message::req_uri, osip_message::routes, osip_message::sip_method, osip_message::sip_version, osip_message::status_code, osip_message::to, osip_message::vias, and osip_message::www_authenticates.
Referenced by osip_start_200ok_retransmissions(), and osip_start_ack_retransmissions().
void osip_message_free | ( | osip_message_t * | sip | ) |
Free all resource in a osip_message_t element.
sip | The element to free. |
References osip_message::accept_encodings, osip_message::accept_languages, osip_message::accepts, osip_message::alert_infos, osip_message::allows, osip_message::authentication_infos, osip_message::authorizations, osip_message::bodies, osip_message::call_id, osip_message::call_infos, osip_message::contacts, osip_message::content_encodings, osip_message::content_length, osip_message::content_type, osip_message::cseq, osip_message::error_infos, osip_message::from, osip_message::headers, osip_message::message, osip_message::mime_version, osip_accept_encoding_free(), osip_accept_free, osip_accept_language_free, osip_alert_info_free, osip_allow_free, osip_authentication_info_free(), osip_authorization_free(), osip_body_free(), osip_call_id_free(), osip_call_info_free(), osip_contact_free(), osip_content_encoding_free, osip_content_length_free(), osip_content_type_free(), osip_cseq_free(), osip_error_info_free, osip_from_free(), osip_header_free(), osip_list_special_free(), osip_mime_version_free, osip_proxy_authenticate_free, osip_proxy_authentication_info_free, osip_proxy_authorization_free, osip_record_route_free(), osip_route_free(), osip_to_free(), osip_uri_free(), osip_via_free(), osip_www_authenticate_free(), osip_message::proxy_authenticates, osip_message::proxy_authentication_infos, osip_message::proxy_authorizations, osip_message::reason_phrase, osip_message::record_routes, osip_message::req_uri, osip_message::routes, osip_message::sip_method, osip_message::sip_version, osip_message::to, osip_message::vias, and osip_message::www_authenticates.
Referenced by osip_event_free(), osip_message_clone(), osip_parse(), osip_transaction_execute(), and osip_transaction_free2().
int osip_message_get_knownheaderlist | ( | osip_list_t * | header_list, |
int | pos, | ||
void ** | dest | ||
) |
Get the a known header from a list of known header.
header_list | The element to work on. |
pos | The index of the element to get. |
dest | A pointer on the header found. |
References osip_list_get(), and osip_list_size().
char* osip_message_get_method | ( | const osip_message_t * | sip | ) |
char* osip_message_get_reason_phrase | ( | const osip_message_t * | sip | ) |
Get the reason phrase. This is entirely free in SIP.
sip | The element to work on. |
References osip_message::reason_phrase.
int osip_message_get_status_code | ( | const osip_message_t * | sip | ) |
osip_uri_t* osip_message_get_uri | ( | const osip_message_t * | sip | ) |
char* osip_message_get_version | ( | const osip_message_t * | sip | ) |
int osip_message_init | ( | osip_message_t ** | sip | ) |
Allocate a osip_message_t element.
sip | The element to allocate. |
References osip_list_init().
Referenced by osip_message_clone(), and osip_parse().
int osip_message_parse | ( | osip_message_t * | sip, |
const char * | buf, | ||
size_t | length | ||
) |
Parse a osip_message_t element.
sip | The resulting element. |
buf | The buffer to parse. |
length | The length of the buffer to parse. |
Referenced by osip_parse().
int osip_message_parse_sipfrag | ( | osip_message_t * | sip, |
const char * | buf, | ||
size_t | length | ||
) |
Parse a message/sipfrag part and store it in an osip_message_t element.
sip | The resulting element. |
buf | The buffer to parse. |
length | The length of the buffer to parse. |
void osip_message_set_method | ( | osip_message_t * | sip, |
char * | method | ||
) |
Set the method. You can set any string here.
sip | The element to work on. |
method | The method name. |
References osip_message::sip_method.
void osip_message_set_reason_phrase | ( | osip_message_t * | sip, |
char * | reason | ||
) |
Set the reason phrase. This is entirely free in SIP.
sip | The element to work on. |
reason | The reason phrase. |
References osip_message::reason_phrase.
void osip_message_set_status_code | ( | osip_message_t * | sip, |
int | statuscode | ||
) |
Set the status code. This is entirely free in SIP.
sip | The element to work on. |
statuscode | The status code. |
References osip_message::status_code.
void osip_message_set_uri | ( | osip_message_t * | sip, |
osip_uri_t * | uri | ||
) |
Set the Request-URI.
sip | The element to work on. |
uri | The uri to set. |
References osip_message::req_uri.
void osip_message_set_version | ( | osip_message_t * | sip, |
char * | version | ||
) |
Set the SIP version used. (default is "SIP/2.0")
sip | The element to work on. |
version | The version of SIP. |
References osip_message::sip_version.
int osip_message_to_str | ( | osip_message_t * | sip, |
char ** | dest, | ||
size_t * | message_length | ||
) |
Get a string representation of a osip_message_t element. NOTE: You need to release the sip buffer returned by this API when you are done with the buffer. ie: osip_free(dest)
sip | The element to work on. |
dest | new allocated buffer returned. |
message_length | The length of the returned buffer. |
int osip_message_to_str_sipfrag | ( | osip_message_t * | sip, |
char ** | dest, | ||
size_t * | message_length | ||
) |
Get a string representation of a message/sipfrag part stored in an osip_message_t element. NOTE: You need to release the sip buffer returned by this API when you are done with the buffer. ie: osip_free(dest)
sip | The element to work on. |
dest | new allocated buffer returned. |
message_length | The length of the returned buffer. |