Configure 3CX automatically via setupconfig.xml in no time!
pixel500w-500x1
Zero Admin
With the new Dashboard
pixel500w-500x1
Bulletproof Security
With SSL certs and NGINX
pixel500w-500x1
Install on $150 Appliance
Intel MiniPC architecture
pixel500w-500x1
New, Intuitive Windows Client
More themes, more UC
pixel500w-500x1
More CRM Integrations
Scripting Interface to add your own
pixel500w-500x1
Improved Integrated Web Conferencing
iOS and Android apps included
pixel500w-500x1
Personal Click2Meet URLs

Deploying 3CX and provisioning settings automatically via setupconfig.xml

Deploying 3CX and provisioning settings automatically via setupconfig.xml

On this topic

Deploying 3CX and provisioning settings automatically via setupconfig.xml

Introduction

Overview

Example of Cloud.init

How to include setupconfig in cloud init.

Setupconfig.xml explained

Configuration of the wizard

Adding Extensions, SIP Trunks and DID’s

Creating an Extension

Creating a SIP trunk, DID’s and Inbound rules

Setupconfig.xml explained

Setupconfig.xml example to import SSL Cert

Download Links

Windows link

Linux link

Introduction

It is possible to launch and automatically configure 3CX by creating an answer file - this is nothing more than all the questions that the 3CX command line tool asks you, all pre-populated in an XML file. You can get this XML file and put it either inside the host or in Cloud.Init and 3CX will run through all the questions automatically. You basically end up from nothing to a fully configured 3CX in no time!

It is also possible to include extensions, SIP Trunks and DIDs during installation.

Overview

This is how it will work:

You can also skip cloud init, prepare the xml and put it on the computer before 3CX is installed.

  1. Download this sample Setup Template XML File. setupconfig.xml
  2. Place this file on your Windows or Linux machine
  1. For Linux place the file in /etc/3cxpbx/setupconfig.xml.
  2. For Windows place file in C:\ProgramData\3CX\Data\setupconfig.xml
  1. When the pbx configuration tool sees that there is a file in the above location, it will process it.

Note: Instead of copying the file you can copy the contents of the xml and paste it in Cloud init. Example of Amazon AWS cloud-init.
During the launch of a new instance we will pass user-data to the installation.


Example of Cloud.init

How to include setupconfig in cloud init.

#!/bin/bash -e

mkdir -p /etc/3cxpbx

cat > /etc/3cxpbx/setupconfig.xml << "<EOF>"

<?xml version="1.0" encoding="utf-8"?>

<ArrayOfSerializedQuestion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <!--PUT CONTENTS OF SETUPCONFIG.XML HERE-->

<EOF>

wget -O- http://downloads.3cx.com/downloads/3cxpbx/public.key | apt-key add -

echo "deb http://downloads.3cx.com/downloads/3cxpbx/ /" > /etc/apt/sources.list.d/3cxpbx.list

apt-get update

apt-get -y install nginx

rm -f /etc/nginx/sites-enabled/default

systemctl reload nginx

apt-get -y install 3cxpbx

Setupconfig.xml explained

Setupconfig is split in 3 sections:

<tcxinit> This is the initial phase of the PBX Configuration tool. In here we will fill in the answers to the questions asked in the PBX or Web configuration tool example License or Backup file path, Network settings, Public IP, FQDN, 3CX FQDN or Custom FQDN, Hostname, Local DNS, Http/s ports.

<mcwizard> This is the second part where the answers correspond to the questions asked in the initial Management console Wizard example Extension length, mail server, timezone, country, and license information.

<extensions> this is the part where extensions are declared and created.

<siptrunk> This is where SIP Trunks and DID’s are created with a subnode for <inboundrules> to create Inbound routing associated with the DID of that SIP Trunk.

Configuration of the wizard

The wizard asks a set of questions:

 <mcwizard>
        <ExtensionLength>5</ExtensionLength>
        <AdminEmail>mn@3cx.com</AdminEmail>
        <SmtpServer>smtp.gmail.com</SmtpServer>
        <SmtpReplyToAddress>mn3cxcloud1@gmail.com</SmtpReplyToAddress>
        <SmtpUsername>mn3cxcloud1@gmail.com</SmtpUsername>
        <SmtpPassword>Voippa55</SmtpPassword>
        <SmtpEnableSsl>true</SmtpEnableSsl>
        
