Certified Asterisk certified-20.7-cert1 Now Available

The Asterisk Development Team would like to announce
the release of Certified asterisk-20.7-cert1.

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

Repository: https://github.com/asterisk/asterisk
Tag: certified-20.7-cert1

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

Thank You!

Change Log for Release asterisk-certified-20.7-cert1

Links:

Summary:

  • Commits: 1097
  • Commit Authors: 114
  • Issues Resolved: 891
  • Security Advisories Resolved: 1
    • GHSA-hxj9-xwr8-w8pq: Asterisk susceptible to Denial of Service via DTLS Hello packets during call initiation

User Notes:

  • app_voicemail_odbc: Allow audio to be kept on disk

    This commit adds a new voicemail.conf option
    ‘odbc_audio_on_disk’ which when set causes the ODBC variant of
    app_voicemail_odbc to leave the message and greeting audio files
    on disk and only store the message metadata in the database.
    Much more information can be found in the voicemail.conf.sample
    file.

  • tcptls/iostream: Add support for setting SNI on client TLS connections

    Secure websocket client connections now send SNI in
    the TLS client hello.

  • app_dial: Add dial time for progress/ringing.

    The timeout argument to Dial now allows
    specifying the maximum amount of time to dial if
    early media is not received.

  • app_voicemail: Allow preventing mark messages as urgent.

    The leaveurgent mailbox option can now be used to
    control whether callers may leave messages marked as ‘Urgent’.

  • Stir/Shaken Refactor

    Asterisk’s stir-shaken feature has been refactored to
    correct interoperability, RFC compliance, and performance issues.
    See https://docs.asterisk.org/Deployment/STIR-SHAKEN for more
    information.

  • Upgrade bundled pjproject to 2.14.

    Bundled pjproject has been upgraded to 2.14. For more
    information on what all is included in this change, check out the
    pjproject Github page: https://github.com/pjsip/pjproject/releases

  • app_speech_utils.c: Allow partial speech results.

    The SpeechBackground dialplan application now supports a ‘p’
    option that will return partial results from speech engines that
    provide them when a timeout occurs.

  • app_chanspy: Add ‘D’ option for dual-channel audio

    The ChanSpy application now accepts the ‘D’ option which
    will interleave the spied audio within the outgoing frames. The
    purpose of this is to allow the audio to be read as a Dual channel
    stream with separate incoming and outgoing audio. Setting both the
    ‘o’ option and the ‘D’ option and results in the ‘D’ option being
    ignored.

  • chan_dahdi: Allow MWI to be manually toggled on channels.

    The ‘dahdi set mwi’ now allows MWI on channels
    to be manually toggled if needed for troubleshooting.
    Resolves: #440

  • 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 cha..

    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.

  • sig_analog: Add Called Subscriber Held capability.

    Called Subscriber Held is now supported for analog
    FXS channels, using the calledsubscriberheld option. This allows
    a station user to go on hook when receiving an incoming call
    and resume from another phone on the same line by going on hook,
    without disconnecting the call.

  • res_pjsip_header_funcs: Make prefix argument optional.

    The prefix argument to PJSIP_HEADERS is now
    optional. If not specified, all header names will be
    returned.

  • core/ari/pjsip: Add refer mechanism

    There is a new ARI endpoint /endpoints/refer for referring
    an endpoint to some URI or endpoint.

  • chan_dahdi: Allow autoreoriginating after hangup.

    The autoreoriginate setting now allows for kewlstart FXS
    channels to automatically reoriginate and provide dial tone to the
    user again after all calls on the line have cleared. This saves users
    from having to manually hang up and pick up the receiver again before
    making another call.

  • sig_analog: Allow three-way flash to time out to silence.

    The threewaysilenthold option now allows the three-way
    dial tone to time out to silence, rather than continuing forever.

  • res_pjsip: Enable TLS v1.3 if present.

    res_pjsip now allows TLS v1.3 to be enabled if supported by
    the underlying PJSIP library. The bundled version of PJSIP supports
    TLS v1.3.

  • app_queue: Add support for applying caller priority change immediately.

    The ‘queue priority caller’ CLI command and
    ‘QueueChangePriorityCaller’ AMI action now have an ‘immediate’
    argument which allows the caller priority change to be reflected
    immediately, causing the position of a caller to move within the
    queue depending on the priorities of the other callers.

  • Adds manager actions to allow move/remove/forward individual messages in a par..

    The following manager actions have been added
    VoicemailBoxSummary – Generate message list for a given mailbox
    VoicemailRemove – Remove a message from a mailbox folder
    VoicemailMove – Move a message from one folder to another within a mailbox
    VoicemailForward – Copy a message from one folder in one mailbox
    to another folder in another or the same mailbox.

  • app_voicemail: add CLI commands for message manipulation

    The following CLI commands have been added to app_voicemail
    voicemail show mailbox
    Show contents of mailbox @
    voicemail remove <from_folder>
    Remove message from <from_folder> in mailbox @
    voicemail move <from_folder> <to_folder>
    Move message in mailbox & from <from_folder> to <to_folder>
    voicemail forward <from_mailbox> <from_context> <from_folder> <to_mailbox> <to_context> <to_folder>
    Forward message in mailbox @ <from_folder> to
    mailbox @ <to_folder>

  • sig_analog: Allow immediate fake ring to be suppressed.

    The immediatering option can now be set to no to suppress
    the fake audible ringback provided when immediate=yes on FXS channels.

  • 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.

  • cel: add local optimization begin event

    The new AST_CEL_LOCAL_OPTIMIZE_BEGIN can be used
    by itself or in conert with the existing
    AST_CEL_LOCAL_OPTIMIZE to book-end local channel optimizaion.

  • chan_dahdi: Add dialmode option for FXS lines.

    A “dialmode” option has been added which allows
    specifying, on a per-channel basis, what methods of
    subscriber dialing (pulse and/or tone) are permitted.
    Additionally, this can be changed on a channel
    at any point during a call using the CHANNEL
    function.

