===========================================================
===
=== 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.

* 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).

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.
* The libuuid development library is now optional for res_rtp_asterisk. If the
  library is not present when building ICE and TURN support will not be present.
* The option "register_retry_403" has been added to chan_sip to work around
  servers that are known to erroneously send 403 in response to valid
  REGISTER requests and allows Asterisk to continue attepmting to connect.

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.

* 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 libuuid development library is now required for res_rtp_asterisk. Consult
  your distribution for the appropriate development library name.

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 11.1 to 11.2:

* 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.

* Removed the queues.conf check_state_unknown option.  It is no longer
  necessary.

From 11.0 to 11.1:

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.

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.
 - In order to improve compliance with RFC 3261, SIP usernames are now properly
   escaped when encoding reserved characters. Prior to this change, the use of
   these characters in certain SIP settings affecting usernames could cause
   injections of these characters in their raw form into SIP headers which could
   in turn cause all sorts of nasty behaviors. All characters that are not
   alphanumeric or are not contained in the the following lists specified by
   RFC 3261 section 25.1 will be escaped as %XX when encoding a SIP username:
    * mark: "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")"
    * user-unreserved: "&" / "=" / "+" / "$" / "," / ";" / "?" / "/"

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.

===========================================================
===========================================================