<CountryName>Cyprus</CountryName>
        <TimezoneId>64</TimezoneId>
        <OperatorExtension>00001</OperatorExtension>
        <VoicemailExtension>99999</VoicemailExtension>
        <LicenseContactName>Marios Neophytou</LicenseContactName>
        <LicenseCompanyName>3CX</LicenseCompanyName>
        <LicensEmail>mn@3cx.com</LicensEmail>
        <LicensePhone>+3579922345</LicensePhone>
        
<LicenseCountry>CY</LicenseCountry>               <LicenseResellerName>3CX</LicenseResellerName>
 </mcwizard>

To populate timezone, Country and country code you need to refer to this list:

http://www.3cx.com/wp-content/uploads/2016/11/Time-Zone-Sheet1-1.pdf

When asked to enter the timezone, select from the above doc and enter the ID. Example if you want to select "-8:00 Mexico (Tijuana, Mexicali)" then enter “5” in the xml.

To provision the country location, refer to the table > “List of available Country Names”. Select the country from that list. Example “United States” or “Canada”.

When you arrive to the point where you fill in the details to activate the license, you need to enter the country code. Example “AU” if Australia, “CY” if Cyprus.

Adding Extensions, SIP Trunks and DID’s

Adding extensions and SIP Trunks to answer file:

To configure an extension to work with a specific phone we will need to supply extension settings + |(Filename + Model) + MAC Address.

Phone templates and models:

http://www.3cx.com/wp-content/uploads/2016/11/Phone-templates-and-Models-Sheet1.pdf

Creating an Extension

  <extensions>
   <extension>
     <Number>00000</Number> <!-- Extension Number -->
     <FirstName>Marios</FirstName>
     <LastName>Neophytou</LastName>
     <EmailAddress>mn@3cx.com</EmailAddress>
     <MobileNumber>+3579922345</MobileNumber>
     <OutboundCallerId>1</OutboundCallerId>
     <AuthPassword>123456</AuthPassword>

      <AuthID>00000</AuthID>
     <AllowLanOnly>false</AllowLanOnly>

      <RecordCalls>false</RecordCalls>
     <ProvisioningFilename2>Snom 300</ProvisioningFilename2>
<!-- PhoneModel -->
      <TemplateFilename>snom300.ph.xml</TemplateFilename>
     <MAC>1234567890AB</MAC>
     <Codecs>

        <codec>G.711 U-law</codec>
       <codec>G.711 A-law</codec>
       <codec>G722</codec>
       <codec>GSM-FR</codec>
     </Codecs>
     <Language>English</Language>
     <ProvisionType>LocalLan</ProvisionType>

    </extension>

 </extensions>

Creating a SIP trunk, DID’s and Inbound rules

<siptrunk>
<Name>CallCentric</Name>
<TemplateFilename>Callcentric.pv.xml</TemplateFilename>     <Host>callcentric.com</Host>    

<Port>5060</Port>
   <ProxyHost></ProxyHost> <!-- Outbound Proxy -->
   <ProxyPort>5060</ProxyPort>
   <SimultaneousCalls>10</SimultaneousCalls> <!-- Number of SIM Calls -->
   <RequireRegistrationFor>InOutCalls</RequireRegistrationFor>     <AuthID>17772400345</AuthID>

    <AuthPassword>Voippa55</AuthPassword>
   <Use3WayAuth>false</Use3WayAuth>
   <SeparateAuthPassword></SeparateAuthPassword>
   <ExternalNumber>0001</ExternalNumber>
   <OfficeHoursDestinationType>Extension</OfficeHoursDestinationType>     <OfficeHoursDestination>888</OfficeHoursDestination>     <OutOfOfficeHoursDestinationType>Fax</OutOfOfficeHoursDestinationType>    <OutOfOfficeHoursDestination>777</OutOfOfficeHoursDestination>

    <DIDNumbers>12345678,12345679,123456789</DIDNumbers>
   <OutboundCallerID>123</OutboundCallerID>
   <Direction>Both</Direction>

    <DeliverAudio>true</DeliverAudio>

    <TimeBetweenReg>120</TimeBetweenReg>
   <Codecs> <!-- Codec Priority -->
     <codec>G.711 A-law</codec>
     <codec>iLBC</codec>
     <codec>GSM-FR</codec>
   </Codecs>
