github asterisk/asterisk 21.1.0-rc1
Asterisk Release 21.1.0-rc1

latest releases: 18.25.0, 20.10.0, 21.5.0...
pre-release10 months ago

The Asterisk Development Team would like to announce
release candidate 1 of asterisk-21.1.0.

The release artifacts are available for immediate download at
https://github.com/asterisk/asterisk/releases/tag/21.1.0-rc1
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 asterisk-21.1.0-rc1

Links:

Summary:

  • 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.
  • doc: Remove obsolete CHANGES-staging and UPGRADE-staging directories
  • 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
  • pbx_config.c: Don't crash when unloading module.
  • 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.
  • SECURITY.md: 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.
  • api.wiki.mustache: 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
  • .github: Use generic releaser
  • 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
  • res_pjsip_pubsub: Add body_type to test_handler for unit tests
  • 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

User Notes:

  • app_dial: Add option "j" to preserve initial stream topology of caller

    The option "j" is now available for the Dial application which
    uses the initial stream topology of the caller to create the outgoing
    channels.

  • logger: Add channel-based filtering.

    The console log can now be filtered by
    channels or groups of channels, using the
    logger filter CLI commands.

  • chan_pjsip: Add PJSIPHangup dialplan app and manager action

    A new dialplan app PJSIPHangup and AMI action allows you
    to hang up an unanswered incoming PJSIP call with a specific SIP
    response code in the 400 -> 699 range.

  • app_voicemail: Add AMI event for mailbox PIN changes.

    The VoicemailPasswordChange event is
    now emitted whenever a mailbox password is updated,
    containing the mailbox information and the new
    password.
    Resolves: #398

  • res_speech: allow speech to translate input channel

    res_speech now supports translation of an input channel
    to a format supported by the speech provider, provided a translation
    path is available between the source format and provider capabilites.

  • res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters

    With this update, the PJSIP realm lengths have been extended
    to support up to 255 characters.

  • res_stasis: signal when new command is queued

    Call setup times should be significantly improved
    when using ARI.

  • lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS

    You no longer need to select DEBUG_THREADS to use
    DETECT_DEADLOCKS. This removes a significant amount of overhead
    if you just want to detect possible deadlocks vs needing full
    lock tracing.

  • file.c: Add ability to search custom dir for sounds

    A new option "sounds_search_custom_dir" has been added to
    asterisk.conf that allows asterisk to search
    AST_DATA_DIR/sounds/custom for sounds files before searching the
    standard AST_DATA_DIR/sounds/ directory.

  • make_buildopts_h, et. al. Allow adding all cflags to buildopts.h

    The "Build Options" entry in the "core show settings"
    CLI command has been renamed to "ABI related Build Options" and
    a new entry named "All Build Options" has been added that shows
    both breaking and non-breaking options.

  • chan_rtp: Implement RTP glue for UnicastRTP channels

    The dial string option 'g' was added to the UnicastRTP channel
    which enables RTP glue and therefore native RTP bridges with those
    channels.

  • app_queue: periodic announcement configurable start time.

    Introduce a new queue configuration option called
    'periodic-announce-startdelay' which will vary the normal (historic)
    behavior of starting the periodic announcement cycle at
    periodic-announce-frequency seconds after entering the queue to start
    the periodic announcement cycle at period-announce-startdelay seconds
    after joining the queue. The default behavior if this config option is
    not set remains unchanged.
    Signed-off-by: Jaco Kroon jaco@uls.co.za

  • variables: Add additional variable dialplan functions.

    Four new dialplan functions have been added.
    GLOBAL_DELETE and DELETE have been added which allows
    the deletion of global and channel variables.
    GLOBAL_EXISTS and VARIABLE_EXISTS have been added
    which checks whether a global or channel variable has
    been set.

Upgrade Notes:

  • app.c: Allow ampersands in playback lists to be escaped.

    Ampersands in URLs passed to the Playback(),
    Background(), SpeechBackground(), Read(), Authenticate(), or
    Queue() applications as filename arguments can now be escaped by
    single quoting the filename. Additionally, this is also possible when
    using the CONFBRIDGE dialplan function, or configuring various
    features in confbridge.conf and queues.conf.

  • pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.

    The dtls_rekey will be disabled if webrtc support is
    requested on an endpoint. A warning will also be emitted.

  • res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters

    As part of this update, the maximum allowable length
    for PJSIP endpoints and relevant resources has been increased from
    40 to 255 characters. To take advantage of this enhancement, it is
    recommended to run the necessary procedures (e.g., Alembic) to
    update your schemas.

