Пин-коды разной длины
-
- Сообщения: 16
- Зарегистрирован: Пн дек 12, 2005 22:29
Пин-коды разной длины
Подскажите, кто может.... как заставить Cisco+UTM5 обрабатывать пинкоды предоплаченных VoIP карт разной длины, например 12 и 13 знаков??? А то проблема возникла серьезная...
-
- Сообщения: 16
- Зарегистрирован: Пн дек 12, 2005 22:29
-
- Сообщения: 16
- Зарегистрирован: Пн дек 12, 2005 22:29
Вот исправленный фрагмент скрипта TCL:
Изменения в программе выделены красным. Все просто. В моем случае этого оказалось достаточо.proc act_GotCardNumber { } {
puts "--== NetUP IVR ==-- ::invoke act_GotCardNumber::";
global count
global retryCnt
global promptFlag
global account
global pin
global accountLen
global cardLen
global ani
set status [infotag get evt_status];
puts "--== NetUP IVR ==-- ::invoke act_GotCardNumber::status ${status}";
# Do we need to calculate len ???
if {$status == "cd_005"} {
set number [infotag get evt_dcdigits];
puts "NUMBER=$number";
set numberLen [ string length $number ]
if { $numberLen <= $cardLen } {
set account [ string range $number 0 [expr $numberLen -1]]
set pin [ string range $number $numberLen [expr $numberLen -1]]
#Do authorize
aaa authorize $account $pin $ani "" leg_incoming
} else {
incr count
set promptFlag 1
if {$count < $retryCnt} {
act_GetCard
fsm setstate same_state
} else {
media play leg_incoming _bye.au
fsm setstate CALLDISCONNECT
}
}
return
}
#timeout
if {$status == "cd_001"} {
set number [infotag get evt_dcdigits]
puts "NUMBER=$number";
set numberLen [ string length $number ]
if { $numberLen == 0 } {
incr count
set promptFlag 3
if {$count < $retryCnt} {
act_GetCard
fsm setstate same_state
} else {
media play leg_incoming _bye.au
fsm setstate CALLDISCONNECT
}
return
}
if { $numberLen <= $cardLen } {
set account [ string range $number 0 [expr $numberLen -1]]
set pin [ string range $number $numberLen [expr $numberLen -1]]
#Do authorize
aaa authorize $account $pin $ani "" leg_incoming
} else {
incr count
set promptFlag 1
if {$count < $retryCnt} {
act_GetCard
fsm setstate same_state
} else {
media play leg_incoming _bye.au
fsm setstate CALLDISCONNECT
}
}
return
}