libosip  5.3.0
Classes | Macros | Typedefs | Functions
oSIP url parser Handling

Classes

struct  osip_uri_param
 
struct  osip_uri
 

Macros

#define osip_uri_header_init(url_header)   osip_uri_param_init(url_header)
 
#define osip_uri_header_free(url_header)   osip_uri_param_free(url_header)
 
#define osip_uri_header_set(url_header, name, value)   osip_uri_param_set(url_header, name, value)
 
#define osip_uri_header_clone(url_header, dest)   osip_uri_param_clone(url_header, dest)
 
#define osip_uri_header_add(url_headers, name, value)   osip_uri_param_add(url_headers, name, value)
 
#define osip_uri_header_get_byname(url_headers, name, dest)   osip_uri_param_get_byname(url_headers, name, dest)
 
#define osip_uri_set_transport_udp(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("udp"))
 
#define osip_uri_set_transport_tcp(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("tcp"))
 
#define osip_uri_set_transport_sctp(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("sctp"))
 
#define osip_uri_set_transport_tls(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("tls"))
 
#define osip_uri_set_transport(url, value)   osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), value)
 
#define osip_uri_set_user_phone(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("user"), osip_strdup("phone"))
 
#define osip_uri_set_user_ip(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("user"), osip_strdup("ip"))
 
#define osip_uri_set_method_invite(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("INVITE"))
 
#define osip_uri_set_method_ack(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("ACK"))
 
#define osip_uri_set_method_options(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("OPTIONS"))
 
#define osip_uri_set_method_bye(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("BYE"))
 
#define osip_uri_set_method_cancel(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("CANCEL"))
 
#define osip_uri_set_method_register(url)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("REGISTER"))
 
#define osip_uri_set_method(url, value)   osip_uri_param_add((&(url)->url_params), osip_strdup("method"), value)
 
#define osip_uri_set_ttl(url, value)   osip_uri_param_add((&(url)->url_params), osip_strdup("ttl"), value)
 
#define osip_uri_set_maddr(url, value)   osip_uri_param_add((&(url)->url_params), osip_strdup("maddr"), value)
 
#define osip_uri_uparam_add(url, name, value)   osip_uri_param_add((&(url)->url_params), name, value)
 
#define osip_uri_uparam_get_byname(url, name, dest)   osip_uri_param_get_byname((&(url)->url_params), name, dest)
 
#define osip_uri_uheader_add(url, name, value)   osip_uri_header_add((&(url)->url_headers), name, value)
 
#define osip_uri_uheader_get_byname(url, name, dest)   osip_uri_header_get_byname((&(url)->url_headers), name, dest)
 

Typedefs

typedef struct osip_uri_param osip_uri_param_t
 
typedef osip_uri_param_t osip_uri_header_t
 
typedef struct osip_uri osip_uri_t
 

Functions

int osip_uri_param_init (osip_uri_param_t **url_param)
 
void osip_uri_param_free (osip_uri_param_t *url_param)
 
int osip_uri_param_set (osip_uri_param_t *url_param, char *name, char *value)
 
int osip_uri_param_clone (const osip_uri_param_t *url_param, osip_uri_param_t **dest)
 
int osip_uri_param_add (osip_list_t *url_params, char *name, char *value)
 
int osip_uri_param_get_byname (osip_list_t *url_params, char *name, osip_uri_param_t **dest)
 
int osip_uri_init (osip_uri_t **url)
 
void osip_uri_free (osip_uri_t *url)
 
int osip_uri_parse (osip_uri_t *url, const char *buf)
 
int osip_uri_to_str (const osip_uri_t *url, char **dest)
 
int osip_uri_clone (const osip_uri_t *url, osip_uri_t **dest)
 
int osip_uri_to_str_canonical (const osip_uri_t *url, char **dest)
 
void osip_uri_set_scheme (osip_uri_t *url, char *value)
 
char * osip_uri_get_scheme (osip_uri_t *url)
 
void osip_uri_set_host (osip_uri_t *url, char *value)
 
