mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 11:06:31 +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