From 9f818dfbbf6c28ec59d6e544eabfcabbce6d07b1 Mon Sep 17 00:00:00 2001 From: Alexey Melnichuk Date: Thu, 4 Feb 2016 19:42:42 +0300 Subject: [PATCH] Fix. Infinity loop. IVR ignores `max_failures`. --- resources/install/scripts/ivr_menu.lua | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/resources/install/scripts/ivr_menu.lua b/resources/install/scripts/ivr_menu.lua index 3f98d6d379..6349b719a7 100644 --- a/resources/install/scripts/ivr_menu.lua +++ b/resources/install/scripts/ivr_menu.lua @@ -256,8 +256,19 @@ local menu_options, menu local tries = 0; function menu() + -- check number of failures + if (tries > 0) and (tries >= tonumber(ivr_menu_max_failures)) then + return + end + -- increment the tries tries = tries + 1; + + --log the dtmf digits + if (debug["tries"]) then + log.notice("tries: " .. tries); + end + -- set the minimum dtmf lengts local min_digits = 1; @@ -290,15 +301,7 @@ return menu_options(session, dtmf_digits); end - -- check number of failures - if tries < tonumber(ivr_menu_max_failures) then - --log the dtmf digits - if (debug["tries"]) then - log.notice("tries: " .. tries); - end - --run the menu again - return menu(); - end + return menu(); end function menu_options(session, digits)