diff --git a/UPGRADE-12.txt b/UPGRADE-12.txt new file mode 100644 index 0000000000..426b1a979d --- /dev/null +++ b/UPGRADE-12.txt @@ -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, "" 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 + 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] 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/. + + +=========================================================== +=========================================================== diff --git a/UPGRADE.txt b/UPGRADE.txt index d60ca36ef0..0fe7f6b7d3 100644 --- a/UPGRADE.txt +++ b/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 - 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: 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] 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 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,) 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. =========================================================== ===========================================================