<InboundRules>
                <InboundRule>
                        <Name>TestRule</Name>
                        <DID>45454545</DID>
                        <OfficeHoursDestinationType>Extension</OfficeHoursDestinationType>
                        <OfficeHoursDestination>00002</OfficeHoursDestination>
                        <OutOfOfficeHoursDestinationType>VoiceMail</OutOfOfficeHoursDestinationType>
                        <OutOfOfficeHoursDestination>00000</OutOfOfficeHoursDestination>
                        <SpecificHours> <!-- OPTIONAL. If not specified it means use Global Office Hours
-->

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Monday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Monday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Tuesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Tuesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Wednesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Wednesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Thursday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Thursday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Friday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Friday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Saturday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Saturday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Sunday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Sunday</DayOfWeek>

                                </HoursRange>

                        </SpecificHours>

                </InboundRule>
        </InboundRules>
 </siptrunk>

Setupconfig.xml explained

<?xml version="1.0" encoding="utf-8"?>

<SetupConfig xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <tcxinit>
 
 <option>
     <code>InstallationType</code>
     <answer>new</answer><!--New install "new", restore Backup  = "restore"-->
   </option>
   <option>
      <code>LicenseKey</code>
     <answer>HGNS-GXYJ-IIIW-IGJA</answer>
   </option>
   <option>
     <code>BackupFile</code><!--If New install 1 skip this-->
     <answer></answer><!--PATH to Backup File-->
   </option>
   <option>
     <code>AdminUsername</code>
     <answer>admin</answer>
   </option>
   <option>
     <code>AdminPassword</code>
     <answer>admin</answer>
   </option>
   <option>
     <code>PublicIP</code>
     <answer>auto</answer><!--"auto" means take detected ip. If not good put "manual" and fill in Manual Public IP Below-->
   </option>
   <option>
     <code>ManualPublicIP</code><!--If public IP = "manual" enter ip here. if "auto" skip-->
     <answer />
   </option>
   <option>
     <code>StaticOrDynamicIP</code>
     <answer>static</answer><!--Static = "static" Dynamic = "dynamic"-->
   </option>
   <option>
     <code>LocalIP</code><!--Here we ask to choose the local ip of the machine. If you have no nat then the public is taken-->
     <answer>auto</answer><!--if auto it takes the first ip on the network stack in the list. If you answer with the "manual" option (in multiple nic adapters you will have more interfaces,) then you need to populate thje next option ManualLocalIP with the local IP Address you want"-->
   </option>
   <option>
     <code>ManualLocalIP</code><!--Answer only if above question you choose that you want to enter ip manually-->
          <answer></answer>
   </option>
   <option>
     <code>NeedFqdn</code>
     <answer>no</answer><!-- If "yes" = we need 3Cx fqdn - IF "no" Use your own fqdn -->
   </option>
   <option>
     <code>Hostname</code>
     <answer></answer><!--enter your hostname example phonesystem or company name-->
   </option>
   <option>
     <code>DnsSuffix</code>
     <answer></answer><!--This is a list of suffixes. One of following values:
                                                eu - 3cx.eu (Europe)
                                                us - 3cx.us (United States)
                                                asia - 3cx.asia (Asia)
                                                ru - 3cx.ru (Russia)
                                                de - 3cx.de (Germany)
                                                fr - 3cx.fr (France)
                                                uk - 3cx.co.uk (United Kingdom)
                                                it - 3cx.it (Italy)
                                                au - 3cx.com.au (Australia)
                                                nz - 3cx.co.nz (New Zealand)
                                                in - 3cx.in (India)
                                                es - 3cx.es (Spain)
                                                nl - 3cx.nl (Netherlands)
                                                be - 3cx.be (Belgium)
                                                tr - 3cx.com.tr (Turkey) -->
   </option>
   <option>
     <code>FullExternalFqdn</code><!--if NeedFqdn = "no" then we need FULL FQDN-->
     <answer>mncloudpbxserver.3cx.it</answer><!--This happens when you want to enter your own FQDN. Custom FQDN-->
   </option>
   <option>
     <code>CertificatePath</code>
     <answer>C:\Users\Administrator\Desktop\cert\mncloudpbxserver.3cx.it-crt.pem</answer><!--This is the certificate file which can bve either a path or it can be the whole contents of the file.. Including the "BEGIN certificate part"-->
   </option>
   <option>
     <code>CertificatePassword</code>
     <answer></answer><!--This is the PFX certificate password. Shows only when you select a pfx file"-->
   </option>
   <option>
     <code>CertificateKey</code>
     <answer>C:\Users\Administrator\Desktop\cert\mncloudpbxserver.3cx.it-key.pem</answer><!--This is the certificate key which can be either a path or it can be the whole contents of the file.. Including the "BEGIN certificate part Applies to PEM Certs"-->
   </option>
   <option>
     <code>CertificateKeyPasswordRequest</code>
     <answer /><!-- If pem cert is encrypted, then without the key, the installer will accept it but wil not be able to decrupti it. So this question is related to when you choose I want my own certificate. -->
   </option>
   <option>
     <code>HasLocalDns</code><!-- option "yes" assumes that you have a manageable local dns. Option "no" assumes that you dfo not have a dns and therefore will fallback to using IP Addresses -->
     <answer>no</answer>
   </option>
   <option>
     <code>InternalFqdn</code>
     <answer></answer><!--this is the full internal FQDN. If in HasLocalDns  you select "yes", this means you have a managed dns so therefore we need to know the FQDN local. if you select 2 then you can skip this out. "-->
   </option>
   <option>
     <code>HttpsPort</code>
     <answer>5001</answer>
   </option>
   <option>
     <code>HttpPort</code>
     <answer>5000</answer>
   </option>
 </tcxinit>
 <mcwizard>
        <ExtensionLength>3</ExtensionLength>
        <AdminEmail>mn@3cx.com</AdminEmail>
        <SmtpServer>smtp.gmail.com</SmtpServer>
        <SmtpReplyToAddress>mn3cxcloud1@gmail.com</SmtpReplyToAddress>
        <SmtpUsername>mn3cxcloud1@gmail.com</SmtpUsername>
        <SmtpPassword>Voippa55</SmtpPassword>
        <SmtpEnableSsl>true</SmtpEnableSsl>
        <CountryName>Cyprus</CountryName>
        <TimezoneId>64</TimezoneId>
        <OperatorExtension>001</OperatorExtension>
        <VoicemailExtension>999</VoicemailExtension>
        <LicenseContactName>Marios Neophytou</LicenseContactName>
        <LicenseCompanyName>3CX</LicenseCompanyName>
        <LicensEmail>mn@3cx.com</LicensEmail>
        <LicensePhone>+3579922345</LicensePhone>
        <LicenseCountry>CY</LicenseCountry>  <!-- codes from https://3cxsrv:14443/svn/root/Sources/Projects/Interface/branches/14.0.CMM/trunk/src/ManagementConsoleJS/wwwroot/tpl/ErpCountryCodes.html -->
        <LicenseResellerName>3CX</LicenseResellerName>
 </mcwizard>
 <siptrunk>
   <Name>CallCentric</Name>
        <TemplateFilename>Callcentric.pv.xml</TemplateFilename> <!-- Template file name from C:\ProgramData\3CX\Instance1\Data\Http\Templates\provider -->
   <Host>callcentric.com</Host> <!-- Registrar/Server/Gateway Hostname or IP -->
   <Port>5060</Port>
   <ProxyHost></ProxyHost> <!-- Outbound Proxy -->
   <ProxyPort>5060</ProxyPort>
   <SimultaneousCalls>10</SimultaneousCalls> <!-- Number of SIM Calls -->
   <RequireRegistrationFor>InOutCalls</RequireRegistrationFor> <!-- Type of Authentication possible values:
                                                                                                                                        Nothing - No registration required,
                                                                                                                                        IncomingCalls - Registration is only required for incoming calls,
                                                                                                                                        OutgoingCalls - Registration is only required for outgoing call,
                                                                                                                                        InOutCalls - Registration is required for both incoming and outgoing calls -->
   <AuthID>17772400345</AuthID> <!-- Authentication ID (aka SIP User ID) -->
   <AuthPassword>Voippa55</AuthPassword> <!-- Authentication Password -->
   <Use3WayAuth>false</Use3WayAuth> <!-- Use 3 Way Authentication -->
   <SeparateAuthPassword></SeparateAuthPassword> <!-- Authentication Password for 3 way authentication -->
   <ExternalNumber>001</ExternalNumber> <!-- Main Trunk No -->
   <OfficeHoursDestinationType>Extension</OfficeHoursDestinationType> <!-- Destination for calls during office hours, possible values:
                                                                                                                                                        None - end call,
                                                                                                                                                        Extension,
                                                                                                                                                        VoiceMail - destination is voicemail box of extension
                                                                                                                                                        External - destination is external number
                                                                                                                                                        Fax - destination is Fax number -->
   <OfficeHoursDestination>88888</OfficeHoursDestination>  <!-- Destination for calls during office hours (number) -->
   <OutOfOfficeHoursDestinationType>Fax</OutOfOfficeHoursDestinationType><!-- Destination for calls during out of office hours, possible values:
                                                                                                                                                        None - end call,
                                                                                                                                                        Extension,
                                                                                                                                                        VoiceMail - destination is voicemail box of extension
                                                                                                                                                        External - destination is external number
                                                                                                                                                        Fax - destination is Fax number -->
   <OutOfOfficeHoursDestination>777</OutOfOfficeHoursDestination> <!-- Destination for calls during out of office hours (number) -->
   <DIDNumbers>
        12345678,12345679,12
        </DIDNumbers>
   <OutboundCallerID>123</OutboundCallerID>
   <Direction>Both</Direction> <!-- Allow inbound/outbound calls, possible value:
                                                                        None - No calls can be made on this line,
                                                                        Inbound - Only onbound calls can be made on this line,
                                                                        Outbound - Only outbound calls can be made on this line,
                                                                        Both - Both inbound and outbound calls can be made on this line -->        
   <DeliverAudio>true</DeliverAudio> <!-- PBX Delivers Audio -->
   <TimeBetweenReg>120</TimeBetweenReg> <!-- Re-Register Timeout -->
   <Codecs> <!-- Codec Priority -->
     <codec>G.711 A-law</codec>
     <codec>iLBC</codec>
     <codec>GSM-FR</codec>
   </Codecs>
