This document applies to 3CX v16 instances hosted in AWS or running on Debian 9 (Stretch) that are stuck on older versions of 3CX v16 and seemingly just will not update.
SSH or web-console into the Debian instance
Edit the file /etc/apt/sources.list.d/saltstack.list
sudo nano /etc/apt/sources.list.d/saltstack.list
If the one line in this file reads: deb http://repo.saltstack.com/apt/debian/9/amd64/archive/2019.2.0/ stretch main
Then add # in front of it and add an extra line below that reads: deb http://repo.saltstack.com/apt/debian/9/amd64/latest stretch main
Your file should now read:
#deb http://repo.saltstack.com/apt/debian/9/amd64/archive/2019.2.0/ stretch main
deb http://repo.saltstack.com/apt/debian/9/amd64/latest stretch main
Save and close the file
CTRL+O
CTRL+X
Now manually update and upgrade the packages:
sudo apt-get update
sudo apt-get upgrade
Answer Y when prompted to proceed
If prompted about updating the configuration of the Minion package, say Y and press enter
Once the upgrades are completed, you can now go through the 3CX web console and start installing all the pending updates – note, there will be quite a few.
Note: Changes as of December 2021:
I had to update a 3CX instance tonight that refused to update using the 3CX console or the above.
In the end, I had to edit the file:
/etc/apt/sources.list.d/saltstack.list
and enter in the line:
deb https://repo.saltproject.io/py3/debian/9/amd64/latest/ stretch main
Next, you’ll need to install APT’s secure transport module using:
sudo apt-get install apt-transport-https
Now do the update:
sudo apt-get update
sudo apt-get upgrade
Now head back the 3CX Admin Console and continue upgrades from there…
As its been some time since I posted this, now there’s a very strong chance that the above steps may not yield a positive outcome. In this case, it might be best to take a full backup of the 3CX configuration and restore it into a newly deployed v18 3CX install.