Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
0 {media play leg_incoming %s500 _enter_card_num.au; #first play}
1 {media play leg_incoming _invalid_digits.au; #Not enuf digits pressed}
3 {media play leg_incoming _no_card_entered.au; #Timeout - no digits entered}
default {
media play leg_incoming _no_aaa.au;
fsm setstate CALLDISCONNECT;
return;
}
}
leg collectdigits leg_incoming ParamForCard;
} else {
media play leg_incoming _final.au;
fsm setstate CALLDISCONNECT;
}
return;
}
Процедура act_GetCard проигрывает клиенту соответствующие звуковые файлы не более $retryCnt раз в зависимости от значения переменной PromptFlag, которая изначально установлена в 0 в процедуре init_perCallVars. Соответственно при первом вызове этой процедуры клиент слышит приглашение ввести номер (пин-код) карточки. Значение 1 соответствует неверному количеству набранных цифр и значение 3 – статусу, при котором клиент не набрал ни одной цифры. Далее скрипт выполняет команду leg collectdigits и ожидает получения события ev_collectdigits_done, которое проанализирует функция act_GotCardNumber, что обеспечит FSM-переход:
proc act_GotCardNumber { } {
global NumCardPrompt
global AccountLen;
global PinLen;
global CardLen;
global PromptFlag;
global retryCnt;
global account;
global pin;
set status [infotag get evt_status];
switch $status {
"cd_005" {
set card_number [infotag get evt_dcdigits];
set card_len [string length $card_number];
if {$card_len == $CardLen} {
set account [string range $card_number 0 [expr $AccountLen - 1]];