say: Abort play loop if caller hangs up.

If the caller has hung up, break out of the play loop so we don't try
to play remaining files and fail to do so.

ASTERISK-30075 #close

Change-Id: I55e85be28ee90b48c0fe4ce20ac136a7dbb49f14
pull/27/head
Naveen Albert 3 years ago committed by Friendly Automation
parent a3b2daf127
commit 0f0cc43e1b

@ -189,19 +189,13 @@ static int say_filenames(struct ast_channel *chan, const char *ints, const char
files = ast_str_buffer(filenames);
while ((fn = strsep(&files, "&"))) {
while (!res && (fn = strsep(&files, "&"))) {
res = ast_streamfile(chan, fn, lang);
if (!res) {
if ((audiofd > -1) && (ctrlfd > -1))
if ((audiofd > -1) && (ctrlfd > -1)) {
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
else
} else {
res = ast_waitstream(chan, ints);
if (res > 0) {
/* We were interrupted by a digit */
ast_stopstream(chan);
ast_free(filenames);
return res;
}
}
ast_stopstream(chan);

Loading…
Cancel
Save