]> git.ipfire.org Git - thirdparty/asterisk.git/commit
core: Don't play silence for Busy() and Congestion() applications.
authorJoshua C. Colp <jcolp@sangoma.com>
Mon, 21 Jun 2021 11:31:41 +0000 (08:31 -0300)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Tue, 22 Jun 2021 13:48:06 +0000 (08:48 -0500)
commit5382b9dbb82d40d50b3dde0c8688097b64d05a6c
tree1c2de8c135b314113c66d3ee81ec039101c80603
parentc30f68a57bde8abf6aecb478be5f9c9a368a0599
core: Don't play silence for Busy() and Congestion() applications.

When using the Busy() and Congestion() applications the
function ast_safe_sleep is used by wait_for_hangup to safely
wait on the channel. This function may send silence if Asterisk
is configured to do so using the transmit_silence option.

In a scenario where an answered channel dials a Local channel
either directly or through call forwarding and the Busy()
or Congestion() dialplan applications were executed with the
transmit_silence option enabled the busy or congestion
tone would not be heard.

This is because inband generation of tones (such as busy
and congestion) is stopped when other audio is sent to
the channel they are being played to. In the given
scenario the transmit_silence option would result in
silence being sent to the channel, thus stopping the
inband generation.

This change adds a variant of ast_safe_sleep which can be
used when silence should not be played to the channel. The
wait_for_hangup function has been updated to use this
resulting in the tones being generated as expected.

ASTERISK-29485

Change-Id: I066bfc987a3ad6f0ccc88e0af4cd63f6a4729133
include/asterisk/channel.h
main/channel.c
main/pbx.c