Upgrade Notes:

  • pbx_variables.c: Prevent SEGV due to stack overflow.

    The maximum amount of dialplan recursion
    using variable substitution (such as by using EVAL_EXTEN)
    is capped at 15.

  • Stir/Shaken Refactor

    The stir-shaken refactor is a breaking change but since
    it’s not working now we don’t think it matters. The
    stir_shaken.conf file has changed significantly which means that
    existing ones WILL need to be changed. The stir_shaken.conf.sample
    file in configs/samples/ has quite a bit more information. This is
    also an ABI breaking change since some of the existing objects
    needed to be changed or removed, and new ones added. Additionally,
    if res_stir_shaken is enabled in menuselect, you’ll need to either
    have the development package for libjwt v1.15.3 installed or use
    the –with-libjwt-bundled option with ./configure.

  • 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 cha..

    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.

  • 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.

  • cel: add local optimization begin event

    The existing AST_CEL_LOCAL_OPTIMIZE can continue
    to be used as-is and the AST_CEL_LOCAL_OPTIMIZE_BEGIN event
    can be ignored if desired.

Commit Authors:

  • Alex2grad: (1)
  • Alexander Greiner-Baer: (1)
  • Alexander Traud: (67)
  • Alexandre Fournier: (1)
  • Alexei Gradinari: (12)
  • Andre Barbosa: (3)
  • Andrew Siplas: (1)
  • Bastian Triller: (2)
  • Ben Ford: (27)
  • Bernd Zobl: (2)
  • Boris P. Korzun: (10)
  • Brad Smith: (4)
  • Carlos Oliva: (1)
  • Christof Efkemann: (1)
  • Cmaj: (3)
  • Dan Cropp: (2)
  • Dennis Buteyn: (1)
  • Dovid Bender: (1)
  • Dustin Marquess: (1)
  • Eduardo: (1)
  • Evandro C��Sar Arruda: (1)
  • Evgenios_Greek: (1)
  • Fabrice Fontaine: (2)
  • Florentin Mayer: (1)
  • Frederic LE FOLL: (1)
  • Frederic Van Espen: (1)
  • George Joseph: (139)
  • Gitea: (1)
  • Guido Falsi: (1)
  • Henning Westerholt: (3)
  • Holger Hans Peter Freyther: (9)
  • Hugh McMaster: (1)
  • Igor Goncharovsky: (5)
  • Ivan Poddubny: (1)
  • Ivan Poddubnyi: (5)
  • Jaco Kroon: (22)
  • Jason D. McCormick: (1)
  • Jasper Hafkenscheid: (1)
  • Jasper Van Der Neut: (1)
  • Jean Aunis: (4)
  • Jeremy Lain��: (1)
  • Jiajian Zhou: (1)
  • Joe Searle: (1)
  • Jose Lopes: (1)
  • Joseph Nadiv: (3)
  • Josh Soref: (25)
  • Joshua C. Colp: (85)
  • Joshua Colp: (1)
  • Kevin Harwell: (28)
  • Kfir Itzhak: (2)
  • Luke Escude: (1)
  • Lvl: (2)
  • Marcel Wagner: (3)
  • Mark Murawski: (4)
  • Mark Petersen: (10)
  • Martin Nystroem: (1)
  • Matthew Fredrickson: (4)
  • Matthew Kern: (1)
  • Maximilian Fridrich: (13)
  • Michael Cargile: (1)
  • Michael Kuron: (2)
  • Michael Neuhauser: (2)
  • Michal Hajek: (1)
  • Micha�� G��Rny: (5)
  • Miguel Angel Nubla: (1)
  • Mike Bradeen: (44)
  • MikeNaso: (1)
  • Moritz Fain: (1)
  • Nathan Bruning: (2)
  • Naveen Albert: (268)
  • Nick French: (4)
  • Nickolay Shmyrev: (1)
  • Nico Kooijman: (1)
  • Niklas Larsson: (1)
  • Olaf Titz: (1)
  • Patrick Verzele: (1)
  • Peter Fern: (1)
  • PeterHolik: (2)
  • Philip Prindeville: (14)
  • Phoneben: (1)
  • Pirmin Walthert: (1)
  • Richard Mudgett: (2)
  • Rijnhard Hessel: (1)
  • Roadkill: (1)
  • Robert Cripps: (1)
  • Rodrigo Ram��Rez Norambuena: (1)
  • Romryz: (1)
  • Salah Ahmed: (1)
  • Sam Banks: (1)
  • Samuel Olaechea: (1)
  • Sarah Autumn: (1)
  • Sean Bright: (155)
  • Sebastian Jennen: (1)
  • Sebastien Duthil: (4)
  • Sergey V. Lobanov: (1)
  • Shaaah: (1)
  • Shloime Rosenblum: (3)
  • Shyju Kanaprath: (1)
  • Spiridonov Dmitry: (1)
  • Stanislav Abramenkov: (2)
  • Stanislav: (1)
  • Steve Davies: (1)
  • Sungtae Kim: (10)
  • The_Blode: (1)
  • Thomas Guebels: (1)
  • Tinet-Mucw: (1)
  • Torrey Searle: (6)
  • Trevor Peirce: (2)
  • Under: (1)
  • Vitezslav Novy: (1)
  • Walter Doekes: (1)
  • Yury Kirsanov: (1)
  • Zhengsh: (3)
  • Zhou_jiajian: (1)

What can we help you find?