Compatibility break with linphone-sdk 5.2

Last modified by Simon Morlat on 2024/03/11 11:44

Version 5.2.94 breaks compatibility with some usage of the [proxy_default_values] section of linphone's remote configuration file.

Description of the change

Previously, the [proxy_default_values] section provided configuration default values for the SIP account parameters present in [proxy_0].

A typical remote provisioning configuration file could contain:
 

[proxy_default_values]
reg_expires=24000
reg_server=sips:sip.example.net

[proxy_0]
reg_identity=sips:bob@sip.example.net

When Linphone starts, if no value for reg_expires or reg_server are found in [proxy_0], their values are taken from [proxy_default_values].

This facility was used by Flexisip Account Manager's remote provisioning service up to version 1.4.

Unfortunately, doing this had a major drawback, which is the impossibility for an application to programmatically change the value of a property to an empty string if a non-empty value exists in [proxy_default_values].

In addition, it resulted in a duplication of key/values and brought unnecessary complexity.

A change was then made to only use [proxy_default_values] provided values when an application instanciates a new LinphoneAccount object, but no longer when liblinphone instanciates a LinphoneAccount from an existing [proxy_0] section.

Consequences

Because of this change, remote provisioning servers using [proxy_default_values] and [proxy_0] sections simultaneously will no longer be able to configure a Linphone application as before. All key/values given in [proxy_default_values] are ignored.

Newly provisioned applications are then left incorrectly configured, which can results in large set of defects: absence of push notifications, no media or lime encryption settings...

Solution

Remote provisioning configuration files that wish to provision the user identity must only use [proxy_0] section.

This solution is implemented from version 1.5 of Flexisip Account Manager's remote provisioning service. Any already existing default.rc file must be manually edited to move all settings from [proxy_default_values] to [proxy_0] section.