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:
parent
b47d3be483
commit
1b93cf97fc
12
main/say.c
12
main/say.c
|
@ -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…
Reference in New Issue