Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
call application voice debitcard set-location ru 0 slot0:/ivr/prompts/ru/
теперь скрипт «знает», что все файлы, из которых следует составлять голосовые сообщения, находятся на носителе slot0:/ivr/prompts/ru/. Перед именем файла при его поиске он автоматически будет добавлять префикс ru, например, команда media play _wecome.au «проиграет» клиенту файл, полный путь, к которому будет slot0:/ivr/prompts/ru/ru_wecome.au.
И в конце этой процедуры вызывается функция Select LanguageMenu:
proc SelectLanguageMenu { } {
global param;
global retryCnt;
global NumLangPrompt;
global LangPattern;
if {$NumLangPrompt < $retryCnt} {
media play leg_incoming %s2000 _RUS_lang_sel1.au %s500 _ENG_lang_sel2.au
leg collectdigits leg_incoming param LangPattern;
} else {
media play leg_incoming _final.au;
fsm setstate CALLDISCONNECT;
}
return;
}
В ее задачи входит следующее: пользователю проигрываются два приглашения на разных языках с предложением нажать соответствующую клавишу для выбора нужного языка. После проигрывания команда leg collectdigits переводит скрипт в состояние ожидания поступления события о завершении процесса сбора цифр. Это событие поступит после однократного нажатия клиентом любой клавиши – за такое поведение отвечает массив LangPattern, позволяющий клиенту нажать только одну клавишу. Но если эта клавиша не была цифрой 1 или 2, то статус завершения события ev_collectdigits_done будет отличен от «cd_005».
При получении этого события определенный нами FSM-переход:
set ivr_fsm(CALLCOMES,ev_collectdigits_done) "CheckLangSelection CHECKLANG";
обеспечит вызов функции CheckLangSelection, которая и проверит статус завершения события и при неудовлетворительном результате должна увеличить значение глобальной переменной NumLangPrompt для того, чтобы функция SelectLanguageMenu не повторяла приглашения больше раз, чем записано в переменной retryCnt, тем самым не позволяя звонку зациклиться на проигрывании звуковых файлов, если нам попался туго соображающий пользователь.
Именно здесь становится понятна необходимость использования функции init_perCallVars, в которой определяются подобные переменные, регулирующие максимальное количество проигрывания приглашений. Нам необходимо, чтобы при следующем звонке они обнулились, что невозможно реализовать через глобальную процедуру init. К тому же при нескольких одновременных звонках у каждого из них должен быть свой экземпляр переменной.
proc CheckLangSelection { } {
global NumLangPrompt;
set collect_status [infotag get evt_status];
set collect_digits [infotag get evt_dcdigits];
switch $collect_status {
"cd_001" {