<InboundRules>
                <InboundRule>
                        <Name>TestRule</Name>
                        <DID>45454545</DID>
                        <OfficeHoursDestinationType>Extension</OfficeHoursDestinationType>
                        <OfficeHoursDestination>001</OfficeHoursDestination>
                        <OutOfOfficeHoursDestinationType>VoiceMail</OutOfOfficeHoursDestinationType>
                        <OutOfOfficeHoursDestination>001</OutOfOfficeHoursDestination>
                        <SpecificHours> <!-- OPTIONAL. If not specified it means use Global Office Hours -->

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Monday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Monday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Tuesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Tuesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Wednesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Wednesday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Thursday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Thursday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Friday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Friday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Saturday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Saturday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>08:00</StartTime>

                                        <EndTime>16:00</EndTime>

                                        <DayOfWeek>Sunday</DayOfWeek>

                                </HoursRange>

                                <HoursRange>

                                        <StartTime>17:00</StartTime>

                                        <EndTime>22:00</EndTime>

                                        <DayOfWeek>Sunday</DayOfWeek>

                                </HoursRange>

                        </SpecificHours>

                </InboundRule>
        </InboundRules>
 </siptrunk>
<extensions>

    <extension>

      <Number>000</Number> <!-- Extension Number -->

      <FirstName>Marios</FirstName>

      <LastName>Neophytou</LastName>

      <EmailAddress>mn@3cx.com</EmailAddress>

      <MobileNumber>+3579922345</MobileNumber>

      <OutboundCallerId>1</OutboundCallerId>

      <AuthPassword>123456</AuthPassword> <!-- Authentication details used by phones & client. Reprovision after a change -->

      <AuthID>000</AuthID> <!-- Authentication details used by phones & client. Reprovision after a change -->

      <AllowLanOnly>false</AllowLanOnly> <!-- Disallow use of extension outside the LAN -->

      <RecordCalls>false</RecordCalls>

      <ProvisioningFilename2>Snom 300</ProvisioningFilename2> <!-- PhoneModel -->

      <TemplateFilename>snom300.ph.xml</TemplateFilename> <!-- from C:\ProgramData\3CX\Instance1\Data\Http\Templates\phones -->

      <MAC>1234567890AB</MAC>

      <Codecs> <!-- Codec Priority -->

        <codec>G.711 U-law</codec>

        <codec>G.711 A-law</codec>

        <codec>G722</codec>

        <codec>GSM-FR</codec>

      </Codecs>

      <Language>English</Language>

      <ProvisionType>LocalLan</ProvisionType> <!-- one of values: LocalLan, RemoteExt, RemoteExtSipProxyMgr,SBC -->

    </extension>

    <extension>

      <Number>101</Number>

      <FirstName>Nick</FirstName>

      <LastName>Borg</LastName>

      <EmailAddress>mn@3cx.com</EmailAddress>

      <MobileNumber>+3579922345</MobileNumber>

      <OutboundCallerId>3579922345</OutboundCallerId>

      <AuthPassword>123456</AuthPassword>

      <AuthID>00001</AuthID>

      <AllowLanOnly>false</AllowLanOnly>

      <RecordCalls>false</RecordCalls>

      <ProvisioningFilename2>Snom 710</ProvisioningFilename2>

      <TemplateFilename>snom710.ph.xml</TemplateFilename>

      <MAC>555555555555</MAC>

      <Codecs>

        <codec>GSM-FR</codec>

                <codec>G.711 U-law</codec>

        <codec>G.711 A-law</codec>

        <codec>G722</codec>

      </Codecs>

      <Language>English</Language>

      <ProvisionType>RemoteExt</ProvisionType>

    </extension>

        <extension>

      <Number>102</Number>

      <FirstName>Roland</FirstName>

      <LastName>Lee</LastName>

      <EmailAddress>mn@3cx.com</EmailAddress>

      <MobileNumber>+3579922345</MobileNumber>

      <OutboundCallerId>3579922345</OutboundCallerId>

      <AuthPassword>123456</AuthPassword>

      <AuthID>00001</AuthID>

      <AllowLanOnly>false</AllowLanOnly>

      <RecordCalls>false</RecordCalls>

      <ProvisioningFilename2>Snom 710</ProvisioningFilename2>

      <TemplateFilename>snom710.ph.xml</TemplateFilename>

      <MAC>555555455555</MAC>

      <Codecs>

        <codec>GSM-FR</codec>

                <codec>G.711 U-law</codec>

        <codec>G.711 A-law</codec>

        <codec>G722</codec>

      </Codecs>

      <Language>English</Language>

      <ProvisionType>RemoteExt</ProvisionType>

    </extension>

        <extension>

      <Number>103</Number>

      <FirstName>David</FirstName>

      <LastName>Rodriguez</LastName>

      <EmailAddress>mn@3cx.com</EmailAddress>

      <MobileNumber>+3579922345</MobileNumber>

      <OutboundCallerId>3579922345</OutboundCallerId>

      <AuthPassword>123456</AuthPassword>

      <AuthID>001</AuthID>

      <AllowLanOnly>false</AllowLanOnly>

      <RecordCalls>false</RecordCalls>

      <ProvisioningFilename2>Snom 710</ProvisioningFilename2>

      <TemplateFilename>snom710.ph.xml</TemplateFilename>

      <MAC>555555454555</MAC>

      <Codecs>

        <codec>GSM-FR</codec>

                <codec>G.711 U-law</codec>

        <codec>G.711 A-law</codec>

        <codec>G722</codec>

      </Codecs>

      <Language>English</Language>

      <ProvisionType>RemoteExt</ProvisionType>

    </extension>

  </extensions>

