diff --git a/channel.c b/channel.c index 19f2a81facd16444f2429f8dfb27f20707561188..8a052852bbdad3bd529f381bf7930434870fec57 100644 --- a/channel.c +++ b/channel.c @@ -3298,11 +3298,14 @@ static enum ast_bridge_result ast_generic_bridge(struct ast_channel *c0, struct res = AST_BRIDGE_RETRY; break; } - to = ast_tvdiff_ms(bridge_end, ast_tvnow()); - if (to <= 0) { - res = AST_BRIDGE_RETRY; - break; - } + if (bridge_end.tv_sec) { + to = ast_tvdiff_ms(bridge_end, ast_tvnow()); + if (to <= 0) { + res = AST_BRIDGE_RETRY; + break; + } + } else + to = -1; who = ast_waitfor_n(cs, 2, &to); if (!who) { ast_log(LOG_DEBUG, "Nobody there, continuing...\n");