A Year Recap for Asterisk 21

From Gerrit to Github

This was a year full of big changes for Asterisk, the development team, and the community.  One of these changes was moving away from Gerrit to a new source control. Asterisk’s new home ended up being Github! The repository can be found at https://github.com/asterisk/asterisk. With this move, some other things in the pipeline changed as well. Gerrit will no longer be the place for code reviews, so they’ll be done via pull requests on Github now. A guide on how to get started with this can be found at https://docs.asterisk.org/Development/Policies-and-Procedures/Code-Contribution/ (more on the new docs site below). The process is similar to the old one in many ways, so it should feel familiar.

Testsuite Changes

The testsuite also received a number of changes over the past year. It can now be found on Github (https://github.com/asterisk/testsuite) along with Asterisk. Some extensive work was done to update the testsuite overall, including the transition from Python 2 to Python 3. While this doesn’t change much from an outside perspective, it’s a significant change internally since it allows the use of modern libraries, updates, and several other features.

A more direct change is the testsuite virtual environment. If you have ever been daunted by having to write a test for something and trying to get all the dependencies in check, this change will help! You can now spin up a virtual environment via the testsuite that has all the dependencies and configuration ready to go for whatever changes you would like to test. No more package resolving or missing packages from your distribution. Everything just works!

Documentation Migration

As mentioned above, there’s a new documentation site: https://docs.asterisk.org/. This was a bit more of an undertaking than we initially thought. The old wiki had several different resources, and we knew that there was some pruning that needed to be done before the move happened. You can find many of the pages from the old wiki on the new documentation site, but if there’s a page missing that you think contains valuable information, please let us know!

What’s New in Asterisk 21

While there are several new additions to Asterisk 21, there have been quite a few removals as well. Many modules that were deprecated in older versions have been removed. Some have alternatives, whereas others became outdated.


The first one on the list is chan_sip. It was deprecated back in Asterisk 17. chan_pjsip has been the core supported channel driver for quite some time now, and it’s finally time to say goodbye to the older one. A few other channel drivers were marked deprecated in Asterisk 19 and have also been removed:

  • chan_alsa
  • chan_mgcp
  • chan_skinny

res_monitor is another module that was deprecated a long time ago (Asterisk 16). It has also been removed. If you were still using this module, the alternative solution is mix_monitor. As a result of this, the ‘w’ and ‘W’ options have been removed from app_queue.

Similar to res_monitor, app_macro was deprecated back in Asterisk 16 and has been removed. This had a few ramifications:

  • For most modules, the current context is no longer retrieved from the macrocontext when set.
  • app_dial – no longer supports M^ connected/redirecting macro
  • app_minivm – samples written using macro will no longer work.
  • The sample needs to be re-written
  • app_queue – can no longer call a macro on the called party’s channel.  Use gosub which is currently supported
  • ccss – no callback macro, gosub only
  • app_voicemail – no macro support
  • channel  – remove macrocontext and priority, no connected line or redirection macro options
  • options – stdexten is deprecated to gosub as the default and only options
  • pbx – removed macrolock
  • pbx_dundi – no longer look for macro
  • snmp – removed macro context, exten, and priority

To wrap up the deprecations, app_osplookup has also been removed. ImportVar and SetAMAFlags from pbx_builtins and the NoCDR application from app_cdr have also been removed. For NoCDR, the ‘e’ option for ResetCDR has been removed as a result.

The New Stuff

There were some new additions and improvements made in Asterisk 21 as well. Translations saw some quality improvements. Previously, quality was not taken into account. That has been changed, and can now take less steps to translate, resulting in better quality. For HTTP bound addresses, the status page now combines the address and port into a single line. The SSL bind address has been renamed to TLS.

Most of this information can be found by looking at the CHANGES and UPGRADE sections in the Asterisk source code. A full changelog will be made available like always if you want to check out the changes in their entirety.

About the Author

What can we help you find?