diff --git a/.version b/.version
index 6f9fcb28c4446dcd985476272ae856348c9d9b4b..8de9f4763890d1cc07692f1db1dbab0f89963233 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-certified/18.9-cert4
\ No newline at end of file
+certified-18.9-cert5
diff --git a/CHANGES.md b/CHANGES.md
new file mode 120000
index 0000000000000000000000000000000000000000..d5f3c50234832aca2d1b38f2759e893258fc0c97
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1 @@
+ChangeLogs/ChangeLog-certified-18.9-cert5.md
\ No newline at end of file
diff --git a/ChangeLogs/ChangeLog-certified-18.9-cert5.md b/ChangeLogs/ChangeLog-certified-18.9-cert5.md
new file mode 100644
index 0000000000000000000000000000000000000000..a8984b9d4b8f234091ec50ecc567cce57122397e
--- /dev/null
+++ b/ChangeLogs/ChangeLog-certified-18.9-cert5.md
@@ -0,0 +1,680 @@
+
+Change Log for Release certified-18.9-cert5
+========================================
+
+Links:
+----------------------------------------
+
+ - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-certified-18.9-cert5.md)  
+ - [GitHub Diff](https://github.com/asterisk/asterisk/compare/certified-18.9-cert4...certified-18.9-cert5)  
+ - [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-certified-18.9-cert5.tar.gz)  
+ - [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)  
+
+Summary:
+----------------------------------------
+
+- apply_patches: Use globbing instead of file/sort.
+- apply_patches: Sort patch list before applying
+- bundled_pjproject: Backport security fixes from pjproject 2.13.1
+- .github: Updates for AsteriskReleaser
+- res_musiconhold: avoid moh state access on unlocked chan
+- utils: add lock timestamps for DEBUG_THREADS
+- .github: Back out triggering PROpenedOrUpdated by label
+- .github: Move publish docs to new file CreateDocs.yml
+- .github: Remove result check from PROpenUpdateGateTests
+- .github: Fix use of 'contains'
+- .github: Add recheck label test to additional jobs
+- .github: Fix recheck label typos
+- .github: Fix recheck label manipulation
+- .github: Allow PR submit checks to be re-run by label
+- res_pjsip_session: Added new function calls to avoid ABI issues.
+- test_statis_endpoints:  Fix channel_messages test again
+- test_stasis_endpoints.c: Make channel_messages more stable
+- build: Fix a few gcc 13 issues
+- .github: Rework for merge approval
+- AMI: Add CoreShowChannelMap action.
+- .github: Fix issues with cherry-pick-reminder
+- indications: logging changes
+- .github Ignore error when adding reviewrs to PR
+- .github: Update field descriptions for AsteriskReleaser
+- .github: Change title of AsteriskReleaser job
+- .github: Don't add cherry-pick reminder if it's already present
+- .github: Fix quoting in PROpenedOrUpdated
+- .github: Add cherry-pick reminder to new PRs
+- core: Cleanup gerrit and JIRA references. (#40) (#61)
+- .github: Tweak improvement issue type language.
+- .github: Tweak new feature language, and move feature requests elsewhere.
+- .github: Fix staleness check to only run on certain labels.
+- .github: Add AsteriskReleaser
+- cel: add local optimization begin event
+- .github: Fix CherryPickTest to only run when it should
+- .github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS
+- .github: Remove separate set labels step from new PR
+- .github: Refactor CP progress and add new PR test progress
+- .github: Add cherry-pick test progress labels
+- .github: Update issue templates
+- .github: Remove unnecessary parameter in CherryPickTest
+- Initial GitHub PRs
+- Initial GitHub Issue Templates
+- test.c: Fix counting of tests and add 2 new tests
+- res_mixmonitor: MixMonitorMute by MixMonitor ID
+- format_sln: add .slin as supported file extension
+- bridge_builtin_features: add beep via touch variable
+- cli: increase channel column width
+- app_senddtmf: Add option to answer target channel.
+- app_directory: Add a 'skip call' option.
+- app_read: Add an option to return terminator on empty digits.
+- app_directory: add ability to specify configuration file
+
+User Notes:
+----------------------------------------
+
+- ### AMI: Add CoreShowChannelMap action.
+  New AMI action CoreShowChannelMap has been added.
+
+- ### cel: add local optimization begin event
+  The new AST_CEL_LOCAL_OPTIMIZE_BEGIN can be used
+  by itself or in conert with the existing
+  AST_CEL_LOCAL_OPTIMIZE to book-end local channel optimizaion.
+
+- ### app_read: Add an option to return terminator on empty digits.
+  A new option 'e' has been added to allow Read() to return the
+  terminator as the dialed digits in the case where only the terminator
+  is entered.
+
+- ### format_sln: add .slin as supported file extension
+  format_sln now recognizes '.slin' as a valid
+  file extension in addition to the existing
+  '.sln' and '.raw'.
+
+- ### bridge_builtin_features: add beep via touch variable
+  Add optional touch variable : TOUCH_MIXMONITOR_BEEP(interval)
+  Setting TOUCH_MIXMONITOR_BEEP/TOUCH_MONITOR_BEEP to a valid
+  interval in seconds will result in a periodic beep being
+  played to the monitored channel upon MixMontior/Monitor
+  feature start.
+  If an interval less than 5 seconds is specified, the interval
+  will default to 5 seconds.  If the value is set to an invalid
+  interval, the default of 15 seconds will be used.
+
+- ### app_directory: Add a 'skip call' option.
+  A new option 's' has been added to the Directory() application that
+  will skip calling the extension and instead set the extension as
+  DIRECTORY_EXTEN channel variable.
+
+- ### res_mixmonitor: MixMonitorMute by MixMonitor ID
+  It is now possible to specify the MixMonitorID when calling
+  the manager action: MixMonitorMute.  This will allow an
+  individual MixMonitor instance to be muted via ID.
+  The MixMonitorID can be stored as a channel variable using
+  the 'i' MixMonitor option and is returned upon creation if
+  this option is used.
+  As part of this change, if no MixMonitorID is specified in
+  the manager action MixMonitorMute, Asterisk will set the mute
+  flag on all MixMonitor audiohooks on the channel.  Previous
+  behavior would set the flag on the first MixMonitor audiohook
+  found.
+
+- ### app_senddtmf: Add option to answer target channel.
+  A new option has been added to SendDTMF() which will answer the
+  specified channel if it is not already up. If no channel is specified,
+  the current channel will be answered instead.
+
+- ### test.c: Fix counting of tests and add 2 new tests
+  The "tests" attribute of the "testsuite" element in the
+  output XML now reflects only the tests actually requested
+  to be executed instead of all the tests registered.
+  The "failures" attribute was added to the "testsuite"
+  element.
+  Also added two new unit tests that just pass and fail
+  to be used for testing CI itself.
+
+- ### cli: increase channel column width
+  This change increases the display width on 'core show channels'
+  amd 'core show channels verbose'
+  For 'core show channels', the Channel name field is increased to
+  64 characters and the Location name field is increased to 32
+  characters.
+  For 'core show channels verbose', the Channel name field is
+  increased to 80 characters, the Context is increased to 24
+  characters and the Extension is increased to 24 characters.
+
+
+Upgrade Notes:
+----------------------------------------
+
+- ### cel: add local optimization begin event
+  The existing AST_CEL_LOCAL_OPTIMIZE can continue
+  to be used as-is and the AST_CEL_LOCAL_OPTIMIZE_BEGIN event
+  can be ignored if desired.
+
+
+Closed Issues:
+----------------------------------------
+
+  - #39: [Bug]: Remove .gitreview from repository.
+  - #52: [improvement]: Add local optimization begin cel event
+  - #89: [improvement]:  indications: logging changes
+  - #104: [improvement]: Add AMI action to get a list of connected channels
+  - #110: [improvement]: utils - add lock timing information with DEBUG_THREADS
+  - #133: [bug]: unlock channel after moh state access
+  - #145: [bug]: ABI issue with pjproject and pjsip_inv_session
+  - #155: [bug]: GCC 13 is catching a few new trivial issues
+  - #158: [bug]: test_stasis_endpoints.c: Unit test channel_messages is unstable
+  - #188: [improvement]:  pjsip: Upgrade bundled version to pjproject 2.13.1 #187 
+  - #193: [bug]: third-party/apply-patches doesn't sort the patch file list before applying
+
+Commits By Author:
+----------------------------------------
+
+- ### Ben Ford (2):
+  - AMI: Add CoreShowChannelMap action.
+  - res_pjsip_session: Added new function calls to avoid ABI issues.
+
+- ### George Joseph (33):
+  - test.c: Fix counting of tests and add 2 new tests
+  - Initial GitHub Issue Templates
+  - Initial GitHub PRs
+  - .github: Remove unnecessary parameter in CherryPickTest
+  - .github: Update issue templates
+  - .github: Add cherry-pick test progress labels
+  - .github: Refactor CP progress and add new PR test progress
+  - .github: Remove separate set labels step from new PR
+  - .github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS
+  - .github: Fix CherryPickTest to only run when it should
+  - .github: Add AsteriskReleaser
+  - .github: Add cherry-pick reminder to new PRs
+  - .github: Fix quoting in PROpenedOrUpdated
+  - .github: Don't add cherry-pick reminder if it's already present
+  - .github: Change title of AsteriskReleaser job
+  - .github: Update field descriptions for AsteriskReleaser
+  - .github Ignore error when adding reviewrs to PR
+  - .github: Fix issues with cherry-pick-reminder
+  - .github: Rework for merge approval
+  - build: Fix a few gcc 13 issues
+  - test_stasis_endpoints.c: Make channel_messages more stable
+  - test_statis_endpoints:  Fix channel_messages test again
+  - .github: Allow PR submit checks to be re-run by label
+  - .github: Fix recheck label manipulation
+  - .github: Fix recheck label typos
+  - .github: Add recheck label test to additional jobs
+  - .github: Fix use of 'contains'
+  - .github: Remove result check from PROpenUpdateGateTests
+  - .github: Move publish docs to new file CreateDocs.yml
+  - .github: Back out triggering PROpenedOrUpdated by label
+  - .github: Updates for AsteriskReleaser
+  - bundled_pjproject: Backport security fixes from pjproject 2.13.1
+  - apply_patches: Sort patch list before applying
+
+- ### Gitea (1):
+  - .github: Tweak new feature language, and move feature requests elsewhere.
+
+- ### Joshua C. Colp (2):
+  - .github: Fix staleness check to only run on certain labels.
+  - .github: Tweak improvement issue type language.
+
+- ### Mike Bradeen (12):
+  - app_directory: add ability to specify configuration file
+  - app_read: Add an option to return terminator on empty digits.
+  - app_directory: Add a 'skip call' option.
+  - app_senddtmf: Add option to answer target channel.
+  - cli: increase channel column width
+  - bridge_builtin_features: add beep via touch variable
+  - format_sln: add .slin as supported file extension
+  - res_mixmonitor: MixMonitorMute by MixMonitor ID
+  - cel: add local optimization begin event
+  - indications: logging changes
+  - utils: add lock timestamps for DEBUG_THREADS
+  - res_musiconhold: avoid moh state access on unlocked chan
+
+- ### Sean Bright (2):
+  - core: Cleanup gerrit and JIRA references. (#40) (#61)
+  - apply_patches: Use globbing instead of file/sort.
+
+
+Detail:
+----------------------------------------
+
+- ### apply_patches: Use globbing instead of file/sort.
+  Author: Sean Bright  
+  Date:   2023-07-06  
+
+  This accomplishes the same thing as a `find ... | sort` but with the
+  added benefit of clarity and avoiding a call to a subshell.
+
+  Additionally drop the -s option from call to patch as it is not POSIX.
+
+- ### apply_patches: Sort patch list before applying
+  Author: George Joseph  
+  Date:   2023-07-06  
+
+  The apply_patches script wasn't sorting the list of patches in
+  the "patches" directory before applying them. This left the list
+  in an indeterminate order. In most cases, the list is actually
+  sorted but rarely, they can be out of order and cause dependent
+  patches to fail to apply.
+
+  We now sort the list but the "sort" program wasn't in the
+  configure scripts so we needed to add that and regenerate
+  the scripts as well.
+
+  Resolves: #193
+
+- ### bundled_pjproject: Backport security fixes from pjproject 2.13.1
+  Author: George Joseph  
+  Date:   2023-07-05  
+
+  Merge-pull-request-from-GHSA-9pfh-r8x4-w26w.patch
+  Merge-pull-request-from-GHSA-cxwq-5g9x-x7fr.patch
+  Locking-fix-so-that-SSL_shutdown-and-SSL_write-are-n.patch
+  Don-t-call-SSL_shutdown-when-receiving-SSL_ERROR_SYS.patch
+
+  Resolves: #188
+
+- ### .github: Updates for AsteriskReleaser
+  Author: George Joseph  
+  Date:   2023-06-30  
+
+
+- ### res_musiconhold: avoid moh state access on unlocked chan
+  Author: Mike Bradeen  
+  Date:   2023-05-31  
+
+  Move channel unlock to after moh state access to avoid
+  potential unlocked access to state.
+
+  Resolves: #133
+
+- ### utils: add lock timestamps for DEBUG_THREADS
+  Author: Mike Bradeen  
+  Date:   2023-05-23  
+
+  Adds last locked and unlocked timestamps as well as a
+  counter for the number of times the lock has been
+  attempted (vs locked/unlocked) to debug output printed
+  using the DEBUG_THREADS option.
+
+  Resolves: #110
+
+- ### .github: Back out triggering PROpenedOrUpdated by label
+  Author: George Joseph  
+  Date:   2023-06-29  
+
+
+- ### .github: Move publish docs to new file CreateDocs.yml
+  Author: George Joseph  
+  Date:   2023-06-27  
+
+
+- ### .github: Remove result check from PROpenUpdateGateTests
+  Author: George Joseph  
+  Date:   2023-06-27  
+
+
+- ### .github: Fix use of 'contains'
+  Author: George Joseph  
+  Date:   2023-06-26  
+
+
+- ### .github: Add recheck label test to additional jobs
+  Author: George Joseph  
+  Date:   2023-06-26  
+
+
+- ### .github: Fix recheck label typos
+  Author: George Joseph  
+  Date:   2023-06-26  
+
+
+- ### .github: Fix recheck label manipulation
+  Author: George Joseph  
+  Date:   2023-06-26  
+
+
+- ### .github: Allow PR submit checks to be re-run by label
+  Author: George Joseph  
+  Date:   2023-06-26  
+
+
+- ### res_pjsip_session: Added new function calls to avoid ABI issues.
+  Author: Ben Ford  
+  Date:   2023-06-05  
+
+  Added two new functions (ast_sip_session_get_dialog and
+  ast_sip_session_get_pjsip_inv_state) that retrieve the dialog and the
+  pjsip_inv_state respectively from the pjsip_inv_session on the
+  ast_sip_session struct. This is due to pjproject adding a new field to
+  the pjsip_inv_session struct that caused crashes when trying to access
+  fields that were no longer where they were expected to be if a module
+  was compiled against a different version of pjproject.
+
+  Resolves: #145
+
+- ### test_statis_endpoints:  Fix channel_messages test again
+  Author: George Joseph  
+  Date:   2023-06-12  
+
+
+- ### test_stasis_endpoints.c: Make channel_messages more stable
+  Author: George Joseph  
+  Date:   2023-06-09  
+
+  The channel_messages test was assuming that stasis would return
+  messages in a specific order.  This is an incorrect assumption as
+  message ordering was never guaranteed.  This was causing the test
+  to fail occasionally.  We now test all the messages for the
+  required message types instead of testing one by one.
+
+  Resolves: #158
+
+- ### build: Fix a few gcc 13 issues
+  Author: George Joseph  
+  Date:   2023-06-09  
+
+  * gcc 13 is now catching when a function is declared as returning
+    an enum but defined as returning an int or vice versa.  Fixed
+    a few in app.h, loader.c, stasis_message.c.
+
+  * gcc 13 is also now (incorrectly) complaining of dangling pointers
+    when assigning a pointer to a local char array to a char *. Had
+    to change that to an ast_alloca.
+
+  Resolves: #155
+
+- ### .github: Rework for merge approval
+  Author: George Joseph  
+  Date:   2023-06-06  
+
+
+- ### AMI: Add CoreShowChannelMap action.
+  Author: Ben Ford  
+  Date:   2023-05-18  
+
+  Adds a new AMI action (CoreShowChannelMap) that takes in a channel name
+  and provides a list of all channels that are connected to that channel,
+  following local channel connections as well.
+
+  Resolves: #104
+
+  UserNote: New AMI action CoreShowChannelMap has been added.
+
+- ### .github: Fix issues with cherry-pick-reminder
+  Author: George Joseph  
+  Date:   2023-06-05  
+
+
+- ### indications: logging changes
+  Author: Mike Bradeen  
+  Date:   2023-05-16  
+
+  Increase verbosity to indicate failure due to missing country
+  and to specify default on CLI dump
+
+  Resolves: #89
+
+- ### .github Ignore error when adding reviewrs to PR
+  Author: George Joseph  
+  Date:   2023-06-05  
+
+
+- ### .github: Update field descriptions for AsteriskReleaser
+  Author: George Joseph  
+  Date:   2023-05-26  
+
+
+- ### .github: Change title of AsteriskReleaser job
+  Author: George Joseph  
+  Date:   2023-05-23  
+
+
+- ### .github: Don't add cherry-pick reminder if it's already present
+  Author: George Joseph  
+  Date:   2023-05-22  
+
+
+- ### .github: Fix quoting in PROpenedOrUpdated
+  Author: George Joseph  
+  Date:   2023-05-16  
+
+
+- ### .github: Add cherry-pick reminder to new PRs
+  Author: George Joseph  
+  Date:   2023-05-15  
+
+
+- ### core: Cleanup gerrit and JIRA references. (#40) (#61)
+  Author: Sean Bright  
+  Date:   2023-05-10  
+
+  * Remove .gitreview and switch to pulling the main asterisk branch
+    version from configure.ac instead.
+  
+  * Replace references to JIRA with GitHub.
+  
+  * Other minor cleanup found along the way.
+  
+  Resolves: #39
+- ### .github: Tweak improvement issue type language.
+  Author: Joshua C. Colp  
+  Date:   2023-05-09  
+
+
+- ### .github: Tweak new feature language, and move feature requests elsewhere.
+  Author: Gitea  
+  Date:   2023-05-09  
+
+
+- ### .github: Fix staleness check to only run on certain labels.
+  Author: Joshua C. Colp  
+  Date:   2023-05-09  
+
+
+- ### .github: Add AsteriskReleaser
+  Author: George Joseph  
+  Date:   2023-05-05  
+
+
+- ### cel: add local optimization begin event
+  Author: Mike Bradeen  
+  Date:   2023-05-02  
+
+  The current AST_CEL_LOCAL_OPTIMIZE event is and has been
+  triggered on a local optimization end to serve as a flag
+  indicating the event occurred.  This change adds a second
+  AST_CEL_LOCAL_OPTIMIZE_BEGIN event for further detail.
+
+  Resolves: #52
+
+  UpgradeNote: The existing AST_CEL_LOCAL_OPTIMIZE can continue
+  to be used as-is and the AST_CEL_LOCAL_OPTIMIZE_BEGIN event
+  can be ignored if desired.
+
+  UserNote: The new AST_CEL_LOCAL_OPTIMIZE_BEGIN can be used
+  by itself or in conert with the existing
+  AST_CEL_LOCAL_OPTIMIZE to book-end local channel optimizaion.
+
+- ### .github: Fix CherryPickTest to only run when it should
+  Author: George Joseph  
+  Date:   2023-05-03  
+
+  Fixed CherryPickTest so it triggers only on the
+  "cherry-pick-test" label instead of all labels.
+
+- ### .github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS
+  Author: George Joseph  
+  Date:   2023-05-02  
+
+
+- ### .github: Remove separate set labels step from new PR
+  Author: George Joseph  
+  Date:   2023-05-02  
+
+
+- ### .github: Refactor CP progress and add new PR test progress
+  Author: George Joseph  
+  Date:   2023-05-02  
+
+
+- ### .github: Add cherry-pick test progress labels
+  Author: George Joseph  
+  Date:   2023-05-02  
+
+
+- ### .github: Update issue templates
+  Author: George Joseph  
+  Date:   2023-05-01  
+
+
+- ### .github: Remove unnecessary parameter in CherryPickTest
+  Author: George Joseph  
+  Date:   2023-05-01  
+
+
+- ### Initial GitHub PRs
+  Author: George Joseph  
+  Date:   2023-04-28  
+
+
+- ### Initial GitHub Issue Templates
+  Author: George Joseph  
+  Date:   2023-04-28  
+
+
+- ### test.c: Fix counting of tests and add 2 new tests
+  Author: George Joseph  
+  Date:   2023-03-28  
+
+  The unit test XML output was counting all registered tests as "run"
+  even when only a subset were actually requested to be run and
+  the "failures" attribute was missing.
+
+  * The "tests" attribute of the "testsuite" element in the
+    output XML now reflects only the tests actually requested
+    to be executed instead of all the tests registered.
+
+  * The "failures" attribute was added to the "testsuite"
+    element.
+
+  Also added 2 new unit tests that just pass and fail to be
+  used for CI testing.
+
+
+- ### res_mixmonitor: MixMonitorMute by MixMonitor ID
+  Author: Mike Bradeen  
+  Date:   2023-03-13  
+
+  While it is possible to create multiple mixmonitor instances
+  on a channel, it was not previously possible to mute individual
+  instances.
+
+  This change includes the ability to specify the MixMonitorID
+  when calling the manager action: MixMonitorMute.  This will
+  allow an individual MixMonitor instance to be muted via id.
+  This id can be stored as a channel variable using the 'i'
+  MixMonitor option.
+
+  As part of this change, if no MixMonitorID is specified in
+  the manager action MixMonitorMute, Asterisk will set the mute
+  flag on all MixMonitor spy-type audiohooks on the channel.
+  This is done via the new audiohook function:
+  ast_audiohook_set_mute_all.
+
+  ASTERISK-30464
+
+
+- ### format_sln: add .slin as supported file extension
+  Author: Mike Bradeen  
+  Date:   2023-03-14  
+
+  Adds '.slin' to existing supported file extensions:
+  .sln and .raw
+
+  ASTERISK-30465
+
+
+- ### bridge_builtin_features: add beep via touch variable
+  Author: Mike Bradeen  
+  Date:   2023-03-01  
+
+  Add periodic beep option to one-touch recording by setting
+  the touch variable TOUCH_MONITOR_BEEP or
+  TOUCH_MIXMONITOR_BEEP to the desired interval in seconds.
+
+  If the interval is less than 5 seconds, a minimum of 5
+  seconds will be imposed.  If the interval is set to an
+  invalid value, it will default to 15 seconds.
+
+  A new test event PERIODIC_HOOK_ENABLED was added to the
+  func_periodic_hook hook_on function to indicate when
+  a hook is started.  This is so we can test that the touch
+  variable starts the hook as expected.
+
+  ASTERISK-30446
+
+
+- ### cli: increase channel column width
+  Author: Mike Bradeen  
+  Date:   2023-03-06  
+
+  For 'core show channels', the Channel name field is increased
+  to 64 characters and the Location name field is increased to
+  32 characters.
+
+  For 'core show channels verbose', the Channel name field is
+  increased to 80 characters, the Context is increased to 24
+  characters and the Extension is increased to 24 characters.
+
+  ASTERISK-30455
+
+
+- ### app_senddtmf: Add option to answer target channel.
+  Author: Mike Bradeen  
+  Date:   2023-02-06  
+
+  Adds a new option to SendDTMF() which will answer the specified
+  channel if it is not already up. If no channel is specified, the
+  current channel will be answered instead.
+
+  ASTERISK-30422
+
+
+- ### app_directory: Add a 'skip call' option.
+  Author: Mike Bradeen  
+  Date:   2023-01-27  
+
+  Adds 's' option to skip calling the extension and instead set the
+  extension as DIRECTORY_EXTEN channel variable.
+
+  ASTERISK-30405
+
+
+- ### app_read: Add an option to return terminator on empty digits.
+  Author: Mike Bradeen  
+  Date:   2023-01-30  
+
+  Adds 'e' option to allow Read() to return the terminator as the
+  dialed digits in the case where only the terminator is entered.
+
+  ie; if "#" is entered, return "#" if the 'e' option is set and ""
+  if it is not.
+
+  ASTERISK-30411
+
+
+- ### app_directory: add ability to specify configuration file
+  Author: Mike Bradeen  
+  Date:   2023-01-25  
+
+  Adds option to app_directory to specify a filename from which to
+  read configuration instead of voicemail.conf ie;
+
+  same => n,Directory(,,c(directory.conf))
+
+  This configuration should contain a list of extensions using the
+  voicemail.conf format, ie;
+
+  2020=2020,Dog Dog,,,,attach=no|saycid=no|envelope=no|delete=no
+
+  ASTERISK-30404
+
+
diff --git a/CHANGES b/ChangeLogs/historical/CHANGES
similarity index 100%
rename from CHANGES
rename to ChangeLogs/historical/CHANGES
diff --git a/ChangeLog b/ChangeLogs/historical/ChangeLog
similarity index 100%
rename from ChangeLog
rename to ChangeLogs/historical/ChangeLog
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 25d3a8fe3748ae48bf6e3335ec6147db19894eeb..c597cb1ed0488d562a856faee199be68e6e7c806 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -1,3 +1,6 @@
+===== WARNING, THIS FILE IS OBSOLETE AND WILL BE REMOVED IN A FUTURE VERSION =====
+See 'Upgrade Notes' in the CHANGES file
+
 ===========================================================
 ===
 === THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
diff --git a/asterisk-certified-18.9-cert4-summary.html b/asterisk-certified-18.9-cert4-summary.html
deleted file mode 100644
index 3dae71c589df88cd7709a6cede5644a877a45a3a..0000000000000000000000000000000000000000
--- a/asterisk-certified-18.9-cert4-summary.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-certified/18.9-cert4</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-certified/18.9-cert4</h3><h3 align="center">Date: 2023-01-19</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
-<li><a href="#summary">Summary</a></li>
-<li><a href="#contributors">Contributors</a></li>
-<li><a href="#closed_issues">Closed Issues</a></li>
-<li><a href="#open_issues">Open Issues</a></li>
-<li><a href="#diffstat">Diffstat</a></li>
-</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-certified/18.9-cert3.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
-<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
-<tr valign="top"><td width="33%">1 Joshua C. Colp <jcolp@sangoma.com><br/>1 Alexandre Fournier <afournier@wazo.io><br/>1 George Joseph <gjoseph@digium.com><br/></td><td width="33%"><td width="33%">1 Joshua C. Colp <jcolp@digium.com><br/>1 Alexandre Fournier <afournier@wazo.io><br/>1 LA <learbia@gmail.com><br/></td></tr>
-</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Bug</h3><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30369">ASTERISK-30369</a>: res_pjsip: Websockets from same IP shut down when they shouldn't be<br/>Reported by: Joshua C. Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dda609c9df2eebbd7c227d5a7db5586e1344d1a1">[dda609c9df]</a> George Joseph -- res_pjsip_transport_websocket: Add remote port to transport</li>
-</ul><br><h4>Category: Resources/res_pjsip_transport_websocket</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30065">ASTERISK-30065</a>: pjsip: Open Websocket connection is not reused for outgoing requests<br/>Reported by: LA<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c20750bbaf859a3caae408a493dae3c180d49d96">[c20750bbaf]</a> Joshua C. Colp -- res_pjsip_transport_websocket: Also set the remote name.</li>
-</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30065">ASTERISK-30065</a>: pjsip: Open Websocket connection is not reused for outgoing requests<br/>Reported by: LA<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c20750bbaf859a3caae408a493dae3c180d49d96">[c20750bbaf]</a> Joshua C. Colp -- res_pjsip_transport_websocket: Also set the remote name.</li>
-</ul><br><hr><a name="open_issues"><h2 align="center">Open Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all open issues from the issue tracker that were referenced by changes that went into this release.</p><h3>Bug</h3><h4>Category: Resources/res_geolocation</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30346">ASTERISK-30346</a>: Fix NULL dereferencing issue in Geolocation<br/>Reported by: Alexandre Fournier<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=646a9a7ec6da8061b2b9ff34aedc455789035d7c">[646a9a7ec6]</a> Alexandre Fournier -- res_geoloc: fix NULL pointer dereference bug</li>
-</ul><br><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>0 files changed</pre><br></html>
\ No newline at end of file
diff --git a/asterisk-certified-18.9-cert4-summary.txt b/asterisk-certified-18.9-cert4-summary.txt
deleted file mode 100644
index 6873b3370bdfc4bddd3606dfb4e73fd7f8f88216..0000000000000000000000000000000000000000
--- a/asterisk-certified-18.9-cert4-summary.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-                                Release Summary
-
-                         asterisk-certified/18.9-cert4
-
-                                Date: 2023-01-19
-
-                           <asteriskteam@digium.com>
-
-     ----------------------------------------------------------------------
-
-                               Table of Contents
-
-    1. Summary
-    2. Contributors
-    3. Closed Issues
-    4. Open Issues
-    5. Diffstat
-
-     ----------------------------------------------------------------------
-
-                                    Summary
-
-                                 [Back to Top]
-
-   This release is a point release of an existing major version. The changes
-   included were made to address problems that have been identified in this
-   release series, or are minor, backwards compatible new features or
-   improvements. Users should be able to safely upgrade to this version if
-   this release series is already in use. Users considering upgrading from a
-   previous version are strongly encouraged to review the UPGRADE.txt
-   document as well as the CHANGES document for information about upgrading
-   to this release series.
-
-   The data in this summary reflects changes that have been made since the
-   previous release, asterisk-certified/18.9-cert3.
-
-     ----------------------------------------------------------------------
-
-                                  Contributors
-
-                                 [Back to Top]
-
-   This table lists the people who have submitted code, those that have
-   tested patches, as well as those that reported issues on the issue tracker
-   that were resolved in this release. For coders, the number is how many of
-   their patches (of any size) were committed into this release. For testers,
-   the number is the number of times their name was listed as assisting with
-   testing a patch. Finally, for reporters, the number is the number of
-   issues that they reported that were affected by commits that went into
-   this release.
-
-   Coders                   Testers                  Reporters                
-   1 Joshua C. Colp                                  1 Joshua C. Colp         
-   1 Alexandre Fournier                              1 Alexandre Fournier     
-   1 George Joseph                                   1 LA                     
-
-     ----------------------------------------------------------------------
-
-                                 Closed Issues
-
-                                 [Back to Top]
-
-   This is a list of all issues from the issue tracker that were closed by
-   changes that went into this release.
-
-  Bug
-
-    Category: Resources/res_pjsip
-
-   ASTERISK-30369: res_pjsip: Websockets from same IP shut down when they
-   shouldn't be
-   Reported by: Joshua C. Colp
-     * [dda609c9df] George Joseph -- res_pjsip_transport_websocket: Add
-       remote port to transport
-
-    Category: Resources/res_pjsip_transport_websocket
-
-   ASTERISK-30065: pjsip: Open Websocket connection is not reused for
-   outgoing requests
-   Reported by: LA
-     * [c20750bbaf] Joshua C. Colp -- res_pjsip_transport_websocket: Also set
-       the remote name.
-
-    Category: pjproject/pjsip
-
-   ASTERISK-30065: pjsip: Open Websocket connection is not reused for
-   outgoing requests
-   Reported by: LA
-     * [c20750bbaf] Joshua C. Colp -- res_pjsip_transport_websocket: Also set
-       the remote name.
-
-     ----------------------------------------------------------------------
-
-                                  Open Issues
-
-                                 [Back to Top]
-
-   This is a list of all open issues from the issue tracker that were
-   referenced by changes that went into this release.
-
-  Bug
-
-    Category: Resources/res_geolocation
-
-   ASTERISK-30346: Fix NULL dereferencing issue in Geolocation
-   Reported by: Alexandre Fournier
-     * [646a9a7ec6] Alexandre Fournier -- res_geoloc: fix NULL pointer
-       dereference bug
-
-     ----------------------------------------------------------------------
-
-                                Diffstat Results
-
-                                 [Back to Top]
-
-   This is a summary of the changes to the source code that went into this
-   release that was generated using the diffstat utility.
-
- 0 files changed
diff --git a/contrib/realtime/mysql/mysql_queue_log.sql b/contrib/realtime/mysql/mysql_queue_log.sql
new file mode 100644
index 0000000000000000000000000000000000000000..13dde964c29793ddd8452b0f1a1dcf21ac971ac9
--- /dev/null
+++ b/contrib/realtime/mysql/mysql_queue_log.sql
@@ -0,0 +1,29 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL, 
+    CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
+);
+
+-- Running upgrade  -> 4105ee839f58
+
+CREATE TABLE queue_log (
+    id BIGSERIAL NOT NULL, 
+    time TIMESTAMP WITHOUT TIME ZONE, 
+    callid VARCHAR(80), 
+    queuename VARCHAR(256), 
+    agent VARCHAR(80), 
+    event VARCHAR(32), 
+    data1 VARCHAR(100), 
+    data2 VARCHAR(100), 
+    data3 VARCHAR(100), 
+    data4 VARCHAR(100), 
+    data5 VARCHAR(100), 
+    PRIMARY KEY (id), 
+    UNIQUE (id)
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58');
+
+COMMIT;
+
diff --git a/contrib/realtime/postgresql/postgresql_queue_log.sql b/contrib/realtime/postgresql/postgresql_queue_log.sql
new file mode 100644
index 0000000000000000000000000000000000000000..13dde964c29793ddd8452b0f1a1dcf21ac971ac9
--- /dev/null
+++ b/contrib/realtime/postgresql/postgresql_queue_log.sql
@@ -0,0 +1,29 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL, 
+    CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
+);
+
+-- Running upgrade  -> 4105ee839f58
+
+CREATE TABLE queue_log (
+    id BIGSERIAL NOT NULL, 
+    time TIMESTAMP WITHOUT TIME ZONE, 
+    callid VARCHAR(80), 
+    queuename VARCHAR(256), 
+    agent VARCHAR(80), 
+    event VARCHAR(32), 
+    data1 VARCHAR(100), 
+    data2 VARCHAR(100), 
+    data3 VARCHAR(100), 
+    data4 VARCHAR(100), 
+    data5 VARCHAR(100), 
+    PRIMARY KEY (id), 
+    UNIQUE (id)
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58');
+
+COMMIT;
+