So we are getting closer and closer to FreePBX v17 becoming a General Availability release but the actual upgrade path for those on older or current versions of FreePBX has been not very clear. Unfortunately, the advice of “Just backup current system and restore to FreePBX v17 system” is not as cut and dry as it seems which means for a subset of users this migration will have a bunch of issues.
This project has dragged its feet for almost a decade when it came to keeping up with the changes in Asterisk from modifications, improvements, new features and the removal of features/applications. What that means is anyone who has done any customizing or modifications to their FreePBX, up until basically this moment in time, has had to use deprecated methods that should have no longer been used. As well, this project never made a serious or real effort to get their user base off of deprecated applications and functions in Asterisk. The biggest of that being never forcing the migration of Chan_SIP to Chan_PJSIP and continuing to allow Chan_SIP to be used.
What does this mean? It means that if you are running 3rd party applications on your FreePBX system you need to validate that they will continue to work going forward. Sadly, a lot of 3rd party projects for Asterisk have stopped being active because keeping up with Asterisk over the last decade was too much work for them. For example, if you are running an application that only has Chan_SIP support and that is why you’re still on Chan_SIP…it’s not going to work past Asterisk v20. If you have any customization in the dial plan or other interactions you may have developed/written for FreePBX that depend on things like Chan_SIP or Macro() calls, those are going to stop working past Asterisk v20. This also includes validating any 3rd party FreePBX modules.
Keep in mind that FreePBX v17 installs Asterisk v21 by default, which makes all the legacy stuff break. If you are running legacy items like Chan_SIP or require Macro() calls still, your first step in setting up a FreePBX v17 system is to switch your Asterisk version to v20 so your stuff will work.
Also keep in mind, any of the predial-hooks that FreePBX encouraged the use of to tie into existing dialling functions where all Macro() based but now in FreePBX v17 none of the core call logic makes Macro() calls even if Asterisk v18/v20 are installed. It’s now all Gosub based. So any custom dialplan that was created based on existing predial-hooks, needs to be modified and updated as a Gosub routine or there will be issues.
This has just been broad strokes I’ve brought up. We haven’t even covered the impact of the OS level things and the various differences between CentOS and Debian. The fact that things like PHP8.x, current versions of MySQL/MariaDB have much more strict validation, handling. Meaning that poor code, SQL statements or poorly structured database tables will cause issues to happen and break things.
I think there should be a comprehensive document highlight that variety of changes that moving to FreePBX v17 will have and how it could possibly impact current deployments. I’ve already seen issues submitted in the issue tracker of people moving to FreePBX v17 and finding stuff breaking and this is during the beta phase…imagine once it’s GA…