]> 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)
committerGeorge Joseph <gjoseph@digium.com>
Tue, 22 Jun 2021 14:47:01 +0000 (09:47 -0500)
commit4470838d89a790c535c35137398f46084d74837a
treeaff4deb9375b928ab3699ad10e5937277eec9562
parent1b8f9a08d92f945940cb275d4af1f70c1bae1e7b
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