Patching Settings#
The phone decides for each settings-section (e.g. telephony, identities, ..) whether it replaces the existing settings-section or if it merges the provided settings with the existing ones.
When patch is set to true then the settings-section is merged. When nothing is declared, patchDefault is used (optional attribute of <configuration>
) which defaults to ''true''.
Usually patching means to replace the setting-subsections with the ones provided:
<configuration>
<telephony>
<callWaiting>
<active>true</active><!-- set /telephony/callWaiting/active to true -->
<!--tone>true</tone--> <!-- dont touch /telephony/callWaiting/tone -->
</callWaiting>
<callForwarding>
<unconditional>
<active>false</active><!-- set /telephony/callForwarding/unconditional/active to false -->
<!-- dont touch target or timeout -->
</unconditional>
<!-- dont touch other callForwarding-subs like busy or noResponse -->
</callForwarding>
<!-- dont touch any other telephony-settings -->
</telephony>
</configuration>
In the above example the values to be replaced were decided by the xpath, e.g. /telephony/callWaiting/active
. There are multiple settings that come in lists where each element has the same xpath, only a different index. E.g. /keys/phoneXtensions/key
. In these cases the merge-mechnism watches for a special attribute that is unique to such an element. These Elements replace their existing counterparts in entirety.
<keys version="1.8.8">
<phoneXtensions>
<key icon="" keyNumber="1" info="" label="">
<!--replace the key with keyNumber 1 with whatever is provided here-->
</key>
<key icon="" keyNumber="2" info="" label="">
<!--replace the key with keyNumber 2 with whatever is provided here-->
</key>
<!--don touch any other phoneXtensions-keys-->
</phoneXtensions>
</keys>
This is the current list of these special marking attributes:
users/user@name
keys/phoneXtensions/key@keyNumber
keys/extensionModule1/key@keyNumber
keys/extensionModule2/key@keyNumber
keys/extensionModule3/key@keyNumber
keys/homeScreen/key@keyNumber
telephony/callBindings/callBinding@name
templates/template@name
devices/cameras/ipCamera@name
luaLibraries/luaLibrary@name
luaAutoStarters/luaScript@name
Info
Identitiy-elements do not have a special marker-attribute
Identities get merged the standard way. E.g.: to just change the username of the third identity, provision this: