Skip to end of metadata
Go to start of metadata

Background

As 3CX has purchased the PIAF and Elastix brands, and shut down and removed their offerings (that were based on FreePBX), we have built a conversion tool to assist users who do not wish to move to the 3CX Ecosystem, and want to stay with FreePBX. This tool is currently in early release testing, and can be used to migrate machines.

As this tool is in early release, we urge caution, and ask you to validate all the settings on the new machine.

How it works

  • You will need to install a fresh FreePBX Distro 10.13.66 machine as outlined here.
    • Optionally you can look at purchasing a hosted FreePBX machine at freepbxhosting.com.  We have a special promo of HOME2FREEPBX that will give you a Free 30 day trial.
  • Activate your new PBX as outlined here.  
  • Run the conversion script on your NEW FreePBX Distro machine by running the command
    curl -s https://convert.freepbx.org | bash
  • That will attempt to request a slot in the conversion queue.  When successful, it will present you with a long string of letters and numbers, that look like 1f34eba4-a1db-4a11-b8ba-d899184abf05
  • When you have a conversion slot, you can now run the same command script (curl -s https://convert.freepbx.org | bash)on the existing 'DONOR' machine and enter the Slot Reservation ID that was reserved on the NEW machine.
  • The converter will then extract the required data from the DONOR machine and load it into the NEW machine. Nothing will be changed on the DONOR machine! This is a READ ONLY process on the donor, and does not require an outage.
  • The script will attempt to automatically copy the customizations from the DONOR machine to the NEW machine. This includes custom sound files and any provisioning information.
  • Note that any TRUNKS will be set to 'disabled' on the NEW machine! This is to make sure that you don't accidentally have the NEW machine register to a SIP provider!

What Data will come over

  • Since both Elastix and PIAF are based on some versions of FreePBX we will only be bringing over the PBX related settings such as
    • Extensions
    • Routes
    • Trunks
    • MOH
    • IVRs
    • Ring Groups
    • Queues
    • Basically anything you setup related to the PBX that is part of normal FreePBX
  • We will bring over all sound files including
    • Custom MoH
    • Voicemails
    • Voicemail Greetings
    • System Recordings

What Data will NOT come over

  • Call History (CDRs and CEL Databases)
    • Note this is 'coming soon', but is not in the current release. You will need to copy the CDR databases across manually, if you want to preserve them.
  • User Fax Configuration.
    • Faxing has changed dramatically since the older versions of FreePBX that were historically used with Elastix and PIAF, and is now mainly done through the User Manager module. You will need to reconfigure the users with fax email addresses, if they receive faxes.
  • Any 'custom' configuration files.
    • This means anything that has been modified by the system administrator in the *_custom.conf files, such as /etc/asterisk/extensions_custom.conf will not be migrated, as it is impossible to do that automatically.
  • Settings made inside non FreePBX based modules. These include things like
    • 3rd Party modules like phpmyadmin and webmin
    • Elastix Call Center Module
    • Queue Metrics
    • Anything that is not a core FreePBX module on Elastix or PBXiaF
    • Network and Operating System level settings

Getting Started

Create a new machine

Create your new machine. We strongly recommend using the 64 bit Distro on your new machine, so it can be upgraded in the future. The 32 bit distro is not upgradable to SNG7 (Which is based on RHEL 7.2). You can use the new SNG7 distro, with FreePBX 14, but please remember that SNG7 and FreePBX 14 are in beta, so you may experience minor issues. However, If you want to use the Opus codec, you must use SNG7, as is only available there (for unfortunate technical reasons).

Make sure it's ACTIVATED. This is used by the conversion script to generate a unique, cryptographically secure key, that encrypts your data while it's in transit. A large number of older machines do not have a valid SSL certificate, so it is impossible to protect against Man-In-The-Middle attacks, or someone 'sniffing' your data while it's in transit. Activation is free and easy.

Configure NAT and Firewall settings

FreePBX Distro has a built in, secure, firewall. As part of your first login, you will be presented with the Firewall Wizard, which will automatically configure your NAT and Firewall settings.

Reserve a conversion slot

After you've finished setup, and your machine is empty and ready to go, you can now attempt to reserve a conversion slot. This is done by running the conversion script, and pushing 'enter' when prompted for the reservation ID.

[root@freepbx ~]# curl -s https://convert.freepbx.org | bash
Checking that 'curl' exists ... OK!
Validating sha256 integrity ... OK!
Trying to download converter to /tmp/tmp.AKctIWjXSd ... Complete
Validating download ... OK!
Testing connectivity to Conversion server...Success!
FreePBX Conversion Wizard
-------------------------

The FreePBX Conversion Wizard needs to be run on two machines, the NEW
machine, which must be an ACTIVATED FreePBX Distro machine, and then it must
be run on the DONOR machine.

The DONOR machine is the machine that is currently processing calls, and is
the machine that will be migrated to the NEW machine. No changes will be made
to the DONOR machine, and this script will not stop or restart any services
that may cause an outage.

If this is the NEW machine, just push 'Enter' to prepare this machine

Enter ID (blank if this is NEW):

Testing FreePBX functionality ... Success!
Getting Deployment ... 12345678
Getting all Module versions (for conversion) ... OK
Reserving a conversion slot ... Reserved!
The Conversion process is now ready. Please run the script on the
DONOR node now, and when asked for a slot identifier, please enter
the following ID:
	12345789-abcd-4ef0-1234-56789abcdef0
[-] Waiting for Donor...

Export the data

You can now run the conversion script on the DONOR machine,  This exports all the data that needs conversion to the conversion service, and creates a compressed, encrypted, archive of everything that can be moved across without modification

[root@elastix25 ~]# curl -s https://convert.freepbx.org | bash
Checking that 'curl' exists ... OK!
Validating sha256 integrity ... OK!
Trying to download converter to /tmp/tmp.lmSjx27299 ... Complete
Validating download ... OK!
Testing connectivity to Conversion server...Success!

FreePBX Conversion Wizard
-------------------------

The FreePBX Conversion Wizard needs to be run on two machines, the NEW
machine, which must be an ACTIVATED FreePBX Distro machine, and then it must
be run on the DONOR machine.

The DONOR machine is the machine that is currently processing calls, and is
the machine that will be migrated to the NEW machine. No changes will be made
to the DONOR machine, and this script will not stop or restart any services
that may cause an outage.

If this is the NEW machine, just push 'Enter' to prepare this machine

Enter ID (blank if this is NEW): 12345789-abcd-4ef0-1234-56789abcdef0

Testing FreePBX functionality ... Success!
Checking Slot ID ... OK!
Getting modules to convert ... Complete! 109 modules
Dumping astdb ... Complete!
Creating encrypted backup for new machine ... Complete!
Sending encryption key and backup details to new machine ... Complete!
        Module announcement (Skipped 1, Completed 0) ... announcement
        Module callback (Skipped 13, Completed 1) ... callback
        Module callrecording (Skipped 16, Completed 2) ... callrecording callrecording_module
        Module cidlookup (Skipped 21, Completed 3) ... cidlookup cidlookup_incoming
        Module conferences (Skipped 21, Completed 4) ... meetme
        Module core (Skipped 24, Completed 5) ... sip dahdi featurecodes incoming trunks users devices dahdichandids globals language_incoming languages outbound_route_patterns outbound_route_sequence outbound_route_trunks outbound_routes outroutemsg trunk_dialpatterns trunks
        Module customappsreg (Skipped 25, Completed 6) ... custom_destinations custom_extensions
        Module daynight (Skipped 28, Completed 7) ... daynight
        Module disa (Skipped 32, Completed 8) ... disa
        Module fax (Skipped 35, Completed 9) ... fax_details fax_incoming fax_users
        Module findmefollow (Skipped 37, Completed 10) ... findmefollow
        Module iaxsettings (Skipped 42, Completed 11) ... iaxsettings
        Module ivr (Skipped 44, Completed 12) ... ivr_details ivr_entries
        Module miscapps (Skipped 47, Completed 13) ... miscapps
        Module miscdests (Skipped 47, Completed 14) ... miscdests
        Module paging (Skipped 49, Completed 15) ... paging_groups paging_config
        Module parking (Skipped 50, Completed 16) ... parkplus
        Module pinsets (Skipped 54, Completed 17) ... pinsets pinset_usage
        Module queueprio (Skipped 57, Completed 18) ... queueprio
        Module queues (Skipped 57, Completed 19) ... queues_details queues_config
        Module recordings (Skipped 58, Completed 20) ... recordings
        Module ringgroups (Skipped 61, Completed 21) ... ringgroups
        Module sipsettings (Skipped 63, Completed 22) ... sipsettings
        Module timeconditions (Skipped 70, Completed 23) ... timeconditions timegroups_groups timegroups_details
        Module vmblast (Skipped 75, Completed 24) ... vmblast vmblast_groups
        Module voicemail (Skipped 76, Completed 25) ... voicemail_admin
Export complete!
This backup is currently being processed by the conversion servers, and will
be automatically downloaded and installed on the NEW machine when completed.
Please Note! All SIP and IAX trunks on the NEW machine will be set to DISABLED,
and you will need to manually re-enable them. This is to avoid accidental outages
if the NEW machine registers to a peer unexpectedly.
Cleaning up...Done!
[root@elastix25 ~]# 

When this is finished, it will be processed on the conversion service and, when complete, will be returned to the NEW server.

The Conversion process is now ready. Please run the script on the
DONOR node now, and when asked for a slot identifier, please enter
the following ID:
        12345789-abcd-4ef0-1234-56789abcdef0
[/] Processing Module voicemail, table voicemail_admin ...
Trying to retrieve the backup from the DONOR machine ...
[/] Download complete (83957792 bytes)
        Validating ... Complete!
Decrypting and extracting ... Complete!
Queueing conversion ... OK
Embedded response found, creating raw import file.
Processing data ... Complete!
        27 modules to import
        14 users to import
Clearing astdb ..Complete!
[/] Importing ASTDB .. 1016
[|] Importing module voicemail, table voicemail_admin
Running module 'customappsreg' command 'fwconsole ma install customappsreg' ... Complete!
Cleaning up...Done!
[root@freepbx ~]#

Complete!

At this point, your NEW machine should now have all the settings, users, and configuration of the DONOR machine.  You can now start testing it and moving users across when you're comfortable.

If you have any issues, please feel free to ask in the FreePBX Forums, or in our IRC Channel on Freenode

 

  • No labels