--- Functionality changes from Asterisk 15 to Asterisk 16 --------------------
------------------------------------------------------------------------------
+app_fax
+------------------
+ * The app_fax module is now deprecated, users should migrate to the
+ replacement module res_fax.
+
+app_originate
+------------------
+ * An 'a' option has been added to the Originate dialplan application which
+ will execute the originate in an asynchronous fashion. If set then the
+ application will return immediately without waiting for the originated
+ channel to answer.
+
+Build System
+------------------
+ * MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
+ with MALLOC_DEBUG can now successfully load binary modules built without
+ MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
+ need to have a special build with it enabled.
+
+ * Asterisk now depends on libjansson >= 2.11. If this version is not
+ available on your distro you can use `./configure --with-jansson-bundled`.
+
+app_macro
+------------------
+ * The app_macro module is now deprecated and by default it is no longer
+ built. Users should migrate to app_stack (Gosub). A warning is logged
+ the first time any Macro is used.
+
+app_setcallerid
+------------------
+ * The app_setcallerid module has been removed. The CALLERID dialplan function
+ should be used instead.
+
chan_sip
------------------
* New function SIP_HEADERS() enumerates all headers in the incoming INVITE.
headers be retrieved from the REFER message and made accessible to the
dialplan in the hash TRANSFER_DATA.
+chan_dahdi
+------------------
+ * Timeouts for reading digits from analog phones are now configurable in
+ chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
+
+AMI
+------------------
+ * The ContactStatus and Status fields for the manager events ContactStatus
+ and ContactStatusDetail are now set to "NonQualified" when a contact exists
+ but has not been qualified.
+
+ARI
+------------------
+ * The ContactInfo event's contact_status field is now set to "NonQualified"
+ when a contact exists but has not been qualified.
+
+app_queue
+------------------
+ * Added the ability to set the wrapuptime in the configuration of member.
+ When set the wrapuptime on the member is used instead of the wrapuptime
+ defined for the queue itself.
+
+ * Added predial handler support for caller and callee channels with the
+ B and b options respectively. This is similar to the predial support
+ in app_dial.
+
+res_config_sqlite
+------------------
+ * The res_config_sqlite module is now deprecated, users should migrate to the
+ replacement module res_config_sqlite3.
+
+res_monitor
+------------------
+ * The res_monitor module is now deprecated, users should migrate to the
+ replacement module app_mixmonitor.
+
+res_pjsip
+------------------
+ * A new AMI action, PJSIPShowAors, has been added which displays information
+ about all configured PJSIP AORs.
+
+ * A new AMI action, PJSIPShowAuths, has been added which displays information
+ about all configured PJSIP Auths.
+
+ * A new AMI action, PJSIPShowContacts, has been added which displays information
+ about all configured PJSIP Contacts.
+
+res_pjsip_registrar_expire
+------------------
+ * The res_pjsip_registrar_expire module has been removed. The functionality has
+ been moved into res_pjsip_registrar.
+
+func_audiohookinherit
+------------------
+ * The func_audiohookinherit module has been removed. Due to architectural changes
+ in Asterisk 12, audiohook inheritance is performed automatically and this
+ function now lacks function.
+
+cdr_syslog
+------------------
+ * The cdr_syslog module is now deprecated and by default it is no longer
+ built.
+
+cdr_sqlite
+------------------
+ * The cdr_sqlite module has been removed. Users should move to using the
+ cdr_sqlite3_custom module instead.
+
+format_jpeg
+------------------
+ * The format_jpeg module has been removed.
+
+pbx_dundi
+------------------
+ * DUNDi now supports IPv6
+
+Core:
+------------------
+ * libedit is no longer available as an embedded library and must be provided
+ by the system.
+ * The STATIC_BUILD functionality has been removed as it has not been maintained
+ and has not worked in quite some time.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15.5.0 to Asterisk 15.6.0 ------------
+------------------------------------------------------------------------------
+
+res_pjsip
+------------------
+ * A new option 'suppress_q850_reason_headers' has been added to the endpoint
+ object. Some devices can't accept multiple Reason headers and get confused
+ when both 'SIP' and 'Q.850' Reason headers are received. This option allows
+ the 'Q.850' Reason header to be suppressed. The default value is 'no'.
+
+res_pjsip_endpoint_identifier_ip
+------------------
+ * Added regex support to the identify section match_header option. You
+ specify a regex instead of an explicit string by surrounding the header
+ value with slashes:
+ match_header = SIPHeader: /regex/
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15.4.0 to Asterisk 15.5.0 ------------
+------------------------------------------------------------------------------
+
+Core
+------------------
+ * Core bridging and, more specifically, bridge_softmix have been enhanced to
+ relay received frames of type TEXT or TEXT_DATA to all participants in a
+ softmix bridge. res_pjsip_messaging and chan_pjsip have been enhanced to
+ take advantage of this so when res_pjsip_messaging receives an in-dialog
+ MESSAGE message from a user in a conference call, it's relayed to all
+ other participants in the call.
+
+app_sendtext
+------------------
+ * Support Enhanced Messaging. SendText now accepts new channel variables
+ that can be used to override the To and From display names and set the
+ Content-Type of a message. Since you can now set Content-Type, other
+ text/* content types are now valid.
+
+app_confbridge
+------------------
+ * ConfbridgeList now shows talking status. This utilizes the same voice
+ detection as the ConfbridgeTalking event, so bridges must be configured
+ with "talk_detection_events=yes" for this flag to have meaning.
+
+ * ConfBridge can now send events to participants via in-dialog MESSAGEs.
+ All current Confbridge events are supported, such as ConfbridgeJoin,
+ ConfbridgeLeave, etc. In addition to those events, a new event
+ ConfbridgeWelcome has been added that will send a list of all
+ current participants to a new participant.
+
+res_pjsip
+------------------
+ * Two new options have been added to the system and endpoint objects to
+ control whether, on outbound calls, Asterisk will accept updated SDP answers
+ during the initial INVITE transaction when 100rel is not in effect.
+ This usually happens when the INVITE is forked to multiple UASs and more
+ than one sends an SDP answer or when a single UAS needs to change a media
+ port to switch from custom ringback to the actual media destination.
+
+ The 'follow_early_media_forked' option sets whether Asterisk will accept
+ the updated SDP when the To tag on the subsequent response is different than
+ that on the the previous response. This usually occurs in the forked INVITE
+ scenario. The default value is "yes" which is the current behavior.
+
+ The 'accept_multiple_sdp_answers' flag sets whether Asterisk will accept the
+ updated SDP when the To tag on the subsequent response is the same as that
+ on the previous response. This can occur when a UAS needs to switch media
+ ports from custom ringback to the final media path. The default value is
+ "no" which is the current behavior.
+
+ These options have to be enabled system-wide in the system config section
+ of pjsip.conf as well as on individual endpoints that require the
+ functionality.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15.3.0 to Asterisk 15.4.0 ------------
+------------------------------------------------------------------------------
+
+Core
+------------------
+ * A new configuration option "genericplc_on_equal_codecs" was added to the
+ "plc" section of codecs.conf to allow generic packet loss concealment even
+ if no transcoding was originally needed. Transcoding via SLIN is forced
+ in this case.
+
+res_pjproject
+------------------
+ * Added the "cache_pools" option to pjproject.conf. Disabling the option
+ helps track down pool content mismanagement when using valgrind or
+ MALLOC_DEBUG. The cache gets in the way of determining if the pool contents
+ are used after free and who freed it.
+
+res_pjsip_notify
+------------------
+ * Extend the PJSIPNotify AMI command to send an in-dialog notify on a
+ channel.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15.2.0 to Asterisk 15.3.0 ------------
+------------------------------------------------------------------------------
+
+Core
+------------------
+ * During dialplan reload log messages are produced for each context,
+ extension and include. These messages are no longer printed by the
+ verbose loggers, they are now only logged as debug messages.
+
+app_confbridge
+------------------
+ * Added the Muted header to the ConfbridgeJoin AMI event to indicate the
+ participant's starting mute status.
+
+ * Made the AMI ConfbridgeList action's ConfbridgeList events output all
+ the standard channel snapshot headers instead of a few hand-coded channel
+ snapshot headers. The benefit is that the CallerIDName gets disruptive
+ characters like CR, LF, Tab, and a few others escaped. However, an empty
+ CallerIDName is now output as "<unknown>" instead of "<no name>".
+
+app_followme
+------------------
+ * Added a new prompt, connecting-prompt, which will be played
+ (if configured) to the "winner" callee before connecting the call.
+
+res_pjsip
+------------------
+ * Users who are matching endpoints by SIP header need to reevaluate their
+ global "endpoint_identifier_order" option in light of the "ip" endpoint
+ identifier method split into the "ip" and "header" endpoint identifier
+ methods.
+
+ * The pjsip_transport_event feature introduced in 15.1.0 has been refactored.
+ Any external modules that may have used that feature (highly unlikey) will
+ need to be changed as the API has been altered slightly.
+
+res_pjsip_endpoint_identifier_ip
+------------------
+ * The endpoint identifier "ip" method previously recognized endpoints either
+ by IP address or a matching SIP header. The "ip" endpoint identifier method
+ is now split into the "ip" and "header" endpoint identifier methods. The
+ "ip" endpoint identifier method only matches by IP address and the "header"
+ endpoint identifier method only matches by SIP header. The split allows the
+ user to control the relative priority of the IP address and the SIP header
+ identification methods in the global "endpoint_identifier_order" option.
+ e.g., If you have two type=identify sections where one matches by IP address
+ for endpoint alice and the other matches by SIP header for endpoint bob then
+ you can now predict which endpoint is matched when a request comes in that
+ matches both.
+
+res_pjsip_pubsub
+------------------
+ * In an earlier release, inbound registrations on a reliable transport
+ were pruned on Asterisk restart since the TCP connection would have
+ been torn down and become unusable when Asterisk stopped. This same
+ process is now also applied to inbound subscriptions. Since this
+ required the addition of a new column to the ps_subscription_persistence
+ realtime table, users who store their subscriptions in a database will
+ need to run the "alembic upgrade head" process to add the column to
+ the schema.
+
+res_pjsip_transport_management
+------------------
+ * Since res_pjsip_transport_management provides several attack
+ mitigation features, its functionality moved to res_pjsip and
+ this module has been removed. This way the features will always
+ be available if res_pjsip is loaded.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15.1.0 to Asterisk 15.2.0 ------------
+------------------------------------------------------------------------------
+
+Core
+------------------
+ * Added the "cache_media_frames" option to asterisk.conf. Disabling the option
+ helps track down media frame mismanagement when using valgrind or
+ MALLOC_DEBUG. The cache gets in the way of determining if the frame is
+ used after free and who freed it. NOTE: This option has no effect when
+ Asterisk is compiled with the LOW_MEMORY compile time option enabled because
+ the cache code does not exist.
+
+chan_sip
+------------------
+ * Calls to invalid extensions are now reported as an ACL failure security event
+ "no_extension_match".
+
+res_rtp_asterisk
+------------------
+ * The X.509 certificate used for DTLS negotation can now be automatically
+ generated. This is supported by res_pjsip by specifying
+ "dtls_auto_generate_cert = yes" on a PJSIP endpoint. For chan_sip, you
+ would set "dtlsautogeneratecert = yes" either in the [general] section of
+ sip.conf or on a specific peer.
+
+res_pjsip
+------------------
+ * The "identify_by" on endpoints can now be set to "ip" to restrict an endpoint
+ being matched based only on IP address. To ensure no behavior change the
+ default has been changed to "username,ip".
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 15.0.0 to Asterisk 15.1.0 ------------
+------------------------------------------------------------------------------
+
+res_pjsip
+------------------
+ * The "remove_existing" option now allows a registration to succeed by
+ displacing any existing contacts that now exceed the "max_contacts" count.
+ Any removed contacts are the next to expire. The behaviour change is
+ beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
+ than one. The removed contact is likely the old contact created by
+ "rewrite_contact" that the device is refreshing.
+
+AMI
+------------------
+ * Added a new CancelAtxfer action that cancels an attended transfer.
+
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 14 to Asterisk 15 --------------------
------------------------------------------------------------------------------
when dnsmgr refreshes are enabled will be automatically updated with the new
IP address of a given hostname.
+ * A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to receive
+ unsolicited MWI NOTIFY requests and make them available to other modules via
+ the stasis message bus.
+
res_musiconhold
------------------
* By default, when res_musiconhold reloads or unloads, it sends a HUP signal
has also been removed, for the same reason.
* The endcall and enddtmf configuration options are removed. Use the
- dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
+ dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
channel before calling AgentLogin.
chan_bridge