From 7ce6d960d4a2d584810e5c4d46938dbcfeb6d124 Mon Sep 17 00:00:00 2001 From: agupta Date: Tue, 4 Dec 2018 13:40:15 +0530 Subject: [PATCH] app_amd: Fix infinite loop on silent calls The total time logic will now be executed on calls which do not pass any media. ASTERISK-28143 Change-Id: I24726bd29d7e467fc721ca265363417234b22855 --- apps/app_amd.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/app_amd.c b/apps/app_amd.c index 3f805bb9ab..5285287bfb 100644 --- a/apps/app_amd.c +++ b/apps/app_amd.c @@ -280,7 +280,7 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data) int ms = 0; /* Figure out how long we waited */ - if (res > 0) { + if (res >= 0) { ms = 2 * maxWaitTimeForFrame - res; } @@ -410,6 +410,14 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data) } } + } else { + iTotalTime += ms; + if (iTotalTime >= totalAnalysisTime) { + ast_frfree(f); + strcpy(amdStatus , "NOTSURE"); + sprintf(amdCause , "TOOLONG-%d", iTotalTime); + break; + } } ast_frfree(f); }