<li>1276: MixMonitor produces broken recordings in bridged calls with asymmetric codecs (e.g., alaw vs G.722)</li>
<li>1279: [bug]: regression: 20.12.0 downgrades quality of wav16 recordings</li>
<li>1282: [bug]: Alternate Channel Storage Backends menuselect not enabling it</li>
</ul>
<h3>Commits By Author:</h3>
<ul>
<li>
<h4>Michal Hajek (1):</h4>
</li>
<li>
<p>audiohook.c: Improve frame pairing logic to avoid MixMonitor breakage with mix..</p>
</li>
<li>
<h4>Sean Bright (1):</h4>
</li>
<li>channelstorage_makeopts.xml: Remove errant XML character.</li>
</ul>
<h3>Commit List:</h3>
<ul>
<li>channelstorage_makeopts.xml: Remove errant XML character.</li>
</ul>
<h3>Commit Details:</h3>
<h4>audiohook.c: Improve frame pairing logic to avoid MixMonitor breakage with mix..</h4>
<p>Author: Michal Hajek
Date: 2025-05-21</p>
<p>This patch adjusts the read/write synchronization logic in audiohook_read_frame_both()
to better handle calls where participants use different codecs or sample sizes
(e.g., alaw vs G.722). The previous hard threshold of 2 * samples caused MixMonitor
recordings to break or stutter when frames were not aligned between both directions.</p>
<p>The new logic uses a more tolerant limit (1.5 * samples), which prevents audio tearing
without causing excessive buffer overruns. This fix specifically addresses issues
with MixMonitor when recording directly on a channel in a bridge using mixed codecs.</p>
<p>Reported-by: Michal Hajek <ahref="mailto:michal.hajek@daktela.com">michal.hajek@daktela.com</a></p>
<p>Resolves: #1276
Resolves: #1279</p>
<h4>channelstorage_makeopts.xml: Remove errant XML character.</h4>
<li><ahref="https://github.com/asterisk/asterisk/security/advisories/GHSA-c7p6-7mvq-8jq2">GHSA-c7p6-7mvq-8jq2</a>: cli_permissions.conf: deny option does not work for disallowing shell commands</li>
<li><ahref="https://github.com/asterisk/asterisk/security/advisories/GHSA-c7p6-7mvq-8jq2">GHSA-c7p6-7mvq-8jq2</a>: cli_permissions.conf: deny option does not work for disallowing shell commands</li>
</ul>
</ul>
@ -107,16 +107,17 @@
</ul>
</ul>
<h3>Commit Authors:</h3>
<h3>Commit Authors:</h3>
<ul>
<ul>
<li>George Joseph: (8)</li>
<li>George Joseph: (10)</li>
<li>Itzanh: (1)</li>
<li>Itzanh: (1)</li>
<li>Jaco Kroon: (2)</li>
<li>Jaco Kroon: (2)</li>
<li>Joe Searle: (1)</li>
<li>Joe Searle: (1)</li>
<li>Michal Hajek: (1)</li>
<li>Mike Bradeen: (2)</li>
<li>Mike Bradeen: (2)</li>
<li>Mkmer: (1)</li>
<li>Mkmer: (1)</li>
<li>Nathan Monfils: (1)</li>
<li>Nathan Monfils: (1)</li>
<li>Naveen Albert: (3)</li>
<li>Naveen Albert: (3)</li>
<li>Phoneben: (1)</li>
<li>Phoneben: (1)</li>
<li>Sean Bright: (1)</li>
<li>Sean Bright: (2)</li>
<li>Stanislav Abramenkov: (1)</li>
<li>Stanislav Abramenkov: (1)</li>
<li>Sven Kube: (2)</li>
<li>Sven Kube: (2)</li>
<li>Thomas B. Clark: (1)</li>
<li>Thomas B. Clark: (1)</li>
@ -138,12 +139,17 @@
<li>1254: [bug]: ActiveChannels not reported when using AMI command PJSIPShowEndpoint</li>
<li>1254: [bug]: ActiveChannels not reported when using AMI command PJSIPShowEndpoint</li>
<li>1271: [bug]: STIR/SHAKEN not accepting port 8443 in certificate URLs</li>
<li>1271: [bug]: STIR/SHAKEN not accepting port 8443 in certificate URLs</li>
<p>When the callback() API was invoked but no channel passed the test, callback
would return the last channel tested instead of NULL. It now correctly
returns NULL when no channel matches.</p>
<p>Resolves: #1288</p>
<h4>audiohook.c: Improve frame pairing logic to avoid MixMonitor breakage with mix..</h4>
<p>Author: Michal Hajek
Date: 2025-05-21</p>
<p>This patch adjusts the read/write synchronization logic in audiohook_read_frame_both()
to better handle calls where participants use different codecs or sample sizes
(e.g., alaw vs G.722). The previous hard threshold of 2 * samples caused MixMonitor
recordings to break or stutter when frames were not aligned between both directions.</p>
<p>The new logic uses a more tolerant limit (1.5 * samples), which prevents audio tearing
without causing excessive buffer overruns. This fix specifically addresses issues
with MixMonitor when recording directly on a channel in a bridge using mixed codecs.</p>
<p>Reported-by: Michal Hajek <ahref="mailto:michal.hajek@daktela.com">michal.hajek@daktela.com</a></p>
<p>Resolves: #1276
Resolves: #1279</p>
<h4>channelstorage_makeopts.xml: Remove errant XML character.</h4>
- [GHSA-c7p6-7mvq-8jq2](https://github.com/asterisk/asterisk/security/advisories/GHSA-c7p6-7mvq-8jq2): cli_permissions.conf: deny option does not work for disallowing shell commands
- [GHSA-c7p6-7mvq-8jq2](https://github.com/asterisk/asterisk/security/advisories/GHSA-c7p6-7mvq-8jq2): cli_permissions.conf: deny option does not work for disallowing shell commands
@ -96,16 +96,17 @@
### Commit Authors:
### Commit Authors:
- George Joseph: (8)
- George Joseph: (10)
- Itzanh: (1)
- Itzanh: (1)
- Jaco Kroon: (2)
- Jaco Kroon: (2)
- Joe Searle: (1)
- Joe Searle: (1)
- Michal Hajek: (1)
- Mike Bradeen: (2)
- Mike Bradeen: (2)
- Mkmer: (1)
- Mkmer: (1)
- Nathan Monfils: (1)
- Nathan Monfils: (1)
- Naveen Albert: (3)
- Naveen Albert: (3)
- Phoneben: (1)
- Phoneben: (1)
- Sean Bright: (1)
- Sean Bright: (2)
- Stanislav Abramenkov: (1)
- Stanislav Abramenkov: (1)
- Sven Kube: (2)
- Sven Kube: (2)
- Thomas B. Clark: (1)
- Thomas B. Clark: (1)
@ -128,11 +129,16 @@
- 1254: [bug]: ActiveChannels not reported when using AMI command PJSIPShowEndpoint
- 1254: [bug]: ActiveChannels not reported when using AMI command PJSIPShowEndpoint
- 1271: [bug]: STIR/SHAKEN not accepting port 8443 in certificate URLs
- 1271: [bug]: STIR/SHAKEN not accepting port 8443 in certificate URLs