Asterisk Version 18.21.0 Now Available

The Asterisk Development Team would like to announce
the release of asterisk-18.21.0.

The release artifacts are available for immediate download at

This release resolves issues reported by the community
and would have not been possible without your participation.

Thank You!

Change Log for Release asterisk-18.21.0



  • logger: Fix linking regression.
  • Revert “core & res_pjsip: Improve topology change handling.”
  • menuselect: Use more specific error message.
  • res_pjsip_nat: Fix potential use of uninitialized transport details
  • app_if: Fix faulty EndIf branching.
  • manager.c: Fix regression due to using wrong free function.
  • config_options.c: Fix truncation of option descriptions.
  • manager.c: Improve clarity of “manager show connected”.
  • make_xml_documentation: Really collect LOCAL_MOD_SUBDIRS documentation.
  • general: Fix broken links.
  • MergeApproved.yml: Remove unneeded concurrency
  • app_dial: Add option “j” to preserve initial stream topology of caller
  • ast_coredumper: Increase reliability
  • logger.c: Move LOG_GROUP documentation to dedicated XML file.
  • res_odbc.c: Allow concurrent access to request odbc connections
  • res_pjsip_header_funcs.c: Check URI parameter length before copying.
  • config.c: Log #exec include failures.
  • make_xml_documentation: Properly handle absolute LOCAL_MOD_SUBDIRS.
  • app_voicemail.c: Completely resequence mailbox folders.
  • sig_analog: Fix channel leak when mwimonitor is enabled.
  • res_rtp_asterisk.c: Update for OpenSSL 3+.
  • alembic: Update list of TLS methods available on ps_transports.
  • func_channel: Expose previously unsettable options.
  • app.c: Allow ampersands in playback lists to be escaped.
  • uri.c: Simplify ast_uri_make_host_with_port()
  • func_curl.c: Remove CURLOPT() plaintext documentation.
  • res_http_websocket.c: Set hostname on client for certificate validation.
  • live_ast: Add astcachedir to generated asterisk.conf.
  • Update with correct documentation URL
  • func_lock: Add missing see-also refs to documentation.
  • app_followme.c: Grab reference on nativeformats before using it
  • configs: Improve documentation for bandwidth in iax.conf.
  • logger: Add channel-based filtering.
  • chan_iax2.c: Don’t send unsanitized data to the logger.
  • codec_ilbc: Disable system ilbc if version >= 3.0.0
  • resource_channels.c: Explicit codec request when creating UnicastRTP.
  • doc: Update IP Quality of Service links.
  • chan_pjsip: Add PJSIPHangup dialplan app and manager action
  • chan_iax2.c: Ensure all IEs are displayed when dumping frame contents.
  • chan_dahdi: Warn if nonexistent cadence is requested.
  • stasis: Update the snapshot after setting the redirect
  • ari: Provide the caller ID RDNIS for the channels
  • main/utils: Implement ast_get_tid() for OpenBSD
  • res_rtp_asterisk.c: Fix runtime issue with LibreSSL
  • app_directory: Add ADSI support to Directory.
  • core_local: Fix local channel parsing with slashes.
  • Remove files that are no longer updated
  • app_voicemail: Add AMI event for mailbox PIN changes.
  • app_queue.c: Emit unpause reason with PauseQueueMember event.
  • bridge_simple: Suppress unchanged topology change requests
  • res_pjsip: Include cipher limit in config error message.
  • res_speech: allow speech to translate input channel
  • res_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.
  • res_pjsip_dtmf_info.c: Add ‘INFO’ to Allow header.
  • Fix indentation in generated markdown
  • pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
  • configs: Fix typo in pjsip.conf.sample.
  • res_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown
  • res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
  • .github: PRSubmitActions: Fix adding reviewers to PR
  • .github: New PR Submit workflows
  • .github: New PR Submit workflows
  • res_stasis: signal when new command is queued
  • ari/stasis: Indicate progress before playback on a bridge
  • func_curl.c: Ensure channel is locked when manipulating datastores.
  • .github: Fix job prereqs in PROpenedUpdated
  • .github: Block PR tests until approved
  • logger.h: Add ability to change the prefix on SCOPE_TRACE output
  • Add libjwt to third-party
  • res_pjsip: update qualify_timeout documentation with DNS note
  • chan_dahdi: Clarify scope of callgroup/pickupgroup.
  • func_json: Fix crashes for some types
  • res_speech_aeap: add aeap error handling
  • app_voicemail: Disable ADSI if unavailable.
  • codec_builtin: Use multiples of 20 for maximum_ms
  • lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
  • asterisk.c: Use the euid’s home directory to read/write cli history
  • res_pjsip_transport_websocket: Prevent transport from being destroyed before message finishes.
  • cel: add publish user event helper
  • chan_console: Fix deadlock caused by unclean thread exit.
  • file.c: Add ability to search custom dir for sounds
  • chan_iax2: Improve authentication debugging.
  • res_rtp_asterisk: fix wrong counter management in ioqueue objects
  • make_buildopts_h, et. al. Allow adding all cflags to buildopts.h
  • func_periodic_hook: Add hangup step to avoid timeout
  • res_stasis_recording.c: Save recording state when unmuted.
  • res_speech_aeap: check for null format on response
  • func_periodic_hook: Don’t truncate channel name
  • safe_asterisk: Change directory permissions to 755
  • chan_rtp: Implement RTP glue for UnicastRTP channels
  • app_queue: periodic announcement configurable start time.
  • variables: Add additional variable dialplan functions.
  • Restore CHANGES and UPGRADE.txt to allow cherry-picks to work

What can we help you find?