From 461f4465ef95c376199fefa987293663ddbd0bcf Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Thu, 17 Jan 2013 01:11:43 +0000 Subject: [PATCH] Add a short delay after answering the company directory to ensure the audio is ready. Also if you don't select any of the entries of the search provide an opportunity to search again. --- includes/install/scripts/directory.lua | 29 ++++++++++++++++---------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/includes/install/scripts/directory.lua b/includes/install/scripts/directory.lua index 049b19891c..9bfd515634 100644 --- a/includes/install/scripts/directory.lua +++ b/includes/install/scripts/directory.lua @@ -30,7 +30,7 @@ timeout_transfer = 5000; max_tries = 3; digit_timeout = 5000; - search_limit = 4; + search_limit = 3; search_count = 0; --debug @@ -60,6 +60,9 @@ --answer the session session:answer(); + --give time for the call to be ready + session:streamFile("silence_stream://1000"); + --get the domain name domain_name = session:getVariable("domain_name"); @@ -70,6 +73,10 @@ 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 + + --define the sounds directory + sounds_dir = session:getVariable("sounds_dir"); + sounds_dir = sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice; end --get session variables @@ -152,13 +159,13 @@ digit_timeout = "500"; max_digits = 1; max_tries = 1; - dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/directory/dir-to_select_entry.wav", "", "\\d+"); + dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/directory/dir-to_select_entry.wav", "", "\\d+"); if (string.len(dtmf_digits) == 0) then - dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/voicemail/vm-press.wav", "", "\\d+"); + dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/voicemail/vm-press.wav", "", "\\d+"); end if (string.len(dtmf_digits) == 0) then digit_timeout = "3000"; - dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/digits/1.wav", "", "\\d+"); + dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/digits/1.wav", "", "\\d+"); end return dtmf_digits; end @@ -167,7 +174,7 @@ function prompt_for_name() dtmf_digits = ""; min_digits=0; max_digits=3; max_tries=3; digit_timeout = "5000"; - dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/directory/dir-enter_person_first_or_last.wav", "", "\\d+"); + dtmf_digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, "#", sounds_dir.."/directory/dir-enter_person_first_or_last.wav", "", "\\d+"); return dtmf_digits; end @@ -209,7 +216,7 @@ if (row.directory_exten_visible == "false") then --invisible extension number else - session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/directory/dir-at_extension.wav"); + session:streamFile(sounds_dir.."/directory/dir-at_extension.wav"); session:execute("say", "en number iterated "..row.extension); end @@ -225,11 +232,11 @@ end end if (found ~= true) then - session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/directory/dir-no_matching_results.wav"); - search_count = search_count + 1; - if (search_count < search_limit) then - directory_search(); - end + session:streamFile(sounds_dir.."/directory/dir-no_matching_results.wav"); + end + search_count = search_count + 1; + if (search_count < search_limit) then + directory_search(); end end