Migrating from FreePBX® 12/13/14 to 3CX
Overview
Τo help you migrate to 3CX v16, you can convert an existing FreePBX ® 12/13/14 backup to a 3CX-compatible configuration that you can restore when configuring your new installation. The Online Configuration Converter enables you to upload your backup and download the converted 3CX configuration.
Step 1: Take a backup in FreePBX®
To take a Backup on FreePBX® 12/13/14, log into the server as an administrative user and click on “Admin” > “Backup & Restore” on the menu, then click “New Backup” as shown below:
Give the backup a name under field “Backup Name”.
In the Items list, click the “+” button to add the following items:
- File: /var/lib/asterisk/astdb.sqlite3
- File: /etc/asterisk/extensions_additional.conf
- File: /etc/asterisk/sip_additional.conf
- File: /etc/asterisk/iax_additional.conf
- File: /etc/asterisk/manager.conf
- File: /etc/asterisk/voicemail.conf
- Directory: __ASTVARLIBDIR__/sounds/custom
- Directory: __ASTVARLIBDIR__/sounds/*/custom
- MySQL: Config server
Under the Backup Server section, pick a backup location for e.g set “This server” in the dropdown then drag-drop “Local Storage” from the “Available Servers” list to the “Storage Servers”.
Click “Save” and then “Save and Run”.
Once the Backup is completed popup shows “Backup successfully completed!”:
Open a file transfer client such as FileZilla Client or WinSCP, and open an SSH connection to your server.
Then browse to the backup location, which is by default /var/spool/asterisk/backup/NAME_OF_YOUR_BACKUP and download the *.tgz file located there:
Step 2: Convert Configuration to 3CX
Open the Online Configuration Converter in your browser and follow the step-by-step instructions to convert your configuration backup to 3CX and restore it during the first-time 3CX configuration.
Step 3: Import DIDs
Once your PBX is configured, you can import DIDs and inbound rules. If you have only one trunk you can keep trunk number 10000 and import as is from “Inbound Rules” > “Import”.
If you have more trunks, you need to verify the internal trunk number with these steps:
- Go to “SIP Trunks”.
- In the search bar, type
10000
and wait for the list to refresh and display only the trunk matching this number.
- Increment value by 1, and see which trunk matches, and so on.
- Open the CSV to import in Notepad++ and adjust the “PORTS” column value, set by default to
[10000]
, for all rules to the corresponding virtual number.
- Save and import the CSV file via “Inbound Rules” > “Import”.
What is Restored
Extensions
SIP and IAX extensions are restored with:
- Extension number
- Password
- Name – “Caller ID” field is split as “First Name” and “Last Name” if it includes one space character, if none or more then everything is converted to “First Name”.
- Email, if voicemail feature was configured
- Outbound caller ID
- SIP ID
A random voicemail PIN number is generated for each extension and enabled by default. The operator extension designated is the first extension parsed. All extensions are added to the “DEFAULT” group and assigned the “User” role.
Trunks
SIP trunks are restored with:
- Registrar Host
- Registrar Port if specified, otherwise 5060
- Login
- Password
- Main number
- Default Outbound Caller ID
- Number of maximum calls
A virtual number is created for each trunk, starting from 10000, and the default route is set to the operator extension.
Inbound Routes
In 3CX inbound rules have to be bound to a specific trunk, differing from previous versions. To restore you need to generate a CSV including your DIDs and CIDs, with their route, i.e. extension, IVR, or voicemail.
📄 Notes:
- Trunk number is set to 10000 by default and needs to be adjusted manually before import.
- DIDs shorter than 4 digits are not imported as this is the minimum length accepted by the system.
Outbound Routes
These settings are restored for outbound routes:
- Name
- First dial pattern, given that it has exact match prefix and prepend values only*.
- Up to 5 trunks sequence
- Position of the route
- Emergency route, if so an emergency number is added in PBX settings, but just route 1 is considered with no append value.
* Outbound routes with complex dial pattern expressions with letters or symbols (dash, dot) are ignored.
IVR
IVRs are restored with:
- Name
- Timeout
- Timeout destination if Terminate, Extension, other IVR, extension voicemail. Others are replaced by Terminate call.
- Invalid input destination if Extension, or other IVR. Others are replaced by Repeat prompt.
- Menu options for digits 0 to 9, if Terminate, Extension, other IVR, extension voicemail.
- Announcement + custom system recording associated.
The system recording WAV file is converted automatically to the standardized audio format accepted by the system, i.e. WAV, Codec: PCM, Bit rate: 8Khz, Sample: 16bits, Mono.
Blacklist
All blacklisted numbers are restored with their name and number.
Feature Codes
These feature codes are restored as dial codes:
- Dial voicemail
- Pick parked call
- Intercom prefix
- DND ON
- DND OFF
Others
- New 3CX options, not present in previous FreePBX® versions, are generated with random credentials and include “Tunnel Password”, “Default fax extension password”, and provisioning subfolder name.
- The admin notification email is set to the FreePBX® admin user’s email address.
- The new admin password is the MD5 hash of your current password, as read from file
/etc/asterisk/manager.conf
, under “admin” / “secret” section.
FreePBX® is a Registered Trademark of Sangoma Technologies. This trademark is not affiliated with 3CX, its products, or its websites. Sangoma Technologies is not the source of, and does not sponsor or endorse, the products/services promoted here. 3CX is not associated with or sponsored by Sangoma Technologies.
All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Leave A Comment?