First thing I would recommend is try rebooting the 3CX Server in order to eliminate any chance of this being related to a stuck call or something similar. Ideally during Out of Office hours to avoid downtime.
Whether the reboot resolves the issue or not, you should then plan on bringing the 3CX Server up to date, as you are running an older version on an unsupported OS and with out of date IP Phone firmware.
Since by upgrading 3CX to the latest version you would still be running on an unsupported OS, I'd recommend doing all in one go:
1. Deploy a new machine using a 3CX supported Windows OS:
https://www.3cx.com/docs/manual/phone-system-installation-windows/
OR
Using our 3CX ISO for Linux (Debian 9):
https://www.3cx.com/docs/manual/installing-debian-linux-pbx/
2. Take a full backup of the 3CX Instance at hand and move it away from the machine. Shutdown the machine.
3. Install the latest version of 3CX on the new machine and restore the backup during installation.
4. Once complete, reprovision 3CX Clients and perform any template/firmware updates from the Management Console Update section. Update the firmware of the IP Phones that are out of date.
5. Delete the old VM or uninstall 3CX from the old machine if a physical server. If you need to boot it up for any reason try avoiding doing so without it having an internet connection so it does not contact the 3CX activation servers while using the same License Key with the new 3CX Instance.
Note: You might want to consider keeping the same local IP for the new server to avoid having to reprovision all local phones.