cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
494
Views
0
Helpful
3
Replies

IVR Script for Voice Gateway !

chidd
Beginner
Beginner

Hi All

The following is my script for IVR. However, when User press "0" to operator, the system must wait for 7-10 seconds to forward "0" digit to CallManager.

How can I make Script forward immediately "0" digit to CallManager ?

==============================================================

proc act_Setup { } {

global flag

global param

set param(interruptPrompt) true

set param(enableReporting) true

set param(terminationKey) #

set param(interDigitTimeout) 1

set flag 1

leg proceeding leg_incoming

set dest [infotag get leg_dnis]

leg connect leg_incoming

set pattern(account) .+

leg collectdigits leg_incoming param pattern

media play leg_incoming flash:IVR.au

}

proc act_process_dtmf { } {

global flag

global param

set dtmf_pressed [infotag get evt_digit]

puts "Processing DTMF: $dtmf_pressed"

if {$flag == "0"} { return }

if { $dtmf_pressed == "0" } {

set flag 0

set dest "2000"

fsm setstate PLACECALL

puts "dest = $dest"

leg setup $dest callInfo leg_incoming

}

}

proc act_PromptCollect_acct1 { } {

global param

set status [infotag get evt_status]

puts "act_PromptCollect_acct1, status=$status"

if {$dest == "0"} {set dest "2000"}

puts "make call ... to Operator = $dest"

leg setup $dest callInfo leg_incoming

call close

}

proc act_CallSetupDone { } {

set status [infotag get evt_status]

puts "act_CallSetupDone, status=$status"

if { $status == "ls_000" } {

puts "Setup successful, start timer..."

} else {

puts "Setup unsuccessful"

call close

}

}

proc act_Cleanup { } {

puts "call close"

call close

}

set fsm(CALL_INIT,ev_setup_indication) "act_Setup GETDEST"

set fsm(GETDEST,ev_digit_end) "act_process_dtmf same_state"

set fsm(GETDEST,ev_collectdigits_done) "act_PromptCollect_acct1 PLACECALL"

set fsm(PLACECALL,ev_setup_done) "act_CallSetupDone CALLACTIVE"

set fsm(CALLACTIVE,ev_disconnected) "act_Cleanup CALLDISCONNECT"

set fsm(CALLDISCONNECT,ev_any_event) "act_Cleanup same_state"

fsm define fsm CALL_INIT

=================================================