<!-- All following rules will be added to the end of list of existed (if any) rules on target PBX -->

  <OutboundRules>

    <OutboundRule>

      <NumberOfRoutes>3</NumberOfRoutes>

      <NumberLengthRanges>9</NumberLengthRanges> <!-- can be comma-separated string of lengths as well: 9,10,11 -->

      <Prefix>111</Prefix>

      <Name>outbound rule name</Name>

      <DNRanges>

        <DNRange>

          <To>000</To>

          <From>000</From>

        </DNRange>

        <DNRange>

          <To>101</To>

          <From>101</From>

        </DNRange>

        <DNRange>

          <To>102</To>

          <From>103</From>

        </DNRange>

      </DNRanges>

      <!-- not sure that this node could be used, because we do not allow to create ext.groups from this xml, and user do not have information about groups on target PBX, except __DEFAULT__ -->

      <DNGroups>

        <Group>__DEFAULT__</Group>

        <Group>group_name</Group>

      </DNGroups>

      <!-- ==== -->

      <OutboundRoutes>

        <OutboundRoute>

          <Prepend>2</Prepend>

          <StripDigits>1</StripDigits>

          <Gateway>Innosoft KG</Gateway>

        </OutboundRoute>

        <OutboundRoute>

          <Prepend>3</Prepend>

          <StripDigits>2</StripDigits>

        </OutboundRoute>

      </OutboundRoutes>

    </OutboundRule>

  </OutboundRules>
