Asterisk 20.4.0 Now Available

The Asterisk Development Team would like to announce
the release of Asterisk 20.4.0.

The release artifacts are available for immediate download at
https://github.com/asterisk/asterisk/releases/tag/20.4.0
and
https://downloads.asterisk.org/pub/telephony/asterisk

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

Thank You!

Change Log for Release 20.4.0

Links:

Summary:

  • app.h: Move declaration of ast_getdata_result before its first use
  • doc: Remove obsolete CHANGES-staging and UPGRADE-staging
  • .github: Updates for AsteriskReleaser
  • app_voicemail: fix imap compilation errors
  • res_musiconhold: avoid moh state access on unlocked chan
  • utils: add lock timestamps for DEBUG_THREADS
  • .github: Back out triggering PROpenedOrUpdated by label
  • .github: Move publish docs to new file CreateDocs.yml
  • rest-api: Updates for new documentation site
  • .github: Remove result check from PROpenUpdateGateTests
  • .github: Fix use of ‘contains’
  • .github: Add recheck label test to additional jobs
  • .github: Fix recheck label typos
  • .github: Fix recheck label manipulation
  • .github: Allow PR submit checks to be re-run by label
  • app_voicemail_imap: Fix message count when IMAP server is unavailable
  • res_pjsip_rfc3326: Prefer Q.850 cause code over SIP.
  • res_pjsip_session: Added new function calls to avoid ABI issues.
  • app_queue: Add force_longest_waiting_caller option.
  • pjsip_transport_events.c: Use %zu printf specifier for size_t.
  • res_crypto.c: Gracefully handle potential key filename truncation.
  • configure: Remove obsolete and deprecated constructs.
  • res_fax_spandsp.c: Clean up a spaces/tabs issue
  • ast-db-manage: Synchronize revisions between comments and code.
  • test_statis_endpoints: Fix channel_messages test again
  • res_crypto.c: Avoid using the non-portable ALLPERMS macro.
  • tcptls: when disabling a server port, we should set the accept_fd to -1.
  • AMI: Add parking position parameter to Park action
  • test_stasis_endpoints.c: Make channel_messages more stable
  • build: Fix a few gcc 13 issues
  • .github: Rework for merge approval
  • ast-db-manage: Fix alembic branching error caused by #122.
  • app_followme: fix issue with enable_callee_prompt=no (#88)
  • sounds: Update download URL to use HTTPS.
  • configure: Makefile downloader enable follow redirects.
  • res_musiconhold: Add option to loop last file.
  • chan_dahdi: Fix Caller ID presentation for FXO ports.
  • AMI: Add CoreShowChannelMap action.
  • sig_analog: Add fuller Caller ID support.
  • res_stasis.c: Add new type ‘sdp_label’ for bridge creation.
  • app_queue: Preserve reason for realtime queues
  • .github: Fix issues with cherry-pick-reminder
  • indications: logging changes
  • .github Ignore error when adding reviewrs to PR
  • .github: Update field descriptions for AsteriskReleaser
  • callerid: Allow specifying timezone for date/time.
  • logrotate: Fix duplicate log entries.
  • chan_pjsip: Allow topology/session refreshes in early media state
  • chan_dahdi: Fix broken hidecallerid setting.
  • .github: Change title of AsteriskReleaser job
  • asterisk.c: Fix option warning for remote console.
  • .github: Don’t add cherry-pick reminder if it’s already present
  • .github: Fix quoting in PROpenedOrUpdated
  • .github: Add cherry-pick reminder to new PRs
  • configure: fix test code to match gethostbyname_r prototype.
  • res_pjsip_pubsub.c: Use pjsip version for pending NOTIFY check. (#77)
  • res_sorcery_memory_cache.c: Fix memory leak
  • xml.c: Process XML Inclusions recursively.
  • .github: Tweak improvement issue type language.
  • .github: Tweak new feature language, and move feature requests elsewhere.
  • .github: Fix staleness check to only run on certain labels.

User Notes:

  • AMI: Add parking position parameter to Park action

    New ParkingSpace parameter has been added to AMI action Park.

  • res_musiconhold: Add option to loop last file.

    The loop_last option in musiconhold.conf now
    allows the last file in the directory to be looped once reached.

  • AMI: Add CoreShowChannelMap action.

    New AMI action CoreShowChannelMap has been added.

  • sig_analog: Add fuller Caller ID support.

    Additional Caller ID properties are now supported on
    incoming calls to FXS stations, namely the
    redirecting reason and call qualifier.

  • res_stasis.c: Add new type ‘sdp_label’ for bridge creation.

    When creating a bridge using the ARI the ‘type’ argument now
    accepts a new value ‘sdp_label’ which will configure the bridge to add
    labels for each stream in the SDP with the corresponding channel id.

  • app_queue: Preserve reason for realtime queues

    Make paused reason in realtime queues persist an
    Asterisk restart. This was fixed for non-realtime
    queues in ASTERISK_25732.

Upgrade Notes:

  • app_queue: Preserve reason for realtime queues

    Add a new column to the queue_member table:
    reason_paused VARCHAR(80) so the reason can be preserved.

Closed Issues:

  • #45: [bug]: Non-bundled PJSIP check for evsub pending NOTIFY check is insufficient/ineffective
  • #55: [bug]: res_sorcery_memory_cache: Memory leak when calling sorcery_memory_cache_open
  • #64: [bug]: app_voicemail_imap wrong behavior when losing IMAP connection
  • #65: [bug]: heap overflow by default at startup
  • #66: [improvement]: Fix preserve reason of pause when Asterisk is restared for realtime queues
  • #73: [new-feature]: pjsip: Allow topology/session refreshes in early media state
  • #87: [bug]: app_followme: Setting enable_callee_prompt=no breaks timeout
  • #89: [improvement]: indications: logging changes
  • #91: [improvement]: Add parameter on ARI bridge create to allow it to send SDP labels
  • #94: [new-feature]: sig_analog: Add full Caller ID support for incoming calls
  • #96: [bug]: make install-logrotate causes logrotate to fail on service restart
  • #98: [new-feature]: callerid: Allow timezone to be specified at runtime
  • #100: [bug]: sig_analog: hidecallerid setting is broken
  • #102: [bug]: Strange warning – ‘T’ option is not compatible with remote console mode and has no effect.
  • #104: [improvement]: Add AMI action to get a list of connected channels
  • #108: [new-feature]: fair handling of calls in multi-queue scenarios
  • #110: [improvement]: utils – add lock timing information with DEBUG_THREADS
  • #116: [bug]: SIP Reason: “Call completed elsewhere” no longer propagating
  • #120: [bug]: chan_dahdi: Fix broken presentation for FXO caller ID
  • #122: [new-feature]: res_musiconhold: Add looplast option
  • #133: [bug]: unlock channel after moh state access
  • #136: [bug]: Makefile downloader does not follow redirects.
  • #145: [bug]: ABI issue with pjproject and pjsip_inv_session
  • #155: [bug]: GCC 13 is catching a few new trivial issues
  • #158: [bug]: test_stasis_endpoints.c: Unit test channel_messages is unstable
  • #174: [bug]: app_voicemail imap compile errors
  • #200: [bug]: Regression: In app.h an enum is used before its declaration.

What can we help you find?