3CX V20 U9 Provider Template Builder

Update 9 of 3CX V20 brings more great tools to manage custom provider templates. In the following examples, we will use the Generic VoIP Provider template as the starting template, and demonstrate how to implement customizations.

Copy a default template to create a custom template

  • Navigate to "Admin → Advanced → Templates → Provider Templates"
  • From the dropdown, select "GenericVoIPProvider.pv.xml" and create a copy

  • The Create Copy dialog allows you to select which trunk settings will be exposed when configuring a trunk with your custom template
  • The Regional Country Visibility allows you to select the countries under which this custom template will be listed; keep the list empty if you want it to be listed only under "Worldwide"
  • If you making a copy of a template that is already in use with any configured trunks, the Template Migration option will, by default, synchronize the configured trunks with your new custom template when you click the Create button
  • Click the Create button to save the custom template; it will now be available in the Voice and Chat menu when creating a new trunk
  • The interface allows you to edit the template directly
  • typically you would only need to adjust the <name> element to better identify it in the list of templates when creating a trunk

  • in this example, we adjust the name to "CustomTemplate01 (Registration)", and click the Save button

  • the new custom template is now visible with the new name in the list of templates when creating a new trunk

Adjusting custom template settings

You can make adjustments to the custom template via the Tune options:

  • use Tune -> Trunk Visibility Settings to adjust which trunk settings will be exposed

  • use Tune -> Provider Compatibility Options when a provider requires adjustments to:
  • Outbound Caller ID Handling
  • Inbound Caller Name Handling
  • Inbound Call Identification
  • see below for more information on these options

Export and import a provider template

Any built-in and any custom provider template can now be exported from the "Advanced -> Templates" page; you can make edits to the template in an external editor before importing your customized version.

Click the Add button to import a custom template:

  • the Add Template dialog will present you with the Regional Country Visibility and Trunk Visibility Settings
  • click the Create button to complete the import

Deleting a custom provider template

You can delete a custom provider template, as long as it is NOT in use with any trunk.

If your custom template is currently in use, the Delete button will be disabled. Before you can delete the custom provider template you must:

  • delete any trunks using the custom provider templates, OR

  • Use the "Switch Template" option on any trunks using the custom provider template

Keeping your trunks and templates synchronized

When editing a custom provider template in the Advanced -> Templates -> Provider Templates page that is currently in use with a configured trunk, clicking the Save button will present the "Apply Template Changes" dialog; you can click the Apply button to apply the changes to all trunks that are currently using the custom template.

However, if you click the Cancel button, you will save the custom template WITHOUT applying the changes to the trunks using the custom template; effectively this means that your trunks are NOT in sync with the saved version of the custom template.

Sync a single trunk to its custom provider template

To sync a trunk with the saved version of the custom template, navigate to the Admin -> Voice & Chat page, and select the Sync Template option for your trunk.

The View Template option provides a shortcut to navigate directly to the custom provider template.

Sync a saved custom provider template to all trunks using it

To sync all trunks with the saved version of a specific custom provider template, navigate to the Admin -> Advanced -> Templates -> Provider Templates page, and select your custom template.

Click the Apply to Trunks button (the button shows how many trunks are configured with the custom template).

Click the Apply button to apply the changes and sync the trunks to the template.

Tuning trunk visibility settings

