[Asterisk-code-review] build: Revise CHANGES and UPGRADE.txt handling. (...asterisk[13])

Benjamin Keith Ford asteriskteam at digium.com
Tue Apr 16 10:52:22 CDT 2019


Benjamin Keith Ford has submitted this change and it was merged. ( https://gerrit.asterisk.org/c/asterisk/+/10943 )

Change subject: build: Revise CHANGES and UPGRADE.txt handling.
......................................................................

build: Revise CHANGES and UPGRADE.txt handling.

This changes the way that we handle adding changes to CHANGES and
UPGRADE.txt. The reason for this is because whenever someone needed to
make a change to one of these files and someone else had already done
so, you would run into merge conflicts. With this new setup, there will
never be merge conflicts since all changes will be documented in the
doc/<file>-staging directory. The release script is now responsible for
merging all of these changes into the appropriate files.

There is a special format that these files have to follow in order to be
parsed. The files do not need to have a meaningful name, but it is
strongly recommended. For example, if you made a change to pjsip, you
may have something like this "res_pjsip_relative_title", where
"relative_title" is something more descriptive than that. Inside each
file, you will need a subject line for your change, followed by a
description. There can be multiple subject lines. The file may look
something like this:

   Subject: res_pjsip
   Subject: Core

   A description that explains the changes made and why. The release
   script will handle the bulleting and section separators!

   You can still separate with new lines within your description.

The headers ("Subject" and "Master-Only") are case sensative, but the
value for "Master-Only" ("true" or "True") is not.

For more information, check out the wiki page:
https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt

ASTERISK-28111 #close

Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47
---
M CHANGES
D UPGRADE-1.2.txt
D UPGRADE-1.4.txt
D UPGRADE-1.6.txt
D UPGRADE-1.8.txt
D UPGRADE-10.txt
D UPGRADE-11.txt
D UPGRADE-12.txt
M UPGRADE.txt
M doc/CHANGES-staging/README.md
M doc/UPGRADE-staging/README.md
11 files changed, 2,100 insertions(+), 2,228 deletions(-)

Approvals:
  Kevin Harwell: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved
  Friendly Automation: Approved for Submit



diff --git a/CHANGES b/CHANGES
index 0d39730..dbdf744 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,9 @@
 ==============================================================================
 ===
+=== 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
diff --git a/UPGRADE-1.2.txt b/UPGRADE-1.2.txt
deleted file mode 100644
index cfbff94..0000000
--- a/UPGRADE-1.2.txt
+++ /dev/null
@@ -1,218 +0,0 @@
-=========================================================
-===
-=== 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 at 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 at peer-callno or even IAX2/peer at 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
diff --git a/UPGRADE-1.4.txt b/UPGRADE-1.4.txt
deleted file mode 100644
index 74cb1e5..0000000
--- a/UPGRADE-1.4.txt
+++ /dev/null
@@ -1,497 +0,0 @@
-=========================================================
-===
-=== 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
diff --git a/UPGRADE-1.6.txt b/UPGRADE-1.6.txt
deleted file mode 100644
index 4ae4401..0000000
--- a/UPGRADE-1.6.txt
+++ /dev/null
@@ -1,277 +0,0 @@
-=========================================================
-===
-=== 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 at 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.
diff --git a/UPGRADE-1.8.txt b/UPGRADE-1.8.txt
deleted file mode 100644
index b01f762..0000000
--- a/UPGRADE-1.8.txt
+++ /dev/null
@@ -1,343 +0,0 @@
-===========================================================
-===
-=== 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.
diff --git a/UPGRADE-10.txt b/UPGRADE-10.txt
deleted file mode 100644
index f4b2bec..0000000
--- a/UPGRADE-10.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-===========================================================
-===
-=== 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.
-
-===========================================================
-===========================================================
diff --git a/UPGRADE-11.txt b/UPGRADE-11.txt
deleted file mode 100644
index 58b70b6..0000000
--- a/UPGRADE-11.txt
+++ /dev/null
@@ -1,280 +0,0 @@
-===========================================================
-===
-=== 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.
-
-===========================================================
-===========================================================
diff --git a/UPGRADE-12.txt b/UPGRADE-12.txt
deleted file mode 100644
index 665e016..0000000
--- a/UPGRADE-12.txt
+++ /dev/null
@@ -1,478 +0,0 @@
-===========================================================
-===
-=== 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 at 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 at 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 at 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/.
-
-
-===========================================================
-===========================================================
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 4426686..b3dcf0f 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -1,24 +1,21 @@
 ===========================================================
 ===
+=== 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
 ===========================================================
 
 From 13.23.1 to 13.24.0:
@@ -624,5 +621,2053 @@
  - 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 at 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 at 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 at 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:
+ - 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 at 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 at 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 at peer-callno or even IAX2/peer at 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
diff --git a/doc/CHANGES-staging/README.md b/doc/CHANGES-staging/README.md
index da0df2a..8a2407f 100644
--- a/doc/CHANGES-staging/README.md
+++ b/doc/CHANGES-staging/README.md
@@ -5,24 +5,28 @@
 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
diff --git a/doc/UPGRADE-staging/README.md b/doc/UPGRADE-staging/README.md
index 1ef9334..8147161 100644
--- a/doc/UPGRADE-staging/README.md
+++ b/doc/UPGRADE-staging/README.md
@@ -5,23 +5,27 @@
 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).
+> 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 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

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/10943
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47
Gerrit-Change-Number: 10943
Gerrit-PatchSet: 3
Gerrit-Owner: Benjamin Keith Ford <bford at digium.com>
Gerrit-Reviewer: Benjamin Keith Ford <bford at digium.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Kevin Harwell <kharwell at digium.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190416/d3d9bd68/attachment-0001.html>


More information about the asterisk-code-review mailing list