summaryrefslogtreecommitdiff
path: root/main/say.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-06-08 00:18:58 +0000
committerJoshua Colp <jcolp@digium.com>2007-06-08 00:18:58 +0000
commit154c1a7af591d6d0d857de98d28e83df61ef8a5a (patch)
treec07082e7e865af72149e0a0a8a613b6f2951853a /main/say.c
parent1d1566903e9f8587c2802fe8a3e0a1272d2c390f (diff)
Merged revisions 68401 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r68401 | file | 2007-06-07 20:17:04 -0400 (Thu, 07 Jun 2007) | 10 lines Merged revisions 68397 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r68397 | file | 2007-06-07 20:15:33 -0400 (Thu, 07 Jun 2007) | 2 lines 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/trunk@68405 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/say.c')
-rw-r--r--main/say.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/main/say.c b/main/say.c
index fdc142d5f..340b5faa0 100644
--- a/main/say.c
+++ b/main/say.c
@@ -125,8 +125,12 @@ static int say_character_str_full(struct ast_channel *chan, const char *str, con
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 @@ static int say_phonetic_str_full(struct ast_channel *chan, const char *str, cons
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++;
}
@@ -244,8 +252,12 @@ static int say_digit_str_full(struct ast_channel *chan, const char *str, const c
}
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++;