aboutsummaryrefslogtreecommitdiffstats
path: root/main/channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/channel.c')
-rw-r--r--main/channel.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/main/channel.c b/main/channel.c
index 2ab138279..f23ccc5c4 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -1679,17 +1679,20 @@ int __ast_answer(struct ast_channel *chan, unsigned int delay)
ast_safe_sleep(chan, delay);
else {
struct ast_frame *f;
+ int ms = ANSWER_WAIT_MS;
while (1) {
/* 500 ms was the original delay here, so now
* we cap our waiting at 500 ms
*/
- res = ast_waitfor(chan, ANSWER_WAIT_MS);
- if (res < 0) {
+ ms = ast_waitfor(chan, ms);
+ if (ms < 0) {
ast_log(LOG_WARNING, "Error condition occurred when polling channel %s for a voice frame: %s\n", chan->name, strerror(errno));
+ res = -1;
break;
}
- if (res == 0) {
+ if (ms == 0) {
ast_debug(2, "Didn't receive a voice frame from %s within %d ms of answering. Continuing anyway\n", chan->name, ANSWER_WAIT_MS);
+ res = 0;
break;
}
f = ast_read(chan);