char * osip_uri_get_host (osip_uri_t *url)
 
void osip_uri_set_username (osip_uri_t *url, char *value)
 
char * osip_uri_get_username (osip_uri_t *url)
 
void osip_uri_set_password (osip_uri_t *url, char *value)
 
char * osip_uri_get_password (osip_uri_t *url)
 
void osip_uri_set_port (osip_uri_t *url, char *value)
 
char * osip_uri_get_port (osip_uri_t *url)
 

Detailed Description

Macro Definition Documentation

◆ osip_uri_header_add

#define osip_uri_header_add (   url_headers,
  name,
  value 
)    osip_uri_param_add(url_headers, name, value)

Allocate and add a generic parameter element in a list.

Parameters
url_headersThe list of generic parameter element to work on.
nameThe token name.
valueThe token value.

◆ osip_uri_header_clone

#define osip_uri_header_clone (   url_header,
  dest 
)    osip_uri_param_clone(url_header, dest)

Clone a generic parameter element.

Parameters
url_headerThe element to work on.
destThe resulting new allocated element.

◆ osip_uri_header_free

#define osip_uri_header_free (   url_header)    osip_uri_param_free(url_header)

Free a generic parameter element.

Parameters
url_headerThe element to work on.

◆ osip_uri_header_get_byname

#define osip_uri_header_get_byname (   url_headers,
  name,
  dest 
)    osip_uri_param_get_byname(url_headers, name, dest)

Find in a generic parameter element in a list.

Parameters
url_headersThe list of generic parameter element to work on.
nameThe name of the parameter element to find.
destA pointer on the element found.

◆ osip_uri_header_init

#define osip_uri_header_init (   url_header)    osip_uri_param_init(url_header)

Allocate a generic parameter element.

Parameters
url_headerThe element to work on.

◆ osip_uri_header_set

#define osip_uri_header_set (   url_header,
  name,
  value 
)    osip_uri_param_set(url_header, name, value)

Set values of a generic parameter element.

Parameters
url_headerThe element to work on.
nameThe token name.
valueThe token value.

◆ osip_uri_set_maddr

#define osip_uri_set_maddr (   url,
  value 
)    osip_uri_param_add((&(url)->url_params), osip_strdup("maddr"), value)

Set a maddr parameter in a url element.

Parameters
urlThe element to work on.
valueThe value for the maddr parameter.

◆ osip_uri_set_method

#define osip_uri_set_method (   url,
  value 
)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), value)

Set a method parameter in a url element.

Parameters
urlThe element to work on.
valueThe value for the method parameter.

◆ osip_uri_set_method_ack

#define osip_uri_set_method_ack (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("ACK"))

Set a method parameter to ACK in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_method_bye

#define osip_uri_set_method_bye (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("BYE"))

Set a method parameter to BYE in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_method_cancel

#define osip_uri_set_method_cancel (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("CANCEL"))

Set a method parameter to CANCEL in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_method_invite

#define osip_uri_set_method_invite (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("INVITE"))

Set a method parameter to INVITE in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_method_options

#define osip_uri_set_method_options (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("OPTIONS"))

Set a method parameter to OPTIONS in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_method_register

#define osip_uri_set_method_register (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("method"), osip_strdup("REGISTER"))

Set a method parameter to REGISTER in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_transport

#define osip_uri_set_transport (   url,
  value 
)    osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), value)

Set the transport parameter to TLS in a url element.

Parameters
urlThe element to work on.
valueThe value describing the transport protocol.

◆ osip_uri_set_transport_sctp

#define osip_uri_set_transport_sctp (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("sctp"))

Set the transport parameter to SCTP in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_transport_tcp

#define osip_uri_set_transport_tcp (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("tcp"))

Set the transport parameter to TCP in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_transport_tls

#define osip_uri_set_transport_tls (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("tls"))

Set the transport parameter to TLS in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_transport_udp

#define osip_uri_set_transport_udp (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("transport"), osip_strdup("udp"))

