=== 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
+=== 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 1.6.2 to 1.8:
+From 10 to 11:
-* 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.
+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.
-* 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.
+Dialplan Functions:
+ - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter
+ instead.
-* 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).
+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.
-* 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.
+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.
-* 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.
+ - cdr.conf: [general] and [csv] sections
+ - dnsmgr.conf
+ - dsp.conf
-* 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.
+AMI:
+ - DBDelTree now correctly returns an error when 0 rows are deleted just as
+ the DBDel action does.
-* 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>
-
-* 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 doc/externalivr.txt 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.
-
-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.
-
-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.
+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.
+
+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.
+
+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.
+===========================================================
+===========================================================