• Auckland is at Alert Level 3. The rest of New Zealand is at Alert Level 2.
    Health tips to prevent the spread of COVID-19:
    • Wash your hands frequently;
    • Maintain 2 meters social distancing;
    • Minimise outdoor activities.
    Stay safe in your bubble!


Creative Team
User ID
7 Jan 2019
Reaction score
Here's my successful experience on how to migrate 3CX v15.5 (Windows) to 3CX v16 (Debian Linux)

Project: Scenario:
  • We have an old v15.5 3CX installation on a Windows Server 2016 on Microsoft Azure
  • We used 3CX v15.5 - Update 2 (v15.5.6354.2) FULL installer that was released on 1st November 2017
  • Before the migration process, the instance was updated to v15.5 - Update 6 (v15.5.15502.6 / released on 30th August 2018) from the 3CX Management Portal
  • The perpetual v15 license was expired and will need to apply for a new v16 license on the new instance
  • Existing 3CX Public FQDN to be preserved (no need to re-provision phones)
  • Create an instance on the on-premise Hyper-V server
  • Migrate 3CX instance from Azure to on-premise Hyper-V virtualisation
Steps were taken:
  1. Create a full backup on the old v15.5 instance except leaving the (1) License Key Information & FQDN, and (2) Custom Templates, Logos and Firmwares backup option unticked.
  2. Download the backup.zip and save local computer
  3. Setup new instance on Hyper-V, depending on your requirements, but I used the following specifications:
    • Hyper-V generation 1
    • 2 virtual processors
    • 1 GB of memory
    • 32GB of disk space
  4. Started the VM and booted debian-amd64-netinst-3cx.iso
  5. Run through the installation process, on the disk partitioning, I used all space in the disk, removed the swap, and re-created a single partition for the '/' mount point (yes, without any swap partition)
  6. After 3CX installed, select option number 1 (i.e. to configure the 3CX using the web interface)
  7. Select restore from backup and select the backup.zip we took on step 2, then it will prompt for a new license key (as we didn't include license in the backup)
  8. You will also be prompted to specify your local FQDN, you can use either local IP or FQDN, I'd suggest using FQDN if you have access to the local DNS server, so you can make something like 'pbx.intra.company.tld'
  9. Enter the new v16 license key here and it will then begin the restore process and re-activate your pre-existing 3CX FQDN
  • In the new 3CX v16 you will see your trunk number is +1 (and that's invisible) that's because the added WebMeeting bridge shows up as a trunk and this is what you are seeing on your dashboard, so in v16, trunks are now consist of:
    • SIP Trunks
    • SIP Gateway (Trunks)
    • Bridges (Remote Office Connectivity)
    • WebMeeting Dial-In
  • You can find more information regarding this change in the official 3CX forums:
  • If you use 'restore from backup' option, reinstalling 3CX will not change the public FQDN.
I hope this experience-based tutorial useful for you, let me know if you have any question by commenting down below, and I'm happy to answer (y)
 Short URL: