Managing proxies

## Typedefs

typedef struct _LinphoneProxyConfig | LinphoneProxyConfig

## Functions

int | linphone_core_set_primary_contact (LinphoneCore *lc, const char *contact)
const char * | linphone_core_get_primary_contact (LinphoneCore *lc)
void | linphone_core_set_guess_hostname (LinphoneCore *lc, bool_t val)
bool_t | linphone_core_get_guess_hostname (LinphoneCore *lc)
LinphoneAddress * | linphone_core_get_primary_contact_parsed (LinphoneCore *lc)
LinphoneProxyConfig * | linphone_proxy_config_new (void)
int | linphone_proxy_config_set_server_addr (LinphoneProxyConfig *obj, const char *server_addr)
int | linphone_proxy_config_set_identity (LinphoneProxyConfig *obj, const char *identity)
int | linphone_proxy_config_set_route (LinphoneProxyConfig *obj, const char *route)
void | linphone_proxy_config_expires (LinphoneProxyConfig *obj, int expires)
void | linphone_proxy_config_enable_register (LinphoneProxyConfig *obj, bool_t val)
void | linphone_proxy_config_edit (LinphoneProxyConfig *obj)
int | linphone_proxy_config_done (LinphoneProxyConfig *obj)
void | linphone_proxy_config_set_dial_escape_plus (LinphoneProxyConfig *cfg, bool_t val)
void | linphone_proxy_config_set_dial_prefix (LinphoneProxyConfig *cfg, const char *prefix)
bool_t | linphone_proxy_config_is_registered (const LinphoneProxyConfig *obj)
const char * | linphone_proxy_config_get_route (const LinphoneProxyConfig *obj)
const char * | linphone_proxy_config_get_identity (const LinphoneProxyConfig *obj)
bool_t | linphone_proxy_config_publish_enabled (const LinphoneProxyConfig *obj)
const char * | linphone_proxy_config_get_addr (const LinphoneProxyConfig *obj)
int | linphone_proxy_config_get_expires (const LinphoneProxyConfig *obj)
bool_t | linphone_proxy_config_register_enabled (const LinphoneProxyConfig *obj)
bool_t | linphone_proxy_config_get_dial_escape_plus (const LinphoneProxyConfig *cfg)
const char * | linphone_proxy_config_get_dial_prefix (const LinphoneProxyConfig *cfg)
void | linphone_proxy_config_destroy (LinphoneProxyConfig *cfg)
int | linphone_proxy_config_normalize_number (LinphoneProxyConfig *proxy, const char *username, char *result, size_t result_len)
int | linphone_core_add_proxy_config (LinphoneCore *lc, LinphoneProxyConfig *cfg)
void | linphone_core_remove_proxy_config (LinphoneCore *lc, LinphoneProxyConfig *cfg)
void | linphone_core_clear_proxy_config (LinphoneCore *lc)
void | linphone_core_set_default_proxy (LinphoneCore *lc, LinphoneProxyConfig *config)
int | linphone_core_get_default_proxy (LinphoneCore *lc, LinphoneProxyConfig **config)
const MSList * | linphone_core_get_proxy_config_list (const LinphoneCore *lc)

## Detailed Description

## Typedef Documentation

typedef struct _LinphoneProxyConfig LinphoneProxyConfig

The LinphoneProxyConfig object represents a proxy configuration to be used by the LinphoneCore object. Its fields must not be used directly in favour of the accessors methods. Once created and filled properly the LinphoneProxyConfig can be given to LinphoneCore with linphone_core_add_proxy_config(). This will automatically triggers the registration, if enabled.

The proxy configuration are persistent to restarts because they are saved in the configuration file. As a consequence, after linphone_core_new() there might already be a list of configured proxy that can be examined with linphone_core_get_proxy_config_list().

The default proxy (see linphone_core_set_default_proxy() ) is the one of the list that is used by default for calls.

## Function Documentation

int linphone_core_set_primary_contact | ( | LinphoneCore * | lc,
|  | const char * | contact
| ) |  |

Sets the local "from" identity.

This data is used in absence of any proxy configuration or when no default proxy configuration is set. See LinphoneProxyConfig

const char* linphone_core_get_primary_contact | ( | LinphoneCore * | lc | ) |

Returns the default identity when no proxy configuration is used.

void linphone_core_set_guess_hostname | ( | LinphoneCore * | lc,
|  | bool_t | val
| ) |  |

Tells LinphoneCore to guess local hostname automatically in primary contact.

bool_t linphone_core_get_guess_hostname | ( | LinphoneCore * | lc | ) |

Returns TRUE if hostname part of primary contact is guessed automatically.

LinphoneAddress* linphone_core_get_primary_contact_parsed | ( | LinphoneCore * | lc | ) |

Same as linphone_core_get_primary_contact() but the result is a LinphoneAddress object instead of const char*

LinphoneProxyConfig * linphone_proxy_config_new | ( |  | ) |

Creates an empty proxy config.

int linphone_proxy_config_set_server_addr | ( | LinphoneProxyConfig * | obj,
|  | const char * | server_addr
| ) |  |

Sets the proxy address

Examples of valid sip proxy address are:

- IP address: sip:87.98.157.38
- IP address with port: sip:87.98.157.38:5062
- hostnames : sip:sip.example.net