</SetupConfig>

setupconfig.xml

Setupconfig.xml example to import SSL Cert

Unrelated parts were stripped from this example to only show the relevant changes.

  <SerializedQuestion>

    <RequestCode>NeedFqdn</RequestCode>

        <Answer>2</Answer> <!--2 if you want to import your own FQDN-->

  </SerializedQuestion>

  <SerializedQuestion> <!--this is the question hosters will need-->

    <Request>Enter your full external FQDN</Request>

    <RequestCode>FullExternalFqdn</RequestCode>

        <Answer>myvirtualpbx.motto.com</Answer>

  </SerializedQuestion>

  <SerializedQuestion>

    <Request>Please enter the path to your Certificate file (.pem, .crt or .pfx only).</Request>

    <RequestCode>CertificatePath</RequestCode>

        <Answer>-----BEGIN CERTIFICATE-----

MIIE0DCCA7igAwIBAgIQRUfP2/y4fBChL3Mtw9u98zANBgkqhkiG9w0BAQsFADBE

MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMU

R2VvVHJ1c3QgU1NMIENBIC0gRzMwHhcNMTQxMDIyMDAwMDAwWhcNMTgxMDIxMjM1

OTU5WjBYMQswCQYDVQQGEwJDWTEQMA4GA1UECBMHTmljb3NpYTEQMA4GA1UEBxQH

