==============================================================================
===
+=== THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
+=== PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO
+=== doc/CHANGES-staging/README.md FOR MORE DETAILS.
+===
=== This file documents the new and/or enhanced functionality added in
=== the Asterisk versions listed below. This file does NOT include
=== changes in behavior that would not be backwards compatible with
==============================================================================
------------------------------------------------------------------------------
---- Functionality changes from Asterisk 16 to Asterisk 17 --------------------
-------------------------------------------------------------------------------
-
-chan_sip
-------------------
- * The chan_sip module is now deprecated, users should migrate to the
- replacement module chan_pjsip. See guides at the Asterisk Wiki:
- https://wiki.asterisk.org/wiki/x/tAHOAQ
- https://wiki.asterisk.org/wiki/x/hYCLAQ
-
-Channels
-------------------
- * The core no longer uses the stasis cache for channels snapshots.
- The following APIs are no longer available:
- ast_channel_topic_cached()
- ast_channel_topic_all_cached()
- The ast_channel_cache_all() and ast_channel_cache_by_name() functions
- now returns an ao2_container of ast_channel_snapshots rather than a
- container of stasis_messages therefore you can't call stasis_cache
- functions on it.
- The ast_channel_topic_all() function now returns a normal topic,
- not a cached one so you can't use stasis cache functions on it either.
- The ast_channel_snapshot_type() stasis message now has the
- ast_channel_snapshot_update structure as it's data.
- ast_channel_snapshot_get_latest() still returns the latest snapshot.
-
-Bridging
-------------------
- * The bridging core no longer uses the stasis cache for bridge
- snapshots. The latest bridge snapshot is now stored on the
- ast_bridge structure itself.
-
- * The following APIs are no longer available since the stasis cache
- is no longer used:
- ast_bridge_topic_cached()
- ast_bridge_topic_all_cached()
-
- * A topic pool is now used for individual bridge topics.
-
- * The ast_bridge_cache() function was removed since there's no
- longer a separate container of snapshots.
-
- * A new function "ast_bridges()" was created to retrieve the
- container of all bridges. Users formerly calling
- ast_bridge_cache() can use the new function to iterate over
- bridges and retrieve the latest snapshot directly from the
- bridge.
-
- * The ast_bridge_snapshot_get_latest() function was renamed to
- ast_bridge_get_snapshot_by_uniqueid().
-
- * A new function "ast_bridge_get_snapshot()" was created to retrieve
- the bridge snapshot directly from the bridge structure.
-
- * The ast_bridge_topic_all() function now returns a normal topic
- not a cached one so you can't use stasis cache functions on it
- either.
-
- * The ast_bridge_snapshot_type() stasis message now has the
- ast_bridge_snapshot_update structure as it's data. It contains
- the last snapshot and the new one.
-
-------------------------------------------------------------------------------
--- Functionality changes from Asterisk 16.2.0 to Asterisk 16.3.0 ----------
------------------------------------------------------------------------------
+++ /dev/null
-=========================================================
-===
-=== Information for upgrading from Asterisk 1.0 to 1.2
-===
-=== This file documents 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 includes 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.
-===
-=========================================================
-
-Compiling:
-
-* The Asterisk 1.2 source code now uses C language features
- supported only by 'modern' C compilers. Generally, this means GCC
- version 3.0 or higher, although some GCC 2.96 releases will also
- work. Some non-GCC compilers that support C99 and the common GCC
- extensions (including anonymous structures and unions) will also
- work. All releases of GCC 2.95 do _not_ have the requisite feature
- support; systems using that compiler will need to be upgraded to
- a more recent compiler release.
-
-Dialplan Expressions:
-
-* The dialplan expression parser (which handles $[ ... ] constructs)
- has gone through a major upgrade, but has one incompatible change:
- spaces are no longer required around expression operators, including
- string comparisons. However, you can now use quoting to keep strings
- together for comparison. For more details, please read the
- doc/README.variables file, and check over your dialplan for possible
- problems.
-
-Agents:
-
-* The default for ackcall has been changed to "no" instead of "yes"
- because of a bug which caused the "yes" behavior to generally act like
- "no". You may need to adjust the value if your agents behave
- differently than you expect with respect to acknowledgement.
-
-* The AgentCallBackLogin application now requires a second '|' before
- specifying an extension@context. This is to distinguish the options
- string from the extension, so that they do not conflict. See
- 'show application AgentCallbackLogin' for more details.
-
-Parking:
-
-* Parking behavior has changed slightly; when a parked call times out,
- Asterisk will attempt to deliver the call back to the extension that
- parked it, rather than the 's' extension. If that extension is busy
- or unavailable, the parked call will be lost.
-
-Dialing:
-
-* The Caller*ID of the outbound leg is now the extension that was
- called, rather than the Caller*ID of the inbound leg of the call. The
- "o" flag for Dial can be used to restore the original behavior if
- desired. Note that if you are looking for the originating callerid
- from the manager event, there is a new manager event "Dial" which
- provides the source and destination channels and callerid.
-
-IAX:
-
-* The naming convention for IAX channels has changed in two ways:
- 1. The call number follows a "-" rather than a "/" character.
- 2. The name of the channel has been simplified to IAX2/peer-callno,
- rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
-
-SIP:
-
-* The global option "port" in 1.0.X that is used to set which port to
- bind to has been changed to "bindport" to be more consistent with
- the other channel drivers and to avoid confusion with the "port"
- option for users/peers.
-
-* The "Registry" event now uses "Username" rather than "User" for
- consistency with IAX.
-
-Applications:
-
-* With the addition of dialplan functions (which operate similarly
- to variables), the SetVar application has been renamed to Set.
-
-* The CallerPres application has been removed. Use SetCallerPres
- instead. It accepts both numeric and symbolic names.
-
-* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
- CheckGroup have been deprecated in favor of functions. Here is a
- table of their replacements:
-
- GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})
- GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
- SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)
- CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
-
- Note that CheckGroup does not have a direct replacement. There is
- also a new function called GROUP_LIST() which will return a space
- separated list of all of the groups set on a channel. The GROUP()
- function can also return the name of the group set on a channel when
- used in a read environment.
-
-* The applications DBGet and DBPut have been deprecated in favor of
- functions. Here is a table of their replacements:
-
- DBGet(foo=family/key) Set(foo=${DB(family/key)})
- DBPut(family/key=${foo}) Set(DB(family/key)=${foo})
-
-* The application SetLanguage has been deprecated in favor of the
- function LANGUAGE().
-
- SetLanguage(fr) Set(LANGUAGE()=fr)
-
- The LANGUAGE function can also return the currently set language:
-
- Set(MYLANG=${LANGUAGE()})
-
-* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
- have been deprecated in favor of the function TIMEOUT(timeouttype):
-
- AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)
- DigitTimeout(15) Set(TIMEOUT(digit)=15)
- ResponseTimeout(15) Set(TIMEOUT(response)=15)
-
- The TIMEOUT() function can also return the currently set timeouts:
-
- Set(DTIMEOUT=${TIMEOUT(digit)})
-
-* The applications SetCIDName, SetCIDNum, and SetRDNIS have been
- deprecated in favor of the CALLERID(datatype) function:
-
- SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)
- SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)
- SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)
-
-* The application Record now uses the period to separate the filename
- from the format, rather than the colon.
-
-* The application VoiceMail now supports a 'temporary' greeting for each
- mailbox. This greeting can be recorded by using option 4 in the
- 'mailbox options' menu, and 'change your password' option has been
- moved to option 5.
-
-* The application VoiceMailMain now only matches the 'default' context if
- none is specified in the arguments. (This was the previously
- documented behavior, however, we didn't follow that behavior.) The old
- behavior can be restored by setting searchcontexts=yes in voicemail.conf.
-
-Queues:
-
-* A queue is now considered empty not only if there are no members but if
- none of the members are available (e.g. agents not logged on). To
- restore the original behavior, use "leavewhenempty=strict" or
- "joinwhenempty=strict" instead of "=yes" for those options.
-
-* It is now possible to use multi-digit extensions in the exit context
- for a queue (although you should not have overlapping extensions,
- as there is no digit timeout). This means that the EXITWITHKEY event
- in queue_log can now contain a key field with more than a single
- character in it.
-
-Extensions:
-
-* By default, there is a new option called "autofallthrough" in
- extensions.conf that is set to yes. Asterisk 1.0 (and earlier)
- behavior was to wait for an extension to be dialed after there were no
- more extensions to execute. "autofallthrough" changes this behavior
- so that the call will immediately be terminated with BUSY,
- CONGESTION, or HANGUP based on Asterisk's best guess. If you are
- writing an extension for IVR, you must use the WaitExten application
- if "autofallthrough" is set to yes.
-
-AGI:
-
-* AGI scripts did not always get SIGHUP at the end, previously. That
- behavior has been fixed. If you do not want your script to terminate
- at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
- be ignored within your application.
-
-* CallerID is reported with agi_callerid and agi_calleridname instead
- of a single parameter holding both.
-
-Music On Hold:
-
-* The preferred format for musiconhold.conf has changed; please see the
- sample configuration file for the new format. The existing format
- is still supported but will generate warnings when the module is loaded.
-
-chan_modem:
-
-* All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated
- in this release, and will be removed in the next major Asterisk release.
- Please migrate to chan_misdn for ISDN interfaces; there is no upgrade
- path for aopen and bestdata modem users.
-
-MeetMe:
-
-* The conference application now allows users to increase/decrease their
- speaking volume and listening volume (independently of each other and
- other users); the 'admin' and 'user' menus have changed, and new sound
- files are included with this release. However, if a user calling in
- over a Zaptel channel that does NOT have hardware DTMF detection
- increases their speaking volume, it is likely they will no longer be
- able to enter/exit the menu or make any further adjustments, as the
- software DTMF detector will not be able to recognize the DTMF coming
- from their device.
-
-GetVar Manager Action:
-
-* Previously, the behavior of the GetVar manager action reported the value
- of a variable in the following manner:
- > name: value
- This has been changed to a manner similar to the SetVar action and is now
- > Variable: name
- > Value: value
+++ /dev/null
-=========================================================
-===
-=== Information for upgrading from Asterisk 1.2 to 1.4
-===
-=== 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 includes 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
-===
-=========================================================
-
-Build Process (configure script):
-
-Asterisk now uses an autoconf-generated configuration script to learn how it
-should build itself for your system. As it is a standard script, running:
-
-$ ./configure --help
-
-will show you all the options available. This script can be used to tell the
-build process what libraries you have on your system (if it cannot find them
-automatically), which libraries you wish to have ignored even though they may
-be present, etc.
-
-You must run the configure script before Asterisk will build, although it will
-attempt to automatically run it for you with no options specified; for most
-users, that will result in a similar build to what they would have had before
-the configure script was added to the build process (except for having to run
-'make' again after the configure script is run). Note that the configure script
-does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it
-when your system configuration changes or you wish to build Asterisk with
-different options.
-
-Build Process (module selection):
-
-The Asterisk source tree now includes a basic module selection and build option
-selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
-In this tool, you can disable building of modules that you don't care about,
-turn on/off global options for the build and see which modules will not
-(and cannot) be built because your system does not have the required external
-dependencies installed.
-
-The resulting file from menuselect is called 'menuselect.makeopts'. Note that
-the resulting menuselect.makeopts file generally contains which modules *not*
-to build. The modules listed in this file indicate which modules have unmet
-dependencies, a present conflict, or have been disabled by the user in the
-menuselect interface. Compiler Flags can also be set in the menuselect
-interface. In this case, the resulting file contains which CFLAGS are in use,
-not which ones are not in use.
-
-If you would like to save your choices and have them applied against all
-builds, the file can be copied to '~/.asterisk.makeopts' or
-'/etc/asterisk.makeopts'.
-
-Build Process (Makefile targets):
-
-The 'valgrind' and 'dont-optimize' targets have been removed; their functionality
-is available by enabling the DONT_OPTIMIZE setting in the 'Compiler Flags' menu
-in the menuselect tool.
-
-It is now possible to run most make targets against a single subdirectory; from
-the top level directory, for example, 'make channels' will run 'make all' in the
-'channels' subdirectory. This also is true for 'clean', 'distclean' and 'depend'.
-
-Sound (prompt) and Music On Hold files:
-
-Beginning with Asterisk 1.4, the sound files and music on hold files supplied for
-use with Asterisk have been replaced with new versions produced from high quality
-master recordings, and are available in three languages (English, French and
-Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).
-In addition, the music on hold files provided by opsound.org Music are now available
-in the same five formats, but no longer available in MP3 format.
-
-The Asterisk 1.4 tarball packages will only include English prompts in GSM format,
-(as were supplied with previous releases) and the opsound.org MOH files in WAV format.
-All of the other variations can be installed by running 'make menuselect' and
-selecting the packages you wish to install; when you run 'make install', those
-packages will be downloaded and installed along with the standard files included
-in the tarball.
-
-If for some reason you expect to not have Internet access at the time you will be
-running 'make install', you can make your package selections using menuselect and
-then run 'make sounds' to download (only) the sound packages; this will leave the
-sound packages in the 'sounds' subdirectory to be used later during installation.
-
-WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;
-instead of the alternate-language files being stored in subdirectories underneath
-the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,
-etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the
-language itself, then places all the sound files for that language under that
-directory and its subdirectories. This is the layout that will be created if you
-select non-English languages to be installed via menuselect, HOWEVER Asterisk does
-not default to this layout and will not find the files in the places it expects them
-to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your
-/etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were
-installed.
-
-PBX Core:
-
-* The (very old and undocumented) ability to use BYEXTENSION for dialing
- instead of ${EXTEN} has been removed.
-
-* Builtin (res_features) transfer functionality attempts to use the context
- defined in TRANSFER_CONTEXT variable of the transferer channel first. If
- not set, it uses the transferee variable. If not set in any channel, it will
- attempt to use the last non macro context. If not possible, it will default
- to the current context.
-
-* The autofallthrough setting introduced in Asterisk 1.2 now defaults to 'yes';
- if your dialplan relies on the ability to 'run off the end' of an extension
- and wait for a new extension without using WaitExten() to accomplish that,
- you will need set autofallthrough to 'no' in your extensions.conf file.
-
-Command Line Interface:
-
-* 'show channels concise', designed to be used by applications that will parse
- its output, previously used ':' characters to separate fields. However, some
- of those fields can easily contain that character, making the output not
- parseable. The delimiter has been changed to '!'.
-
-Applications:
-
-* In previous Asterisk releases, many applications would jump to priority n+101
- to indicate some kind of status or error condition. This functionality was
- marked deprecated in Asterisk 1.2. An option to disable it was provided with
- the default value set to 'on'. The default value for the global priority
- jumping option is now 'off'.
-
-* The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
- AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
- and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
- been removed in this version. You should use the equivalent dialplan
- function in places where you have previously used one of these applications.
-
-* The application SetGlobalVar has been deprecated. You should replace uses
- of this application with the following combination of Set and GLOBAL():
- Set(GLOBAL(name)=value). You may also access global variables exclusively by
- using the GLOBAL() dialplan function, instead of relying on variable
- interpolation falling back to globals when no channel variable is set.
-
-* The application SetVar has been renamed to Set. The syntax SetVar was marked
- deprecated in version 1.2 and is no longer recognized in this version. The
- use of Set with multiple argument pairs has also been deprecated. Please
- separate each name/value pair into its own dialplan line.
-
-* app_read has been updated to use the newer options codes, using "skip" or
- "noanswer" will not work. Use s or n. Also there is a new feature i, for
- using indication tones, so typing in skip would give you unexpected results.
-
-* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
-
-* The CONNECT event in the queue_log from app_queue now has a second field
- in addition to the holdtime field. It contains the unique ID of the
- queue member channel that is taking the call. This is useful when trying
- to link recording filenames back to a particular call from the queue.
-
-* The old/current behavior of app_queue has a serial type behavior
- in that the queue will make all waiting callers wait in the queue
- even if there is more than one available member ready to take
- calls until the head caller is connected with the member they
- were trying to get to. The next waiting caller in line then
- becomes the head caller, and they are then connected with the
- next available member and all available members and waiting callers
- waits while this happens. This cycle continues until there are
- no more available members or waiting callers, whichever comes first.
- The new behavior, enabled by setting autofill=yes in queues.conf
- either at the [general] level to default for all queues or
- to set on a per-queue level, makes sure that when the waiting
- callers are connecting with available members in a parallel fashion
- until there are no more available members or no more waiting callers,
- whichever comes first. This is probably more along the lines of how
- one would expect a queue should work and in most cases, you will want
- to enable this new behavior. If you do not specify or comment out this
- option, it will default to "no" to keep backward compatability with the old
- behavior.
-
-* Queues depend on the channel driver reporting the proper state
- for each member of the queue. To get proper signalling on
- queue members that use the SIP channel driver, you need to
- enable a call limit (could be set to a high value so it
- is not put into action) and also make sure that both inbound
- and outbound calls are accounted for.
-
- Example:
-
- [general]
- limitonpeer = yes
-
- [peername]
- type=friend
- call-limit=10
-
-
-* The app_queue application now has the ability to use MixMonitor to
- record conversations queue members are having with queue callers. Please
- see configs/queues.conf.sample for more information on this option.
-
-* The app_queue application strategy called 'roundrobin' has been deprecated
- for this release. Users are encouraged to use 'rrmemory' instead, since it
- provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,
- 'rrmemory' will be renamed 'roundrobin'.
-
-* The app_queue application option called 'monitor-join' has been deprecated
- for this release. Users are encouraged to use 'monitor-type=mixmonitor' instead,
- since it provides the same functionality but is not dependent on soxmix or some
- other external program in order to mix the audio.
-
-* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
- the 'm' option now provides the functionality of "initially muted".
- In practice, most existing dialplans using the 'm' flag should not notice
- any difference, unless the keypad menu is enabled, allowing the user
- to unmute themsleves.
-
-* ast_play_and_record would attempt to cancel the recording if a DTMF
- '0' was received. This behavior was not documented in most of the
- applications that used ast_play_and_record and the return codes from
- ast_play_and_record weren't checked for properly.
- ast_play_and_record has been changed so that '0' no longer cancels a
- recording. If you want to allow DTMF digits to cancel an
- in-progress recording use ast_play_and_record_full which allows you
- to specify which DTMF digits can be used to accept a recording and
- which digits can be used to cancel a recording.
-
-* ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a
- new ast_app_messagecount function which takes a single context/mailbox/folder
- mailbox specification and returns the message count for that folder only.
- This addresses the deficiency of not being able to count the number of
- messages in folders other than INBOX and Old.
-
-* The exit behavior of the AGI applications has changed. Previously, when
- a connection to an AGI server failed, the application would cause the channel
- to immediately stop dialplan execution and hangup. Now, the only time that
- the AGI applications will cause the channel to stop dialplan execution is
- when the channel itself requests hangup. The AGI applications now set an
- AGISTATUS variable which will allow you to find out whether running the AGI
- was successful or not.
-
- Previously, there was no way to handle the case where Asterisk was unable to
- locally execute an AGI script for some reason. In this case, dialplan
- execution will continue as it did before, but the AGISTATUS variable will be
- set to "FAILURE".
-
- A locally executed AGI script can now exit with a non-zero exit code and this
- failure will be detected by Asterisk. If an AGI script exits with a non-zero
- exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to
- "SUCCESS".
-
-* app_voicemail: The ODBC_STORAGE capability now requires the extended table format
- previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update
- your table format using the schema provided in doc/odbcstorage.txt
-
-* app_waitforsilence: Fixes have been made to this application which changes the
- default behavior with how quickly it returns. You can maintain "old-style" behavior
- with the addition/use of a third "timeout" parameter.
- Please consult the application documentation and make changes to your dialplan
- if appropriate.
-
-Manager:
-
-* After executing the 'status' manager action, the "Status" manager events
- included the header "CallerID:" which was actually only the CallerID number,
- and not the full CallerID string. This header has been renamed to
- "CallerIDNum". For compatibility purposes, the CallerID parameter will remain
- until after the release of 1.4, when it will be removed. Please use the time
- during the 1.4 release to make this transition.
-
-* The AgentConnect event now has an additional field called "BridgedChannel"
- which contains the unique ID of the queue member channel that is taking the
- call. This is useful when trying to link recording filenames back to
- a particular call from the queue.
-
-* app_userevent has been modified to always send Event: UserEvent with the
- additional header UserEvent: <userspec>. Also, the Channel and UniqueID
- headers are not automatically sent, unless you specify them as separate
- arguments. Please see the application help for the new syntax.
-
-* app_meetme: Mute and Unmute events are now reported via the Manager API.
- Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which
- are easier to use than "Action Command:". The MeetMeStopTalking event has
- also been deprecated in favor of the already existing MeetmeTalking event
- with a "Status" of "on" or "off" added.
-
-* OriginateFailure and OriginateSuccess events were replaced by event
- OriginateResponse with a header named "Response" to indicate success or
- failure
-
-Variables:
-
-* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
- ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
- and ${LANGUAGE} have all been deprecated in favor of their related dialplan
- functions. You are encouraged to move towards the associated dialplan
- function, as these variables will be removed in a future release.
-
-* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
- adjustable from cdr.conf, instead of recompiling.
-
-* OSP applications exports several new variables, ${OSPINHANDLE},
- ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
- ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
-
-* Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new
- created channel. This variables holds the channel name of the transferer.
-
-* The dial plan variable PRI_CAUSE will be removed from future versions
- of Asterisk.
- It is replaced by adding a cause value to the hangup() application.
-
-Functions:
-
-* The function ${CHECK_MD5()} has been deprecated in favor of using an
- expression: $[${MD5(<string>)} = ${saved_md5}].
-
-* The 'builtin' functions that used to be combined in pbx_functions.so are
- now built as separate modules. If you are not using 'autoload=yes' in your
- modules.conf file then you will need to explicitly load the modules that
- contain the functions you want to use.
-
-* The ENUMLOOKUP() function with the 'c' option (for counting the number of
- records), but the lookup fails to match any records, the returned value will
- now be "0" instead of blank.
-
-* The REALTIME() function is now available in version 1.4 and app_realtime has
- been deprecated in favor of the new function. app_realtime will be removed
- completely with the version 1.6 release so please take the time between
- releases to make any necessary changes
-
-* The QUEUEAGENTCOUNT() function has been deprecated in favor of
- QUEUE_MEMBER_COUNT().
-
-The IAX2 channel:
-
-* It is possible that previous configurations depended on the order in which
- peers and users were specified in iax.conf for forcing the order in which
- chan_iax2 matched against them. This behavior is going away and is considered
- deprecated in this version. Avoid having ambiguous peer and user entries and
- to make things easy on yourself, always set the "username" option for users
- so that the remote end can match on that exactly instead of trying to infer
- which user you want based on host.
-
- If you would like to go ahead and use the new behavior which doesn't use the
- order in the config file to influence matching order, then change the
- MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one. An
- example is provided there. By changing this, you will get *much* better
- performance on systems that do a lot of peer and user lookups as they will be
- stored in memory in a much more efficient manner.
-
-* The "mailboxdetail" option has been deprecated. Previously, if this option
- was not enabled, the 2 byte MSGCOUNT information element would be set to all
- 1's to indicate there there is some number of messages waiting. With this
- option enabled, the number of new messages were placed in one byte and the
- number of old messages are placed in the other. This is now the default
- (and the only) behavior.
-
-The SIP channel:
-
-* The "incominglimit" setting is replaced by the "call-limit" setting in
- sip.conf.
-
-* OSP support code is removed from SIP channel to OSP applications. ospauth
- option in sip.conf is removed to osp.conf as authpolicy. allowguest option
- in sip.conf cannot be set as osp anymore.
-
-* The Asterisk RTP stack has been changed in regards to RFC2833 reception
- and transmission. Packets will now be sent with proper duration instead of all
- at once. If you are receiving calls from a pre-1.4 Asterisk installation you
- will want to turn on the rfc2833compensate option. Without this option your
- DTMF reception may act poorly.
-
-* The $SIPUSERAGENT dialplan variable is deprecated and will be removed
- in coming versions of Asterisk. Please use the dialplan function
- SIPCHANINFO(useragent) instead.
-
-* The ALERT_INFO dialplan variable is deprecated and will be removed
- in coming versions of Asterisk. Please use the dialplan application
- sipaddheader() to add the "Alert-Info" header to the outbound invite.
-
-* The "canreinvite" option has changed. canreinvite=yes used to disable
- re-invites if you had NAT=yes. In 1.4, you need to set canreinvite=nonat
- to disable re-invites when NAT=yes. This is propably what you want.
- The settings are now: "yes", "no", "nonat", "update". Please consult
- sip.conf.sample for detailed information.
-
-The Zap channel:
-
-* Support for MFC/R2 has been removed, as it has not been functional for some
- time and it has no maintainer.
-
-The Agent channel:
-
-* Callback mode (AgentCallbackLogin) is now deprecated, since the entire function
- it provided can be done using dialplan logic, without requiring additional
- channel and module locks (which frequently caused deadlocks). An example of
- how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.
-
-The G726-32 codec:
-
-* It has been determined that previous versions of Asterisk used the wrong codeword
- packing order for G726-32 data. This version supports both available packing orders,
- and can transcode between them. It also now selects the proper order when
- negotiating with a SIP peer based on the codec name supplied in the SDP. However,
- there are existing devices that improperly request one order and then use another;
- Sipura and Grandstream ATAs are known to do this, and there may be others. To
- be able to continue to use these devices with this version of Asterisk and the
- G726-32 codec, a configuration parameter called 'g726nonstandard' has been added
- to sip.conf, so that Asterisk can use the packing order expected by the device (even
- though it requested a different order). In addition, the internal format number for
- G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The
- result of this is that this version of Asterisk will be able to interoperate over
- IAX2 with older versions of Asterisk, as long as this version is told to allow
- 'g726aal2' instead of 'g726' as the codec for the call.
-
-Installation:
-
-* On BSD systems, the installation directories have changed to more "FreeBSDish"
- directories. On startup, Asterisk will look for the main configuration in
- /usr/local/etc/asterisk/asterisk.conf
- If you have an old installation, you might want to remove the binaries and
- move the configuration files to the new locations. The following directories
- are now default:
- ASTLIBDIR /usr/local/lib/asterisk
- ASTVARLIBDIR /usr/local/share/asterisk
- ASTETCDIR /usr/local/etc/asterisk
- ASTBINDIR /usr/local/bin/asterisk
- ASTSBINDIR /usr/local/sbin/asterisk
-
-Music on Hold:
-
-* The music on hold handling has been changed in some significant ways in hopes
- to make it work in a way that is much less confusing to users. Behavior will
- not change if the same configuration is used from older versions of Asterisk.
- However, there are some new configuration options that will make things work
- in a way that makes more sense.
-
- Previously, many of the channel drivers had an option called "musicclass" or
- something similar. This option set what music on hold class this channel
- would *hear* when put on hold. Some people expected (with good reason) that
- this option was to configure what music on hold class to play when putting
- the bridged channel on hold. This option has now been deprecated.
-
- Two new music on hold related configuration options for channel drivers have
- been introduced. Some channel drivers support both options, some just one,
- and some support neither of them. Check the sample configuration files to see
- which options apply to which channel driver.
-
- The "mohsuggest" option specifies which music on hold class to suggest to the
- bridged channel when putting them on hold. The only way that this class can
- be overridden is if the bridged channel has a specific music class set that
- was done in the dialplan using Set(CHANNEL(musicclass)=something).
-
- The "mohinterpret" option is similar to the old "musicclass" option. It
- specifies which music on hold class this channel would like to listen to when
- put on hold. This music class is only effective if this channel has no music
- class set on it from the dialplan and the bridged channel putting this one on
- hold had no "mohsuggest" setting.
-
- The IAX2 and Zap channel drivers have an additional feature for the
- "mohinterpret" option. If this option is set to "passthrough", then these
- channel drivers will pass through the HOLD message in signalling instead of
- starting music on hold on the channel. An example for how this would be
- useful is in an enterprise network of Asterisk servers. When one phone on one
- server puts a phone on a different server on hold, the remote server will be
- responsible for playing the hold music to its local phone that was put on
- hold instead of the far end server across the network playing the music.
-
-CDR Records:
-
-* The behavior of the "clid" field of the CDR has always been that it will
- contain the callerid ANI if it is set, or the callerid number if ANI was not
- set. When using the "callerid" option for various channel drivers, some
- would set ANI and some would not. This has been cleared up so that all
- channel drivers set ANI. If you would like to change the callerid number
- on the channel from the dialplan and have that change also show up in the
- CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).
-
-API:
-
-* There are some API functions that were not previously prefixed with the 'ast_'
- prefix but now are; these include the ADSI, ODBC and AGI interfaces. If you
- have a module that uses the services provided by res_adsi, res_odbc, or
- res_agi, you will need to add ast_ prefixes to the functions that you call
- from those modules.
-
-Formats:
-
-* format_wav: The GAIN preprocessor definition has been changed from 2 to 0
- in Asterisk 1.4. This change was made in response to user complaints of
- choppiness or the clipping of loud signal peaks. The GAIN preprocessor
- definition will be retained in Asterisk 1.4, but will be removed in a
- future release. The use of GAIN for the increasing of voicemail message
- volume should use the 'volgain' option in voicemail.conf
+++ /dev/null
-=========================================================
-===
-=== Information for upgrading from Asterisk 1.4 to 1.6
-===
-=== 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 includes 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
-===
-=========================================================
-
-AEL:
-
-* Macros are now implemented underneath with the Gosub() application.
- Heaven Help You if you wrote code depending on any aspect of this!
- Previous to 1.6, macros were implemented with the Macro() app, which
- provided a nice feature of auto-returning. The compiler will do its
- best to insert a Return() app call at the end of your macro if you did
- not include it, but really, you should make sure that all execution
- paths within your macros end in "return;".
-
-* The conf2ael program is 'introduced' in this release; it is in a rather
- crude state, but deemed useful for making a first pass at converting
- extensions.conf code into AEL. More intelligence will come with time.
-
-Core:
-
-* The 'languageprefix' option in asterisk.conf is now deprecated, and
- the default sound file layout for non-English sounds is the 'new
- style' layout introduced in Asterisk 1.4 (and used by the automatic
- sound file installer in the Makefile).
-
-* The ast_expr2 stuff has been modified to handle floating-point numbers.
- Numbers of the format D.D are now acceptable input for the expr parser,
- Where D is a string of base-10 digits. All math is now done in "long double",
- if it is available on your compiler/architecture. This was half-way between
- a bug-fix (because the MATH func returns fp by default), and an enhancement.
- Also, for those counting on, or needing, integer operations, a series of
- 'functions' were also added to the expr language, to allow several styles
- of rounding/truncation, along with a set of common floating point operations,
- like sin, cos, tan, log, pow, etc. The ability to call external functions
- like CDR(), etc. was also added, without having to use the ${...} notation.
-
-* The delimiter passed to applications has been changed to the comma (','), as
- that is what people are used to using within extensions.conf. If you are
- using realtime extensions, you will need to translate your existing dialplan
- to use this separator. To use a literal comma, you need merely to escape it
- with a backslash ('\'). Another possible side effect is that you may need to
- remove the obscene level of backslashing that was necessary for the dialplan
- to work correctly in 1.4 and previous versions. This should make writing
- dialplans less painful in the future, albeit with the pain of a one-time
- conversion. If you would like to avoid this conversion immediately, set
- pbx_realtime=1.4 in the [compat] section of asterisk.conf. After
- transitioning, set pbx_realtime=1.6 in the same section.
-
-* For the same purpose as above, you may set res_agi=1.4 in the [compat]
- section of asterisk.conf to continue to use the '|' delimiter in the EXEC
- arguments of AGI applications. After converting to use the ',' delimiter,
- change this option to res_agi=1.6.
-
-* As a side effect of the application delimiter change, many places that used
- to need quotes in order to get the proper meaning are no longer required.
- You now only need to quote strings in configuration files if you literally
- want quotation marks within a string.
-
-* Any applications run that contain the pipe symbol but not a comma symbol will
- get a warning printed to the effect that the application delimiter has changed.
- However, there are legitimate reasons why this might be useful in certain
- situations, so this warning can be turned off with the dontwarn option in
- asterisk.conf.
-
-* The logger.conf option 'rotatetimestamp' has been deprecated in favor of
- 'rotatestrategy'. This new option supports a 'rotate' strategy that more
- closely mimics the system logger in terms of file rotation.
-
-* The concise versions of various CLI commands are now deprecated. We recommend
- using the manager interface (AMI) for application integration with Asterisk.
-
-Voicemail:
-
-* The voicemail configuration values 'maxmessage' and 'minmessage' have
- been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
- to make them more distinguishable from 'maxmsgs', which sets folder
- size. The old variables will continue to work in this version, albeit
- with a deprecation warning.
-
-* If you use any interface for modifying voicemail aside from the built in
- dialplan applications, then the option "pollmailboxes" *must* be set in
- voicemail.conf for message waiting indication (MWI) to work properly. This
- is because Voicemail notification is now event based instead of polling
- based. The channel drivers are no longer responsible for constantly manually
- checking mailboxes for changes so that they can send MWI information to users.
- Examples of situations that would require this option are web interfaces to
- voicemail or an email client in the case of using IMAP storage.
-
-Applications:
-
-
-* ChanIsAvail() now has a 't' option, which allows the specified device
- to be queried for state without consulting the channel drivers. This
- performs mostly a 'ChanExists' sort of function.
-
-* ChannelRedirect() will not terminate the channel that fails to do a
- channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
- will reflect if the attempt was successful of not.
-
-* SetCallerPres() has been replaced with the CALLERPRES() dialplan function
- and is now deprecated.
-
-* DISA()'s fifth argument is now an options argument. If you have previously
- used 'NOANSWER' in this argument, you'll need to convert that to the new
- option 'n'.
-
-* Macro() is now deprecated. If you need subroutines, you should use the
- Gosub()/Return() applications. To replace MacroExclusive(), we have
- introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use
- these functions in any location where you desire to ensure that only one
- channel is executing that path at any one time. The Macro() applications
- are deprecated for performance reasons. However, since Macro() has been
- around for a long time and so many dialplans depend heavily on it, for the
- sake of backwards compatibility it will not be removed . It is also worth
- noting that using both Macro() and GoSub() at the same time is _heavily_
- discouraged.
-
-* Read() now sets a READSTATUS variable on exit. It does NOT automatically
- return -1 (and hangup) anymore on error. If you want to hangup on error,
- you need to do so explicitly in your dialplan.
-
-* Privacy() no longer uses privacy.conf, so any options must be specified
- directly in the application arguments.
-
-* MusicOnHold application now has duration parameter which allows specifying
- timeout in seconds.
-
-* WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
-
-* SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
- instead.
-
-* The arguments in ExecIf changed a bit, to be more like other applications.
- The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).
-
-* The behavior of the Set application now depends upon a compatibility option,
- set in asterisk.conf. To use the old 1.4 behavior, which allowed Set to take
- multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf. To
- use the new behavior, which permits variables to be set with embedded commas,
- set app_set=1.6 in [compat] in asterisk.conf. Note that you can have both
- behaviors at the same time, if you switch to using MSet if you want the old
- behavior.
-
-Dialplan Functions:
-
-* QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
- more information, issue a "show function QUEUE_MEMBER" from the CLI.
-
-CDR:
-
-* The cdr_sqlite module has been marked as deprecated in favor of
- cdr_sqlite3_custom. It will potentially be removed from the tree
- after Asterisk 1.6 is released.
-
-* The cdr_odbc module now uses res_odbc to manage its connections. The
- username and password parameters in cdr_odbc.conf, therefore, are no
- longer used. The dsn parameter now points to an entry in res_odbc.conf.
-
-* The uniqueid field in the core Asterisk structure has been changed from a
- maximum 31 character field to a 149 character field, to account for all
- possible values the systemname prefix could be. In the past, if the
- systemname was too long, the uniqueid would have been truncated.
-
-* The cdr_tds module now supports all versions of FreeTDS that contain
- the db-lib frontend. It will also now log the userfield variable if
- the target database table contains a column for it.
-
-Formats:
-
-* format_wav: The GAIN preprocessor definition and source code that used it
- is removed. This change was made in response to user complaints of
- choppiness or the clipping of loud signal peaks. To increase the volume
- of voicemail messages, use the 'volgain' option in voicemail.conf
-
-Channel Drivers:
-
-* SIP: a small upgrade to support the "Record" button on the SNOM360,
- which sends a sip INFO message with a "Record: on" or "Record: off"
- header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"
- requests (by default, via '*1'), then the user-configured dialpad sequence
- is generated, and recording can be started and stopped via this button. The
- file names and formats are all controlled via the normal mechanisms. If the
- user has not configured the automon feature, the normal "415 Unsupported media type"
- is returned, and nothing is done.
-
-* SIP: The "call-limit" option is marked as deprecated. It still works in this version of
- Asterisk, but will be removed in the following version. Please use the groupcount functions
- in the dialplan to enforce call limits. The "limitonpeer" configuration option is
- now renamed to "counteronpeer".
-
-* SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".
- These are used only before registration to call a peer with the uri
- sip:defaultuser@defaultip
- The "username" setting still work, but is deprecated and will not work in
- the next version of Asterisk.
-
-* SIP: The old "insecure" options, deprecated in 1.4, have been removed.
- "insecure=very" should be changed to "insecure=port,invite"
- "insecure=yes" should be changed to "insecure=port"
- Be aware that some telephony providers show the invalid syntax in their
- sample configurations.
-
-* chan_local.c: the comma delimiter inside the channel name has been changed to a
- semicolon, in order to make the Local channel driver compatible with the comma
- delimiter change in applications.
-
-* H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"
- to be compatible with settings in sip.conf. The "tos" and "cos" configuration
- is deprecated and will stop working in the next release of Asterisk.
-
-* Console: A new console channel driver, chan_console, has been added to Asterisk.
- This new module can not be loaded at the same time as chan_alsa or chan_oss. The
- default modules.conf only loads one of them (chan_oss by default). So, unless you
- have modified your modules.conf to not use the autoload option, then you will need
- to modify modules.conf to add another "noload" line to ensure that only one of
- these three modules gets loaded.
-
-* DAHDI: The chan_zap module that supported PSTN interfaces using
- Zaptel has been renamed to chan_dahdi, and only supports the DAHDI
- telephony driver package for PSTN interfaces. See the
- Zaptel-to-DAHDI.txt file for more details on this transition.
-
-* DAHDI: The "msdstrip" option has been deprecated, as it provides no value over
- the method of stripping digits in the dialplan using variable substring syntax.
-
-Configuration:
-
-* pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
- lowcost and other is not acceptable now. Look into qos.tex for description of
- this parameter.
-
-* queues.conf: the queue-lessthan sound file option is no longer available, and the
- queue-round-seconds option no longer takes '1' as a valid parameter.
-
-Manager:
-
-* Manager has been upgraded to version 1.1 with a lot of changes.
- Please check doc/manager_1_1.txt for information
-
-* The IAXpeers command output has been changed to more closely resemble the
- output of the SIPpeers command.
-
-* cdr_manager now reports at the "cdr" level, not at "call" You may need to
- change your manager.conf to add the level to existing AMI users, if they
- want to see the CDR events generated.
-
-* The Originate command now requires the Originate write permission. For
- Originate with the Application parameter, you need the additional System
- privilege if you want to do anything that calls out to a subshell.
-
-iLBC Codec:
-
-* Previously, the Asterisk source code distribution included the iLBC
- encoder/decoder source code, from Global IP Solutions
- (http://www.gipscorp.com). This code is not licensed for
- distribution, and thus has been removed from the Asterisk source
- code distribution. If you wish to use codec_ilbc to support iLBC
- channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh
- script to download the source and put it in the proper place in
- the Asterisk build tree. Once that is done you can follow your normal
- steps of building Asterisk. You will need to run 'menuselect' and enable
- the iLBC codec in the 'Codec Translators' category.
+++ /dev/null
-===========================================================
-===
-=== 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 includes 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
-===
-===========================================================
-
-From 1.8.13 to 1.8.14:
-* permitdirectmedia/denydirectmedia now controls whether peers can be
- bridged via directmedia by comparing the ACL to the bridging peer's
- address rather than its own address.
-
-From 1.8.12 to 1.8.13:
-* The complex processor detection and optimization has been removed from
- the makefile in favor of using native optimization suppport when available.
- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
-
-From 1.8.10 to 1.8.11:
-
-* If no transport is specified in sip.conf, transport will default to UDP.
- Also, if multiple transport= lines are used, only the last will be used.
-
-From 1.6.2 to 1.8:
-
-* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
- This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
- This carries a performance penalty.
-
-* Asterisk now requires libpri 1.4.11+ for PRI support.
-
-* A couple of CLI commands in res_ais were changed back to their original form:
- "ais show clm members" --> "ais clm show members"
- "ais show evt event channels" --> "ais evt show event channels"
-
-* The default value for 'autofill' and 'shared_lastcall' in queues.conf has
- been changed to 'yes'.
-
-* The default value for the alwaysauthreject option in sip.conf has been changed
- from "no" to "yes".
-
-* The behavior of the 'parkedcallstimeout' has changed slightly. The formulation
- of the extension name that a timed out parked call is delivered to when this
- option is set to 'no' was modified such that instead of converting '/' to '0',
- the '/' is converted to an underscore '_'. See the updated documentation in
- features.conf.sample for more information on the behavior of the
- 'parkedcallstimeout' option.
-
-* Asterisk-addons no longer exists as an independent package. Those modules
- now live in the addons directory of the main Asterisk source tree. They
- are not enabled by default. For more information about why modules live in
- addons, see README-addons.txt.
-
-* The rarely used 'event_log' and LOG_EVENT channel have been removed; the few
- users of this channel in the tree have been converted to LOG_NOTICE or removed
- (in cases where the same message was already generated to another channel).
-
-* The usage of RTP inside of Asterisk has now become modularized. This means
- the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.
- If you are not using autoload=yes in modules.conf you will need to ensure
- it is set to load. If not, then any module which uses RTP (such as chan_sip)
- will not be able to send or receive calls.
-
-* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
- remains. It now exists within app_chanspy.c and retains the exact same
- functionality as before.
-
-* The default behavior for Set, AGI, and pbx_realtime has been changed to implement
- 1.6 behavior by default, if there is no [compat] section in asterisk.conf. In
- prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.
- Specifically, that means that pbx_realtime and res_agi expect you to use commas
- to separate arguments in applications, and Set only takes a single pair of
- a variable name/value. The old 1.4 behavior may still be obtained by setting
- app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of
- asterisk.conf.
-
-* The PRI channels in chan_dahdi can no longer change the channel name if a
- different B channel is selected during call negotiation. To prevent using
- the channel name to infer what B channel a call is using and to avoid name
- collisions, the channel name format is changed.
- The new channel naming for PRI channels is:
- DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number>
-
-* Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)
- so the dialplan can determine the B channel currently in use by the channel.
- Use CHANNEL(no_media_path) to determine if the channel even has a B channel.
-
-* Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk
- channel so AMI applications can passively determine the B channel currently
- in use. Calls with "no-media" as the DAHDIChannel do not have an associated
- B channel. No-media calls are either on hold or call-waiting.
-
-* The ChanIsAvail application has been changed so the AVAILSTATUS variable
- no longer contains both the device state and cause code. The cause code
- is now available in the AVAILCAUSECODE variable. If existing dialplan logic
- is written to expect AVAILSTATUS to contain the cause code it needs to be
- changed to use AVAILCAUSECODE.
-
-* ExternalIVR will now send Z events for invalid or missing files, T events
- now include the interrupted file and bugs in argument parsing have been
- fixed so there may be arguments specified in incorrect ways that were
- working that will no longer work. Please see
- https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.
-
-* OSP lookup application changes following variable names:
- OSPPEERIP to OSPINPEERIP
- OSPTECH to OSPOUTTECH
- OSPDEST to OSPDESTINATION
- OSPCALLING to OSPOUTCALLING
- OSPCALLED to OSPOUTCALLED
- OSPRESULTS to OSPDESTREMAILS
-
-* The Manager event 'iax2 show peers' output has been updated. It now has a
- similar output of 'sip show peers'.
-
-* VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position
- of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
- the current dialplan context.
-
-* The CALLERPRES() dialplan function is deprecated in favor of
- CALLERID(num-pres) and CALLERID(name-pres).
-
-* Environment variables that start with "AST_" are reserved to the system and
- may no longer be set from the dialplan.
-
-* When a call is redirected inside of a Dial, the app and appdata fields of the
- CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.
-
-* The CDR handling of billsec and duration field has changed. If your table
- definition specifies those fields as float,double or similar they will now
- be logged with microsecond accuracy instead of a whole integer.
-
-* chan_sip will no longer set up a local call forward when receiving a
- 482 Loop Detected response. The dialplan will just continue from where it
- left off.
-
-* The 'stunaddr' option has been removed from chan_sip. This feature did not
- behave as expected, had no correct use case, and was not RFC compliant. The
- removal of this feature will hopefully be followed by a correct RFC compliant
- STUN implementation in chan_sip in the future.
-
-* The default value for the pedantic option in sip.conf has been changed
- from "no" to "yes".
-
-* The ConnectedLineNum and ConnectedLineName headers were added to many AMI
- events/responses if the CallerIDNum/CallerIDName headers were also present.
- The addition of connected line support changes the behavior of the channel
- caller ID somewhat. The channel caller ID value no longer time shares with
- the connected line ID on outgoing call legs. The timing of some AMI
- events/responses output the connected line ID as caller ID. These party ID's
- are now separate.
-
-* The Dial application d and H options do not automatically answer the call
- anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones
- cannot send DTMF before a call is connected, you need to answer the call
- leg to those phones before using Dial with these options for them to have
- any effect before the dialed party answers.
-
-* The outgoing directory (where .call files are read) now uses inotify to
- detect file changes instead of polling the directory on a regular basis.
- If your outgoing folder is on a NFS mount or another network file system,
- changes to the files will not be detected. You can revert to polling the
- directory by specifying --without-inotify to configure before compiling.
-
-* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
- table with type 'user' for user type objects.
-
-* The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you
- are using the early media DTMF overlap dialing method you now need to set
- allowoverlap=dtmf.
-
-From 1.6.1 to 1.6.2:
-
-* SIP no longer sends the 183 progress message for early media by
- default. Applications requiring early media should use the
- progress() dialplan app to generate the progress message.
-
-* The firmware for the IAXy has been removed from Asterisk. It can be
- downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk
- install the firmware into its proper location, place the firmware in the
- contrib/firmware/iax/ directory in the Asterisk source tree before running
- "make install".
-
-* T.38 FAX error correction mode can no longer be configured in udptl.conf;
- instead, it is configured on a per-peer (or global) basis in sip.conf, with
- the same default as was present in udptl.conf.sample.
-
-* T.38 FAX maximum datagram size can no longer be configured in updtl.conf;
- instead, it is either supplied by the application servicing the T.38 channel
- (for a FAX send or receive) or calculated from the bridged endpoint's
- maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf
- allows for overriding the value supplied by a remote endpoint, which is useful
- when T.38 connections are made to gateways that supply incorrectly-calculated
- maximum datagram sizes.
-
-* There have been some changes to the IAX2 protocol to address the security
- concerns documented in the security advisory AST-2009-006. Please see the
- IAX2 security document, doc/IAX2-security.pdf, for information regarding
- backwards compatibility with versions of Asterisk that do not contain these
- changes to IAX2.
-
-* The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers
- has been renamed to 'directmedia', to better reflect what it actually does.
- In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,
- starting and stopping music-on-hold, and other reasons, and the 'canreinvite'
- option never had any effect on these cases, it only affected the re-INVITEs
- used for direct media path setup. For MGCP and Skinny, the option was poorly
- named because those protocols don't even use INVITE messages at all. For
- backwards compatibility, the old option is still supported in both normal
- and Realtime configuration files, but all of the sample configuration files,
- Realtime/LDAP schemas, and other documentation refer to it using the new name.
-
-* The default console now will use colors according to the default background
- color, instead of forcing the background color to black. If you are using a
- light colored background for your console, you may wish to use the option
- flag '-W' to present better color choices for the various messages. However,
- if you'd prefer the old method of forcing colors to white text on a black
- background, the compatibility option -B is provided for this purpose.
-
-* SendImage() no longer hangs up the channel on transmission error or on
- any other error; in those cases, a FAILURE status is stored in
- SENDIMAGESTATUS and dialplan execution continues. The possible
- return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and
- UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'
- has been replaced with 'UNSUPPORTED'). This change makes the
- SendImage application more consistent with other applications.
-
-* skinny.conf now has separate sections for lines and devices.
- Please have a look at configs/skinny.conf.sample and update
- your skinny.conf.
-
-* Queue names previously were treated in a case-sensitive manner,
- meaning that queues with names like "sales" and "sALeS" would be
- seen as unique queues. The parsing logic has changed to use
- case-insensitive comparisons now when originally hashing based on
- queue names, meaning that now the two queues mentioned as examples
- earlier will be seen as having the same name.
-
-* The SPRINTF() dialplan function has been moved into its own module,
- func_sprintf, and is no longer included in func_strings. If you use this
- function and do not use 'autoload=yes' in modules.conf, you will need
- to explicitly load func_sprintf for it to be available.
-
-* The res_indications module has been removed. Its functionality was important
- enough that most of it has been moved into the Asterisk core.
- Two applications previously provided by res_indications, PlayTones and
- StopPlayTones, have been moved into a new module, app_playtones.
-
-* Support for Taiwanese was incorrectly supported with the "tw" language code.
- In reality, the "tw" language code is reserved for the Twi language, native
- to Ghana. If you were previously using the "tw" language code, you should
- switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan
- specific localizations. Additionally, "mx" should be changed to "es_MX",
- Georgian was incorrectly specified as "ge" but should be "ka", and Czech is
- "cs", not "cz".
-
-* DAHDISendCallreroutingFacility() parameters are now comma-separated,
- instead of the old pipe.
-
-* res_jabber: autoprune has been disabled by default, to avoid misconfiguration
- that would end up being interpreted as a bug once Asterisk started removing
- the contacts from a user list.
-
-* The cdr.conf file must exist and be configured correctly in order for CDR
- records to be written.
-
-* cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,
- which should cover most uses of the extended ASCII set. If your strings
- use a different encoding in Asterisk, the "encoding" parameter may be set
- to specify the correct character set.
-
-From 1.6.0.1 to 1.6.1:
-
-* The ast_agi_register_multiple() and ast_agi_unregister_multiple()
- API calls were added in 1.6.0, so that modules that provide multiple
- AGI commands could register/unregister them all with a single
- step. However, these API calls were not implemented properly, and did
- not allow the caller to know whether registration or unregistration
- succeeded or failed. They have been redefined to now return success
- or failure, but this means any code using these functions will need
- be recompiled after upgrading to a version of Asterisk containing
- these changes. In addition, the source code using these functions
- should be reviewed to ensure it can properly react to failure
- of registration or unregistration of its API commands.
-
-* The ast_agi_fdprintf() API call has been renamed to ast_agi_send()
- to better match what it really does, and the argument order has been
- changed to be consistent with other API calls that perform similar
- operations.
-
-From 1.6.0.x to 1.6.1:
-
-* In previous versions of Asterisk, due to the way objects were arranged in
- memory by chan_sip, the order of entries in sip.conf could be adjusted to
- control the behavior of matching against peers and users. The way objects
- are managed has been significantly changed for reasons involving performance
- and stability. A side effect of these changes is that the order of entries
- in sip.conf can no longer be relied upon to control behavior.
-
-* The following core commands dealing with dialplan have been deprecated: 'core
- show globals', 'core set global' and 'core set chanvar'. Use the equivalent
- 'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'
- instead.
-
-* In the dialplan expression parser, the logical value of spaces
- immediately preceding a standalone 0 previously evaluated to
- true. It now evaluates to false. This has confused a good many
- people in the past (typically because they failed to realize the
- space had any significance). Since this violates the Principle of
- Least Surprise, it has been changed.
-
-* While app_directory has always relied on having a voicemail.conf or users.conf file
- correctly set up, it now is dependent on app_voicemail being compiled as well.
-
-* SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),
- and you should start using that function instead for retrieving information about
- the channel in a technology-agnostic way.
-
-* If you have any third party modules which use a config file variable whose
- name ends in a '+', please note that the append capability added to this
- version may now conflict with that variable naming scheme. An easy
- workaround is to ensure that a space occurs between the '+' and the '=',
- to differentiate your variable from the append operator. This potential
- conflict is unlikely, but is documented here to be thorough.
-
-* The "Join" event from app_queue now uses the CallerIDNum header instead of
- the CallerID header to indicate the CallerID number.
-
-* If you use ODBC storage for voicemail, there is a new field called "flag"
- which should be a char(8) or larger. This field specifies whether or not a
- message has been designated to be "Urgent", "PRIORITY", or not.
+++ /dev/null
-===========================================================
-===
-=== 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
-===
-===========================================================
-
-From 10.4 to 10.5:
-
-* The complex processor detection and optimization has been removed from
- the makefile in favor of using native optimization suppport when available.
- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
-
-From 10.2 to 10.3:
-
-* If no transport is specified in sip.conf, transport will default to UDP.
- Also, if multiple transport= lines are used, only the last will be used.
-
-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.
-
-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.
-
-===========================================================
-===========================================================
+++ /dev/null
-===========================================================
-===
-=== 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
-===
-===========================================================
-
-From 11.6 to 11.7:
-ConfBridge
- - ConfBridge now has the ability to set the language of announcements to the
- conference. The language can be set on a bridge profile in confbridge.conf
- or by the dialplan function CONFBRIDGE(bridge,language)=en.
-chan_sip - Clarify The "sip show peers" Forcerport Column And Add Comedia
- - Under the "Forcerport" column, the "N" used to mean NAT (i.e. Yes). With
- the additon of auto_* NAT settings, the meaning changed and there was a
- certain combination of letters added to indicate the current setting. The
- combination of using "Y", "N", "A" or "a", can be confusing. Therefore, we
- now display clearly what the current Forcerport setting is: "Yes", "No",
- "Auto (Yes)", "Auto (No)".
- - Since we are clarifying the Forcerport column, we have added a column to
- display the Comedia setting since this is useful information as well. We
- no longer have a simple "NAT" setting like other versions before 11.
-
-From 11.5 to 11.6:
-* res_agi will now properly indicate if there was an error in streaming an
- audio file. The result code will be -1 and the result returned from the
- the function will be RESULT_FAILURE instead of the prior behavior of always
- returning RESULT_SUCCESS even if there was an error.
-
-From 11.4 to 11.5:
-* The default settings for chan_sip are now overriden properly by the general
- settings in sip.conf. Please look over your settings upon upgrading.
-
-From 11.3 to 11.4:
-* Added the 'n' option to MeetMe to prevent application of the DENOISE function
- to a channel joining a conference. Some channel drivers that vary the number
- of audio samples in a voice frame will experience significant quality problems
- if a denoiser is attached to the channel; this option gives them the ability
- to remove the denoiser without having to unload func_speex.
-
-* The Registry AMI event for SIP registrations will now always include the
- Username field. A previous bug fix missed an instance where it was not
- included; that has been corrected in this release.
-
-From 11.2.0 to 11.2.1:
-* Asterisk would previously not output certain error messages when a remote
- console attempted to connect to Asterisk and no instance of Asterisk was
- running. This error message is displayed on stderr; as a result, some
- initialization scripts that used remote consoles to test for the presence
- of a running Asterisk instance started to display erroneous error messages.
- The init.d scripts and the safe_asterisk have been updated in the contrib
- folder to account for this.
-
-From 11.2 to 11.3:
-
-* Now by default, when Asterisk is installed in a path other than /usr, the
- Asterisk binary will search for shared libraries in ${libdir} in addition to
- searching system libraries. This allows Asterisk to find its shared
- libraries without having to specify LD_LIBRARY_PATH. This can be disabled by
- passing --disable-rpath to configure.
-
-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.
-
-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.
-
-===========================================================
-===========================================================
+++ /dev/null
-===========================================================
-===
-=== 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.
-
-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.
-
- - ignore_failed_channels now defaults to True: the channel will continue to
- be configured even if configuring it has failed. This is generally a
- better setup for systems with not more than one DAHDI device or with DAHDI
- >= 2.8.0 .
-
-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 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/.
-
-
-===========================================================
-===========================================================
+++ /dev/null
-===========================================================
-===
-=== 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
-=== UPGRADE-12.txt -- Upgrade info for 11 to 12
-===========================================================
-
-General Asterisk Changes:
- - The asterisk command line -I option and the asterisk.conf internal_timing
- option are removed and always enabled if any timing module is loaded.
-
- - 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.
-
- - The asterisk compatibility options in asterisk.conf have been removed.
- These options enabled certain backwards compatibility features for
- pbx_realtime, res_agi, and app_set that made their behaviour similar to
- Asterisk 1.4. Users who used these backwards compatibility settings should
- update their dialplans to use ',' instead of '|' as a delimiter, and should
- use the Set dialplan application instead of the MSet dialplan application.
-
-Build System:
- - Sample config files have been moved from configs/ to a subfolder of that
- directory, 'samples'.
-
- - The menuselect utility has been pulled into the Asterisk repository. As a
- result, the libxml2 development library is now a required dependency for
- Asterisk.
-
- - 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.
-
-Applications:
-
-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.
-
- - 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.
-
-Queue:
- - Queue rules provided in queuerules.conf can no longer be named "general".
-
-SetMusicOnHold:
- - The SetMusicOnHold dialplan application was deprecated and has been removed.
- Users of the application should use the CHANNEL function's musicclass
- setting instead.
-
-WaitMusicOnHold:
- - The WaitMusicOnHold dialplan application was deprecated and has been
- removed. Users of the application should use MusicOnHold with a duration
- parameter instead.
-
-CDR Backends:
- - The cdr_sqlite module was deprecated and has been removed. Users of this
- module should use the cdr_sqlite3_custom module instead.
-
-Channel Drivers:
-
-chan_dahdi:
- - SS7 support now requires libss7 v2.0 or later.
-
- - 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.
- Default is now no.
-
-chan_gtalk
- - This module was deprecated and has been removed. Users of chan_gtalk
- should use chan_motif.
-
-chan_h323
- - This module was deprecated and has been removed. Users of chan_h323
- should use chan_ooh323.
-
-chan_jingle
- - This module was deprecated and has been removed. Users of chan_jingle
- should use chan_motif.
-
-chan_pjsip:
- - 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:
- - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
- interoperability.
-
- - The SIPPEER dialplan function no longer supports using a colon as a
- delimiter for parameters. The parameters for the function should be
- delimited using a comma.
-
- - The SIPCHANINFO dialplan function was deprecated and has been removed. Users
- of the function should use the CHANNEL function instead.
-
- - 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.
-
- - The 'progressinband=never' option is now more zealous in the persecution of
- progress messages coming from Asterisk. Channels bridged with a SIP channel
- that has 'progressinband=never' set will not be able to forward their
- progress indications through to the SIP device. chan_sip will now turn such
- progress indications into a 180 Ringing (if a 180 has not yet been
- transmitted) if 'progressinband=never'.
-
- - The codec preference order in an SDP during an offer is slightly different
- than previous releases. Prior to Asterisk 13, the preference order of
- codecs used to be:
- (1) Our preferred codec
- (2) Our configured codecs
- (3) Any non-audio joint codecs
-
- One of the ways the new media format architecture in Asterisk 13 improves
- performance is by reference counting formats, such that they can be reused
- in many places without additional allocation. To not require a large
- amount of locking, an instance of a format is immutable by convention.
- This works well except for formats with attributes. Since a media format
- with an attribute is a different object than the same format without an
- attribute, we have to carry over the formats with attributes from an
- inbound offer so that the correct attributes are offered in an outgoing
- INVITE request. This requires some subtle tweaks to the preference order
- to ensure that the media format with attributes is offered to a remote
- peer, as opposed to the same media format (but without attributes) that
- may be stored in the peer object.
-
- All of this means that our offer offer list will now be:
- (1) Our preferred codec
- (2) Any joint codecs offered by the inbound offer
- (3) All other codecs that are not the preferred codec and not a joint
- codec offered by the inbound offer
-
-chan_unistim:
- - The unistim.conf 'dateformat' has changed meaning of options values to conform
- values used inside Unistim protocol
-
- - Added 'dtmf_duration' option with changing default operation to disable
- receivied dtmf playback on unistim phone
-
-Core:
-
-Account Codes:
- - accountcode behavior changed somewhat to add functional peeraccount
- support. The main change is that local channels now cross accountcode
- and peeraccount across the special bridge between the ;1 and ;2 channels
- just like channels between normal bridges. See the CHANGES file for
- more information.
-
-ARI:
- - The ARI version has been changed to 1.5.0. This is to reflect backwards
- compatible changes made since 12.0.0 was released.
-
- - 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.
-
- - 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.
-
-AMI:
- - The AMI version has been changed to 2.5.0. This is to reflect backwards
- compatible changes made since 12.0.0 was released.
-
- - 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
-
- - MixMonitor AMI actions now require users to have authorization classes.
- * MixMonitor - system
- * MixMonitorMute - call or system
- * StopMixMonitor - call or system
-
- - Removed the undocumented manager.conf block-sockets option. It interferes with
- TCP/TLS inactivity timeouts.
-
- - The response to the PresenceState AMI action has historically contained two
- Message keys. The first of these is used as an informative message regarding
- the success/failure of the action; the second contains a Presence state
- specific message. Having two keys with the same unique name in an AMI
- message is cumbersome for some client; hence, the Presence specific Message
- has been deprecated. The message will now contain a PresenceMessage key
- for the presence specific information; the Message key containing presence
- information will be removed in the next major version of AMI.
-
- - The manager.conf 'eventfilter' now takes an "extended" regular expression
- instead of a "basic" one.
-
-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.
-
-Logging:
- - 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.
-
-HTTP:
- - Added http.conf session_inactivity timer option to close HTTP connections
- that aren't doing anything.
-
- - 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.
-
-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', 'user_agent', 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
- 'message_context' was added to let users configure how MESSAGE requests are
- routed to the dialplan.
-
- - A new column was added to the 'ps_globals' realtime table for the 'debug'
- option.
-
- - 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.
-
- - A new upgrade script has been added that adds a 'queue_rules' table for
- app_queue. Users of app_queue can store queue rules in a database. It is
- important to note that app_queue only looks for this table on module load or
- module reload; for more information, see the CHANGES file.
-
-Resources:
-
-res_odbc:
-- The compatibility setting, allow_empty_string_in_nontext, has been removed.
- Empty column values will be stored as empty strings during realtime updates.
-
-res_jabber:
- - This module was deprecated and has been removed. Users of this module should
- use res_xmpp instead.
-
-res_http_websocket:
- - Added a compatibility option to ari.conf, sip.conf, and pjsip.conf
- '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.
-Scripts:
-
-safe_asterisk:
- - 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)"
-
-Utilities:
- - The refcounter program has been removed in favor of the refcounter.py script
- in contrib/scripts.
-
-===========================================================
-===========================================================
+++ /dev/null
-===========================================================
-===
-=== 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
-=== UPGRADE-12.txt -- Upgrade info for 11 to 12
-=== UPGRADE-13.txt -- Upgrade info for 12 to 13
-===========================================================
-
-From 14.6.0 to 14.7.0:
-
-Core:
- - ast_app_parse_timelen now returns an error if it encounters extra characters
- at the end of the string to be parsed.
-
-From 14.4.0 to 14.5.0:
-
-Core:
- - Support for embedded modules has been removed. This has not worked in
- many years. LOADABLE_MODULES menuselect option is also removed as
- loadable module support is now always enabled.
-
-From 14.3.0 to 14.4.0:
-
-res_rtp_asterisk:
- - The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
- Data and Control Packets on a Single Port." For the PJSIP channel driver,
- chan_pjsip, you can set "rtcp_mux = yes" on a PJSIP endpoint in pjsip.conf
- to enable the feature. For chan_sip you can set "rtcp_mux = yes" either
- globally or on a per-peer basis in sip.conf.
-
-New in 14.0.0
-
-ARI:
- - The policy for when to send "Dial" events has changed. Previously, "Dial"
- events were sent on the calling channel's topic. However, starting in Asterisk
- 14, if there is no calling channel on which to send the event, the event is
- instead sent on the called channel's topic. Note that for the ARI channels
- resource's dial operation, this means that the "Dial" events will always be
- sent on the called channel's topic.
-
-Channel Drivers:
-
-chan_dahdi:
- - For users using the FXO port (FXS signaling) distinctive ring detection
- feature, you will need to adjust the dringX count values. The count
- values now only record ring end events instead of any DAHDI event. A
- ring-ring-ring pattern would exceed the pattern limits and stop
- Caller-ID detection.
-
-chan_sip:
- - The SIP dial string has been extended past the [!dnid] option by another
- exclamation mark: [!dnid[!fromuri]. An exclamation mark in the To-URI
- will now mean changes to the From-URI.
-
-Core:
- - The REF_DEBUG compiler flag is now used to enable refdebug by default.
- The setting can be overridden in asterisk.conf by setting refdebug in
- the options category. No recompile is required to enable/disable it.
-
- - Modified processing of command-line options to first parse only what
- is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
- the remaining options are processed. The -X option now applies to
- asterisk.conf only. To enable #exec for other config files you must
- set execincludes=yes in asterisk.conf. Any other option set on the
- command-line will now override the equivalent setting from asterisk.conf.
-
-AMI:
- - The 'ModuleCheck' Action's Version key will no longer show the module
- version. The value will always be blank.
-
-CLI:
- - The 'core show file version' command has been removed. When Asterisk
- moved to Git, the source control version support was removed. As a
- result, the CLi command was no longer useful and was removed as well.
-
-Logging:
- - The first callid created is now 1 instead of 0. The value 0
- is now reserved to represent a lack of callid.
-
-AMI:
- - The Command action now sends the output from the CLI command as a series
- of Output headers for each line instead of as a block of text with the
- --END COMMAND-- delimiter to match the output from other actions.
-
- Commands that fail to execute (no such command, invalid syntax etc.) now
- return an Error response instead of Success.
-
-app_amd:
- - The 'maximum_number_of_words' configuration option and parameter to the AMD
- application previously did not match the documented functionality + variable
- name. In Asterisk 13, a value of '3' would mean that if '3' words were detected,
- the result would be detection as a 'MACHINE'. As of this version, the value
- reflects the maximum words that if EXCEEDED (rather than reached), would
- result in detection as a machine. This means that you should update this
- value to be one higher than your previos value, if your previous value
- was working well for you.
-
-===========================================================
-===========================================================
+++ /dev/null
-===========================================================
-===
-=== 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
-=== UPGRADE-12.txt -- Upgrade info for 11 to 12
-=== UPGRADE-13.txt -- Upgrade info for 12 to 13
-=== UPGRADE-14.txt -- Upgrade info for 13 to 14
-===========================================================
-
-From 15.2.0 to 15.3.0:
-
-res_pjsip
-------------------
- * Users who are matching endpoints by SIP header need to reevaluate their
- global "endpoint_identifier_order" option in light of the "ip" endpoint
- identifier method split into the "ip" and "header" endpoint identifier
- methods.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * The endpoint identifier "ip" method previously recognized endpoints either
- by IP address or a matching SIP header. The "ip" endpoint identifier method
- is now split into the "ip" and "header" endpoint identifier methods. The
- "ip" endpoint identifier method only matches by IP address and the "header"
- endpoint identifier method only matches by SIP header. The split allows the
- user to control the relative priority of the IP address and the SIP header
- identification methods in the global "endpoint_identifier_order" option.
- e.g., If you have two type=identify sections where one matches by IP address
- for endpoint alice and the other matches by SIP header for endpoint bob then
- you can now predict which endpoint is matched when a request comes in that
- matches both.
-
-New in 15.0.0:
-
-Build System:
- - '--with-pjproject-bundled' is now the default when running ./configure
- It can be disabled with '--without-pjproject-bundled'.
-
-Core:
- - Multi-stream support has been added so a channel can have multiple
- streams of the same type such as audio and video.
-
- - The 'Data Retrieval API' has been removed. This API was not actively
- maintained, was not added to new modules (such as res_pjsip), and there
- exist better alternatives to acquire the same information, such as the
- ARI. As a result, the 'DataGet' AMI action as well as the 'data get'
- CLI command have been removed.
+++ /dev/null
-===========================================================
-===
-=== 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
-=== UPGRADE-12.txt -- Upgrade info for 11 to 12
-=== UPGRADE-13.txt -- Upgrade info for 12 to 13
-=== UPGRADE-14.txt -- Upgrade info for 13 to 14
-=== UPGRADE-15.txt -- Upgrade info for 14 to 15
-===========================================================
-
-New in 16.0.0:
-
-app_fax:
- - The app_fax module is now deprecated, users should migrate to the
- replacement module res_fax.
-
-app_macro:
- - The app_macro module is now deprecated and by default it is no longer
- built. Users should migrate to app_stack (Gosub). A warning is logged
- the first time any Macro is used.
-
-AMI:
- - The ContactStatus and Status fields for the manager events ContactStatus
- and ContactStatusDetail are now set to "NonQualified" when a contact exists
- but has not been qualified.
- - The ContactStatus event will no longer be sent by PJSIP when a device
- refreshes its registration.
- - The "Newexten" event is now part of the "dialplan" class. The documentation
- for Asterisk 15 already specified this, but the implementation was actually
- using the "call" class instead.
-
-ARI:
- - The ContactInfo event's contact_status field is now set to "NonQualified"
- when a contact exists but has not been qualified.
-
-Build System:
- - MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
- with MALLOC_DEBUG can now successfully load binary modules built without
- MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
- need to have a special build with it enabled.
-
- - Asterisk now depends on libjansson >= 2.11. If this version is not
- available on your distro you can use `./configure --with-jansson-bundled`.
-
-chan_dahdi:
- - Timeouts for reading digits from analog phones are now configurable in
- chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
-
-cdr_syslog:
- - The cdr_syslog module is now deprecated and by default it is no longer
- built.
-
-res_config_sqlite:
- - The res_config_sqlite module is now deprecated, users should migrate to the
- replacement module res_config_sqlite3.
-
-res_monitor:
- - The res_monitor module is now deprecated, users should migrate to the
- replacement module app_mixmonitor.
-
-Core:
- - libedit is no longer available as an embedded library and must be provided
- by the system.
- - The module loader now enforces inter-module dependencies. This ensures that
- a module is not started before another it depends on, even if preload is used.
- If a dependency is not available or fails to startup this will block any
- dependants from startup.
- - Parts of the Asterisk core which can load configuration from realtime are now
- built-in modules. It is no longer necessary to preload realtime drivers as
- they are always initialized before the built-in modules.
===========================================================
===
+=== THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
+=== PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO
+=== doc/UPGRADE-staging/README.md FOR MORE DETAILS.
+===
=== 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.
+=== This file documents all the changes that MUST be taken
+=== into account when upgrading between certain Asterisk
+=== versions. 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. This file also includes 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
-=== UPGRADE-12.txt -- Upgrade info for 11 to 12
-=== UPGRADE-13.txt -- Upgrade info for 12 to 13
-=== UPGRADE-14.txt -- Upgrade info for 13 to 14
-=== UPGRADE-15.txt -- Upgrade info for 14 to 15
-=== UPGRADE-16.txt -- Upgrade info for 15 to 16
===========================================================
-New in 17.0.0:
+New in 16.0.0:
+
+app_fax:
+ - The app_fax module is now deprecated, users should migrate to the
+ replacement module res_fax.
+
+app_macro:
+ - The app_macro module is now deprecated and by default it is no longer
+ built. Users should migrate to app_stack (Gosub). A warning is logged
+ the first time any Macro is used.
+
+AMI:
+ - The ContactStatus and Status fields for the manager events ContactStatus
+ and ContactStatusDetail are now set to "NonQualified" when a contact exists
+ but has not been qualified.
+ - The ContactStatus event will no longer be sent by PJSIP when a device
+ refreshes its registration.
+ - The "Newexten" event is now part of the "dialplan" class. The documentation
+ for Asterisk 15 already specified this, but the implementation was actually
+ using the "call" class instead.
+
+ARI:
+ - The ContactInfo event's contact_status field is now set to "NonQualified"
+ when a contact exists but has not been qualified.
+
+Build System:
+ - MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
+ with MALLOC_DEBUG can now successfully load binary modules built without
+ MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
+ need to have a special build with it enabled.
+
+ - Asterisk now depends on libjansson >= 2.11. If this version is not
+ available on your distro you can use `./configure --with-jansson-bundled`.
+
+chan_dahdi:
+ - Timeouts for reading digits from analog phones are now configurable in
+ chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
+
+cdr_syslog:
+ - The cdr_syslog module is now deprecated and by default it is no longer
+ built.
+
+res_config_sqlite:
+ - The res_config_sqlite module is now deprecated, users should migrate to the
+ replacement module res_config_sqlite3.
+
+res_monitor:
+ - The res_monitor module is now deprecated, users should migrate to the
+ replacement module app_mixmonitor.
+
+Core:
+ - libedit is no longer available as an embedded library and must be provided
+ by the system.
+ - The module loader now enforces inter-module dependencies. This ensures that
+ a module is not started before another it depends on, even if preload is used.
+ If a dependency is not available or fails to startup this will block any
+ dependants from startup.
+ - Parts of the Asterisk core which can load configuration from realtime are now
+ built-in modules. It is no longer necessary to preload realtime drivers as
+ they are always initialized before the built-in modules.
+
+From 15.2.0 to 15.3.0:
+
+res_pjsip
+------------------
+ * Users who are matching endpoints by SIP header need to reevaluate their
+ global "endpoint_identifier_order" option in light of the "ip" endpoint
+ identifier method split into the "ip" and "header" endpoint identifier
+ methods.
+
+res_pjsip_endpoint_identifier_ip
+------------------
+ * The endpoint identifier "ip" method previously recognized endpoints either
+ by IP address or a matching SIP header. The "ip" endpoint identifier method
+ is now split into the "ip" and "header" endpoint identifier methods. The
+ "ip" endpoint identifier method only matches by IP address and the "header"
+ endpoint identifier method only matches by SIP header. The split allows the
+ user to control the relative priority of the IP address and the SIP header
+ identification methods in the global "endpoint_identifier_order" option.
+ e.g., If you have two type=identify sections where one matches by IP address
+ for endpoint alice and the other matches by SIP header for endpoint bob then
+ you can now predict which endpoint is matched when a request comes in that
+ matches both.
+
+New in 15.0.0:
+
+Build System:
+ - '--with-pjproject-bundled' is now the default when running ./configure
+ It can be disabled with '--without-pjproject-bundled'.
+
+Core:
+ - Multi-stream support has been added so a channel can have multiple
+ streams of the same type such as audio and video.
+
+ - The 'Data Retrieval API' has been removed. This API was not actively
+ maintained, was not added to new modules (such as res_pjsip), and there
+ exist better alternatives to acquire the same information, such as the
+ ARI. As a result, the 'DataGet' AMI action as well as the 'data get'
+ CLI command have been removed.
+
+From 14.6.0 to 14.7.0:
+
+Core:
+ - ast_app_parse_timelen now returns an error if it encounters extra characters
+ at the end of the string to be parsed.
+
+From 14.4.0 to 14.5.0:
+
+Core:
+ - Support for embedded modules has been removed. This has not worked in
+ many years. LOADABLE_MODULES menuselect option is also removed as
+ loadable module support is now always enabled.
+
+From 14.3.0 to 14.4.0:
+
+res_rtp_asterisk:
+ - The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
+ Data and Control Packets on a Single Port." For the PJSIP channel driver,
+ chan_pjsip, you can set "rtcp_mux = yes" on a PJSIP endpoint in pjsip.conf
+ to enable the feature. For chan_sip you can set "rtcp_mux = yes" either
+ globally or on a per-peer basis in sip.conf.
+
+New in 14.0.0
+
+ARI:
+ - The policy for when to send "Dial" events has changed. Previously, "Dial"
+ events were sent on the calling channel's topic. However, starting in Asterisk
+ 14, if there is no calling channel on which to send the event, the event is
+ instead sent on the called channel's topic. Note that for the ARI channels
+ resource's dial operation, this means that the "Dial" events will always be
+ sent on the called channel's topic.
+
+Channel Drivers:
+
+chan_dahdi:
+ - For users using the FXO port (FXS signaling) distinctive ring detection
+ feature, you will need to adjust the dringX count values. The count
+ values now only record ring end events instead of any DAHDI event. A
+ ring-ring-ring pattern would exceed the pattern limits and stop
+ Caller-ID detection.
+
+chan_sip:
+ - The SIP dial string has been extended past the [!dnid] option by another
+ exclamation mark: [!dnid[!fromuri]. An exclamation mark in the To-URI
+ will now mean changes to the From-URI.
+
+Core:
+ - The REF_DEBUG compiler flag is now used to enable refdebug by default.
+ The setting can be overridden in asterisk.conf by setting refdebug in
+ the options category. No recompile is required to enable/disable it.
+
+ - Modified processing of command-line options to first parse only what
+ is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
+ the remaining options are processed. The -X option now applies to
+ asterisk.conf only. To enable #exec for other config files you must
+ set execincludes=yes in asterisk.conf. Any other option set on the
+ command-line will now override the equivalent setting from asterisk.conf.
+
+AMI:
+ - The 'ModuleCheck' Action's Version key will no longer show the module
+ version. The value will always be blank.
+
+CLI:
+ - The 'core show file version' command has been removed. When Asterisk
+ moved to Git, the source control version support was removed. As a
+ result, the CLi command was no longer useful and was removed as well.
+
+Logging:
+ - The first callid created is now 1 instead of 0. The value 0
+ is now reserved to represent a lack of callid.
+
+AMI:
+ - The Command action now sends the output from the CLI command as a series
+ of Output headers for each line instead of as a block of text with the
+ --END COMMAND-- delimiter to match the output from other actions.
+
+ Commands that fail to execute (no such command, invalid syntax etc.) now
+ return an Error response instead of Success.
+
+app_amd:
+ - The 'maximum_number_of_words' configuration option and parameter to the AMD
+ application previously did not match the documented functionality + variable
+ name. In Asterisk 13, a value of '3' would mean that if '3' words were detected,
+ the result would be detection as a 'MACHINE'. As of this version, the value
+ reflects the maximum words that if EXCEEDED (rather than reached), would
+ result in detection as a machine. This means that you should update this
+ value to be one higher than your previos value, if your previous value
+ was working well for you.
+
+From 12 to 13:
+
+General Asterisk Changes:
+ - The asterisk command line -I option and the asterisk.conf internal_timing
+ option are removed and always enabled if any timing module is loaded.
+
+ - 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.
+
+ - The asterisk compatibility options in asterisk.conf have been removed.
+ These options enabled certain backwards compatibility features for
+ pbx_realtime, res_agi, and app_set that made their behaviour similar to
+ Asterisk 1.4. Users who used these backwards compatibility settings should
+ update their dialplans to use ',' instead of '|' as a delimiter, and should
+ use the Set dialplan application instead of the MSet dialplan application.
+
+Build System:
+ - Sample config files have been moved from configs/ to a subfolder of that
+ directory, 'samples'.
+
+ - The menuselect utility has been pulled into the Asterisk repository. As a
+ result, the libxml2 development library is now a required dependency for
+ Asterisk.
+
+ - 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.
+
+Applications:
+
+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.
+
+ - 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.
+
+Queue:
+ - Queue rules provided in queuerules.conf can no longer be named "general".
+
+SetMusicOnHold:
+ - The SetMusicOnHold dialplan application was deprecated and has been removed.
+ Users of the application should use the CHANNEL function's musicclass
+ setting instead.
+
+WaitMusicOnHold:
+ - The WaitMusicOnHold dialplan application was deprecated and has been
+ removed. Users of the application should use MusicOnHold with a duration
+ parameter instead.
+
+CDR Backends:
+ - The cdr_sqlite module was deprecated and has been removed. Users of this
+ module should use the cdr_sqlite3_custom module instead.
+
+Channel Drivers:
+
+chan_dahdi:
+ - SS7 support now requires libss7 v2.0 or later.
+
+ - 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.
+ Default is now no.
+
+chan_gtalk
+ - This module was deprecated and has been removed. Users of chan_gtalk
+ should use chan_motif.
+
+chan_h323
+ - This module was deprecated and has been removed. Users of chan_h323
+ should use chan_ooh323.
+
+chan_jingle
+ - This module was deprecated and has been removed. Users of chan_jingle
+ should use chan_motif.
+
+chan_pjsip:
+ - 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:
+ - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
+ interoperability.
+
+ - The SIPPEER dialplan function no longer supports using a colon as a
+ delimiter for parameters. The parameters for the function should be
+ delimited using a comma.
+
+ - The SIPCHANINFO dialplan function was deprecated and has been removed. Users
+ of the function should use the CHANNEL function instead.
+
+ - 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.
+
+ - The 'progressinband=never' option is now more zealous in the persecution of
+ progress messages coming from Asterisk. Channels bridged with a SIP channel
+ that has 'progressinband=never' set will not be able to forward their
+ progress indications through to the SIP device. chan_sip will now turn such
+ progress indications into a 180 Ringing (if a 180 has not yet been
+ transmitted) if 'progressinband=never'.
+
+ - The codec preference order in an SDP during an offer is slightly different
+ than previous releases. Prior to Asterisk 13, the preference order of
+ codecs used to be:
+ (1) Our preferred codec
+ (2) Our configured codecs
+ (3) Any non-audio joint codecs
+
+ One of the ways the new media format architecture in Asterisk 13 improves
+ performance is by reference counting formats, such that they can be reused
+ in many places without additional allocation. To not require a large
+ amount of locking, an instance of a format is immutable by convention.
+ This works well except for formats with attributes. Since a media format
+ with an attribute is a different object than the same format without an
+ attribute, we have to carry over the formats with attributes from an
+ inbound offer so that the correct attributes are offered in an outgoing
+ INVITE request. This requires some subtle tweaks to the preference order
+ to ensure that the media format with attributes is offered to a remote
+ peer, as opposed to the same media format (but without attributes) that
+ may be stored in the peer object.
+
+ All of this means that our offer offer list will now be:
+ (1) Our preferred codec
+ (2) Any joint codecs offered by the inbound offer
+ (3) All other codecs that are not the preferred codec and not a joint
+ codec offered by the inbound offer
+
+chan_unistim:
+ - The unistim.conf 'dateformat' has changed meaning of options values to conform
+ values used inside Unistim protocol
+
+ - Added 'dtmf_duration' option with changing default operation to disable
+ receivied dtmf playback on unistim phone
+
+Core:
+
+Account Codes:
+ - accountcode behavior changed somewhat to add functional peeraccount
+ support. The main change is that local channels now cross accountcode
+ and peeraccount across the special bridge between the ;1 and ;2 channels
+ just like channels between normal bridges. See the CHANGES file for
+ more information.
+
+ARI:
+ - The ARI version has been changed to 1.5.0. This is to reflect backwards
+ compatible changes made since 12.0.0 was released.
+
+ - 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.
+
+ - 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.
+
+AMI:
+ - The AMI version has been changed to 2.5.0. This is to reflect backwards
+ compatible changes made since 12.0.0 was released.
+
+ - 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
+
+ - MixMonitor AMI actions now require users to have authorization classes.
+ * MixMonitor - system
+ * MixMonitorMute - call or system
+ * StopMixMonitor - call or system
+
+ - Removed the undocumented manager.conf block-sockets option. It interferes with
+ TCP/TLS inactivity timeouts.
+
+ - The response to the PresenceState AMI action has historically contained two
+ Message keys. The first of these is used as an informative message regarding
+ the success/failure of the action; the second contains a Presence state
+ specific message. Having two keys with the same unique name in an AMI
+ message is cumbersome for some client; hence, the Presence specific Message
+ has been deprecated. The message will now contain a PresenceMessage key
+ for the presence specific information; the Message key containing presence
+ information will be removed in the next major version of AMI.
+
+ - The manager.conf 'eventfilter' now takes an "extended" regular expression
+ instead of a "basic" one.
+
+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.
+
+Logging:
+ - 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.
+
+HTTP:
+ - Added http.conf session_inactivity timer option to close HTTP connections
+ that aren't doing anything.
+
+ - 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.
+
+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', 'user_agent', 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
+ 'message_context' was added to let users configure how MESSAGE requests are
+ routed to the dialplan.
+
+ - A new column was added to the 'ps_globals' realtime table for the 'debug'
+ option.
+
+ - 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.
+
+ - A new upgrade script has been added that adds a 'queue_rules' table for
+ app_queue. Users of app_queue can store queue rules in a database. It is
+ important to note that app_queue only looks for this table on module load or
+ module reload; for more information, see the CHANGES file.
+
+Resources:
+
+res_odbc:
+- The compatibility setting, allow_empty_string_in_nontext, has been removed.
+ Empty column values will be stored as empty strings during realtime updates.
+
+res_jabber:
+ - This module was deprecated and has been removed. Users of this module should
+ use res_xmpp instead.
+
+res_http_websocket:
+ - Added a compatibility option to ari.conf, sip.conf, and pjsip.conf
+ '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.
+Scripts:
+
+safe_asterisk:
+ - 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)"
+
+Utilities:
+ - The refcounter program has been removed in favor of the refcounter.py script
+ in contrib/scripts.
+
+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.
+
+ - ignore_failed_channels now defaults to True: the channel will continue to
+ be configured even if configuring it has failed. This is generally a
+ better setup for systems with not more than one DAHDI device or with DAHDI
+ >= 2.8.0 .
+
+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 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/.
+
+From 11.6 to 11.7:
+ConfBridge
+ - ConfBridge now has the ability to set the language of announcements to the
+ conference. The language can be set on a bridge profile in confbridge.conf
+ or by the dialplan function CONFBRIDGE(bridge,language)=en.
+chan_sip - Clarify The "sip show peers" Forcerport Column And Add Comedia
+ - Under the "Forcerport" column, the "N" used to mean NAT (i.e. Yes). With
+ the additon of auto_* NAT settings, the meaning changed and there was a
+ certain combination of letters added to indicate the current setting. The
+ combination of using "Y", "N", "A" or "a", can be confusing. Therefore, we
+ now display clearly what the current Forcerport setting is: "Yes", "No",
+ "Auto (Yes)", "Auto (No)".
+ - Since we are clarifying the Forcerport column, we have added a column to
+ display the Comedia setting since this is useful information as well. We
+ no longer have a simple "NAT" setting like other versions before 11.
+
+From 11.5 to 11.6:
+* res_agi will now properly indicate if there was an error in streaming an
+ audio file. The result code will be -1 and the result returned from the
+ the function will be RESULT_FAILURE instead of the prior behavior of always
+ returning RESULT_SUCCESS even if there was an error.
+
+From 11.4 to 11.5:
+* The default settings for chan_sip are now overriden properly by the general
+ settings in sip.conf. Please look over your settings upon upgrading.
+
+From 11.3 to 11.4:
+* Added the 'n' option to MeetMe to prevent application of the DENOISE function
+ to a channel joining a conference. Some channel drivers that vary the number
+ of audio samples in a voice frame will experience significant quality problems
+ if a denoiser is attached to the channel; this option gives them the ability
+ to remove the denoiser without having to unload func_speex.
+
+* The Registry AMI event for SIP registrations will now always include the
+ Username field. A previous bug fix missed an instance where it was not
+ included; that has been corrected in this release.
+
+From 11.2.0 to 11.2.1:
+* Asterisk would previously not output certain error messages when a remote
+ console attempted to connect to Asterisk and no instance of Asterisk was
+ running. This error message is displayed on stderr; as a result, some
+ initialization scripts that used remote consoles to test for the presence
+ of a running Asterisk instance started to display erroneous error messages.
+ The init.d scripts and the safe_asterisk have been updated in the contrib
+ folder to account for this.
+
+From 11.2 to 11.3:
+
+* Now by default, when Asterisk is installed in a path other than /usr, the
+ Asterisk binary will search for shared libraries in ${libdir} in addition to
+ searching system libraries. This allows Asterisk to find its shared
+ libraries without having to specify LD_LIBRARY_PATH. This can be disabled by
+ passing --disable-rpath to configure.
+
+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:
- - The chan_sip module is now deprecated, users should migrate to the
- replacement module chan_pjsip. See guides at the Asterisk Wiki:
- https://wiki.asterisk.org/wiki/x/tAHOAQ
- https://wiki.asterisk.org/wiki/x/hYCLAQ
-
-func_callerid:
- - The CALLERPRES() dialplan function, deprecated in Asterisk 1.8, has been
- removed.
-
-res_parking:
- - The PARKINGSLOT channel variable, deprecated in Asterisk 12 in favor of the
- PARKING_SPACE channel variable, will no longer be set.
-
-res_xmpp:
- - The JabberStatus application, deprecated in Asterisk 12, has been removed.
-
-Channels:
- - The core no longer uses the stasis cache for channels snapshots.
- The following APIs are no longer available:
- ast_channel_topic_cached()
- ast_channel_topic_all_cached()
- The ast_channel_cache_all() and ast_channel_cache_by_name() functions
- now returns an ao2_container of ast_channel_snapshots rather than a
- container of stasis_messages therefore you can't call stasis_cache
- functions on it.
- The ast_channel_topic_all() function now returns a normal topic,
- not a cached one so you can't use stasis cache functions on it either.
- The ast_channel_snapshot_type() stasis message now has the
- ast_channel_snapshot_update structure as it's data.
- ast_channel_snapshot_get_latest() still returns the latest snapshot.
-
-Applications
- - The JabberStatus application, deprecated in Asterisk 12, has been removed.
-
-Bridging
- - The bridging core no longer uses the stasis cache for bridge
- snapshots. The latest bridge snapshot is now stored on the
- ast_bridge structure itself.
- - The following APIs are no longer available since the stasis cache
- is no longer used:
- ast_bridge_topic_cached()
- ast_bridge_topic_all_cached()
- - A topic pool is now used for individual bridge topics.
- - The ast_bridge_cache() function was removed since there's no
- longer a separate container of snapshots.
- - A new function "ast_bridges()" was created to retrieve the
- container of all bridges. Users formerly calling
- ast_bridge_cache() can use the new function to iterate over
- bridges and retrieve the latest snapshot directly from the
- bridge.
- - The ast_bridge_snapshot_get_latest() function was renamed to
- ast_bridge_get_snapshot_by_uniqueid().
- - A new function "ast_bridge_get_snapshot()" was created to retrieve
- the bridge snapshot directly from the bridge structure.
- - The ast_bridge_topic_all() function now returns a normal topic
- not a cached one so you can't use stasis cache functions on it
- either.
- - The ast_bridge_snapshot_type() stasis message now has the
- ast_bridge_snapshot_update structure as it's data. It contains
- the last snapshot and the new one.
+ - 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.
+
+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.
+
+From 10.4 to 10.5:
+
+* The complex processor detection and optimization has been removed from
+ the makefile in favor of using native optimization suppport when available.
+ BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
+
+From 10.2 to 10.3:
+
+* If no transport is specified in sip.conf, transport will default to UDP.
+ Also, if multiple transport= lines are used, only the last will be used.
+
+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.
+
+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.
+
+From 1.8.13 to 1.8.14:
+* permitdirectmedia/denydirectmedia now controls whether peers can be
+ bridged via directmedia by comparing the ACL to the bridging peer's
+ address rather than its own address.
+
+From 1.8.12 to 1.8.13:
+* The complex processor detection and optimization has been removed from
+ the makefile in favor of using native optimization suppport when available.
+ BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
+
+From 1.8.10 to 1.8.11:
+
+* If no transport is specified in sip.conf, transport will default to UDP.
+ Also, if multiple transport= lines are used, only the last will be used.
+
+From 1.6.2 to 1.8:
+
+* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
+ This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
+ This carries a performance penalty.
+
+* Asterisk now requires libpri 1.4.11+ for PRI support.
+
+* A couple of CLI commands in res_ais were changed back to their original form:
+ "ais show clm members" --> "ais clm show members"
+ "ais show evt event channels" --> "ais evt show event channels"
+
+* The default value for 'autofill' and 'shared_lastcall' in queues.conf has
+ been changed to 'yes'.
+
+* The default value for the alwaysauthreject option in sip.conf has been changed
+ from "no" to "yes".
+
+* The behavior of the 'parkedcallstimeout' has changed slightly. The formulation
+ of the extension name that a timed out parked call is delivered to when this
+ option is set to 'no' was modified such that instead of converting '/' to '0',
+ the '/' is converted to an underscore '_'. See the updated documentation in
+ features.conf.sample for more information on the behavior of the
+ 'parkedcallstimeout' option.
+
+* Asterisk-addons no longer exists as an independent package. Those modules
+ now live in the addons directory of the main Asterisk source tree. They
+ are not enabled by default. For more information about why modules live in
+ addons, see README-addons.txt.
+
+* The rarely used 'event_log' and LOG_EVENT channel have been removed; the few
+ users of this channel in the tree have been converted to LOG_NOTICE or removed
+ (in cases where the same message was already generated to another channel).
+
+* The usage of RTP inside of Asterisk has now become modularized. This means
+ the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.
+ If you are not using autoload=yes in modules.conf you will need to ensure
+ it is set to load. If not, then any module which uses RTP (such as chan_sip)
+ will not be able to send or receive calls.
+
+* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
+ remains. It now exists within app_chanspy.c and retains the exact same
+ functionality as before.
+
+* The default behavior for Set, AGI, and pbx_realtime has been changed to implement
+ 1.6 behavior by default, if there is no [compat] section in asterisk.conf. In
+ prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.
+ Specifically, that means that pbx_realtime and res_agi expect you to use commas
+ to separate arguments in applications, and Set only takes a single pair of
+ a variable name/value. The old 1.4 behavior may still be obtained by setting
+ app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of
+ asterisk.conf.
+
+* The PRI channels in chan_dahdi can no longer change the channel name if a
+ different B channel is selected during call negotiation. To prevent using
+ the channel name to infer what B channel a call is using and to avoid name
+ collisions, the channel name format is changed.
+ The new channel naming for PRI channels is:
+ DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number>
+
+* Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)
+ so the dialplan can determine the B channel currently in use by the channel.
+ Use CHANNEL(no_media_path) to determine if the channel even has a B channel.
+
+* Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk
+ channel so AMI applications can passively determine the B channel currently
+ in use. Calls with "no-media" as the DAHDIChannel do not have an associated
+ B channel. No-media calls are either on hold or call-waiting.
+
+* The ChanIsAvail application has been changed so the AVAILSTATUS variable
+ no longer contains both the device state and cause code. The cause code
+ is now available in the AVAILCAUSECODE variable. If existing dialplan logic
+ is written to expect AVAILSTATUS to contain the cause code it needs to be
+ changed to use AVAILCAUSECODE.
+
+* ExternalIVR will now send Z events for invalid or missing files, T events
+ now include the interrupted file and bugs in argument parsing have been
+ fixed so there may be arguments specified in incorrect ways that were
+ working that will no longer work. Please see
+ https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.
+
+* OSP lookup application changes following variable names:
+ OSPPEERIP to OSPINPEERIP
+ OSPTECH to OSPOUTTECH
+ OSPDEST to OSPDESTINATION
+ OSPCALLING to OSPOUTCALLING
+ OSPCALLED to OSPOUTCALLED
+ OSPRESULTS to OSPDESTREMAILS
+
+* The Manager event 'iax2 show peers' output has been updated. It now has a
+ similar output of 'sip show peers'.
+
+* VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position
+ of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
+ the current dialplan context.
+
+* The CALLERPRES() dialplan function is deprecated in favor of
+ CALLERID(num-pres) and CALLERID(name-pres).
+
+* Environment variables that start with "AST_" are reserved to the system and
+ may no longer be set from the dialplan.
+
+* When a call is redirected inside of a Dial, the app and appdata fields of the
+ CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.
+
+* The CDR handling of billsec and duration field has changed. If your table
+ definition specifies those fields as float,double or similar they will now
+ be logged with microsecond accuracy instead of a whole integer.
+
+* chan_sip will no longer set up a local call forward when receiving a
+ 482 Loop Detected response. The dialplan will just continue from where it
+ left off.
+
+* The 'stunaddr' option has been removed from chan_sip. This feature did not
+ behave as expected, had no correct use case, and was not RFC compliant. The
+ removal of this feature will hopefully be followed by a correct RFC compliant
+ STUN implementation in chan_sip in the future.
+
+* The default value for the pedantic option in sip.conf has been changed
+ from "no" to "yes".
+
+* The ConnectedLineNum and ConnectedLineName headers were added to many AMI
+ events/responses if the CallerIDNum/CallerIDName headers were also present.
+ The addition of connected line support changes the behavior of the channel
+ caller ID somewhat. The channel caller ID value no longer time shares with
+ the connected line ID on outgoing call legs. The timing of some AMI
+ events/responses output the connected line ID as caller ID. These party ID's
+ are now separate.
+
+* The Dial application d and H options do not automatically answer the call
+ anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones
+ cannot send DTMF before a call is connected, you need to answer the call
+ leg to those phones before using Dial with these options for them to have
+ any effect before the dialed party answers.
+
+* The outgoing directory (where .call files are read) now uses inotify to
+ detect file changes instead of polling the directory on a regular basis.
+ If your outgoing folder is on a NFS mount or another network file system,
+ changes to the files will not be detected. You can revert to polling the
+ directory by specifying --without-inotify to configure before compiling.
+
+* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
+ table with type 'user' for user type objects.
+
+* The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you
+ are using the early media DTMF overlap dialing method you now need to set
+ allowoverlap=dtmf.
+
+From 1.6.1 to 1.6.2:
+
+* SIP no longer sends the 183 progress message for early media by
+ default. Applications requiring early media should use the
+ progress() dialplan app to generate the progress message.
+
+* The firmware for the IAXy has been removed from Asterisk. It can be
+ downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk
+ install the firmware into its proper location, place the firmware in the
+ contrib/firmware/iax/ directory in the Asterisk source tree before running
+ "make install".
+
+* T.38 FAX error correction mode can no longer be configured in udptl.conf;
+ instead, it is configured on a per-peer (or global) basis in sip.conf, with
+ the same default as was present in udptl.conf.sample.
+
+* T.38 FAX maximum datagram size can no longer be configured in updtl.conf;
+ instead, it is either supplied by the application servicing the T.38 channel
+ (for a FAX send or receive) or calculated from the bridged endpoint's
+ maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf
+ allows for overriding the value supplied by a remote endpoint, which is useful
+ when T.38 connections are made to gateways that supply incorrectly-calculated
+ maximum datagram sizes.
+
+* There have been some changes to the IAX2 protocol to address the security
+ concerns documented in the security advisory AST-2009-006. Please see the
+ IAX2 security document, doc/IAX2-security.pdf, for information regarding
+ backwards compatibility with versions of Asterisk that do not contain these
+ changes to IAX2.
+
+* The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers
+ has been renamed to 'directmedia', to better reflect what it actually does.
+ In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,
+ starting and stopping music-on-hold, and other reasons, and the 'canreinvite'
+ option never had any effect on these cases, it only affected the re-INVITEs
+ used for direct media path setup. For MGCP and Skinny, the option was poorly
+ named because those protocols don't even use INVITE messages at all. For
+ backwards compatibility, the old option is still supported in both normal
+ and Realtime configuration files, but all of the sample configuration files,
+ Realtime/LDAP schemas, and other documentation refer to it using the new name.
+
+* The default console now will use colors according to the default background
+ color, instead of forcing the background color to black. If you are using a
+ light colored background for your console, you may wish to use the option
+ flag '-W' to present better color choices for the various messages. However,
+ if you'd prefer the old method of forcing colors to white text on a black
+ background, the compatibility option -B is provided for this purpose.
+
+* SendImage() no longer hangs up the channel on transmission error or on
+ any other error; in those cases, a FAILURE status is stored in
+ SENDIMAGESTATUS and dialplan execution continues. The possible
+ return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and
+ UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'
+ has been replaced with 'UNSUPPORTED'). This change makes the
+ SendImage application more consistent with other applications.
+
+* skinny.conf now has separate sections for lines and devices.
+ Please have a look at configs/skinny.conf.sample and update
+ your skinny.conf.
+
+* Queue names previously were treated in a case-sensitive manner,
+ meaning that queues with names like "sales" and "sALeS" would be
+ seen as unique queues. The parsing logic has changed to use
+ case-insensitive comparisons now when originally hashing based on
+ queue names, meaning that now the two queues mentioned as examples
+ earlier will be seen as having the same name.
+
+* The SPRINTF() dialplan function has been moved into its own module,
+ func_sprintf, and is no longer included in func_strings. If you use this
+ function and do not use 'autoload=yes' in modules.conf, you will need
+ to explicitly load func_sprintf for it to be available.
+
+* The res_indications module has been removed. Its functionality was important
+ enough that most of it has been moved into the Asterisk core.
+ Two applications previously provided by res_indications, PlayTones and
+ StopPlayTones, have been moved into a new module, app_playtones.
+
+* Support for Taiwanese was incorrectly supported with the "tw" language code.
+ In reality, the "tw" language code is reserved for the Twi language, native
+ to Ghana. If you were previously using the "tw" language code, you should
+ switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan
+ specific localizations. Additionally, "mx" should be changed to "es_MX",
+ Georgian was incorrectly specified as "ge" but should be "ka", and Czech is
+ "cs", not "cz".
+
+* DAHDISendCallreroutingFacility() parameters are now comma-separated,
+ instead of the old pipe.
+
+* res_jabber: autoprune has been disabled by default, to avoid misconfiguration
+ that would end up being interpreted as a bug once Asterisk started removing
+ the contacts from a user list.
+
+* The cdr.conf file must exist and be configured correctly in order for CDR
+ records to be written.
+
+* cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,
+ which should cover most uses of the extended ASCII set. If your strings
+ use a different encoding in Asterisk, the "encoding" parameter may be set
+ to specify the correct character set.
+
+From 1.6.0.1 to 1.6.1:
+
+* The ast_agi_register_multiple() and ast_agi_unregister_multiple()
+ API calls were added in 1.6.0, so that modules that provide multiple
+ AGI commands could register/unregister them all with a single
+ step. However, these API calls were not implemented properly, and did
+ not allow the caller to know whether registration or unregistration
+ succeeded or failed. They have been redefined to now return success
+ or failure, but this means any code using these functions will need
+ be recompiled after upgrading to a version of Asterisk containing
+ these changes. In addition, the source code using these functions
+ should be reviewed to ensure it can properly react to failure
+ of registration or unregistration of its API commands.
+
+* The ast_agi_fdprintf() API call has been renamed to ast_agi_send()
+ to better match what it really does, and the argument order has been
+ changed to be consistent with other API calls that perform similar
+ operations.
+
+From 1.6.0.x to 1.6.1:
+
+* In previous versions of Asterisk, due to the way objects were arranged in
+ memory by chan_sip, the order of entries in sip.conf could be adjusted to
+ control the behavior of matching against peers and users. The way objects
+ are managed has been significantly changed for reasons involving performance
+ and stability. A side effect of these changes is that the order of entries
+ in sip.conf can no longer be relied upon to control behavior.
+
+* The following core commands dealing with dialplan have been deprecated: 'core
+ show globals', 'core set global' and 'core set chanvar'. Use the equivalent
+ 'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'
+ instead.
+
+* In the dialplan expression parser, the logical value of spaces
+ immediately preceding a standalone 0 previously evaluated to
+ true. It now evaluates to false. This has confused a good many
+ people in the past (typically because they failed to realize the
+ space had any significance). Since this violates the Principle of
+ Least Surprise, it has been changed.
+
+* While app_directory has always relied on having a voicemail.conf or users.conf file
+ correctly set up, it now is dependent on app_voicemail being compiled as well.
+
+* SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),
+ and you should start using that function instead for retrieving information about
+ the channel in a technology-agnostic way.
+
+* If you have any third party modules which use a config file variable whose
+ name ends in a '+', please note that the append capability added to this
+ version may now conflict with that variable naming scheme. An easy
+ workaround is to ensure that a space occurs between the '+' and the '=',
+ to differentiate your variable from the append operator. This potential
+ conflict is unlikely, but is documented here to be thorough.
+
+* The "Join" event from app_queue now uses the CallerIDNum header instead of
+ the CallerID header to indicate the CallerID number.
+
+* If you use ODBC storage for voicemail, there is a new field called "flag"
+ which should be a char(8) or larger. This field specifies whether or not a
+ message has been designated to be "Urgent", "PRIORITY", or not.
+
+From 1.4 to 1.6:
+
+AEL:
+
+* Macros are now implemented underneath with the Gosub() application.
+ Heaven Help You if you wrote code depending on any aspect of this!
+ Previous to 1.6, macros were implemented with the Macro() app, which
+ provided a nice feature of auto-returning. The compiler will do its
+ best to insert a Return() app call at the end of your macro if you did
+ not include it, but really, you should make sure that all execution
+ paths within your macros end in "return;".
+
+* The conf2ael program is 'introduced' in this release; it is in a rather
+ crude state, but deemed useful for making a first pass at converting
+ extensions.conf code into AEL. More intelligence will come with time.
+
+Core:
+
+* The 'languageprefix' option in asterisk.conf is now deprecated, and
+ the default sound file layout for non-English sounds is the 'new
+ style' layout introduced in Asterisk 1.4 (and used by the automatic
+ sound file installer in the Makefile).
+
+* The ast_expr2 stuff has been modified to handle floating-point numbers.
+ Numbers of the format D.D are now acceptable input for the expr parser,
+ Where D is a string of base-10 digits. All math is now done in "long double",
+ if it is available on your compiler/architecture. This was half-way between
+ a bug-fix (because the MATH func returns fp by default), and an enhancement.
+ Also, for those counting on, or needing, integer operations, a series of
+ 'functions' were also added to the expr language, to allow several styles
+ of rounding/truncation, along with a set of common floating point operations,
+ like sin, cos, tan, log, pow, etc. The ability to call external functions
+ like CDR(), etc. was also added, without having to use the ${...} notation.
+
+* The delimiter passed to applications has been changed to the comma (','), as
+ that is what people are used to using within extensions.conf. If you are
+ using realtime extensions, you will need to translate your existing dialplan
+ to use this separator. To use a literal comma, you need merely to escape it
+ with a backslash ('\'). Another possible side effect is that you may need to
+ remove the obscene level of backslashing that was necessary for the dialplan
+ to work correctly in 1.4 and previous versions. This should make writing
+ dialplans less painful in the future, albeit with the pain of a one-time
+ conversion. If you would like to avoid this conversion immediately, set
+ pbx_realtime=1.4 in the [compat] section of asterisk.conf. After
+ transitioning, set pbx_realtime=1.6 in the same section.
+
+* For the same purpose as above, you may set res_agi=1.4 in the [compat]
+ section of asterisk.conf to continue to use the '|' delimiter in the EXEC
+ arguments of AGI applications. After converting to use the ',' delimiter,
+ change this option to res_agi=1.6.
+
+* As a side effect of the application delimiter change, many places that used
+ to need quotes in order to get the proper meaning are no longer required.
+ You now only need to quote strings in configuration files if you literally
+ want quotation marks within a string.
+
+* Any applications run that contain the pipe symbol but not a comma symbol will
+ get a warning printed to the effect that the application delimiter has changed.
+ However, there are legitimate reasons why this might be useful in certain
+ situations, so this warning can be turned off with the dontwarn option in
+ asterisk.conf.
+
+* The logger.conf option 'rotatetimestamp' has been deprecated in favor of
+ 'rotatestrategy'. This new option supports a 'rotate' strategy that more
+ closely mimics the system logger in terms of file rotation.
+
+* The concise versions of various CLI commands are now deprecated. We recommend
+ using the manager interface (AMI) for application integration with Asterisk.
+
+Voicemail:
+
+* The voicemail configuration values 'maxmessage' and 'minmessage' have
+ been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
+ to make them more distinguishable from 'maxmsgs', which sets folder
+ size. The old variables will continue to work in this version, albeit
+ with a deprecation warning.
+
+* If you use any interface for modifying voicemail aside from the built in
+ dialplan applications, then the option "pollmailboxes" *must* be set in
+ voicemail.conf for message waiting indication (MWI) to work properly. This
+ is because Voicemail notification is now event based instead of polling
+ based. The channel drivers are no longer responsible for constantly manually
+ checking mailboxes for changes so that they can send MWI information to users.
+ Examples of situations that would require this option are web interfaces to
+ voicemail or an email client in the case of using IMAP storage.
+
+Applications:
+
+
+* ChanIsAvail() now has a 't' option, which allows the specified device
+ to be queried for state without consulting the channel drivers. This
+ performs mostly a 'ChanExists' sort of function.
+
+* ChannelRedirect() will not terminate the channel that fails to do a
+ channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
+ will reflect if the attempt was successful of not.
+
+* SetCallerPres() has been replaced with the CALLERPRES() dialplan function
+ and is now deprecated.
+
+* DISA()'s fifth argument is now an options argument. If you have previously
+ used 'NOANSWER' in this argument, you'll need to convert that to the new
+ option 'n'.
+
+* Macro() is now deprecated. If you need subroutines, you should use the
+ Gosub()/Return() applications. To replace MacroExclusive(), we have
+ introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use
+ these functions in any location where you desire to ensure that only one
+ channel is executing that path at any one time. The Macro() applications
+ are deprecated for performance reasons. However, since Macro() has been
+ around for a long time and so many dialplans depend heavily on it, for the
+ sake of backwards compatibility it will not be removed . It is also worth
+ noting that using both Macro() and GoSub() at the same time is _heavily_
+ discouraged.
+
+* Read() now sets a READSTATUS variable on exit. It does NOT automatically
+ return -1 (and hangup) anymore on error. If you want to hangup on error,
+ you need to do so explicitly in your dialplan.
+
+* Privacy() no longer uses privacy.conf, so any options must be specified
+ directly in the application arguments.
+
+* MusicOnHold application now has duration parameter which allows specifying
+ timeout in seconds.
+
+* WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
+
+* SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
+ instead.
+
+* The arguments in ExecIf changed a bit, to be more like other applications.
+ The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).
+
+* The behavior of the Set application now depends upon a compatibility option,
+ set in asterisk.conf. To use the old 1.4 behavior, which allowed Set to take
+ multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf. To
+ use the new behavior, which permits variables to be set with embedded commas,
+ set app_set=1.6 in [compat] in asterisk.conf. Note that you can have both
+ behaviors at the same time, if you switch to using MSet if you want the old
+ behavior.
+
+Dialplan Functions:
+
+* QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
+ more information, issue a "show function QUEUE_MEMBER" from the CLI.
+
+CDR:
+
+* The cdr_sqlite module has been marked as deprecated in favor of
+ cdr_sqlite3_custom. It will potentially be removed from the tree
+ after Asterisk 1.6 is released.
+
+* The cdr_odbc module now uses res_odbc to manage its connections. The
+ username and password parameters in cdr_odbc.conf, therefore, are no
+ longer used. The dsn parameter now points to an entry in res_odbc.conf.
+
+* The uniqueid field in the core Asterisk structure has been changed from a
+ maximum 31 character field to a 149 character field, to account for all
+ possible values the systemname prefix could be. In the past, if the
+ systemname was too long, the uniqueid would have been truncated.
+
+* The cdr_tds module now supports all versions of FreeTDS that contain
+ the db-lib frontend. It will also now log the userfield variable if
+ the target database table contains a column for it.
+
+Formats:
+
+* format_wav: The GAIN preprocessor definition and source code that used it
+ is removed. This change was made in response to user complaints of
+ choppiness or the clipping of loud signal peaks. To increase the volume
+ of voicemail messages, use the 'volgain' option in voicemail.conf
+
+Channel Drivers:
+
+* SIP: a small upgrade to support the "Record" button on the SNOM360,
+ which sends a sip INFO message with a "Record: on" or "Record: off"
+ header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"
+ requests (by default, via '*1'), then the user-configured dialpad sequence
+ is generated, and recording can be started and stopped via this button. The
+ file names and formats are all controlled via the normal mechanisms. If the
+ user has not configured the automon feature, the normal "415 Unsupported media type"
+ is returned, and nothing is done.
+
+* SIP: The "call-limit" option is marked as deprecated. It still works in this version of
+ Asterisk, but will be removed in the following version. Please use the groupcount functions
+ in the dialplan to enforce call limits. The "limitonpeer" configuration option is
+ now renamed to "counteronpeer".
+
+* SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".
+ These are used only before registration to call a peer with the uri
+ sip:defaultuser@defaultip
+ The "username" setting still work, but is deprecated and will not work in
+ the next version of Asterisk.
+
+* SIP: The old "insecure" options, deprecated in 1.4, have been removed.
+ "insecure=very" should be changed to "insecure=port,invite"
+ "insecure=yes" should be changed to "insecure=port"
+ Be aware that some telephony providers show the invalid syntax in their
+ sample configurations.
+
+* chan_local.c: the comma delimiter inside the channel name has been changed to a
+ semicolon, in order to make the Local channel driver compatible with the comma
+ delimiter change in applications.
+
+* H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"
+ to be compatible with settings in sip.conf. The "tos" and "cos" configuration
+ is deprecated and will stop working in the next release of Asterisk.
+
+* Console: A new console channel driver, chan_console, has been added to Asterisk.
+ This new module can not be loaded at the same time as chan_alsa or chan_oss. The
+ default modules.conf only loads one of them (chan_oss by default). So, unless you
+ have modified your modules.conf to not use the autoload option, then you will need
+ to modify modules.conf to add another "noload" line to ensure that only one of
+ these three modules gets loaded.
+
+* DAHDI: The chan_zap module that supported PSTN interfaces using
+ Zaptel has been renamed to chan_dahdi, and only supports the DAHDI
+ telephony driver package for PSTN interfaces. See the
+ Zaptel-to-DAHDI.txt file for more details on this transition.
+
+* DAHDI: The "msdstrip" option has been deprecated, as it provides no value over
+ the method of stripping digits in the dialplan using variable substring syntax.
+
+Configuration:
+
+* pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
+ lowcost and other is not acceptable now. Look into qos.tex for description of
+ this parameter.
+
+* queues.conf: the queue-lessthan sound file option is no longer available, and the
+ queue-round-seconds option no longer takes '1' as a valid parameter.
+
+Manager:
+
+* Manager has been upgraded to version 1.1 with a lot of changes.
+ Please check doc/manager_1_1.txt for information
+
+* The IAXpeers command output has been changed to more closely resemble the
+ output of the SIPpeers command.
+
+* cdr_manager now reports at the "cdr" level, not at "call" You may need to
+ change your manager.conf to add the level to existing AMI users, if they
+ want to see the CDR events generated.
+
+* The Originate command now requires the Originate write permission. For
+ Originate with the Application parameter, you need the additional System
+ privilege if you want to do anything that calls out to a subshell.
+
+iLBC Codec:
+
+* Previously, the Asterisk source code distribution included the iLBC
+ encoder/decoder source code, from Global IP Solutions
+ (http://www.gipscorp.com). This code is not licensed for
+ distribution, and thus has been removed from the Asterisk source
+ code distribution. If you wish to use codec_ilbc to support iLBC
+ channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh
+ script to download the source and put it in the proper place in
+ the Asterisk build tree. Once that is done you can follow your normal
+ steps of building Asterisk. You will need to run 'menuselect' and enable
+ the iLBC codec in the 'Codec Translators' category.
+
+From 1.2 to 1.4:
+
+Build Process (configure script):
+
+Asterisk now uses an autoconf-generated configuration script to learn how it
+should build itself for your system. As it is a standard script, running:
+
+$ ./configure --help
+
+will show you all the options available. This script can be used to tell the
+build process what libraries you have on your system (if it cannot find them
+automatically), which libraries you wish to have ignored even though they may
+be present, etc.
+
+You must run the configure script before Asterisk will build, although it will
+attempt to automatically run it for you with no options specified; for most
+users, that will result in a similar build to what they would have had before
+the configure script was added to the build process (except for having to run
+'make' again after the configure script is run). Note that the configure script
+does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it
+when your system configuration changes or you wish to build Asterisk with
+different options.
+
+Build Process (module selection):
+
+The Asterisk source tree now includes a basic module selection and build option
+selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
+In this tool, you can disable building of modules that you don't care about,
+turn on/off global options for the build and see which modules will not
+(and cannot) be built because your system does not have the required external
+dependencies installed.
+
+The resulting file from menuselect is called 'menuselect.makeopts'. Note that
+the resulting menuselect.makeopts file generally contains which modules *not*
+to build. The modules listed in this file indicate which modules have unmet
+dependencies, a present conflict, or have been disabled by the user in the
+menuselect interface. Compiler Flags can also be set in the menuselect
+interface. In this case, the resulting file contains which CFLAGS are in use,
+not which ones are not in use.
+
+If you would like to save your choices and have them applied against all
+builds, the file can be copied to '~/.asterisk.makeopts' or
+'/etc/asterisk.makeopts'.
+
+Build Process (Makefile targets):
+
+The 'valgrind' and 'dont-optimize' targets have been removed; their functionality
+is available by enabling the DONT_OPTIMIZE setting in the 'Compiler Flags' menu
+in the menuselect tool.
+
+It is now possible to run most make targets against a single subdirectory; from
+the top level directory, for example, 'make channels' will run 'make all' in the
+'channels' subdirectory. This also is true for 'clean', 'distclean' and 'depend'.
+
+Sound (prompt) and Music On Hold files:
+
+Beginning with Asterisk 1.4, the sound files and music on hold files supplied for
+use with Asterisk have been replaced with new versions produced from high quality
+master recordings, and are available in three languages (English, French and
+Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).
+In addition, the music on hold files provided by opsound.org Music are now available
+in the same five formats, but no longer available in MP3 format.
+
+The Asterisk 1.4 tarball packages will only include English prompts in GSM format,
+(as were supplied with previous releases) and the opsound.org MOH files in WAV format.
+All of the other variations can be installed by running 'make menuselect' and
+selecting the packages you wish to install; when you run 'make install', those
+packages will be downloaded and installed along with the standard files included
+in the tarball.
+
+If for some reason you expect to not have Internet access at the time you will be
+running 'make install', you can make your package selections using menuselect and
+then run 'make sounds' to download (only) the sound packages; this will leave the
+sound packages in the 'sounds' subdirectory to be used later during installation.
+
+WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;
+instead of the alternate-language files being stored in subdirectories underneath
+the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,
+etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the
+language itself, then places all the sound files for that language under that
+directory and its subdirectories. This is the layout that will be created if you
+select non-English languages to be installed via menuselect, HOWEVER Asterisk does
+not default to this layout and will not find the files in the places it expects them
+to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your
+/etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were
+installed.
+
+PBX Core:
+
+* The (very old and undocumented) ability to use BYEXTENSION for dialing
+ instead of ${EXTEN} has been removed.
+
+* Builtin (res_features) transfer functionality attempts to use the context
+ defined in TRANSFER_CONTEXT variable of the transferer channel first. If
+ not set, it uses the transferee variable. If not set in any channel, it will
+ attempt to use the last non macro context. If not possible, it will default
+ to the current context.
+
+* The autofallthrough setting introduced in Asterisk 1.2 now defaults to 'yes';
+ if your dialplan relies on the ability to 'run off the end' of an extension
+ and wait for a new extension without using WaitExten() to accomplish that,
+ you will need set autofallthrough to 'no' in your extensions.conf file.
+
+Command Line Interface:
+
+* 'show channels concise', designed to be used by applications that will parse
+ its output, previously used ':' characters to separate fields. However, some
+ of those fields can easily contain that character, making the output not
+ parseable. The delimiter has been changed to '!'.
+
+Applications:
+
+* In previous Asterisk releases, many applications would jump to priority n+101
+ to indicate some kind of status or error condition. This functionality was
+ marked deprecated in Asterisk 1.2. An option to disable it was provided with
+ the default value set to 'on'. The default value for the global priority
+ jumping option is now 'off'.
+
+* The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
+ AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
+ and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
+ been removed in this version. You should use the equivalent dialplan
+ function in places where you have previously used one of these applications.
+
+* The application SetGlobalVar has been deprecated. You should replace uses
+ of this application with the following combination of Set and GLOBAL():
+ Set(GLOBAL(name)=value). You may also access global variables exclusively by
+ using the GLOBAL() dialplan function, instead of relying on variable
+ interpolation falling back to globals when no channel variable is set.
+
+* The application SetVar has been renamed to Set. The syntax SetVar was marked
+ deprecated in version 1.2 and is no longer recognized in this version. The
+ use of Set with multiple argument pairs has also been deprecated. Please
+ separate each name/value pair into its own dialplan line.
+
+* app_read has been updated to use the newer options codes, using "skip" or
+ "noanswer" will not work. Use s or n. Also there is a new feature i, for
+ using indication tones, so typing in skip would give you unexpected results.
+
+* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
+
+* The CONNECT event in the queue_log from app_queue now has a second field
+ in addition to the holdtime field. It contains the unique ID of the
+ queue member channel that is taking the call. This is useful when trying
+ to link recording filenames back to a particular call from the queue.
+
+* The old/current behavior of app_queue has a serial type behavior
+ in that the queue will make all waiting callers wait in the queue
+ even if there is more than one available member ready to take
+ calls until the head caller is connected with the member they
+ were trying to get to. The next waiting caller in line then
+ becomes the head caller, and they are then connected with the
+ next available member and all available members and waiting callers
+ waits while this happens. This cycle continues until there are
+ no more available members or waiting callers, whichever comes first.
+ The new behavior, enabled by setting autofill=yes in queues.conf
+ either at the [general] level to default for all queues or
+ to set on a per-queue level, makes sure that when the waiting
+ callers are connecting with available members in a parallel fashion
+ until there are no more available members or no more waiting callers,
+ whichever comes first. This is probably more along the lines of how
+ one would expect a queue should work and in most cases, you will want
+ to enable this new behavior. If you do not specify or comment out this
+ option, it will default to "no" to keep backward compatability with the old
+ behavior.
+
+* Queues depend on the channel driver reporting the proper state
+ for each member of the queue. To get proper signalling on
+ queue members that use the SIP channel driver, you need to
+ enable a call limit (could be set to a high value so it
+ is not put into action) and also make sure that both inbound
+ and outbound calls are accounted for.
+
+ Example:
+
+ [general]
+ limitonpeer = yes
+
+ [peername]
+ type=friend
+ call-limit=10
+
+
+* The app_queue application now has the ability to use MixMonitor to
+ record conversations queue members are having with queue callers. Please
+ see configs/queues.conf.sample for more information on this option.
+
+* The app_queue application strategy called 'roundrobin' has been deprecated
+ for this release. Users are encouraged to use 'rrmemory' instead, since it
+ provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,
+ 'rrmemory' will be renamed 'roundrobin'.
+
+* The app_queue application option called 'monitor-join' has been deprecated
+ for this release. Users are encouraged to use 'monitor-type=mixmonitor' instead,
+ since it provides the same functionality but is not dependent on soxmix or some
+ other external program in order to mix the audio.
+
+* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
+ the 'm' option now provides the functionality of "initially muted".
+ In practice, most existing dialplans using the 'm' flag should not notice
+ any difference, unless the keypad menu is enabled, allowing the user
+ to unmute themsleves.
+
+* ast_play_and_record would attempt to cancel the recording if a DTMF
+ '0' was received. This behavior was not documented in most of the
+ applications that used ast_play_and_record and the return codes from
+ ast_play_and_record weren't checked for properly.
+ ast_play_and_record has been changed so that '0' no longer cancels a
+ recording. If you want to allow DTMF digits to cancel an
+ in-progress recording use ast_play_and_record_full which allows you
+ to specify which DTMF digits can be used to accept a recording and
+ which digits can be used to cancel a recording.
+
+* ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a
+ new ast_app_messagecount function which takes a single context/mailbox/folder
+ mailbox specification and returns the message count for that folder only.
+ This addresses the deficiency of not being able to count the number of
+ messages in folders other than INBOX and Old.
+
+* The exit behavior of the AGI applications has changed. Previously, when
+ a connection to an AGI server failed, the application would cause the channel
+ to immediately stop dialplan execution and hangup. Now, the only time that
+ the AGI applications will cause the channel to stop dialplan execution is
+ when the channel itself requests hangup. The AGI applications now set an
+ AGISTATUS variable which will allow you to find out whether running the AGI
+ was successful or not.
+
+ Previously, there was no way to handle the case where Asterisk was unable to
+ locally execute an AGI script for some reason. In this case, dialplan
+ execution will continue as it did before, but the AGISTATUS variable will be
+ set to "FAILURE".
+
+ A locally executed AGI script can now exit with a non-zero exit code and this
+ failure will be detected by Asterisk. If an AGI script exits with a non-zero
+ exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to
+ "SUCCESS".
+
+* app_voicemail: The ODBC_STORAGE capability now requires the extended table format
+ previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update
+ your table format using the schema provided in doc/odbcstorage.txt
+
+* app_waitforsilence: Fixes have been made to this application which changes the
+ default behavior with how quickly it returns. You can maintain "old-style" behavior
+ with the addition/use of a third "timeout" parameter.
+ Please consult the application documentation and make changes to your dialplan
+ if appropriate.
+
+Manager:
+
+* After executing the 'status' manager action, the "Status" manager events
+ included the header "CallerID:" which was actually only the CallerID number,
+ and not the full CallerID string. This header has been renamed to
+ "CallerIDNum". For compatibility purposes, the CallerID parameter will remain
+ until after the release of 1.4, when it will be removed. Please use the time
+ during the 1.4 release to make this transition.
+
+* The AgentConnect event now has an additional field called "BridgedChannel"
+ which contains the unique ID of the queue member channel that is taking the
+ call. This is useful when trying to link recording filenames back to
+ a particular call from the queue.
+
+* app_userevent has been modified to always send Event: UserEvent with the
+ additional header UserEvent: <userspec>. Also, the Channel and UniqueID
+ headers are not automatically sent, unless you specify them as separate
+ arguments. Please see the application help for the new syntax.
+
+* app_meetme: Mute and Unmute events are now reported via the Manager API.
+ Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which
+ are easier to use than "Action Command:". The MeetMeStopTalking event has
+ also been deprecated in favor of the already existing MeetmeTalking event
+ with a "Status" of "on" or "off" added.
+
+* OriginateFailure and OriginateSuccess events were replaced by event
+ OriginateResponse with a header named "Response" to indicate success or
+ failure
+
+Variables:
+
+* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
+ ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
+ and ${LANGUAGE} have all been deprecated in favor of their related dialplan
+ functions. You are encouraged to move towards the associated dialplan
+ function, as these variables will be removed in a future release.
+
+* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
+ adjustable from cdr.conf, instead of recompiling.
+
+* OSP applications exports several new variables, ${OSPINHANDLE},
+ ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
+ ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
+
+* Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new
+ created channel. This variables holds the channel name of the transferer.
+
+* The dial plan variable PRI_CAUSE will be removed from future versions
+ of Asterisk.
+ It is replaced by adding a cause value to the hangup() application.
+
+Functions:
+
+* The function ${CHECK_MD5()} has been deprecated in favor of using an
+ expression: $[${MD5(<string>)} = ${saved_md5}].
+
+* The 'builtin' functions that used to be combined in pbx_functions.so are
+ now built as separate modules. If you are not using 'autoload=yes' in your
+ modules.conf file then you will need to explicitly load the modules that
+ contain the functions you want to use.
+
+* The ENUMLOOKUP() function with the 'c' option (for counting the number of
+ records), but the lookup fails to match any records, the returned value will
+ now be "0" instead of blank.
+
+* The REALTIME() function is now available in version 1.4 and app_realtime has
+ been deprecated in favor of the new function. app_realtime will be removed
+ completely with the version 1.6 release so please take the time between
+ releases to make any necessary changes
+
+* The QUEUEAGENTCOUNT() function has been deprecated in favor of
+ QUEUE_MEMBER_COUNT().
+
+The IAX2 channel:
+
+* It is possible that previous configurations depended on the order in which
+ peers and users were specified in iax.conf for forcing the order in which
+ chan_iax2 matched against them. This behavior is going away and is considered
+ deprecated in this version. Avoid having ambiguous peer and user entries and
+ to make things easy on yourself, always set the "username" option for users
+ so that the remote end can match on that exactly instead of trying to infer
+ which user you want based on host.
+
+ If you would like to go ahead and use the new behavior which doesn't use the
+ order in the config file to influence matching order, then change the
+ MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one. An
+ example is provided there. By changing this, you will get *much* better
+ performance on systems that do a lot of peer and user lookups as they will be
+ stored in memory in a much more efficient manner.
+
+* The "mailboxdetail" option has been deprecated. Previously, if this option
+ was not enabled, the 2 byte MSGCOUNT information element would be set to all
+ 1's to indicate there there is some number of messages waiting. With this
+ option enabled, the number of new messages were placed in one byte and the
+ number of old messages are placed in the other. This is now the default
+ (and the only) behavior.
+
+The SIP channel:
+
+* The "incominglimit" setting is replaced by the "call-limit" setting in
+ sip.conf.
+
+* OSP support code is removed from SIP channel to OSP applications. ospauth
+ option in sip.conf is removed to osp.conf as authpolicy. allowguest option
+ in sip.conf cannot be set as osp anymore.
+
+* The Asterisk RTP stack has been changed in regards to RFC2833 reception
+ and transmission. Packets will now be sent with proper duration instead of all
+ at once. If you are receiving calls from a pre-1.4 Asterisk installation you
+ will want to turn on the rfc2833compensate option. Without this option your
+ DTMF reception may act poorly.
+
+* The $SIPUSERAGENT dialplan variable is deprecated and will be removed
+ in coming versions of Asterisk. Please use the dialplan function
+ SIPCHANINFO(useragent) instead.
+
+* The ALERT_INFO dialplan variable is deprecated and will be removed
+ in coming versions of Asterisk. Please use the dialplan application
+ sipaddheader() to add the "Alert-Info" header to the outbound invite.
+
+* The "canreinvite" option has changed. canreinvite=yes used to disable
+ re-invites if you had NAT=yes. In 1.4, you need to set canreinvite=nonat
+ to disable re-invites when NAT=yes. This is propably what you want.
+ The settings are now: "yes", "no", "nonat", "update". Please consult
+ sip.conf.sample for detailed information.
+
+The Zap channel:
+
+* Support for MFC/R2 has been removed, as it has not been functional for some
+ time and it has no maintainer.
+
+The Agent channel:
+
+* Callback mode (AgentCallbackLogin) is now deprecated, since the entire function
+ it provided can be done using dialplan logic, without requiring additional
+ channel and module locks (which frequently caused deadlocks). An example of
+ how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.
+
+The G726-32 codec:
+
+* It has been determined that previous versions of Asterisk used the wrong codeword
+ packing order for G726-32 data. This version supports both available packing orders,
+ and can transcode between them. It also now selects the proper order when
+ negotiating with a SIP peer based on the codec name supplied in the SDP. However,
+ there are existing devices that improperly request one order and then use another;
+ Sipura and Grandstream ATAs are known to do this, and there may be others. To
+ be able to continue to use these devices with this version of Asterisk and the
+ G726-32 codec, a configuration parameter called 'g726nonstandard' has been added
+ to sip.conf, so that Asterisk can use the packing order expected by the device (even
+ though it requested a different order). In addition, the internal format number for
+ G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The
+ result of this is that this version of Asterisk will be able to interoperate over
+ IAX2 with older versions of Asterisk, as long as this version is told to allow
+ 'g726aal2' instead of 'g726' as the codec for the call.
+
+Installation:
+
+* On BSD systems, the installation directories have changed to more "FreeBSDish"
+ directories. On startup, Asterisk will look for the main configuration in
+ /usr/local/etc/asterisk/asterisk.conf
+ If you have an old installation, you might want to remove the binaries and
+ move the configuration files to the new locations. The following directories
+ are now default:
+ ASTLIBDIR /usr/local/lib/asterisk
+ ASTVARLIBDIR /usr/local/share/asterisk
+ ASTETCDIR /usr/local/etc/asterisk
+ ASTBINDIR /usr/local/bin/asterisk
+ ASTSBINDIR /usr/local/sbin/asterisk
+
+Music on Hold:
+
+* The music on hold handling has been changed in some significant ways in hopes
+ to make it work in a way that is much less confusing to users. Behavior will
+ not change if the same configuration is used from older versions of Asterisk.
+ However, there are some new configuration options that will make things work
+ in a way that makes more sense.
+
+ Previously, many of the channel drivers had an option called "musicclass" or
+ something similar. This option set what music on hold class this channel
+ would *hear* when put on hold. Some people expected (with good reason) that
+ this option was to configure what music on hold class to play when putting
+ the bridged channel on hold. This option has now been deprecated.
+
+ Two new music on hold related configuration options for channel drivers have
+ been introduced. Some channel drivers support both options, some just one,
+ and some support neither of them. Check the sample configuration files to see
+ which options apply to which channel driver.
+
+ The "mohsuggest" option specifies which music on hold class to suggest to the
+ bridged channel when putting them on hold. The only way that this class can
+ be overridden is if the bridged channel has a specific music class set that
+ was done in the dialplan using Set(CHANNEL(musicclass)=something).
+
+ The "mohinterpret" option is similar to the old "musicclass" option. It
+ specifies which music on hold class this channel would like to listen to when
+ put on hold. This music class is only effective if this channel has no music
+ class set on it from the dialplan and the bridged channel putting this one on
+ hold had no "mohsuggest" setting.
+
+ The IAX2 and Zap channel drivers have an additional feature for the
+ "mohinterpret" option. If this option is set to "passthrough", then these
+ channel drivers will pass through the HOLD message in signalling instead of
+ starting music on hold on the channel. An example for how this would be
+ useful is in an enterprise network of Asterisk servers. When one phone on one
+ server puts a phone on a different server on hold, the remote server will be
+ responsible for playing the hold music to its local phone that was put on
+ hold instead of the far end server across the network playing the music.
+
+CDR Records:
+
+* The behavior of the "clid" field of the CDR has always been that it will
+ contain the callerid ANI if it is set, or the callerid number if ANI was not
+ set. When using the "callerid" option for various channel drivers, some
+ would set ANI and some would not. This has been cleared up so that all
+ channel drivers set ANI. If you would like to change the callerid number
+ on the channel from the dialplan and have that change also show up in the
+ CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).
+
+API:
+
+* There are some API functions that were not previously prefixed with the 'ast_'
+ prefix but now are; these include the ADSI, ODBC and AGI interfaces. If you
+ have a module that uses the services provided by res_adsi, res_odbc, or
+ res_agi, you will need to add ast_ prefixes to the functions that you call
+ from those modules.
+
+Formats:
+
+* format_wav: The GAIN preprocessor definition has been changed from 2 to 0
+ in Asterisk 1.4. This change was made in response to user complaints of
+ choppiness or the clipping of loud signal peaks. The GAIN preprocessor
+ definition will be retained in Asterisk 1.4, but will be removed in a
+ future release. The use of GAIN for the increasing of voicemail message
+ volume should use the 'volgain' option in voicemail.conf
+
+From 1.0 to 1.2:
+
+Compiling:
+
+* The Asterisk 1.2 source code now uses C language features
+ supported only by 'modern' C compilers. Generally, this means GCC
+ version 3.0 or higher, although some GCC 2.96 releases will also
+ work. Some non-GCC compilers that support C99 and the common GCC
+ extensions (including anonymous structures and unions) will also
+ work. All releases of GCC 2.95 do _not_ have the requisite feature
+ support; systems using that compiler will need to be upgraded to
+ a more recent compiler release.
+
+Dialplan Expressions:
+
+* The dialplan expression parser (which handles $[ ... ] constructs)
+ has gone through a major upgrade, but has one incompatible change:
+ spaces are no longer required around expression operators, including
+ string comparisons. However, you can now use quoting to keep strings
+ together for comparison. For more details, please read the
+ doc/README.variables file, and check over your dialplan for possible
+ problems.
+
+Agents:
+
+* The default for ackcall has been changed to "no" instead of "yes"
+ because of a bug which caused the "yes" behavior to generally act like
+ "no". You may need to adjust the value if your agents behave
+ differently than you expect with respect to acknowledgement.
+
+* The AgentCallBackLogin application now requires a second '|' before
+ specifying an extension@context. This is to distinguish the options
+ string from the extension, so that they do not conflict. See
+ 'show application AgentCallbackLogin' for more details.
+
+Parking:
+
+* Parking behavior has changed slightly; when a parked call times out,
+ Asterisk will attempt to deliver the call back to the extension that
+ parked it, rather than the 's' extension. If that extension is busy
+ or unavailable, the parked call will be lost.
+
+Dialing:
+
+* The Caller*ID of the outbound leg is now the extension that was
+ called, rather than the Caller*ID of the inbound leg of the call. The
+ "o" flag for Dial can be used to restore the original behavior if
+ desired. Note that if you are looking for the originating callerid
+ from the manager event, there is a new manager event "Dial" which
+ provides the source and destination channels and callerid.
+
+IAX:
+
+* The naming convention for IAX channels has changed in two ways:
+ 1. The call number follows a "-" rather than a "/" character.
+ 2. The name of the channel has been simplified to IAX2/peer-callno,
+ rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
+
+SIP:
+
+* The global option "port" in 1.0.X that is used to set which port to
+ bind to has been changed to "bindport" to be more consistent with
+ the other channel drivers and to avoid confusion with the "port"
+ option for users/peers.
+
+* The "Registry" event now uses "Username" rather than "User" for
+ consistency with IAX.
+
+Applications:
+
+* With the addition of dialplan functions (which operate similarly
+ to variables), the SetVar application has been renamed to Set.
+
+* The CallerPres application has been removed. Use SetCallerPres
+ instead. It accepts both numeric and symbolic names.
+
+* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
+ CheckGroup have been deprecated in favor of functions. Here is a
+ table of their replacements:
+
+ GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})
+ GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
+ SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)
+ CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
+
+ Note that CheckGroup does not have a direct replacement. There is
+ also a new function called GROUP_LIST() which will return a space
+ separated list of all of the groups set on a channel. The GROUP()
+ function can also return the name of the group set on a channel when
+ used in a read environment.
+
+* The applications DBGet and DBPut have been deprecated in favor of
+ functions. Here is a table of their replacements:
+
+ DBGet(foo=family/key) Set(foo=${DB(family/key)})
+ DBPut(family/key=${foo}) Set(DB(family/key)=${foo})
+
+* The application SetLanguage has been deprecated in favor of the
+ function LANGUAGE().
+
+ SetLanguage(fr) Set(LANGUAGE()=fr)
+
+ The LANGUAGE function can also return the currently set language:
+
+ Set(MYLANG=${LANGUAGE()})
+
+* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
+ have been deprecated in favor of the function TIMEOUT(timeouttype):
+
+ AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)
+ DigitTimeout(15) Set(TIMEOUT(digit)=15)
+ ResponseTimeout(15) Set(TIMEOUT(response)=15)
+
+ The TIMEOUT() function can also return the currently set timeouts:
+
+ Set(DTIMEOUT=${TIMEOUT(digit)})
+
+* The applications SetCIDName, SetCIDNum, and SetRDNIS have been
+ deprecated in favor of the CALLERID(datatype) function:
+
+ SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)
+ SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)
+ SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)
+
+* The application Record now uses the period to separate the filename
+ from the format, rather than the colon.
+
+* The application VoiceMail now supports a 'temporary' greeting for each
+ mailbox. This greeting can be recorded by using option 4 in the
+ 'mailbox options' menu, and 'change your password' option has been
+ moved to option 5.
+
+* The application VoiceMailMain now only matches the 'default' context if
+ none is specified in the arguments. (This was the previously
+ documented behavior, however, we didn't follow that behavior.) The old
+ behavior can be restored by setting searchcontexts=yes in voicemail.conf.
+
+Queues:
+
+* A queue is now considered empty not only if there are no members but if
+ none of the members are available (e.g. agents not logged on). To
+ restore the original behavior, use "leavewhenempty=strict" or
+ "joinwhenempty=strict" instead of "=yes" for those options.
+
+* It is now possible to use multi-digit extensions in the exit context
+ for a queue (although you should not have overlapping extensions,
+ as there is no digit timeout). This means that the EXITWITHKEY event
+ in queue_log can now contain a key field with more than a single
+ character in it.
+
+Extensions:
+
+* By default, there is a new option called "autofallthrough" in
+ extensions.conf that is set to yes. Asterisk 1.0 (and earlier)
+ behavior was to wait for an extension to be dialed after there were no
+ more extensions to execute. "autofallthrough" changes this behavior
+ so that the call will immediately be terminated with BUSY,
+ CONGESTION, or HANGUP based on Asterisk's best guess. If you are
+ writing an extension for IVR, you must use the WaitExten application
+ if "autofallthrough" is set to yes.
+
+AGI:
+
+* AGI scripts did not always get SIGHUP at the end, previously. That
+ behavior has been fixed. If you do not want your script to terminate
+ at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
+ be ignored within your application.
+
+* CallerID is reported with agi_callerid and agi_calleridname instead
+ of a single parameter holding both.
+
+Music On Hold:
+
+* The preferred format for musiconhold.conf has changed; please see the
+ sample configuration file for the new format. The existing format
+ is still supported but will generate warnings when the module is loaded.
+
+chan_modem:
+
+* All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated
+ in this release, and will be removed in the next major Asterisk release.
+ Please migrate to chan_misdn for ISDN interfaces; there is no upgrade
+ path for aopen and bestdata modem users.
+
+MeetMe:
+
+* The conference application now allows users to increase/decrease their
+ speaking volume and listening volume (independently of each other and
+ other users); the 'admin' and 'user' menus have changed, and new sound
+ files are included with this release. However, if a user calling in
+ over a Zaptel channel that does NOT have hardware DTMF detection
+ increases their speaking volume, it is likely they will no longer be
+ able to enter/exit the menu or make any further adjustments, as the
+ software DTMF detector will not be able to recognize the DTMF coming
+ from their device.
+
+GetVar Manager Action:
+* Previously, the behavior of the GetVar manager action reported the value
+ of a variable in the following manner:
+ > name: value
+ This has been changed to a manner similar to the SetVar action and is now
+ > Variable: name
+ > Value: value
time that it is necessary to add something to the CHANGES-staging directory is
if you are either adding a new feature to Asterisk or adding new functionality
to an existing feature. The file does not need to have a meaningful name, but
-it probably should. If there are multiple items that need documenting, each can
-be separated with a subject line, which should always start with "Subject:",
-followed by the subject of the change. This is case sensitive! For example, if
-you are making a change to PJSIP, then you might add the file
-"res_pjsip_my_cool_feature" to this directory, with a short description of what
-it does. If you are adding multiple entries, they should be done in the same
-commit to avoid merge conflicts. Here's an example:
+it probably should. If there are multiple items that need documenting, you can
+add multiple files, each with their own description. If the message is going to
+be the same for each subject, then you can add multiple subject headers to one
+file. The "Subject: xxx" line is case sensitive! For example, if you are making
+a change to PJSIP, then you might add the file "res_pjsip_my_cool_feature" to
+this directory, with a short description of what it does. If you are adding
+multiple entries, they should be done in the same commit to avoid merge
+conflicts. Here's an example:
> Subject: res_pjsip
+> Subject: Core
>
> Here's a pretty good description of my new feature that explains exactly what
> it does and how to use it.
+
+Here's a master-only example:
+
+> Subject: res_ari
+> Master-Only: True
>
-> Subject: core
-> Master-Only: true
->
-> Here's another description of something else I added that is a big enough
-> change to warrant another entry in the CHANGES file.
+> This change will only go into the master branch. The "Master-Only" header
+> will never be in a change not in master.
Note that the second subject has another header: "Master-Only". Changes that go
into the master branch and ONLY the master branch are the only ones that should
--- /dev/null
+Subject: Bridging
+Master-Only: true
+
+The bridging core no longer uses the stasis cache for bridge
+snapshots. The latest bridge snapshot is now stored on the
+ast_bridge structure itself.
+
+The following APIs are no longer available since the stasis cache
+is no longer used:
+ ast_bridge_topic_cached()
+ ast_bridge_topic_all_cached()
+
+A topic pool is now used for individual bridge topics.
+
+The ast_bridge_cache() function was removed since there's no
+longer a separate container of snapshots.
+
+A new function "ast_bridges()" was created to retrieve the
+container of all bridges. Users formerly calling
+ast_bridge_cache() can use the new function to iterate over
+bridges and retrieve the latest snapshot directly from the
+bridge.
+
+The ast_bridge_snapshot_get_latest() function was renamed to
+ast_bridge_get_snapshot_by_uniqueid().
+
+A new function "ast_bridge_get_snapshot()" was created to retrieve
+the bridge snapshot directly from the bridge structure.
+
+The ast_bridge_topic_all() function now returns a normal topic
+not a cached one so you can't use stasis cache functions on it
+either.
+
+The ast_bridge_snapshot_type() stasis message now has the
+ast_bridge_snapshot_update structure as it's data. It contains
+the last snapshot and the new one.
--- /dev/null
+Subject: chan_sip
+Master-Only: true
+
+The chan_sip module is now deprecated, users should migrate to the
+replacement module chan_pjsip. See guides at the Asterisk Wiki:
+ https://wiki.asterisk.org/wiki/x/tAHOAQ
+ https://wiki.asterisk.org/wiki/x/hYCLAQ
--- /dev/null
+Subject: Channels
+Master-Only: true
+
+The core no longer uses the stasis cache for channels snapshots.
+The following APIs are no longer available:
+ ast_channel_topic_cached()
+ ast_channel_topic_all_cached()
+The ast_channel_cache_all() and ast_channel_cache_by_name() functions
+now returns an ao2_container of ast_channel_snapshots rather than a
+container of stasis_messages therefore you can't call stasis_cache
+functions on it.
+The ast_channel_topic_all() function now returns a normal topic,
+not a cached one so you can't use stasis cache functions on it either.
+The ast_channel_snapshot_type() stasis message now has the
+ast_channel_snapshot_update structure as it's data.
+ast_channel_snapshot_get_latest() still returns the latest snapshot.
only time that it is necessary to add something to the UPGRADE-staging directory
is if you are making a breaking change to an existing feature in Asterisk. The
file does not need to have a meaningful name, but it probably should. If there
-are multiple items that need documenting, each can be separated with a subject
-line, which should always start with "Subject:", followed by the subject of the
-change. This is case sensitive! For example, if you are making a change to PJSIP,
-then you might add the file "res_pjsip_breaking_change" to this directory, with
-a short description of what it does. If you are adding multiple entries, they
-should be done in the same commit to avoid merge conflicts. Here's an example:
+are multiple items that need documenting, you can add multiple files, each with
+their own description. If the message is going to be the same for each subject,
+then you can add multiple subject headers to one file. The "Subject: xxx" line
+is case sensitive! For example, if you are making a change to PJSIP, then you
+might add the file "res_pjsip_my_cool_feature" to this directory, with a short
+description of what it does. If you are adding multiple entries, they should be
+done in the same commit to avoid merge conflicts. Here's an example:
> Subject: res_pjsip
+> Subject: Core
>
-> Here's a pretty good description of what I changed that explains exactly what
-> it does and why it breaks things (and why they needed to be broken).
->
-> Subject: core
-> Master-Only: true
+> Here's a pretty good description of my new feature that explains exactly what
+> it does and how to use it.
+
+Here's a master-only example:
+
+> Subject: res_ari
+> Master-Only: True
>
-> Here's another description of something else I added that is a big enough
-> change to warrant another entry in the UPDATE.txt file.
+> This change will only go into the master branch. The "Master-Only" header
+> will never be in a change not in master.
Note that the second subject has another header: "Master-Only". Changes that go
into the master branch and ONLY the master branch are the only ones that should
--- /dev/null
+Subject: Applications
+Master-Only: true
+
+The JabberStatus application, deprecated in Asterisk 12, has been removed.
--- /dev/null
+Subject: Bridging
+Master-Only: true
+
+The bridging core no longer uses the stasis cache for bridge
+snapshots. The latest bridge snapshot is now stored on the
+ast_bridge structure itself.
+
+The following APIs are no longer available since the stasis cache
+is no longer used:
+ ast_bridge_topic_cached()
+ ast_bridge_topic_all_cached()
+
+A topic pool is now used for individual bridge topics.
+
+The ast_bridge_cache() function was removed since there's no
+longer a separate container of snapshots.
+
+A new function "ast_bridges()" was created to retrieve the
+container of all bridges. Users formerly calling
+ast_bridge_cache() can use the new function to iterate over
+bridges and retrieve the latest snapshot directly from the
+bridge.
+
+The ast_bridge_snapshot_get_latest() function was renamed to
+ast_bridge_get_snapshot_by_uniqueid().
+
+A new function "ast_bridge_get_snapshot()" was created to retrieve
+the bridge snapshot directly from the bridge structure.
+
+The ast_bridge_topic_all() function now returns a normal topic
+not a cached one so you can't use stasis cache functions on it
+either.
+
+The ast_bridge_snapshot_type() stasis message now has the
+ast_bridge_snapshot_update structure as it's data. It contains
+the last snapshot and the new one.
--- /dev/null
+Subject: chan_sip
+Master-Only: true
+
+The chan_sip module is now deprecated, users should migrate to the
+replacement module chan_pjsip. See guides at the Asterisk Wiki:
+ https://wiki.asterisk.org/wiki/x/tAHOAQ
+ https://wiki.asterisk.org/wiki/x/hYCLAQ
--- /dev/null
+Subject: Channels
+Master-Only: true
+
+The core no longer uses the stasis cache for channels snapshots.
+The following APIs are no longer available:
+ ast_channel_topic_cached()
+ ast_channel_topic_all_cached()
+The ast_channel_cache_all() and ast_channel_cache_by_name() functions
+now returns an ao2_container of ast_channel_snapshots rather than a
+container of stasis_messages therefore you can't call stasis_cache
+functions on it.
+The ast_channel_topic_all() function now returns a normal topic,
+not a cached one so you can't use stasis cache functions on it either.
+The ast_channel_snapshot_type() stasis message now has the
+ast_channel_snapshot_update structure as it's data.
+ast_channel_snapshot_get_latest() still returns the latest snapshot.
--- /dev/null
+Subject: func_callerid
+Master-Only: true
+
+The CALLERPRES() dialplan function, deprecated in Asterisk 1.8, has been
+removed.
--- /dev/null
+Subject: res_parking
+Master-Only: true
+
+The PARKINGSLOT channel variable, deprecated in Asterisk 12 in favor of the
+PARKING_SPACE channel variable, will no longer be set.
--- /dev/null
+Subject: res_xmpp
+Master-Only: true
+
+The JabberStatus application, deprecated in Asterisk 12, has been removed.