diff --git a/res/res_agi.c b/res/res_agi.c index 1119a2d615..40c15da826 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -970,7 +970,7 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, char start = ast_tvnow(); while ((ms < 0) || ast_tvdiff_ms(ast_tvnow(), start) < ms) { - res = ast_waitfor(chan, -1); + res = ast_waitfor(chan, ms - ast_tvdiff_ms(ast_tvnow(), start)); if (res < 0) { ast_closestream(fs); fdprintf(agi->fd, "200 result=%d (waitfor) endpos=%ld\n", res,sample_offset);