Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
set pin [string range $card_number $AccountLen [expr $card_len - 1]]
puts "account = $account pin = $pin";
aaa authorize $account $pin "" "" leg_incoming;
} else {
incr NumCardPrompt;
set PromptFlag 1;
act_GetCard;
return;
}
}
"cd_001" {
incr NumCardPrompt;
set PromptFlag 3;
act_GetCard;
return;
}
"cd_002" {
set PromptFlag 0
act_GetCard;
return;
}
}
return;
}
Процедура act_GotCardNumber выполняется при получении события ev_collectdigits_done. Глобальная переменная ParamForCard, инициализированная в функции init, обеспечивает нам получение определенного количества цифр – в нашем конкретном случае это число 11 ($Cardlen = $AccountLen + $PinLen). При неудовлетворяющем нас статусе события функция act_GotCardNumber инкремирует переменную NumCardPrompt для счетчика количества приглашений ввода карты, устанавливает значение переменной PromptFlag и снова вызывает процедуру act_GetCard, которая проверяет, не превышен ли счетчик приглашений, и указывает клиенту на ошибку, основываясь на значении PromptFlag. При успешно завершившемся процессе сбора цифр (статус «cd_005») функция вычисляет логин и пароль, и с помощью команды:
aaa authorize $account $pin "" "" leg_incoming;
указывает маршрутизатору отправить запрос на авторизацию карты RADIUS-серверу. При получении ответа от него скрипту поступит событие ev_authorize_done. Далее скрипт выполнит функцию act_CardAuthorize и останется в том же состоянии, для этого используем следующий FSM-переход:
set ivr_fsm(CARDSELECTION,ev_authorize_done) "act_CardAuthorize same_state";
определенный в конце нашего скрипта:
proc act_CardAuthorize { } {
global PromptFlag;
global NumCardPrompt;
global ParamForDest;
global ParamForCard;
global retryCnt;