Remove inconsistency in CEL eventtype for user defined events.
[asterisk/asterisk.git] / UPGRADE.txt
index b02c1f4..83c2b2b 100644 (file)
@@ -7,7 +7,7 @@
 === 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:
-
-* 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>
-
-* 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.
-
-* 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.
-
-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.
+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.
+
+===========================================================
+===========================================================