Closed Issues:

  • #84: [bug]: codec_ilbc: Fails to build with ilbc version 3.0.4
  • #129: [bug]: res_speech_aeap: Crash due to NULL format on setup
  • #242: [new-feature]: logger: Allow filtering logs in CLI by channel
  • #248: [bug]: core_local: Local channels cannot have slashes in the destination
  • #260: [bug]: maxptime must be changed to multiples of 20
  • #286: [improvement]: chan_iax2: Improve authentication debugging
  • #289: [new-feature]: Add support for deleting channel and global variables
  • #294: [improvement]: chan_dahdi: Improve call pickup documentation
  • #298: [improvement]: chan_rtp: Implement RTP glue
  • #301: [bug]: Number of ICE TURN threads continually growing
  • #303: [bug]: SpeechBackground never exits
  • #308: [bug]: chan_console: Deadlock when hanging up console channels
  • #315: [improvement]: Search /var/lib/asterisk/sounds/custom for sound files before /var/lib/asterisk/sounds/
  • #316: [bug]: Privilege Escalation in Astrisk's Group permissions.
  • #319: [bug]: func_periodic_hook truncates long channel names when setting EncodedChannel
  • #321: [bug]: Performance suffers unnecessarily when debugging deadlocks
  • #325: [bug]: hangup after beep to avoid waiting for timeout
  • #330: [improvement]: Add cel user event helper function
  • #335: [bug]: res_pjsip_pubsub: The bad_event unit test causes a SEGV in build_resource_tree
  • #337: [bug]: asterisk.c: The CLI history file is written to the wrong directory in some cases
  • #341: [bug]: app_if.c : nested EndIf incorrectly exits parent If
  • #345: [improvement]: Increase pj_sip Realm Size to 255 Characters for Improved Functionality
  • #349: [improvement]: Add libjwt to third-party
  • #352: [bug]: Update qualify_timeout documentation to include DNS note
  • #354: [improvement]: app_voicemail: Disable ADSI if unavailable on a line
  • #356: [new-feature]: app_directory: Add ADSI support.
  • #360: [improvement]: Update documentation for CHANGES/UPGRADE files
  • #362: [improvement]: Speed up ARI command processing
  • #379: [bug]: Orphaned taskprocessors cause shutdown delays
  • #384: [bug]: Unnecessary re-INVITE after answer
  • #388: [bug]: Crash in app_followme.c due to not acquiring a reference to nativeformats
  • #396: [improvement]: res_pjsip: Specify max ciphers allowed if too many provided
  • #398: [new-feature]: app_voicemail: Add AMI event for password change
  • #409: [improvement]: chan_dahdi: Emit warning if specifying nonexistent cadence
  • #423: [improvement]: func_lock: Add missing see-also refs
  • #425: [improvement]: configs: Improve documentation for bandwidth in iax.conf.sample
  • #428: [bug]: cli: Output is truncated from "config show help"
  • #430: [bug]: Fix broken links
  • #442: [bug]: func_channel: Some channel options are not settable
  • #445: [bug]: ast_coredumper isn't figuring out file locations properly in all cases
  • #458: [bug]: Memory leak in chan_dahdi when mwimonitor=yes on FXO
  • #462: [new-feature]: app_dial: Add new option to preserve initial stream topology of caller
  • #465: [improvement]: Change res_odbc connection pool request logic to not lock around blocking operations
  • #482: [improvement]: manager.c: Improve clarity of "manager show connected" output
  • #509: [bug]: res_pjsip: Crash when looking up transport state in use
  • #513: [bug]: manager.c: Crash due to regression using wrong free function when built with MALLOC_DEBUG
  • #520: [improvement]: menuselect: Use more specific error message.
  • #530: [bug]: bridge_channel.c: Stream topology change amplification with multiple layers of Local channels

Don't miss a new asterisk release

NewReleases is sending notifications on new releases.