Update UPGRADE.txt file for Asterisk 12
authorMatthew Jordan <mjordan@digium.com>
Fri, 30 Aug 2013 18:38:00 +0000 (18:38 +0000)
committerMatthew Jordan <mjordan@digium.com>
Fri, 30 Aug 2013 18:38:00 +0000 (18:38 +0000)
This simply pulls in the changes that were breaking from the CHANGES file
and updates a few other areas accordingly. It also removes the 10 => 11
notes, which are traditionally removed from each major version and stored
in the appropriate UPGRADE-X.txt file.
........

Merged revisions 398100 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@398101 65c4cc65-6c06-0410-ace0-fbb531ad65f3

UPGRADE-12.txt [new file with mode: 0644]
UPGRADE.txt

diff --git a/UPGRADE-12.txt b/UPGRADE-12.txt
new file mode 100644 (file)
index 0000000..426b1a9
--- /dev/null
@@ -0,0 +1,433 @@
+===========================================================
+===
+=== Information for upgrading between Asterisk versions
+===
+=== These files document all the changes that MUST be taken
+=== into account when upgrading between the Asterisk
+=== versions listed below. These changes may require that
+=== you modify your configuration files, dialplan or (in
+=== some cases) source code if you have your own Asterisk
+=== modules or patches. These files also include advance
+=== notice of any functionality that has been marked as
+=== 'deprecated' and may be removed in a future release,
+=== along with the suggested replacement functionality.
+===
+=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
+=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
+=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
+=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
+=== UPGRADE-10.txt  -- Upgrade info for 1.8 to 10
+=== UPGRADE-11.txt  -- Upgrade info for 10 to 11
+===
+===========================================================
+
+There are many significant architectural changes in Asterisk 12. It is
+recommended that you not only read through this document for important
+changes that affect an upgrade, but that you also read through the CHANGES
+document in depth to better understand the new options available to you.
+
+Additional information on the architectural changes made in Asterisk can be
+found on the Asterisk wiki (https://wiki.asterisk.org)
+
+Of particular note, the following systems in Asterisk underwent significant
+changes. Documentation for the changes and a specification for their
+behavior in Asterisk 12 is also available on the Asterisk wiki.
+ - AMI: Many events were changed, and the semantics of channels and bridges
+        were defined. In particular, how channels and bridges behave under
+        transfer scenarios and situations involving multiple parties has
+        changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
+        for more information.
+ - CDR: CDR logic was extracted from the many locations it existed in across
+        Asterisk and implemented as a consumer of Stasis message bus events.
+        As a result, consistency of records has improved significantly and the
+        behavior of CDRs in transfer scenarios has been defined in the CDR
+        specification. However, significant behavioral changes in CDRs resulted
+        from the transition. The most significant change is the addition of
+        CDR entries when a channel who is the Party A in a CDR leaves a bridge.
+        See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
+ - CEL: Much like CDRs, CEL was removed from the many locations it existed in
+        across Asterisk and implemented as a consumer of Stasis message bus
+        events. It now closely follows the Bridging API model of channels and
+        bridges, and has a much closer consistency of conveyed events as AMI.
+        For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
+
+Build System:
+ - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
+   the CHANNEL_TRACE build option were incompatible with the new bridging
+   architecture.
+
+ - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
+   libxslt and uriparser.
+
+ - The new SIP stack and channel driver uses a particular version of PJSIP.
+   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
+   configuring and installing PJSIP for use with Asterisk.
+
+AgentLogin and chan_agent:
+ - Along with AgentRequest, this application has been modified to be a
+   replacement for chan_agent. The chan_agent module and the Agent channel
+   driver have been removed from Asterisk, as the concept of a channel driver
+   proxying in front of another channel driver was incompatible with the new
+   architecture (and has had numerous problems through past versions of
+   Asterisk). The act of a channel calling the AgentLogin application places the
+   channel into a pool of agents that can be requested by the AgentRequest
+   application. Note that this application, as well as all other agent related
+   functionality, is now provided by the app_agent_pool module.
+
+ - This application no longer performs agent authentication. If authentication
+   is desired, the dialplan needs to perform this function using the
+   Authenticate or VMAuthenticate application or through an AGI script before
+   running AgentLogin.
+
+ - The agents.conf schema has changed. Rather than specifying agents on a
+   single line in comma delineated fashion, each agent is defined in a separate
+   context. This allows agents to use the power of context templates in their
+   definition.
+
+ - A number of parameters from agents.conf have been removed. This includes
+   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
+   urlprefix, and savecallsin. These options were obsoleted by the move from
+   a channel driver model to the bridging/application model provided by
+   app_agent_pool.
+
+ - The AGENTUPDATECDR channel variable has also been removed, for the same
+   reason as the updatecdr option.
+
+ - The endcall and enddtmf configuration options are removed.  Use the
+   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
+   channel before calling AgentLogin.
+
+AgentMonitorOutgoing
+ - This application has been removed. It was a holdover from when
+   AgentCallbackLogin was removed.
+
+ControlPlayback
+ - The channel variable CPLAYBACKSTATUS may now return the value
+   'REMOTESTOPPED' when playback is stopped by an external entity.
+
+DumpChan:
+ - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
+   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
+   containing the unique ID of the bridge that the channel happens to be in.
+
+ForkCDR:
+ - Nearly every parameter in ForkCDR has been updated and changed to reflect
+   the changes in CDRs. Please see the documentation for the ForkCDR
+   application, as well as the CDR specification on the Asterisk wiki.
+
+NoCDR:
+ - The NoCDR application has been deprecated. Please use the CDR_PROP function
+   to disable CDRs on a channel.
+
+ParkAndAnnounce:
+ - The app_parkandannounce module has been removed. The application
+   ParkAndAnnounce is now provided by the res_parking module. See the
+   Parking changes for more information.
+
+ResetCDR:
+ - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
+   backends occurs on an as-needed basis in order to preserve linkedid
+   propagation and other needed behavior.
+ - The 'e' option is deprecated. Please use the CDR_PROP function to enable
+   CDRs on a channel that they were previously disabled on.
+ - The ResetCDR application is no longer a part of core Asterisk, and instead
+   is now delivered as part of app_cdr.
+
+Queues:
+ - Queue strategy rrmemory now has a predictable order similar to strategy
+   rrordered. Members will be called in the order that they are added to the
+   queue.
+
+ - Removed the queues.conf check_state_unknown option.  It is no longer
+   necessary.
+
+ - It is now possible to play the Queue prompts to the first user waiting in a
+   call queue. Note that this may impact the ability for agents to talk with
+   users, as a prompt may still be playing when an agent connects to the user.
+   This ability is disabled by default but can be enabled on an individual
+   queue using the 'announce-to-first-user' option.
+
+ - The configuration options eventwhencalled and eventmemberstatus have been
+   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
+   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
+   sent.  The "Variable" fields will also no longer exist on the Agent* events.
+   These events can be filtered out from a connected AMI client using the
+   eventfilter setting in manager.conf.
+
+ - The queue log now differentiates between blind and attended transfers. A
+   blind transfer will result in a BLINDTRANSFER message with the destination
+   context and extension. An attended transfer will result in an
+   ATTENDEDTRANSFER message. This message will indicate the method by which
+   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
+   for running an application on a bridge or channel, or "LINK" for linking
+   two bridges together with local channels. The queue log will also now detect
+   externally initiated blind and attended transfers and record the transfer
+   status accordingly.
+
+ - When performing queue pause/unpause on an interface without specifying an
+   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
+   least one member of any queue exists for that interface.
+
+SetAMAFlags
+ - This application is deprecated in favor of CHANNEL(amaflags).
+
+VoiceMail:
+ - The voicemail.conf configuration file now has an 'alias' configuration
+   parameter for use with the Directory application. The voicemail realtime
+   database table schema has also been updated with an 'alias' column. Systems
+   using voicemail with realtime should update their schemas accordingly.
+
+Channel Drivers:
+ - When a channel driver is configured to enable jiterbuffers, they are now
+   applied unconditionally when a channel joins a bridge. If a jitterbuffer
+   is already set for that channel when it enters, such as by the JITTERBUFFER
+   function, then the existing jitterbuffer will be used and the one set by
+   the channel driver will not be applied.
+
+chan_bridge
+ - chan_bridge is removed and its functionality is incorporated into ConfBridge
+   itself.
+
+chan_dahdi:
+ - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
+   between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
+   pauses dialing for one second.
+
+ - The default for inband_on_proceeding has changed to no.
+
+ - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
+   A range of channels can be specified to be destroyed. Note that this command
+   should only be used if you understand the risks it entails.
+
+chan_local:
+ - The /b option has been removed.
+
+ - chan_local moved into the system core and is no longer a loadable module.
+
+chan_sip:
+ - The 'callevents' parameter has been removed. Hold AMI events are now raised
+   in the core, and can be filtered out using the 'eventfilter' parameter
+   in manager.conf.
+
+ - Dynamic realtime tables for SIP Users can now include a 'path' field. This
+   will store the path information for that peer when it registers. Realtime
+   tables can also use the 'supportpath' field to enable Path header support.
+
+ - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
+   objectIdentifier. This maps to the supportpath option in sip.conf.
+
+Core:
+ - Masquerades as an operation inside Asterisk have been effectively hidden
+   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
+   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
+   dropping of frame/audio hooks, and other internal implementation details
+   that users had to deal with. This fundamental change has large implications
+   throughout the changes documented for this version. For more information
+   about the new core architecture of Asterisk, please see the Asterisk wiki.
+
+ - The following channel variables have changed behavior which is described in
+   the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
+   ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
+
+AMI (Asterisk Manager Interface):
+ - Version 1.4 - The details of what happens to a channel when a masquerade
+   happens (transfers, parking, etc) have changed.
+   - The Masquerade event now includes the Uniqueid's of the clone and original
+     channels.
+   - Channels no longer swap Uniqueid's as a result of the masquerade.
+   - Instead of a shell game of renames, there's now a single rename, appending
+     <ZOMBIE> to the name of the original channel.
+
+ - *Major* changes were made to both the syntax as well as the semantics of the
+   AMI protocol. In particular, AMI events have been substantially modified
+   and improved in this version of Asterisk. The major event changes are listed
+   below.
+   - NewPeerAccount has been removed. NewAccountCode is raised instead.
+   - Reload events have been consolidated and standardized.
+   - ModuleLoadReport has been removed.
+   - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
+     app_fax and res_fax events.
+   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
+   - JabberEvent has been removed.
+   - Hold is now in the core and will now raise Hold and Unhold events.
+   - Join is now QueueCallerJoin.
+   - Leave is now QueueCallerLeave.
+   - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
+   - ChannelUpdate has been removed.
+   - Local channel optimization is now conveyed via LocalOptimizationBegin and
+     LocalOptimizationEnd.
+   - BridgeAction and BridgeExec have been removed.
+   - BlindTransfer and AttendedTransfer events were added.
+   - Dial is now DialBegin and DialEnd.
+   - DTMF is now DTMFBegin and DTMFEnd.
+   - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
+     BridgeDestroy
+   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
+   - AGIExec is now AGIExecStart and AGIExecEnd
+   - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
+
+ - The 'MCID' AMI event now publishes a channel snapshot when available and
+   its non-channel-snapshot parameters now use either the "MCallerID" or
+   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
+   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
+   parameters in the channel snapshot.
+
+ - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
+   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
+
+ - All AMI events now contain a 'SystemName' field, if available.
+
+ - Local channel information in events is now prefixed with 'LocalOne' and
+   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
+   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
+   and 'LocalOptimizationEnd' events.
+
+ - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
+   previous versions. They now report all SR/RR packets sent/received, and
+   have been restructured to better reflect the data sent in a SR/RR. In
+   particular, the event structure now supports multiple report blocks.
+
+ - The deprecated use of | (pipe) as a separator in the channelvars setting in
+   manager.conf has been removed.
+
+ - The SIP SIPqualifypeer action now sends a response indicating it will qualify
+   a peer once a peer has been found to qualify.  Once the qualify has been
+   completed it will now issue a SIPqualifypeerdone event.
+
+ - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
+   in a future release. Please use the common 'Exten' field instead.
+
+ - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
+   'UnParkedCall' have changed significantly in the new res_parking module.
+   - The 'Channel' and 'From' headers are gone. For the channel that was parked
+     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
+     has a number of fields associated with it. The old 'Channel' header relayed
+     the same data as the new 'ParkeeChannel' header.
+   - The 'From' field was ambiguous and changed meaning depending on the event.
+     for most of these, it was the name of the channel that parked the call
+     (the 'Parker'). There is no longer a header that provides this channel name,
+     however the 'ParkerDialString' will contain a dialstring to redial the
+     device that parked the call.
+   - On UnParkedCall events, the 'From' header would instead represent the
+     channel responsible for retrieving the parkee. It receives a channel
+     snapshot labeled 'Retriever'. The 'from' field is is replaced with
+     'RetrieverChannel'.
+   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
+
+ - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
+   fashion has changed the field names 'StartExten' and 'StopExten' to
+   'StartSpace' and 'StopSpace' respectively.
+
+ - The AMI 'Status' response event to the AMI Status action replaces the
+   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
+   indicate what bridge the channel is currently in.
+
+CDR (Call Detail Records)
+ - Significant changes have been made to the behavior of CDRs. The CDR engine
+   was effectively rewritten and built on the Stasis message bus. For a full
+   definition of CDR behavior in Asterisk 12, please read the specification
+   on the Asterisk wiki (wiki.asterisk.org).
+
+ - CDRs will now be created between all participants in a bridge. For each
+   pair of channels in a bridge, a CDR is created to represent the path of
+   communication between those two endpoints. This lets an end user choose who
+   to bill for what during bridge operations with multiple parties.
+
+ - The duration, billsec, start, answer, and end times now reflect the times
+   associated with the current CDR for the channel, as opposed to a cumulative
+   measurement of all CDRs for that channel.
+
+CEL:
+ - The Uniqueid field for a channel is now a stable identifier, and will not
+   change due to transfers, parking, etc.
+
+ - CEL has undergone significant rework in Asterisk 12, and is now built on the
+   Stasis message bus. Please see the specification for CEL on the Asterisk
+   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
+   information. A summary of the affected events is below:
+   - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
+     CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
+     events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
+   - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
+     additional information in the extra string field.
+
+Dialplan:
+ - All channel and global variable names are evaluated in a case-sensitive
+   manner. In previous versions of Asterisk, variables created and evaluated in
+   the dialplan were evaluated case-insensitively, but built-in variables and
+   variable evaluation done internally within Asterisk was done
+   case-sensitively.
+
+ - Asterisk has always had code to ignore dash '-' characters that are not
+   part of a character set in the dialplan extensions.  The code now
+   consistently ignores these characters when matching dialplan extensions.
+
+ - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
+   codes. Uppercase variants apply them to the calling party while lowercase
+   variants apply them to the called party.
+
+Features:
+ - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
+   no longer honored.  The feature is always activated by the channel that has
+   DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
+   different values of DYNAMIC_FEATURES on the channels
+
+ - Executing a dynamic feature on the bridge peer in a multi-party bridge will
+   execute it on all peers of the activating channel.
+
+ - There is no longer an explicit 'features reload' CLI command. Features can
+   still be reloaded using 'module reload features'.
+
+ - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
+   features.c for atxferdropcall=no to work properly. This option now just
+   works.
+
+Parking:
+ - Parking has been extracted from the Asterisk core as a loadable module,
+   res_parking.
+
+ - Configuration is found in res_parking.conf. It is no longer supported in
+   features.conf
+
+ - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications 
+   have been modified significantly. See the application documents for 
+   specific details.
+
+ - Numerous changes to Parking related applications, AMI and CLI commands and
+   internal inter-workings  have been made. Please read the CHANGES file for 
+   the detailed list.
+
+Security Events Framework:
+ - Security Event timestamps now use ISO 8601 formatted date/time instead of
+   the "seconds-microseconds" format that it was using previously.
+
+AGENT:
+ - The password option has been disabled, as the AgentLogin application no
+   longer provides authentication.
+
+AUDIOHOOK_INHERIT:
+ - Due to changes in the Asterisk core, this function is no longer needed to
+   preserve a MixMonitor on a channel during transfer operations and dialplan
+   execution. It is effectively obsolete.
+
+CDR: (function)
+ - The 'amaflags' and 'accountcode' attributes for the CDR function are
+   deprecated. Use the CHANNEL function instead to access these attributes.
+
+ - The 'l' option has been removed. When reading a CDR attribute, the most
+   recent record is always used. When writing a CDR attribute, all non-finalized
+   CDRs are updated.
+
+ - The 'r' option has been removed, for the same reason as the 'l' option.
+
+ - The 's' option has been removed, as LOCKED semantics no longer exist in the
+   CDR engine.
+
+res_rtp_asterisk:
+ - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
+   them, an Asterisk-specific version of PJSIP needs to be installed.
+   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
+
+
+===========================================================
+===========================================================
index d60ca36..0fe7f6b 100644 (file)
 === UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
 === UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
 === UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
-=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10
-=== UPGRADE-11.txt -- Upgrade info for 10 to 11
-===
+=== UPGRADE-10.txt  -- Upgrade info for 1.8 to 10
+=== UPGRADE-11.txt  -- Upgrade info for 10 to 11
+=== UPGRADE-12.txt  -- Upgrade info for 11 to 12
 ===========================================================
 
-AgentMonitorOutgoing
- - Application removed.  It was a holdover from when AgentCallbackLogin was
-   removed.
-
-NoCDR:
- - This application is deprecated. Please use the CDR_PROP function instead.
-
-ResetCDR:
- - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
-   backends occurs on an as-needed basis in order to preserve linkedid
-   propagation and other needed behavior.
- - The 'e' option is deprecated. Please use the CDR_PROP function to enable
-   CDRs on a channel that they were previously disabled on.
- - The ResetCDR application is no longer a part of core Asterisk, and instead
-   is now delivered as part of app_cdr.
-
-ForkCDR:
- - ForkCDR no longer automatically resets the forked CDR. See the 'r' option
-   for more information.
- - Variables are no longer purged from the original CDR. See the 'v' option for
-   more information.
- - The 'A' option has been removed. The Answer time on a CDR is never updated
-   once set.
- - The 'd' option has been removed. The disposition on a CDR is a function of
-   the state of the channel and cannot be altered.
- - The 'D' option has been removed. Who the Party B is on a CDR is a function
-   of the state of the respective channels, and cannot be altered.
- - The 'r' option has been changed. Previously, ForkCDR always reset the CDR
-   such that the start time and, if applicable, the answer time was updated.
-   Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
-   'r' option now triggers the Reset, setting the start time (and answer time
-   if applicable) to the current time.
- - The 's' option has been removed. A variable can be set on the original CDR
-   if desired using the CDR function, and removed from a forked CDR using the
-   same function.
- - The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
-   longer applies in the CDR engine.
- - The 'v' option now prevents the copy of the variables from the original CDR
-   to the forked CDR. Previously the variables were always copied but were
-   removed from the original. Removing variables from a CDR can have unintended
-   side effects - this option allows the user to prevent propagation of
-   variables from the original to the forked without modifying the original.
-
-AMI:
- - The SIP SIPqualifypeer action now sends a response indicating it will qualify
-   a peer once a peer has been found to qualify.  Once the qualify has been
-   completed it will now issue a SIPqualifypeerdone event.
- - Version 1.4 - The details of what happens to a channel when a masquerade
-   happens (transfers, parking, etc) have changed.
-   - The Masquerade event now includes the Uniqueid's of the clone and original
-     channels.
-   - Channels no longer swap Uniqueid's as a result of the masquerade.
-   - Instead of a shell game of renames, there's now a single rename, appending
-     <ZOMBIE> to the name of the original channel.
- - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
-   'UnParkedCall' have changed significantly in the new res_parking module.
-   - The 'Channel' and 'From' headers are gone. For the channel that was parked
-     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
-     has a number of fields associated with it. The old 'Channel' header relayed
-     the same data as the new 'ParkeeChannel' header.
-   - The 'From' field was ambiguous and changed meaning depending on the event.
-     for most of these, it was the name of the channel that parked the call
-     (the 'Parker'). There is no longer a header that provides this channel name,
-     however the 'ParkerDialString' will contain a dialstring to redial the
-     device that parked the call.
-   - On UnParkedCall events, the 'From' header would instead represent the
-     channel responsible for retrieving the parkee. It receives a channel
-     snapshot labeled 'Retriever'. The 'from' field is is replaced with
-     'RetrieverChannel'.
-   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
-
-CEL:
- - The Uniqueid field for a channel is now a stable identifier, and will not
-   change due to transfers, parking, etc.
-
-Build System:
- - Asterisk now optionally uses libxslt to improve XML documentation generation
-   and maintainability. If libxslt is not available on the system, some XML
-   documentation will be incomplete.
-
-Core:
- - The following channel variables have changed behavior which is described in
-   the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
-   ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
-
-Queues:
- - Queue logging for PAUSEALL/UNPAUSEALL now only occurs if the interface this is
-   performed on is a member of at least one queue.
- - Queue strategy rrmemory now has a predictable order similar to strategy
-   rrordered. Members will be called in the order that they are added to the
-   queue.
- - CDR behavior in app_queue has been modified slightly.  The CDR record will
-   now only record a disposition of BUSY if all Queue members were actually
-   busy on a call or some Queue members were busy or paused.  Previously, any
-   Queue member being paused would result in a disposition of BUSY.
- - Removed the queues.conf check_state_unknown option.  It is no longer
-   necessary.
- - It is now possible to play the Queue prompts to the first user waiting in a
-   call queue. Note that this may impact the ability for agents to talk with
-   users, as a prompt may still be playing when an agent connects to the user.
-   This ability is disabled by default but can be enabled on an individual
-   queue using the 'announce-to-first-user' option.
-
-Dial:
- - Now recognizes 'W' to pause sending DTMF for one second in addition to
-   the previously existing 'w' that paused sending DTMF for half a second.
-
-ExternalIVR:
- - Now recognizes 'W' to pause sending DTMF for one second in addition to
-   the previously existing 'w' that paused sending DTMF for half a second.
-
-SendDTMF:
- - Now recognizes 'W' to pause sending DTMF for one second in addition to
-   the previously existing 'w' that paused sending DTMF for half a second.
-
-SetAMAFlags
- - This application is deprecated in favor of the CHANNEL function.
-
-chan_agent:
- - The updatecdr option has been removed. Altering the names of channels on a
-   CDR is not supported - the name of the channel is the name of the channel,
-   and pretending otherwise helps no one.
- - The AGENTUPDATECDR channel variable has also been removed, for the same
-   reason as the updatecdr option.
- - chan_agent is removed and replaced with AgentLogin and AgentRequest dialplan
-   applications.  Agents are connected with callers using the new AgentRequest
-   dialplan application.  The Agents:<agent-id> device state is available to
-   monitor the status of an agent.  See agents.conf.sample for valid
-   configuration options.
-
-chan_bridge
- - chan_bridge is removed and its functionality is incorporated into ConfBridge
-   itself.
-
-chan_dahdi:
- - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
-   between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
-   pauses dialing for one second.
- - The default for inband_on_proceeding has changed to no.
-
-chan_local:
- - The /b option has been removed.
-
-Dialplan:
- - All channel and global variable names are evaluated in a case-sensitive manner.
-   In previous versions of Asterisk, variables created and evaluated in the
-   dialplan were evaluated case-insensitively, but built-in variables and variable
-   evaluation done internally within Asterisk was done case-sensitively.
- - Asterisk has always had code to ignore dash '-' characters that are not
-   part of a character set in the dialplan extensions.  The code now
-   consistently ignores these characters when matching dialplan extensions.
- - BRIDGE_FEATURES channel variable is now casesensitive for feature letter codes.
-   Uppercase variants apply them to the calling party while lowercase variants
-   apply them to the called party.
-
-Features:
- - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
-   no longer honored.  The feature is always activated by the channel that has
-   DYNAMIC_FEATURES defined on it when it enters the bridge.  Use predial to set
-   different values of DYNAMIC_FEATURES on the channels
-
- - Executing a dynamic feature on the bridge peer in a multi-party bridge will
-   execute it on all peers of the activating channel.
-
- - There is no longer an explicit 'features reload' CLI command. Features can still be
-   reloaded using 'module reload features'.
-
-
-Parking:
- - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications have
-   been modified significantly. See the application documents for specific details.
-   Also parking lot configuration is now done in res_parking.conf instead of
-   features.conf
-
-From 10 to 11:
-
-Voicemail:
- - All voicemails now have a "msg_id" which uniquely identifies a message. For
-   users of filesystem and IMAP storage of voicemail, this should be transparent.
-   For users of ODBC, you will need to add a "msg_id" column to your voice mail
-   messages table. This should be a string capable of holding at least 32 characters.
-   All messages created in old Asterisk installations will have a msg_id added to
-   them when required. This operation should be transparent as well.
-
-Parking:
- - The comebacktoorigin setting must now be set per parking lot. The setting in
-   the general section will not be applied automatically to each parking lot.
- - The BLINDTRANSFER channel variable is deleted from a channel when it is
-   bridged to prevent subtle bugs in the parking feature.  The channel
-   variable is used by Asterisk internally for the Park application to work
-   properly.  If you were using it for your own purposes, copy it to your
-   own channel variable before the channel is bridged.
-
-res_ais:
- - Users of res_ais in versions of Asterisk prior to Asterisk 11 must change
-   to use the res_corosync module, instead.  OpenAIS is deprecated, but
-   Corosync is still actively developed and maintained.  Corosync came out of
-   the OpenAIS project.
-
-Dialplan Functions:
- - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter
-   instead.
- - Macro has been deprecated in favor of GoSub.  For redirecting and connected
-   line purposes use the following variables instead of their macro equivalents:
-   REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS,
-   CONNECTED_LINE_SEND_SUB, CONNECTED_LINE_SEND_SUB_ARGS.
- - The REDIRECTING function now supports the redirecting original party id
-   and reason.
- - The HANGUPCAUSE and HANGUPCAUSE_KEYS functions have been introduced to
-   provide a replacement for the SIP_CAUSE hash. The HangupCauseClear
-   application has also been introduced to remove this data from the channel
-   when necessary.
-
-
-func_enum:
- - ENUM query functions now return a count of -1 on lookup error to
-   differentiate between a failed query and a successful query with 0 results
-   matching the specified type.
-
-CDR:
- - cdr_adaptive_odbc now supports specifying a schema so that Asterisk can
-   connect to databases that use schemas.
-
-Configuration Files:
- - Files listed below have been updated to be more consistent with how Asterisk
-   parses configuration files.  This makes configuration files more consistent
-   with what is expected across modules.
-
-   - cdr.conf: [general] and [csv] sections
-   - dnsmgr.conf
-   - dsp.conf
-
- - The 'verbose' setting in logger.conf now takes an optional argument,
-   specifying the verbosity level for each logging destination.  The default,
-   if not otherwise specified, is a verbosity of 3.
-
-AMI:
-  - DBDelTree now correctly returns an error when 0 rows are deleted just as
-    the DBDel action does.
-  - The IAX2 PeerStatus event now sends a 'Port' header.  In Asterisk 10, this was
-    erroneously being sent as a 'Post' header.
-
-CCSS:
- - Macro is deprecated. Use cc_callback_sub instead of cc_callback_macro
-   in channel configurations.
-
-app_meetme:
-  - The 'c' option (announce user count) will now work even if the 'q' (quiet)
-    option is enabled.
-
-app_followme:
- - Answered outgoing calls no longer get cut off when the next step is started.
-   You now have until the last step times out to decide if you want to accept
-   the call or not before being disconnected.
-
-chan_gtalk:
- - chan_gtalk has been deprecated in favor of the chan_motif channel driver. It is recommended
-   that users switch to using it as it is a core supported module.
-
-chan_jingle:
- - chan_jingle has been deprecated in favor of the chan_motif channel driver. It is recommended
-   that users switch to using it as it is a core supported module.
-
-SIP
-===
- - A new option "tonezone" for setting default tonezone for the channel driver
-   or individual devices
- - A new manager event, "SessionTimeout" has been added and is triggered when
-   a call is terminated due to RTP stream inactivity or SIP session timer
-   expiration.
- - SIP_CAUSE is now deprecated.  It has been modified to use the same
-   mechanism as the HANGUPCAUSE function.  Behavior should not change, but
-   performance should be vastly improved.  The HANGUPCAUSE function should now
-   be used instead of SIP_CAUSE. Because of this, the storesipcause option in
-   sip.conf is also deprecated.
- - The sip paramater for Originating Line Information (oli, isup-oli, and
-   ss7-oli) is now parsed out of the From header and copied into the channel's
-   ANI2 information field.  This is readable from the CALLERID(ani2) dialplan
-   function.
- - ICE support has been added and is enabled by default. Some endpoints may have
-   problems with the ICE candidates within the SDP. If this is the case ICE support
-   can be disabled globally or on a per-endpoint basis using the icesupport
-   configuration option. Symptoms of this include one way media or no media flow.
-
-chan_unistim
- - Due to massive update in chan_unistim phone keys functions and on-screen
-   information changed.
-
-users.conf:
- - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten
-   as documented in extensions.conf.sample since v1.6.0 instead of a Macro as
-   documented in v1.4.  Set the asterisk.conf stdexten=macro parameter to
-   invoke the stdexten the old way.
-
-res_jabber
- - This module has been deprecated in favor of the res_xmpp module. The res_xmpp
-   module is backwards compatible with the res_jabber configuration file, dialplan
-   functions, and AMI actions. The old CLI commands can also be made available using
-   the res_clialiases template for Asterisk 11.
-
-From 1.8 to 10:
-
-cel_pgsql:
- - This module now expects an 'extra' column in the database for data added
-   using the CELGenUserEvent() application.
-
-ConfBridge
- - ConfBridge's dialplan arguments have changed and are not
-   backwards compatible.
-
-File Interpreters
- - The format interpreter formats/format_sln16.c for the file extension
-   '.sln16' has been removed. The '.sln16' file interpreter now exists
-   in the formats/format_sln.c module along with new support for sln12,
-   sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.
-
-HTTP:
- - A bindaddr must be specified in order for the HTTP server
-   to run. Previous versions would default to 0.0.0.0 if no
-   bindaddr was specified.
-
-Gtalk:
- - The default value for 'context' and 'parkinglots' in gtalk.conf has
-   been changed to 'default', previously they were empty.
-
-chan_dahdi:
- - The mohinterpret=passthrough setting is deprecated in favor of
-   moh_signaling=notify.
-
-pbx_lua:
- - Execution no longer continues after applications that do dialplan jumps
-   (such as app.goto).  Now when an application such as app.goto() is called,
-   control is returned back to the pbx engine and the current extension
-   function stops executing.
- - the autoservice now defaults to being on by default
- - autoservice_start() and autoservice_start() no longer return a value.
-
-Queue:
- - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
- - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.
-
-Asterisk Database:
- - The internal Asterisk database has been switched from Berkeley DB 1.86 to
-   SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
-   utility in the UTILS section of menuselect. If an existing astdb is found and no
-   astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
-   convert an existing astdb to the SQLite3 version automatically at runtime. If
-   moving back from Asterisk 10 to Asterisk 1.8, the astdb2bdb utility can be used
-   to create a Berkeley DB copy of the SQLite3 astdb that Asterisk 10 uses.
-
-Manager:
- - The AMI protocol version was incremented to 1.2 as a result of changing two
-   instances of the Unlink event to Bridge events. This change was documented
-   as part of the AMI 1.1 update, but two Unlink events were inadvertently left
-   unchanged.
-
-Module Support Level
- - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
-   formats, funcs, pbx, and res have been updated to include MODULEINFO data
-   that includes <support_level> tags with a value of core, extended, or deprecated.
-   More information is available on the Asterisk wiki at
-   https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
-
-   Deprecated modules are now marked to not build by default and must be explicitly
-   enabled in menuselect.
-
-chan_sip:
- - Setting of HASH(SIP_CAUSE,<slave-channel-name>) on channels is now disabled
-   by default. It can be enabled using the 'storesipcause' option. This feature
-   has a significant performance penalty.
- - In order to improve compliance with RFC 3261, SIP usernames are now properly
-   escaped when encoding reserved characters. Prior to this change, the use of
-   these characters in certain SIP settings affecting usernames could cause
-   injections of these characters in their raw form into SIP headers which could
-   in turn cause all sorts of nasty behaviors. All characters that are not
-   alphanumeric or are not contained in the the following lists specified by
-   RFC 3261 section 25.1 will be escaped as %XX when encoding a SIP username:
-    * mark: "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")"
-    * user-unreserved: "&" / "=" / "+" / "$" / "," / ";" / "?" / "/"
 
-UDPTL:
- - The default UDPTL port range in udptl.conf.sample differed from the defaults
-   in the source. If you didn't have a config file, you got 4500 to 4599. Now the
-   default is 4000 to 4999.
 
 ===========================================================
 ===========================================================