Don't call ast_waitstream_full when the control file descriptor and audio file descriptor are not set, simply call ast_waitstream! (issue #8530 reported by rickead2000)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@68397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2007-06-08 00:15:33 +00:00
parent 49ffa786ff
commit d8fb68b9cb

24
say.c
View File

@@ -120,8 +120,12 @@ int ast_say_character_str_full(struct ast_channel *chan, const char *str, const
fn = fnbuf;
}
res = ast_streamfile(chan, fn, lang);
if (!res)
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
if (!res) {
if ((audiofd > -1) && (ctrlfd > -1))
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
else
res = ast_waitstream(chan, ints);
}
ast_stopstream(chan);
num++;
}
@@ -199,8 +203,12 @@ int ast_say_phonetic_str_full(struct ast_channel *chan, const char *str, const c
fn = fnbuf;
}
res = ast_streamfile(chan, fn, lang);
if (!res)
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
if (!res) {
if ((audiofd > -1) && (ctrlfd > -1))
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
else
res = ast_waitstream(chan, ints);
}
ast_stopstream(chan);
num++;
}
@@ -249,8 +257,12 @@ int ast_say_digit_str_full(struct ast_channel *chan, const char *str, const char
}
if (fn) {
res = ast_streamfile(chan, fn, lang);
if (!res)
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
if (!res) {
if ((audiofd > -1) && (ctrlfd > -1))
res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
else
res = ast_waitstream(chan, ints);
}
ast_stopstream(chan);
}
num++;