21 #ifndef _OSIP_PARSER_H_
22 #define _OSIP_PARSER_H_
86 #define osip_message_set_accept(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Accept",value)
97 #define osip_message_get_accept(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"accept",pos,(osip_header_t **)dest)
107 #define osip_message_set_accept_encoding(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Accept-Encoding",value)
118 #define osip_message_get_accept_encoding(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"accept-encoding",pos,(osip_header_t **)dest)
128 #define osip_message_set_accept_language(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Accept-Language",value)
139 #define osip_message_get_accept_language(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"accept-language",pos,(osip_header_t **)dest)
149 #define osip_message_set_alert_info(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Alert-Info",value)
160 #define osip_message_get_alert_info(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"alert-info",pos,(osip_header_t **)dest)
170 #define osip_message_set_allow(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Allow",value)
181 #define osip_message_get_allow(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"allow",pos,(osip_header_t **)dest)
191 #define osip_message_set_authentication_info(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Authentication-Info",value)
202 #define osip_message_get_authentication_info(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"authentication-info",pos,(osip_header_t **)dest)
219 #define osip_message_get_authorization(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->authorizations), pos, (void **)(dest))
234 #define osip_message_get_call_id(sip) ((sip)->call_id)
264 #define osip_message_get_contact(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->contacts), pos, (void **)(dest))
274 #define osip_message_set_content_encoding(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Content-Encoding",value)
285 #define osip_message_get_content_encoding(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"content-encoding",pos,(osip_header_t **)dest)
300 #define osip_message_get_content_length(sip) ((sip)->content_length)
315 #define osip_message_get_content_type(sip) ((sip)->content_type)
330 #define osip_message_get_cseq(sip) ((sip)->cseq)
340 #define osip_message_set_error_info(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Error-Info",value)
351 #define osip_message_get_error_info(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"error-info",pos,(osip_header_t **)dest)
366 #define osip_message_get_from(sip) ((sip)->from)
381 #define osip_message_get_mime_version(sip) ((sip)->mime_version)
398 #define osip_message_get_proxy_authenticate(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->proxy_authenticates), pos, (void **)(dest))
415 #define osip_message_get_proxy_authorization(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->proxy_authorizations), pos, (void **)(dest))
425 #define osip_message_set_proxy_authentication_info(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Proxy-Authentication-Info",value)
436 #define osip_message_get_proxy_authentication_info(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"proxy-authentication-info",pos,(osip_header_t **)dest)
453 #define osip_message_get_record_route(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->record_routes), pos, (void **)(dest))
470 #define osip_message_get_route(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->routes), pos, (void **)(dest))
485 #define osip_message_get_to(sip) ((sip)->to)
508 #define osip_message_get_via(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->vias), pos, (void **)(dest))
525 #define osip_message_get_www_authenticate(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->www_authenticates), pos, (void **)(dest))
577 #define osip_message_get_header(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->headers), pos, (void **)(dest))
602 #define osip_message_get_body(sip, pos, dest) osip_message_get_knownheaderlist((&(sip)->bodies), pos, (void **)(dest))
613 #define msg_logrequest(P,Q) ;
614 #define msg_logresponse(P,Q) ;
623 #define osip_message_set_date(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Date",value)
630 #define osip_message_get_date(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"date",pos,(osip_header_t **)dest)
636 #define osip_message_set_encryption(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Encryption",value)
643 #define osip_message_get_encryption(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"encryption",pos,(osip_header_t **)dest)
649 #define osip_message_set_organization(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Organization",value)
656 #define osip_message_get_organization(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"organization",pos,(osip_header_t **)dest)
662 #define osip_message_set_require(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Require",value)
669 #define osip_message_get_require(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"require",pos,(osip_header_t **)dest)
675 #define osip_message_set_supported(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Supported",value)
682 #define osip_message_get_supported(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"supported",pos,(osip_header_t **)dest)
688 #define osip_message_set_timestamp(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Timestamp",value)
695 #define osip_message_get_timestamp(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"timestamp",pos,(osip_header_t **)dest)
701 #define osip_message_set_user_agent(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"User-Agent",value)
708 #define osip_message_get_user_agent(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"user-agent",pos,(osip_header_t **)dest)
714 #define osip_message_set_content_language(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Content-Language",value)
721 #define osip_message_get_content_language(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"content-language",pos,(osip_header_t **)dest)
727 #define osip_message_set_expires(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Expires",value)
734 #define osip_message_get_expires(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"expires",pos,(osip_header_t **)dest)
740 #define osip_message_set_in_reply_to(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"In-Reply-To",value)
747 #define osip_message_get_in_reply_to(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"in-reply-to",pos,(osip_header_t **)dest)
753 #define osip_message_set_max_forwards(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Max-Forwards",value)
760 #define osip_message_get_max_forwards(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"max-forwards",pos,(osip_header_t **)dest)
766 #define osip_message_set_priority(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Priority",value)
773 #define osip_message_get_priority(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"priority",pos,(osip_header_t **)dest)
779 #define osip_message_set_proxy_require(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Proxy-Require",value)
786 #define osip_message_get_proxy_require(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"proxy-require",pos,(osip_header_t **)dest)
792 #define osip_message_set_response_key(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Response-Key",value)
799 #define osip_message_get_response_key(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"response-key",pos,(osip_header_t **)dest)
805 #define osip_message_set_subject(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Subject",value)
812 #define osip_message_get_subject(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"subject",pos,(osip_header_t **)dest)
818 #define osip_message_set_retry_after(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Retry-After",value)
825 #define osip_message_get_retry_after(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"retry-after",pos,(osip_header_t **)dest)
831 #define osip_message_set_server(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Server",value)
838 #define osip_message_get_server(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"server",pos,(osip_header_t **)dest)
844 #define osip_message_set_unsupported(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Unsupported",value)
851 #define osip_message_get_unsupported(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"unsupported",pos,(osip_header_t **)dest)
857 #define osip_message_set_warning(sip,value) osip_message_set_header((osip_message_t *)sip,(const char *)"Warning",value)
864 #define osip_message_get_warning(sip,pos,dest) osip_message_header_get_byname(( osip_message_t *)sip,(const char *)"warning",pos,(osip_header_t **)dest)
int osip_message_set_accept(osip_message_t *sip, const char *hvalue)
Set the Accept header.
Structure for SIP Message (REQUEST and RESPONSE).
osip_content_length_t * osip_message_get_content_length(const osip_message_t *sip)
Get one Content-length header.
Definition of the CSeq header.
int osip_message_get_proxy_authenticate(const osip_message_t *sip, int pos, osip_proxy_authenticate_t **dest)
Get the Proxy-authenticate header.
osip_from_t * osip_message_get_from(const osip_message_t *sip)
Get the From header.
int osip_message_set_proxy_authorization(osip_message_t *sip, const char *hvalue)
Set the Proxy-authorization header.
osip_cseq_t * osip_message_get_cseq(const osip_message_t *sip)
Get one Cseq header.
Definition of the Content-Length header.
int osip_message_get_allow(const osip_message_t *sip, int pos, osip_allow_t **dest)
Get one Allow header.
osip_to_t * osip_message_get_to(const osip_message_t *sip)
Get the To header.
int osip_message_get_content_encoding(const osip_message_t *sip, int pos, osip_content_encoding_t **dest)
Get one Content-encoding header.
Structure for holding Body.
int osip_message_set_content_type(osip_message_t *sip, const char *hvalue)
Set the Content-type header.
int osip_message_get_proxy_authorization(const osip_message_t *sip, int pos, osip_proxy_authorization_t **dest)
Get one Proxy-authorization header.
int osip_message_get_via(const osip_message_t *sip, int pos, osip_via_t **dest)
Get one Via header.
int osip_message_get_accept_encoding(const osip_message_t *sip, int pos, osip_accept_encoding_t **dest)
Get one Accept-encoding header.
osip_call_id_t * osip_message_get_call_id(const osip_message_t *sip)
Get one Call-id header.
int osip_message_header_get_byname(const osip_message_t *sip, const char *hname, int pos, osip_header_t **dest)
Find an "unknown" header.
#define msg_logrequest(P, Q)
int osip_message_set_header(osip_message_t *sip, const char *hname, const char *hvalue)
Allocate and Add an "unknown" header (not defined in oSIP).
int osip_message_set_content_length(osip_message_t *sip, const char *hvalue)
Set the Content-length header.
Definition of the Content-Type header.
osip_content_type_t * osip_message_get_content_type(const osip_message_t *sip)
Get one Content-type header.
int osip_message_set_via(osip_message_t *sip, const char *hvalue)
Set the Via header.
int osip_message_set_mime_version(osip_message_t *sip, const char *hvalue)
Set the mime-version header.
Definition of the Call-Info header.
Definition of the Authentication-Info header.
int osip_message_set_www_authenticate(osip_message_t *sip, const char *hvalue)
Set the Www-authenticate header.
int osip_message_set_topheader(osip_message_t *sip, const char *hname, const char *hvalue)
Allocate and Add an "unknown" header (not defined in oSIP).
int osip_message_get_alert_info(const osip_message_t *sip, int pos, osip_alert_info_t **dest)
Get one Alert-info header.
int osip_message_set_to(osip_message_t *sip, const char *hvalue)
Set the To header.
Definition of the Accept-Encoding header.
int osip_message_set_content_encoding(osip_message_t *sip, const char *hvalue)
Set the Content-encoding header.
int osip_message_set_accept_language(osip_message_t *sip, const char *hvalue)
Set the Accept-language header.
int osip_message_set_authorization(osip_message_t *sip, const char *hvalue)
Set the Authorization header.
int osip_message_set_proxy_authenticate(osip_message_t *sip, const char *hvalue)
Set the Proxy-authenticate header.
int parser_init(void)
Initialise the oSIP parser.
int osip_message_set_error_info(osip_message_t *sip, const char *hvalue)
Set the Error-info header.
int osip_message_set_call_info(osip_message_t *sip, const char *hvalue)
Set the Call-info header.
int osip_message_append_via(osip_message_t *sip, const char *hvalue)
Append a Via header.
#define msg_logresponse(P, Q)
int osip_message_set_authentication_info(osip_message_t *sip, const char *hvalue)
Set the Authentication-info header.
const char * osip_message_get_reason(int status_code)
Get the usual reason phrase as defined in SIP for a specific status code.
int osip_message_set_accept_encoding(osip_message_t *sip, const char *hvalue)
Set the Accept-encoding header.
int osip_message_get_accept(const osip_message_t *sip, int pos, osip_accept_t **dest)
Get one Accept header.
Definition of the From header.
int osip_message_get_www_authenticate(const osip_message_t *sip, int pos, osip_www_authenticate_t **dest)
Get one Www-authenticate header.
int osip_message_get_error_info(const osip_message_t *sip, int pos, osip_error_info_t **dest)
Get one Error-info header.
int osip_message_replace_header(osip_message_t *sip, const char *hname, const char *hvalue)
Allocate and Add/Replace an "unknown" header (not defined in oSIP).
int osip_message_get_contact(const osip_message_t *sip, int pos, osip_contact_t **dest)
Get one Contact header.
int osip_message_set_alert_info(osip_message_t *sip, const char *hvalue)
Set the Alert-info header.
int osip_message_force_update(osip_message_t *sip)
Force a osip_message_t element to be rebuild on next osip_message_to_str() call.
int osip_message_set_proxy_authentication_info(osip_message_t *sip, const char *hvalue)
Set the Proxy-authentication-info header.
oSIP SIP Message Accessor Routines
int osip_message_get_accept_language(const osip_message_t *sip, int pos, osip_accept_language_t **dest)
Get one Accept-Language header.
int osip_message_set_body_mime(osip_message_t *sip, const char *buf, size_t length)
Set the Body of the SIP message.
int osip_message_get_call_info(const osip_message_t *sip, int pos, osip_call_info_t **dest)
Get one Call-info header.
int osip_message_set_record_route(osip_message_t *sip, const char *hvalue)
Set the Record-Route header.
Definition of the Via header.
int osip_message_get_route(const osip_message_t *sip, int pos, osip_route_t **dest)
Get one Route header.
int osip_message_set_contact(osip_message_t *sip, const char *hvalue)
Set the Contact header.
int osip_message_set_call_id(osip_message_t *sip, const char *hvalue)
Set the Call-id header.
int osip_message_get_proxy_authentication_info(const osip_message_t *sip, int pos, osip_proxy_authentication_info_t **dest)
Get the Proxy-authentication-info header.
int osip_message_get_authentication_info(const osip_message_t *sip, int pos, osip_authentication_info_t **dest)
Get one Authentication-info header.
Definition of the Authorization header.
int osip_message_get__property(const osip_message_t *sip)
define this macro to avoid building several times the message on retransmissions. ...
Definition of the Call-Id header.
int osip_message_get_header(const osip_message_t *sip, int pos, osip_header_t **dest)
Get one "unknown" header.
int osip_message_set_from(osip_message_t *sip, const char *hvalue)
Set the From header.
int osip_message_set_route(osip_message_t *sip, const char *hvalue)
Set the Route header.
int osip_message_set_allow(osip_message_t *sip, const char *hvalue)
Set the Allow header.
osip_mime_version_t * osip_message_get_mime_version(const osip_message_t *sip)
Get the Mime-version header.
int osip_message_get_body(const osip_message_t *sip, int pos, osip_body_t **dest)
Get one body header.
int osip_message_set_multiple_header(osip_message_t *sip, char *hname, char *hvalue)
Allocate and Add multiple header (not defined in oSIP).
Definition of the WWW-Authenticate header.
int osip_message_get_record_route(const osip_message_t *sip, int pos, osip_record_route_t **dest)
Get one Record-route header.
int osip_message_get_authorization(const osip_message_t *sip, int pos, osip_authorization_t **dest)
Get one Authorization header.
int osip_message_set_body(osip_message_t *sip, const char *buf, size_t length)
Set the Body of the SIP message.
int osip_message_set_cseq(osip_message_t *sip, const char *hvalue)
Set the Cseq header.
int osip_message_fix_last_via_header(osip_message_t *request, const char *ip_addr, int port)
Fix the via header for INCOMING requests only.