diff --git a/CHANGES b/CHANGES
index e05bfe65a7..4d2b6636ef 100644
--- a/CHANGES
+++ b/CHANGES
@@ -12,6 +12,278 @@
 ===
 ==============================================================================
 
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
+------------------------------------------------------------------------------
+
+AMI Flash event
+------------------
+ * Hook flash events are now exposed as AMI events.
+
+Add variable support to Originate
+------------------
+ * The Originate application now allows
+   variables to be set on the new channel
+   through a new option.
+
+Core
+------------------
+ * Added debug logging categories that allow a user to output debug information
+   based on a specified category. This lets the user limit, and filter debug
+   output to data relevant to a particular context, or topic. For instance the
+   following categories are now available for debug logging purposes:
+
+     dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
+
+   These debug categories can be enable/disable via an Asterisk CLI command:
+
+     core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
+     core set debug category off [<category> [<category>] ...]
+
+   If no sub-level is associated all debug statements for a given category are
+   output. If a sub-level is given then only those statements assigned a value
+   at or below the associated sub-level are output.
+
+ * The location where the media cache stores its temporary files
+   is no longer hardcoded to /tmp but can now be configured separately
+   via the astcachedir config variable in asterisk.conf.
+
+   The default location for astcachedir is now /var/cache/asterisk
+   instead of /tmp, please make sure to manually cleanup and/or
+   migrate the temporary files in /tmp after upgrading.
+
+MessageSend
+------------------
+ * The MessageSend dialplan application now takes an
+   optional third argument that can set the message's
+   "To" field on outgoing messages.  It's an alternative
+   to using the MESSAGE(to) dialplan function.
+
+   To prevent confusion with the first argument, currently
+   named "to", it's been renamed to "destination".
+   Its function, creating the request URI, hasn't changed.
+
+   The online documentation has also been enhanced to
+   explain the behavior.
+
+   Despite the changes in this commit, there should be
+   no impact to current users of MessageSend.
+
+New ConfKick application
+------------------
+ * Adds a ConfKick() application, which allows
+   a specific channel, all users, or all non-admin
+   users to be kicked from a conference bridge.
+
+New Reload application
+------------------
+ * Adds an application to reload modules
+
+PlaybackFinished has a new error state
+------------------
+ * The PlaybackFinished event now has a new state "failed"
+   that is used when the sound file was not played due to an error.
+   Before the state on PlaybackFinished was always "done".
+
+   In case of multiple sound files to be played,
+   the PlaybackFinished is sent only once in the end of the list,
+   even in case of error.
+
+WaitForCondition application
+------------------
+ * This application provides a way to halt
+   dialplan execution until a provided
+   condition evaluates to true.
+
+app_confbridge
+------------------
+ * app_confbridge now has the ability to force the estimated bitrate on an SFU
+   bridge.  To use it, set a bridge profile's remb_behavior to "force" and
+   set remb_estimated_bitrate to a rate in bits per second.  The
+   remb_estimated_bitrate parameter is ignored if remb_behavior is something
+   other than "force".
+
+app_confbridge answer supervision control
+------------------
+ * app_confbridge now provides a user option to prevent
+   answer supervision if the channel hasn't been
+   answered yet. To use it, set a user profile's
+   answer_channel option to no.
+
+app_dial announcement option
+------------------
+ * The A option for Dial now supports
+   playing audio to the caller as well
+   as the called party.
+
+app_mixmonitor
+------------------
+ * app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
+   MixMonitorMute when the channel monitoring is started, stopped and muted (or
+   unmuted) respectively.
+
+app_voicemail
+------------------
+ * The VoiceMail application can now be configured to send greetings and
+   instructions via early media and only answering the channel when it is
+   time for the caller to record their message. This behavior can be
+   activated by passing the new 'e' option to VoiceMail.
+
+ * You can now customize the "beep" tone or omit it entirely.
+
+chan_iax2
+------------------
+ * You can now specify a default "auth" method in the
+   [general] section of iax.conf
+
+chan_pjsip
+------------------
+ * The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a warning, and
+   returns unsuccessful if it's used on a channel prior to answering.
+
+chan_pjsip, app_transfer
+------------------
+ * Added TRANSFERSTATUSPROTOCOL variable.  When transfer is performed,
+   transfers can pass a protocol specific error code.
+   Example, in SIP 3xx-6xx represent any SIP specific error received when
+   performing a REFER.
+
+func_math: Three new dialplan functions
+------------------
+ * Introduce three new functions, MIN, MAX, and ABS, which can be used to
+   obtain the minimum or maximum of up to two integers or absolute value.
+
+func_odbc
+------------------
+ * Introduce an ARGC variable for func_odbc functions, along with a minargs
+   per-function configuration option.
+
+   minargs enables enforcing of minimum count of arguments to pass to
+   func_odbc, so if you're unconditionally using ARG1 through ARG4 then
+   this should be set to 4.  func_odbc will generate an error in this case,
+   so for example
+
+   [FOO]
+   minargs = 4
+
+   and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
+   potentially leaked ARG4 from Gosub().
+
+   ARGC is needed if you're using optional argument, to verify whether or
+   not an argument has been passed, else it's possible to use a leaked ARGn
+   from Gosub (app_stack).  So now you can safely do
+   ${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
+
+func_volume now can be read
+------------------
+ * The VOLUME function can now also be used
+   to read existing values previously set.
+
+logger
+------------------
+ * Added a new log formatter called "plain" that always prints
+   file, function and line number if available (even for verbose
+   messages) and never prints color control characters.  Most
+   suitable for file output but can be used for other channels
+   as well.
+
+   You use it in logger.conf like so:
+   debug => [plain]debug
+   console => [plain]error,warning,debug,notice,pjsip_history
+   messages => [plain]warning,error,verbose
+
+ * The dateformat option in logger.conf will now control the remote
+   console (asterisk -r -T) timestamp format.  Previously, dateformat only
+   controlled the formatting of the timestamp going to log files and the
+   main console (asterisk -c) but only for non-verbose messages.
+
+   Internally, Asterisk does not send the logging timestamp with verbose
+   messages to console clients. It's up to the Asterisk remote consoles
+   to format verbose messages.  Asterisk remote consoles previously did
+   not load dateformat from logger.conf.
+
+   Previously there was a non-configurable and hard-coded "%b %e %T"
+   dateformat that would be used no matter what on all verbose console
+   messages printed on remote consoles.
+
+   Example:
+   logger.conf
+    dateformat=%F %T.%3q
+
+   # asterisk -rvvv -T
+   [2021-03-19 09:54:19.760-0400]  Loading res_stasis_answer.so.
+   [Mar 19 09:55:43]     -- Goto (dialExten,s,1)
+
+   Given the following example configuration in logger.conf, Asterisk log
+   files and the console, will log verbose messages using the given
+   timestamp.  Now ensuring that all remote console messages are logged
+   with the same dateformat as other log streams.
+
+   ---
+   [general]
+   dateformat=%F %T.%3q
+
+   [logfiles]
+   console  => notice,warning,error,verbose
+   full     => notice,warning,error,debug,verbose
+   ---
+
+   Now we have a globally-defined dateformat that will be used
+   consistently across the Asterisk main console, remote consoles, and
+   log files.
+
+   Now we have consistent logging:
+
+   # asterisk -rvvv -T
+   [2021-03-19 09:54:19.760-0400]  Loading res_stasis_answer.so.
+   [2021-03-19 09:55:43.920-0400]     -- Goto (dialExten,s,1)
+
+res_pjsip
+------------------
+ * PJSIP transports can now be partially reloaded safely. This allows the
+   local_net and external_* options to be updated without restarting Asterisk.
+
+ * PJSIP endpoints can now be configured to skip authentication when
+   handling OPTIONS requests by setting the allow_unauthenticated_options
+   configuration property to 'yes.'
+
+ * PJSIP support of registrations of endpoints in multidomain
+   scenarios, where the endpoint contains the domain info
+   in pjsip_endpoint.conf
+
+res_pjsip_dialog_info_body_generator
+------------------
+ * PJSIP now supports RFC 4235 Section 4.1.6 dialog-info+xml local and
+   remote elements by iterating through ringing channels and inserting
+   that info into NOTIFY packet sent to the endpoint.
+
+res_pjsip_messaging
+------------------
+ * Implemented the new "to" parameter of the MessageSend()
+   dialplan application.  This allows a user to specify
+   a complete SIP "To" header separate from the Request URI.
+   We now also accept a destination in the same format
+   as Dial()...  PJSIP/number@endpoint
+
+res_rtp_asterisk
+------------------
+ * By default Asterisk reports the PJSIP version in all
+   STUN packets it sends.
+
+   This behaviour may not be desired in a production
+   environment and can now be disabled by setting the
+   stun_software_attribute option to 'no' in rtp.conf.
+
+res_srtp
+------------------
+ * SRTP replay protection has been added to res_srtp and
+   a new configuration option "srtpreplayprotection" has
+   been added to the rtp.conf config file.  For security
+   reasons, the default setting is "yes".  Buggy clients
+   may not handle this correctly which could result in
+   no, or one way, audio and Asterisk error messages like
+   "replay check failed".
+
 ------------------------------------------------------------------------------
 --- New functionality introduced in Asterisk 18.0.0 --------------------------
 ------------------------------------------------------------------------------
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 68261ae716..fbe5c36cb9 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -18,6 +18,58 @@
 ===
 ===========================================================
 
+------------------------------------------------------------------------------
+--- New functionality introduced in Asterisk 19.0.0 --------------------------
+------------------------------------------------------------------------------
+
+Log Rotate
+------------------
+ * The sample logger files have been changed to have .log as their file
+   extension. This was done so that when attached to issues on the issue
+   tracker, they are able to be opened in the browser for convenience.
+   Because of this, the asterisk.logrotate script has been updated to look
+   for .log extensions instead of no extension for files such as full
+   and messages.
+
+chan_sip
+------------------
+ * chan_sip is no longer built by default. To build it, make sure to
+   enable it when running 'make menuselect'
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
+------------------------------------------------------------------------------
+
+STIR/SHAKEN
+------------------
+ * The configuration option public_key_url in stir_shaken.conf
+   has been renamed to public_cert_url to better fit what it
+   contains. Only the name has changed - functionality is the
+   same.
+
+ * STIR/SHAKEN originally needed an origid to be specified in
+   stir_shaken.conf under the certificate config object in
+   order to work. Now, one is automatically created by
+   generating a UUID, as recommended by RFC8588. Any origid
+   you have in your stir_shaken.conf will need to be removed
+   for the module to read in certificates.
+
+menuselect
+------------------
+ * menuselect --enable, --disable, --enable-category and --disable-category will
+   now fail with a non-zero exit code instead of silently failing if an invalid
+   option or category is specified.
+
+res_srtp
+------------------
+ * SRTP replay protection has been added to res_srtp and
+   a new configuration option "srtpreplayprotection" has
+   been added to the rtp.conf config file.  For security
+   reasons, the default setting is "yes".  Buggy clients
+   may not handle this correctly which could result in
+   no, or one way, audio and Asterisk error messages like
+   "replay check failed".
+
 ------------------------------------------------------------------------------
 --- New functionality introduced in Asterisk 18.0.0 --------------------------
 ------------------------------------------------------------------------------
diff --git a/doc/CHANGES-staging/app_confbridge.txt b/doc/CHANGES-staging/app_confbridge.txt
deleted file mode 100644
index 092e392f5d..0000000000
--- a/doc/CHANGES-staging/app_confbridge.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Subject: app_confbridge
-
-app_confbridge now has the ability to force the estimated bitrate on an SFU
-bridge.  To use it, set a bridge profile's remb_behavior to "force" and
-set remb_estimated_bitrate to a rate in bits per second.  The
-remb_estimated_bitrate parameter is ignored if remb_behavior is something
-other than "force".
diff --git a/doc/CHANGES-staging/app_confbridge_answer.txt b/doc/CHANGES-staging/app_confbridge_answer.txt
deleted file mode 100644
index b975f48f4e..0000000000
--- a/doc/CHANGES-staging/app_confbridge_answer.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: app_confbridge answer supervision control
-
-app_confbridge now provides a user option to prevent
-answer supervision if the channel hasn't been
-answered yet. To use it, set a user profile's
-answer_channel option to no.
diff --git a/doc/CHANGES-staging/app_confkick.txt b/doc/CHANGES-staging/app_confkick.txt
deleted file mode 100644
index 4250c7d6ba..0000000000
--- a/doc/CHANGES-staging/app_confkick.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: New ConfKick application
-
-Adds a ConfKick() application, which allows
-a specific channel, all users, or all non-admin
-users to be kicked from a conference bridge.
-
diff --git a/doc/CHANGES-staging/app_dial_announcement.txt b/doc/CHANGES-staging/app_dial_announcement.txt
deleted file mode 100644
index 3947b0e4e0..0000000000
--- a/doc/CHANGES-staging/app_dial_announcement.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: app_dial announcement option
-
-The A option for Dial now supports
-playing audio to the caller as well
-as the called party.
-
diff --git a/doc/CHANGES-staging/app_originate_vars.txt b/doc/CHANGES-staging/app_originate_vars.txt
deleted file mode 100644
index 4e08ae61f8..0000000000
--- a/doc/CHANGES-staging/app_originate_vars.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: Add variable support to Originate
-
-The Originate application now allows
-variables to be set on the new channel
-through a new option.
-
diff --git a/doc/CHANGES-staging/app_reload.txt b/doc/CHANGES-staging/app_reload.txt
deleted file mode 100644
index 308db15c7c..0000000000
--- a/doc/CHANGES-staging/app_reload.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Subject: New Reload application
-
-Adds an application to reload modules
-
diff --git a/doc/CHANGES-staging/app_transferprotocol.txt b/doc/CHANGES-staging/app_transferprotocol.txt
deleted file mode 100644
index 5d3521bbd4..0000000000
--- a/doc/CHANGES-staging/app_transferprotocol.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: chan_pjsip, app_transfer
-
-Added TRANSFERSTATUSPROTOCOL variable.  When transfer is performed,
-transfers can pass a protocol specific error code.
-Example, in SIP 3xx-6xx represent any SIP specific error received when
-performing a REFER.
diff --git a/doc/CHANGES-staging/app_waitforcond.txt b/doc/CHANGES-staging/app_waitforcond.txt
deleted file mode 100644
index a7ab60028d..0000000000
--- a/doc/CHANGES-staging/app_waitforcond.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: WaitForCondition application
-
-This application provides a way to halt
-dialplan execution until a provided
-condition evaluates to true.
diff --git a/doc/CHANGES-staging/chan_iax2.txt b/doc/CHANGES-staging/chan_iax2.txt
deleted file mode 100644
index 4e1d844204..0000000000
--- a/doc/CHANGES-staging/chan_iax2.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Subject: chan_iax2
-
-You can now specify a default "auth" method in the
-[general] section of iax.conf
diff --git a/doc/CHANGES-staging/flash_ami_event.txt b/doc/CHANGES-staging/flash_ami_event.txt
deleted file mode 100644
index 4cbea80683..0000000000
--- a/doc/CHANGES-staging/flash_ami_event.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Subject: AMI Flash event
-
-Hook flash events are now exposed as AMI events.
diff --git a/doc/CHANGES-staging/func_min_max.txt b/doc/CHANGES-staging/func_min_max.txt
deleted file mode 100644
index df2b6653e0..0000000000
--- a/doc/CHANGES-staging/func_min_max.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Subject: func_math: Three new dialplan functions
-
-Introduce three new functions, MIN, MAX, and ABS, which can be used to
-obtain the minimum or maximum of up to two integers or absolute value.
diff --git a/doc/CHANGES-staging/func_odbc_ARGC_minargs.txt b/doc/CHANGES-staging/func_odbc_ARGC_minargs.txt
deleted file mode 100644
index 0984b5022d..0000000000
--- a/doc/CHANGES-staging/func_odbc_ARGC_minargs.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Subject: func_odbc
-
-Introduce an ARGC variable for func_odbc functions, along with a minargs
-per-function configuration option.
-
-minargs enables enforcing of minimum count of arguments to pass to
-func_odbc, so if you're unconditionally using ARG1 through ARG4 then
-this should be set to 4.  func_odbc will generate an error in this case,
-so for example
-
-[FOO]
-minargs = 4
-
-and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
-potentially leaked ARG4 from Gosub().
-
-ARGC is needed if you're using optional argument, to verify whether or
-not an argument has been passed, else it's possible to use a leaked ARGn
-from Gosub (app_stack).  So now you can safely do
-${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
diff --git a/doc/CHANGES-staging/func_volume_read.txt b/doc/CHANGES-staging/func_volume_read.txt
deleted file mode 100644
index 8ea27cdce3..0000000000
--- a/doc/CHANGES-staging/func_volume_read.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Subject: func_volume now can be read
-
-The VOLUME function can now also be used
-to read existing values previously set.
diff --git a/doc/CHANGES-staging/logger_category.txt b/doc/CHANGES-staging/logger_category.txt
deleted file mode 100644
index 67cc3ec7ad..0000000000
--- a/doc/CHANGES-staging/logger_category.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Subject: Core
-
-Added debug logging categories that allow a user to output debug information
-based on a specified category. This lets the user limit, and filter debug
-output to data relevant to a particular context, or topic. For instance the
-following categories are now available for debug logging purposes:
-
-  dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
-
-These debug categories can be enable/disable via an Asterisk CLI command:
-
-  core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
-  core set debug category off [<category> [<category>] ...]
-
-If no sub-level is associated all debug statements for a given category are
-output. If a sub-level is given then only those statements assigned a value
-at or below the associated sub-level are output.
-
diff --git a/doc/CHANGES-staging/logger_dateformat.txt b/doc/CHANGES-staging/logger_dateformat.txt
deleted file mode 100644
index efeb11803d..0000000000
--- a/doc/CHANGES-staging/logger_dateformat.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Subject: logger
-
-The dateformat option in logger.conf will now control the remote
-console (asterisk -r -T) timestamp format.  Previously, dateformat only
-controlled the formatting of the timestamp going to log files and the
-main console (asterisk -c) but only for non-verbose messages.
-
-Internally, Asterisk does not send the logging timestamp with verbose
-messages to console clients. It's up to the Asterisk remote consoles
-to format verbose messages.  Asterisk remote consoles previously did
-not load dateformat from logger.conf.
-
-Previously there was a non-configurable and hard-coded "%b %e %T"
-dateformat that would be used no matter what on all verbose console
-messages printed on remote consoles.
-
-Example:
-logger.conf
- dateformat=%F %T.%3q
-
-# asterisk -rvvv -T
-[2021-03-19 09:54:19.760-0400]  Loading res_stasis_answer.so.
-[Mar 19 09:55:43]     -- Goto (dialExten,s,1)
-
-Given the following example configuration in logger.conf, Asterisk log
-files and the console, will log verbose messages using the given
-timestamp.  Now ensuring that all remote console messages are logged
-with the same dateformat as other log streams.
-
----
-[general]
-dateformat=%F %T.%3q
-
-[logfiles]
-console  => notice,warning,error,verbose
-full     => notice,warning,error,debug,verbose
----
-
-Now we have a globally-defined dateformat that will be used
-consistently across the Asterisk main console, remote consoles, and
-log files.
-
-Now we have consistent logging:
-
-# asterisk -rvvv -T
-[2021-03-19 09:54:19.760-0400]  Loading res_stasis_answer.so.
-[2021-03-19 09:55:43.920-0400]     -- Goto (dialExten,s,1)
diff --git a/doc/CHANGES-staging/logger_format.txt b/doc/CHANGES-staging/logger_format.txt
deleted file mode 100644
index 58d864d673..0000000000
--- a/doc/CHANGES-staging/logger_format.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Subject: logger
-
-Added a new log formatter called "plain" that always prints
-file, function and line number if available (even for verbose
-messages) and never prints color control characters.  Most
-suitable for file output but can be used for other channels
-as well.
-
-You use it in logger.conf like so:
-debug => [plain]debug
-console => [plain]error,warning,debug,notice,pjsip_history
-messages => [plain]warning,error,verbose
diff --git a/doc/CHANGES-staging/media_cache_cachedir.txt b/doc/CHANGES-staging/media_cache_cachedir.txt
deleted file mode 100644
index e30543fb29..0000000000
--- a/doc/CHANGES-staging/media_cache_cachedir.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Subject: Core
-
-The location where the media cache stores its temporary files
-is no longer hardcoded to /tmp but can now be configured separately
-via the astcachedir config variable in asterisk.conf.
-
-The default location for astcachedir is now /var/cache/asterisk
-instead of /tmp, please make sure to manually cleanup and/or
-migrate the temporary files in /tmp after upgrading.
diff --git a/doc/CHANGES-staging/messagesend.txt b/doc/CHANGES-staging/messagesend.txt
deleted file mode 100644
index 7977ff15c8..0000000000
--- a/doc/CHANGES-staging/messagesend.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Subject: MessageSend
-
-The MessageSend dialplan application now takes an
-optional third argument that can set the message's
-"To" field on outgoing messages.  It's an alternative
-to using the MESSAGE(to) dialplan function.
-
-To prevent confusion with the first argument, currently
-named "to", it's been renamed to "destination".
-Its function, creating the request URI, hasn't changed.
-
-The online documentation has also been enhanced to
-explain the behavior.
-
-Despite the changes in this commit, there should be
-no impact to current users of MessageSend.
diff --git a/doc/CHANGES-staging/mixmonitor_manager_events.txt b/doc/CHANGES-staging/mixmonitor_manager_events.txt
deleted file mode 100644
index 64b63e52e7..0000000000
--- a/doc/CHANGES-staging/mixmonitor_manager_events.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: app_mixmonitor
-
-app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
-MixMonitorMute when the channel monitoring is started, stopped and muted (or
-unmuted) respectively.
diff --git a/doc/CHANGES-staging/pjsip_endpoint_unauthenticated_options.txt b/doc/CHANGES-staging/pjsip_endpoint_unauthenticated_options.txt
deleted file mode 100644
index 9c8d32cb0e..0000000000
--- a/doc/CHANGES-staging/pjsip_endpoint_unauthenticated_options.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: res_pjsip
-
-PJSIP endpoints can now be configured to skip authentication when
-handling OPTIONS requests by setting the allow_unauthenticated_options
-configuration property to 'yes.'
diff --git a/doc/CHANGES-staging/pjsip_send_session_refresh.txt b/doc/CHANGES-staging/pjsip_send_session_refresh.txt
deleted file mode 100644
index 0705c293d7..0000000000
--- a/doc/CHANGES-staging/pjsip_send_session_refresh.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Subject: chan_pjsip
-
-The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a warning, and
-returns unsuccessful if it's used on a channel prior to answering.
diff --git a/doc/CHANGES-staging/pjsip_transport_partial_reload.txt b/doc/CHANGES-staging/pjsip_transport_partial_reload.txt
deleted file mode 100644
index 1d1b0b6266..0000000000
--- a/doc/CHANGES-staging/pjsip_transport_partial_reload.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Subject: res_pjsip
-
-PJSIP transports can now be partially reloaded safely. This allows the
-local_net and external_* options to be updated without restarting Asterisk.
diff --git a/doc/CHANGES-staging/res_pjsip.txt b/doc/CHANGES-staging/res_pjsip.txt
deleted file mode 100644
index ffbf13a9c2..0000000000
--- a/doc/CHANGES-staging/res_pjsip.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: res_pjsip
-
-PJSIP support of registrations of endpoints in multidomain
-scenarios, where the endpoint contains the domain info
-in pjsip_endpoint.conf
diff --git a/doc/CHANGES-staging/res_pjsip_dialog_info_body_generator.txt b/doc/CHANGES-staging/res_pjsip_dialog_info_body_generator.txt
deleted file mode 100644
index 0dd0a5762d..0000000000
--- a/doc/CHANGES-staging/res_pjsip_dialog_info_body_generator.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: res_pjsip_dialog_info_body_generator
-
-PJSIP now supports RFC 4235 Section 4.1.6 dialog-info+xml local and
-remote elements by iterating through ringing channels and inserting
-that info into NOTIFY packet sent to the endpoint.
diff --git a/doc/CHANGES-staging/res_pjsip_dtmf.txt b/doc/CHANGES-staging/res_pjsip_dtmf.txt
deleted file mode 100644
index 4dc2088c6f..0000000000
--- a/doc/CHANGES-staging/res_pjsip_dtmf.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-res_pjsip_dtmf_info: Hook flash
-
-Adds recognition for application/
-hook-flash as a hook flash event.
-
diff --git a/doc/CHANGES-staging/res_pjsip_messaging.txt b/doc/CHANGES-staging/res_pjsip_messaging.txt
deleted file mode 100644
index 46874dc55d..0000000000
--- a/doc/CHANGES-staging/res_pjsip_messaging.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Subject: res_pjsip_messaging
-
-Implemented the new "to" parameter of the MessageSend()
-dialplan application.  This allows a user to specify
-a complete SIP "To" header separate from the Request URI.
-We now also accept a destination in the same format
-as Dial()...  PJSIP/number@endpoint
diff --git a/doc/CHANGES-staging/res_rtp_asterisk_stun_software_attribute.txt b/doc/CHANGES-staging/res_rtp_asterisk_stun_software_attribute.txt
deleted file mode 100644
index 93905f6d0a..0000000000
--- a/doc/CHANGES-staging/res_rtp_asterisk_stun_software_attribute.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Subject: res_rtp_asterisk
-
-By default Asterisk reports the PJSIP version in all
-STUN packets it sends.
-
-This behaviour may not be desired in a production
-environment and can now be disabled by setting the
-stun_software_attribute option to 'no' in rtp.conf.
diff --git a/doc/CHANGES-staging/res_stasis_playback.txt b/doc/CHANGES-staging/res_stasis_playback.txt
deleted file mode 100644
index cd5fa1102a..0000000000
--- a/doc/CHANGES-staging/res_stasis_playback.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Subject: PlaybackFinished has a new error state
-
-The PlaybackFinished event now has a new state "failed"
-that is used when the sound file was not played due to an error.
-Before the state on PlaybackFinished was always "done".
-
-In case of multiple sound files to be played,
-the PlaybackFinished is sent only once in the end of the list,
-even in case of error.
diff --git a/doc/CHANGES-staging/srtp_replay_protection.txt b/doc/CHANGES-staging/srtp_replay_protection.txt
deleted file mode 100644
index 945ddb5704..0000000000
--- a/doc/CHANGES-staging/srtp_replay_protection.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Subject: res_srtp
-
-SRTP replay protection has been added to res_srtp and
-a new configuration option "srtpreplayprotection" has
-been added to the rtp.conf config file.  For security
-reasons, the default setting is "yes".  Buggy clients
-may not handle this correctly which could result in
-no, or one way, audio and Asterisk error messages like
-"replay check failed".
diff --git a/doc/CHANGES-staging/voicemail_beep.txt b/doc/CHANGES-staging/voicemail_beep.txt
deleted file mode 100644
index d98b40356f..0000000000
--- a/doc/CHANGES-staging/voicemail_beep.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Subject: app_voicemail
-
-You can now customize the "beep" tone or omit it entirely.
diff --git a/doc/CHANGES-staging/voicemail_early_media.txt b/doc/CHANGES-staging/voicemail_early_media.txt
deleted file mode 100644
index 6dd79befae..0000000000
--- a/doc/CHANGES-staging/voicemail_early_media.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: app_voicemail
-
-The VoiceMail application can now be configured to send greetings and
-instructions via early media and only answering the channel when it is
-time for the caller to record their message. This behavior can be
-activated by passing the new 'e' option to VoiceMail.
diff --git a/doc/UPGRADE-staging/asterisk_logrotate.txt b/doc/UPGRADE-staging/asterisk_logrotate.txt
deleted file mode 100644
index 2191e51f79..0000000000
--- a/doc/UPGRADE-staging/asterisk_logrotate.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Subject: Log Rotate
-Master-Only: True
-
-The sample logger files have been changed to have .log as their file
-extension. This was done so that when attached to issues on the issue
-tracker, they are able to be opened in the browser for convenience.
-Because of this, the asterisk.logrotate script has been updated to look
-for .log extensions instead of no extension for files such as full
-and messages.
diff --git a/doc/UPGRADE-staging/do-not-build-chan-sip-by-default.txt b/doc/UPGRADE-staging/do-not-build-chan-sip-by-default.txt
deleted file mode 100644
index 31790e448d..0000000000
--- a/doc/UPGRADE-staging/do-not-build-chan-sip-by-default.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: chan_sip
-Master-Only: True
-
-chan_sip is no longer built by default. To build it, make sure to
-enable it when running 'make menuselect'
diff --git a/doc/UPGRADE-staging/menuselect-could-fail.txt b/doc/UPGRADE-staging/menuselect-could-fail.txt
deleted file mode 100644
index e3e20ed833..0000000000
--- a/doc/UPGRADE-staging/menuselect-could-fail.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Subject: menuselect
-
-menuselect --enable, --disable, --enable-category and --disable-category will
-now fail with a non-zero exit code instead of silently failing if an invalid
-option or category is specified.
diff --git a/doc/UPGRADE-staging/srtp_replay_protection.txt b/doc/UPGRADE-staging/srtp_replay_protection.txt
deleted file mode 100644
index 945ddb5704..0000000000
--- a/doc/UPGRADE-staging/srtp_replay_protection.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Subject: res_srtp
-
-SRTP replay protection has been added to res_srtp and
-a new configuration option "srtpreplayprotection" has
-been added to the rtp.conf config file.  For security
-reasons, the default setting is "yes".  Buggy clients
-may not handle this correctly which could result in
-no, or one way, audio and Asterisk error messages like
-"replay check failed".
diff --git a/doc/UPGRADE-staging/stir-shaken-public-key-url.txt b/doc/UPGRADE-staging/stir-shaken-public-key-url.txt
deleted file mode 100644
index 094bccfe72..0000000000
--- a/doc/UPGRADE-staging/stir-shaken-public-key-url.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Subject: STIR/SHAKEN
-
-The configuration option public_key_url in stir_shaken.conf
-has been renamed to public_cert_url to better fit what it
-contains. Only the name has changed - functionality is the
-same.
diff --git a/doc/UPGRADE-staging/stir_shaken_origid.txt b/doc/UPGRADE-staging/stir_shaken_origid.txt
deleted file mode 100644
index f0b897757f..0000000000
--- a/doc/UPGRADE-staging/stir_shaken_origid.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Subject: STIR/SHAKEN
-
-STIR/SHAKEN originally needed an origid to be specified in
-stir_shaken.conf under the certificate config object in
-order to work. Now, one is automatically created by
-generating a UUID, as recommended by RFC8588. Any origid
-you have in your stir_shaken.conf will need to be removed
-for the module to read in certificates.