Asterisk v20-rc1 is Released

The RC release for Asterisk v20 has been made public. In case you have been living under a rock, here are the Asterisk modules that no longer exist and are completely removed in v20:

Note: res_monitor becomes noload here too. Meaning like chan_sip and app_macro you need to add it to the build configuration. It will no longer build by default in v20.

  • [ASTERISK-29600] -||muted: Remove deprecated application
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29599] -||conf2ael: Remove deprecated application
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29598] -||res_config_sqlite: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29597] -||chan_vpb: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29596] -||chan_misdn: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29595] -||chan_nbs: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29594] -||chan_phone: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29593] -||chan_oss: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29592] -||cdr_syslog: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29591] -||app_dahdiras: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29590] -||app_nbscat: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29589] -||app_image: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29588] -||app_url: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29587] -||app_fax: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29586] -||app_ices: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29585] -||app_mysql: Remove deprecated module
    (Reported by Joshua C. Colp)|
    |* [ASTERISK-29584] -||cdr_mysql: Remove deprecated module
    (Reported by Joshua C. Colp)|

Remember these are now marked as deprecated that will go away in v21.

|* [ASTERISK-29548] -||app_meetme: Deprecated in 19, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29549] -||app_osploop: Deprecated in 19, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29550] -||chan_alsa: Deprecated in 19, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29551] -||chan_mgcp: Deprecated in 19, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29552] -||chan_skinny: Deprecated in 19, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29553] -||res_pktccops: Deprecated in 19, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29558] -||app_macro: Deprecated in 16, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29567] -||chan_sip: Deprecated in 17, to be removed in 21
(Reported by Joshua C. Colp)|
|* [ASTERISK-29572] -||res_monitor: Deprecated in 16, to be removed in 21
(Reported by Joshua C. Colp)|

has flashbacks to the repetitive work doing all of that

3 Likes

I don’t think you would need the module unless you explicitly enable it in advanced settings instead of mixmonitor.

We already display a dashboard caution if meetme is configured instead of confbridge, but I had forgotten about adding the same for mon/mixmon. [FREEPBX-23722] Display dashboard warning if monitor is enabled instead of mixmon - Sangoma Issue Tracker

The only option in Advanced Settings for MixMonitor is to use it instead of Monitor for Queues. Regardless of that, you’re conflating the modules that Asterisk loads/installs by default with the Asterisk modules that FreePBX uses. There are third party applications out there that those with FreePBX use with FreePBX, such as FOP2 which still uses Monitor over MixMonitor.

Let’s not forget what happened at the start of this year with the removal of app_fax in v19 which broke faxing for FreePBX users that upgraded to the v19 RPMs. app_fax was set to noload almost a decade ago meaning FreePBX had to specifically tell Asterisk to install/load it to continue to use it for fax in FreePBX until they couldn’t anymore. I mean, app_macro has been noload for four years now and this project still heavily depends on it.

So yeah, I think letting people know what is going on considering the amount of 3rd party applications still behind the times. People with custom code/scripts who haven’t taken the time to modernize them plus all the out date documents/how-tos/code out there for these things (which can still work despite not being used by FreePBX itself) I think keeping people up to date on things is a good idea.

I’m not disagreeing with keeping people up to date. Not sure how you read that. My comment was strictly about that module and its use in FreePBX. Thanks for clarifying.

Let’s hope that FreePBX will be updated in advance of the Asterisk 20 release to actually allow Asterisk 20 to work with FreePBX for those who wish to test it. This has not been the case in the past.

Which version of FreePBX? The ones that require PHP5.6 like v14/v15 or v16 the recent and more current version that supports more current things like PHP 7.x? Additionally, which flavor of FreePBX are you referring to? The Distro, which will have RPMs released for Asterisk v20 or a manual install of FreePBX on VirtualBox or another OS distro that isn’t tested by Sangoma?

I would assume FreePBX 16. When Asterisk 18 and then 19 came out, it was weeks before module updates went out to allow FreePBX 15 to work with new Asterisk versions. You would get the error about what major versions of Asterisk were supported that did not include the latest Asterisk. As I understand it, it was a reasonably simple change in Framework and Core to accept a newer Asterisk version. I am not interested in the FreePBX distro; just the open source modules.

If FreePBX 16 is not compatible with Asterisk 20, then a compatible version needs to be released in concert with the Asterisk release.

So before demanding that everyone be forced into embracing new versions of Asterisk, lets make sure we have the GUI that will work with it.

The Sangoma team does not test additional OSes outside of their own. All the manual install documents are community based and happen after someone has tested the install process on an OS and then adds the documentation.

So right now Asterisk 20-rc1 can be downloaded and used with FreePBX v16, the GUI doesn’t have anything special in it that would stop it from working with Asterisk v20. If there is an install issue with FreePBX then we would need to know what OS it is being installed on, if all the requirements have been met and what errors the person is getting. Then it can be determined if there needs to be a ticket because code needs to be fix or there is another issue (a wrong version of a dependency or missing).

I have yet to have a problem installing FreePBX v16 with Asterisk v18 on Ubuntu 18.04. I’ll be testing with Ubuntu 20 soon.

@BlazeStudios As predicted, FreePBX current version 16.0.21.20 does not allow for Asterisk-20rc1.

