From c70587e43e39738131e9a0b096acda7ac418f745 Mon Sep 17 00:00:00 2001 From: Naveen Albert Date: Wed, 16 Oct 2024 17:46:42 -0400 Subject: [PATCH] app_dial: Fix progress timeout calculation with no answer timeout. If to_answer is -1, simply comparing to see if the progress timeout is smaller than the answer timeout to prefer it will fail. Add an additional check that chooses the progress timeout if there is no answer timeout (or as before, if the progress timeout is smaller). Resolves: #821 (cherry picked from commit 485ccb74297ead4b92769b41b8bce0f8c2d7790b) --- apps/app_dial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/app_dial.c b/apps/app_dial.c index 3861787b89..f78c97d57f 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -1349,7 +1349,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, } /* If progress timeout is active, use that if it's the shorter of the 2 timeouts. */ - winner = ast_waitfor_n(watchers, pos, *to_progress > 0 && *to_progress < *to_answer ? to_progress : to_answer); + winner = ast_waitfor_n(watchers, pos, *to_progress > 0 && (*to_answer < 0 || *to_progress < *to_answer) ? to_progress : to_answer); AST_LIST_TRAVERSE(out_chans, o, node) { int res = 0; -- 2.47.2