mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 04:11:08 +00:00
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:
@@ -280,7 +280,7 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
|
|||||||
int ms = 0;
|
int ms = 0;
|
||||||
|
|
||||||
/* Figure out how long we waited */
|
/* Figure out how long we waited */
|
||||||
if (res > 0) {
|
if (res >= 0) {
|
||||||
ms = 2 * maxWaitTimeForFrame - res;
|
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);
|
ast_frfree(f);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user