On Debian 11, running IncrediblePBX, Asterisk 19.4 and FreePBX 16.0.21.18, I upgraded Asterisk to version 20rc1. All compiled and linked correctly. Asterisk 20 starts and runs without issue.

I manually updated Core and Framework from the edge repository. FreePBX, when a change is made and you submit changes, craps out with the expected error message of:

fwconsole ma upgrade framework --edge
Edge repository temporarily enabled
No repos specified, using: [standard,extended,unsupported,other] from last GUI settings

Downloading module 'framework'
Processing framework
Downloading...
 16127406/16127406 [============================] 100%
Finished downloading
Extracting...Done
Download completed in 8 seconds
Updating tables admin, ampusers, cronmanager, featurecodes, freepbx_log, freepbx_settings, globals, module_xml, modules, notifications, cron_jobs...Done
<error>Error!</error>
<error>Unsupported Version of 20.0.0 </error>
<error>Supported Asterisk versions: 13, 14, 15, 16, 17, 18, 19</error>
Updating Hooks...Done
Chowning directories...Done
Resetting temporarily repository state

So FreePBX is not accepting Asterisk 20 unless there is an edge version I have not found.

A forced database change allows it to run by tricking FreePBX into believing it is using Asterisk 19.4:

mysql -u root -ppassw0rd asterisk -e "update freepbx_settings set value = '19.4' where keyword = 'FORCED_ASTVERSION'; "
mysql -u root -ppassw0rd asterisk -e "update admin set value = 'true' where variable = 'need_reload'; "
fwconsole reload

Hey @kenn10

Once you set FORCED_ASTVERSION to a value recognized by FreePBX, I assume things work pretty much as expected?

FYI, the supported way of setting fpbx environment vars is to use either the GUI or using fwconsole. Using mysql directly obviously works, but no guarantee it won’t change without notice. If I knew I wanted to change the 'Force Asterisk Version" without knowing what the parameter was called, I might do:

# fwconsole setting --list | grep -i version
| DIVERSIONHEADER                      | 0           | 0          |
| FORCED_ASTVERSION                    |             |            |

# fwconsole setting FORCED_ASTVERSION
Setting of "FORCED_ASTVERSION" is (text)[]

# fwconsole setting FORCED_ASTVERSION 1.8
Changing "FORCED_ASTVERSION" from [] to [1.8]

# fwconsole setting FORCED_ASTVERSION
Setting of "FORCED_ASTVERSION" is (text)[1.8]

# fwconsole setting FORCED_ASTVERSION -r
Are you sure you want to set FORCED_ASTVERSION to its default?y
Changing FORCED_ASTVERSION to

# fwconsole setting FORCED_ASTVERSION
Setting of "FORCED_ASTVERSION" is (text)[]
1 Like

Thanks for the info. I don’t have access to FreePBX support so I hope someone will log an issue to fix FreePBX16 to allow Asterisk 20.

If you have access to this forum, you have access to the bug tracker. The login creds are the same:
https://issues.freepbx.org/

Adding to my bookmarks. Thanks.

Ticket #FREEPBX-23737 submitted.

1 Like

Sorry Lorne, I forgot to confirm. Yes FreePBX 16 is working fine once the FORCED_ASTVERSION is set to something lower than Asterisk 20. I will continue testing and ticket any found issues.

Thanks Ken, this is pretty much as I expected. The current design philosophy for Asterisk has major changes occurring with the standard term releases. Since 20 is LTS the issues that arise should be minor, and can be bypassed by ensuring that the relevant advanced setting is set to default. The real work for FreePBX is in progress now to support Asterisk 21. @fdanard will have a lot more macro induced grey hair this time next year.

There is a commit for your ticket to allow Asterisk 20 without using the force param, we should see it in edge before too long.

Thanks, Lorne. I’ve moved my home system on to the test Asterisk 20 system to test it out. So far no issues at all.

I imagine Asterisk 21 will result in FreePBX 17 emerging.

depending on deprecations or breeaking changes FreePBX holds pretty universal. In most cases the code put in is never removed so it 16 should generally work with Asterisk 11 or possibly older. Thee reason the check is there is so when a breaking change does happen like the permanent (not behind a compile flag) of app-macro or chan_sip happen they can ensure you freepbx supports that.

Historically before a version was added to that array the new branch would be installed and gone through QA to make sure nothing broke. This means reviewing all 100+ modules.

Yeah, I can’t see this happening any other way. A lot needs to be touched with the removal of app_macro. Applications like Dial and Queue (for quick examples) have options to call on Macro()'s which will need to be addressed if they are used for things in both the open source and commercial sides.

This would probably be the best time to review all the new enhancements and features that have made their way into Asterisk over the past years. There are new functions, new variables have been added to the Transfer process to do better tracking of the transfer, there are new codec management features for PJSIP to control how codec negotiation/transcoding are handled by endpoints.

Many of these could be leverage in FreePBX to improve and in come cases add functionality within FreePBX. Will some of these be things that the average user might see? Probably not but it could improve what happens within the dialplan and calls. It could result in certain things not having to exist anymore because “it is there to make this kludge work” but now new features/functions make it obsolete.