Content
The function key settings XML (<functionKeys> or <function-keys>) tag contains the free programmable function key configuration parameters. This XML tag can be used either inside the <settings> tag or as an individual XML file whose URL is listed inside <setting-files> tag.
Syntax
<?xml version="1.0" encoding="utf-8"?> <functionKeys> <fkey idx="<function_key_index)>" context="<function_key_context>" label="<function_key_label>" [default_text="<label_default_text>"] perm="<permission flag>"> <value> </fkey> ... <fkey idx="<function_key_index>" context="<function_key_context>" label="<function_key_label>" [default_text="<label_default_text>"] perm="<permission flag>"> <value> </fkey> </functionKeys>
<functionKeys> <fkey idx="<function_key_index)>" context="<function_key_context>" label="<function_key_label>" [default_text="<label_default_text>"] perm="<permission flag>"><value></fkey> ... <fkey idx="<function_key_index>" context="<function_key_context>" label="<function_key_label>" [default_text="<label_default_text>"] perm="<permission flag>"><value></fkey> </functionKeys>
fkey attributes
- idx string defines the free function key index n:
0...n, with n= (Number of integrated function keys + number of attached expansion modules * number of expansion module keys) - 1
- context string defines the function_key_context
- label string defines the function_key_label
- lp string defines the function_key_longpress. When setting a value that is not the default value for this setting you have to also add clp="1".
- default_text string defines the label_default_text. This attribute is optional and applicable only to self-labeling keys. It has no effect when the key is not self-labeling. When omitted on a self-labeling key, label_default_text remains unchanged.
- perm string defines the <permission flag>
- value string defines the function key value, optionally followed by a space and a value-specific argument. As of firmware versions 8.2.19 and 8.4 and above, xml subtrees can be used instead.
Example
<?xml version="1.0" encoding="utf-8"?> <functionKeys> <fkey idx="0" context="active" perm="">line</fkey> <fkey idx="1" context="active" perm="">line</fkey> <fkey idx="2" context="active" perm="">keyevent F_REDIAL</fkey> <fkey idx="3" context="active" perm="">keyevent F_ADR_BOOK</fkey> <fkey idx="4" context="active" perm="">keyevent F_TRANSFER</fkey> <fkey idx="5" context="active" perm="">keyevent F_MUTE</fkey> <fkey idx="6" context="active" perm=""> <general type="Remote Indicator"> <default_state name="initial"/> </general> <appearance> <line_info_layer> <line_format line="0">$state $type</line_info_layer> <line_format line="1">$continue $name</line_info_layer> </line_info_layer> </appearance> <subscription type="presence" for="numbers@snom.de" to="snom2@snom.de"> <NotifyParsingRules type="applies"> <level1 translates_to='OK'>/presence/dm:person/snom:preferred-uri[.="tel:+42 4711 0815"]</level1> </NotifyParsingRules> <NotifyParsingRules type="state"> <level1 fetch_content='true'>/presence/dm:person/rpid:activities/snom:activity</level1> <default translates_to='unknown'/> </NotifyParsingRules> <NotifyParsingRules type="variable" id="call_id" states="ringing,calling"> <level1 fetch_attribute="call-id">/dialog-info/dialog</level1> </NotifyParsingRules> <NotifyParsingRules type="variable" id="remote_tag" states="ringing,calling"> <level1 fetch_attribute="remote-tag">/dialog-info/dialog</level1> </NotifyParsingRules> <NotifyParsingRules type="variable" id="local_tag" states="ringing,calling"> <level1 fetch_attribute="local-tag">/dialog-info/dialog</level1> </NotifyParsingRules> <NotifyParsingRules type="variable" id="local_uri" states="ringing,calling"> <level1 fetch_attribute="uri">/dialog-info/dialog/local/target</level1> </NotifyParsingRules> <NotifyParsingRules type="variable" id="remote_uri" states="ringing,calling"> <level1 fetch_attribute="uri">/dialog-info/dialog/remote/target</level1> </NotifyParsingRules> <NotifyParsingRules type="variable" id="local_name" states="ringing,calling"> <level1 fetch_attribute="display">/dialog-info/dialog/local/identity</level1> </NotifyParsingRules> <NotifyParsingRules type="variable" id="remote_name" states="ringing,calling"> <level1 fetch_attribute="display">/dialog-info/dialog/remote/identity</level1> </NotifyParsingRules> </subscription> <action> <dial target="$(remote_name)<$(remote_uri)>" when="on press" state="ringing" request_uri="$(remote_uri)" replaces="$(call_id);to-tag=$(remote_tag);from-tag=$(local_tag)"/> <dial when="on release" target="*302*" states="connected,holding"/> <dial when="on press" target="*43_keyXyPressed" /> </action> </fkey> </functionKeys>
Further Information
Related articles