==============================================================================
------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15 to Asterisk 16 --------------------
+------------------------------------------------------------------------------
+
+chan_sip
+------------------
+ * New function SIP_HEADERS() enumerates all headers in the incoming INVITE.
+
+ * The variable GET_TRANSFERRER_DATA set in the peer channel causes matching
+ headers be retrieved from the REFER message and made accessible to the
+ dialplan in the hash TRANSFER_DATA.
+
+------------------------------------------------------------------------------
--- Functionality changes from Asterisk 14 to Asterisk 15 --------------------
------------------------------------------------------------------------------
+app_queue
+------------------
+ * PAUSEALL/UNPAUSEALL now sets the pause reason in the queue_log if it has
+ been defined.
+
+ * A new option, "announce-position-only-up," has been added that, when set to
+ yes, causes position announcements to only be played when the caller's
+ queue position has improved since the last time that we annouced their
+ position. This default is no.
+
+Build System
+------------------
+ * '--with-pjproject-bundled' is now the default when running ./configure
+ It can be disabled with '--without-pjproject-bundled'.
+
+ * A '--with-download-cache' option is now available which is equivalent to
+ setting '--with-sounds-cache' and '--with-externals-cache' to the same
+ value. The download cache can also be set via the AST_DOWNLOAD_CACHE
+ environment variable.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 14.6.0 to Asterisk 14.7.0 ------------
+------------------------------------------------------------------------------
+
+res_pjsip
+------------------
+ * The "external_media_address" on transports is now resolved using dnsmgr and
+ when dnsmgr refreshes are enabled will be automatically updated with the new
+ IP address of a given hostname.
+
+res_musiconhold
+------------------
+ * By default, when res_musiconhold reloads or unloads, it sends a HUP signal
+ to custom applications (and all descendants), waits 100ms, then sends a
+ TERM signal, waits 100ms, then finally sends a KILL signal. An application
+ which is interacting with an external device and/or spawns children of its
+ own may not be able to exit cleanly in the default times, expecially if sent
+ a KILL signal, or if it's children are getting signals directly from
+ res_musiconhoild. To allow extra time, the 'kill_escalation_delay'
+ class option can be used to set the number of milliseconds res_musiconhold
+ waits before escalating kill signals, with the default being the current
+ 100ms. To control to whom the signals are sent, the "kill_method"
+ class option can be set to "process_group" (the default, existing behavior),
+ which sends signals to the application and its descendants directly, or
+ "process" which sends signals only to the application itself.
+
+ * New dialplan function PJSIP_DTMF_MODE added to get or change the DTMF mode
+ of a channel on a per-call basis.
+
+res_xmpp
+-----------------
+ * OAuth 2.0 authentication is now supported when contacting Google. Follow the
+ instructions in xmpp.conf.sample to retrieve and configure the necessary
+ tokens.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 14.5.0 to Asterisk 14.6.0 ------------
+------------------------------------------------------------------------------
+
+app_voicemail
+------------------
+ * A new global option "imap_poll_logout" was added to specify whether need to
+ disconnect from the IMAP server after polling of mailboxes.
+ Default: no
+
+res_pjsip
+------------------
+ * A new endpoint option "refer_blind_progress" was added to turn off notifying
+ the progress details on Blind Transfer. If this option is not set then
+ the chan_pjsip will send NOTIFY "200 OK" immediately after "202 Accepted".
+ On default is enabled.
+ Some SIP phones like Mitel/Aastra or Snom keep the line busy until
+ receive "200 OK".
+
+ * A new endpoint option "notify_early_inuse_ringing" was added to control
+ whether to notify dialog-info state 'early' or 'confirmed' on Ringing
+ when already INUSE.
+
+ * The endpoint option 'dtmf_mode' has a new option 'auto_dtmf' added. This
+ mode works similar to 'auto' except uses DTMF INFO as fallback instead of
+ INBAND.
+
+res_agi
+------------------
+ * The EAGI() application will now look for a dialplan variable named
+ EAGI_AUDIO_FORMAT and use that format with the 'enhanced' audio pipe that
+ EAGI provides. If not specified, it will continue to use the default signed
+ linear (slin).
+
+chan_pjsip
+------------------
+ * When dialing an endpoint directly or using the PJSIP_DIAL_CONTACTS dialplan
+ function any contact which is considered unreachable due to qualify being
+ enabled will no longer be called.
+
+ * The asymmetric_rtp_codec option now also controls whether chan_pjsip will
+ send media as-is without transcoding if the codec has been negotiated in the
+ SDP. If set to "no" then Asterisk will only ever send the preferred codec
+ from the SDP, unless the remote side sends a different codec and we will
+ switch to match.
+
+Build System
+------------------
+ * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which can be used
+ to pass arbitrary options to the bundled pjproject configure.
+
+ * Automatically set the bundled pjproject configure --host and --build
+ options to match those supplied for the asterisk configure.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 14.4.0 to Asterisk 14.5.0 ------------
+------------------------------------------------------------------------------
+
+res_rtp_asterisk
+------------------
+ * Added the stun_blacklist option to rtp.conf. Some multihomed servers have
+ IP interfaces that cannot reach the STUN server specified by stunaddr.
+ Blacklist those interface subnets from trying to send a STUN packet to find
+ the external IP address. Attempting to send the STUN packet needlessly
+ delays processing incoming and outgoing SIP INVITEs because we will wait
+ for a response that can never come until we give up on the response.
+ Multiple subnets may be listed.
+
+Logging
+-------------------
+ * Added logger_queue_limit to the configuration options.
+ All log messages go to a queue serviced by a single thread
+ which does all the IO. This setting controls how big that
+ queue can get (and therefore how much memory is allocated)
+ before new messages are discarded.
+ The default is 1000.
+
+res_pjsip_config_wizard
+------------------
+ * Two new parameters have been added to the pjsip config wizard.
+ Setting 'sends_line_with_registrations' to true will cause the wizard
+ to skip the creation of an identify object to match incoming requests
+ to the endpoint and instead add the line and endpoint parameters to
+ the outbound registration object.
+ Setting 'outbound_proxy' is a shortcut for adding individual
+ endpoint/outbound_proxy, aor/outbound_proxy and registration/outbound_proxy
+ parameters.
+
+res_hep_rtcp
+------------------
+ * If the 'call-id' value is specified for the uuid_type option and a
+ chan_sip channel is used the resulting HEP traffic will now contain the
+ SIP Call-ID instead of the Asterisk channel name.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 14.3.0 to Asterisk 14.4.0 ------------
+------------------------------------------------------------------------------
+
Build System
------------------
* LOW_MEMORY no longer has an effect on Asterisk ABI. Symbols that were
Asterisk built with LOW_MEMORY can now successfully load binary modules
built without LOW_MEMORY and vice versa.
+ * RADIUS backends for CEL and CDR can now also be built using the radcli
+ client library, in addition to the existing support for building them
+ using either freeradius or radiusclient-ng.
+
Core
------------------
* ASTERISK_REGISTER_FILE was no longer useful and has been removed. Sources
when you use more than 32 formats and calls are not accepted by a remote
implementation, please report this and go back to rtp_pt_dynamic = 96.
+ * A new setting, "rtp_use_dynamic", has been added in asterisk.conf". When set
+ to "yes" RTP dynamic payload types are assigned dynamically per RTP instance.
+ When set to "no" RTP dynamic payload types are globally initialized to pre-
+ designated numbers and function similar to static payload types.
+
+app_originate
+------------------
+ * Added support to gosub predial routines on both original channel and on the
+ created channel using options parameter (like app_dial) B() and b(). This
+ allows for adding variables to newly created channel or, e.g. setting callerid.
+
+CLI Commands
+------------------
+ * 'dialplan show' output will now show [config_file:line_number] instead of
+ [registrar] when that information is available. Currently only extensions
+ registered by pbx_config when loading/reloading will use this format.
+
+app_queue
+------------------
+ * Add 'QueueUpdate' application which can be used to track outbound calls
+ using app_queue.
+
+pbx_spool
+------------------
+ * Asterisk will now set the AST_OUTGOING_ATTEMPT channel variable so that
+ attempt-specific behavior is possible. This is a 1-based number that
+ simply increases by 1 for each attempt.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 14.3.0 to Asterisk 14.4.0 ------------
+------------------------------------------------------------------------------
+
+AMI
+------------------
+ * The 'PJSIPShowEndpoint' command's respone event of 'IdentifyDetail' now
+ contains a new optional parameter, 'MatchHeader', mapping to the new
+ configuration option 'match_header' for the corresponding 'identify' object.
+ It should be noted that since 'match_header' takes in a key: value pair, the
+ event parameter will contain a ':' as well.
+
+app_record
+------------------
+ * Added new 'u' option to Record() application which prevents Asterisk from
+ truncating silence from the end of recorded files.
+
+res_pjsip_outbound_registration
+------------------
+ * Outbound registrations are now refreshed when res_stun_monitor detects
+ a network change event has happened.
+ The 'pjsip send (un)register' CLI commands were updated to accept '*all'
+ as an argument to operate on all registrations.
+ The 'PJSIP(Un)Register' AMI commands were updated to also accept '*all'.
+
+app_voicemail
+------------------
+ * The 'Comedian Mail' prompts can now be overriden using the 'vm-login' and
+ 'vm-newuser' configuration options in voicemail.conf.
+
+ * Added 'fromstring' field to the voicemail boxes. If set, it will override
+ the global 'fromstring' field on a per-mailbox basis.
+
+func_channel
+------------------
+ * Added CHANNEL(callid) to retrieve the call log tag associated with the
+ channel. e.g., [C-00000000] Dialplan now has access to the call log
+ search key associated with the channel so it can be saved in case there
+ is a problem with the call.
+
+res_pjsip
+------------------
+ * A new transport parameter 'symmetric_transport' has been added.
+ When a request from a dynamic contact comes in on a transport with this
+ option set to 'yes', the transport name will be saved and used for
+ subsequent outgoing requests like OPTIONS, NOTIFY and INVITE. It's
+ saved as a contact uri parameter named 'x-ast-txp' and will display with
+ the contact uri in CLI, AMI, and ARI output. On the outgoing request,
+ if a transport wasn't explicitly set on the endpoint AND the request URI
+ is not a hostname, the saved transport will be used and the 'x-ast-txp'
+ parameter stripped from the outgoing packet. To facilitate recreation of
+ subscriptions on asterisk restart, a new column 'contact_uri' needed to be
+ added to the ps_subcsription_persistence table. Since new columns were
+ added to both transport and subscription_persistence, an alembic upgrade
+ should be run to bring the database tables up to date.
+
+ * A new option, allow_overlap, has been added to endpoints which allows
+ overlap dialing functionality to be enabled or disabled. The option defaults
+ to enabled.
+
+res_pjsip_transport_websocket
+------------------
+ * Removed non-secure websocket support. Firefox and Chrome have not allowed
+ non-secure websockets for quite some time so this shouldn't be an issue
+ for people. Attempting to use a non-secure websocket may or may not work
+ when Asterisk attempts to send SIP requests to do something like initiate
+ call hangup.
+
+res_pjsip_endpoint_identifier_ip
+------------------
+ * A new option has been added to the 'identify' configuration object,
+ 'match_header'. The 'match_header' attribute should contain a SIP
+ header: value pair that, When set, will cause inbound requests that contain
+ the matching SIP header/value pair to be associated with the corresponding
+ endpoint. This option is cumulative with the 'match' option, so that if
+ either option matches the request, the request is associated with the
+ endpoint.
+
+ In a future release, this module will be renamed to something more
+ appropriate, as it now matches inbound requests on more than just IP
+ address.
+
+res_rtp_asterisk
+-----------------
+ * The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
+ Data and Control Packets on a Single Port." So far, the only channel driver
+ that supports this feature is chan_pjsip. You can set "rtcp_mux = yes" on
+ a PJSIP endpoint in pjsip.conf to enable the feature.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 14.2.0 to Asterisk 14.3.0 ------------
+------------------------------------------------------------------------------
+
+res_pjproject
+------------------
+ * Added new CLI command "pjproject set log level". The new command allows
+ the maximum PJPROJECT log levels to be adjusted dynamically and
+ independently from the set debug logging level like many other similar
+ module debug logging commands.
+
+ * Added new companion CLI command "pjproject show log level" to allow the
+ user to see the current maximum pjproject logging level.
+
+ * Added new pjproject.conf startup section "log_level' option to set the
+ initial maximum PJPROJECT logging level.
+
+res_pjsip_outbound_registration
+------------------
+ * Statsd no longer logs redundant status PJSIP.registrations.state changes
+ for internal state transitions that don't change the reported public status
+ state.
+
+res_pjsip_registrar
+------------------
+ * The PJSIPShowRegistrationInboundContactStatuses AMI command has been added
+ to return ContactStatusDetail events as opposed to
+ PJSIPShowRegistrationsInbound which just a dumps every defined AOR.
+
+res_pjsip
+------------------
+ * Six existing contact fields have been added to the end of the
+ ContactStatusDetail AMI event:
+ ID, AuthenticateQualify, OutboundProxy, Path, QualifyFrequency and
+ QualifyTimeout. Existing fields have not been disturbed.
+
+res_pjsip_endpoint_identifier_ip
+------------------
+ * SRV lookups can now be done on provided hostnames to determine additional
+ source IP addresses for requests. This is configurable using the
+ "srv_lookups" option on the identify and defaults to "yes".
+
+ARI
+------------------
+ * The 'ari set debug' command has been enhanced to accept 'all' as an
+ application name. This allows dumping of all apps even if an app
+ hasn't registered yet.
+
+ * 'ari set debug' now displays requests and responses as well as events.
+
------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ----------
+--- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ------------
------------------------------------------------------------------------------
AMI
Applications subscribed to a bridge will receive this event when the source
of video changes in a mixing bridge.
+ * The ARI major version has been bumped. There are not any known breaking changes
+ in ARI. The major version has been bumped because otherwise we can end up with
+ overlapping version numbers between different Asterisk versions. Now each major
+ version of Asterisk will bring with it a change in the major version of ARI.
+ The ARI version in Asterisk 14 is now 2.0.0.
+
res_pjsip
------------------
* Automatic dual stack support is now implemented. Depending on DNS resolution
* A new dialplan variable, ABANDONED, is set when the call is not answered
by an agent.
+res_ari
+------------------
+ * The configuration file ari.conf now supports a channelvars option, which
+ specifies a list of channel variables to include in each channel-oriented
+ ARI event.
+
------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.0.0 to Asterisk 14.1.0 ----------
+--- Functionality changes from Asterisk 14.0.0 to Asterisk 14.1.0 ------------
------------------------------------------------------------------------------
Build System
------------------
* New CLI commands have been added: "pjsip show identif(y|ies)", which lists
all configured PJSIP identify objects
-
+
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
------------------------------------------------------------------------------