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
This commit is contained in:
Naveen Albert 2022-05-22 01:40:16 +00:00 committed by Friendly Automation
parent b47d3be483
commit 1b93cf97fc
1 changed files with 3 additions and 9 deletions

View File

@ -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);