From d7f189d07f5c9092c99eb3aa4e6ca2b35af75272 Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Thu, 31 Jul 2014 08:40:15 +0000 Subject: [PATCH] svn diff --- resources/install/scripts/fifo_member.lua | 85 ++++++++++++------- resources/install/scripts/intercept.lua | 36 +++++--- resources/install/scripts/intercept_group.lua | 36 +++++--- resources/install/scripts/page.lua | 34 +++++--- resources/install/scripts/pin_number.lua | 4 +- resources/install/scripts/roku.lua | 37 +++++--- 6 files changed, 154 insertions(+), 78 deletions(-) diff --git a/resources/install/scripts/fifo_member.lua b/resources/install/scripts/fifo_member.lua index 69b5847498..692ae16320 100644 --- a/resources/install/scripts/fifo_member.lua +++ b/resources/install/scripts/fifo_member.lua @@ -47,12 +47,60 @@ if ( session:ready() ) then --fifo_lag = 10; if (pin_number) then - digits = session:playAndGetDigits(3, 8, 3, digit_timeout, "#", sounds_dir.."/custom/please_enter_the_pin_number.wav", "", "\\d+"); - if (digits == pin_number) then + --sleep + session:sleep(500); + + --get the user pin number + min_digits = 2; + max_digits = 20; + digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); + + --validate the user pin number + pin_number_table = explode(",",pin_number); + for index,pin_number in pairs(pin_number_table) do + if (digits == pin_number) then + --set the variable to true + auth = true; + --set the authorized pin number that was used + session:setVariable("pin_number", pin_number); + --end the loop + break; + end + end if (digits == pin_number) then --pin is correct --press 1 to login and 2 to logout - menu_selection = session:playAndGetDigits(1, 1, max_tries, digit_timeout, "#", sounds_dir.."/custom/please_enter_the_phone_number.wav", "", "\\d+"); + menu_selection = session:playAndGetDigits(1, 1, max_tries, digit_timeout, "#", sounds_dir.."/ivr/ivr-enter_destination_telephone_number.wav", "", "\\d+"); + freeswitch.consoleLog("NOTICE", "menu_selection: "..menu_selection.."\n"); + if (menu_selection == "1") then + session:execute("set", "fifo_member_add_result=${fifo_member(add "..queue_name.." {fifo_member_wait=nowait}user/"..user_name.." "..fifo_simo.." "..fifo_timeout.." "..fifo_lag.."} )"); --simo timeout lag + fifo_member_add_result = session:getVariable("fifo_member_add_result"); + freeswitch.consoleLog("NOTICE", "fifo_member_add_result: "..fifo_member_add_result.."\n"); + session:streamFile("ivr/ivr-you_are_now_logged_in.wav"); + end + if (menu_selection == "2") then + session:execute("set", "fifo_member_del_result=${fifo_member(del "..queue_name.." {fifo_member_wait=nowait}user/"..user_name.."} )"); + session:streamFile("ivr/ivr-you_are_now_logged_out.wav"); + end + + --wait for the file to be written before proceeding + -- session:sleep(1000); + + --hangup + session:hangup(); + + else + --auth failed + session:streamFile("phrase:voicemail_fail_auth:#"); + session:hangup("NORMAL_CLEARING"); + return; + end + else + + --pin number is not required + + --press 1 to login and 2 to logout + menu_selection = session:playAndGetDigits(1, 1, max_tries, digit_timeout, "#", sounds_dir.."/ivr/ivr-enter_destination_telephone_number.wav", "", "\\d+"); freeswitch.consoleLog("NOTICE", "menu_selection: "..menu_selection.."\n"); if (menu_selection == "1") then session:execute("set", "fifo_member_add_result=${fifo_member(add "..queue_name.." {fifo_member_wait=nowait}user/"..user_name.." "..fifo_simo.." "..fifo_timeout.." "..fifo_lag.."} )"); --simo timeout lag @@ -65,35 +113,10 @@ if ( session:ready() ) then session:streamFile("ivr/ivr-you_are_now_logged_out.wav"); end - --wait for the file to be written before proceeding - -- session:sleep(1000); - - session:hangup(); - - else - session:streamFile(sounds_dir.."/custom/your_pin_number_is_incorect_goodbye.wav"); - end - else - - --pin number is not required - - --press 1 to login and 2 to logout - menu_selection = session:playAndGetDigits(1, 1, max_tries, digit_timeout, "#", sounds_dir.."/custom/please_enter_the_phone_number.wav", "", "\\d+"); - freeswitch.consoleLog("NOTICE", "menu_selection: "..menu_selection.."\n"); - if (menu_selection == "1") then - session:execute("set", "fifo_member_add_result=${fifo_member(add "..queue_name.." {fifo_member_wait=nowait}user/"..user_name.." "..fifo_simo.." "..fifo_timeout.." "..fifo_lag.."} )"); --simo timeout lag - fifo_member_add_result = session:getVariable("fifo_member_add_result"); - freeswitch.consoleLog("NOTICE", "fifo_member_add_result: "..fifo_member_add_result.."\n"); - session:streamFile("ivr/ivr-you_are_now_logged_in.wav"); - end - if (menu_selection == "2") then - session:execute("set", "fifo_member_del_result=${fifo_member(del "..queue_name.." {fifo_member_wait=nowait}user/"..user_name.."} )"); - session:streamFile("ivr/ivr-you_are_now_logged_out.wav"); - end - --wait for the file to be written before proceeding - -- session:sleep(1000); + --session:sleep(1000); - session:hangup(); + --hangup + session:hangup(); end end \ No newline at end of file diff --git a/resources/install/scripts/intercept.lua b/resources/install/scripts/intercept.lua index 39d11463d5..a6dc7aa99a 100644 --- a/resources/install/scripts/intercept.lua +++ b/resources/install/scripts/intercept.lua @@ -80,18 +80,30 @@ if ( session:ready() ) then --if the pin number is provided then require it if (pin_number) then - min_digits = string.len(pin_number); - max_digits = string.len(pin_number)+1; - --digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/please_enter_the_pin_number.wav", "", "\\d+"); - digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); - if (digits == pin_number) then - --pin is correct - else - --session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/your_pin_number_is_incorect_goodbye.wav"); - session:streamFile("phrase:voicemail_fail_auth:#"); - session:hangup("NORMAL_CLEARING"); - return; - end + --sleep + session:sleep(500); + --get the user pin number + min_digits = 2; + max_digits = 20; + digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); + --validate the user pin number + pin_number_table = explode(",",pin_number); + for index,pin_number in pairs(pin_number_table) do + if (digits == pin_number) then + --set the variable to true + auth = true; + --set the authorized pin number that was used + session:setVariable("pin_number", pin_number); + --end the loop + break; + end + end + --if not authorized play a message and then hangup + if (not auth) then + session:streamFile("phrase:voicemail_fail_auth:#"); + session:hangup("NORMAL_CLEARING"); + return; + end end --check the database to get the uuid of a ringing call diff --git a/resources/install/scripts/intercept_group.lua b/resources/install/scripts/intercept_group.lua index e78d579815..199d165a3e 100644 --- a/resources/install/scripts/intercept_group.lua +++ b/resources/install/scripts/intercept_group.lua @@ -78,18 +78,30 @@ --if the pin number is provided then require it if (pin_number) then - min_digits = string.len(pin_number); - max_digits = string.len(pin_number)+1; - --digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/please_enter_the_pin_number.wav", "", "\\d+"); - digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); - if (digits == pin_number) then - --pin is correct - else - --session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/your_pin_number_is_incorect_goodbye.wav"); - session:streamFile("phrase:voicemail_fail_auth:#"); - session:hangup("NORMAL_CLEARING"); - return; - end + --sleep + session:sleep(500); + --get the user pin number + min_digits = 2; + max_digits = 20; + digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); + --validate the user pin number + pin_number_table = explode(",",pin_number); + for index,pin_number in pairs(pin_number_table) do + if (digits == pin_number) then + --set the variable to true + auth = true; + --set the authorized pin number that was used + session:setVariable("pin_number", pin_number); + --end the loop + break; + end + end + --if not authorized play a message and then hangup + if (not auth) then + session:streamFile("phrase:voicemail_fail_auth:#"); + session:hangup("NORMAL_CLEARING"); + return; + end end --get the call groups the extension is a member of diff --git a/resources/install/scripts/page.lua b/resources/install/scripts/page.lua index 73f1b62676..705fc70420 100644 --- a/resources/install/scripts/page.lua +++ b/resources/install/scripts/page.lua @@ -91,16 +91,30 @@ if ( session:ready() ) then --if the pin number is provided then require it if (pin_number) then - min_digits = string.len(pin_number); - max_digits = string.len(pin_number)+1; - digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/please_enter_the_pin_number.wav", "", "\\d+"); - if (digits == pin_number) then - --pin is correct - else - session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/your_pin_number_is_incorect_goodbye.wav"); - session:hangup("NORMAL_CLEARING"); - return; - end + --sleep + session:sleep(500); + --get the user pin number + min_digits = 2; + max_digits = 20; + digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); + --validate the user pin number + pin_number_table = explode(",",pin_number); + for index,pin_number in pairs(pin_number_table) do + if (digits == pin_number) then + --set the variable to true + auth = true; + --set the authorized pin number that was used + session:setVariable("pin_number", pin_number); + --end the loop + break; + end + end + --if not authorized play a message and then hangup + if (not auth) then + session:streamFile("phrase:voicemail_fail_auth:#"); + session:hangup("NORMAL_CLEARING"); + return; + end end destination_count = 0; diff --git a/resources/install/scripts/pin_number.lua b/resources/install/scripts/pin_number.lua index fe2c7a1274..e11c92fade 100644 --- a/resources/install/scripts/pin_number.lua +++ b/resources/install/scripts/pin_number.lua @@ -67,11 +67,12 @@ if ( session:ready() ) then --if the pin number is provided then require it if (pin_number) then + --sleep + session:sleep(500); --get the user pin number min_digits = 2; max_digits = 20; digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); - --validate the user pin number pin_number_table = explode(",",pin_number); for index,pin_number in pairs(pin_number_table) do @@ -84,7 +85,6 @@ if ( session:ready() ) then break; end end - --if not authorized play a message and then hangup if (not auth) then session:streamFile("phrase:voicemail_fail_auth:#"); diff --git a/resources/install/scripts/roku.lua b/resources/install/scripts/roku.lua index 310fbf3f3a..401962871d 100644 --- a/resources/install/scripts/roku.lua +++ b/resources/install/scripts/roku.lua @@ -45,27 +45,42 @@ if ( session:ready() ) then timeoutpin = 7500; timeouttransfer = 7500; +--sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.." + --if the pin number is provided then require it - if (pin_number) then - min_digits = string.len(pin_number); - max_digits = string.len(pin_number)+1; - digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/please_enter_the_pin_number.wav", "", "\\d+"); - if (digits == pin_number) then - --pin is correct - digits = ""; - else - session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/your_pin_number_is_incorect_goodbye.wav"); + if (pin_number) then + --get the user pin number + min_digits = 2; + max_digits = 20; + digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", "phrase:voicemail_enter_pass:#", "", "\\d+"); + + --validate the user pin number + pin_number_table = explode(",",pin_number); + for index,pin_number in pairs(pin_number_table) do + if (digits == pin_number) then + --set the variable to true + auth = true; + --set the authorized pin number that was used + session:setVariable("pin_number", pin_number); + --end the loop + break; + end + end + + --if not authorized play a message and then hangup + if (not auth) then + session:streamFile("phrase:voicemail_fail_auth:#"); session:hangup("NORMAL_CLEARING"); return; end - end + end if (session:ready()) then session:answer(); min_digits = 1; max_digits = 1; digitmaxlength = 1; - digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/custom/please_enter_the_phone_number.wav", "", "\\d+"); + digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/ivr/ivr-enter_destination_telephone_number.wav", "", "\\d+"); x = 0; while (session:ready() == true) do