Set the transport parameter to UDP in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_ttl

#define osip_uri_set_ttl (   url,
  value 
)    osip_uri_param_add((&(url)->url_params), osip_strdup("ttl"), value)

Set a ttl parameter in a url element.

Parameters
urlThe element to work on.
valueThe value for the ttl parameter.

◆ osip_uri_set_user_ip

#define osip_uri_set_user_ip (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("user"), osip_strdup("ip"))

Set the user parameter to IP in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_set_user_phone

#define osip_uri_set_user_phone (   url)    osip_uri_param_add((&(url)->url_params), osip_strdup("user"), osip_strdup("phone"))

Set the user parameter to PHONE in a url element.

Parameters
urlThe element to work on.

◆ osip_uri_uheader_add

#define osip_uri_uheader_add (   url,
  name,
  value 
)    osip_uri_header_add((&(url)->url_headers), name, value)

Allocate and add a url header element in a url element.

Parameters
urlThe element to work on.
nameThe token name.
valueThe token value.

◆ osip_uri_uheader_get_byname

#define osip_uri_uheader_get_byname (   url,
  name,
  dest 
)    osip_uri_header_get_byname((&(url)->url_headers), name, dest)

Find in a url header element in a url element.

Parameters
urlThe element to work on.
nameThe name of the url header element to find.
destA pointer on the element found.

◆ osip_uri_uparam_add

#define osip_uri_uparam_add (   url,
  name,
  value 
)    osip_uri_param_add((&(url)->url_params), name, value)

Allocate and add a url parameter element in a url element.

Parameters
urlThe element to work on.
nameThe token name.
valueThe token value.

◆ osip_uri_uparam_get_byname

#define osip_uri_uparam_get_byname (   url,
  name,
  dest 
)    osip_uri_param_get_byname((&(url)->url_params), name, dest)

Find in a url parameter element in a url element.

Parameters
urlThe element to work on.
nameThe name of the url parameter element to find.
destA pointer on the element found.

Typedef Documentation

◆ osip_uri_header_t

Structure for referencing url headers.

◆ osip_uri_param_t

Structure for referencing url parameters.

◆ osip_uri_t

Structure for referencing SIP urls.

Function Documentation

◆ osip_uri_clone()

int osip_uri_clone ( const osip_uri_t url,
osip_uri_t **  dest 
)

Clone a url element.

Parameters
urlThe element to work on.
destThe resulting new allocated element.

References osip_uri::host, osip_list_clone(), osip_uri_free(), osip_uri_init(), osip_uri_param_clone(), osip_uri::password, osip_uri::port, osip_uri::scheme, osip_uri::string, osip_uri::url_headers, osip_uri::url_params, and osip_uri::username.

Referenced by osip_from_clone(), and osip_message_clone().

◆ osip_uri_free()

void osip_uri_free ( osip_uri_t url)

◆ osip_uri_get_host()

char* osip_uri_get_host ( osip_uri_t url)

Get the host of a url element.

Parameters
urlThe element to work on.

References osip_uri::host.

◆ osip_uri_get_password()

char* osip_uri_get_password ( osip_uri_t url)

Get the password of a url element.

Parameters
urlThe element to work on.

References osip_uri::password.

◆ osip_uri_get_port()

char* osip_uri_get_port ( osip_uri_t url)

Get the port of a url element.

Parameters
urlThe element to work on.

References osip_uri::port.

◆ osip_uri_get_scheme()

char* osip_uri_get_scheme ( osip_uri_t url)

Get the scheme of a url element.

Parameters
urlThe element to work on.

References osip_uri::scheme.

◆ osip_uri_get_username()

char* osip_uri_get_username ( osip_uri_t url)

Get the username of a url element.

Parameters
urlThe element to work on.

References osip_uri::username.

◆ osip_uri_init()

int osip_uri_init ( osip_uri_t **  url)

Allocate a url element.

Parameters
urlThe element to work on.

References osip_list_init().

Referenced by osip_from_parse(), and osip_uri_clone().

