mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
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:
committed by
Friendly Automation
parent
a3b2daf127
commit
0f0cc43e1b
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);
|
||||
|
Reference in New Issue
Block a user