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
This commit is contained in:
agupta 2018-12-04 13:40:15 +05:30 committed by Joshua Colp
parent 92712891f9
commit 1d214a3623
1 changed files with 9 additions and 1 deletions

View File

@ -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);
}