]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Update for 21.7.0-rc1 21.7.0-rc1
authorAsterisk Development Team <asteriskteam@digium.com>
Thu, 23 Jan 2025 18:39:45 +0000 (18:39 +0000)
committerAsterisk Development Team <asteriskteam@digium.com>
Thu, 23 Jan 2025 18:39:45 +0000 (18:39 +0000)
.version
CHANGES.md
ChangeLogs/ChangeLog-21.7.0-rc1.md [new file with mode: 0644]
contrib/realtime/mysql/mysql_config.sql
contrib/realtime/mysql/mysql_queue_log.sql
contrib/realtime/postgresql/postgresql_config.sql

index 55bb0867f1110df4dec1d6039ea64d35daca3df5..395c3eee959978010511d1179d7e4ec8ffa9016c 100644 (file)
--- a/.version
+++ b/.version
@@ -1 +1 @@
-21.6.1
+21.7.0-rc1
index c47b6aa3c444123a7fc5891846a916eb6063fa74..799c8ab3bc1e73390a087e5ead14e4d223ca154c 120000 (symlink)
@@ -1 +1 @@
-ChangeLogs/ChangeLog-21.6.1.md
\ No newline at end of file
+ChangeLogs/ChangeLog-21.7.0-rc1.md
\ No newline at end of file
diff --git a/ChangeLogs/ChangeLog-21.7.0-rc1.md b/ChangeLogs/ChangeLog-21.7.0-rc1.md
new file mode 100644 (file)
index 0000000..63ce8bf
--- /dev/null
@@ -0,0 +1,1012 @@
+
+## Change Log for Release asterisk-21.7.0-rc1
+
+### Links:
+
+ - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-21.7.0-rc1.md)  
+ - [GitHub Diff](https://github.com/asterisk/asterisk/compare/21.6.1...21.7.0-rc1)  
+ - [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-21.7.0-rc1.tar.gz)  
+ - [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)  
+
+### Summary:
+
+- Commits: 50
+- Commit Authors: 20
+- Issues Resolved: 17
+- Security Advisories Resolved: 0
+
+### User Notes:
+
+- #### sig_analog: Add Last Number Redial feature.                                     
+  Users can now redial the last number
+  called if the lastnumredial setting is set to yes.
+  Resolves: #437
+
+- #### Add SHA-256 and SHA-512-256 as authentication digest algorithms                 
+  The SHA-256 and SHA-512-256 algorithms are now available
+  for authentication as both a UAS and a UAC.
+
+- #### Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016                     
+  Bundled pjproject has been upgraded to 2.15.1. For more
+  information visit pjproject Github page: https://github.com/pjsip/pjproject/releases/tag/2.15.1
+
+- #### res_pjsip: Add new AOR option "qualify_2xx_only"                                
+  The pjsip.conf AOR section now has a "qualify_2xx_only"
+  option that can be set so that only 2XX responses to OPTIONS requests
+  used to qualify a contact will mark the contact as available.
+
+- #### app_queue: allow dynamically adding a queue member in paused state.             
+  use the p option of AddQueueMember() for paused member state.
+  Optionally, use the r(reason) option to specify a custom reason for the pause.
+
+- #### manager.c: Add Processed Call Count to CoreStatus output                        
+  The current processed call count is now returned as CoreProcessedCalls from the
+  CoreStatus AMI Action.
+
+- #### func_curl.c: Add additional CURL options for SSL requests                       
+  The following new configuration options are now available
+  in the res_curl.conf file, and the CURL() function: 'ssl_verifyhost'
+  (CURLOPT_SSL_VERIFYHOST), 'ssl_cainfo' (CURLOPT_CAINFO), 'ssl_capath'
+  (CURLOPT_CAPATH), 'ssl_cert' (CURLOPT_SSLCERT), 'ssl_certtype'
+  (CURLOPT_SSLCERTTYPE), 'ssl_key' (CURLOPT_SSLKEY), 'ssl_keytype',
+  (CURLOPT_SSLKEYTYPE) and 'ssl_keypasswd' (CURLOPT_KEYPASSWD). See the
+  libcurl documentation for more details.
+
+- #### res_stir_shaken: Allow sending Identity headers for unknown TNs                 
+  You can now set the "unknown_tn_attest_level" option
+  in the attestation and/or profile objects in stir_shaken.conf to
+  enable sending Identity headers for callerid TNs not explicitly
+  configured.
+
+
+### Upgrade Notes:
+
+
+### Commit Authors:
+
+- Abdelkader Boudih: (3)
+- Alexey Khabulyak: (1)
+- Alexey Vasilyev: (1)
+- Allan Nathanson: (2)
+- Artem Umerov: (1)
+- George Joseph: (14)
+- Jaco Kroon: (1)
+- James Terhune: (1)
+- Joshua C. Colp: (1)
+- Kent: (1)
+- Maksim Nesterov: (1)
+- Maximilian Fridrich: (1)
+- Mike Pultz: (3)
+- Naveen Albert: (6)
+- Sean Bright: (6)
+- Sperl Viktor: (2)
+- Stanislav Abramenkov: (2)
+- Steffen Arntz: (1)
+- Tinet-Mucw: (1)
+- Viktor Litvinov: (1)
+
+## Issue and Commit Detail:
+
+### Closed Issues:
+
+  - 437: [new-feature]: sig_analog: Add Last Number Redial
+  - 851: [bug]: unable to read audiohook both side when packet lost on one side of the call 
+  - 921: [bug]: Stir-Shaken doesn’t allow B or C attestation for unknown callerid which is allowed by ATIS-1000074.v003, §5.2.4
+  - 927: [bug]: no audio when media source changed during the call
+  - 948: [improvement]: Support SHA-256 algorithm on REGISTER and INVITE challenges
+  - 993: [bug]: sig_analog: Feature Group D / E911 no longer work
+  - 999: [bug]: Crash when setting a global variable with invalid UTF8 characters
+  - 1007: [improvement]: Cannot dynamically add queue member in paused state from dialplan or command line
+  - 1013: [improvement]: chan_pjsip: Send VIDUPDATE RTP frames for H.264 streams on endpoints without WebRTC
+  - 1021: [improvement]: proper queue_log paused state when member added dynamically
+  - 1023: [improvement]: Improve PJSIP_MEDIA_OFFER documentation
+  - 1028: [bug]: "pjsip show endpoints" shows some identifies on endpoints that shouldn't be there
+  - 1029: [bug]: chan_dahdi: Wrong channel state set when RINGING received
+  - 1054: [bug]: chan_iax2: Frames unnecessarily backlogged with jitterbuffer if no voice frames have been received yet
+  - 1058: [bug]: Asterisk fails to compile following commit 71a2e8c on Ubuntu 20.04
+  - 1064: [improvement]: ast_tls_script: Add option to skip passphrase for CA private key
+  - 1075: [bug]: res_prometheus does not set Content-Type header in HTTP response
+
+### Commits By Author:
+
+- #### Abdelkader Boudih (3):
+  - normalize contrib/ast-db-manage/queue_log.ini.sample
+  - res_config_pgsql: normalize database connection option with cel and cdr by sup..
+  - samples: Use "asterisk" instead of "postgres" for username
+
+- #### Alexey Khabulyak (1):
+  - format_gsm.c: Added mime type
+
+- #### Alexey Vasilyev (1):
+  - res_rtp_asterisk.c: Fix bridged_payload matching with sample rate for DTMF
+
+- #### Allan Nathanson (2):
+  - config.c: retain leading whitespace before comments
+  - config.c: fix #tryinclude being converted to #include on rewrite
+
+- #### Artem Umerov (1):
+  - logger.h: Fix build when AST_DEVMODE is not defined.
+
+- #### George Joseph (14):
+  - res_stir_shaken: Allow sending Identity headers for unknown TNs
+  - Allow C++ source files (as extension .cc) in the main directory
+  - Add ability to pass arguments to unit tests from the CLI
+  - Header fixes for compiling C++ source files
+  - gcc14: Fix issues caught by gcc 14
+  - Add C++ Standard detection to configure and fix a new C++20 compile issue
+  - Add SHA-256 and SHA-512-256 as authentication digest algorithms
+  - docs: Enable since/version handling for XML, CLI and ARI documentation
+  - docs: Various XML fixes
+  - res_pjsip_authenticator_digest: Fix issue with missing auth and DONT_OPTIMIZE
+  - docs: Add version information to configObject and configOption XML elements
+  - README.md, asterisk.c: Update Copyright Dates
+  - docs: Add version information to manager event instance XML elements
+  - docs: Add version information to application and function XML elements
+
+- #### Jaco Kroon (1):
+  - res_odbc: release threads from potential starvation.
+
+- #### James Terhune (1):
+  - main/stasis_channels.c: Fix crash when setting a global variable with invalid ..
+
+- #### Joshua C. Colp (1):
+  - LICENSE: Update company name, email, and address.
+
+- #### Kent (1):
+  - res_pjsip: Add new AOR option "qualify_2xx_only"
+
+- #### Maksim Nesterov (1):
+  - func_uuid: Add a new dialplan function to generate UUIDs
+
+- #### Maximilian Fridrich (1):
+  - chan_pjsip: Send VIDUPDATE RTP frame for all H.264 streams
+
+- #### Mike Pultz (3):
+  - func_curl.c: Add additional CURL options for SSL requests
+  - manager.c: Add Processed Call Count to CoreStatus output
+  - res_curl.conf.sample: clean up sample configuration and add new SSL options
+
+- #### Naveen Albert (6):
+  - sig_analog: Fix regression with FGD and E911 signaling.
+  - chan_iax2: Add log message for rejected calls.
+  - chan_dahdi: Fix wrong channel state when RINGING recieved.
+  - sig_analog: Add Last Number Redial feature.
+  - chan_iax2: Avoid unnecessarily backlogging non-voice frames.
+  - ast_tls_cert: Add option to skip passphrase for CA private key.
+
+- #### Sean Bright (6):
+  - config.c: Fix off-nominal reference leak.
+  - manager.c: Rename restrictedFile to is_restricted_file.
+  - manager: Add `<since>` tags for all AMI actions.
+  - dialplan_functions_doc.xml: Document PJSIP_MEDIA_OFFER's `media` argument.
+  - strings.c: Improve numeric detection in `ast_strings_match()`.
+  - res_prometheus.c: Set Content-Type header on /metrics response.
+
+- #### Sperl Viktor (2):
+  - app_queue: allow dynamically adding a queue member in paused state.
+  - app_queue: indicate the paused state of a dynamically added member in queue_log.
+
+- #### Stanislav Abramenkov (2):
+  - Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016
+  - res_pjproject: Fix typo (OpenmSSL->OpenSSL)
+
+- #### Steffen Arntz (1):
+  - logger.c fix: malformed JSON template
+
+- #### Tinet-mucw (1):
+  - audiohook.c: resolving the issue with audiohook both reading when packet loss ..
+
+- #### Viktor Litvinov (1):
+  - res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big
+
+
+### Commit List:
+
+-  docs: Add version information to application and function XML elements
+-  docs: Add version information to manager event instance XML elements
+-  LICENSE: Update company name, email, and address.
+-  res_prometheus.c: Set Content-Type header on /metrics response.
+-  README.md, asterisk.c: Update Copyright Dates
+-  docs: Add version information to configObject and configOption XML elements
+-  res_pjsip_authenticator_digest: Fix issue with missing auth and DONT_OPTIMIZE
+-  ast_tls_cert: Add option to skip passphrase for CA private key.
+-  chan_iax2: Avoid unnecessarily backlogging non-voice frames.
+-  config.c: fix #tryinclude being converted to #include on rewrite
+-  sig_analog: Add Last Number Redial feature.
+-  docs: Various XML fixes
+-  strings.c: Improve numeric detection in `ast_strings_match()`.
+-  docs: Enable since/version handling for XML, CLI and ARI documentation
+-  logger.h: Fix build when AST_DEVMODE is not defined.
+-  dialplan_functions_doc.xml: Document PJSIP_MEDIA_OFFER's `media` argument.
+-  samples: Use "asterisk" instead of "postgres" for username
+-  manager: Add `<since>` tags for all AMI actions.
+-  logger.c fix: malformed JSON template
+-  manager.c: Rename restrictedFile to is_restricted_file.
+-  res_pjproject: Fix typo (OpenmSSL->OpenSSL)
+-  Add SHA-256 and SHA-512-256 as authentication digest algorithms
+-  config.c: retain leading whitespace before comments
+-  config.c: Fix off-nominal reference leak.
+-  normalize contrib/ast-db-manage/queue_log.ini.sample
+-  Add C++ Standard detection to configure and fix a new C++20 compile issue
+-  chan_dahdi: Fix wrong channel state when RINGING recieved.
+-  Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016
+-  gcc14: Fix issues caught by gcc 14
+-  Header fixes for compiling C++ source files
+-  Add ability to pass arguments to unit tests from the CLI
+-  res_pjsip: Add new AOR option "qualify_2xx_only"
+-  res_odbc: release threads from potential starvation.
+-  Allow C++ source files (as extension .cc) in the main directory
+-  format_gsm.c: Added mime type
+-  func_uuid: Add a new dialplan function to generate UUIDs
+-  app_queue: allow dynamically adding a queue member in paused state.
+-  chan_iax2: Add log message for rejected calls.
+-  chan_pjsip: Send VIDUPDATE RTP frame for all H.264 streams
+-  res_curl.conf.sample: clean up sample configuration and add new SSL options
+-  res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big
+-  res_rtp_asterisk.c: Fix bridged_payload matching with sample rate for DTMF
+-  manager.c: Add Processed Call Count to CoreStatus output
+-  func_curl.c: Add additional CURL options for SSL requests
+-  sig_analog: Fix regression with FGD and E911 signaling.
+-  res_stir_shaken: Allow sending Identity headers for unknown TNs
+
+### Commit Details:
+
+#### docs: Add version information to application and function XML elements
+  Author: George Joseph
+  Date:   2025-01-23
+
+  * Do a git blame on the embedded XML application or function element.
+
+  * From the commit hash, grab the summary line.
+
+  * Do a git log --grep <summary> to find the cherry-pick commits in all
+    branches that match.
+
+  * Do a git patch-id to ensure the commits are all related and didn't get
+    a false match on the summary.
+
+  * Do a git tag --contains <commit> to find the tags that contain each
+    commit.
+
+  * Weed out all tags not ..0.
+
+  * Sort and discard any .0.0 and following tags where the commit
+    appeared in an earlier branch.
+
+  * The result is a single tag for each branch where the application or function
+    was defined.
+
+  The applications and functions defined in the following files were done by
+  hand because the XML was extracted from the C source file relatively recently.
+  * channels/pjsip/dialplan_functions_doc.xml
+  * main/logger_doc.xml
+  * main/manager_doc.xml
+  * res/res_geolocation/geoloc_doc.xml
+  * res/res_stir_shaken/stir_shaken_doc.xml
+
+
+#### docs: Add version information to manager event instance XML elements
+  Author: George Joseph
+  Date:   2025-01-20
+
+  * Do a git blame on the embedded XML managerEvent elements.
+
+  * From the commit hash, grab the summary line.
+
+  * Do a git log --grep <summary> to find the cherry-pick commits in all
+    branches that match.
+
+  * Do a git patch-id to ensure the commits are all related and didn't get
+    a false match on the summary.
+
+  * Do a git tag --contains <commit> to find the tags that contain each
+    commit.
+
+  * Weed out all tags not ..0.
+
+  * Sort and discard any .0.0 and following tags where the commit
+    appeared in an earlier branch.
+
+  * The result is a single tag for each branch where the application or function
+    was defined.
+
+  The events defined in res/res_pjsip/pjsip_manager.xml were done by hand
+  because the XML was extracted from the C source file relatively recently.
+
+  Two bugs were fixed along the way...
+
+  * The get_documentation awk script was exiting after it processed the first
+    DOCUMENTATION block it found in a file.  We have at least 1 source file
+    with multiple DOCUMENTATION blocks so only the first one in them was being
+    processed.  The awk script was changed to continue searching rather
+    than exiting after the first block.
+
+  * Fixing the awk script revealed an issue in logger.c where the third
+    DOCUMENTATION block contained a XML fragment that consisted only of
+    a managerEventInstance element that wasn't wrapped in a managerEvent
+    element.  Since logger_doc.xml already existed, the remaining fragments
+    in logger.c were moved to it and properly organized.
+
+
+#### LICENSE: Update company name, email, and address.
+  Author: Joshua C. Colp
+  Date:   2025-01-21
+
+
+#### res_prometheus.c: Set Content-Type header on /metrics response.
+  Author: Sean Bright
+  Date:   2025-01-21
+
+  This should resolve the Prometheus error:
+
+  > Error scraping target: non-compliant scrape target
+    sending blank Content-Type and no
+    fallback_scrape_protocol specified for target.
+
+  Resolves: #1075
+
+#### README.md, asterisk.c: Update Copyright Dates
+  Author: George Joseph
+  Date:   2025-01-20
+
+
+#### docs: Add version information to configObject and configOption XML elements
+  Author: George Joseph
+  Date:   2025-01-16
+
+  Most of the configObjects and configOptions that are implemented with
+  ACO or Sorcery now have `<since>/<version>` elements added.  There are
+  probably some that the script I used didn't catch.  The version tags were
+  determined by the following...
+   * Do a git blame on the API call that created the object or option.
+   * From the commit hash, grab the summary line.
+   * Do a `git log --grep <summary>` to find the cherry-pick commits in all
+     branches that match.
+   * Do a `git patch-id` to ensure the commits are all related and didn't get
+     a false match on the summary.
+   * Do a `git tag --contains <commit>` to find the tags that contain each
+     commit.
+   * Weed out all tags not <major>.<minor>.0.
+   * Sort and discard any <major>.0.0 and following tags where the commit
+     appeared in an earlier branch.
+   * The result is a single tag for each branch where the API was last touched.
+
+  configObjects and configOptions elements implemented with the base
+  ast_config APIs were just not possible to find due to the non-deterministic
+  way they are accessed.
+
+  Also note that if the API call was on modified after it was added, the
+  version will be the one it was last modified in.
+
+  Final note:  The configObject and configOption elements were introduced in
+  12.0.0 so options created before then may not have any XML documentation.
+
+
+#### res_pjsip_authenticator_digest: Fix issue with missing auth and DONT_OPTIMIZE
+  Author: George Joseph
+  Date:   2025-01-17
+
+  The return code fom digest_check_auth wasn't explicitly being initialized.
+  The return code also wasn't explicitly set to CHALLENGE when challenges
+  were sent.  When optimization was turned off (DONT_OPTIMIZE), the compiler
+  was setting it to "0"(CHALLENGE) which worked fine.  However, with
+  optimization turned on, it was setting it to "1" (SUCCESS) so if there was
+  no incoming Authorization header, the function was returning SUCCESS to the
+  distributor allowing the request to incorrectly succeed.
+
+  The return code is now initialized correctly and is now explicitly set
+  to CHALLENGE when we send challenges.
+
+
+#### ast_tls_cert: Add option to skip passphrase for CA private key.
+  Author: Naveen Albert
+  Date:   2025-01-14
+
+  Currently, the ast_tls_cert file is hardcoded to use the -des3 option
+  for 3DES encryption, and the script needs to be manually modified
+  to not require a passphrase. Add an option (-e) that disables
+  encryption of the CA private key so no passphrase is required.
+
+  Resolves: #1064
+
+#### chan_iax2: Avoid unnecessarily backlogging non-voice frames.
+  Author: Naveen Albert
+  Date:   2025-01-09
+
+  Currently, when receiving an unauthenticated call, we keep track
+  of the negotiated format in the chosenformat, which allows us
+  to later create the channel using the right format. However,
+  this was not done for authenticated calls. This meant that in
+  certain circumstances, if we had not yet received a voice frame
+  from the peer, only certain other types of frames (e.g. text),
+  there were no variables containing the appropriate frame.
+  This led to problems in the jitterbuffer callback where we
+  unnecessarily bailed out of retrieving a frame from the jitterbuffer.
+  This was logic intentionally added in commit 73103bdcd5b342ce5dfa32039333ffadad551151
+  in response to an earlier regression, and while this prevents
+  crashes, it also backlogs legitimate frames unnecessarily.
+
+  The abort logic was initially added because at this point in the
+  code, we did not have the negotiated format available to us.
+  However, it should always be available to us as a last resort
+  in chosenformat, so we now pull it from there if needed. This
+  allows us to process frames the jitterbuffer even if voicefmt
+  and peerfmt aren't set and still avoid the crash. The failsafe
+  logic is retained, but now it shouldn't be triggered anymore.
+
+  Resolves: #1054
+
+#### config.c: fix #tryinclude being converted to #include on rewrite
+  Author: Allan Nathanson
+  Date:   2024-09-16
+
+  Correct an issue in ast_config_text_file_save2() when updating configuration
+  files with "#tryinclude" statements. The API currently replaces "#tryinclude"
+  with "#include". The API also creates empty template files if the referenced
+  files do not exist. This change resolves these problems.
+
+  Resolves: https://github.com/asterisk/asterisk/issues/920
+
+#### sig_analog: Add Last Number Redial feature.
+  Author: Naveen Albert
+  Date:   2023-11-10
+
+  This adds the Last Number Redial feature to
+  simple switch.
+
+  UserNote: Users can now redial the last number
+  called if the lastnumredial setting is set to yes.
+
+  Resolves: #437
+
+#### docs: Various XML fixes
+  Author: George Joseph
+  Date:   2025-01-15
+
+  * channels/pjsip/dialplan_functions_doc.xml: Added xmlns:xi to docs element.
+
+  * main/bucket.c: Removed XML completely since the "bucket" and "file" objects
+    are internal only with no config file.
+
+  * main/named_acl.c: Fixed the configFile element name. It was "named_acl.conf"
+    and should have been "acl.conf"
+
+  * res/res_geolocation/geoloc_doc.xml: Added xmlns:xi to docs element.
+
+  * res/res_http_media_cache.c: Fixed the configFile element name. It was
+    "http_media_cache.conf" and should have been "res_http_media_cache.conf".
+
+
+#### strings.c: Improve numeric detection in `ast_strings_match()`.
+  Author: Sean Bright
+  Date:   2025-01-15
+
+  Essentially, we were treating 1234x1234 and 1234x5678 as 'equal'
+  because we were able to convert the prefix of each of these strings to
+  the same number.
+
+  Resolves: #1028
+
+#### docs: Enable since/version handling for XML, CLI and ARI documentation
+  Author: George Joseph
+  Date:   2025-01-09
+
+  * Added the "since" element to the XML configObject and configOption elements
+    in appdocsxml.dtd.
+
+  * Added the "Since" section to the following CLI output:
+    ```
+    config show help <module> <object>
+    config show help <module> <object> <option>
+    core show application <app>
+    core show function <func>
+    manager show command <command>
+    manager show event <event>
+    agi show commands topic <topic>
+    ```
+
+  * Refactored the commands above to output their sections in the same order:
+    Synopsis, Since, Description, Syntax, Arguments, SeeAlso
+
+  * Refactored the commands above so they all use the same pattern for writing
+    the output to the CLI.
+
+  * Fixed several memory leaks caused by failure to free temporary output
+    buffers.
+
+  * Added a "since" array to the mustache template for the top-level resources
+    (Channel, Endpoint, etc.) and to the paths/methods underneath them. These
+    will be added to the generated markdown if present.
+    Example:
+    ```
+      "resourcePath": "/api-docs/channels.{format}",
+      "requiresModules": [
+          "res_stasis_answer",
+          "res_stasis_playback",
+          "res_stasis_recording",
+          "res_stasis_snoop"
+      ],
+      "since": [
+          "18.0.0",
+          "21.0.0"
+      ],
+      "apis": [
+          {
+              "path": "/channels",
+              "description": "Active channels",
+              "operations": [
+                  {
+                      "httpMethod": "GET",
+                      "since": [
+                          "18.6.0",
+                          "21.8.0"
+                      ],
+                      "summary": "List all active channels in Asterisk.",
+                      "nickname": "list",
+                      "responseClass": "List[Channel]"
+                  },
+
+    ```
+
+  NOTE:  No versioning information is actually added in this commit.
+  Those will be added separately and instructions for adding and maintaining
+  them will be published on the documentation site at a later date.
+
+
+#### logger.h: Fix build when AST_DEVMODE is not defined.
+  Author: Artem Umerov
+  Date:   2025-01-13
+
+  Resolves: #1058
+
+#### dialplan_functions_doc.xml: Document PJSIP_MEDIA_OFFER's `media` argument.
+  Author: Sean Bright
+  Date:   2025-01-14
+
+  Resolves: #1023
+
+#### samples: Use "asterisk" instead of "postgres" for username
+  Author: Abdelkader Boudih
+  Date:   2025-01-07
+
+
+#### manager: Add `<since>` tags for all AMI actions.
+  Author: Sean Bright
+  Date:   2025-01-02
+
+
+#### logger.c fix: malformed JSON template
+  Author: Steffen Arntz
+  Date:   2025-01-08
+
+  this typo was mentioned before, but never got fixed.
+  https://community.asterisk.org/t/logger-cannot-log-long-json-lines-properly/87618/6
+
+
+#### manager.c: Rename restrictedFile to is_restricted_file.
+  Author: Sean Bright
+  Date:   2025-01-09
+
+  Also correct the spelling of 'privileges.'
+
+
+#### res_config_pgsql: normalize database connection option with cel and cdr by sup..
+  Author: Abdelkader Boudih
+  Date:   2025-01-08
+
+
+#### res_pjproject: Fix typo (OpenmSSL->OpenSSL)
+  Author: Stanislav Abramenkov
+  Date:   2025-01-10
+
+  Fix typo (OpenmSSL->OpenSSL) mentioned by bkford in #972
+
+
+#### Add SHA-256 and SHA-512-256 as authentication digest algorithms
+  Author: George Joseph
+  Date:   2024-10-17
+
+  * Refactored pjproject code to support the new algorithms and
+  added a patch file to third-party/pjproject/patches
+
+  * Added new parameters to the pjsip auth object:
+    * password_digest = <algorithm>:<digest>
+    * supported_algorithms_uac = List of algorithms to support
+      when acting as a UAC.
+    * supported_algorithms_uas = List of algorithms to support
+      when acting as a UAS.
+    See the auth object in pjsip.conf.sample for detailed info.
+
+  * Updated both res_pjsip_authenticator_digest.c (for UAS) and
+  res_pjsip_outbound_authentocator_digest.c (UAC) to suport the
+  new algorithms.
+
+  The new algorithms are only available with the bundled version
+  of pjproject, or an external version > 2.14.1.  OpenSSL version
+  1.1.1 or greater is required to support SHA-512-256.
+
+  Resolves: #948
+
+  UserNote: The SHA-256 and SHA-512-256 algorithms are now available
+  for authentication as both a UAS and a UAC.
+
+
+#### config.c: retain leading whitespace before comments
+  Author: Allan Nathanson
+  Date:   2024-10-30
+
+  Configurations loaded with the ast_config_load2() API and later written
+  out with ast_config_text_file_save2() will have any leading whitespace
+  stripped away.  The APIs should make reasonable efforts to maintain the
+  content and formatting of the configuration files.
+
+  This change retains any leading whitespace from comment lines that start
+  with a ";".
+
+  Resolves: https://github.com/asterisk/asterisk/issues/970
+
+#### config.c: Fix off-nominal reference leak.
+  Author: Sean Bright
+  Date:   2025-01-07
+
+  This was identified and fixed by @Allan-N in #918 but it is an
+  important fix in its own right.
+
+  The fix here is slightly different than Allan's in that we just move
+  the initialization of the problematic AO2 container to where it is
+  first used.
+
+  Fixes #1046
+
+
+#### normalize contrib/ast-db-manage/queue_log.ini.sample
+  Author: Abdelkader Boudih
+  Date:   2025-01-05
+
+
+#### Add C++ Standard detection to configure and fix a new C++20 compile issue
+  Author: George Joseph
+  Date:   2025-01-03
+
+  * The autoconf-archive package contains macros useful for detecting C++
+    standard and testing other C++ capabilities but that package was never
+    included in the install_prereq script so many existing build environments
+    won't have it.  Even if it is installed, older versions won't newer C++
+    standards and will actually cause an error if you try to test for that
+    version. To make it available for those environments, the
+    ax_cxx_compile_stdcxx.m4 macro has copied from the latest release of
+    autoconf-archive into the autoconf directory.
+
+  * A convenience wrapper(ast_cxx_check_std) around ax_cxx_compile_stdcxx was
+    also added so checking the standard version and setting the
+    asterisk-specific PBX_ variables becomes a one-liner:
+    `AST_CXX_CHECK_STD([std], [force_latest_std])`.
+    Calling that with a version of `17` for instance, will set PBX_CXX17
+    to 0 or 1 depending on whether the current c++ compiler supports stdc++17.
+    HAVE_CXX17 will also be 'defined" or not depending on the result.
+
+  * C++ compilers hardly ever default to the latest standard they support.  g++
+    version 14 for instance supports up to C++23 but only uses C++17 by default.
+    If you want to use C++23, you have to add `-std=gnu++=23` to the g++
+    command line.  If you set the second argument of AST_CXX_CHECK_STD to "yes",
+    the macro will automatically keep the highest `-std=gnu++` value that
+    worked and pass that to the Makefiles.
+
+  * The autoconf-archive package was added to install_prereq for future use.
+
+  * Updated configure.ac to use AST_CXX_CHECK_STD() to check for C++
+    versions 11, 14, 17, 20 and 23.
+
+  * Updated configure.ac to accept the `--enable-latest-cxx-std` option which
+    will set the second option to AST_CXX_CHECK_STD() to "yes".  The default
+    is "no".
+
+  * ast_copy_string() in strings.h declares the 'sz' variable as volatile and
+    does an `sz--` on it later.  C++20 no longer allows the `++` and `--`
+    increment and decrement operators to be used on variables declared as
+    volatile however so that was changed to `sz -= 1`.
+
+
+#### chan_dahdi: Fix wrong channel state when RINGING recieved.
+  Author: Naveen Albert
+  Date:   2024-12-16
+
+  Previously, when AST_CONTROL_RINGING was received by
+  a DAHDI device, it would set its channel state to
+  AST_STATE_RINGING. However, an analysis of the codebase
+  and other channel drivers reveals RINGING corresponds to
+  physical power ringing, whereas AST_STATE_RING should be
+  used for audible ringback on the channel. This also ensures
+  the correct device state is returned by the channel state
+  to device state conversion.
+
+  Since there seems to be confusion in various places regarding
+  AST_STATE_RING vs. AST_STATE_RINGING, some documentation has
+  been added or corrected to clarify the actual purposes of these
+  two channel states, and the associated device state mapping.
+
+  An edge case that prompted this fix, but isn't explicitly
+  addressed here, is that of an incoming call to an FXO port.
+  The channel state will be "Ring", which maps to a device state
+  of "In Use", not "Ringing" as would be more intuitive. However,
+  this is semantic, since technically, Asterisk is treating this
+  the same as any other incoming call, and so "Ring" is the
+  semantic state (put another way, Asterisk isn't ringing anything,
+  like in the cases where channels are in the "Ringing" state).
+
+  Since FXO ports don't currently support Call Waiting, a suitable
+  workaround for the above would be to ignore the device state and
+  instead check the channel state (e.g. IMPORT(DAHDI/1-1,CHANNEL(state)))
+  since it will be Ring if the FXO port is idle (but a call is ringing
+  on it) and Up if the FXO port is actually in use. (In both cases,
+  the device state would misleadingly be "In Use".)
+
+  Resolves: #1029
+
+#### Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016
+  Author: Stanislav Abramenkov
+  Date:   2024-12-03
+
+  UserNote: Bundled pjproject has been upgraded to 2.15.1. For more
+  information visit pjproject Github page: https://github.com/pjsip/pjproject/releases/tag/2.15.1
+
+
+#### gcc14: Fix issues caught by gcc 14
+  Author: George Joseph
+  Date:   2025-01-03
+
+  * test_message.c: Fix segfaults caused by passing NULL as an sprintf fmt.
+
+
+#### Header fixes for compiling C++ source files
+  Author: George Joseph
+  Date:   2024-12-31
+
+  A few tweaks needed to be done to some existing header files to allow them to
+  be compiled when included from C++ source files.
+
+  logger.h had declarations for ast_register_verbose() and
+  ast_unregister_verbose() which caused C++ issues but those functions were
+  actually removed from logger.c many years ago so the declarations were just
+  removed from logger.h.
+
+
+#### Add ability to pass arguments to unit tests from the CLI
+  Author: George Joseph
+  Date:   2024-12-27
+
+  Unit tests can now be passed custom arguments from the command
+  line.  For example, the following command would run the "mytest" test
+  in the "/main/mycat" category with the option "myoption=54"
+
+  `CLI> test execute category /main/mycat name mytest options myoption=54`
+
+  You can also pass options to an entire category...
+
+  `CLI> test execute category /main/mycat options myoption=54`
+
+  Basically, everything after the "options" keyword is passed verbatim to
+  the test which must decide what to do with it.
+
+  * A new API ast_test_get_cli_args() was created to give the tests access to
+  the cli_args->argc and cli_args->argv elements.
+
+  * Although not needed for the option processing, a new macro
+  ast_test_validate_cleanup_custom() was added to test.h that allows you
+  to specify a custom error message instead of just "Condition failed".
+
+  * The test_skel.c was updated to demonstrate parsing options and the use
+  of the ast_test_validate_cleanup_custom() macro.
+
+
+#### res_pjsip: Add new AOR option "qualify_2xx_only"
+  Author: Kent
+  Date:   2024-12-03
+
+  Added a new option "qualify_2xx_only" to the res_pjsip AOR qualify
+  feature to mark a contact as available only if an OPTIONS request
+  returns a 2XX response. If the option is not specified or is false,
+  any response to the OPTIONS request marks the contact as available.
+
+  UserNote: The pjsip.conf AOR section now has a "qualify_2xx_only"
+  option that can be set so that only 2XX responses to OPTIONS requests
+  used to qualify a contact will mark the contact as available.
+
+
+#### res_odbc: release threads from potential starvation.
+  Author: Jaco Kroon
+  Date:   2024-12-10
+
+  Whenever a slot is freed up due to a failed connection, wake up a waiter
+  before failing.
+
+  In the case of a dead connection there could be waiters, for example,
+  let's say two threads tries to acquire objects at the same time, with
+  one in the cached connections, one will acquire the dead connection, and
+  the other will enter into the wait state.  The thread with the dead
+  connection will clear up the dead connection, and then attempt a
+  re-acquire (at this point there cannot be cached connections else the
+  other thread would have received that and tried to clean up), as such,
+  at this point we're guaranteed that either there are no waiting threads,
+  or that the maxconnections - connection_cnt threads will attempt to
+  re-acquire connections, and then either succeed, using those
+  connections, or failing, and then signalling to release more waiters.
+
+  Also fix the pointer log for ODBC handle %p dead which would always
+  reflect NULL.
+
+  Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+#### app_queue: indicate the paused state of a dynamically added member in queue_log.
+  Author: Sperl Viktor
+  Date:   2024-12-05
+
+  Fixes: #1021
+
+#### Allow C++ source files (as extension .cc) in the main directory
+  Author: George Joseph
+  Date:   2024-12-09
+
+  Although C++ files (as extension .cc) have been handled in the module
+  directories for many years, the main directory was missing one line in its
+  Makefile that prevented C++ files from being recognised there.
+
+
+#### format_gsm.c: Added mime type
+  Author: Alexey Khabulyak
+  Date:   2024-12-03
+
+  Sometimes it's impossible to get a file extension from URL
+  (eg. http://example.com/gsm/your) so we have to rely on content-type header.
+  Currenly, asterisk does not support content-type for gsm format(unlike wav).
+  Added audio/gsm according to https://www.rfc-editor.org/rfc/rfc4856.html
+
+
+#### func_uuid: Add a new dialplan function to generate UUIDs
+  Author: Maksim Nesterov
+  Date:   2024-12-01
+
+  This function is useful for uniquely identifying calls, recordings, and other entities in distributed environments, as well as for generating an argument for the AudioSocket application.
+
+
+#### app_queue: allow dynamically adding a queue member in paused state.
+  Author: Sperl Viktor
+  Date:   2024-11-27
+
+  Fixes: #1007
+
+  UserNote: use the p option of AddQueueMember() for paused member state.
+  Optionally, use the r(reason) option to specify a custom reason for the pause.
+
+
+#### chan_iax2: Add log message for rejected calls.
+  Author: Naveen Albert
+  Date:   2023-11-06
+
+  Add a log message for a path that currently silently drops IAX2
+  frames without indicating that anything is wrong.
+
+
+#### chan_pjsip: Send VIDUPDATE RTP frame for all H.264 streams
+  Author: Maximilian Fridrich
+  Date:   2024-12-02
+
+  Currently, when a chan_pjsip channel receives a VIDUPDATE indication,
+  an RTP VIDUPDATE frame is only queued on a H.264 stream if WebRTC is
+  enabled on that endpoint. This restriction does not really make sense.
+
+  Now, a VIDUPDATE RTP frame is written even if WebRTC is not enabled (as
+  is the case with VP8, VP9, and H.265 streams).
+
+  Resolves: #1013
+
+#### audiohook.c: resolving the issue with audiohook both reading when packet loss ..
+  Author: Tinet-mucw
+  Date:   2024-08-22
+
+  When there is 0% packet loss on one side of the call and 15% packet loss on the other side, reading frame is often failed when reading direction_both audiohook. when read_factory available = 0, write_factory available = 320; i think write factory is usable read; because after reading one frame, there is still another frame that can be read together with the next read factory frame.
+
+  Resolves: #851
+
+#### res_curl.conf.sample: clean up sample configuration and add new SSL options
+  Author: Mike Pultz
+  Date:   2024-11-21
+
+  This update properly documents all the current configuration options supported
+  by the curl implementation, including the new ssl_* options.
+
+
+#### res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big
+  Author: Viktor Litvinov
+  Date:   2024-10-02
+
+  Set Mark bit in rtp stream when timestamp skew is bigger than MAX_TIMESTAMP_SKEW.
+
+  Fixes: #927
+
+#### res_rtp_asterisk.c: Fix bridged_payload matching with sample rate for DTMF
+  Author: Alexey Vasilyev
+  Date:   2024-11-25
+
+  Fixes #1004
+
+
+#### manager.c: Add Processed Call Count to CoreStatus output
+  Author: Mike Pultz
+  Date:   2024-11-21
+
+  This update adds the processed call count to the CoreStatus AMI Action responsie. This output is
+  similar to the values returned by "core show channels" or "core show calls" in the CLI.
+
+  UserNote: The current processed call count is now returned as CoreProcessedCalls from the
+  CoreStatus AMI Action.
+
+
+#### func_curl.c: Add additional CURL options for SSL requests
+  Author: Mike Pultz
+  Date:   2024-11-09
+
+  This patch adds additional CURL TLS options / options to support mTLS authenticated requests:
+
+  * ssl_verifyhost - perform a host verification on the peer certificate (CURLOPT_SSL_VERIFYHOST)
+  * ssl_cainfo - define a CA certificate file (CURLOPT_CAINFO)
+  * ssl_capath - define a CA certificate directory (CURLOPT_CAPATH)
+  * ssl_cert - define a client certificate for the request (CURLOPT_SSLCERT)
+  * ssl_certtype - specify the client certificate type (CURLOPT_SSLCERTTYPE)
+  * ssl_key - define a client private key for the request (CURLOPT_SSLKEY)
+  * ssl_keytype - specify the client private key type (CURLOPT_SSLKEYTYPE)
+  * ssl_keypasswd - set a password for the private key, if required (CURLOPT_KEYPASSWD)
+
+  UserNote: The following new configuration options are now available
+  in the res_curl.conf file, and the CURL() function: 'ssl_verifyhost'
+  (CURLOPT_SSL_VERIFYHOST), 'ssl_cainfo' (CURLOPT_CAINFO), 'ssl_capath'
+  (CURLOPT_CAPATH), 'ssl_cert' (CURLOPT_SSLCERT), 'ssl_certtype'
+  (CURLOPT_SSLCERTTYPE), 'ssl_key' (CURLOPT_SSLKEY), 'ssl_keytype',
+  (CURLOPT_SSLKEYTYPE) and 'ssl_keypasswd' (CURLOPT_KEYPASSWD). See the
+  libcurl documentation for more details.
+
+
+#### sig_analog: Fix regression with FGD and E911 signaling.
+  Author: Naveen Albert
+  Date:   2024-11-14
+
+  Commit 466eb4a52b69e6dead7ebba13a83f14ef8a559c1 introduced a regression
+  which completely broke Feature Group D and E911 signaling, by removing
+  the call to analog_my_getsigstr, which affected multiple switch cases.
+  Restore the original behavior for all protocols except Feature Group C
+  CAMA (MF), which is all that patch was attempting to target.
+
+  Resolves: #993
+
+#### main/stasis_channels.c: Fix crash when setting a global variable with invalid ..
+  Author: James Terhune
+  Date:   2024-11-18
+
+  Add check for null value of chan before referencing it with ast_channel_name()
+
+  Resolves: #999
+
+#### res_stir_shaken: Allow sending Identity headers for unknown TNs
+  Author: George Joseph
+  Date:   2024-11-08
+
+  Added a new option "unknown_tn_attest_level" to allow Identity
+  headers to be sent when a callerid TN isn't explicitly configured
+  in stir_shaken.conf.  Since there's no TN object, a private_key_file
+  and public_cert_url must be configured in the attestation or profile
+  objects.
+
+  Since "unknown_tn_attest_level" uses the same enum as attest_level,
+  some of the sorcery macros had to be refactored to allow sharing
+  the enum and to/from string conversion functions.
+
+  Also fixed a memory leak in crypto_utils:pem_file_cb().
+
+  Resolves: #921
+
+  UserNote: You can now set the "unknown_tn_attest_level" option
+  in the attestation and/or profile objects in stir_shaken.conf to
+  enable sending Identity headers for callerid TNs not explicitly
+  configured.
+
+
index 7e28215bbe16cd4f0830cda0b10f34324dbcbb1b..b813b61d1073f1e9a3bd002d6c5eb6bec663c23e 100644 (file)
@@ -1713,3 +1713,25 @@ ALTER TABLE ps_endpoints ADD COLUMN suppress_moh_on_sendonly ENUM('0','1','off',
 
 UPDATE alembic_version SET version_num='4f91fc18c979' WHERE alembic_version.version_num = '801b9fced8b7';
 
+-- Running upgrade 4f91fc18c979 -> 44bd6dd914fa
+
+ALTER TABLE ps_aors ADD COLUMN qualify_2xx_only ENUM('0','1','off','on','false','true','no','yes');
+
+ALTER TABLE ps_contacts ADD COLUMN qualify_2xx_only ENUM('0','1','off','on','false','true','no','yes');
+
+UPDATE alembic_version SET version_num='44bd6dd914fa' WHERE alembic_version.version_num = '4f91fc18c979';
+
+-- Running upgrade 44bd6dd914fa -> abdc9ede147d
+
+ALTER TABLE ps_auths ADD COLUMN password_digest VARCHAR(1024);
+
+ALTER TABLE ps_auths ADD COLUMN supported_algorithms_uas VARCHAR(1024);
+
+ALTER TABLE ps_auths ADD COLUMN supported_algorithms_uac VARCHAR(1024);
+
+ALTER TABLE ps_globals ADD COLUMN default_auth_algorithms_uas VARCHAR(1024);
+
+ALTER TABLE ps_globals ADD COLUMN default_auth_algorithms_uac VARCHAR(1024);
+
+UPDATE alembic_version SET version_num='abdc9ede147d' WHERE alembic_version.version_num = '44bd6dd914fa';
+
index 924f8406feb3f437eb958bcd30dd3f8d47a8bf37..24d664336f7cd5dfee18448706bdd43591139f46 100644 (file)
@@ -1,5 +1,3 @@
-BEGIN;
-
 CREATE TABLE alembic_version (
     version_num VARCHAR(32) NOT NULL, 
     CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
@@ -8,8 +6,8 @@ CREATE TABLE alembic_version (
 -- Running upgrade  -> 4105ee839f58
 
 CREATE TABLE queue_log (
-    id BIGSERIAL NOT NULL
-    time TIMESTAMP WITHOUT TIME ZONE, 
+    id BIGINT NOT NULL AUTO_INCREMENT
+    time DATETIME, 
     callid VARCHAR(80), 
     queuename VARCHAR(256), 
     agent VARCHAR(80), 
@@ -23,7 +21,5 @@ CREATE TABLE queue_log (
     UNIQUE (id)
 );
 
-INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58') RETURNING alembic_version.version_num;
-
-COMMIT;
+INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58');
 
index f40240bf76347b86587353d9ac414df7f30bc610..4f93200b181d8350a58f37f172aed269c8a2d23f 100644 (file)
@@ -1837,5 +1837,27 @@ 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';
 
+-- Running upgrade 4f91fc18c979 -> 44bd6dd914fa
+
+ALTER TABLE ps_aors ADD COLUMN qualify_2xx_only ast_bool_values;
+
+ALTER TABLE ps_contacts ADD COLUMN qualify_2xx_only ast_bool_values;
+
+UPDATE alembic_version SET version_num='44bd6dd914fa' WHERE alembic_version.version_num = '4f91fc18c979';
+
+-- Running upgrade 44bd6dd914fa -> abdc9ede147d
+
+ALTER TABLE ps_auths ADD COLUMN password_digest VARCHAR(1024);
+
+ALTER TABLE ps_auths ADD COLUMN supported_algorithms_uas VARCHAR(1024);
+
+ALTER TABLE ps_auths ADD COLUMN supported_algorithms_uac VARCHAR(1024);
+
+ALTER TABLE ps_globals ADD COLUMN default_auth_algorithms_uas VARCHAR(1024);
+
+ALTER TABLE ps_globals ADD COLUMN default_auth_algorithms_uac VARCHAR(1024);
+
+UPDATE alembic_version SET version_num='abdc9ede147d' WHERE alembic_version.version_num = '44bd6dd914fa';
+
 COMMIT;