I welcome any/all advice around this upgrade! I have not had good luck in finding a partner in the past. I am on linux.
Thanks -- Gordon
I am delighted to share my advice with you.
You're on Linux, which is already great news.
Do you have a server at the office?
If so, are you using VMWare or Hyper-V?
If yes, I strongly recommend moving to a virtual environment in anticipation of future updates or for troubleshooting issues.
Otherwise, when upgrading from V18 to V20, would it be possible to migrate to a separate machine to avoid uninstalling V18 until V20 is fully operational? This would allow you to restart the V18 server if a major problem occurs. (This is an alternative to upgrading).
- Do you control the router? If so, what is the brand and model?
- Do you control the DNS server? If so, can you create a local DNS entry?
- Are the phones provisioned on a separate server, and do you have control over it?
Scenario: If you change the local IP address during the migration to V20, for example, would it be simple to modify the information in the phone settings, or would you need to manually update each of the 450 phones?
The users do not have softphones, so no mobile apps or WebClient, is that correct?
Here is one of my suggestions,
If I receive answers to my previous questions, I will be able to delve into details such as configuring a local DNS or Hairpin NAT, provisioning strategy, and configuration strategy in the router, if necessary.
Here are my recommendations:
Take advantage of the upgrade to V20 to migrate to a virtual machine; staying on Linux is ideal.
Meet the minimum specifications for better reliability:
Intel Xeon E5 v4 or equivalent
Minimum of 8 vCPUs
Minimum of 16 GB RAM
Minimum of 500 GB SSD storage
recommended-hardware-specifications-for-3cx
When you reach the step of the 3CX Wizard, use option 1.
IMAGE
There's no need to open the webpage. Keep the SSH console open, we will return to it.
(Before proceeding with a 3CX V18 backup);
- Ensure that email addresses are unique for all extensions WITHOUT EXCEPTION!
- Make sure that your extension number plays the role of "owner," that you are able to log in to the dashboard with its password AND that it is indeed your email address that is defined.
The "Super ADMIN" user will be removed; it no longer exists in V20.
Disable welcome emails in 3CX V18; Settings > Emails > Notifications > Uncheck: Notify user when an extension is added
- Enable Failover Mode (Active Server)
Backup & Restore > Failover > Check "Enable Failover" & Select Failover mode: Active
Perform the full backup with the FQDN, but without the call records, we can move them later separately.
Instead of creating a temporary server, why not opt for a two-step update?
Note: If you have VMWare or HyperV on a server, take this opportunity to virtualize your 3CX system. This could save you a lot of effort in the future.
The two-step update is actually a strategy I like to use for critical systems like yours. Make a backup of your V18 environment with the 3CX license. Export your backup.
Create your new machine (ideally virtual, if not physical), when you reach the step of the 3CX Wizard, choose option 1 but no need to access the webpage.
On your new server, create a folder, be careful not to use 3cxpbx:
Bash:
sudo mkdir /var/lib/3CX && sudo chown -R phonesystem:phonesystem /var/lib/3CX && sudo chmod -R 750 /var/lib/3CX
Upload your V18 backup to the new server, into the folder you just created (/var/lib/3CX/)
Then, run this command to adjust the permissions on the backup file.
Bash:
sudo find /var/lib/3CX -type f -exec chown phonesystem:phonesystem {} \; -exec chmod 640 {} \;
We're ready to restore the backup! To do this, we will use an SSH command documented here:
Bash:
DIR_PATH="/var/lib/3CX"; FILE_NAME=$(ls $DIR_PATH | head -n 1); sudo -u phonesystem 3CXRestoreCmd --file="$DIR_PATH/$FILE_NAME" --log="$DIR_PATH/restore_cmd.log" --failover & tail -f "$DIR_PATH/restore_cmd.log"
This command aims to restore the backup, keep SIP services disabled, and remain in passive Failover mode. It will still allow you access to the environment (Dashboard).
Restoration is underway, the more powerful your machine, the faster it will be.
This procedure avoids any issues related to the license and FQDN.
Once finished, you can access the dashboard and explore V20.
During a quiet period, on the PBX V18, go to Backup and Restore > Failover > change Active to Passive.
Set the local IP address of the PBX v20 server.
Check all services to monitor
Apply the following number of seconds: 172800 (equivalent to about 120 days)
Check Failover when all selected tests fail
Press "OK" and press "OK" at the popup.
The production server (v18) has just switched to passive mode and will not reactivate for several days even if it fails to reach the v20 server
Normally, on the Dashboard page, click on Services, several services should be stopped, this is normal.
Access the V20 server, (You must use the FQDN to access it with https), use your extension number and the password of your extension set in v18, go to the Admin page at the bottom left, Backup (It's in the menu to the right of the black bar where "Admin" > FailOver, switch to active mode and press "OK".
The services of your new 3CX should start!
To see their status, go to Dashboard > click on Services (It's on the page, Troubleshooting section, it's not a tab), all services should be green.
You can perform your necessary tests.
Go to your FXO and don't forget to change the local IP of the PBX
Go to a few physical phones and modify the local IP of the PBX
If the SIP Trunk to PSTN (remote), don't forget to modify your rules in the router to direct traffic to the correct system.
When you're ready to switch back to v18, proceed with the reverse operations;
The V20 server becomes passive, Failover when all selected tests fail, check everything, set to 172800 (equivalent to about 120 days), and press OK and confirm by pressing OK again.
3CX (the interface) stops responding for a few seconds, wait, it will come back.
Upon return, check the services, several should be "Stopped".
Go to 3CX V18, switch to active mode.
You can do this an unlimited number of times but when switching from one mode to another (Passive or Active) wait for the process to finish before switching back to the opposite mode. Give the system time to proceed with the operations.
Finally, on the BIG day, all you need to do is redo the operation from "Upload your V18 backup to the new server"... and set your PBX v18 to PASSIVE and/or turn it off... and that's it!
PS: If there are call records, use the scp command on the pbx v18 to send them to the new pbx, here's an example: