app_voicemail: Disable ADSI if unavailable.

If ADSI is available on a channel, app_voicemail will repeatedly
try to use ADSI, even if there is no CPE that supports it. This
leads to many unnecessary delays during the session. If ADSI is
available but ADSI setup fails, we now disable it to prevent
further attempts to use ADSI during the session.

Resolves: #354
(cherry picked from commit c04923fcda)
This commit is contained in:
Naveen Albert 2023-09-27 08:28:50 -04:00 committed by Asterisk Development Team
parent 7a2305a08b
commit 0a834c8d75
1 changed files with 4 additions and 1 deletions

View File

@ -7451,8 +7451,11 @@ static void adsi_begin(struct ast_channel *chan, int *useadsi)
if (!ast_adsi_available(chan))
return;
x = ast_adsi_load_session(chan, adsifdn, adsiver, 1);
if (x < 0)
if (x < 0) {
*useadsi = 0;
ast_channel_adsicpe_set(chan, AST_ADSI_UNAVAILABLE);
return;
}
if (!x) {
if (adsi_load_vmail(chan, useadsi)) {
ast_log(AST_LOG_WARNING, "Unable to upload voicemail scripts\n");