media formats: re-architect handling of media for performance improvements
[asterisk/asterisk.git] / UPGRADE.txt
index 1076cc3..535782a 100644 (file)
 
 From 12 to 13:
 
+ - Sample config files have been moved from configs/ to a subfolder of that
+   directory, 'samples'.
+
+ - The menuselect utility has been pulled into the Asterisk repository. As a
+   result, the libxml2 development library is now a required dependency for
+   Asterisk.
+
  - The asterisk command line -I option and the asterisk.conf internal_timing
    option are removed and always enabled if any timing module is loaded.
 
@@ -43,6 +50,13 @@ From 12 to 13:
    directly. This change also includes a new script, refcounter.py, in the
    contrib folder that will process the refs log file.
 
+ - The asterisk compatibility options in asterisk.conf have been removed.
+   These options enabled certain backwards compatibility features for
+   pbx_realtime, res_agi, and app_set that made their behaviour similar to
+   Asterisk 1.4. Users who used these backwards compatibility settings should
+   update their dialplans to use ',' instead of '|' as a delimiter, and should
+   use the Set dialplan application instead of the MSet dialplan application.
+
 ARI:
  - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
    the backwards compatible changes listed below.
@@ -110,6 +124,15 @@ AMI:
  - Removed the undocumented manager.conf block-sockets option.  It interferes with
    TCP/TLS inactivity timeouts.
 
+ - The response to the PresenceState AMI action has historically contained two
+   Message keys. The first of these is used as an informative message regarding
+   the success/failure of the action; the second contains a Presence state
+   specific message. Having two keys with the same unique name in an AMI
+   message is cumbersome for some client; hence, the Presence specific Message
+   has been deprecated. The message will now contain a PresenceMessage key
+   for the presence specific information; the Message key containing presence
+   information will be removed in the next major version of AMI.
+
 CDRs:
  - The "endbeforehexten" setting now defaults to "yes", instead of "no".
    When set to "no", yhis setting will cause a new CDR to be generated when a
@@ -117,6 +140,9 @@ CDRs:
    handler subroutine). In general, this is not the preferred default: this
    causes extra CDRs to be generated for a channel in many common dialplans.
 
+ - The cdr_sqlite module was deprecated and has been removed. Users of this
+   module should use the cdr_sqlite3_custom module instead.
+
 chan_dahdi:
  - SS7 support now requires libss7 v2.0 or later.
 
@@ -125,6 +151,18 @@ chan_dahdi:
    SETUP ACKNOWLEDGE message.
    Default is now no.
 
+chan_gtalk
+ - This module was deprecated and has been removed. Users of chan_gtalk
+   should use chan_motif.
+
+chan_h323
+ - This module was deprecated and has been removed. Users of chan_h323
+   should use chan_ooh323.
+
+chan_jingle
+ - This module was deprecated and has been removed. Users of chan_jingle
+   should use chan_motif.
+
 chan_pjsip:
  - Added a 'force_avp' option to chan_pjsip which will force the usage of
    'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
@@ -139,6 +177,13 @@ chan_sip:
  - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
    interoperability.
 
+ - The SIPPEER dialplan function no longer supports using a colon as a
+   delimiter for parameters. The parameters for the function should be
+   delimited using a comma.
+
+ - The SIPCHANINFO dialplan function was deprecated and has been removed. Users
+   of the function should use the CHANNEL function instead.
+
  - Added a 'force_avp' option for chan_sip. When enabled this option will
    cause the media transport in the offer or answer SDP to be 'RTP/AVP',
    'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
@@ -156,6 +201,39 @@ chan_sip:
    hash to be specified for the DTLS fingerprint placed in SDP. Supported
    values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
 
+ - The 'progressinband=never' option is now more zealous in the persecution of
+   progress messages coming from Asterisk. Channels bridged with a SIP channel
+   that has 'progressinband=never' set will not be able to forward their
+   progress indications through to the SIP device. chan_sip will now turn such
+   progress indications into a 180 Ringing (if a 180 has not yet been
+   transmitted) if 'progressinband=never'.
+
+  - The codec preference order in an SDP during an offer is slightly different
+    than previous releases. Prior to Asterisk 13, the preference order of
+    codecs used to be:
+    (1) Our preferred codec
+    (2) Our configured codecs
+    (3) Any non-audio joint codecs
+
+    One of the ways the new media format architecture in Asterisk 13 improves
+    performance is by reference counting formats, such that they can be reused
+    in many places without additional allocation. To not require a large
+    amount of locking, an instance of a format is immutable by convention.
+    This works well except for formats with attributes. Since a media format
+    with an attribute is a different object than the same format without an
+    attribute, we have to carry over the formats with attributes from an
+    inbound offer so that the correct attributes are offered in an outgoing
+    INVITE request. This requires some subtle tweaks to the preference order
+    to ensure that the media format with attributes is offered to a remote
+    peer, as opposed to the same media format (but without attributes) that
+    may be stored in the peer object.
+
+    All of this means that our offer offer list will now be:
+    (1) Our preferred codec
+    (2) Any joint codecs offered by the inbound offer
+    (3) All other codecs that are not the preferred codec and not a joint
+        codec offered by the inbound offer
+
 CLI commands:
  - "core show settings" now lists the current console verbosity in addition
    to the root console verbosity.
@@ -195,6 +273,15 @@ HTTP:
    keep alive time between HTTP requests is configured in http.conf with the
    session_keep_alive parameter.
 
+MusicOnHold
+ - The SetMusicOnHold dialplan application was deprecated and has been removed.
+   Users of the application should use the CHANNEL function's musicclass
+   setting instead.
+
+ - The WaitMusicOnHold dialplan application was deprecated and has been
+   removed. Users of the application should use MusicOnHold with a duration
+   parameter instead.
+
 ODBC:
 - The compatibility setting, allow_empty_string_in_nontext, has been removed.
   Empty column values will be stored as empty strings during realtime updates.
@@ -241,6 +328,10 @@ Realtime Configuration:
  - A new set of Alembic scripts has been added for CDR tables. This will create
    a 'cdr' table with the default schema that Asterisk expects.
 
+res_jabber:
+ - This module was deprecated and has been removed. Users of this module should
+   use res_xmpp instead.
+
 safe_asterisk:
  - The safe_asterisk script was previously not installed on top of an existing
    version. This caused bug-fixes in that script not to be deployed. If your
@@ -270,6 +361,5 @@ WebSockets:
    In such cases, it may be necessary to adjust this value.
    Default is 100 ms.
 
-
 ===========================================================
 ===========================================================