Update for certified-18.9-cert15

This commit is contained in:
Asterisk Development Team
2025-06-02 13:37:30 +00:00
parent 27d283c93c
commit 754fb5fa4f
11 changed files with 942 additions and 123 deletions

View File

@@ -1 +1 @@
certified-18.9-cert14
certified-18.9-cert15

View File

@@ -1 +1 @@
ChangeLogs/ChangeLog-certified-18.9-cert14.html
ChangeLogs/ChangeLog-certified-18.9-cert15.html

View File

@@ -1 +1 @@
ChangeLogs/ChangeLog-certified-18.9-cert14.md
ChangeLogs/ChangeLog-certified-18.9-cert15.md

View File

@@ -0,0 +1,370 @@
<html><head><title>ChangeLog for asterisk-certified-18.9-cert15</title></head><body>
<h2>Change Log for Release asterisk-certified-18.9-cert15</h2>
<h3>Links:</h3>
<ul>
<li><a href="https://downloads.asterisk.org/pub/telephony/certified-asterisk/releases/ChangeLog-certified-18.9-cert15.html">Full ChangeLog</a> </li>
<li><a href="https://github.com/asterisk/asterisk/compare/certified-18.9-cert14...certified-18.9-cert15">GitHub Diff</a> </li>
<li><a href="https://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-18.9-cert15.tar.gz">Tarball</a> </li>
<li><a href="https://downloads.asterisk.org/pub/telephony/certified-asterisk">Downloads</a> </li>
</ul>
<h3>Summary:</h3>
<ul>
<li>Commits: 25</li>
<li>Commit Authors: 8</li>
<li>Issues Resolved: 10</li>
<li>Security Advisories Resolved: 0</li>
</ul>
<h3>User Notes:</h3>
<ul>
<li>
<h4>res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"</h4>
<p>The new "suppress_moh_on_sendonly" endpoint option
can be used to prevent playing MOH back to a caller if the remote
end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP.</p>
</li>
<li>
<h4>app_mixmonitor: Add 'D' option for dual-channel audio.</h4>
<p>The MixMonitor application now has a new 'D' option which
interleaves the recorded audio in the output frames. This allows for
stereo recording output with one channel being the transmitted audio and
the other being the received audio. The 't' and 't' options are
compatible with this.</p>
</li>
</ul>
<h3>Upgrade Notes:</h3>
<h3>Commit Authors:</h3>
<ul>
<li>Ben Ford: (2)</li>
<li>George Joseph: (12)</li>
<li>Joshua C. Colp: (1)</li>
<li>Marcel Wagner: (1)</li>
<li>Mike Bradeen: (1)</li>
<li>Naveen Albert: (1)</li>
<li>Sean Bright: (6)</li>
<li>Shyju Kanaprath: (1)</li>
</ul>
<h2>Issue and Commit Detail:</h2>
<h3>Closed Issues:</h3>
<ul>
<li>430: [bug]: Fix broken links</li>
<li>527: [bug]: app_voicemail_odbc no longer working after removal of macrocontext.</li>
<li>937: [bug]: Wrong format for sample config file 'geolocation.conf.sample'</li>
<li>938: [bug]: memory leak - CBAnn leaks a small amount format_cap related memory for every confbridge</li>
<li>945: [improvement]: Add stereo recording support for app_mixmonitor</li>
<li>979: [improvement]: Add ability to suppress MOH when a remote endpoint sends "sendonly" or "inactive"</li>
<li>982: [bug]: The addition of tenantid to the ast_sip_endpoint structure broke ABI compatibility</li>
<li>995: [bug]: suppress_moh_on_sendonly should use AST_BOOL_VALUES instead of YESNO_VALUES in alembic script</li>
<li>1131: [bug]: CHANGES link broken in README.md</li>
<li>ASTERISK-29976: Should Readme include information about install_prereq script?</li>
</ul>
<h3>Commits By Author:</h3>
<ul>
<li>
<h4>Ben Ford (2):</h4>
</li>
<li>app_mixmonitor: Add 'D' option for dual-channel audio.</li>
<li>
<p>documentation: Update Gosub, Goto, and add new documentationtype.</p>
</li>
<li>
<h4>George Joseph (12):</h4>
</li>
<li>Fix application references to Background</li>
<li>manager.c: Add unit test for Originate app and appdata permissions</li>
<li>geolocation.sample.conf: Fix comment marker at end of file</li>
<li>core_unreal.c: Fix memory leak in ast_unreal_new_channels()</li>
<li>res_pjsip: Move tenantid to end of ast_sip_endpoint</li>
<li>res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"</li>
<li>res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T</li>
<li>gcc14: Fix issues caught by gcc 14</li>
<li>README.md, asterisk.c: Update Copyright Dates</li>
<li>README.md: Updates and Fixes</li>
<li>build_tools: Backport from 18</li>
<li>
<p>res_pjsip: Backport pjsip uri utilities.</p>
</li>
<li>
<h4>Joshua C. Colp (1):</h4>
</li>
<li>
<p>LICENSE: Update company name, email, and address.</p>
</li>
<li>
<h4>Marcel Wagner (1):</h4>
</li>
<li>
<p>documentation: Add information on running install_prereq script in readme</p>
</li>
<li>
<h4>Mike Bradeen (1):</h4>
</li>
<li>
<p>app_voicemail: add NoOp alembic script to maintain sync</p>
</li>
<li>
<h4>Naveen Albert (1):</h4>
</li>
<li>
<p>general: Fix broken links.</p>
</li>
<li>
<h4>Sean Bright (6):</h4>
</li>
<li>res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery</li>
<li>alembic: Drop redundant voicemail_messages index.</li>
<li>manager.c: Rename restrictedFile to is_restricted_file.</li>
<li>xml.c: Update deprecated libxml2 API usage.</li>
<li>chan_dahdi.c: Resolve a format-truncation build warning.</li>
<li>
<p>chan_sip.c: Fix __sip_reliable_xmit build error</p>
</li>
<li>
<h4>Shyju Kanaprath (1):</h4>
</li>
<li>README.md: Removed outdated link</li>
</ul>
<h3>Commit List:</h3>
<ul>
<li>res_pjsip: Backport pjsip uri utilities.</li>
<li>build_tools: Backport from 18</li>
<li>chan_sip.c: Fix __sip_reliable_xmit build error</li>
<li>chan_dahdi.c: Resolve a format-truncation build warning.</li>
<li>xml.c: Update deprecated libxml2 API usage.</li>
<li>documentation: Update Gosub, Goto, and add new documentationtype.</li>
<li>README.md: Updates and Fixes</li>
<li>README.md: Removed outdated link</li>
<li>general: Fix broken links.</li>
<li>documentation: Add information on running install_prereq script in readme</li>
<li>LICENSE: Update company name, email, and address.</li>
<li>README.md, asterisk.c: Update Copyright Dates</li>
<li>manager.c: Rename restrictedFile to is_restricted_file.</li>
<li>gcc14: Fix issues caught by gcc 14</li>
<li>res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T</li>
<li>res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"</li>
<li>res_pjsip: Move tenantid to end of ast_sip_endpoint</li>
<li>app_mixmonitor: Add 'D' option for dual-channel audio.</li>
<li>core_unreal.c: Fix memory leak in ast_unreal_new_channels()</li>
<li>geolocation.sample.conf: Fix comment marker at end of file</li>
<li>manager.c: Add unit test for Originate app and appdata permissions</li>
<li>alembic: Drop redundant voicemail_messages index.</li>
<li>app_voicemail: add NoOp alembic script to maintain sync</li>
<li>res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery</li>
<li>Fix application references to Background</li>
</ul>
<h3>Commit Details:</h3>
<h4>res_pjsip: Backport pjsip uri utilities.</h4>
<p>Author: George Joseph
Date: 2025-03-25</p>
<p>The following utilities have been backported:</p>
<p>ast_sip_is_uri_sip_sips
ast_sip_is_allowed_uri
ast_sip_pjsip_uri_get_username
ast_sip_pjsip_uri_get_hostname
ast_sip_pjsip_uri_get_other_param</p>
<p>They were originally included in the commit for supporting TEL uris.
Support for TEL uris is NOT included here however.</p>
<h4>build_tools: Backport from 18</h4>
<p>Author: George Joseph
Date: 2025-03-25</p>
<p>There are several build fixes that never made it into certified/18.9.
Unfortunately the commits that contained the fixes also contained other
stuff that won't cherry-pick into cert so the build files had to be
just copied from 18.</p>
<h4>chan_sip.c: Fix __sip_reliable_xmit build error</h4>
<p>Author: Sean Bright
Date: 2024-10-17</p>
<p>Fixes #954</p>
<h4>chan_dahdi.c: Resolve a format-truncation build warning.</h4>
<p>Author: Sean Bright
Date: 2022-08-19</p>
<p>With gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0:</p>
<blockquote>
<p>chan_dahdi.c:4129:18: error: %s directive output may be truncated
writing up to 255 bytes into a region of size between 242 and 252
[-Werror=format-truncation=]</p>
</blockquote>
<p>This removes the error-prone sizeof(...) calculations in favor of just
doubling the size of the base buffer.</p>
<h4>xml.c: Update deprecated libxml2 API usage.</h4>
<p>Author: Sean Bright
Date: 2024-05-23</p>
<p>Two functions are deprecated as of libxml2 2.12:</p>
<pre><code>* xmlSubstituteEntitiesDefault
* xmlParseMemory
</code></pre>
<p>So we update those with supported API.</p>
<p>Additionally, <code>res_calendar_caldav</code> has been updated to use libxml2's
xmlreader API instead of the SAX2 API which has always felt a little
hacky (see deleted comment block in <code>res_calendar_caldav.c</code>).</p>
<p>The xmlreader API has been around since libxml2 2.5.0 which was
released in 2003.</p>
<p>Fixes #725</p>
<h4>documentation: Update Gosub, Goto, and add new documentationtype.</h4>
<p>Author: Ben Ford
Date: 2025-03-14</p>
<p>Gosub and Goto were not displaying their syntax correctly on the docs
site. This change adds a new way to specify an optional context, an
optional extension, and a required priority that the xml stylesheet can
parse without having to know which optional parameters come in which
order. In Asterisk, it looks like this:</p>
<pre><code>parameter name="context" documentationtype="dialplan_context"
parameter name="extension" documentationtype="dialplan_extension"
parameter name="priority" documentationtype="dialplan_priority" required="true"
</code></pre>
<p>The stylesheet will ignore the context and extension parameters, but for
priority, it will automatically inject the following:</p>
<pre><code>[[context,]extension,]priority
</code></pre>
<p>This is the correct oder for applications such as Gosub and Goto.</p>
<h4>README.md: Updates and Fixes</h4>
<p>Author: George Joseph
Date: 2025-03-05</p>
<ul>
<li>Outdated information has been removed.</li>
<li>New links added.</li>
<li>Placeholder added for link to change logs.</li>
</ul>
<p>Going forward, the release process will create HTML versions of the README
and change log and will update the link in the README to the current
change log for the branch...</p>
<ul>
<li>In the development branches, the link will always point to the current
release on GitHub.</li>
<li>In the "releases/*" branches and the tarballs, the link will point to the
ChangeLogs/ChangeLog-<version>.html file in the source directory.</li>
<li>On the downloads website, the link will point to the
ChangeLog-<version>.html file in the same directory.</li>
</ul>
<p>Resolves: #1131</p>
<h4>README.md: Removed outdated link</h4>
<p>Author: Shyju Kanaprath
Date: 2024-02-23</p>
<p>Removed outdated link http://www.quicknet.net from README.md</p>
<p>cherry-pick-to: 18
cherry-pick-to: 20
cherry-pick-to: 21</p>
<h4>general: Fix broken links.</h4>
<p>Author: Naveen Albert
Date: 2023-11-09</p>
<p>This fixes a number of broken links throughout the
tree, mostly caused by wiki.asterisk.org being replaced
with docs.asterisk.org, which should eliminate the
need for sporadic fixes as in f28047db36a70e81fe373a3d19132c43adf3f74b.</p>
<p>Resolves: #430</p>
<h4>documentation: Add information on running install_prereq script in readme</h4>
<p>Author: Marcel Wagner
Date: 2022-03-23</p>
<p>Adding information in the readme about running the install_preqreq script to install components that the ./configure script might indicate as missing.</p>
<p>ASTERISK-29976 #close</p>
<h4>LICENSE: Update company name, email, and address.</h4>
<p>Author: Joshua C. Colp
Date: 2025-01-21</p>
<h4>README.md, asterisk.c: Update Copyright Dates</h4>
<p>Author: George Joseph
Date: 2025-01-20</p>
<h4>manager.c: Rename restrictedFile to is_restricted_file.</h4>
<p>Author: Sean Bright
Date: 2025-01-09</p>
<p>Also correct the spelling of 'privileges.'</p>
<h4>gcc14: Fix issues caught by gcc 14</h4>
<p>Author: George Joseph
Date: 2025-01-03</p>
<ul>
<li>reqresp_parser.c: Fix misuse of "static" with linked list definitions</li>
<li>test_message.c: Fix segfaults caused by passing NULL as an sprintf fmt</li>
</ul>
<h4>res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T</h4>
<p>Author: George Joseph
Date: 2024-11-15</p>
<p>The suppress_moh_on_sendonly endpoint option should have been
defined as OPT_BOOL_T in pjsip_configuration.c and AST_BOOL_VALUES
in the alembic script instead of OPT_YESNO_T and YESNO_VALUES.</p>
<p>Also updated contrib/ast-db-manage/README.md to indicate that
AST_BOOL_VALUES should always be used and provided an example.</p>
<p>Resolves: #995</p>
<h4>res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"</h4>
<p>Author: George Joseph
Date: 2024-11-05</p>
<p>Normally, when one party in a call sends Asterisk an SDP with
a "sendonly" or "inactive" attribute it means "hold" and causes
Asterisk to start playing MOH back to the other party. This can be
problematic if it happens at certain times, such as in a 183
Progress message, because the MOH will replace any early media you
may be playing to the calling party. If you set this option
to "yes" on an endpoint and the endpoint receives an SDP
with "sendonly" or "inactive", Asterisk will NOT play MOH back to
the other party.</p>
<p>Resolves: #979</p>
<p>UserNote: The new "suppress_moh_on_sendonly" endpoint option
can be used to prevent playing MOH back to a caller if the remote
end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP.</p>
<h4>res_pjsip: Move tenantid to end of ast_sip_endpoint</h4>
<p>Author: George Joseph
Date: 2024-11-06</p>
<p>The tenantid field was originally added to the ast_sip_endpoint
structure at the end of the AST_DECLARE_STRING_FIELDS block. This
caused everything after it in the structure to move down in memory
and break ABI compatibility. It's now at the end of the structure
as an AST_STRING_FIELD_EXTENDED. Given the number of string fields
in the structure now, the initial string field allocation was
also increased from 64 to 128 bytes.</p>
<p>Resolves: #982</p>
<h4>app_mixmonitor: Add 'D' option for dual-channel audio.</h4>
<p>Author: Ben Ford
Date: 2024-10-28</p>
<p>Adds the 'D' option to app_mixmonitor that interleaves the input and
output frames of the channel being recorded in the monitor output frame.
This allows for two streams in the recording: the transmitted audio and
the received audio. The 't' and 'r' options are compatible with this.</p>
<p>Fixes: #945</p>
<p>UserNote: The MixMonitor application now has a new 'D' option which
interleaves the recorded audio in the output frames. This allows for
stereo recording output with one channel being the transmitted audio and
the other being the received audio. The 't' and 't' options are
compatible with this.</p>
<h4>core_unreal.c: Fix memory leak in ast_unreal_new_channels()</h4>
<p>Author: George Joseph
Date: 2024-10-15</p>
<p>When the channel tech is multistream capable, the reference to
chan_topology was passed to the new channel. When the channel tech
isn't multistream capable, the reference to chan_topology was never
released. "Local" channels are multistream capable so it didn't
affect them but the confbridge "CBAnn" and the bridge_media
"Recorder" channels are not so they caused a leak every time one
of them was created.</p>
<p>Also added tracing to ast_stream_topology_alloc() and
stream_topology_destroy() to assist with debugging.</p>
<p>Resolves: #938</p>
<h4>geolocation.sample.conf: Fix comment marker at end of file</h4>
<p>Author: George Joseph
Date: 2024-10-08</p>
<p>Resolves: #937</p>
<h4>manager.c: Add unit test for Originate app and appdata permissions</h4>
<p>Author: George Joseph
Date: 2024-10-03</p>
<p>This unit test checks that dialplan apps and app data specified
as parameters for the Originate action are allowed with the
permissions the user has.</p>
<h4>alembic: Drop redundant voicemail_messages index.</h4>
<p>Author: Sean Bright
Date: 2024-09-26</p>
<p>The <code>voicemail_messages_dir</code> index is a left prefix of the table's
primary key and therefore unnecessary.</p>
<h4>app_voicemail: add NoOp alembic script to maintain sync</h4>
<p>Author: Mike Bradeen
Date: 2024-01-17</p>
<p>Adding a NoOp alembic script for the voicemail database to maintain
version sync with other branches.</p>
<p>Fixes: #527</p>
<h4>res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery</h4>
<p>Author: Sean Bright
Date: 2024-09-23</p>
<p>Fixes #895</p>
<h4>Fix application references to Background</h4>
<p>Author: George Joseph
Date: 2024-09-20</p>
<p>The app is actually named "BackGround" but several references
in XML documentation were spelled "Background" with the lower
case "g". This was causing documentation links to return
"not found" messages.</p>
</body></html>

