Update for certified-18.9-cert10

This commit is contained in:
Asterisk Development Team
2024-07-18 14:04:45 +00:00
parent 1fad739c76
commit c6e587c8a9
9 changed files with 175 additions and 9 deletions

View File

@@ -1 +1 @@
certified-18.9-cert9
certified-18.9-cert10

View File

@@ -1 +1 @@
ChangeLogs/ChangeLog-certified-18.9-cert9.md
ChangeLogs/ChangeLog-certified-18.9-cert10.md

View File

@@ -0,0 +1,166 @@
## Change Log for Release asterisk-certified-18.9-cert10
### Links:
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/certified-asterisk/releases/ChangeLog-certified-18.9-cert10.md)
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/certified-18.9-cert9...certified-18.9-cert10)
- [Tarball](https://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-18.9-cert10.tar.gz)
- [Downloads](https://downloads.asterisk.org/pub/telephony/certified-asterisk)
### Summary:
- Commits: 4
- Commit Authors: 2
- Issues Resolved: 0
- Security Advisories Resolved: 0
### User Notes:
- #### app_voicemail_odbc: Allow audio to be kept on disk
This commit adds a new voicemail.conf option
'odbc_audio_on_disk' which when set causes the ODBC variant of
app_voicemail_odbc to leave the message and greeting audio files
on disk and only store the message metadata in the database.
Much more information can be found in the voicemail.conf.sample
file.
### Upgrade Notes:
### Commit Authors:
- George Joseph: (2)
- Sean Bright: (2)
## Issue and Commit Detail:
### Closed Issues:
None
### Commits By Author:
- ### George Joseph (2):
- logger.h: Add SCOPE_CALL and SCOPE_CALL_WITH_RESULT
- app_voicemail_odbc: Allow audio to be kept on disk
- ### Sean Bright (2):
- app_voicemail.c: Completely resequence mailbox folders.
- logger.h: Include SCOPE_CALL_WITH_INT_RESULT() in non-dev-mode builds.
### Commit List:
- logger.h: Include SCOPE_CALL_WITH_INT_RESULT() in non-dev-mode builds.
- app_voicemail_odbc: Allow audio to be kept on disk
- logger.h: Add SCOPE_CALL and SCOPE_CALL_WITH_RESULT
- app_voicemail.c: Completely resequence mailbox folders.
### Commit Details:
#### logger.h: Include SCOPE_CALL_WITH_INT_RESULT() in non-dev-mode builds.
Author: Sean Bright
Date: 2024-06-29
Fixes #785
#### app_voicemail_odbc: Allow audio to be kept on disk
Author: George Joseph
Date: 2024-04-09
This commit adds a new voicemail.conf option 'odbc_audio_on_disk'
which when set causes the ODBC variant of app_voicemail to leave
the message and greeting audio files on disk and only store the
message metadata in the database. This option came from a concern
that the database could grow to large and cause remote access
and/or replication to become slow. In a clustering situation
with this option, all asterisk instances would share the same
database for the metadata and either use a shared filesystem
or other filesystem replication service much more suitable
for synchronizing files.
The changes to app_voicemail to implement this feature were actually
quite small but due to the complexity of the module, the actual
source code changes were greater. They fall into the following
categories:
* Tracing. The module is so complex that it was impossible to
figure out the path taken for various scenarios without the addition
of many SCOPE_ENTER, SCOPE_EXIT and ast_trace statements, even in
code that's not related to the functional change. Making this worse
was the fact that many "if" statements in this module didn't use
braces. Since the tracing macros add multiple statements, many "if"
statements had to be converted to use braces.
* Excessive use of PATH_MAX. Previous maintainers of this module
used PATH_MAX to allocate character arrays for filesystem paths
and SQL statements as though they cost nothing. In fact, PATH_MAX
is defined as 4096 bytes! Some functions had (and still have)
multiples of these. One function has 7. Given that the vast
majority of installations use the default spool directory path
`/var/spool/asterisk/voicemail`, the actual path length is usually
less than 80 bytes. That's over 4000 bytes wasted. It was the
same for SQL statement buffers. A 4K buffer for statement that
only needed 60 bytes. All of these PATH_MAX allocations in the
ODBC related code were changed to dynamically allocated buffers.
The rest will have to be addressed separately.
* Bug fixes. During the development of this feature, several
pre-existing ODBC related bugs were discovered and fixed. They
had to do with leaving orphaned files on disk, not preserving
original message ids when moving messages between folders,
not honoring the "formats" config parameter in certain circumstances,
etc.
UserNote: This commit adds a new voicemail.conf option
'odbc_audio_on_disk' which when set causes the ODBC variant of
app_voicemail_odbc to leave the message and greeting audio files
on disk and only store the message metadata in the database.
Much more information can be found in the voicemail.conf.sample
file.
#### logger.h: Add SCOPE_CALL and SCOPE_CALL_WITH_RESULT
Author: George Joseph
Date: 2024-04-09
If you're tracing a large function that may call another function
multiple times in different circumstances, it can be difficult to
see from the trace output exactly which location that function
was called from. There's no good way to automatically determine
the calling location. SCOPE_CALL and SCOPE_CALL_WITH_RESULT
simply print out a trace line before and after the call.
The difference between SCOPE_CALL and SCOPE_CALL_WITH_RESULT is
that SCOPE_CALL ignores the function's return value (if any) where
SCOPE_CALL_WITH_RESULT allows you to specify the type of the
function's return value so it can be assigned to a variable.
SCOPE_CALL_WITH_INT_RESULT is just a wrapper for SCOPE_CALL_WITH_RESULT
and the "int" return type.
#### app_voicemail.c: Completely resequence mailbox folders.
Author: Sean Bright
Date: 2023-11-27
Resequencing is a process that occurs when we open a voicemail folder
and discover that there are gaps between messages (e.g. `msg0000.txt`
is missing but `msg0001.txt` exists). Resequencing involves shifting
the existing messages down so we end up with a sequential list of
messages.
Currently, this process stops after reaching a threshold based on the
message limit (`maxmsg`) configured on the current folder. However, if
`maxmsg` is lowered when a voicemail folder contains more than
`maxmsg + 10` messages, resequencing will not run completely leaving
the mailbox in an inconsistent state.
We now resequence up to the maximum number of messages permitted by
`app_voicemail` (currently hard-coded at 9999 messages).
Fixes #86

View File

@@ -58,7 +58,7 @@ CREATE TABLE sippeers (
regexten VARCHAR(40),
fromdomain VARCHAR(40),
fromuser VARCHAR(40),
qualify VARCHAR(40),
`qualify` VARCHAR(40),
defaultip VARCHAR(45),
rtptimeout INTEGER,
rtpholdtimeout INTEGER,
@@ -146,7 +146,7 @@ CREATE TABLE iaxfriends (
disallow VARCHAR(200),
allow VARCHAR(200),
codecpriority VARCHAR(40),
qualify VARCHAR(10),
`qualify` VARCHAR(10),
qualifysmoothing ENUM('yes','no'),
qualifyfreqok VARCHAR(10),
qualifyfreqnotok VARCHAR(10),

View File

@@ -23,7 +23,7 @@ CREATE TABLE queue_log (
UNIQUE (id)
);
INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58');
INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58') RETURNING alembic_version.version_num;
COMMIT;

View File

@@ -31,7 +31,7 @@ CREATE TABLE cdr (
sequence INTEGER
);
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d') RETURNING alembic_version.version_num;
-- Running upgrade 210693f3123d -> 54cde9847798

View File

@@ -272,7 +272,7 @@ CREATE TABLE musiconhold (
PRIMARY KEY (name)
);
INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c') RETURNING alembic_version.version_num;
-- Running upgrade 4da0c5f79a9c -> 43956d550a44

View File

@@ -23,7 +23,7 @@ CREATE TABLE queue_log (
UNIQUE (id)
);
INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58');
INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58') RETURNING alembic_version.version_num;
COMMIT;

View File

@@ -27,7 +27,7 @@ ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIM
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e') RETURNING alembic_version.version_num;
-- Running upgrade a2e9769475e -> 39428242f7f5