]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res/res_stasis_playback: Cancel the entire playlist when a stop occurs 37/3837/1
authorMatt Jordan <mjordan@digium.com>
Tue, 6 Sep 2016 20:25:28 +0000 (15:25 -0500)
committerMatt Jordan <mjordan@digium.com>
Tue, 6 Sep 2016 20:34:36 +0000 (15:34 -0500)
Prior to this patch, a stop issued by a delete of a Playback resource
(indicated by the control frame AST_CONTROL_STREAM_STOP) would only stop
the current media URI playing. Subsequent URIs specified by a playback
operation would then proceed on, even though we had just indicated to
the User that the Playback was finished *and* after they had just
'deleted' the resource. Whoops.

This patch corrects it by bailing out of the sequence of URIs to play if
one of them is terminated with an AST_CONTROL_STREAM_STOP indication.

ASTERISK-26341 #close

Change-Id: I2da9ec43545ba46cdfffe287c7e4907eae7fca42

res/res_stasis_playback.c

index a64ecffa706b52cf385ba10ca638fea459eb4494..cfddb3af56dcf5cae298fc5aa17be24dfcc91934 100644 (file)
@@ -370,6 +370,9 @@ static void play_on_channel(struct stasis_app_playback *playback,
 
                playback_final_update(playback, offsetms, res,
                        ast_channel_uniqueid(chan));
+               if (res == AST_CONTROL_STREAM_STOP) {
+                       break;
+               }
 
                /* Reset offset for any subsequent media */
                offsetms = 0;