Typedefs |
typedef struct _LinphoneProxyConfig | LinphoneProxyConfig |
typedef enum
_LinphoneRegistrationState | LinphoneRegistrationState |
Enumerations |
enum | _LinphoneRegistrationState {
LinphoneRegistrationNone,
LinphoneRegistrationProgress,
LinphoneRegistrationOk,
LinphoneRegistrationCleared,
LinphoneRegistrationFailed
} |
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) |
const char * | linphone_core_get_identity (LinphoneCore *lc) |
const char * | linphone_registration_state_to_string (LinphoneRegistrationState cs) |
LinphoneProxyConfig * | linphone_proxy_config_new (void) |
LinphoneProxyConfig * | linphone_proxy_config_ref (LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_unref (LinphoneProxyConfig *cfg) |
void * | linphone_proxy_config_get_user_data (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_user_data (LinphoneProxyConfig *cfg, void *ud) |
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_set_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_enable_publish (LinphoneProxyConfig *obj, bool_t val) |
void | linphone_proxy_config_set_publish_expires (LinphoneProxyConfig *obj, int expires) |
int | linphone_proxy_config_get_publish_expires (const 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) |
void | linphone_proxy_config_enable_quality_reporting (LinphoneProxyConfig *cfg, bool_t enable) |
bool_t | linphone_proxy_config_quality_reporting_enabled (LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_quality_reporting_collector (LinphoneProxyConfig *cfg, const char *collector) |
const char * | linphone_proxy_config_get_quality_reporting_collector (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_quality_reporting_interval (LinphoneProxyConfig *cfg, uint8_t interval) |
int | linphone_proxy_config_get_quality_reporting_interval (LinphoneProxyConfig *cfg) |
LinphoneRegistrationState | linphone_proxy_config_get_state (const LinphoneProxyConfig *obj) |
bool_t | linphone_proxy_config_is_registered (const LinphoneProxyConfig *obj) |
const char * | linphone_proxy_config_get_domain (const LinphoneProxyConfig *cfg) |
const char * | linphone_proxy_config_get_realm (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_realm (LinphoneProxyConfig *cfg, const char *realm) |
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_server_addr (const LinphoneProxyConfig *obj) |
int | linphone_proxy_config_get_expires (const LinphoneProxyConfig *obj) |
bool_t | linphone_proxy_config_register_enabled (const LinphoneProxyConfig *obj) |
void | linphone_proxy_config_refresh_register (LinphoneProxyConfig *obj) |
void | linphone_proxy_config_pause_register (LinphoneProxyConfig *obj) |
const char * | linphone_proxy_config_get_contact_parameters (const LinphoneProxyConfig *obj) |
void | linphone_proxy_config_set_contact_parameters (LinphoneProxyConfig *obj, const char *contact_params) |
void | linphone_proxy_config_set_contact_uri_parameters (LinphoneProxyConfig *obj, const char *contact_uri_params) |
const char * | linphone_proxy_config_get_contact_uri_parameters (const LinphoneProxyConfig *obj) |
LinphoneCore * | linphone_proxy_config_get_core (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) |
LinphoneReason | linphone_proxy_config_get_error (const LinphoneProxyConfig *cfg) |
const LinphoneErrorInfo * | linphone_proxy_config_get_error_info (const LinphoneProxyConfig *cfg) |
const char * | linphone_proxy_config_get_transport (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_destroy (LinphoneProxyConfig *cfg) |
bool_t | linphone_proxy_config_is_phone_number (LinphoneProxyConfig *proxy, const char *username) |
bool_t | linphone_proxy_config_normalize_number (LinphoneProxyConfig *proxy, const char *username, char *result, size_t result_len) |
void | linphone_proxy_config_set_privacy (LinphoneProxyConfig *cfg, LinphonePrivacyMask privacy) |
LinphonePrivacyMask | linphone_proxy_config_get_privacy (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_file_transfer_server (LinphoneProxyConfig *cfg, const char *server_url) |
const char * | linphone_proxy_config_get_file_transfer_server (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_enable_avpf (LinphoneProxyConfig *cfg, bool_t enable) |
bool_t | linphone_proxy_config_avpf_enabled (LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_avpf_rr_interval (LinphoneProxyConfig *cfg, uint8_t interval) |
uint8_t | linphone_proxy_config_get_avpf_rr_interval (const LinphoneProxyConfig *cfg) |
LinphoneAVPFMode | linphone_proxy_config_get_avpf_mode (const LinphoneProxyConfig *cfg) |
void | linphone_proxy_config_set_avpf_mode (LinphoneProxyConfig *cfg, LinphoneAVPFMode mode) |
const char * | linphone_proxy_config_get_custom_header (LinphoneProxyConfig *cfg, const char *header_name) |
void | linphone_proxy_config_set_custom_header (LinphoneProxyConfig *cfg, const char *header_name, const char *header_value) |
void | linphone_core_refresh_registers (LinphoneCore *lc) |
LinphoneProxyConfig * | linphone_core_create_proxy_config (LinphoneCore *lc) |
void | _linphone_proxy_config_unregister (LinphoneProxyConfig *obj) |
int | linphone_dial_plan_lookup_ccc_from_e164 (const char *e164) |
int | linphone_dial_plan_lookup_ccc_from_iso (const char *iso) |
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_config (LinphoneCore *lc, LinphoneProxyConfig *config) |
int | linphone_core_get_default_proxy (LinphoneCore *lc, LinphoneProxyConfig **config) |
LinphoneProxyConfig * | linphone_core_get_default_proxy_config (LinphoneCore *lc) |
const MSList * | linphone_core_get_proxy_config_list (const LinphoneCore *lc) |
Detailed Description
User registration is controled by LinphoneProxyConfig settings.
Each LinphoneProxyConfig object can be configured with registration informations like proxy address , user id , refresh period , and so on.
A created proxy config using linphone_proxy_config_new(), once configured, must be added to LinphoneCore using function linphone_core_add_proxy_config().
It is recommended to set a default proxy config using function linphone_core_set_default_proxy(). Once done, if a proxy config has been configured with attribute enable register , next call to linphone_core_iterate() triggers a SIP register.
Registration status is reported by LinphoneCoreRegistrationStateChangedCb.
This pseudo code demonstrates basic registration operations:
LinphoneProxyConfig* proxy_cfg;
proxy_cfg = linphone_proxy_config_new();
LinphoneAddress *from = linphone_address_new("sip:toto@sip.titi.com");
LinphoneAuthInfo *info;
if (password!=NULL){
info=linphone_auth_info_new(linphone_address_get_username(from),NULL,"secret",NULL,NULL);
linphone_core_add_auth_info(lc,info);
}
linphone_proxy_config_set_identity(proxy_cfg,identity);
const char* server_addr = linphone_address_get_domain(from);
linphone_proxy_config_set_server_addr(proxy_cfg,server_addr);
linphone_proxy_config_enable_register(proxy_cfg,TRUE);
linphone_address_destroy(from);
linphone_core_add_proxy_config(lc,proxy_cfg);
linphone_core_set_default_proxy(lc,proxy_cfg);
Registration sate call back:
Authentication:
Most of the time, registration requires authentication to succeed. #LinphoneAuthInfo info must be either added to LinphoneCore using function linphone_core_add_auth_info() before LinphoneProxyConfig is added to Linphone core, or on demand from call back LinphoneCoreAuthInfoRequestedCb.
Unregistration:
Unregistration or any changes to LinphoneProxyConfig must be first started by a call to function linphone_proxy_config_edit() and validated by function linphone_proxy_config_done()
This pseudo code shows how to unregister a user associated to a LinphoneProxyConfig
A complete tutorial can be found at : Registration tutorial
Typedef Documentation
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.
LinphoneRegistrationState describes proxy registration states.
Enumeration Type Documentation
LinphoneRegistrationState describes proxy registration states.
- Enumerator:
LinphoneRegistrationNone |
Initial state for registrations
|
LinphoneRegistrationProgress |
Registration is in progress
|
LinphoneRegistrationOk |
Registration is successful
|
LinphoneRegistrationCleared |
Unregistration succeeded
|
LinphoneRegistrationFailed |
Registration failed
|
Function Documentation
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
Returns the default identity when no proxy configuration is used.
Tells LinphoneCore to guess local hostname automatically in primary contact.
Returns TRUE if hostname part of primary contact is guessed automatically.
Returns the default identity SIP address.
This is an helper function:
If no default proxy is set, this will return the primary contact ( see linphone_core_get_primary_contact() ). If a default proxy is set it returns the registered identity on the proxy.
Acquire a reference to the proxy config.
- Parameters:
-
- Returns:
- The same proxy config.
Release reference to the proxy config.
- Parameters:
-
Retrieve the user pointer associated with the proxy config.
- Parameters:
-
- Returns:
- The user pointer associated with the proxy config.
Assign a user pointer to the proxy config.
- Parameters:
-
[in] | cfg | The proxy config. |
[in] | ud | The user pointer to associate with the proxy config. |
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
Sets the user identity as a SIP address.
This identity is normally formed with display name, username and domain, such as: Alice <sip:alice@example.net> The REGISTER messages will have from and to set to this identity.
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() ).
Sets the registration expiration time in seconds.
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.
Commits modification made to the proxy configuration.
Set the publish expiration time in second.
- Parameters:
-
obj | proxy config |
expires | in second |
get the publish expiration time in second. Default value is the registration expiration value.
- Parameters:
-
- Returns:
- expires in second
Sets whether liblinphone should replace "+" by international calling prefix in dialed numbers (passed to linphone_core_invite ).
Sets a dialing prefix to be automatically prepended when inviting a number with linphone_core_invite(); This dialing prefix shall usually be the country code of the country where the user is living.
Indicates whether quality statistics during call should be stored and sent to a collector according to RFC 6035.
- Parameters:
-
[in] | cfg | LinphoneProxyConfig object |
[in] | enable | True to sotre quality statistics and sent them to the collector, false to disable it. |
Indicates whether quality statistics during call should be stored and sent to a collector according to RFC 6035.
- Parameters:
-
- Returns:
- True if quality repotring is enabled, false otherwise.
Set the SIP address of the collector end-point when using quality reporting. This SIP address should be used on server-side to process packets directly then discard packets. Collector address should be a non existing account and should not received any packets.
- Parameters:
-
Get the SIP address of the collector end-point when using quality reporting. This SIP address should be used on server-side to process packets directly then discard packets. Collector address should be a non existing account and should not received any packets.
- Parameters:
-
- Returns:
- The SIP address of the collector end-point.
Set the interval between 2 interval reports sending when using quality reporting. If call exceed interval size, an interval report will be sent to the collector. On call termination, a session report will be sent for the remaining period. Value must be 0 (disabled) or positive.
- Parameters:
-
[in] | cfg | LinphoneProxyConfig object |
[in] | interval | The interval in seconds, 0 means interval reports are disabled. |
Get the interval between interval reports when using quality reporting.
- Parameters:
-
- Returns:
- The interval in seconds, 0 means interval reports are disabled.
Get the registration state of the given proxy config.
- Parameters:
-
- Returns:
- The registration state of the proxy config.
Get the domain name of the given proxy config.
- Parameters:
-
- Returns:
- The domain name of the proxy config.
Get the realm of the given proxy config.
- Parameters:
-
- Returns:
- The realm of the proxy config.
Set the realm of the given proxy config.
- Parameters:
-
- Returns:
- The realm of the proxy config.
Returns the route set for this proxy configuration.
Returns the SIP identity that belongs to this proxy configuration.
The SIP identity is a SIP address (Display Name <sip:username@domain> )
Returns TRUE if PUBLISH request is enabled for this proxy.
Returns the proxy's SIP address.
Returns the duration of registration.
Returns TRUE if registration to the proxy is enabled.
Refresh a proxy registration. This is useful if for example you resuming from suspend, thus IP address may have changed.
Prevent a proxy config from refreshing its registration. This is useful to let registrations to expire naturally (or) when the application wants to keep control on when refreshes are sent. However, linphone_core_set_network_reachable(lc,TRUE) will always request the proxy configs to refresh their registrations. The refreshing operations can be resumed with linphone_proxy_config_refresh_register().
- Parameters:
-
Returns previously set contact parameters.
Set optional contact parameters that will be added to the contact information sent in the registration.
- Parameters:
-
obj | the proxy config object |
contact_params | a string contaning the additional parameters in text form, like "myparam=something;myparam2=something_else" |
The main use case for this function is provide the proxy additional information regarding the user agent, like for example unique identifier or apple push id. As an example, the contact address in the SIP register sent will look like <sip:joe@15.128.128.93:50421>;apple-push-id=43143-DFE23F-2323-FA2232.
Set optional contact parameters that will be added to the contact information sent in the registration, inside the URI.
- Parameters:
-
obj | the proxy config object |
contact_uri_params | a string containing the additional parameters in text form, like "myparam=something;myparam2=something_else" |
The main use case for this function is provide the proxy additional information regarding the user agent, like for example unique identifier or apple push id. As an example, the contact address in the SIP register sent will look like <sip:joe@15.128.128.93:50421;apple-push-id=43143-DFE23F-2323-FA2232>.
Returns previously set contact URI parameters.
Returns whether liblinphone should replace "+" by "00" in dialed numbers (passed to linphone_core_invite ).
Get the reason why registration failed when the proxy config state is LinphoneRegistrationFailed.
- Parameters:
-
- Returns:
- The reason why registration failed for this proxy config.
Get detailed information why registration failed when the proxy config state is LinphoneRegistrationFailed.
- Parameters:
-
- Returns:
- The details why registration failed for this proxy config.
Get the transport from either service route, route or addr.
- Parameters:
-
- Returns:
- The transport as a string (I.E udp, tcp, tls, dtls)
Detect if the given input is a phone number or not.
- Parameters:
-
proxy | LinphoneProxyConfig argument, unused yet but may contain useful data. Can be NULL. |
username | string to parse. |
- Returns:
- TRUE if input is a phone number, FALSE otherwise.
Normalize a human readable phone number into a basic string. 888-444-222 becomes 888444222 or +33888444222 depending on the LinphoneProxyConfig argument. This function will always generate a normalized username; if input is not a phone number, output will be a copy of input.
- Parameters:
-
proxy | LinphoneProxyConfig object containing country code and/or escape symbol. |
username | the string to parse |
result | the newly normalized number |
result_len | the size of the normalized number result |
- Returns:
- TRUE if a phone number was recognized, FALSE otherwise.
Set default privacy policy for all calls routed through this proxy.
- Parameters:
-
Get default privacy policy for all calls routed through this proxy.
- Parameters:
-
- Returns:
- Privacy mode
Set the http file transfer server to be used for content type application/vnd.gsma.rcs-ft-http+xml
- Parameters:
-
Get the http file transfer server to be used for content type application/vnd.gsma.rcs-ft-http+xml
- Parameters:
-
- Returns:
- URL of the file server like https://file.linphone.org/upload.php
Set the interval between regular RTCP reports when using AVPF/SAVPF.
- Parameters:
-
[in] | cfg | LinphoneProxyConfig object |
[in] | interval | The interval in seconds (between 0 and 5 seconds). |
Get the interval between regular RTCP reports when using AVPF/SAVPF.
- Parameters:
-
- Returns:
- The interval in seconds.
Get enablement status of RTCP feedback (also known as AVPF profile).
- Parameters:
-
- Returns:
- the enablement mode, which can be LinphoneAVPFDefault (use LinphoneCore's mode), LinphoneAVPFEnabled (avpf is enabled), or LinphoneAVPFDisabled (disabled).
Enable the use of RTCP feedback (also known as AVPF profile).
- Parameters:
-
[in] | cfg | the proxy config |
[in] | mode | the enablement mode, which can be LinphoneAVPFDefault (use LinphoneCore's mode), LinphoneAVPFEnabled (avpf is enabled), or LinphoneAVPFDisabled (disabled). |
Obtain the value of a header sent by the server in last answer to REGISTER.
- Parameters:
-
cfg | the proxy config object |
header_name | the header name for which to fetch corresponding value |
- Returns:
- the value of the queried header.
Set the value of a custom header sent to the server in REGISTERs request.
- Parameters:
-
cfg | the proxy config object |
header_name | the header name |
header_value | the header's value |
force registration refresh to be initiated upon next iterate
Create a proxy config with default values from Linphone core.
- Parameters:
-
- Returns:
- LinphoneProxyConfig with default values set
unregister without moving the register_enable flag
Function to get call country code from an e164 number, ex: +33952650121 will return 33
- Parameters:
-
- Returns:
- call country code or -1 if not found
Function to get call country code from ISO 3166-1 alpha-2 code, ex: FR returns 33
- Parameters:
-
- Returns:
- call country code or -1 if not found
Add a proxy configuration. This will start registration on the proxy, if registration is enabled.
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.
Erase all proxies from 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.
- Parameters:
-
[in] | lc | LinphoneCore object |
[in] | config | The proxy configuration to use as the default one. |
Returns the default proxy configuration, that is the one used to determine the current identity.
- Parameters:
-
[in] | lc | LinphoneCore object |
- Returns:
- The default proxy configuration.
Returns an unmodifiable list of entered proxy configurations.
- Parameters:
-
[in] | lc | The LinphoneCore object |
- Returns:
- A list of LinphoneProxyConfig objects.