123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841 |
- ===========================================================
- ===
- === 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
- ===
- ===========================================================
- From 12.7.0 to 12.8.0:
- Core:
- - The core of Asterisk uses a message bus called "Stasis" to distribute
- information to internal components. For performance reasons, the message
- distribution was modified to make use of a thread pool instead of a
- dedicated thread per consumer in certain cases. The initial settings for
- the thread pool can now be configured using 'stasis.conf'. A sample
- configuration file is provided in the samples directory.
- From 12.6.0 to 12.7.0:
- PJSIP:
- - Added the CLI command 'pjsip list ciphers' so a user can know what
- OpenSSL names are available on their system for the pjsip.conf cipher
- option.
- - Added the pjsip.conf system type disable_tcp_switch option. The option
- allows the user to disable switching from UDP to TCP transports described
- by RFC 3261 section 18.1.1.
- From 12.6.0 to 12.6.1:
- - Due to the POODLE vulnerability (see
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566), the
- default TLS method for TLS clients will no longer allow SSLv3. As
- SSLv2 was already deprecated, it is no longer allowed by default as
- well. TLS servers no longer allow SSLv2 or SSLv3 connections. This
- affects the chan_sip channel driver, AMI, and the Asterisk HTTP server.
- - The res_jabber resource module no longer uses SSLv3 to connect to an
- XMPP server. It will now only use TLSv1 or later methods.
- From 12.5.0 to 12.6.0:
- ConfBridge:
- - Added 'Admin' header to ConfbridgeJoin, ConfbridgeLeave, ConfbridgeMute,
- ConfbridgeUnmute, and ConfbridgeTalking AMI events.
- ControlPlayback:
- - The ControlPlayback and 'control stream file' AGI command will no longer
- implicitly answer the channel. If you do not answer the channel prior to
- using either this application or AGI command, you must send Progress
- first.
- From 12.4.0 to 12.5.0:
- ARI:
- - The ARI version has been changed from 1.4.0 to 1.5.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- AMI:
- - The AMI version has been changed from 2.4.0 to 2.5.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- From 12.3.2 to 12.4.0:
- - The safe_asterisk script was previously not installed on top of an existing
- version. This caused bug-fixes in that script not to be deployed. If your
- safe_asterisk script is customized, be sure to keep your changes. Custom
- values for variables should be created in *.sh file(s) inside
- ASTETCDIR/startup.d/. See ASTERISK-21965.
- - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
- you use tools to parse either of them, update your parse functions
- accordingly. The changed strings are:
- - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
- - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
- AMI:
- - The AMI version has been changed from 2.3.0 to 2.4.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- ARI:
- - Added a compatibility option 'websocket_write_timeout'. When a websocket
- connection exists where Asterisk writes a substantial amount of data to
- the connected client, and the connected client is slow to process the
- received data, the socket may be disconnected. In such cases, it may be
- necessary to adjust this value.
- Default is 100 ms.
- - The ARI version has been changed from 1.3.0 to 1.4.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- chan_dahdi:
- - Added the inband_on_setup_ack compatibility option to chan_dahdi.conf to
- deal with switches that don't send an inband progress indication in the
- SETUP ACKNOWLEDGE message.
- chan_pjsip:
- - Added a compatibility option 'websocket_write_timeout'. When a websocket
- connection exists where Asterisk writes a substantial amount of data to
- the connected client, and the connected client is slow to process the
- received data, the socket may be disconnected. In such cases, it may be
- necessary to adjust this value.
- Default is 100 ms.
- - Added a 'force_avp' option to chan_pjsip which will force the usage of
- 'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
- in SDP offers depending on settings, even when DTLS is used for media
- encryption.
- - Added a 'media_use_received_transport' option to chan_pjsip which will
- cause the SDP answer to use the media transport as received in the SDP
- offer.
- chan_sip:
- - Added a compatibility option 'websocket_write_timeout'. When a websocket
- connection exists where Asterisk writes a substantial amount of data to
- the connected client, and the connected client is slow to process the
- received data, the socket may be disconnected. In such cases, it may be
- necessary to adjust this value.
- Default is 100 ms.
- - Added a 'force_avp' option for chan_sip. When enabled this option will
- cause the media transport in the offer or answer SDP to be 'RTP/AVP',
- 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
- configured. This option can be set to improve interoperability with WebRTC
- clients that don't use the RFC defined transport for DTLS.
- - The 'dtlsverify' option in chan_sip now has additional values besides
- 'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
- will be verified. If 'no' is specified then neither the certificate or
- fingerprint is verified. If 'certificate' is specified then only the
- certificate is verified. If 'fingerprint' is specified then only the
- fingerprint is verified.
- - A 'dtlsfingerprint' option has been added to chan_sip which allows the
- hash to be specified for the DTLS fingerprint placed in SDP. Supported
- values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
- HTTP:
- - Added support for persistent HTTP connections. To enable persistent
- HTTP connections configure the keep alive time between HTTP requests. The
- keep alive time between HTTP requests is configured in http.conf with the
- session_keep_alive parameter.
- From 12.3.0 to 12.3.1:
- - MixMonitor AMI actions now require users to have authorization classes.
- * MixMonitor - system
- * MixMonitorMute - call or system
- * StopMixMonitor - call or system
- - Added http.conf session_inactivity timer option to close HTTP connections
- that aren't doing anything.
- - Removed the undocumented manager.conf block-sockets option. It interferes with
- TCP/TLS inactivity timeouts.
- From 12.2.0 to 12.3.0:
- - The asterisk command line -I option and the asterisk.conf internal_timing
- option are removed and always enabled if any timing module is loaded.
- AMI:
- - The AMI version has been changed from 2.2.0 to 2.3.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- ARI:
- - The ARI version has been changed from 1.2.0 to 1.3.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- Build Options:
- - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
- objects will emit additional debug information to the refs log file located
- in the standard Asterisk log file directory. This log file is useful in
- tracking down object leaks and other reference counting issues. Prior to
- this version, this option was only available by modifying the source code
- directly. This change also includes a new script, refcounter.py, in the
- contrib folder that will process the refs log file.
- chan_sip:
- - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
- From 12.1.0 to 12.2.0:
- AMI:
- - The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- ARI:
- - The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
- the backwards compatible changes listed in the CHANGES file.
- - A bug fix in bridge creation has caused a behavioural change in how
- subscriptions are created for bridges. A bridge created through ARI, does
- not, by itself, have a subscription created for any particular Stasis
- application. When a channel in a Stasis application joins a bridge, an
- implicit event subscription is created for that bridge as well. Previously,
- when a channel left such a bridge, the subscription was leaked; this allowed
- for later bridge events to continue to be pushed to the subscribed
- applications. That leak has been fixed; as a result, bridge events that were
- delivered after a channel left the bridge are no longer delivered. An
- application must subscribe to a bridge through the applications resource if
- it wishes to receive all events related to a bridge.
- ConfBridge:
- - The sound_place_into_conference sound used in Confbridge is now deprecated
- and is no longer functional since it has been broken since its inception
- and the fix involved using a different method to achieve the same goal. The
- new method to achieve this functionality is by using sound_begin to play
- a sound to the conference when waitmarked users are moved into the
- conference.
- IAX2:
- - When communicating with a peer on an Asterisk 1.4 or earlier system, the
- chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
- prevents an incompatible connected line frame from an Astersik 1.8 or later
- system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
- this particular incompatibility has always existed between 1.4 and 1.8 and
- later versions; this upgrade note is simply informing users of its existance.
- ODBC:
- - A compatibility setting, allow_empty_string_in_nontext, has been added to
- res_odbc.conf. When enabled (default behavior), empty column values are
- stored as empty strings during realtime updates. Disabling this option
- causes empty column values to be stored as NULLs for non-text columns.
- Disable it for PostgreSQL backends in order to avoid errors caused by
- updating integer columns with an empty string instead of NULL
- (sippeers, sipregs, ..).
- PJSIP:
- - The PJSIP registrar now stores the contents of the User-Agent header of
- incoming REGISTER requests for each contact that is registered. If using
- realtime for PJSIP contacts, this means that the schema has been updated to
- add a user_agent column. An alembic revision has been added to facilitate
- this update.
-
- - PJSIP endpoints now have a "message_context" option that can be used to
- determine where to route incoming MESSAGE requests from the endpoint.
- Realtime Configuration:
- - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
- yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
- changed from yes/no enumerators to integer values. PJSIP transport column
- 'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
- been changed from a yes/no enumerator to an integer value.
- - The 'queues' and 'queue_members' realtime tables have been added to the
- config Alembic scripts.
- - A new set of Alembic scripts has been added for CDR tables. This will create
- a 'cdr' table with the default schema that Asterisk expects.
- From 12.0.0 to 12.1.0:
- - The per console verbose level feature as previously implemented caused a
- large performance penalty. The fix required some minor incompatibilities
- if the new rasterisk is used to connect to an earlier version. If the new
- rasterisk connects to an older Asterisk version then the root console verbose
- level is always affected by the "core set verbose" command of the remote
- console even though it may appear to only affect the current console. If
- an older version of rasterisk connects to the new version then the
- "core set verbose" command will have no effect.
- ARI:
- - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
- the backwards compatible changes listed below.
- - Added a new ARI resource 'mailboxes' which allows the creation and
- modification of mailboxes managed by external MWI. Modules res_mwi_external
- and res_stasis_mailbox must be enabled to use this resource.
- - Added new events for externally initiated transfers. The event
- BridgeBlindTransfer is now raised when a channel initiates a blind transfer
- of a bridge in the ARI controlled application to the dialplan; the
- BridgeAttendedTransfer event is raised when a channel initiates an
- attended transfer of a bridge in the ARI controlled application to the
- dialplan.
- - Channel variables may now be specified as a body parameter to the
- POST /channels operation. The 'variables' key in the JSON is interpreted
- as a sequence of key/value pairs that will be added to the created channel
- as channel variables. Other parameters in the JSON body are treated as
- query parameters of the same name.
- - Subscribing to the same device state twice now responds with success
- instead of returning error on the second attempt.
- AMI:
- - The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
- the backwards compatible changes listed below.
- - The DialStatus field in the DialEnd event can now have additional values.
- This includes ABORT, CONTINUE, and GOTO.
- - The res_mwi_external_ami module can, if loaded, provide additional AMI
- actions and events that convey MWI state within Asterisk. This includes
- the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
- MWIGetComplete events that occur in response to an MWIGet action.
- - AMI now contains a new class authorization, 'security'. This is used with
- the following new events: FailedACL, InvalidAccountID, SessionLimit,
- MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
- RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
- InvalidPassword, ChallengeSent, and InvalidTransport.
- - Bridge related events now have two additional fields: BridgeName and
- BridgeCreator. BridgeName is a descriptive name for the bridge;
- BridgeCreator is the name of the entity that created the bridge. This
- affects the following events: ConfbridgeStart, ConfbridgeEnd,
- ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
- ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
- AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
- CDRs:
- - The "endbeforehexten" setting now defaults to "yes", instead of "no".
- When set to "no", yhis setting will cause a new CDR to be generated when a
- channel enters into hangup logic (either the 'h' extension or a hangup
- handler subroutine). In general, this is not the preferred default: this
- causes extra CDRs to be generated for a channel in many common dialplans.
- CLI commands:
- - "core show settings" now lists the current console verbosity in addition
- to the root console verbosity.
- - "core set verbose" has not been able to support the by module verbose
- logging levels since verbose logging levels were made per console. That
- syntax is now removed and a silence option added in its place.
- Configuration Files:
- - The 'verbose' setting in logger.conf still takes an optional argument,
- specifying the verbosity level for each logging destination. However,
- the default is now to once again follow the current root console level.
- As a result, using the AMI Command action with "core set verbose" could
- again set the root console verbose level and affect the verbose level
- logged.
- - res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
- Because of this the default settings would not load, so the minrate (minimum
- transmission rate) option in res_fax.conf was changed to default to 4800
- since that is the minimum rate for v.27 which is included in the default
- modem options.
- Realtime Configuration:
- - WARNING: The database migration script that adds the 'extensions' table for
- realtime had to be modified due to an error when installing for MySQL. The
- 'extensions' table's 'id' column was changed to be a primary key. This could
- potentially cause a migration problem. If so, it may be necessary to
- manually alter the affected table/column to bring it back in line with the
- migration scripts.
- - New columns have been added to realtime tables for 'support_path' on
- ps_registrations and ps_aors and for 'path' on ps_contacts for the new
- SIP Path support in chan_pjsip.
- - The following new tables have been added for pjsip realtime: 'ps_systems',
- 'ps_globals', 'ps_tranports', 'ps_registrations'.
- - The following columns were added to the 'ps_aors' realtime table:
- 'maximum_expiration', 'outbound_proxy', and 'support_path'.
- - The following columns were added to the 'ps_contacts' realtime table:
- 'outbound_proxy' and 'path'.
- - New columns have been added to the ps_endpoints realtime table for the
- 'media_address', 'redirect_method' and 'set_var' options. Also the
- 'mwi_fromuser' column was renamed to 'mwi_from_user'.
- - A new column was added to the 'ps_globals' realtime table for the 'debug'
- option.
- From 11 to 12:
- 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.
- Answer
- - It is no longer possible to bypass updating the CDR when answering a
- channel. CDRs are based on the channel state and will be updated when
- the channel is Answered.
- ControlPlayback
- - The channel variable CPLAYBACKSTATUS may now return the value
- 'REMOTESTOPPED' when playback is stopped by an external entity.
- DISA
- - This application now has a dependency on the app_cdr module. It uses this
- module to hide the CDR created prior to execution of the DISA application.
- 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:
- - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_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.
- - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
- the exact configured mailbox name. For app_voicemail mailboxes this is
- mailbox@context.
- - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
- 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.
- - CDR backends can no longer be unloaded while billing data is in flight. This
- helps to prevent loss of billing data during restarts and shutdowns.
- 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 Functions:
- - Certain dialplan functions have been marked as 'dangerous', and may only be
- executed from the dialplan. Execution from extenal sources (AMI's GetVar and
- SetVar actions; etc.) may be inhibited by setting live_dangerously in the
- [options] section of asterisk.conf to no. SHELL(), channel locking, and
- direct file read/write functions are marked as dangerous. DB_DELETE() and
- REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
- accept writes (which ignore the provided value).
- - The default value for live_dangerously was changed from yes (in Asterisk 11
- and earlier) to no (in Asterisk 12 and greater).
- 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.
- VMCOUNT:
- - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
- 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/.
- ===========================================================
- ===========================================================
|