Tmljb3NpYTERMA8GA1UEChQIM0NYIEx0ZC4xEjAQBgNVBAMUCSouM2N4LmNvbTCC

ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgnnkGaloTbmeaz9qCa04G/

patphTEQ8CrO3FXGcRe23XGiY4iSBUDBzWrppwEFz5fSWYGEDyJRcs1TkvMBRRQ3

ViRgUjbjq4ec0gZIqqyYQi7MP5NCHF4PDJU223qLYXGP32f5IFM9JbOCxjQwInqt

4ZCaWZeytU3kK2y6tafMgVwsvtTR8pz2rERe25vafCjNVzZoVzxvWNmi/nsoKB8y

fe/V+utv/wT2EqhCFQ1ZOjC2j4PvJ1v0sfgPujqLjGV3ZtUz7UbzRoyYT3U99YPe

JysTfmSM3v2dtpAzSnWGJtXB0p20qFIOp+tZgHEGuHdMMzBhItJ42JfBo9Xv3nUC

AwEAAaOCAagwggGkMB0GA1UdEQQWMBSCCSouM2N4LmNvbYIHM2N4LmNvbTAJBgNV

HRMEAjAAMA4GA1UdDwEB/wQEAwIFoDArBgNVHR8EJDAiMCCgHqAchhpodHRwOi8v

MA0GCSqGSIb3DQEBCwUAA4IBAQDfGCvBcyVEMcosdCe2m2OeBt07yaOEdT6AxYWJ

AUtqswlMPk4cF48Ed5V+0ht8fnzgHqofePTe+ZGwmcMV1pYLlXpX1swEAKWugWQX

ihR4OY4MsPZVEbmzWWxsLsAUp6bmc0IQZY2/NxHUAA+JPRbrsMh6J9Bscf020cIo

aGIgsnqmzg9cXHPXRXbIh2WqvZlGIG9rTvCQBzeyrfwTf+lMJ3TwbQA2UR/OLPhb

CsmDeNqdkgQXM4fPS+2Oz2+LQlraoEeSxFWdjlSr+QtYI923O+iprpV0LIKy9AdR

kFUPn6BIwU6YgRvr/reDKGq1l518ORwJ+VRjLhp2mjJXNL6Z

-----END CERTIFICATE-----</Answer>

  </SerializedQuestion>

  <SerializedQuestion> <!--add to answer file only if you provide a pfx certificate-->

    <Request>Enter the password for your pfx</Request>

    <RequestCode>CertificatePassword</RequestCode>

        <Answer>dfijuvhlskdfhvkskldfvhz</Answer>

  </SerializedQuestion>

  <SerializedQuestion> <!--add to answer file only if you provide a crt certificate-->

    <RequestCode>CertificateKey</RequestCode>

        <Answer>-----BEGIN CERTIFICATE-----

