bridge: Stop music on hold on adding an arbitrary channel to a bridge
authorIvan Poddubny <ivan.poddubny@gmail.com>
Sat, 16 Dec 2017 13:51:16 +0000 (14:51 +0100)
committerIvan Poddubny <ivan.poddubny@gmail.com>
Tue, 19 Dec 2017 17:17:52 +0000 (18:17 +0100)
When a channel that is on hold gets added to a bridge by
the Bridge AMI action or the dialplan application of the same name,
music continues to play, causing "robotic sound".

This commit adds a call to ast_moh_stop to stop the music.
Also, it makes the AMI Park action use the right MOH class when the
channel gets parked.

Reported by: Zane Conkle

ASTERISK-25079 #close

Change-Id: I4b129c5a20c15e63968842460ac5a1a85903cf9f

main/bridge.c

index 5d9c0c1..7a937ea 100644 (file)
@@ -2511,6 +2511,8 @@ int ast_bridge_add_channel(struct ast_bridge *bridge, struct ast_channel *chan,
        RAII_VAR(struct ast_bridge *, chan_bridge, NULL, ao2_cleanup);
        RAII_VAR(struct ast_channel *, yanked_chan, NULL, ao2_cleanup);
 
+       ast_moh_stop(chan);
+
        ast_channel_lock(chan);
        chan_bridge = ast_channel_get_bridge(chan);
        ast_channel_unlock(chan);