diff --git a/resources/install/scripts/confirm.lua b/resources/install/scripts/confirm.lua index f8bb51b3fa..077ee7814e 100644 --- a/resources/install/scripts/confirm.lua +++ b/resources/install/scripts/confirm.lua @@ -16,63 +16,75 @@ -- -- The Initial Developer of the Original Code is -- Mark J Crane --- Copyright (C) 2010 +-- Copyright (C) 2010-2014 -- the Initial Developer. All Rights Reserved. -- -- Contributor(s): -- Mark J Crane -max_tries = "3"; -digit_timeout = "5000"; +--set variables + max_tries = "3"; + digit_timeout = "5000"; -if ( session:ready() ) then - session:answer(); - context = session:getVariable("context"); - sounds_dir = session:getVariable("sounds_dir"); - destination_number = session:getVariable("destination_number"); +--run if the session is ready + if ( session:ready() ) then + --answer the call + session:answer(); - --prepare the api - api = freeswitch.API(); + --get the variables + context = session:getVariable("context"); + sounds_dir = session:getVariable("sounds_dir"); + destination_number = session:getVariable("destination_number"); - --set the sounds path for the language, dialect and voice - default_language = session:getVariable("default_language"); - default_dialect = session:getVariable("default_dialect"); - default_voice = session:getVariable("default_voice"); - if (not default_language) then default_language = 'en'; end - if (not default_dialect) then default_dialect = 'us'; end - if (not default_voice) then default_voice = 'callie'; end - - --confirm the calls - --set the default - prompt_for_digits = true; - --if an extension answer the call - -- user_exists id 1005 voip.fusionpbx.com - cmd = "user_exists id ".. destination_number .." "..context; - result = api:executeString(cmd); - freeswitch.consoleLog("NOTICE", "[confirm] "..cmd.." --"..result.."--\n"); - if (result == "true") then - prompt_for_digits = false; + --confirm or not to confirm + if (session:getVariable("confirm")) then + confirm = session:getVariable("confirm"); end - --prompt for digits - if (prompt_for_digits) then - --get the digit - min_digits = 1; - max_digits = 1; - digit = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/ivr/ivr-accept_reject_voicemail.wav", "", "\\d+"); - --process the response - if (digit == "1") then - --freeswitch.consoleLog("NOTICE", "[confirm] accept\n"); - elseif (digit == "2") then - --freeswitch.consoleLog("NOTICE", "[confirm] reject\n"); - session:hangup("CALL_REJECTED"); --LOSE_RACE - elseif (digit == "3") then - --freeswitch.consoleLog("NOTICE", "[confirm] voicemail\n"); - session:hangup("NO_ANSWER"); - else - --freeswitch.consoleLog("NOTICE", "[confirm] no answer\n"); - session:hangup("NO_ANSWER"); + + --prepare the api + api = freeswitch.API(); + + --set the sounds path for the language, dialect and voice + default_language = session:getVariable("default_language"); + default_dialect = session:getVariable("default_dialect"); + default_voice = session:getVariable("default_voice"); + if (not default_language) then default_language = 'en'; end + if (not default_dialect) then default_dialect = 'us'; end + if (not default_voice) then default_voice = 'callie'; end + + --confirm the calls + --if an extension answer the call + if (confirm) then + cmd = "user_exists id ".. destination_number .." "..context; + result = api:executeString(cmd); + --freeswitch.consoleLog("NOTICE", "[confirm] "..cmd.." "..result.."\n"); + if (result == "true") then + confirm = "true"; end - else - --freeswitch.consoleLog("NOTICE", "[confirm] automatically accepted\n"); - end -end + end + --prompt for digits + if (confirm == "true") then + --send to the log + --freeswitch.consoleLog("NOTICE", "[confirm] prompt\n"); + --get the digit + min_digits = 1; + max_digits = 1; + digit = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/ivr/ivr-accept_reject_voicemail.wav", "", "\\d+"); + --process the response + if (digit == "1") then + --freeswitch.consoleLog("NOTICE", "[confirm] accept\n"); + elseif (digit == "2") then + --freeswitch.consoleLog("NOTICE", "[confirm] reject\n"); + session:hangup("CALL_REJECTED"); --LOSE_RACE + elseif (digit == "3") then + --freeswitch.consoleLog("NOTICE", "[confirm] voicemail\n"); + session:hangup("NO_ANSWER"); + else + --freeswitch.consoleLog("NOTICE", "[confirm] no answer\n"); + session:hangup("NO_ANSWER"); + end + else + --send to the log + --freeswitch.consoleLog("NOTICE", "[confirm] automatically accepted\n"); + end + end \ No newline at end of file