Customizing / Editing The Built-In Phone Provisioning Templates

This content is for 3CX V14. For newer versions, take a look at this guide.

Provisioning phones eliminates the difficulties associated with manually configuring a large number of devices, which include:

  • Manually configuring phones is a tedious task.
  • It can be very time consuming.
  • There is a high risk of human error.
  • It is difficult to guarantee an enterprise-wide configuration.

Customizing a Phone Template

3CX Software PBX is pre-configured with a large number of phone templates. There are situations where you may want to adjust the default template to change a particular setting which you would want all your provisioned phones to have.

For this example, we will use the template for the Yealink T48G phone, and we will adjust the template so that each phone will be configured to have as available user interface language only English, instead of the usually available languages (Chinese,Portuguese, Russian, Italian, Spanish etc).

To customize the languages available to the phone’s user interface, we will need some way to edit the phone’s template. The simplest way is to use the 3CX Management Console. To edit and create your own custom Phone Template follow these steps:

  1. Log into the 3CX Management Console, select the “Settings” node, and click on “Provisioning Templates”.Provisioning Templates scr1
  2. Make sure that the “Template Type” field is set to “Phones” and click on the “Template Name” field, scroll down the list and select the “Yealink T48”.
  3. The <models> tag (found towards the beginning of the template) will list the phone models that the template applies to (in this case it applies to the Yealink T4X series which includes the models Yealink T19P/E2, T21P/E2, T27P, T29G, T23P/G, T41, T42, T46, T48).
    Provisioning Templates scr2
  4. Remove the models that are not required and rename the models that you decide to keep so that they can be easily differentiated from the ones originally included in the template (e.g. “My custom Yealink T38 english”). Note: Do NOT change the model ua value! Change the value after the model ua value as shown below.Provisioning Templates scr3
  5. To remove the models that are not required for your custom template remove the model ua tag. <model ua=”SIP-T19P_E2″>Yealink T19P_E2</model> and all the other models except the T48G.
  6. Use CTRL-F to load the search dialog and search for “languages”.
    : The search string will be different for different features, and will also vary for the same feature from brand to brand. You will need to refer to the admin guides of the different phone brands to understand how to exploit the phone features from the provisioning file.
  7. Change / remove the relevant language lines according to your needs. In this example we only want to leave the English language available in the custom so we have to remove the other language lines which are marked with blue on the screenshot below:
    Provisioning Templates scr4
  8. After the languages are removed the only language entry that should remain should be as follows:
    <option value="English">
    <item name="langwebUI">English</item>
    <item name="langlcdUI">English</item>
  9. Click “OK” at the bottom of the page. Save your custom template by using a different name for the Template Name” and “File Name” to save your own copy. If you do not do this, you risk losing your custom template the next time 3CX releases an update to the template. Click “OK”.
    Provisioning Templates scr5

If you prefer to use a text editor for this task (such as Notepad++), locate the template file in:
C:\Documents and Settings\All Users\Application Data\3CX\Data\Http\templates\phones


…in this case you will need to edit the file “”, and simply effect the same changes as listed above. Using a “smart” text editor such as Notepad++ gives you the added benefit of “Syntax Highlighting”, making it much easier to make complex edits.

Note: The 3CX Phone Provisioning Templates make use of variables which are documented at here.

Cloning a phone template for particular needs

Sometimes it may be desirable to be able to provision some phones with one set of features, and some other phones with a different set of features. For example, we may want some of the phones to provision with multiple language options, while the others to provision with English as the only available language for the phone.

To achieve this we need to have two templates – one for one set of features, and the other with the second set of features. This can be implemented simply by adding a second template (ideally by cloning an already-existing one), and making some adjustments to make sure that you can select the correct template from the 3CX Management Console. To clone a template file:

  • First, simply make another copy of the relevant template file by going to the 3CX Management Console “Provisioning Templates”. Select the phone template that you want to clone from the “Template Name” drop down list  list.
  • Next adjust the “<models>” XML tag contents so the phone models which will appear in the drop-down list in the provisioning screen will be recognizable. So for this example, the original file will contain:

<model ua="SIP-T19P_E2">Yealink T19P_E2"</model>

And if the second file will contain the same “<model>” tags, the phone model names will appear to be duplicated in the drop-down list in the provisioning screen. You should change them to something easily recognizable, such as:

<model ua="SIP-T19P_E2">Yealink T19P_E2 only english</model>

Now you simply customize the chosen features, and save the file by clicking “Apply” and giving it a different file name than the default.

Provision Phones using the Customized Template

Now that you have made the changes to the Provisioning template for your phone, you will need to provision the phones with the customized template. Proceed as follows:

  1. For both new extensions and existing extensions, you can do this from Extensions > Select the Extension number and then select the “Phone Provisioning” tab.
    Provisioning Templates scr6
  2. Select the custom model name from the Model drop down list.
  3. Click “OK” to save changes
  4. If this is an existing extension, you can force re-provisioning of the phone from the “Phones” node.