This document lists the supported sections and keys of the ini-style linphonerc configuration file.
This configuration can be served through https in order to remotely configure a linphone-sdk based application, see linphone_core_set_provisioning_uri().
The Flexisip Account Manager has built-in support for remote provisioning Linphone or linphone-sdk based client applications.
The sip section represents a general configuration for SIP.
| Key | Value type | Possible values | Default value | API | Description |
|---|---|---|---|---|---|
| 100rel_support_level | integer | LinphoneSupportLevel | NoSupport | linphone_core_set_tag_100rel_support_level() |
Defines what level of support is provided to the 100rel attribute. |
| auto_send_ringing | integer | 0 or 1 | 1 | linphone_core_auto_send_ringing_enabled() |
Gets if the automatic sending of 180 Ringing is enabled or not. |
| automatic_http_proxy_detection | integer | 0 or 1 | 0 | linphone_core_automatic_http_proxy_detection_enabled() |
Returns whether automatic http proxy is enabled. |
| capability_negotiations_reinvite | integer | 0 or 1 | 1 | linphone_core_capability_negotiation_reinvite_enabled() |
Checks if the capability negotiation (RFC5939) reINVITE is enabled or not. |
| cfg_lines_merge | integer | 0 or 1 | 1 | linphone_core_cfg_lines_merging_enabled() |
Checks if cfg lines are going to the merged if the capability negotiation (RFC5939) is supported or not. |
| client_cert_chain | string | A path | "" | linphone_core_set_tls_cert_path() |
Sets a TLS certificate path used for TLS authentication The path will be stored in the rc file and automatically restored on startup. |
| client_cert_key | string | A key | "" | linphone_core_set_tls_key_path() |
Sets a TLS key path used for TLS authentication The path will be stored in the rc file and automatically restored on startup. |
| contact | string | SIP URI (e.g. sip:user@host) | "" | linphone_core_set_primary_contact() |
Sets the local "from" SIP identity used for calls made out of any configured LinphoneAccount. |
| delayed_timeout | integer | seconds | 4 | linphone_core_set_delayed_timeout() |
Set the in delayed timeout in seconds. |
| dscp | integer | DSCP | 0 | linphone_core_set_sip_dscp() |
Sets the DSCP field for SIP signaling channel. |
| enable_go_clear | integer | 0 or 1 | 0 | linphone_core_zrtp_go_clear_enabled() |
Checks if the ZRTP go clear is enabled or not. |
| guess_hostname | integer | 0 or 1 | 1 | linphone_core_set_guess_hostname() |
Tells LinphoneCore to guess local hostname automatically in primary contact. |
| http_proxy_host | string | a hostname | "" | linphone_core_set_http_proxy_host() |
Sets http proxy address to be used for signaling during next channel connection. |
| http_proxy_port | integer | 0 - 65535 | 3128 | linphone_core_set_http_proxy_port() |
Sets http proxy port to be used for signaling. |
| ice_enabled | integer | 0 or 1 | 1 | linphone_nat_policy_ice_enabled() |
Tell whether ICE is enabled. |
| in_call_timeout | integer | 0–86400 (s) | 0 | linphone_core_set_in_call_timeout() |
Sets the maximum duration of a call in seconds. |
| inc_timeout | integer | 0–300 (s) | Android and IOS: 45. Else: 30 | linphone_core_set_inc_timeout() |
Sets the incoming call timeout in seconds. |
| keepalive_period | integer | 0–60000 (ms) | 30000 | linphone_core_keep_alive_enabled() |
Is signaling keep alive enabled. |
| linphone_specs | string | "groupchat/1.1" | "" | linphone_core_set_linphone_specs_list() |
Sets the linphone specs list value telling what functionalities the linphone client supports. |
| media_encryption_mandatory | integer | 0 or 1 | 0 | linphone_core_is_media_encryption_mandatory() |
Checks if the configured media encryption is mandatory or not. |
| media_encryption | string | none, srtp, zrtp | none | linphone_core_set_media_encryption() |
Chooses the media encryption type to be used for RTP packets. |
| push_incoming_call_timeout | integer | seconds | 15 | linphone_core_set_push_incoming_call_timeout() |
Configures the minimum interval between a push notification and the corresponding incoming INVITE. |
| refresh_window | range | Range of seconds | 90-90 | linphone_core_set_refresh_window() |
Set the refresh window. |
| register_only_when_network_is_up | integer | 0 or 1 | 1 | linphone_core_set_register_only_when_network_is_up() |
Sets if accounts will wait for network to be connected before trying to REGISTER. |
| root_ca | string | a path | "" | linphone_core_set_root_ca() |
Sets the path to a file or folder containing trusted root CAs (PEM format) |
| sdp_200_ack | integer | 0 or 1 | 0 | linphone_core_sdp_200_ack_enabled() |
Media offer control param for SIP INVITE. |
| session_expires_enabled | integer | 0 or 1 | 0 | linphone_core_session_expires_enabled() |
Check if the Session Timers feature is enabled. |
| session_expires_min_value | integer | Positive number | 0 | linphone_core_set_session_expires_min_value() |
Sets the session expires minSE value, forced to a minimum of 90 by default. |
| session_expires_refresher_value | integer | LinphoneSessionExpiresRefresher | Unspecified | linphone_core_set_session_expires_refresher_value() |
Sets the session expires refresher value. |
| session_expires_value | integer | 0 or not lower than session_expires_min_value | 0 | linphone_core_set_session_expires_value() |
Sets the session expires value, 0 by default. |
| sip_update | integer | 0 or 1 | 1 | linphone_core_set_enable_sip_update() |
Enable or disable the UPDATE method support. |
| srtp_crypto_suites | string | List | "AEAD_AES_128_GCM, AES_CM_128_HMAC_SHA1_80, AEAD_AES_256_GCM, AES_256_CM_HMAC_SHA1_80" | linphone_core_set_srtp_crypto_suites() |
Sets the crypto suites available to the core. |
| stun_enabled | integer | 0 or 1 | 0 | linphone_nat_policy_stun_enabled() |
Tell whether STUN is enabled. |
| stun_server | string | hostname or IP | "" | linphone_nat_policy_set_stun_server() |
Set the STUN/TURN server to use with this NAT policy. |
| support_capability_negotiations | integer | 0 or 1 | 0 | linphone_core_capability_negociation_enabled() |
Checks if the capability negotiation (RFC5939) is supported or not. |
| supported | string | Tags | "replaces, outbound, gruu, path" | linphone_core_set_supported_tag() |
Set the SIP supported tags. |
| tcap_line_merge | integer | 0 or 1 | 0 | linphone_core_tcap_lines_merging_enabled() |
Checks if tcap lines are going to the merged if the capability negotiation (RFC5939) is supported or not. |
| transport_timeout | integer | Milliseconds | 15000 | linphone_core_set_sip_transport_timeout() |
Sets the SIP transport timeout, which represents the maximum time permitted to establish a connection to a SIP server. |
| use_info | integer | 0 or 1 | 0 | linphone_core_set_use_info_for_dtmf() |
Sets whether SIP INFO method can be used to send digits. |
| use_ipv6 | integer | 0 or 1 | 0 | linphone_core_ipv6_enabled() |
Tells whether IPv6 is enabled or not. |
| use_rfc2833 | integer | 0 or 1 | 1 | linphone_core_set_use_rfc2833_for_dtmf() |
Sets whether RFC2833 or RFC4633 can be to be used to send digits. |
| user_agent | string | A user-agent | PACKAGE_NAME/LIBLINPHONE_VERSION | linphone_core_set_user_agent() |
Set the user agent string used in SIP messages. |
| verify_server_certs | integer | 0 or 1 | 1 | linphone_core_verify_server_certificates() |
Specify whether the tls server certificate must be verified when connecting to a SIP/TLS server. |
| verify_server_cn | integer | 0 or 1 | 1 | linphone_core_verify_server_cn() |
Specify whether the tls server certificate common name must be verified when connecting to a SIP/TLS server. |
| zero_rtp_port_for_stream_inactive | integer | 0 or 1 | 0 | linphone_core_zero_rtp_port_for_stream_inactive_enabled() |
Checks if RTP port is set to 0 when a stream is inactive. |
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| accounts_channel_isolation | integer | 0 or 1 | 0 | Restrict the use of connections for this op, see in belle-sip. Used for tests. |
| account_strict_matching | integer | 0 or 1 | 0 | Only for tests. linphone_core_account_strict_matching_enabled() |
| answer_with_own_numbering | integer | 0 or 1 | 0 | Set answer with own numbering policy |
| auto_answer_replacing_calls | integer | 0 or 1 | 0 | Automatically answer replacing calls. Used for tests |
| auto_net_state_mon | integer | 0 or 1 | 1 | Enable automatic network state monitoring |
| bind_address | string | IP address | 0.0.0.0 | Set listen address on SAL |
| bodyless_lists | string | SIP URI separated by ',' | "" | Bodyless friend list |
| cnx_ip_to_0000_if_sendonly_enabled | integer | 0 or 1 | 0 | SalopenableCnxIpTo0000IfSendOnly() |
| default_proxy | integer | An index | -1 | linphone_core_get_default_account_index() |
| disable_media | integer | 0 or 1 | 0 | Disable media by ignoring SDP |
| force_name_addr | integer | 0 or 1 | 0 | belle_sip_stack_force_name_addr() |
| handle_content_encoding | string | none, deflate, ... | deflate | Tells whether the given transport type is supported by the library..linphone_core_content_encoding_supported() |
| ipv6_migration_done | integer | 0 or 1 | 0 | Internal usage to know if ipv6 migration has been done: it will clean use_ipv6 |
| notify_all_ringings | integer | 0 or 1 | 0 | SalOpsetNotifyAllRingings() |
| only_one_codec | integer | 0 or 1 | 0 | Set one codec policy |
| ping_pong_verification | integer | 0 or 1 | 1 | Enable check with Ping-Pong. belle_sip_stack_ping_pong_verification_enabled() |
| ping_with_options | integer | 0 or 1 | 0 | Defer the start of the call after the OPTIONS ping for outgoing call or send an option request back to the caller so that we get a chance to discover our nat'd address before answering for incoming call |
| pong_timeout | integer | seconds | 10 | Pong Timeout. belle_sip_stack_get_pong_timeout() |
| prefer_ipv6 | integer | 0 or 1 | 1 | Set IPV6 preference on SAL. belle_sip_stack_get_ip_version_preference() |
| put_date | integer | 0 or 1 | 0 | Use Date in SAL |
| reconnect_to_primary_asap | integer | 0 or 1 | 0 | Enable the reconnection to the primary server when it is up again asap. belle_sip_stack_reconnect_to_primary_asap_enabled() |
| refresher_retry_after | integer | Milliseconds | 60000 | sal_get_refresher_retry_after() |
| register_only_when_upnp_is_ok | integer | 0 or 1 | 1 | Sets if accounts will wait for UPNP to be connected before trying to REGISTER. |
| save_auth_info | integer | 0 or 1 | 1 | if true, auth infos will be write in the config file when they are added to the list |
| sip_port | integer | -2 - 65535 | Mac or Android:-2=Don't Bind. Else: 5060 | SIP listening port (UDP) |
| sip_random_port | integer | 0 or 1 | 0 | Legacy random mode. _linphone_core_get_sip_transports() |
| sip_tcp_port | integer | -2 - 65535 | Mac or Android:-2=Don't Bind. Else: 5060 | SIP listening port (TCP) |
| sip_tls_port | integer | -2 - 65535 | -1=Random | SIP listening port (TLS) |
| sip_tls_well_known_port | integer | 0 - 65535 | 5061 | The well known TLS port |
| sip_well_known_port | integer | 0 - 65535 | 5060 | The well known TCP/UDP port |
| srtp | integer | 0 or 1 | linphone_core_get_srtp_enabled(). Not used. | |
| supported_encryptions | list | List of encryptions | "" | linphone_core_get_supported_media_encryptions() |
| tcp_tls_keepalive | integer | milliseconds | 30000 | SIP keep-alive interval on TLS. |
| tls_certificate_subject_regexp | string | regex | "" | the purpose of this handling is to a peer certificate for which there is no single subject matching the regexp given in the "tls_certificate_subject_regexp" property |
| unreliable_connection_timeout | integer | seconds | 120 | Set the time interval in seconds after which a connection is considered to be unreliable because no data was received over it. belle_sip_stack_set_unreliable_connection_timeout(). |
| use_no_initial_route | integer | 0 or 1 | 0 | Use no initial route |
| use_rport | integer | 0 or 1 | 1 | Use RPort |
| vfu_with_info | integer | 0 or 1 | 1 | Enable VFU request using SIP |
The audio section represents the audio configurations.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| soundcard | string | device name | default | Playback/record sound device |
| playback_gain_db | integer | -30 to +30 (dB) | 0 | Playback gain |
| mic_gain_db | integer | -30 to +30 (dB) | 0 | Microphone gain |
| echo_cancellation | integer | 0 or 1 | 1 | Acoustic echo cancellation |
| echo_limiter | integer | 0 or 1 | 1 | Echo limiter |
| adaptive_rate_control | integer | 0 or 1 | 1 | Adaptive bitrate control |
| jitter_buffer_size | integer | 20–500 (ms) | 60 | Audio jitter buffer |
| codec_priority | string | codec list | opus,pcmu,pcma | Audio codec priority |
| use_files | integer | 0 or 1 | 0 | Use audio files instead of devices |
| rtp_no_xmit_on_audio_mute | integer | 0 or 1 | 1 | Stop RTP when muted |
The video section represents the video configuration.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| enabled | integer | 0 or 1 | 1 | Enable video |
| capture | string | camera name | default | Video capture device |
| display | string | display name | default | Video display device |
| size | string | qcif, cif, vga, hd720 | vga | Video resolution |
| framerate | integer | 1-60 (fps) | 30 | Video framerate |
| bitrate | integer | 64–10000 (kbps) | 1024 | Video bitrate |
| codec_priority | string | codec list | vp8,h264 | Video codec priority |
| auto_resize | integer | 0 or 1 | 1 | Auto resize video |
| self_view | integer | 0 or 1 | 1 | Show local preview |
The network section represents the network configuration.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| mtu | integer | 576–1500 | 1300 | RTP MTU size |
| dns_servers | string | IP list | "" | Custom DNS servers |
| protocol | TYPE | udp, tcp, tls | udp | Default SIP transport |
| ipv6_enabled | TYPE | 0 or 1 | 0 | Enable IPv6 networking |
The rtp section represents the RTP configuration.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| audio_rtp_port | integer | 1024–65535 | 7078 | RTP audio base port |
| video_rtp_port | integer | 1024–65535 | 9078 | RTP video base port |
| symmetric | integer | 0 or 1 | 1 | Enable symmetric RTP |
| timeout | integer | 0–300 (s) | 60 | RTP inactivity timeout |
| use_rtcp | integer | 0 or 1 | 1 | Enable RTCP |
The encryption section represents the encryption configuration.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| srtp_enable | TYPE | 0 or 1 | 0 | Enable SRTP |
| zrtp_enable | TYPE | 0 or 1 | 0 | Enable ZRTP |
| zrtp_sas_validation | TYPE | 0 or 1 | 0 | Require SAS validation |
The ice section represents the ICE configuration.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| enabled | integer | 0 or 1 | 1 | Enable ICE |
| prefer_ipv6 | integer | 0 or 1 | 0 | Prefer IPv6 candidates |
| timeout | integer | 5–60 (s) | 20 | ICE gathering timeout |
| aggressive_nomination | integer | 0 or 1 | 1 | Aggressive ICE nomination |
The misc section represents unspecific options.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| log_level | integer | 0-6 | 3 | Log verbosity |
| log_file | string | file path | "" | Log output file |
| max_calls | TYPE | 1-10 | 1 | Maximum simultaneous calls |
| user_agent | TYPE | a user agent | LinphoneSDK/5.5 | SIP User-Agent |
| enable_timestamps | integer | 0 or 1 | 1 | Timestamp logs |
The debug section represents the debug mode configuration.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| enable | integer | 0 or 1 | 0 | Enable debug mode |
| sip_trace | integer | 0 or 1 | 0 | SIP message tracing |
| rtp_trace | integer | 0 or 1 | 0 | RTP packet tracing |
The proxy_N sections represents SIP accounts.
Their name inherits from the legacy object name LinphoneProxyConfig in liblinphone, that is now superseeded by by the LinphoneAccount and LinphoneAccountParams object, but the linphonerc section name was left unchanged to preserve configuration file compatibility.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| reg_identity | string | SIP address | "" | The SIP address of the user, as to be sent in the From header of the REGISTER request |
| reg_proxy | string | SIP address | "" | The address of the SIP server |
| reg_route | string | SIP address | "" | An optional SIP address to include as a route |
| reg_sendregister | boolean | 0 or 1 | 1 | Whether to send a REGISTER request |
| reg_expires | integer | any strictly positive integer | 3600 | The expiry of the REGISTER, in seconds |
| realm | string | any string | "" | The authentication realm of the SIP service, used to match with authentication information |
Their role is not to present a permanent list of contacts to the user, but rather return, per a search request, a list of contacts that match the request.
The search request is transmitted through the protocol (LDAP or CardDav), and executed on the server. The server's response is analysed and search results are represented as a list of LinphoneFriend objects.
LDAP connection configuration has it is own password key, and it is not relying at all on the LinphoneAuthInfo objects, unlike all other liblinphone initiated connections.
Table remote contact directory parameters lists all remote contact directory parameters one may find under section [remote_contact_directory_N] of a Linphone RC file.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| enabled | integer | 0 or 1 | 1 | Whether the remote contact directory is enabled |
| type | string | carddav or ldap | "" | The type (protocol) used by the remote contact directory |
| uri | string | a URI | "" | The server URI, typically ldap://example.org or https://carddav.example.org |
| min_characters | integer | any positive integer or 0 | 3 | The minimum number of characters needed to submit the request |
| results_limit | integer | any positive integer or 0 | 0 | Limit on the number of returned results. 0 means returns all results |
| timeout | integer | any positive integer or 0 | 5 | Request timeout in seconds |
| delay | integer | any positive integer or 0 | 500 | Delay in milliseconds before submitting the request |
| carddav_fields_for_user_input | string | "" | List of comma separated VCard fields to match with the user input | |
| carddav_fields_for_domain | string | "" | List of comma separated VCard fields to match for SIP domain | |
| carddav_use_exact_match_policy | integer | 0 or 1 | 0 | Whether the match must be exact or approximate (ignoring accents, case, ...) |
| ldap_bind_dn | string | "" | LDAP bind distinguished name | |
| ldap_auth_method | integer | 0: anonymous | 1 | LDAP authentication method |
| 1: simple | ||||
| ldap_base_object | string | "" | LDAP base object | |
| ldap_name_attribute | string | "sn" | LDAP attribute(s) to browse for contact names | |
| ldap_sip_attribute | string | "mobile,telephonenumber,homephone,sn" | LDAP attribute(s) to use to create SIP URIs associated with this remote contact directory | |
| ldap_sip_domain | string | "" | A SIP domain to filter results | |
| ldap_filter | string | "(sn=%s)" | A LDAP search filter |
The auth_info sections provide authentication information to use for SIP as well as http services (typically remote provisioning, cardDav requests). They need to be supplied in the form of a LinphoneAuthInfo object, whose configuration storage representation is of [auth_info_N] sections, numbered continuously from 0.
Table authentication information parameters lists all remote contact directory parameters one may find under section [auth_info_N] of a Linphone RC file.
| Key | Value type | Possible values | Default value | Description |
|---|---|---|---|---|
| username | string | anything | "" | The username to use for authenticating |
| domain | string | anything | "" | A SIP domain to which the use of thie LinphoneAuthInfo is scoped to |
| passwd | string | anything | "" | The clear-text password |
| realm | string | anything | "" | The realm advertised by the server, it may be left empty if unknown |
| ha1 | string | anything | "" | A digest HA1 of the password |
| algorithm | string | MD5 | MD5 | The digest algorithm |
| SHA-256 | ||||
| authorization_server | string | any HTTP/HTTPS URI | "" | An OAUTH/OpenID connect authorization server URI to use to autheticate |
| token_endpoint | string | any HTTP/HTTPS URI | "" | URI of endpoint to refresh tokens |
| client_id | string | anything | "" | OAUTH client ID |
| client_secret | string | anything | "" | OAUTH client secret |