MIIE0DCCA7igAwIBAgIQRUfP2/y4fBChL3Mtw9u98zANBgkqhkiG9w0BAQsFADBE

MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMU

R2VvVHJ1c3QgU1NMIENBIC0gRzMwHhcNMTQxMDIyMDAwMDAwWhcNMTgxMDIxMjM1

OTU5WjBYMQswCQYDVQQGEwJDWTEQMA4GA1UECBMHTmljb3NpYTEQMA4GA1UEBxQH

Tmljb3NpYTERMA8GA1UEChQIM0NYIEx0ZC4xEjAQBgNVBAMUCSouM2N4LmNvbTCC

ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgnnkGaloTbmeaz9qCa04G/

patphTEQ8CrO3FXGcRe23XGiY4iSBUDBzWrppwEFz5fSWYGEDyJRcs1TkvMBRRQ3

ViRgUjbjq4ec0gZIqqyYQi7MP5NCHF4PDJU223qLYXGP32f5IFM9JbOCxjQwInqt

4ZCaWZeytU3kK2y6tafMgVwsvtTR8pz2rERe25vafCjNVzZoVzxvWNmi/nsoKB8y

fe/V+utv/wT2EqhCFQ1ZOjC2j4PvJ1v0sfgPujqLjGV3ZtUz7UbzRoyYT3U99YPe

JysTfmSM3v2dtpAzSnWGJtXB0p20qFIOp+tZgHEGuHdMMzBhItJ42JfBo9Xv3nUC

AwEAAaOCAagwggGkMB0GA1UdEQQWMBSCCSouM2N4LmNvbYIHM2N4LmNvbTAJBgNV

HRMEAjAAMA4GA1UdDwEB/wQEAwIFoDArBgNVHR8EJDAiMCCgHqAchhpodHRwOi8v

Z24uc3ltY2IuY29tL2duLmNybDCBoQYDVR0gBIGZMIGWMIGTBgpghkgBhvhFAQc2

MIGEMD8GCCsGAQUFBwIBFjNodHRwczovL3d3dy5nZW90cnVzdC5jb20vcmVzb3Vy

Y2VzL3JlcG9zaXRvcnkvbGVnYWwwQQYIKwYBBQUHAgIwNQwzaHR0cHM6Ly93d3cu

Z2VvdHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5L2xlZ2FsMB0GA1UdJQQW

MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTSb/eW9IU/cjwwfSPa

hXibo3xafDBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9nbi5z

eW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9nbi5zeW1jYi5jb20vZ24uY3J0

MA0GCSqGSIb3DQEBCwUAA4IBAQDfGCvBcyVEMcosdCe2m2OeBt07yaOEdT6AxYWJ

AUtqswlMPk4cF48Ed5V+0ht8fnzgHqofePTe+ZGwmcMV1pYLlXpX1swEAKWugWQX

ihR4OY4MsPZVEbmzWWxsLsAUp6bmc0IQZY2/NxHUAA+JPRbrsMh6J9Bscf020cIo

aGIgsnqmzg9cXHPXRXbIh2WqvZlGIG9rTvCQBzeyrfwTf+lMJ3TwbQA2UR/OLPhb

CsmDeNqdkgQXM4fPS+2Oz2+LQlraoEeSxFWdjlSr+QtYI923O+iprpV0LIKy9AdR

kFUPn6BIwU6YgRvr/reDKGq1l518ORwJ+VRjLhp2mjJXNL6Z

-----END CERTIFICATE-----</Answer>

  </SerializedQuestion>

Download Links

Download a a supported beta build supporting answer file:

Windows link 

http://downloads.3cx.com/downloads/3CXPhoneSystem15.60763-beta.exe

Linux link

Go to “/etc/apt/sources.list.d/3cxpbx.list” and update the repository to “http://downloads.3cx.com/downloads/3cxpbxbeta/ /”. After this perform “apt-get update” and “apt-get install 3cxpbx” commands.


Ask a Question

Please only post questions in regards to the document you are currently reading.
Technical support or pre sales questions must be posted via the support or sales channels and such comments will be deleted. Thank you for understanding
<