View File

@@ -0,0 +1,433 @@
## Change Log for Release asterisk-certified-18.9-cert15
### Links:
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/certified-asterisk/releases/ChangeLog-certified-18.9-cert15.html)
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/certified-18.9-cert14...certified-18.9-cert15)
- [Tarball](https://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-18.9-cert15.tar.gz)
- [Downloads](https://downloads.asterisk.org/pub/telephony/certified-asterisk)
### Summary:
- Commits: 25
- Commit Authors: 8
- Issues Resolved: 10
- Security Advisories Resolved: 0
### User Notes:
- #### res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
The new "suppress_moh_on_sendonly" endpoint option
can be used to prevent playing MOH back to a caller if the remote
end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP.
- #### app_mixmonitor: Add 'D' option for dual-channel audio.
The MixMonitor application now has a new 'D' option which
interleaves the recorded audio in the output frames. This allows for
stereo recording output with one channel being the transmitted audio and
the other being the received audio. The 't' and 't' options are
compatible with this.
### Upgrade Notes:
### Commit Authors:
- Ben Ford: (2)
- George Joseph: (12)
- Joshua C. Colp: (1)
- Marcel Wagner: (1)
- Mike Bradeen: (1)
- Naveen Albert: (1)
- Sean Bright: (6)
- Shyju Kanaprath: (1)
## Issue and Commit Detail:
### Closed Issues:
- 430: [bug]: Fix broken links
- 527: [bug]: app_voicemail_odbc no longer working after removal of macrocontext.
- 937: [bug]: Wrong format for sample config file 'geolocation.conf.sample'
- 938: [bug]: memory leak - CBAnn leaks a small amount format_cap related memory for every confbridge
- 945: [improvement]: Add stereo recording support for app_mixmonitor
- 979: [improvement]: Add ability to suppress MOH when a remote endpoint sends "sendonly" or "inactive"
- 982: [bug]: The addition of tenantid to the ast_sip_endpoint structure broke ABI compatibility
- 995: [bug]: suppress_moh_on_sendonly should use AST_BOOL_VALUES instead of YESNO_VALUES in alembic script
- 1131: [bug]: CHANGES link broken in README.md
- ASTERISK-29976: Should Readme include information about install_prereq script?
### Commits By Author:
- #### Ben Ford (2):
- app_mixmonitor: Add 'D' option for dual-channel audio.
- documentation: Update Gosub, Goto, and add new documentationtype.
- #### George Joseph (12):
- Fix application references to Background
- manager.c: Add unit test for Originate app and appdata permissions
- geolocation.sample.conf: Fix comment marker at end of file
- core_unreal.c: Fix memory leak in ast_unreal_new_channels()
- res_pjsip: Move tenantid to end of ast_sip_endpoint
- res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
- res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T
- gcc14: Fix issues caught by gcc 14
- README.md, asterisk.c: Update Copyright Dates
- README.md: Updates and Fixes
- build_tools: Backport from 18
- res_pjsip: Backport pjsip uri utilities.
- #### Joshua C. Colp (1):
- LICENSE: Update company name, email, and address.
- #### Marcel Wagner (1):
- documentation: Add information on running install_prereq script in readme
- #### Mike Bradeen (1):
- app_voicemail: add NoOp alembic script to maintain sync
- #### Naveen Albert (1):
- general: Fix broken links.
- #### Sean Bright (6):
- res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery
- alembic: Drop redundant voicemail_messages index.
- manager.c: Rename restrictedFile to is_restricted_file.
- xml.c: Update deprecated libxml2 API usage.
- chan_dahdi.c: Resolve a format-truncation build warning.
- chan_sip.c: Fix __sip_reliable_xmit build error
- #### Shyju Kanaprath (1):
- README.md: Removed outdated link
### Commit List:
- res_pjsip: Backport pjsip uri utilities.
- build_tools: Backport from 18
- chan_sip.c: Fix __sip_reliable_xmit build error
- chan_dahdi.c: Resolve a format-truncation build warning.
- xml.c: Update deprecated libxml2 API usage.
- documentation: Update Gosub, Goto, and add new documentationtype.
- README.md: Updates and Fixes
- README.md: Removed outdated link
- general: Fix broken links.
- documentation: Add information on running install_prereq script in readme
- LICENSE: Update company name, email, and address.
- README.md, asterisk.c: Update Copyright Dates
- manager.c: Rename restrictedFile to is_restricted_file.
- gcc14: Fix issues caught by gcc 14
- res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T
- res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
- res_pjsip: Move tenantid to end of ast_sip_endpoint
- app_mixmonitor: Add 'D' option for dual-channel audio.
- core_unreal.c: Fix memory leak in ast_unreal_new_channels()
- geolocation.sample.conf: Fix comment marker at end of file
- manager.c: Add unit test for Originate app and appdata permissions
- alembic: Drop redundant voicemail_messages index.
- app_voicemail: add NoOp alembic script to maintain sync
- res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery
- Fix application references to Background
### Commit Details:
#### res_pjsip: Backport pjsip uri utilities.
Author: George Joseph
Date: 2025-03-25
The following utilities have been backported:
ast_sip_is_uri_sip_sips
ast_sip_is_allowed_uri
ast_sip_pjsip_uri_get_username
ast_sip_pjsip_uri_get_hostname
ast_sip_pjsip_uri_get_other_param
They were originally included in the commit for supporting TEL uris.
Support for TEL uris is NOT included here however.
#### build_tools: Backport from 18
Author: George Joseph
Date: 2025-03-25
There are several build fixes that never made it into certified/18.9.
Unfortunately the commits that contained the fixes also contained other
stuff that won't cherry-pick into cert so the build files had to be
just copied from 18.
#### chan_sip.c: Fix __sip_reliable_xmit build error
Author: Sean Bright
Date: 2024-10-17
Fixes #954
#### chan_dahdi.c: Resolve a format-truncation build warning.
Author: Sean Bright
Date: 2022-08-19
With gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0:
> chan_dahdi.c:4129:18: error: %s directive output may be truncated
> writing up to 255 bytes into a region of size between 242 and 252
> [-Werror=format-truncation=]
This removes the error-prone sizeof(...) calculations in favor of just
doubling the size of the base buffer.
#### xml.c: Update deprecated libxml2 API usage.
Author: Sean Bright
Date: 2024-05-23
Two functions are deprecated as of libxml2 2.12:
* xmlSubstituteEntitiesDefault
* xmlParseMemory
So we update those with supported API.
Additionally, `res_calendar_caldav` has been updated to use libxml2's
xmlreader API instead of the SAX2 API which has always felt a little
hacky (see deleted comment block in `res_calendar_caldav.c`).
The xmlreader API has been around since libxml2 2.5.0 which was
released in 2003.
Fixes #725
#### documentation: Update Gosub, Goto, and add new documentationtype.
Author: Ben Ford
Date: 2025-03-14
Gosub and Goto were not displaying their syntax correctly on the docs
site. This change adds a new way to specify an optional context, an
optional extension, and a required priority that the xml stylesheet can
parse without having to know which optional parameters come in which
order. In Asterisk, it looks like this:
parameter name="context" documentationtype="dialplan_context"
parameter name="extension" documentationtype="dialplan_extension"
parameter name="priority" documentationtype="dialplan_priority" required="true"
The stylesheet will ignore the context and extension parameters, but for
priority, it will automatically inject the following:
[[context,]extension,]priority
This is the correct oder for applications such as Gosub and Goto.
#### README.md: Updates and Fixes
Author: George Joseph
Date: 2025-03-05
* Outdated information has been removed.
* New links added.
* Placeholder added for link to change logs.
Going forward, the release process will create HTML versions of the README
and change log and will update the link in the README to the current
change log for the branch...
* In the development branches, the link will always point to the current
release on GitHub.
* In the "releases/*" branches and the tarballs, the link will point to the
ChangeLogs/ChangeLog-<version>.html file in the source directory.
* On the downloads website, the link will point to the
ChangeLog-<version>.html file in the same directory.
Resolves: #1131
#### README.md: Removed outdated link
Author: Shyju Kanaprath
Date: 2024-02-23
Removed outdated link http://www.quicknet.net from README.md
cherry-pick-to: 18
cherry-pick-to: 20
cherry-pick-to: 21
#### general: Fix broken links.
Author: Naveen Albert
Date: 2023-11-09
This fixes a number of broken links throughout the
tree, mostly caused by wiki.asterisk.org being replaced
with docs.asterisk.org, which should eliminate the
need for sporadic fixes as in f28047db36a70e81fe373a3d19132c43adf3f74b.
Resolves: #430
#### documentation: Add information on running install_prereq script in readme
Author: Marcel Wagner
Date: 2022-03-23
Adding information in the readme about running the install_preqreq script to install components that the ./configure script might indicate as missing.
ASTERISK-29976 #close
#### LICENSE: Update company name, email, and address.
Author: Joshua C. Colp
Date: 2025-01-21
#### README.md, asterisk.c: Update Copyright Dates
Author: George Joseph
Date: 2025-01-20
#### manager.c: Rename restrictedFile to is_restricted_file.
Author: Sean Bright
Date: 2025-01-09
Also correct the spelling of 'privileges.'
#### gcc14: Fix issues caught by gcc 14
Author: George Joseph
Date: 2025-01-03
* reqresp_parser.c: Fix misuse of "static" with linked list definitions
* test_message.c: Fix segfaults caused by passing NULL as an sprintf fmt
#### res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T
Author: George Joseph
Date: 2024-11-15
The suppress_moh_on_sendonly endpoint option should have been
defined as OPT_BOOL_T in pjsip_configuration.c and AST_BOOL_VALUES
in the alembic script instead of OPT_YESNO_T and YESNO_VALUES.
Also updated contrib/ast-db-manage/README.md to indicate that
AST_BOOL_VALUES should always be used and provided an example.
Resolves: #995
#### res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
Author: George Joseph
Date: 2024-11-05
Normally, when one party in a call sends Asterisk an SDP with
a "sendonly" or "inactive" attribute it means "hold" and causes
Asterisk to start playing MOH back to the other party. This can be
problematic if it happens at certain times, such as in a 183
Progress message, because the MOH will replace any early media you
may be playing to the calling party. If you set this option
to "yes" on an endpoint and the endpoint receives an SDP
with "sendonly" or "inactive", Asterisk will NOT play MOH back to
the other party.
Resolves: #979
UserNote: The new "suppress_moh_on_sendonly" endpoint option
can be used to prevent playing MOH back to a caller if the remote
end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP.
#### res_pjsip: Move tenantid to end of ast_sip_endpoint
Author: George Joseph
Date: 2024-11-06
The tenantid field was originally added to the ast_sip_endpoint
structure at the end of the AST_DECLARE_STRING_FIELDS block. This
caused everything after it in the structure to move down in memory
and break ABI compatibility. It's now at the end of the structure
as an AST_STRING_FIELD_EXTENDED. Given the number of string fields
in the structure now, the initial string field allocation was
also increased from 64 to 128 bytes.
Resolves: #982
#### app_mixmonitor: Add 'D' option for dual-channel audio.
Author: Ben Ford
Date: 2024-10-28
Adds the 'D' option to app_mixmonitor that interleaves the input and
output frames of the channel being recorded in the monitor output frame.
This allows for two streams in the recording: the transmitted audio and
the received audio. The 't' and 'r' options are compatible with this.
Fixes: #945
UserNote: The MixMonitor application now has a new 'D' option which
interleaves the recorded audio in the output frames. This allows for
stereo recording output with one channel being the transmitted audio and
the other being the received audio. The 't' and 't' options are
compatible with this.
#### core_unreal.c: Fix memory leak in ast_unreal_new_channels()
Author: George Joseph
Date: 2024-10-15
When the channel tech is multistream capable, the reference to
chan_topology was passed to the new channel. When the channel tech
isn't multistream capable, the reference to chan_topology was never
released. "Local" channels are multistream capable so it didn't
affect them but the confbridge "CBAnn" and the bridge_media
"Recorder" channels are not so they caused a leak every time one
of them was created.
Also added tracing to ast_stream_topology_alloc() and
stream_topology_destroy() to assist with debugging.
Resolves: #938
#### geolocation.sample.conf: Fix comment marker at end of file
Author: George Joseph
Date: 2024-10-08
Resolves: #937
#### manager.c: Add unit test for Originate app and appdata permissions
Author: George Joseph
Date: 2024-10-03
This unit test checks that dialplan apps and app data specified
as parameters for the Originate action are allowed with the
permissions the user has.
#### alembic: Drop redundant voicemail_messages index.
Author: Sean Bright
Date: 2024-09-26
The `voicemail_messages_dir` index is a left prefix of the table's
primary key and therefore unnecessary.
#### app_voicemail: add NoOp alembic script to maintain sync
Author: Mike Bradeen
Date: 2024-01-17
Adding a NoOp alembic script for the voicemail database to maintain
version sync with other branches.
Fixes: #527
#### res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery
Author: Sean Bright
Date: 2024-09-23
Fixes #895
#### Fix application references to Background
Author: George Joseph
Date: 2024-09-20
The app is actually named "BackGround" but several references
in XML documentation were spelled "Background" with the lower
case "g". This was causing documentation links to return
"not found" messages.

View File

@@ -1,25 +1,22 @@
<html><head><title>Readme for asterisk-certified-18.9-cert14</title></head><body>
<html><head><title>Readme for asterisk-certified-18.9-cert15</title></head><body>
<h1>The Asterisk(R) Open Source PBX</h1>
<pre><code class="language-text"> By Mark Spencer &lt;markster@digium.com&gt; and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
<pre><code>By Mark Spencer &lt;markster@digium.com&gt; and the Asterisk.org developer community.
Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.
</code></pre>
<h2>SECURITY</h2>
<p>It is imperative that you read and fully understand the contents of
the security information document before you attempt to configure and run
an Asterisk server.</p>
<p>See <a href="https://wiki.asterisk.org/wiki/display/AST/Important+Security+Considerations">Important Security Considerations</a> for more information.</p>
<p>See <a href="https://docs.asterisk.org/Deployment/Important-Security-Considerations">Important Security Considerations</a> for more information.</p>
<h2>WHAT IS ASTERISK ?</h2>
<p>Asterisk is an Open Source PBX and telephony toolkit. It is, in a
sense, middleware between Internet and telephony channels on the bottom,
and Internet and telephony applications at the top. However, Asterisk supports
more telephony interfaces than just Internet telephony. Asterisk also has a
vast amount of support for traditional PSTN telephony, as well.</p>
<p>For more information on the project itself, please visit the Asterisk
<a href="https://www.asterisk.org">home page</a> and the official <a href="https://wiki.asterisk.org/">wiki</a>. In addition you'll find lots
of information compiled by the Asterisk community at <a href="http://www.voip-info.org/wiki-Asterisk">voip-info.org</a>.</p>
<p>There is a book on Asterisk published by O'Reilly under the Creative Commons
License. It is available in book stores as well as in a downloadable version on
the <a href="http://www.asteriskdocs.org">asteriskdocs.org</a> web site.</p>
<p>For more information on the project itself, please visit the <a href="https://www.asterisk.org">Asterisk
Home Page</a> and the official
<a href="https://docs.asterisk.org">Asterisk Documentation</a>.</p>
<h2>SUPPORTED OPERATING SYSTEMS</h2>
<h3>Linux</h3>
<p>The Asterisk Open Source PBX is developed and tested primarily on the
@@ -27,26 +24,22 @@ GNU/Linux operating system, and is supported on every major GNU/Linux
distribution.</p>
<h3>Others</h3>
<p>Asterisk has also been 'ported' and reportedly runs properly on other
operating systems as well, including Sun Solaris, Apple's Mac OS X, Cygwin,
and the BSD variants.</p>
operating systems as well, Apple's Mac OS X, and the BSD variants.</p>
<h2>GETTING STARTED</h2>
<p>First, be sure you've got supported hardware (but note that you don't need
ANY special hardware, not even a sound card) to install and run Asterisk.</p>
<p>Most users are using VoIP/SIP exclusively these days but if you need to
interface to TDM or analog services or devices, be sure you've got supported
hardware.</p>
<p>Supported telephony hardware includes:
* All Analog and Digital Interface cards from <a href="https://www.sangoma.com/">Sangoma</a>
* QuickNet Internet PhoneJack and LineJack (http://www.quicknet.net)
* any full duplex sound card supported by ALSA, OSS, or PortAudio
* any ISDN card supported by mISDN on Linux
* The Xorcom Astribank channel bank
* VoiceTronix OpenLine products</p>
* All Analog and Digital Interface cards from Sangoma
* Any full duplex sound card supported by PortAudio
* The Xorcom Astribank channel bank</p>
<h3>UPGRADING FROM AN EARLIER VERSION</h3>
<p>If you are updating from a previous version of Asterisk, make sure you
read the <a href="UPGRADE.txt">UPGRADE.txt</a> file in the source directory. There are some files
and configuration options that you will have to change, even though we
made every effort possible to maintain backwards compatibility.</p>
<p>In order to discover new features to use, please check the configuration
examples in the <a href="configs">configs</a> directory of the source code distribution. For a
list of new features in this version of Asterisk, see the <a href="CHANGES">CHANGES</a> file.</p>
read the Change Logs.</p>
<!-- CHANGELOGS (the URL will change based on the location of this README) -->
<p><a href="ChangeLogs/ChangeLog-certified-18.9-cert15.html">Change Logs</a></p>
<!-- END-CHANGELOGS -->
<h3>NEW INSTALLATIONS</h3>
<p>Ensure that your system contains a compatible compiler and development
libraries. Asterisk requires either the GNU Compiler Collection (GCC) version
@@ -58,108 +51,79 @@ libraries are being looked for, see <code>./configure --help</code>, or run
<code>make menuselect</code> to view the dependencies for specific modules.</p>
<p>On many distributions, these dependencies are installed by packages with names
like 'glibc-devel', 'ncurses-devel', 'openssl-devel' and 'zlib-devel'
or similar.</p>
<p>So, let's proceed:
1. Read this file.</p>
<p>There are more documents than this one in the <a href="doc">doc</a> directory. You may also
want to check the configuration files that contain examples and reference
guides in the <a href="configs">configs</a> directory.</p>
or similar. The <code>contrib/scripts/install_prereq</code> script can be used to install
the dependencies for most Debian and Redhat based Linux distributions.
The script also handles SUSE, Arch, Gentoo, FreeBSD, NetBSD and OpenBSD but
those distributions mightnoit have complete support or they might be out of date.</p>
<p>So, let's proceed:</p>
<ol>
<li>Run <code>./configure</code></li>
</ol>
<p>Execute the configure script to guess values for system-dependent
variables used during compilation.</p>
<ol>
<li>Run <code>make menuselect</code> <em>[optional]</em></li>
</ol>
<p>This is needed if you want to select the modules that will be compiled and to
<li>
<p>Read the documentation.<br>
The <a href="https://docs.asterisk.org">Asterisk Documentation</a> website has full
information for building, installing, configuring and running Asterisk.</p>
</li>
<li>
<p>Run <code>./configure</code><br>
Execute the configure script to guess values for system-dependent
variables used during compilation. If the script indicates that some required
components are missing, you can run <code>./contrib/scripts/install_prereq install</code>
to install the necessary components. Note that this will install all dependencies
for every functionality of Asterisk. After running the script, you will need
to rerun <code>./configure</code>.</p>
</li>
<li>
<p>Run <code>make menuselect</code><br>
This is needed if you want to select the modules that will be compiled and to
check dependencies for various optional modules.</p>
<ol>
<li>Run <code>make</code></li>
</ol>
<p>Assuming the build completes successfully:</p>
<ol>
<li>Run <code>make install</code></li>
</ol>
<p>If this is your first time working with Asterisk, you may wish to install
</li>
<li>
<p>Run <code>make</code><br>
Assuming the build completes successfully:</p>
</li>
<li>
<p>Run <code>make install</code><br>
If this is your first time working with Asterisk, you may wish to install
the sample PBX, with demonstration extensions, etc. If so, run:</p>
<ol>
<li>Run <code>make samples</code></li>
</ol>
<p>Doing so will overwrite any existing configuration files you have installed.</p>
<ol>
<li>Finally, you can launch Asterisk in the foreground mode (not a daemon) with:</li>
</ol>
<pre><code> # asterisk -vvvc
</code></pre>
<p>You'll see a bunch of verbose messages fly by your screen as Asterisk
</li>
<li>
<p>Run <code>make samples</code><br>
Doing so will overwrite any existing configuration files you have installed.</p>
</li>
<li>
<p>Finally, you can launch Asterisk in the foreground mode (not a daemon) with
<code>asterisk -vvvc</code><br>
You'll see a bunch of verbose messages fly by your screen as Asterisk
initializes (that's the "very very verbose" mode). When it's ready, if
you specified the "c" then you'll get a command line console, that looks
like this:</p>
<pre><code> *CLI&gt;
</code></pre>
<p>You can type "core show help" at any time to get help with the system. For help
with a specific command, type "core show help <command>". To start the PBX using
your sound card, you can type "console dial" to dial the PBX. Then you can use
"console answer", "console hangup", and "console dial" to simulate the actions
of a telephone. Remember that if you don't have a full duplex sound card
(and Asterisk will tell you somewhere in its verbose messages if you do/don't)
then it won't work right (not yet).</p>
<p>"man asterisk" at the Unix/Linux command prompt will give you detailed
like this:<br>
<code>*CLI&gt;</code><br>
You can type <code>core show help</code> at any time to get help with the system. For help
with a specific command, type <code>core show help &lt;command&gt;</code>.</p>
</li>
</ol>
<p><code>man asterisk</code> at the Unix/Linux command prompt will give you detailed
information on how to start and stop Asterisk, as well as all the command
line options for starting Asterisk.</p>
<p>Feel free to look over the configuration files in <code>/etc/asterisk</code>, where you
will find a lot of information about what you can do with Asterisk.</p>
<h3>ABOUT CONFIGURATION FILES</h3>
<p>All Asterisk configuration files share a common format. Comments are
delimited by ';' (since '#' of course, being a DTMF digit, may occur in
delimited by <code>;</code> (since <code>#</code> of course, being a DTMF digit, may occur in
many places). A configuration file is divided into sections whose names
appear in []'s. Each section typically contains two types of statements,
those of the form 'variable = value', and those of the form 'object =&gt;
parameters'. Internally the use of '=' and '=&gt;' is exactly the same, so
they're used only to help make the configuration file easier to
understand, and do not affect how it is actually parsed.</p>
<p>Entries of the form 'variable=value' set the value of some parameter in
asterisk. For example, in <a href="configs/samples/chan_dahdi.conf.sample">chan_dahdi.conf</a>, one might specify:</p>
<pre><code> switchtype=national
</code></pre>
<p>In order to indicate to Asterisk that the switch they are connecting to is
of the type "national". In general, the parameter will apply to
instantiations which occur below its specification. For example, if the
configuration file read:</p>
<pre><code> switchtype = national
channel =&gt; 1-4
channel =&gt; 10-12
switchtype = dms100
channel =&gt; 25-47
</code></pre>
<p>The "national" switchtype would be applied to channels one through
four and channels 10 through 12, whereas the "dms100" switchtype would
apply to channels 25 through 47.</p>
<p>The "object =&gt; parameters" instantiates an object with the given
parameters. For example, the line "channel =&gt; 25-47" creates objects for
the channels 25 through 47 of the card, obtaining the settings
from the variables specified above.</p>
appear in <code>[]</code>'s. Each section typically contains statements in the form
<code>variable = value</code> although you may see <code>variable =&gt; value</code> in older samples.</p>
<h3>SPECIAL NOTE ON TIME</h3>
<p>Those using SIP phones should be aware that Asterisk is sensitive to
large jumps in time. Manually changing the system time using date(1)
(or other similar commands) may cause SIP registrations and other
internal processes to fail. If your system cannot keep accurate time
by itself use <a href="http://www.ntp.org/">NTP</a> to keep the system clock
synchronized to "real time". NTP is designed to keep the system clock
synchronized by speeding up or slowing down the system clock until it
is synchronized to "real time" rather than by jumping the time and
causing discontinuities. Most Linux distributions include precompiled
versions of NTP. Beware of some time synchronization methods that get
the correct real time periodically and then manually set the system
clock.</p>
<p>Apparent time changes due to daylight savings time are just that,
apparent. The use of daylight savings time in a Linux system is
purely a user interface issue and does not affect the operation of the
Linux kernel or Asterisk. The system clock on Linux kernels operates
on UTC. UTC does not use daylight savings time.</p>
<p>Also note that this issue is separate from the clocking of TDM
channels, and is known to at least affect SIP registrations.</p>
internal processes to fail. For this reason, you should always use
a time synchronization package to keep your system time accurate.
All OS/distributions make one or more of the following packages
available:</p>
<ul>
<li>ntpd/ntpsec</li>
<li>chronyd</li>
<li>systemd-timesyncd</li>
</ul>
<p>Be sure to install and configure one (and only one) of them.</p>
<h3>FILE DESCRIPTORS</h3>
<p>Depending on the size of your system and your configuration,
Asterisk can consume a large number of file descriptors. In UNIX,
@@ -189,14 +153,22 @@ these changes to take effect.</p>
above you can try adding the command <code>ulimit -n 8192</code> to the script
that starts Asterisk.</p>
<h2>MORE INFORMATION</h2>
<p>See the <a href="doc">doc</a> directory for more documentation on various features.
Again, please read all the configuration samples that include documentation
on the configuration options.</p>
<p>Finally, you may wish to visit the <a href="https://www.asterisk.org/support">support</a> site and join the <a href="http://lists.digium.com/mailman/listinfo/asterisk-users">mailing
list</a> if you're interested in getting more information.</p>
<p>Visit the <a href="https://docs.asterisk.org">Asterisk Documentation</a> website
for more documentation on various features and please read all the
configuration samples that include documentation on the configuration options.</p>
<p>Finally, you may wish to join the
<a href="https://community.asterisk.org">Asterisk Community Forums</a></p>
<p>Welcome to the growing worldwide community of Asterisk users!</p>
<pre><code> Mark Spencer, and the Asterisk.org development community
</code></pre>
<hr>
<p>Asterisk is a trademark of Sangoma Technologies Corporation</p>
<p>[<a href="https://www.sangoma.com/">Sangoma</a>]
[<a href="https://www.asterisk.org">Home Page</a>]
[<a href="https://www.asterisk.org/support">Support</a>]
[<a href="https://docs.asterisk.org">Documentation</a>]
[<a href="https://community.asterisk.org">Community Forums</a>]
[<a href="https://github.com/asterisk/asterisk/releases">Release Notes</a>]
[<a href="https://docs.asterisk.org/Deployment/Important-Security-Considerations/">Security</a>]
[<a href="https://lists.digium.com">Mailing List Archive</a>] </p>
</body></html>

View File

@@ -55,7 +55,7 @@ If you are updating from a previous version of Asterisk, make sure you
read the Change Logs.
<!-- CHANGELOGS (the URL will change based on the location of this README) -->
[Change Logs](https://downloads.asterisk.org/pub/telephony/asterisk)
[Change Logs](ChangeLogs/ChangeLog-certified-18.9-cert15.html)
<!-- END-CHANGELOGS -->
### NEW INSTALLATIONS

View File

@@ -1358,3 +1358,15 @@ ALTER TABLE ps_endpoints ADD COLUMN tenantid VARCHAR(80);
UPDATE alembic_version SET version_num='655054a68ad5' WHERE alembic_version.version_num = '9f3692b1654b';
-- Running upgrade 655054a68ad5 -> 801b9fced8b7
ALTER TABLE ps_subscription_persistence ADD COLUMN generator_data TEXT;
UPDATE alembic_version SET version_num='801b9fced8b7' WHERE alembic_version.version_num = '655054a68ad5';
-- Running upgrade 801b9fced8b7 -> 4f91fc18c979
ALTER TABLE ps_endpoints ADD COLUMN suppress_moh_on_sendonly ENUM('0','1','off','on','false','true','no','yes');
UPDATE alembic_version SET version_num='4f91fc18c979' WHERE alembic_version.version_num = '801b9fced8b7';

View File

@@ -33,3 +33,13 @@ ALTER TABLE voicemail_messages MODIFY recording BLOB(4294967295) NULL;
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
-- Running upgrade 39428242f7f5 -> 1c55c341360f
UPDATE alembic_version SET version_num='1c55c341360f' WHERE alembic_version.version_num = '39428242f7f5';
-- Running upgrade 1c55c341360f -> 64fae6bbe7fb
DROP INDEX voicemail_messages_dir ON voicemail_messages;
UPDATE alembic_version SET version_num='64fae6bbe7fb' WHERE alembic_version.version_num = '1c55c341360f';

View File

@@ -1472,5 +1472,17 @@ ALTER TABLE ps_endpoints ADD COLUMN tenantid VARCHAR(80);
UPDATE alembic_version SET version_num='655054a68ad5' WHERE alembic_version.version_num = '9f3692b1654b';
-- Running upgrade 655054a68ad5 -> 801b9fced8b7
ALTER TABLE ps_subscription_persistence ADD COLUMN generator_data TEXT;
UPDATE alembic_version SET version_num='801b9fced8b7' WHERE alembic_version.version_num = '655054a68ad5';
-- Running upgrade 801b9fced8b7 -> 4f91fc18c979
ALTER TABLE ps_endpoints ADD COLUMN suppress_moh_on_sendonly ast_bool_values;
UPDATE alembic_version SET version_num='4f91fc18c979' WHERE alembic_version.version_num = '801b9fced8b7';
COMMIT;

View File

@@ -35,5 +35,15 @@ ALTER TABLE voicemail_messages ALTER COLUMN recording TYPE BYTEA;
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
-- Running upgrade 39428242f7f5 -> 1c55c341360f
UPDATE alembic_version SET version_num='1c55c341360f' WHERE alembic_version.version_num = '39428242f7f5';
-- Running upgrade 1c55c341360f -> 64fae6bbe7fb
DROP INDEX voicemail_messages_dir;
UPDATE alembic_version SET version_num='64fae6bbe7fb' WHERE alembic_version.version_num = '1c55c341360f';
COMMIT;