Liblinphone  5.5.0
Provisioning configuration key

This document describes the architecture of contact management in Liblinphone, and related configuration items for remote provisioning.


There are two distincts concepts for dealing with Contacts in Liblinphone:

Remote contact directories (section [remote_contact_directory_N])

There are currently two kinds of remote contact directories:

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.

Remote Contact directory parameters
KeyValue typePossible valuesDefault valueDescription
enabledinteger0 or 11Whether the remote contact directory is enabled
typestringcarddav or ldap""The type (protocol) used by the remote contact directory
uristringa URI""The server URI, typically ldap://example.org or https://carddav.example.org
min_charactersintegerany positive integer or 03The minimum number of characters needed to submit the request
results_limitintegerany positive integer or 00Limit on the number of returned results. 0 means returns all results
timeoutintegerany positive integer or 05Request timeout in seconds
delayintegerany positive integer or 0500Delay in milliseconds before submitting the request
carddav_fields_for_user_inputstring""List of comma separated VCard fields to match with the user input
carddav_fields_for_domainstring""List of comma separated VCard fields to match for SIP domain
carddav_use_exact_match_policyinteger0 or 10Whether the match must be exact or approximate (ignoring accents, case, ...)
ldap_bind_dnstring""LDAP bind distinguished name
ldap_auth_methodinteger0: anonymous1LDAP authentication method
1: simple
ldap_base_objectstring""LDAP base object
ldap_name_attributestring"sn"LDAP attribute(s) to browse for contact names
ldap_sip_attributestring"mobile,telephonenumber,homephone,sn"LDAP attribute(s) to use to create SIP URIs associated with this remote contact directory
ldap_sip_domainstring""A SIP domain to filter results
ldap_filterstring"(sn=%s)"A LDAP search filter

Authentication (section [auth_info_N])

Both LinphoneRemoteContactDirectory and LinphoneFriendList objects may require authentication. Like all authentication information, they need to be supplied in the form of a LinphoneAuthInfo object, whose configuration storage representation is of [auth_info_N] section, numbered 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.

Authentication information parameters
KeyValue typePossible valuesDefault valueDescription
usernamestringanything""The username to use for authenticating
domainstringanything""A SIP domain to which the use of thie LinphoneAuthInfo is scoped to
passwdstringanything""The clear-text password
realmstringanything""The realm advertised by the server, it may be left empty if unknown
ha1stringanything""A digest HA1 of the password
algorithmstringMD5MD5The digest algorithm
SHA-256
authorization_serverstringany HTTP/HTTPS URI""An OAUTH/OpenID connect authorization server URI to use to autheticate
token_endpointstringany HTTP/HTTPS URI""URI of endpoint to refresh tokens
client_idstringanything""OAUTH client ID
client_secretstringanything""OAUTH client secret