◆ osip_uri_param_add()

int osip_uri_param_add ( osip_list_t url_params,
char *  name,
char *  value 
)

Allocate and add a url parameter element in a list.

Parameters
url_paramsThe list of url parameter element to work on.
nameThe token name.
valueThe token value.

References osip_list_add(), osip_uri_param_free(), osip_uri_param_init(), and osip_uri_param_set().

◆ osip_uri_param_clone()

int osip_uri_param_clone ( const osip_uri_param_t url_param,
osip_uri_param_t **  dest 
)

Clone a url parameter element.

Parameters
url_paramThe element to work on.
destThe resulting new allocated element.

References osip_uri_param::gname, osip_uri_param::gvalue, and osip_uri_param_init().

Referenced by osip_uri_clone().

◆ osip_uri_param_free()

void osip_uri_param_free ( osip_uri_param_t url_param)

Free a url parameter element.

Parameters
url_paramThe element to work on.

References osip_uri_param::gname, and osip_uri_param::gvalue.

Referenced by osip_uri_param_add().

◆ osip_uri_param_get_byname()

int osip_uri_param_get_byname ( osip_list_t url_params,
char *  name,
osip_uri_param_t **  dest 
)

Find in a url parameter element in a list.

Parameters
url_paramsThe list of url parameter element to work on.
nameThe name of the parameter element to find.
destA pointer on the element found.

References osip_uri_param::gname, osip_list_get_first(), and osip_list_get_next().

Referenced by osip_dialog_match_as_uas().

◆ osip_uri_param_init()

int osip_uri_param_init ( osip_uri_param_t **  url_param)

Allocate a url parameter element.

Parameters
url_paramThe element to work on.

Referenced by osip_uri_param_add(), and osip_uri_param_clone().

◆ osip_uri_param_set()

int osip_uri_param_set ( osip_uri_param_t url_param,
char *  name,
char *  value 
)

Set values of a url parameter element.

Parameters
url_paramThe element to work on.
nameThe token name.
valueThe token value.

References osip_uri_param::gname, and osip_uri_param::gvalue.

Referenced by osip_uri_param_add().

◆ osip_uri_parse()

int osip_uri_parse ( osip_uri_t url,
const char *  buf 
)

Parse a url.

Parameters
urlThe element to work on.
bufThe buffer to parse.

References osip_uri::host, osip_uri::password, osip_uri::port, osip_uri::scheme, osip_uri::string, and osip_uri::username.

Referenced by osip_from_parse().

◆ osip_uri_set_host()

void osip_uri_set_host ( osip_uri_t url,
char *  value 
)

Set the host of a url element.

Parameters
urlThe element to work on.
valueThe token value.

References osip_uri::host.

◆ osip_uri_set_password()

void osip_uri_set_password ( osip_uri_t url,
char *  value 
)

Set the password of a url element.

Parameters
urlThe element to work on.
valueThe token value.

References osip_uri::password.

◆ osip_uri_set_port()

void osip_uri_set_port ( osip_uri_t url,
char *  value 
)

Set the port of a url element.

Parameters
urlThe element to work on.
valueThe token value.

References osip_uri::port.

◆ osip_uri_set_scheme()

void osip_uri_set_scheme ( osip_uri_t url,
char *  value 
)

Set the scheme of a url element.

Parameters
urlThe element to work on.
valueThe token value.

References osip_uri::scheme.

◆ osip_uri_set_username()

void osip_uri_set_username ( osip_uri_t url,
char *  value 
)

Set the username of a url element.

Parameters
urlThe element to work on.
valueThe token value.

References osip_uri::username.

◆ osip_uri_to_str()

int osip_uri_to_str ( const osip_uri_t url,
char **  dest 
)

◆ osip_uri_to_str_canonical()

int osip_uri_to_str_canonical ( const osip_uri_t url,
char **  dest 
)

Get a canonical string representation of a url element. as defined in 10.3-5

Parameters
urlThe element to work on.
destThe resulting new allocated buffer.

References osip_uri_to_str().