Content

Page tree

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

<functionKeys> tag as individual XML file
<?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>
inside <settings> tag
 <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

Please check out the matrix of function key index ranges for the D3xx and D7xx series.

  • 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

Example of <functionKeys> tag
<?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>