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 theCONFBRIDGE
dialplan function, or configuring various
features inconfbridge.conf
andqueues.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)