# Asterisk Release 20.16.0

**URL:** <https://community.asterisk.org/t/asterisk-release-20-16-0/110583>\
**Category:** Asterisk News\
**Created:** [October 15, 2025, 4:21pm UTC](https://community.asterisk.org/t/asterisk-release-20-16-0/110583 "2025-10-15T16:21:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![asteriskteam](https://sea1.discourse-cdn.com/asterisk/user_avatar/community.asterisk.org/asteriskteam/32/1845_2.png) [@asteriskteam](https://community.asterisk.org/u/asteriskteam)\
**Post date:** [October 15, 2025, 4:21pm UTC](https://community.asterisk.org/t/asterisk-release-20-16-0/110583/1 "2025-10-15T16:21:18Z")

</div>

The Asterisk Development Team would like to announce  
the release of asterisk-20.16.0.

The release artifacts are available for immediate download at

> **[Release Asterisk Release 20.16.0 · asterisk/asterisk](https://github.com/asterisk/asterisk/releases/tag/20.16.0)**
>
> The Asterisk Development Team would like to announce
> the release of asterisk-20.16.0.
> The release artifacts are available for immediate download at
> https://github.com/asterisk/asterisk/releases/tag...

and

> **[Index of /pub/telephony/asterisk/](https://downloads.asterisk.org/pub/telephony/asterisk/)**

Repository: [GitHub - asterisk/asterisk: The official Asterisk Project repository.](https://github.com/asterisk/asterisk)  
Tag: 20.16.0

This release resolves issues reported by the community  
and would have not been possible without your participation.

Thank You!

## Change Log for Release asterisk-20.16.0

### Links:

- [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: 54
- Commit Authors: 22
- Issues Resolved: 40
- Security Advisories Resolved: 0

### User Notes:

- 
#### app\_queue.c: Add new global ‘log\_unpause\_on\_reason\_change’

Add new global option ‘log\_unpause\_on\_reason\_change’ that  
is default disabled. When enabled cause addition of UNPAUSE event on  
every re-PAUSE with reason changed.

- 
#### pbx\_builtins: Allow custom tone for WaitExten.

The tone used while waiting for digits in WaitExten  
can now be overridden by specifying an argument for the ‘d’  
option.

- 
#### res\_tonedetect: Add option for TONE\_DETECT detection to auto stop.

The ‘e’ option for TONE\_DETECT now allows detection to  
be disabled automatically once the desired number of matches have  
been fulfilled, which can help prevent race conditions in the  
dialplan, since TONE\_DETECT does not need to be disabled after  
a hit.

- 
#### sorcery: Prevent duplicate objects and ensure missing objects are created on u..

Users relying on Sorcery multiple writable backends configurations  
(e.g., astdb + realtime) may now enable update\_or\_create\_on\_update\_miss = yes  
in sorcery.conf to ensure missing objects are recreated after temporary backend  
failures. Default behavior remains unchanged unless explicitly enabled.

- 
#### chan\_websocket: Allow additional URI parameters to be added to the outgoing URI.

A new WebSocket channel driver option `v` has been added to the  
Dial application that allows you to specify additional URI parameters on  
outgoing connections. Run `core show application Dial` from the Asterisk CLI  
to see how to use it.

- 
#### app\_chanspy: Add option to not automatically answer channel.

ChanSpy and ExtenSpy can now be configured to not  
automatically answer the channel by using the ‘N’ option.

- 
#### cel: Add STREAM\_BEGIN, STREAM\_END and DTMF event types.

Enabling the tracking of the  
STREAM\_BEGIN and the STREAM\_END event  
types in cel.conf will log media files and  
music on hold played to each channel.  
The STREAM\_BEGIN event’s extra field will  
contain a JSON with the file details (path,  
format and language), or the class name, in  
case of music on hold is played. The DTMF  
event’s extra field will contain a JSON with  
the digit and the duration in milliseconds.

- 
#### res\_srtp: Add menuselect options to enable AES\_192, AES\_256 and AES\_GCM

Options are now available in the menuselect “Resource Modules”  
category that allow you to enable the AES\_192, AES\_256 and AES\_GCM  
cipher suites in res\_srtp. Of course, libsrtp and OpenSSL must support  
them but modern versions do. Previously, the only way to enable them was  
to set the CFLAGS environment variable when running ./configure.  
The default setting is to disable them preserving existing behavior.

- 
#### cdr: add CANCEL dispostion in CDR

A new CDR option “canceldispositionenabled” has been added  
that when set to true, the NO ANSWER disposition will be split into  
two dispositions: CANCEL and NO ANSWER. The default value is ‘no’

- 
#### func\_curl: Allow auth methods to be set.

The httpauth field in CURLOPT now allows the authentication  
methods to be set.

- 
#### Media over Websocket Channel Driver

A new channel driver “chan\_websocket” is now available. It can  
exchange media over both inbound and outbound websockets and will both frame  
and re-time the media it receives.  
See [http://s.asterisk.net/mow](http://s.asterisk.net/mow) for more information.  
The ARI channels/externalMedia API now includes support for the

### Upgrade Notes:

### Developer Notes:

- 
#### ARI: Add command to indicate progress to a channel

A new ARI endpoint is available at `/channels/{channelId}/progress` to indicate progress to a channel.

- 
#### options: Change ast\_options from ast\_flags to ast\_flags64.

The 32-bit ast\_options has no room left to accomodate new  
options and so has been converted to an ast\_flags64 structure. All internal  
references to ast\_options have been updated to use the 64-bit flag  
manipulation macros. External module references to the 32-bit ast\_options  
should continue to work on little-endian systems because the  
least-significant bytes of a 64 bit integer will be in the same location as a  
32-bit integer. Because that’s not the case on big-endian systems, we’ve  
swapped the bytes in the flags manupulation macros on big-endian systems  
so external modules should still work however you are encouraged to test.

### Commit Authors:

- Alexei Gradinari: (2)
- Alexey Khabulyak: (2)
- Allan Nathanson: (1)
- Artem Umerov: (1)
- Ben Ford: (1)
- George Joseph: (12)
- Igor Goncharovsky: (2)
- Jaco Kroon: (1)
- Joe Garlick: (1)
- Jose Lopes: (1)
- Kodokaii: (1)
- Martin Tomec: (1)
- Mike Bradeen: (1)
- Mkmer: (1)
- Naveen Albert: (15)
- Sean Bright: (2)
- Sperl Viktor: (2)
- Stanislav Abramenkov: (1)
- Stuart Henderson: (1)
- Sven Kube: (2)
- Tinet-Mucw: (2)
- Zhou\_jiajian: (1)

---

<div class="post-metadata">

**Author:** ![mbradeen](https://sea1.discourse-cdn.com/asterisk/user_avatar/community.asterisk.org/mbradeen/32/5279_2.png) [@mbradeen](https://community.asterisk.org/u/mbradeen)\
**Post date:** [October 15, 2025, 5:06pm UTC](https://community.asterisk.org/t/asterisk-release-20-16-0/110583/2 "2025-10-15T17:06:33Z")

</div>

Closed on October 15, 2025, 5:06pm UTC



---

<div class="post-metadata">

**Author:** ![mbradeen](https://sea1.discourse-cdn.com/asterisk/user_avatar/community.asterisk.org/mbradeen/32/5279_2.png) [@mbradeen](https://community.asterisk.org/u/mbradeen)\
**Post date:** [October 15, 2025, 5:06pm UTC](https://community.asterisk.org/t/asterisk-release-20-16-0/110583/3 "2025-10-15T17:06:40Z")

</div>

Pinned globally on October 15, 2025, 5:06pm UTC



---

<div class="post-metadata">

**Author:** ![bford](https://sea1.discourse-cdn.com/asterisk/user_avatar/community.asterisk.org/bford/32/3704_2.png) [@bford](https://community.asterisk.org/u/bford)\
**Post date:** [November 20, 2025, 8:09pm UTC](https://community.asterisk.org/t/asterisk-release-20-16-0/110583/4 "2025-11-20T20:09:11Z")

</div>

Unpinned on November 20, 2025, 8:09pm UTC


