]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Update for certified-18.9-cert10 certified-18.9-cert10
authorAsterisk Development Team <asteriskteam@digium.com>
Thu, 18 Jul 2024 14:04:45 +0000 (14:04 +0000)
committerAsterisk Development Team <asteriskteam@digium.com>
Thu, 18 Jul 2024 14:04:45 +0000 (14:04 +0000)
.version
CHANGES.md
ChangeLogs/ChangeLog-certified-18.9-cert10.md [new file with mode: 0644]
contrib/realtime/mysql/mysql_config.sql
contrib/realtime/mysql/mysql_queue_log.sql
contrib/realtime/postgresql/postgresql_cdr.sql
contrib/realtime/postgresql/postgresql_config.sql
contrib/realtime/postgresql/postgresql_queue_log.sql
contrib/realtime/postgresql/postgresql_voicemail.sql

index aebf11cff7c29ea59fda3cbf2a5970a51189e171..6f9bb9645d3e94d80bd031adea27f44dcf520561 100644 (file)
--- a/.version
+++ b/.version
@@ -1 +1 @@
-certified-18.9-cert9
+certified-18.9-cert10
index 6fb9820db9f0e117465bbe90b4bbc6211f4f106b..4fcec8cf270751ca65f10026bfa78649fc8d8244 120000 (symlink)
@@ -1 +1 @@
-ChangeLogs/ChangeLog-certified-18.9-cert9.md
\ No newline at end of file
+ChangeLogs/ChangeLog-certified-18.9-cert10.md
\ No newline at end of file
diff --git a/ChangeLogs/ChangeLog-certified-18.9-cert10.md b/ChangeLogs/ChangeLog-certified-18.9-cert10.md
new file mode 100644 (file)
index 0000000..277d097
--- /dev/null
@@ -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
+
+
index 1c51629a6cfcc749eea7db2892ac8c58e44746b9..e92825c0cb0646f91666cd511cbf1295685add5a 100644 (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), 
index 13dde964c29793ddd8452b0f1a1dcf21ac971ac9..924f8406feb3f437eb958bcd30dd3f8d47a8bf37 100644 (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;
 
index 79380171a8bff739f7be0a7f326d50f02a6ba20d..409b90ef73467bc42d9d0ad92cad9d5e3b808edc 100644 (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
 
index 4e499ae800fe2d18611ddc3a9e37ac43c4fce86c..bce7ca39c982c61e27180a56aca5fc2e7dfd98e1 100644 (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
 
index 13dde964c29793ddd8452b0f1a1dcf21ac971ac9..924f8406feb3f437eb958bcd30dd3f8d47a8bf37 100644 (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;
 
index db7d09a93075d50a98bd6096345119157869aa07..75caef9ec17f1a7f03e359f12cf8b7f796a074f3 100644 (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