mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Update UPGRADE.txt file for Asterisk 12
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
This commit is contained in:
		
							
								
								
									
										433
									
								
								UPGRADE-12.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										433
									
								
								UPGRADE-12.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -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/. | ||||
|  | ||||
|  | ||||
| =========================================================== | ||||
| =========================================================== | ||||
							
								
								
									
										389
									
								
								UPGRADE.txt
									
									
									
									
									
								
							
							
						
						
									
										389
									
								
								UPGRADE.txt
									
									
									
									
									
								
							| @@ -16,395 +16,12 @@ | ||||
| === 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. | ||||
|  | ||||
| =========================================================== | ||||
| =========================================================== | ||||
|   | ||||
		Reference in New Issue
	
	Block a user