From: agupta Date: Tue, 4 Dec 2018 08:10:15 +0000 (+0530) Subject: app_amd: Fix infinite loop on silent calls X-Git-Tag: 17.0.0-rc1~92^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ce6d960d4a2d584810e5c4d46938dbcfeb6d124;p=thirdparty%2Fasterisk.git 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 --- 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); }