After a year of development, a new stable branch of the open communication platform Asterisk 20 was released, used to deploy software PBXs, voice communication systems, VoIP gateways, organizing IVR systems (voice menu), voice mail, conference calls and call centers. The source texts of the project are available under the GPLv2 license.
Asterisk 20 is categorized as an Extended Support (LTS) release, which will receive updates over five years instead of the usual two years for regular releases. Support for the previous LTS branch of Asterisk 18 will last until October 2025, and support for the Asterisk 16 branch until October 2023. LTS releases focus on stability and performance optimizations, while regular releases prioritize feature enhancements.
Key improvements in Asterisk 20:
- A test framework has been added that allows you to check the correctness of command processing by external processes.
- The res_pjsip module implements support for reloading TLS keys and certificates.
- Added more options to initiate a transfer, such as playing your own invitation or installing extensions.
- The AMI (Asterisk Manager Interface) now has the ability to globally disable certain events (the disabledevents directive has appeared in the [general] section of the configuration file). Implemented a new DeadlockStart event generated when a deadlock is defined.
- Added DBPrefixGet action to retrieve from the database all keys starting with a given prefix.
- Added “dialplan eval function” command to CLI to run call handling functions (dialplan) and “module refresh” command to reload modules.
- Added pbx helper app to make it easier to find and launch other apps by name.
- Added EXPORT function to write variables and functions for other channels. Added new string functions TRIM, LTRIM and RTRIM.
- Added the ability to play an arbitrary sound file in response to the answering machine presence detector (AMD).
- The Bridge and BridgeWait applications now have the ability to not respond to a channel until the channels have been bridged.
- An option has been added to the voicemail application (app_voicemail) to protect messages from deletion.
- Added sound scrambling function (to protect against eavesdropping).
- Extended means for determining the location (res_geolocation).
- App_queue added support for playing music on call hold.
- An option has been added to the res_parking module to override dialplan’s music played while a call is on hold.
- Added an end_marked_any option to the app_confbridge application to disconnect users from a conference after any marked user leaves.
- Added hear_own_join_sound option to disable individual user’s sound indication of joining a call.
- Provided the ability to disable CDR (Call Detail Record) by default for new channels.
- Added ReceiveText application for receiving text, which performs the opposite function of the SendText application.
- Added a function to parse JSON.
- Added SendMF application to send an arbitrary multi-frequency signal (R1 MF, Multi-Frequency) to any channel.
- Added ToneScan module to detect signals (tone dialing, busy signal, modem answer, Special Information Tones, etc.).
- Removed applications previously deprecated: muted, conf2ael.
- Removed modules previously deprecated: res_config_sqlite, chan_vpb, chan_misdn, chan_nbs, chan_phone, chan_oss, cdr_syslog, app_dahdiras, app_nbscat, app_image, app_url, app_fax, app_ices, app_mysql, cdr_mysql.