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