Editing provisioning templates

Kerio Operator offers overriding templates for provisioned phones.

Template overrides were developed to allow you to change default values in the provisioning template. You can change for example remote changing BLFBusy Lamp Field - A set of indicators that monitor the current state (online, offline, busy, on a call) of a phone extension., speed dials or phone's language).

Using Template Overrides

  1. Go to administration interface.
  2. In section Provisioned Phones, click Advanced > Template Overrides..
  3. Click Edit.
  4. Edit the template. Kerio Operator uses the same file for a group of phones, for example for all snom phones or all Cisco SPA phones.
  5. Click OK.
  6. Click Close.
  7. Restart your phones.

Using developer's documentation

When you edit a template, you can use input variables that come preset when your scripts are run. Variables are described in Kerio Operator provisioning reference guide:

  1. Download Provisioning Developer Documentation.
  2. Extract the ZIP file.
  3. Open refguide.pdf.

You can use all variables mentioned in the downloaded document.

Example: Changing a phone's language

Lines beginning with @ contain regular PHP code which is executed when the template is sent to the phone. So you can do things like:

@ if ($IDENT === 'snom720') {
language: Deutsch
@ }

This switches the snom 720 phones' language to German.

To find out what the variable $IDENT can contain, you can temporary add line:

@ var_dump($PHONE_TYPES);

To view the result:

  1. In the Provisioned Phones > Hardware Phones section, right-click the snom phone.
  2. In the context menu, click Download Configuration and select the correct interface.
  3. Open the saved archive and verify the variable in the file.

To differentiate between the phones, you can use variables such as $PHONE_IP or the $LINES array. To change a specific phone, one can do:

@ if ($PHONE_IP === '') {
language: Deutsch
@ }


In this case you can not verify the functionality by downloading the file in the administration, because the $PHONE_IP does not match.

Another example is:

@ if (isset($LINES[0]) && $LINES[0]['TELNUM'] === '21') {
language: Deutsch
@ }

The example checks if the phone has at least one extension number and sets the language to German if the first extension is 21.