The Trunk Visibility tuning options allow you to simplify the number of options needed to configure a trunk, by hiding those options that are not relevant to your provider's configuration.

  • You should check the "Secondary Registrar" option if your provider allows a secondary or failover registrar; this controls visibility of the "Alternative Proxy" option in the Options page of the trunk configuration page
  • You should check the "IP in Contact (Registration)" option if the "Use Default Settings" option is insufficient because your provider requires a specific IP Address setting for the SIP "Contact" header and the SDP "Connection" header
  • You should check the "Public IP Via" option if your provider requires a specific IP Address to be forced in the "Via" header
  • You should check the "Advanced Options" checkbox if your provider requires non-default settings for the following:
  • Transport Protocol (default "Any")
  • IP Mode (default "Any)
  • SRTP Mode (default "Disabled")
  • Re-Register timeout (default 180)
  • PBX Delivers Audio (default checked)
  • Disable Video (default checked)
  • Support Reinvite (default unchecked)
  • Support Replaces (default unchecked)
  • You should check the "TLS / Certificates" option if your provider supports TLS as a transport protocol, and requires a CA authority certificate to be configured for signature verification
  • You should check the "3-Way Authentication" option if your provider an additional a 3-way authentication password
  • You should check the "Authentication Type" option if your trunk is not a default Registration-based account; this controls visibility of the "Type of authentication" option, which is typically needed only if you need to select "Do not require - IP based"
  • You should check the "Geo911" option if your provider has Geolocation support for emergency calls; this controls visibility of the "E911 Geolocation" settings in the trunk options page
  • You should check the "E164" option if you wish to expose the e164 number format warning in the trunk's General tab:

Tuning provider compatibility options

The Provider Compatibility tuning options allow overriding specific SIP behaviours to maximize compatibility with your provider's requirements. Keep in mind that for each of the sections (for example Outbound Caller ID Handling), you can select ONE option; if your particular provider requires multiple adjustments inside the same section, you will need to apply them manually.

  • Outbound Caller ID Handling options:
  • If your provider expects P-Asserted-Identity headers, select one of:
  • Use P-Asserted-Identity (PAI) with user Caller ID; this will present the user's Outbound Caller ID in the "user" part of the PAI header
  • Use P-Asserted-Identity with main trunk number; this will present the trunk's Main Number in the "user" part of the PAI header
  • Use P-Asserted-Identity with external Caller ID; this will present the Originator's Caller ID in the "user" part of the PAI header; when a user extension forwards calls out to the extension's mobile, the user can see the Caller ID of the original caller
  • If your provider expects Remote-Party-ID headers, select one of:
  • Use Remote-Party-ID with user Caller ID; this will present the user's Outbound Caller ID in the "user" part of the RPID header
  • Use Remote-Party-ID with external Caller ID; this will present the Originator's Caller ID in the "user" part of the RPID header; when a user extension forwards calls out to the extension's mobile, the user can see the Caller ID of the original caller
  • If your provider expects P-Preferred-Identity headers, select one of:
  • Use P-Preferred-Identity with user Caller ID; this will present the user's Outbound Caller ID in the "user" part of the PPI header
  • Use P-Preferred-Identity with external Caller ID; this will present the Originator's Caller ID in the "user" part of the PPI header; when a user extension forwards calls out to the extension's mobile, the user can see the Caller ID of the original caller
  • If your provider allows CLIP No Screening functionality, select:
  • Send caller ID in From header (CLIP No Screening); this will present the original calling number in the "From" header
  • Inbound Caller Name Handling options:
  • The recommended setting is to select "Use caller number from SIP user part (recommended)" option, as in this example:

From: "+16801234567" <sip:[email protected]>

  • You can also select the "Use caller name from SIP display name" option if your provider presents the caller name in the "display" part of the "From" header, as in this example:

From: "John Smith" <sip:[email protected]>

  • Inbound Call Identification options:
  • The recommended setting is to select "Automatic (recommended)", where 3CX automatically identifies inbound calls using registration (rinstance) data and provider information, as in this example:

Contact: <sip:[email protected]>;rinstance=abcdef123456

  • You can also select the "Identify inbound calls by provider host" option; 3CX will match the host part of the "Contact" header, as in this example:

Contact: <sip:[email protected]:5060>

  • This may help with identifying incoming calls, particularly in the case of IP-based trunks; however, keep in mind that you may encounter issues when trying to implement multiple trunks from the same IP-based provider

Last Updated

This document was last updated 27 March 2026

https://www.3cx.com/docs/voip-provider-template-builder/