===========================================================
===
-=== Information for upgrading between Asterisk 1.6 versions
+=== 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
+=== 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.6.3:
-
-* 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.
-
-* 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.
-
-From 1.6.1 to 1.6.2:
-
-* 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".
-
-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 10 to 11:
+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.
+
+Dialplan Functions:
+ - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter
+ instead.
+
+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.
+
+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
+
+AMI:
+ - DBDelTree now correctly returns an error when 0 rows are deleted just as
+ the DBDel action does.
+
+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.
+
+===========================================================
+===========================================================