Помогите с TCL. Ситуация такая. В ответ на звонок проигрывается приглашение выбрать пункт из меню нажатием цифры. Если выбираешь пункт, то в зависимости от того, что выбрали, проигрывается звуковой файл.
Всё вроде работает, но приглашение прервать нельзя. Нужно, чтобы оно проигралось до конца, только после этого нажать цифру. Если нажать раньше, то эффекта нет. Что не так?
proc init {} {
puts "\n proc Init start"
global param
set param(initialDigitTimeout) 7
set param(maxDigits) 1
set param(interruptPrompt) true
infotag set med_language_map 0 ru
infotag set med_location ru 0 tftp://ip.ip.ip.ip/tcl/ru/
infotag set med_location ru 1 tftp://ip.ip.ip.ip/tcl/ru/
infotag set med_language 0
puts "\n proc Init stop"
}proc init_Vars { } {
puts "\n proc Vars start"
global PressedKey
global Status
if { [info exists PressedKey] } { unset PressedKey }
if { [info exists Status] } { unset Status }
puts "\n proc Vars stop"
}proc act_Setup {} {
puts "\n proc Setup start"
init_Vars
leg setupack leg_incoming
media play leg_incoming %s500 _account_closed.au
puts "\n proc Setup stop"
}proc act_Select {} {
puts "\n proc Select start"
global param
global PressedKey
global Status
leg collectdigits leg_incoming param
puts "\n proc Select Stop"
}proc act_Digits {} {
puts "\n proc Digits start"
global Status
global PressedKey
set Status [infotag get evt_status]
set PressedKey [infotag get evt_dcdigits]
puts "\n \n \n PressedKey: $PressedKey \n Status: $Status \n \n \n"
switch $Status {
"cd_004" {
fsm setstate PLAYSOUND
act_Play
}
default {
act_Cleanup
}
}
puts "\n proc Digits Stop"
}proc act_Play {} {
puts "\n proc Play start"
global PressedKey
switch $PressedKey {
"1" {
media play leg_incoming %s500 _1.au %s500 _1.au %s500
}
"2" {
media play leg_incoming %s500 _2.au %s500 _2.au %s500
}
default {
act_Cleanup
}
}
puts "\n proc Play Stop"
}proc act_Cleanup {} {
puts "\n proc Cleanup start"
call close
puts "\n proc Cleanup stop"
}
requiredversion 2.0
init# FSM
set ivr_fsm(any_state,ev_disconnected) "act_Cleanup same_state"
set ivr_fsm(CALLCOMES,ev_setup_indication) "act_Setup same_state"
set ivr_fsm(CALLCOMES,ev_media_done) "act_Select ENTERDIGITS"
set ivr_fsm(ENTERDIGITS,ev_collectdigits_done) "act_Digits same_state"
set ivr_fsm(PLAYSOUND,ev_media_done) "act_Cleanup same_state"
set ivr_fsm(CALLDISCONNECT,ev_media_done) "act_Cleanup same_state"
set ivr_fsm(CALLDISCONNECT,ev_disconnect_done) "act_Cleanup same_state"fsm define ivr_fsm CALLCOMES
Необходимо сначала
leg collectdigits leg_incoming param
затем
media play leg_incoming play.au
.
>Необходимо сначала
> leg collectdigits leg_incoming param
>затем
> media play leg_incoming play.au
>.Спасиб. Сейчас буду пробовать...