int linphone_proxy_config_set_identity | ( | LinphoneProxyConfig * | obj,
|  | const char * | identity
| ) |  |

Sets the user identity as a SIP address.

This identity is normally formed with display name, username and domain, such as: Alice <sip:alice.nosp@m.@exa.nosp@m.mple..nosp@m.net> The REGISTER messages will have from and to set to this identity.

int linphone_proxy_config_set_route | ( | LinphoneProxyConfig * | obj,
|  | const char * | route
| ) |  |

Sets a SIP route. When a route is set, all outgoing calls will go to the route's destination if this proxy is the default one (see linphone_core_set_default_proxy() ).

void linphone_proxy_config_expires | ( | LinphoneProxyConfig * | obj,
|  | int | val
| ) |  |

Sets the registration expiration time in seconds.

void linphone_proxy_config_enable_register | ( | LinphoneProxyConfig * | obj,
|  | bool_t | val
| ) |  |

Indicates whether a REGISTER request must be sent to the proxy.

void linphone_proxy_config_edit | ( | LinphoneProxyConfig * | obj | ) |

Starts editing a proxy configuration.

Because proxy configuration must be consistent, applications MUST call linphone_proxy_config_edit() before doing any attempts to modify proxy configuration (such as identity, proxy address and so on). Once the modifications are done, then the application must call linphone_proxy_config_done() to commit the changes.

int linphone_proxy_config_done | ( | LinphoneProxyConfig * | obj | ) |

Commits modification made to the proxy configuration.

void linphone_proxy_config_set_dial_escape_plus | ( | LinphoneProxyConfig * | cfg,
|  | bool_t | val
| ) |  |

Sets whether liblinphone should replace "+" by "00" in dialed numbers (passed to linphone_core_invite ).

void linphone_proxy_config_set_dial_prefix | ( | LinphoneProxyConfig * | cfg,
|  | const char * | prefix
| ) |  |

Sets a dialing prefix to be automatically prepended when inviting a number with linphone_core_invite.

bool_t linphone_proxy_config_is_registered | ( | const LinphoneProxyConfig * | obj | ) |

Returns a boolean indicating that the user is sucessfully registered on the proxy.

const char * linphone_proxy_config_get_route | ( | const LinphoneProxyConfig * | obj | ) |

Returns the route set for this proxy configuration.

const char * linphone_proxy_config_get_identity | ( | const LinphoneProxyConfig * | obj | ) |

Returns the SIP identity that belongs to this proxy configuration.

The SIP identity is a SIP address (Display Name <sip:username> )

bool_t linphone_proxy_config_publish_enabled | ( | const LinphoneProxyConfig * | obj | ) |

Returns TRUE if PUBLISH request is enabled for this proxy.

const char * linphone_proxy_config_get_addr | ( | const LinphoneProxyConfig * | obj | ) |

Returns the proxy's SIP address.

int linphone_proxy_config_get_expires | ( | const LinphoneProxyConfig * | obj | ) |

Returns the duration of registration.

bool_t linphone_proxy_config_register_enabled | ( | const LinphoneProxyConfig * | obj | ) |

Returns TRUE if registration to the proxy is enabled.

bool_t linphone_proxy_config_get_dial_escape_plus | ( | const LinphoneProxyConfig * | cfg | ) |

Returns whether liblinphone should replace "+" by "00" in dialed numbers (passed to linphone_core_invite ).

const char * linphone_proxy_config_get_dial_prefix | ( | const LinphoneProxyConfig * | cfg | ) |

Returns dialing prefix.

void linphone_proxy_config_destroy | ( | LinphoneProxyConfig * | obj | ) |

Destroys a proxy config.

Note
  : LinphoneProxyConfig that have been removed from LinphoneCore with linphone_core_remove_proxy_config() must not be freed.

int linphone_proxy_config_normalize_number | ( | LinphoneProxyConfig * | proxy,
|  | const char * | username,
|  | char * | result,
|  | size_t | result_len
| ) |  |

normalize a human readable phone number into a basic string. 888-444-222 becomes 888444222

int linphone_core_add_proxy_config | ( | LinphoneCore * | lc,
|  | LinphoneProxyConfig * | cfg
| ) |  |

Add a proxy configuration. This will start registration on the proxy, if registration is enabled.

void linphone_core_remove_proxy_config | ( | LinphoneCore * | lc,
|  | LinphoneProxyConfig * | cfg
| ) |  |

Removes a proxy configuration.

LinphoneCore will then automatically unregister and place the proxy configuration on a deleted list. For that reason, a removed proxy does NOT need to be freed.

void linphone_core_clear_proxy_config | ( | LinphoneCore * | lc | ) |

Erase all proxies from config.

void linphone_core_set_default_proxy | ( | LinphoneCore * | lc,
|  | LinphoneProxyConfig * | config
| ) |  |

Sets the default proxy.

This default proxy must be part of the list of already entered LinphoneProxyConfig. Toggling it as default will make LinphoneCore use the identity associated with the proxy configuration in all incoming and outgoing calls.

int linphone_core_get_default_proxy | ( | LinphoneCore * | lc,
|  | LinphoneProxyConfig ** | config
| ) |  |

Returns the default proxy configuration, that is the one used to determine the current identity.

const MSList* linphone_core_get_proxy_config_list | ( | const LinphoneCore * | lc | ) |

Returns an unmodifiable list of entered proxy configurations.