===
==============================================================================
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
+------------------------------------------------------------------------------
+
+AMI Flash event
+------------------
+ * Hook flash events are now exposed as AMI events.
+
+Add variable support to Originate
+------------------
+ * The Originate application now allows
+ variables to be set on the new channel
+ through a new option.
+
+Channel-agnostic MF support
+------------------
+ * A SendMF application and PlayMF manager
+ application are now included to send
+ arbitrary standard R1 MF tones on the
+ current channel or another specified channel.
+
+Core
+------------------
+ * Added debug logging categories that allow a user to output debug information
+ based on a specified category. This lets the user limit, and filter debug
+ output to data relevant to a particular context, or topic. For instance the
+ following categories are now available for debug logging purposes:
+
+ dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
+
+ These debug categories can be enable/disable via an Asterisk CLI command:
+
+ core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
+ core set debug category off [<category> [<category>] ...]
+
+ If no sub-level is associated all debug statements for a given category are
+ output. If a sub-level is given then only those statements assigned a value
+ at or below the associated sub-level are output.
+
+ * The location where the media cache stores its temporary files
+ is no longer hardcoded to /tmp but can now be configured separately
+ via the astcachedir config variable in asterisk.conf.
+
+ The default location for astcachedir is now /var/cache/asterisk
+ instead of /tmp, please make sure to manually cleanup and/or
+ migrate the temporary files in /tmp after upgrading.
+
+Handle non-standard Meter metric type safely
+------------------
+ * A meter_support flag has been introduced that defaults to true to maintain current behaviour.
+ If disabled, a counter metric type will be used instead wherever a meter metric type was used,
+ the counter will have a "_meter" suffix appended to the metric name.
+
+MessageSend
+------------------
+ * The MessageSend dialplan application now takes an
+ optional third argument that can set the message's
+ "To" field on outgoing messages. It's an alternative
+ to using the MESSAGE(to) dialplan function.
+
+ To prevent confusion with the first argument, currently
+ named "to", it's been renamed to "destination".
+ Its function, creating the request URI, hasn't changed.
+
+ The online documentation has also been enhanced to
+ explain the behavior.
+
+ Despite the changes in this commit, there should be
+ no impact to current users of MessageSend.
+
+ * The MessageSend AMI action has been updated to allow the Destination
+ and the To addresses to be provided separately. This brings the
+ MessageSend manager command in line with the capabilities of the
+ MessageSend dialplan application.
+
+New ConfKick application
+------------------
+ * Adds a ConfKick() application, which allows
+ a specific channel, all users, or all non-admin
+ users to be kicked from a conference bridge.
+
+New Reload application
+------------------
+ * Adds an application to reload modules
+
+PlaybackFinished has a new error state
+------------------
+ * The PlaybackFinished event now has a new state "failed"
+ that is used when the sound file was not played due to an error.
+ Before the state on PlaybackFinished was always "done".
+
+ In case of multiple sound files to be played,
+ the PlaybackFinished is sent only once in the end of the list,
+ even in case of error.
+
+WaitForCondition application
+------------------
+ * This application provides a way to halt
+ dialplan execution until a provided
+ condition evaluates to true.
+
+app_confbridge
+------------------
+ * app_confbridge now has the ability to force the estimated bitrate on an SFU
+ bridge. To use it, set a bridge profile's remb_behavior to "force" and
+ set remb_estimated_bitrate to a rate in bits per second. The
+ remb_estimated_bitrate parameter is ignored if remb_behavior is something
+ other than "force".
+
+app_confbridge answer supervision control
+------------------
+ * app_confbridge now provides a user option to prevent
+ answer supervision if the channel hasn't been
+ answered yet. To use it, set a user profile's
+ answer_channel option to no.
+
+app_dial announcement option
+------------------
+ * The A option for Dial now supports
+ playing audio to the caller as well
+ as the called party.
+
+app_dtmfstore
+------------------
+ * New application which collects digits
+ dialed and stores them into
+ a specified variable.
+
+app_milliwatt
+------------------
+ * The Milliwatt application's existing behavior is
+ incorrect in that it plays a constant tone, which
+ is not how digital milliwatt test lines actually
+ work.
+
+ An option is added so that a proper milliwatt test
+ tone can be provided, including a 1 second silent
+ interval every 10 seconds. However, for compatability
+ reasons, the default behavior remains unchanged.
+
+app_mixmonitor
+------------------
+ * app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
+ MixMonitorMute when the channel monitoring is started, stopped and muted (or
+ unmuted) respectively.
+
+app_morsecode
+------------------
+ * Extends the Morsecode application by adding support for
+ American Morse code and adds a configurable option
+ for the frequency used in off intervals.
+
+app_originate
+------------------
+ * Codecs can now be specified for dialplan-originated
+ calls, as with call files and the manager action.
+ By default, only the slin codec is now used, instead
+ of all the slin* codecs.
+
+app_queue
+------------------
+ * Reload behavior in app_queue has been changed so
+ queue and agent stats are not reset during full
+ app_queue module reloads. The queue reset stats
+ CLI command may still be used to reset stats while
+ Asterisk is running.
+
+app_queue.c
+------------------
+ * Allow multiple files to be streamed for agent announcement.
+
+app_read
+------------------
+ * A new option allows the digit '#' to be read literally,
+ rather than used exclusively as the input terminator
+ character.
+
+app_voicemail
+------------------
+ * The VoiceMail application can now be configured to send greetings and
+ instructions via early media and only answering the channel when it is
+ time for the caller to record their message. This behavior can be
+ activated by passing the new 'e' option to VoiceMail.
+
+ * You can now customize the "beep" tone or omit it entirely.
+
+ * Add a new 'S' option to VoiceMail which prevents the instructions
+ (vm-intro) from being played if a busy/unavailable/temporary greeting
+ from the voicemail user is played. This is similar to the existing 's'
+ option except that instructions will still be played if no user
+ greeting is available.
+
+chan_iax2
+------------------
+ * You can now specify a default "auth" method in the
+ [general] section of iax.conf
+
+ * ANI2 (OLI) is now transmitted over IAX2 calls
+ as an information element.
+
+chan_pjsip
+------------------
+ * The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a warning, and
+ returns unsuccessful if it's used on a channel prior to answering.
+
+ * Add function PJSIP_HEADERS() to get list of headers by pattern in the same way as SIP_HEADERS() do.
+
+ Add ability to read header by pattern using PJSIP_HEADER().
+
+chan_pjsip, app_transfer
+------------------
+ * Added TRANSFERSTATUSPROTOCOL variable. When transfer is performed,
+ transfers can pass a protocol specific error code.
+ Example, in SIP 3xx-6xx represent any SIP specific error received when
+ performing a REFER.
+
+func_channel
+------------------
+ * Adds the CHANNEL_EXISTS function to check for the existence
+ of a channel by name or unique ID.
+
+func_env.c
+------------------
+ * Two new functions, DIRNAME and BASENAME, are now
+ included which allow users to obtain the directory
+ or the base filename of any file.
+
+func_framedrop
+------------------
+ * New function to selectively drop specified frames
+ in either direction on a channel.
+
+func_math: Three new dialplan functions
+------------------
+ * Introduce three new functions, MIN, MAX, and ABS, which can be used to
+ obtain the minimum or maximum of up to two integers or absolute value.
+
+func_odbc
+------------------
+ * Introduce an ARGC variable for func_odbc functions, along with a minargs
+ per-function configuration option.
+
+ minargs enables enforcing of minimum count of arguments to pass to
+ func_odbc, so if you're unconditionally using ARG1 through ARG4 then
+ this should be set to 4. func_odbc will generate an error in this case,
+ so for example
+
+ [FOO]
+ minargs = 4
+
+ and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
+ potentially leaked ARG4 from Gosub().
+
+ ARGC is needed if you're using optional argument, to verify whether or
+ not an argument has been passed, else it's possible to use a leaked ARGn
+ from Gosub (app_stack). So now you can safely do
+ ${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
+
+func_scramble
+------------------
+ * Adds an audio scrambler function that may be used to
+ distort voice audio on a channel as a privacy
+ enhancement.
+
+func_strings
+------------------
+ * A new STRBETWEEN function is now included which
+ allows a substring to be inserted between characters
+ in a string. This is particularly useful for transforming
+ dial strings, such as adding pauses between digits
+ for a string of digits that are sent to another channel.
+
+func_vmcount
+------------------
+ * Multiple mailboxes may now be specified instead of just one.
+
+func_volume now can be read
+------------------
+ * The VOLUME function can now also be used
+ to read existing values previously set.
+
+logger
+------------------
+ * Added a new log formatter called "plain" that always prints
+ file, function and line number if available (even for verbose
+ messages) and never prints color control characters. Most
+ suitable for file output but can be used for other channels
+ as well.
+
+ You use it in logger.conf like so:
+ debug => [plain]debug
+ console => [plain]error,warning,debug,notice,pjsip_history
+ messages => [plain]warning,error,verbose
+
+ * The dateformat option in logger.conf will now control the remote
+ console (asterisk -r -T) timestamp format. Previously, dateformat only
+ controlled the formatting of the timestamp going to log files and the
+ main console (asterisk -c) but only for non-verbose messages.
+
+ Internally, Asterisk does not send the logging timestamp with verbose
+ messages to console clients. It's up to the Asterisk remote consoles
+ to format verbose messages. Asterisk remote consoles previously did
+ not load dateformat from logger.conf.
+
+ Previously there was a non-configurable and hard-coded "%b %e %T"
+ dateformat that would be used no matter what on all verbose console
+ messages printed on remote consoles.
+
+ Example:
+ logger.conf
+ dateformat=%F %T.%3q
+
+ # asterisk -rvvv -T
+ [2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
+ [Mar 19 09:55:43] -- Goto (dialExten,s,1)
+
+ Given the following example configuration in logger.conf, Asterisk log
+ files and the console, will log verbose messages using the given
+ timestamp. Now ensuring that all remote console messages are logged
+ with the same dateformat as other log streams.
+
+ ---
+ [general]
+ dateformat=%F %T.%3q
+
+ [logfiles]
+ console => notice,warning,error,verbose
+ full => notice,warning,error,debug,verbose
+ ---
+
+ Now we have a globally-defined dateformat that will be used
+ consistently across the Asterisk main console, remote consoles, and
+ log files.
+
+ Now we have consistent logging:
+
+ # asterisk -rvvv -T
+ [2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
+ [2021-03-19 09:55:43.920-0400] -- Goto (dialExten,s,1)
+
+ * Added the ability to define custom log levels in logger.conf
+ and use them in the Log dialplan application. Also adds a
+ logger show levels CLI command.
+
+res_pjproject
+------------------
+ * In pjproject.conf you can now map pjproject log levels
+ to the Asterisk TRACE log level. The default mappings
+ have therefore changed so that only pjproject levels
+ 3 and 4 are mapped to DEBUG and 5 and 6 are now mapped
+ to TRACE. Previously 3, 4, 5, and 6 were all mapped to
+ DEBUG.
+
+res_pjsip
+------------------
+ * PJSIP transports can now be partially reloaded safely. This allows the
+ local_net and external_* options to be updated without restarting Asterisk.
+
+ * PJSIP endpoints can now be configured to skip authentication when
+ handling OPTIONS requests by setting the allow_unauthenticated_options
+ configuration property to 'yes.'
+
+ * PJSIP support of registrations of endpoints in multidomain
+ scenarios, where the endpoint contains the domain info
+ in pjsip_endpoint.conf
+
+res_pjsip_dialog_info_body_generator
+------------------
+ * PJSIP now supports RFC 4235 Section 4.1.6 dialog-info+xml local and
+ remote elements by iterating through ringing channels and inserting
+ that info into NOTIFY packet sent to the endpoint.
+
+res_pjsip_messaging
+------------------
+ * Implemented the new "to" parameter of the MessageSend()
+ dialplan application. This allows a user to specify
+ a complete SIP "To" header separate from the Request URI.
+ We now also accept a destination in the same format
+ as Dial()... PJSIP/number@endpoint
+
+res_pjsip_registrar
+------------------
+ * Adds new PJSIP AOR option remove_unavailable to either
+ remove unavailable contacts when a REGISTER exceeds
+ max_contacts when remove_existing is disabled, or
+ prioritize unavailable contacts over other existing
+ contacts when remove_existing is enabled.
+
+res_pjsip_t38
+------------------
+ * In res_pjsip_sdp_rtp, the bind_rtp_to_media_address option and the
+ fallback use of the transport's bind address solve problems sending
+ media on systems that cannot send ipv4 packets on ipv6 sockets, and
+ certain other situations. This change extends both of these behaviors
+ to UDPTL sessions as well in res_pjsip_t38, to fix fax-specific
+ problems on these systems, introducing a new option
+ endpoint/t38_bind_udptl_to_media_address.
+
+res_rtp_asterisk
+------------------
+ * By default Asterisk reports the PJSIP version in all
+ STUN packets it sends.
+
+ This behaviour may not be desired in a production
+ environment and can now be disabled by setting the
+ stun_software_attribute option to 'no' in rtp.conf.
+
+ * When the address of the STUN server (stunaddr) is a name resolved via DNS, the
+ stunaddr will be recurringly resolved when the DNS answer Time-To-Live (TTL)
+ expires. This allows the STUN server to change its IP address without having to
+ reload the res_rtp_asterisk module.
+
+res_srtp
+------------------
+ * SRTP replay protection has been added to res_srtp and
+ a new configuration option "srtpreplayprotection" has
+ been added to the rtp.conf config file. For security
+ reasons, the default setting is "yes". Buggy clients
+ may not handle this correctly which could result in
+ no, or one way, audio and Asterisk error messages like
+ "replay check failed".
+
+res_tonedetect
+------------------
+ * Arbitrary tone detection is now available through a
+ WaitForTone application (blocking) and a TONE_DETECT
+ function (non-blocking).
+
+say.c
+------------------
+ * Adds SAYFILES function to retrieve the file names that would
+ be played by corresponding Say applications, such as
+ SayDigits, SayAlpha, etc.
+
+ Additionally adds SayMoney and SayOrdinal applications.
+
------------------------------------------------------------------------------
--- New functionality introduced in Asterisk 18.0.0 --------------------------
------------------------------------------------------------------------------
===
===========================================================
+------------------------------------------------------------------------------
+--- New functionality introduced in Asterisk 19.0.0 --------------------------
+------------------------------------------------------------------------------
+
+Log Rotate
+------------------
+ * The sample logger files have been changed to have .log as their file
+ extension. This was done so that when attached to issues on the issue
+ tracker, they are able to be opened in the browser for convenience.
+ Because of this, the asterisk.logrotate script has been updated to look
+ for .log extensions instead of no extension for files such as full
+ and messages.
+
+app_dahdiras
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+app_fax
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+app_ices
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+app_image
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+app_meetme
+------------------
+ * This module is now deprecated and will no
+ longer be built by default. It is scheduled
+ to be removed as of Asterisk 21.
+
+app_mysql
+------------------
+ * This module was deprecated in Asterisk 1.8
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+app_nbscat
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+app_osplookup
+------------------
+ * This module is now deprecated and will no
+ longer be built by default. It is scheduled
+ to be removed as of Asterisk 21.
+
+app_url
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+cdr_mysql
+------------------
+ * This module was deprecated in Asterisk 1.8
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+cdr_syslog
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+chan_alsa
+------------------
+ * This module is now deprecated and will no
+ longer be built by default. It is scheduled
+ to be removed as of Asterisk 21.
+
+chan_mgcp
+------------------
+ * This module is now deprecated and will no
+ longer be built by default. It is scheduled
+ to be removed as of Asterisk 21.
+
+chan_misdn
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+chan_nbs
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+chan_oss
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+chan_phone
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+chan_sip
+------------------
+ * chan_sip is no longer built by default. To build it, make sure to
+ enable it when running 'make menuselect'
+
+chan_skinny
+------------------
+ * This module is now deprecated and will no
+ longer be built by default. It is scheduled
+ to be removed as of Asterisk 21.
+
+chan_vpb
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+conf2ael
+------------------
+ * This application was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+muted
+------------------
+ * This application was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+res_config_sqlite
+------------------
+ * This module was deprecated in Asterisk 16
+ and is now being removed in accordance with
+ the Asterisk Module Deprecation policy.
+
+res_monitor
+------------------
+ * This module is no longer built by default in
+ accordance with the Module Deprecation Policy.
+ If you require this functionality you will need
+ to enable it for building in menuselect. Note
+ that in the future res_monitor will be removed.
+
+res_pktccops
+------------------
+ * This module is now deprecated and will no
+ longer be built by default. It is scheduled
+ to be removed as of Asterisk 21.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
+------------------------------------------------------------------------------
+
+STIR/SHAKEN
+------------------
+ * The configuration option public_key_url in stir_shaken.conf
+ has been renamed to public_cert_url to better fit what it
+ contains. Only the name has changed - functionality is the
+ same.
+
+ * STIR/SHAKEN originally needed an origid to be specified in
+ stir_shaken.conf under the certificate config object in
+ order to work. Now, one is automatically created by
+ generating a UUID, as recommended by RFC8588. Any origid
+ you have in your stir_shaken.conf will need to be removed
+ for the module to read in certificates.
+
+chan_iax2
+------------------
+ * Encryption is now supported for RSA authentication.
+
+ Currently, these auth configurations will cause a crash:
+ auth = md5,rsa
+ auth = plaintext,md5,rsa
+
+ With a patched peer, the following will cause a crash:
+ auth = rsa
+ auth = md5,rsa
+ auth = plaintext,md5,rsa
+
+ If both the peer and user are patches, no crash occurs.
+ Existing good configurations should continue to work.
+
+menuselect
+------------------
+ * menuselect --enable, --disable, --enable-category and --disable-category will
+ now fail with a non-zero exit code instead of silently failing if an invalid
+ option or category is specified.
+
+res_http_media_cache
+------------------
+ * When fetching a file for playback from a URL, Asterisk will now first
+ use the value of the Content-Type header in the HTTP response to
+ determine the format of the audio data, and only if it is unable to do
+ that will it attempt to parse the URL and extract the extension from
+ the path portion. Previously Asterisk would first look at the end of
+ the URL, which may have included query string parameters or a URL
+ fragment, which was error prone.
+
+res_srtp
+------------------
+ * SRTP replay protection has been added to res_srtp and
+ a new configuration option "srtpreplayprotection" has
+ been added to the rtp.conf config file. For security
+ reasons, the default setting is "yes". Buggy clients
+ may not handle this correctly which could result in
+ no, or one way, audio and Asterisk error messages like
+ "replay check failed".
+
------------------------------------------------------------------------------
--- New functionality introduced in Asterisk 18.0.0 --------------------------
------------------------------------------------------------------------------
+++ /dev/null
-Subject: app_confbridge
-
-app_confbridge now has the ability to force the estimated bitrate on an SFU
-bridge. To use it, set a bridge profile's remb_behavior to "force" and
-set remb_estimated_bitrate to a rate in bits per second. The
-remb_estimated_bitrate parameter is ignored if remb_behavior is something
-other than "force".
+++ /dev/null
-Subject: app_confbridge answer supervision control
-
-app_confbridge now provides a user option to prevent
-answer supervision if the channel hasn't been
-answered yet. To use it, set a user profile's
-answer_channel option to no.
+++ /dev/null
-Subject: New ConfKick application
-
-Adds a ConfKick() application, which allows
-a specific channel, all users, or all non-admin
-users to be kicked from a conference bridge.
-
+++ /dev/null
-Subject: app_dial announcement option
-
-The A option for Dial now supports
-playing audio to the caller as well
-as the called party.
-
+++ /dev/null
-Subject: app_dtmfstore
-
-New application which collects digits
-dialed and stores them into
-a specified variable.
-
+++ /dev/null
-Subject: app_milliwatt
-
-The Milliwatt application's existing behavior is
-incorrect in that it plays a constant tone, which
-is not how digital milliwatt test lines actually
-work.
-
-An option is added so that a proper milliwatt test
-tone can be provided, including a 1 second silent
-interval every 10 seconds. However, for compatability
-reasons, the default behavior remains unchanged.
+++ /dev/null
-Subject: app_morsecode
-
-Extends the Morsecode application by adding support for
-American Morse code and adds a configurable option
-for the frequency used in off intervals.
-
+++ /dev/null
-Subject: app_originate
-
-Codecs can now be specified for dialplan-originated
-calls, as with call files and the manager action.
-By default, only the slin codec is now used, instead
-of all the slin* codecs.
+++ /dev/null
-Subject: Add variable support to Originate
-
-The Originate application now allows
-variables to be set on the new channel
-through a new option.
-
+++ /dev/null
-Subject: app_queue.c
-
-Allow multiple files to be streamed for agent announcement.
-
+++ /dev/null
-Subject: app_queue
-
-Reload behavior in app_queue has been changed so
-queue and agent stats are not reset during full
-app_queue module reloads. The queue reset stats
-CLI command may still be used to reset stats while
-Asterisk is running.
+++ /dev/null
-Subject: app_read
-
-A new option allows the digit '#' to be read literally,
-rather than used exclusively as the input terminator
-character.
+++ /dev/null
-Subject: New Reload application
-
-Adds an application to reload modules
-
+++ /dev/null
-Subject: chan_pjsip, app_transfer
-
-Added TRANSFERSTATUSPROTOCOL variable. When transfer is performed,
-transfers can pass a protocol specific error code.
-Example, in SIP 3xx-6xx represent any SIP specific error received when
-performing a REFER.
+++ /dev/null
-Subject: app_voicemail
-
-Add a new 'S' option to VoiceMail which prevents the instructions
-(vm-intro) from being played if a busy/unavailable/temporary greeting
-from the voicemail user is played. This is similar to the existing 's'
-option except that instructions will still be played if no user
-greeting is available.
+++ /dev/null
-Subject: WaitForCondition application
-
-This application provides a way to halt
-dialplan execution until a provided
-condition evaluates to true.
+++ /dev/null
-Subject: chan_iax2
-
-You can now specify a default "auth" method in the
-[general] section of iax.conf
+++ /dev/null
-Subject: chan_iax2
-
-ANI2 (OLI) is now transmitted over IAX2 calls
-as an information element.
+++ /dev/null
-Subject: AMI Flash event
-
-Hook flash events are now exposed as AMI events.
+++ /dev/null
-Subject: func_channel
-
-Adds the CHANNEL_EXISTS function to check for the existence
-of a channel by name or unique ID.
+++ /dev/null
-Subject: func_env.c
-
-Two new functions, DIRNAME and BASENAME, are now
-included which allow users to obtain the directory
-or the base filename of any file.
+++ /dev/null
-Subject: func_framedrop
-
-New function to selectively drop specified frames
-in either direction on a channel.
-
+++ /dev/null
-Subject: func_math: Three new dialplan functions
-
-Introduce three new functions, MIN, MAX, and ABS, which can be used to
-obtain the minimum or maximum of up to two integers or absolute value.
+++ /dev/null
-Subject: func_odbc
-
-Introduce an ARGC variable for func_odbc functions, along with a minargs
-per-function configuration option.
-
-minargs enables enforcing of minimum count of arguments to pass to
-func_odbc, so if you're unconditionally using ARG1 through ARG4 then
-this should be set to 4. func_odbc will generate an error in this case,
-so for example
-
-[FOO]
-minargs = 4
-
-and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
-potentially leaked ARG4 from Gosub().
-
-ARGC is needed if you're using optional argument, to verify whether or
-not an argument has been passed, else it's possible to use a leaked ARGn
-from Gosub (app_stack). So now you can safely do
-${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
+++ /dev/null
-Subject: func_scramble
-
-Adds an audio scrambler function that may be used to
-distort voice audio on a channel as a privacy
-enhancement.
+++ /dev/null
-Subject: func_strings
-
-A new STRBETWEEN function is now included which
-allows a substring to be inserted between characters
-in a string. This is particularly useful for transforming
-dial strings, such as adding pauses between digits
-for a string of digits that are sent to another channel.
+++ /dev/null
-Subject: func_vmcount
-
-Multiple mailboxes may now be specified instead of just one.
+++ /dev/null
-Subject: func_volume now can be read
-
-The VOLUME function can now also be used
-to read existing values previously set.
+++ /dev/null
-Subject: logger
-
-Added the ability to define custom log levels in logger.conf
-and use them in the Log dialplan application. Also adds a
-logger show levels CLI command.
+++ /dev/null
-Subject: Core
-
-Added debug logging categories that allow a user to output debug information
-based on a specified category. This lets the user limit, and filter debug
-output to data relevant to a particular context, or topic. For instance the
-following categories are now available for debug logging purposes:
-
- dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
-
-These debug categories can be enable/disable via an Asterisk CLI command:
-
- core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
- core set debug category off [<category> [<category>] ...]
-
-If no sub-level is associated all debug statements for a given category are
-output. If a sub-level is given then only those statements assigned a value
-at or below the associated sub-level are output.
-
+++ /dev/null
-Subject: logger
-
-The dateformat option in logger.conf will now control the remote
-console (asterisk -r -T) timestamp format. Previously, dateformat only
-controlled the formatting of the timestamp going to log files and the
-main console (asterisk -c) but only for non-verbose messages.
-
-Internally, Asterisk does not send the logging timestamp with verbose
-messages to console clients. It's up to the Asterisk remote consoles
-to format verbose messages. Asterisk remote consoles previously did
-not load dateformat from logger.conf.
-
-Previously there was a non-configurable and hard-coded "%b %e %T"
-dateformat that would be used no matter what on all verbose console
-messages printed on remote consoles.
-
-Example:
-logger.conf
- dateformat=%F %T.%3q
-
-# asterisk -rvvv -T
-[2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
-[Mar 19 09:55:43] -- Goto (dialExten,s,1)
-
-Given the following example configuration in logger.conf, Asterisk log
-files and the console, will log verbose messages using the given
-timestamp. Now ensuring that all remote console messages are logged
-with the same dateformat as other log streams.
-
----
-[general]
-dateformat=%F %T.%3q
-
-[logfiles]
-console => notice,warning,error,verbose
-full => notice,warning,error,debug,verbose
----
-
-Now we have a globally-defined dateformat that will be used
-consistently across the Asterisk main console, remote consoles, and
-log files.
-
-Now we have consistent logging:
-
-# asterisk -rvvv -T
-[2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
-[2021-03-19 09:55:43.920-0400] -- Goto (dialExten,s,1)
+++ /dev/null
-Subject: logger
-
-Added a new log formatter called "plain" that always prints
-file, function and line number if available (even for verbose
-messages) and never prints color control characters. Most
-suitable for file output but can be used for other channels
-as well.
-
-You use it in logger.conf like so:
-debug => [plain]debug
-console => [plain]error,warning,debug,notice,pjsip_history
-messages => [plain]warning,error,verbose
+++ /dev/null
-Subject: MessageSend
-
-The MessageSend AMI action has been updated to allow the Destination
-and the To addresses to be provided separately. This brings the
-MessageSend manager command in line with the capabilities of the
-MessageSend dialplan application.
+++ /dev/null
-Subject: Core
-
-The location where the media cache stores its temporary files
-is no longer hardcoded to /tmp but can now be configured separately
-via the astcachedir config variable in asterisk.conf.
-
-The default location for astcachedir is now /var/cache/asterisk
-instead of /tmp, please make sure to manually cleanup and/or
-migrate the temporary files in /tmp after upgrading.
+++ /dev/null
-Subject: MessageSend
-
-The MessageSend dialplan application now takes an
-optional third argument that can set the message's
-"To" field on outgoing messages. It's an alternative
-to using the MESSAGE(to) dialplan function.
-
-To prevent confusion with the first argument, currently
-named "to", it's been renamed to "destination".
-Its function, creating the request URI, hasn't changed.
-
-The online documentation has also been enhanced to
-explain the behavior.
-
-Despite the changes in this commit, there should be
-no impact to current users of MessageSend.
+++ /dev/null
-Subject: Channel-agnostic MF support
-
-A SendMF application and PlayMF manager
-application are now included to send
-arbitrary standard R1 MF tones on the
-current channel or another specified channel.
+++ /dev/null
-Subject: app_mixmonitor
-
-app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
-MixMonitorMute when the channel monitoring is started, stopped and muted (or
-unmuted) respectively.
+++ /dev/null
-Subject: res_pjsip
-
-PJSIP endpoints can now be configured to skip authentication when
-handling OPTIONS requests by setting the allow_unauthenticated_options
-configuration property to 'yes.'
+++ /dev/null
-Subject: chan_pjsip
-
-Add function PJSIP_HEADERS() to get list of headers by pattern in the same way as SIP_HEADERS() do.
-
-Add ability to read header by pattern using PJSIP_HEADER().
+++ /dev/null
-Subject: chan_pjsip
-
-The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a warning, and
-returns unsuccessful if it's used on a channel prior to answering.
+++ /dev/null
-Subject: res_pjsip
-
-PJSIP transports can now be partially reloaded safely. This allows the
-local_net and external_* options to be updated without restarting Asterisk.
+++ /dev/null
-Subject: res_pjproject
-
-In pjproject.conf you can now map pjproject log levels
-to the Asterisk TRACE log level. The default mappings
-have therefore changed so that only pjproject levels
-3 and 4 are mapped to DEBUG and 5 and 6 are now mapped
-to TRACE. Previously 3, 4, 5, and 6 were all mapped to
-DEBUG.
+++ /dev/null
-Subject: res_pjsip
-
-PJSIP support of registrations of endpoints in multidomain
-scenarios, where the endpoint contains the domain info
-in pjsip_endpoint.conf
+++ /dev/null
-Subject: res_pjsip_dialog_info_body_generator
-
-PJSIP now supports RFC 4235 Section 4.1.6 dialog-info+xml local and
-remote elements by iterating through ringing channels and inserting
-that info into NOTIFY packet sent to the endpoint.
+++ /dev/null
-res_pjsip_dtmf_info: Hook flash
-
-Adds recognition for application/
-hook-flash as a hook flash event.
-
+++ /dev/null
-Subject: res_pjsip_messaging
-
-Implemented the new "to" parameter of the MessageSend()
-dialplan application. This allows a user to specify
-a complete SIP "To" header separate from the Request URI.
-We now also accept a destination in the same format
-as Dial()... PJSIP/number@endpoint
+++ /dev/null
-Subject: res_pjsip_registrar
-
-Adds new PJSIP AOR option remove_unavailable to either
-remove unavailable contacts when a REGISTER exceeds
-max_contacts when remove_existing is disabled, or
-prioritize unavailable contacts over other existing
-contacts when remove_existing is enabled.
+++ /dev/null
-Subject: res_pjsip_t38
-
-In res_pjsip_sdp_rtp, the bind_rtp_to_media_address option and the
-fallback use of the transport's bind address solve problems sending
-media on systems that cannot send ipv4 packets on ipv6 sockets, and
-certain other situations. This change extends both of these behaviors
-to UDPTL sessions as well in res_pjsip_t38, to fix fax-specific
-problems on these systems, introducing a new option
-endpoint/t38_bind_udptl_to_media_address.
+++ /dev/null
-Subject: res_rtp_asterisk
-
-By default Asterisk reports the PJSIP version in all
-STUN packets it sends.
-
-This behaviour may not be desired in a production
-environment and can now be disabled by setting the
-stun_software_attribute option to 'no' in rtp.conf.
+++ /dev/null
-Subject: res_rtp_asterisk
-
-When the address of the STUN server (stunaddr) is a name resolved via DNS, the
-stunaddr will be recurringly resolved when the DNS answer Time-To-Live (TTL)
-expires. This allows the STUN server to change its IP address without having to
-reload the res_rtp_asterisk module.
+++ /dev/null
-Subject: PlaybackFinished has a new error state
-
-The PlaybackFinished event now has a new state "failed"
-that is used when the sound file was not played due to an error.
-Before the state on PlaybackFinished was always "done".
-
-In case of multiple sound files to be played,
-the PlaybackFinished is sent only once in the end of the list,
-even in case of error.
+++ /dev/null
-Subject: Handle non-standard Meter metric type safely
-
-A meter_support flag has been introduced that defaults to true to maintain current behaviour.
-If disabled, a counter metric type will be used instead wherever a meter metric type was used,
-the counter will have a "_meter" suffix appended to the metric name.
\ No newline at end of file
+++ /dev/null
-Subject: res_tonedetect
-
-Arbitrary tone detection is now available through a
-WaitForTone application (blocking) and a TONE_DETECT
-function (non-blocking).
+++ /dev/null
-Subject: say.c
-
-Adds SAYFILES function to retrieve the file names that would
-be played by corresponding Say applications, such as
-SayDigits, SayAlpha, etc.
-
-Additionally adds SayMoney and SayOrdinal applications.
+++ /dev/null
-Subject: res_srtp
-
-SRTP replay protection has been added to res_srtp and
-a new configuration option "srtpreplayprotection" has
-been added to the rtp.conf config file. For security
-reasons, the default setting is "yes". Buggy clients
-may not handle this correctly which could result in
-no, or one way, audio and Asterisk error messages like
-"replay check failed".
+++ /dev/null
-Subject: app_voicemail
-
-You can now customize the "beep" tone or omit it entirely.
+++ /dev/null
-Subject: app_voicemail
-
-The VoiceMail application can now be configured to send greetings and
-instructions via early media and only answering the channel when it is
-time for the caller to record their message. This behavior can be
-activated by passing the new 'e' option to VoiceMail.
+++ /dev/null
-Subject: app_dahdiras
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: app_fax
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: app_ices
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: app_image
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: app_meetme
-Master-Only: True
-
-This module is now deprecated and will no
-longer be built by default. It is scheduled
-to be removed as of Asterisk 21.
+++ /dev/null
-Subject: app_mysql
-Master-Only: True
-
-This module was deprecated in Asterisk 1.8
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: app_nbscat
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: app_osplookup
-Master-Only: True
-
-This module is now deprecated and will no
-longer be built by default. It is scheduled
-to be removed as of Asterisk 21.
+++ /dev/null
-Subject: app_url
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: Log Rotate
-Master-Only: True
-
-The sample logger files have been changed to have .log as their file
-extension. This was done so that when attached to issues on the issue
-tracker, they are able to be opened in the browser for convenience.
-Because of this, the asterisk.logrotate script has been updated to look
-for .log extensions instead of no extension for files such as full
-and messages.
+++ /dev/null
-Subject: cdr_mysql
-Master-Only: True
-
-This module was deprecated in Asterisk 1.8
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: cdr_syslog
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: chan_alsa
-Master-Only: True
-
-This module is now deprecated and will no
-longer be built by default. It is scheduled
-to be removed as of Asterisk 21.
+++ /dev/null
-Subject: chan_iax2
-
-Encryption is now supported for RSA authentication.
-
-Currently, these auth configurations will cause a crash:
-auth = md5,rsa
-auth = plaintext,md5,rsa
-
-With a patched peer, the following will cause a crash:
-auth = rsa
-auth = md5,rsa
-auth = plaintext,md5,rsa
-
-If both the peer and user are patches, no crash occurs.
-Existing good configurations should continue to work.
+++ /dev/null
-Subject: chan_mgcp
-Master-Only: True
-
-This module is now deprecated and will no
-longer be built by default. It is scheduled
-to be removed as of Asterisk 21.
+++ /dev/null
-Subject: chan_misdn
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: chan_nbs
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: chan_oss
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: chan_phone
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: chan_skinny
-Master-Only: True
-
-This module is now deprecated and will no
-longer be built by default. It is scheduled
-to be removed as of Asterisk 21.
+++ /dev/null
-Subject: chan_vpb
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: conf2ael
-Master-Only: True
-
-This application was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: chan_sip
-Master-Only: True
-
-chan_sip is no longer built by default. To build it, make sure to
-enable it when running 'make menuselect'
+++ /dev/null
-Subject: res_http_media_cache
-
-When fetching a file for playback from a URL, Asterisk will now first
-use the value of the Content-Type header in the HTTP response to
-determine the format of the audio data, and only if it is unable to do
-that will it attempt to parse the URL and extract the extension from
-the path portion. Previously Asterisk would first look at the end of
-the URL, which may have included query string parameters or a URL
-fragment, which was error prone.
+++ /dev/null
-Subject: menuselect
-
-menuselect --enable, --disable, --enable-category and --disable-category will
-now fail with a non-zero exit code instead of silently failing if an invalid
-option or category is specified.
+++ /dev/null
-Subject: muted
-Master-Only: True
-
-This application was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: res_config_sqlite
-Master-Only: True
-
-This module was deprecated in Asterisk 16
-and is now being removed in accordance with
-the Asterisk Module Deprecation policy.
+++ /dev/null
-Subject: res_monitor
-Master-Only: True
-
-This module is no longer built by default in
-accordance with the Module Deprecation Policy.
-If you require this functionality you will need
-to enable it for building in menuselect. Note
-that in the future res_monitor will be removed.
+++ /dev/null
-Subject: res_pktccops
-Master-Only: True
-
-This module is now deprecated and will no
-longer be built by default. It is scheduled
-to be removed as of Asterisk 21.
+++ /dev/null
-Subject: res_srtp
-
-SRTP replay protection has been added to res_srtp and
-a new configuration option "srtpreplayprotection" has
-been added to the rtp.conf config file. For security
-reasons, the default setting is "yes". Buggy clients
-may not handle this correctly which could result in
-no, or one way, audio and Asterisk error messages like
-"replay check failed".
+++ /dev/null
-Subject: STIR/SHAKEN
-
-The configuration option public_key_url in stir_shaken.conf
-has been renamed to public_cert_url to better fit what it
-contains. Only the name has changed - functionality is the
-same.
+++ /dev/null
-Subject: STIR/SHAKEN
-
-STIR/SHAKEN originally needed an origid to be specified in
-stir_shaken.conf under the certificate config object in
-order to work. Now, one is automatically created by
-generating a UUID, as recommended by RFC8588. Any origid
-you have in your stir_shaken.conf will need to be removed
-for the module to read in certificates.