📄 debitcard-multi-lang-cisco.1.1.0.2.tcl
字号:
global state global retryCnt global selectCnt global prefix global wrongLanguage global param5 global param2 global param1 global prefix1 global totalLang if {$totalLang == 1} { # If only one language play welcome and return set ev [playPrompt param1 info [set prefix]_welcome.au] set state do_get_card_number return 0 } else { # Build language promp string based on totalLang for {set i 1} {$i <= $totalLang} {incr i} { setVariable language $i set prefix [getVariable local language] lappend lang_prompt "%s1000" "[set prefix]_lang_sel[set i].au" } } # set primary language and location for welcome prompt setVariable language 1 set prefix [getVariable local language] set param5(maxDigits) 1 if {$selectCnt == 0} { set ev [eval [list playPrompt param5 info [set prefix]_welcome.au] $lang_prompt] } else { if {$wrongLanguage == 1} { set ev [eval [list playPrompt param5 info [set prefix]_wrong_lang_sel.au] $lang_prompt] } else { set ev [eval [list playPrompt param5 info [set prefix]_no_lang_sel.au] $lang_prompt] } } switch -regexp $ev { {collect success} {set lang $info(digits) set langSel [setVariable language $lang] switch -regexp $langSel { {language not specified in configuration} - {language not supported} {incr selectCnt set wrongLanguage 1 if {$selectCnt < $retryCnt} { set state do_select_language } else { set ev [playPrompt param2 info [set prefix1]_generic_final.au] set state end } } default {setVariable language $lang set prefix [getVariable local language] set state do_get_card_number } } } {collect fail} - {collect timeout} {incr selectCnt if {$selectCnt < $retryCnt} { set wrongLanguage 0 set state do_select_language } else { set ev [playPrompt param2 info [set prefix1]_generic_final.au] set state end } } default {set state end} } return 0}proc do_get_card_number {} { global state global account global pin global promptFlag global count global accountLen global pinLen global retryCnt global prefix global param1 global param2 set cardLen [expr $accountLen + $pinLen] set param1(maxDigits) $cardLen if {$count == 0} { set ev [playPrompt param1 info [set prefix]_enter_card_num.au] } else { switch -regexp $promptFlag { {1} {set ev [playPrompt param1 info [set prefix]_invalid_digits.au]} {2} {set ev [playPrompt param1 info [set prefix]_auth_fail.au]} {3} {set ev [playPrompt param1 info [set prefix]_no_card_entered.au]} } } switch -regexp $ev { {collect success} {set number $info(digits) set numberlen [string length $number] if {$numberlen == $cardLen} { set account [ string range $number 0 [expr $accountLen -1]] set pin [ string range $number $accountLen [expr $cardLen -1]] set state do_first_authorize } else { incr count set promptFlag 1 if {$count < $retryCnt} { set state do_get_card_number } else { # no more tries set ev [playPrompt param2 info [set prefix]_final.au] set state end } } } {collect aborted} {set state do_get_card_number} {collect fail} - {collect timeout} {incr count set promptFlag 3 if {$count < $retryCnt} { set state do_get_card_number } else { set ev [playPrompt param2 info [set prefix]_final.au] set state end } } default {set state end} } return 0}proc do_first_authorize {} { global state global pin global account global count global retryCnt global promptFlag global prefix global param2 global amt global returncode set ev [authorize $account $pin "" [ani] info] set returncode [getVariable radius returnCode] switch -regexp $ev { {authorized} {set amt [getVariable radius creditAmount] set state do_get_dest } {authorization failed} {incr count set promptFlag 2 if {$returncode == "Uknown variable name"} { set ev [playPrompt param2 info [set prefix]_no_aaa.au] set state end return 0 } if { $count < $retryCnt } { set state do_get_card_number } else { set state do_first_authorize_fail } } default {set state end} } return 0}proc do_get_dest {} { global state global destination global fcnt global retryCnt global promptFlag2 global prefix global pound global destBusy global param3 global amt global prompt global len global newlist global gender global numbers# Will need to move this and handle better if {$fcnt == 0} { if {$amt == 0} { set ev [playPrompt param3 info [set prefix]_zero_bal.au] set state end } elseif {$amt > 999999.99} { set ev [playPrompt param3 info [set prefix]_invalid_amt.au [set prefix]_dollars.au %s1000 [set prefix]_enter_dest.au] } elseif {$pound == 1} { set pound 0 set ev [playPrompt param3 info [set prefix]_disconnect.au [set prefix]_enter_dest.au] } elseif {$destBusy == 1} { set destBusy 0 set ev [playPrompt param3 info [set prefix]_dest_busy.au] } else { switch -regexp $prefix { {th} - {ca} {set newlist [split $amt .] do_whole_part if {[lindex $newlist 0] >= 1 } { lappend prompt "[set prefix]_dollars.au" } do_decimal_part if {[lindex $newlist 1] >= 1 } { lappend prompt "[set prefix]_cents.au" } puts "\t\t**** playPrompt param3 info [set prefix]_you_have.au $prompt [set prefix]_enter_dest.au" set ev [eval [list playPrompt param3 info [set prefix]_you_have.au] $prompt [list %s1000 [set prefix]_enter_dest.au]] } {ru} {set newlist [split $amt .] set gender m do_whole_part if {$len == 1 } { switch -regexp $numbers(tens) { {0} { } {1} {lappend prompt "[set prefix]_dollar.au"} {[2-4]} {lappend prompt "[set prefix]_2-4_dollars.au"} {[5-9]} {lappend prompt "[set prefix]_5-20_dollars.au"} } } else { switch -regexp $numbers(tens) { {[0-9]*[0|2-9][2-4]} {lappend prompt "[set prefix]_2-4_dollars.au"} {[0-9]*[2-9][1]} {lappend prompt "[set prefix]_dollar.au"} default {lappend prompt "[set prefix]_5-20_dollars.au"} } } set gender f do_decimal_part if {[string length [lindex $newlist 1]] == 1} { switch -regexp [lindex $newlist 1] { {0} { } default {lappend prompt "[set prefix]_5-20_cents.au"} } } else { switch -regexp [lindex $newlist 1] { {00} { } {[0|2-9][1]} {lappend prompt "[set prefix]_cent.au"} {[0|2-9][2-4]} {lappend prompt "[set prefix]_2-4_cents.au"} default {lappend prompt "[set prefix]_5-20_cents.au"} } } puts "\t\t**** playPrompt param3 info [set prefix]_you_have.au $prompt [set prefix]_enter_dest.au" set ev [eval [list playPrompt param3 info [set prefix]_you_have.au] $prompt [list %s1000 [set prefix]_enter_dest.au]] } {ja} {set newlist [split $amt .] do_whole_part if {[lindex $newlist 0] >= 1 } { lappend prompt "[set prefix]_dollars.au" }# puts "\t\t**** playPrompt param3 info [set prefix]_you_have_money.au $prompt [set prefix]_des.au [set prefix]_enter_dest.au" set ev [eval [list playPrompt param3 info [set prefix]_you_have_money.au] $prompt [list %s1000 [set prefix]_des.au] [set prefix]_enter_dest.au] } default {set ev [playPrompt param3 info [set prefix]_you_have.au %a$amt %s1000 [set prefix]_enter_dest.au]} } } } else { switch -regexp $promptFlag2 { {1} {set ev [playPrompt param3 info [set prefix]_reenter_dest.au]} {2} {set ev [playPrompt param3 info [set prefix]_author_fail.au]} {3} {set ev [playPrompt param3 info [set prefix]_no_dest_entered.au]} } } switch -regexp $ev { {collect success} {set destination $info(digits) set state do_second_authorize } {collect aborted} {set state do_get_dest} {collect fail} {incr fcnt set promptFlag2 1 if {$fcnt < $retryCnt} { set state do_get_dest } else { set state do_collect_fail } } {collect timeout} {incr fcnt set promptFlag2 3 if {$fcnt < $retryCnt} { set state do_get_dest } else { set state do_collect_fail } } default {set state end} } return 0}proc do_creditTime_prompt {} { global creditTime global prefix global param2 global len global prompt global newlist global numbers global gender # Convert creditTime to hours, minutes and seconds set prompt "" set hours [expr { $creditTime / 3600 }] set minutes [expr {int([expr { $creditTime % 3600} / 60])}] set seconds [expr { $creditTime % 60}] if {[string length $minutes] == 1 } { set minutes 0$minutes } set newlist [list $hours $minutes]# Gender is used to determine correct word structure in Russian prompt building set gender m do_whole_part switch $prefix { {th} - {ca} {if {[lindex $newlist 0] >= 1 } { lappend prompt "[set prefix]_hours.au" } } {ru} {if {$len == 1 } { switch -regexp $numbers(tens) { {0} { } {1} {lappend prompt "[set prefix]_hour.au"} {[2-4]} {lappend prompt "[set prefix]_2-4_hours.au"} {[5-9]} {lappend prompt "[set prefix]_5-20_hours.au"} } } else { switch -regexp $numbers(tens) { {[0-9]*[0|2-9][2-4]} {lappend prompt "[set prefix]_2-4_hours.au"} {[0-9]*[2-9][1]} {lappend prompt "[set prefix]_hour.au"} default {lappend prompt "[set prefix]_5-20_hours.au"} } } } default {if {[lindex $newlist 0] == 1 } { lappend prompt "[set prefix]_hour.au" } elseif {[lindex $newlist 0] > 1 } { lappend prompt "[set prefix]_hours.au" } } } set list_index_1 [lindex $newlist 1] # Do the decimal translation to build prompt for minutes switch -regexp $prefix { {th} - {ca} {do_decimal_part if {[lindex $newlist 1] >= 1 } { lappend prompt "[set prefix]_minutes.au" } puts "\t\t*** playPrompt param2 info [set prefix]_you_have.au $prompt" set ev [eval [list playPrompt param2 info [set prefix]_you_have.au] $prompt] } {ja} {set seperate [split $list_index_1 ""] switch -regexp $list_index_1 { {00} { } {01} {lappend prompt "[set prefix]_and.au" "[set prefix]_ippun.au"} {03} {lappend prompt "[set prefix]_and.au" "[set prefix]_san_pun.au"} {04} {lappend prompt "[set prefix]_and.au" "[set prefix]_yon_pun.au"} {06} {lappend prompt "[set prefix]_and.au" "[set prefix]_roppun.au"} {08} {lappend prompt "[set prefix]_and.au" "[set prefix]_ha_ppun.au"} {[0][2|5|7|9]} {lappend prompt "[set prefix]_and.au" "[set prefix]_[lindex $seperate 1].au" "[set prefix]_minutes.au"} default {lappend prompt "[set prefix]_$list_index_1.au" "[set prefix]_minutes.au"} } puts "\t\t*** playPrompt param2 info [set prefix]_you_have_time.au $prompt [set prefix]_des.au" set ev [eval [list playPrompt param2 info [set prefix]_you_have_time.au] $prompt [set prefix]_des.au] } {ru} {set gender f do_decimal_part if {[string length [lindex $newlist 1]] == 1} { switch -regexp [lindex $newlist 1] { {0} { } default {lappend prompt "[set prefix]_5-20_minutes.au"} } } else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -