From 7bb900bb4d4c9d380a60e77f4eaf1847454b1a1d Mon Sep 17 00:00:00 2001
From: Asterisk Development Team
Date: Wed, 15 Oct 2025 16:20:52 +0000
Subject: [PATCH] Update for 20.16.0
---
.version | 2 +-
CHANGES.html | 2 +-
CHANGES.md | 2 +-
ChangeLogs/ChangeLog-20.16.0-rc2.html | 81 ----------------
ChangeLogs/ChangeLog-20.16.0-rc2.md | 95 -------------------
...0.16.0-rc1.html => ChangeLog-20.16.0.html} | 63 ++++++++++--
...og-20.16.0-rc1.md => ChangeLog-20.16.0.md} | 66 +++++++++++--
README.html | 4 +-
README.md | 2 +-
9 files changed, 117 insertions(+), 200 deletions(-)
delete mode 100644 ChangeLogs/ChangeLog-20.16.0-rc2.html
delete mode 100644 ChangeLogs/ChangeLog-20.16.0-rc2.md
rename ChangeLogs/{ChangeLog-20.16.0-rc1.html => ChangeLog-20.16.0.html} (94%)
rename ChangeLogs/{ChangeLog-20.16.0-rc1.md => ChangeLog-20.16.0.md} (94%)
diff --git a/.version b/.version
index d3793cd5f6..8ce7030825 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-20.16.0-rc2
+20.16.0
diff --git a/CHANGES.html b/CHANGES.html
index b2ccf25ade..452f7ebc32 120000
--- a/CHANGES.html
+++ b/CHANGES.html
@@ -1 +1 @@
-ChangeLogs/ChangeLog-20.16.0-rc2.html
\ No newline at end of file
+ChangeLogs/ChangeLog-20.16.0.html
\ No newline at end of file
diff --git a/CHANGES.md b/CHANGES.md
index a42f7cb690..7c09216341 120000
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1 +1 @@
-ChangeLogs/ChangeLog-20.16.0-rc2.md
\ No newline at end of file
+ChangeLogs/ChangeLog-20.16.0.md
\ No newline at end of file
diff --git a/ChangeLogs/ChangeLog-20.16.0-rc2.html b/ChangeLogs/ChangeLog-20.16.0-rc2.html
deleted file mode 100644
index e78fc2e946..0000000000
--- a/ChangeLogs/ChangeLog-20.16.0-rc2.html
+++ /dev/null
@@ -1,81 +0,0 @@
-ChangeLog for asterisk-20.16.0-rc2
-Change Log for Release asterisk-20.16.0-rc2
-Links:
-
-Summary:
-
-- Commits: 3
-- Commit Authors: 1
-- Issues Resolved: 3
-- Security Advisories Resolved: 0
-
-User Notes:
-Upgrade Notes:
-Developer Notes:
-Commit Authors:
-
-Issue and Commit Detail:
-Closed Issues:
-
-- 1457: [bug]: segmentation fault because of a wrong ari config
-- 1462: [bug]: chan_websocket isn't handling the "opus" codec correctly.
-- 1474: [bug]: Media doesn't flow for video conference after res_rtp_asterisk change to stop media flow before DTLS completes
-
-Commits By Author:
-
--
-
George Joseph (3):
-
-- res_ari: Ensure outbound websocket config has a websocket_client_id.
-- chan_websocket: Fix codec validation and add passthrough option.
-- res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-
-Commit List:
-
-- res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-- chan_websocket: Fix codec validation and add passthrough option.
-- res_ari: Ensure outbound websocket config has a websocket_client_id.
-
-Commit Details:
-res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-Author: George Joseph
- Date: 2025-09-23
-In __rtp_sendto(), the check for DTLS negotiation completion for rtcp packets
- needs to use the rtp->dtls structure instead of rtp->rtcp->dtls when
- AST_RTP_INSTANCE_RTCP_MUX is set.
-Resolves: #1474
-chan_websocket: Fix codec validation and add passthrough option.
-Author: George Joseph
- Date: 2025-09-17
-
-- Fixed an issue in webchan_write() where we weren't detecting equivalent
- codecs properly.
-- Added the "p" dialstring option that puts the channel driver in
- "passthrough" mode where it will not attempt to re-frame or re-time
- media coming in over the websocket from the remote app. This can be used
- for any codec but MUST be used for codecs that use packet headers or whose
- data stream can't be broken up on arbitrary byte boundaries. In this case,
- the remote app is fully responsible for correctly framing and timing media
- sent to Asterisk and the MEDIA text commands that could be sent over the
- websocket are disabled. Currently, passthrough mode is automatically set
- for the opus, speex and g729 codecs.
-- Now calling ast_set_read_format() after ast_channel_set_rawreadformat() to
- ensure proper translation paths are set up when switching between native
- frames and slin silence frames. This fixes an issue with codec errors
- when transcode_via_sln=yes.
-
-Resolves: #1462
-res_ari: Ensure outbound websocket config has a websocket_client_id.
-Author: George Joseph
- Date: 2025-09-12
-Added a check to outbound_websocket_apply() that makes sure an outbound
- websocket config object in ari.conf has a websocket_client_id parameter.
-Resolves: #1457
-
diff --git a/ChangeLogs/ChangeLog-20.16.0-rc2.md b/ChangeLogs/ChangeLog-20.16.0-rc2.md
deleted file mode 100644
index d32e76a270..0000000000
--- a/ChangeLogs/ChangeLog-20.16.0-rc2.md
+++ /dev/null
@@ -1,95 +0,0 @@
-
-## Change Log for Release asterisk-20.16.0-rc2
-
-### Links:
-
- - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-20.16.0-rc2.html)
- - [GitHub Diff](https://github.com/asterisk/asterisk/compare/20.16.0-rc1...20.16.0-rc2)
- - [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20.16.0-rc2.tar.gz)
- - [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)
-
-### Summary:
-
-- Commits: 3
-- Commit Authors: 1
-- Issues Resolved: 3
-- Security Advisories Resolved: 0
-
-### User Notes:
-
-
-### Upgrade Notes:
-
-
-### Developer Notes:
-
-
-### Commit Authors:
-
-- George Joseph: (3)
-
-## Issue and Commit Detail:
-
-### Closed Issues:
-
- - 1457: [bug]: segmentation fault because of a wrong ari config
- - 1462: [bug]: chan_websocket isn't handling the "opus" codec correctly.
- - 1474: [bug]: Media doesn't flow for video conference after res_rtp_asterisk change to stop media flow before DTLS completes
-
-### Commits By Author:
-
-- #### George Joseph (3):
- - res_ari: Ensure outbound websocket config has a websocket_client_id.
- - chan_websocket: Fix codec validation and add passthrough option.
- - res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-
-
-### Commit List:
-
-- res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-- chan_websocket: Fix codec validation and add passthrough option.
-- res_ari: Ensure outbound websocket config has a websocket_client_id.
-
-### Commit Details:
-
-#### res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
- Author: George Joseph
- Date: 2025-09-23
-
- In __rtp_sendto(), the check for DTLS negotiation completion for rtcp packets
- needs to use the rtp->dtls structure instead of rtp->rtcp->dtls when
- AST_RTP_INSTANCE_RTCP_MUX is set.
-
- Resolves: #1474
-
-#### chan_websocket: Fix codec validation and add passthrough option.
- Author: George Joseph
- Date: 2025-09-17
-
- * Fixed an issue in webchan_write() where we weren't detecting equivalent
- codecs properly.
- * Added the "p" dialstring option that puts the channel driver in
- "passthrough" mode where it will not attempt to re-frame or re-time
- media coming in over the websocket from the remote app. This can be used
- for any codec but MUST be used for codecs that use packet headers or whose
- data stream can't be broken up on arbitrary byte boundaries. In this case,
- the remote app is fully responsible for correctly framing and timing media
- sent to Asterisk and the MEDIA text commands that could be sent over the
- websocket are disabled. Currently, passthrough mode is automatically set
- for the opus, speex and g729 codecs.
- * Now calling ast_set_read_format() after ast_channel_set_rawreadformat() to
- ensure proper translation paths are set up when switching between native
- frames and slin silence frames. This fixes an issue with codec errors
- when transcode_via_sln=yes.
-
- Resolves: #1462
-
-#### res_ari: Ensure outbound websocket config has a websocket_client_id.
- Author: George Joseph
- Date: 2025-09-12
-
- Added a check to outbound_websocket_apply() that makes sure an outbound
- websocket config object in ari.conf has a websocket_client_id parameter.
-
- Resolves: #1457
-
diff --git a/ChangeLogs/ChangeLog-20.16.0-rc1.html b/ChangeLogs/ChangeLog-20.16.0.html
similarity index 94%
rename from ChangeLogs/ChangeLog-20.16.0-rc1.html
rename to ChangeLogs/ChangeLog-20.16.0.html
index 2c8027219e..a46c051775 100644
--- a/ChangeLogs/ChangeLog-20.16.0-rc1.html
+++ b/ChangeLogs/ChangeLog-20.16.0.html
@@ -1,17 +1,17 @@
-ChangeLog for asterisk-20.16.0-rc1
-Change Log for Release asterisk-20.16.0-rc1
+ChangeLog for asterisk-20.16.0
+Change Log for Release asterisk-20.16.0
Links:
Summary:
-- Commits: 51
+- Commits: 54
- Commit Authors: 22
-- Issues Resolved: 37
+- Issues Resolved: 40
- Security Advisories Resolved: 0
User Notes:
@@ -124,7 +124,7 @@
Allan Nathanson: (1)
Artem Umerov: (1)
Ben Ford: (1)
-George Joseph: (9)
+George Joseph: (12)
Igor Goncharovsky: (2)
Jaco Kroon: (1)
Joe Garlick: (1)
@@ -182,6 +182,9 @@
1394: [improvement]: sig_analog: Skip Caller ID spill if Caller ID is disabled
1396: [new-feature]: pbx_builtins: Make tone option for WaitExten configurable
1401: [bug]: app_waitfornoise timeout is always less then configured because of time() usage
+1457: [bug]: segmentation fault because of a wrong ari config
+1462: [bug]: chan_websocket isn't handling the "opus" codec correctly.
+1474: [bug]: Media doesn't flow for video conference after res_rtp_asterisk change to stop media flow before DTLS completes
Commits By Author:
@@ -218,7 +221,7 @@
res_rtp_asterisk: Don't send RTP before DTLS has negotiated.
-
-
George Joseph (9):
+George Joseph (12):
- Media over Websocket Channel Driver
- app_mixmonitor: Update the documentation concerning the "D" option.
@@ -228,8 +231,11 @@
- channelstorage_cpp_map_name_id.cc: Refactor iterators for thread-safety.
- xmldoc.c: Fix rendering of CLI output.
- chan_websocket: Fix buffer overrun when processing TEXT websocket frames.
+- chan_websocket: Allow additional URI parameters to be added to the outgoing URI.
+- res_ari: Ensure outbound websocket config has a websocket_client_id.
+- chan_websocket: Fix codec validation and add passthrough option.
-
-
chan_websocket: Allow additional URI parameters to be added to the outgoing URI.
+res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-
Igor Goncharovsky (2):
@@ -347,6 +353,9 @@
Commit List:
+- res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
+- chan_websocket: Fix codec validation and add passthrough option.
+- res_ari: Ensure outbound websocket config has a websocket_client_id.
- chan_websocket.c: Add DTMF messages
- app_queue.c: Add new global 'log_unpause_on_reason_change'
- app_waitforsilence.c: Use milliseconds to calculate timeout time
@@ -394,6 +403,40 @@
- res_musiconhold: Appropriately lock channel during start.
Commit Details:
+res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
+Author: George Joseph
+ Date: 2025-09-23
+In __rtp_sendto(), the check for DTLS negotiation completion for rtcp packets
+ needs to use the rtp->dtls structure instead of rtp->rtcp->dtls when
+ AST_RTP_INSTANCE_RTCP_MUX is set.
+Resolves: #1474
+chan_websocket: Fix codec validation and add passthrough option.
+Author: George Joseph
+ Date: 2025-09-17
+
+- Fixed an issue in webchan_write() where we weren't detecting equivalent
+ codecs properly.
+- Added the "p" dialstring option that puts the channel driver in
+ "passthrough" mode where it will not attempt to re-frame or re-time
+ media coming in over the websocket from the remote app. This can be used
+ for any codec but MUST be used for codecs that use packet headers or whose
+ data stream can't be broken up on arbitrary byte boundaries. In this case,
+ the remote app is fully responsible for correctly framing and timing media
+ sent to Asterisk and the MEDIA text commands that could be sent over the
+ websocket are disabled. Currently, passthrough mode is automatically set
+ for the opus, speex and g729 codecs.
+- Now calling ast_set_read_format() after ast_channel_set_rawreadformat() to
+ ensure proper translation paths are set up when switching between native
+ frames and slin silence frames. This fixes an issue with codec errors
+ when transcode_via_sln=yes.
+
+Resolves: #1462
+res_ari: Ensure outbound websocket config has a websocket_client_id.
+Author: George Joseph
+ Date: 2025-09-12
+Added a check to outbound_websocket_apply() that makes sure an outbound
+ websocket config object in ari.conf has a websocket_client_id parameter.
+Resolves: #1457
chan_websocket.c: Add DTMF messages
Author: Joe Garlick
Date: 2025-09-04
diff --git a/ChangeLogs/ChangeLog-20.16.0-rc1.md b/ChangeLogs/ChangeLog-20.16.0.md
similarity index 94%
rename from ChangeLogs/ChangeLog-20.16.0-rc1.md
rename to ChangeLogs/ChangeLog-20.16.0.md
index c339175845..75e29bdab3 100644
--- a/ChangeLogs/ChangeLog-20.16.0-rc1.md
+++ b/ChangeLogs/ChangeLog-20.16.0.md
@@ -1,18 +1,18 @@
-## Change Log for Release asterisk-20.16.0-rc1
+## Change Log for Release asterisk-20.16.0
### Links:
- - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-20.16.0-rc1.html)
- - [GitHub Diff](https://github.com/asterisk/asterisk/compare/20.15.2...20.16.0-rc1)
- - [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20.16.0-rc1.tar.gz)
+ - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-20.16.0.html)
+ - [GitHub Diff](https://github.com/asterisk/asterisk/compare/20.15.2...20.16.0)
+ - [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20.16.0.tar.gz)
- [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)
### Summary:
-- Commits: 51
+- Commits: 54
- Commit Authors: 22
-- Issues Resolved: 37
+- Issues Resolved: 40
- Security Advisories Resolved: 0
### User Notes:
@@ -113,7 +113,7 @@
- Allan Nathanson: (1)
- Artem Umerov: (1)
- Ben Ford: (1)
-- George Joseph: (9)
+- George Joseph: (12)
- Igor Goncharovsky: (2)
- Jaco Kroon: (1)
- Joe Garlick: (1)
@@ -172,6 +172,9 @@
- 1394: [improvement]: sig_analog: Skip Caller ID spill if Caller ID is disabled
- 1396: [new-feature]: pbx_builtins: Make tone option for WaitExten configurable
- 1401: [bug]: app_waitfornoise timeout is always less then configured because of time() usage
+ - 1457: [bug]: segmentation fault because of a wrong ari config
+ - 1462: [bug]: chan_websocket isn't handling the "opus" codec correctly.
+ - 1474: [bug]: Media doesn't flow for video conference after res_rtp_asterisk change to stop media flow before DTLS completes
### Commits By Author:
@@ -192,7 +195,7 @@
- #### Ben Ford (1):
- res_rtp_asterisk: Don't send RTP before DTLS has negotiated.
-- #### George Joseph (9):
+- #### George Joseph (12):
- Media over Websocket Channel Driver
- app_mixmonitor: Update the documentation concerning the "D" option.
- cdr.c: Set tenantid from party_a->base instead of chan->base.
@@ -202,6 +205,9 @@
- xmldoc.c: Fix rendering of CLI output.
- chan_websocket: Fix buffer overrun when processing TEXT websocket frames.
- chan_websocket: Allow additional URI parameters to be added to the outgoing URI.
+ - res_ari: Ensure outbound websocket config has a websocket_client_id.
+ - chan_websocket: Fix codec validation and add passthrough option.
+ - res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
- #### Igor Goncharovsky (2):
- app_waitforsilence.c: Use milliseconds to calculate timeout time
@@ -273,6 +279,9 @@
### Commit List:
+- res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
+- chan_websocket: Fix codec validation and add passthrough option.
+- res_ari: Ensure outbound websocket config has a websocket_client_id.
- chan_websocket.c: Add DTMF messages
- app_queue.c: Add new global 'log_unpause_on_reason_change'
- app_waitforsilence.c: Use milliseconds to calculate timeout time
@@ -321,6 +330,47 @@
### Commit Details:
+#### res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
+ Author: George Joseph
+ Date: 2025-09-23
+
+ In __rtp_sendto(), the check for DTLS negotiation completion for rtcp packets
+ needs to use the rtp->dtls structure instead of rtp->rtcp->dtls when
+ AST_RTP_INSTANCE_RTCP_MUX is set.
+
+ Resolves: #1474
+
+#### chan_websocket: Fix codec validation and add passthrough option.
+ Author: George Joseph
+ Date: 2025-09-17
+
+ * Fixed an issue in webchan_write() where we weren't detecting equivalent
+ codecs properly.
+ * Added the "p" dialstring option that puts the channel driver in
+ "passthrough" mode where it will not attempt to re-frame or re-time
+ media coming in over the websocket from the remote app. This can be used
+ for any codec but MUST be used for codecs that use packet headers or whose
+ data stream can't be broken up on arbitrary byte boundaries. In this case,
+ the remote app is fully responsible for correctly framing and timing media
+ sent to Asterisk and the MEDIA text commands that could be sent over the
+ websocket are disabled. Currently, passthrough mode is automatically set
+ for the opus, speex and g729 codecs.
+ * Now calling ast_set_read_format() after ast_channel_set_rawreadformat() to
+ ensure proper translation paths are set up when switching between native
+ frames and slin silence frames. This fixes an issue with codec errors
+ when transcode_via_sln=yes.
+
+ Resolves: #1462
+
+#### res_ari: Ensure outbound websocket config has a websocket_client_id.
+ Author: George Joseph
+ Date: 2025-09-12
+
+ Added a check to outbound_websocket_apply() that makes sure an outbound
+ websocket config object in ari.conf has a websocket_client_id parameter.
+
+ Resolves: #1457
+
#### chan_websocket.c: Add DTMF messages
Author: Joe Garlick
Date: 2025-09-04
diff --git a/README.html b/README.html
index 1a14364554..fa42748b50 100644
--- a/README.html
+++ b/README.html
@@ -1,4 +1,4 @@
-Readme for asterisk-20.16.0-rc2
+Readme for asterisk-20.16.0
The Asterisk(R) Open Source PBX
By Mark Spencer <markster@digium.com> and the Asterisk.org developer community.
Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.
@@ -37,7 +37,7 @@ hardware.
If you are updating from a previous version of Asterisk, make sure you
read the Change Logs.
-Change Logs
+Change Logs
NEW INSTALLATIONS
diff --git a/README.md b/README.md
index a635c1cab2..965ee460c6 100644
--- a/README.md
+++ b/README.md
@@ -55,7 +55,7 @@ If you are updating from a previous version of Asterisk, make sure you
read the Change Logs.
-[Change Logs](ChangeLogs/ChangeLog-20.16.0-rc2.html)
+[Change Logs](ChangeLogs/ChangeLog-20.16.0.html)
### NEW INSTALLATIONS
--
2.47.3