|
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) |
|
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:
LinphoneAuthInfo *info;
if (password!=NULL){
}
linphone_core_set_default_proxy(lc,proxy_cfg);
Registration sate call back:
printf("New registration state %s for user id [%s] at proxy [%s]\n"
,linphone_proxy_config_get_addr(cfg));
}
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
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.
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
|
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.
const char * linphone_core_get_identity |
( |
LinphoneCore * |
lc | ) |
|
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. |
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
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.
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, without "+".
void linphone_proxy_config_enable_quality_reporting |
( |
LinphoneProxyConfig * |
cfg, |
|
|
bool_t |
enable |
|
) |
| |
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.
void linphone_proxy_config_set_quality_reporting_collector |
( |
LinphoneProxyConfig * |
cfg, |
|
|
const char * |
collector |
|
) |
| |
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
-
const char * linphone_proxy_config_get_quality_reporting_collector |
( |
const LinphoneProxyConfig * |
cfg | ) |
|
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.
void linphone_proxy_config_set_quality_reporting_interval |
( |
LinphoneProxyConfig * |
cfg, |
|
|
uint8_t |
interval |
|
) |
| |
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.
void linphone_proxy_config_set_contact_parameters |
( |
LinphoneProxyConfig * |
obj, |
|
|
const char * |
contact_params |
|
) |
| |
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@1.nosp@m.5.12.nosp@m.8.128.nosp@m..93:50421>;apple-push-id=43143-DFE23F-2323-FA2232.
void linphone_proxy_config_set_contact_uri_parameters |
( |
LinphoneProxyConfig * |
obj, |
|
|
const char * |
contact_uri_params |
|
) |
| |
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@1.nosp@m.5.12.nosp@m.8.128.nosp@m..93:50421;apple-push-id=43143-DFE23F-2323-FA2232>.
const char * linphone_proxy_config_get_contact_uri_parameters |
( |
const LinphoneProxyConfig * |
obj | ) |
|
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)
bool_t linphone_proxy_config_is_phone_number |
( |
LinphoneProxyConfig * |
proxy, |
|
|
const char * |
username |
|
) |
| |
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.
bool_t 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 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.
void linphone_proxy_config_set_privacy |
( |
LinphoneProxyConfig * |
cfg, |
|
|
LinphonePrivacyMask |
privacy |
|
) |
| |
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
void linphone_proxy_config_set_file_transfer_server |
( |
LinphoneProxyConfig * |
cfg, |
|
|
const char * |
server_url |
|
) |
| |
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
void linphone_proxy_config_set_avpf_rr_interval |
( |
LinphoneProxyConfig * |
cfg, |
|
|
uint8_t |
interval |
|
) |
| |
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). |
const char * linphone_proxy_config_get_custom_header |
( |
LinphoneProxyConfig * |
cfg, |
|
|
const char * |
header_name |
|
) |
| |
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.
void linphone_proxy_config_set_custom_header |
( |
LinphoneProxyConfig * |
cfg, |
|
|
const char * |
header_name, |
|
|
const char * |
header_value |
|
) |
| |
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
int linphone_dial_plan_lookup_ccc_from_e164 |
( |
const char * |
e164 | ) |
|
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
int linphone_dial_plan_lookup_ccc_from_iso |
( |
const char * |
iso | ) |
|
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.
const MSList* linphone_core_get_proxy_config_list |
( |
const LinphoneCore * |
lc | ) |
|
Returns an unmodifiable list of entered proxy configurations.
- Parameters
-
[in] | lc | The LinphoneCore object |
- Returns
- A list of LinphoneProxyConfig objects.