11-28-2018 12:34 PM
Hello Everyone
I have a problem about TCL IVR in my case gw does not play busy tone pstn callers. Do you have any ideas what causes the trouble? I have seen smilar case as follows. Call legs is return ls_007 I think some more parameters needs to be added.
Call FLow....
ITSP....E1....ISRG2(2901).....H323 Gw....CUCM... Ip Phone...
calling number: 05342992223
called number: 02324638011 then I dial : 8097
You can see my tcl script and gw trace attached file.
Solved! Go to Solution.
11-29-2018 03:13 AM
Looks like some extra character added for below line, while your are converting text file to tcl file.
o;?#TCL IVR Script, accepts calls and plays welcome AA, if busy or no answer, IVR responds
You need to make below changes in your original TCL script and try.
proc act_InvalidExt { } {
global langselect
global pilotno
puts "\n(act_InvalidExt) Entering Procedure\n"
set status [infotag get evt_status]
puts "\nDEBUG STATUS: $status\n"
if { $status == "ls_007" } {
playtone leg_incoming tn_busy
timer start leg_timer 5 leg_incoming
fsm setstate CLEANUP
return
}
playtone leg_incoming tn_none
if { $status != "ls_000"} {
puts "\n(act_InvalidExt) Status is not 000. (Status=$status)\n"
if { $langselect == "Turkish" } {
puts "\n(act_InvalidExt) Playing Turkish prompt\n"
media play leg_incoming flash:Transfer_To_Operator.au
}
if { $langselect == "English" } {
puts "\n(act_InvalidExt) Playing English prompt\n"
media play leg_incoming flash:Transfer_To_Operator.au
}
leg setup $pilotno callInfo leg_incoming
puts "\n(act_InvalidExt) Cannot connect so Xfer to OP ($pilotno)\n"
}
}
set fsm(SELECTOPT,ev_collectdigits_done) "act_Collected TRANSFERTOEXT"
set fsm(SELECTOPTENG,ev_collectdigits_done) "act_eng_Collected TRANSFERTOEXT"
Thanks,
Raghavendra
11-28-2018 12:48 PM
set fsm(TRANSFERTOEXT,ev_setup_done) "act_InvalidExt same_state"
In proc act_InvalidExt I don't see you handle ls_007
for example:
proc act_CallSetupDone { } {
global busyPrompt
global legConnected
set status [infotag get evt_status]
if { $status == "ls_000" } {
puts "\n Connection success"
handoff appl leg_all default
act_Cleanup
} else {
if { $legConnected == "false" } {
leg proceeding leg_incoming
leg connect leg_incoming
set legConnected true
}
puts "\n Call failed. Play prompt and collect digit"
if { ($status == "ls_007") } {
set busyPrompt _dest_busy.au
}
act_Select
}
}
11-28-2018 01:12 PM
Hi Yawming
In my case do need upload busy.au file on the flash ? ist it possible to generate busytone without this file ?
set busyPrompt _dest_busy.au
Can you create it on my tcl script ?
Thanks
11-28-2018 09:52 PM
Hi ,
You can use below command to play busy tone when you receive ls_007.
playtone leg_incoming tn_busy
Thanks,
Raghavendra
11-28-2018 10:25 PM
11-28-2018 10:48 PM
I don't see you haven't set state "TRANSFERTOEXT" anywhere, when you are planning to call procedure act_InvalidExt.
you need to call this in procedure when TCL script get ev_setup_done event with status code ls_007
if { ($status == "ls_007") } {
playtone leg_incoming tn_busy
}
What you are planning to do after playing busy tone , close the call ?
Thanks,
Raghavendra
11-28-2018 10:50 PM
Yes,
When the pstn callers hear busy tone then call should be close... Can you create it for me ? I'm not familar TCL
Thanks
11-28-2018 11:13 PM
11-29-2018 07:11 AM - edited 11-29-2018 07:14 AM
Thank you Raghavendra, I will make test and update you.
11-29-2018 01:43 AM
Hello I Tried this tcl but its not activated when the tcl is changed it does not find by gw.
I found the logs provide but its already cofnigured on dp 65
dial-peer voice 65 pots
service ivr
incoming called-number 0654645645
direct-inward-dial
forward-digits all
This is working TCL.
application
service IVR tcl.tcl
Non working TCL
application
service IVR test_ivr.tcl
Nov 29 09:29:50.420: %CALL_CONTROL-6-APP_NOT_FOUND: Application ivr in dial-peer 65 not found. Handing callid 410703 to the alternate app .
11-29-2018 01:50 AM
11-29-2018 03:13 AM
Looks like some extra character added for below line, while your are converting text file to tcl file.
o;?#TCL IVR Script, accepts calls and plays welcome AA, if busy or no answer, IVR responds
You need to make below changes in your original TCL script and try.
proc act_InvalidExt { } {
global langselect
global pilotno
puts "\n(act_InvalidExt) Entering Procedure\n"
set status [infotag get evt_status]
puts "\nDEBUG STATUS: $status\n"
if { $status == "ls_007" } {
playtone leg_incoming tn_busy
timer start leg_timer 5 leg_incoming
fsm setstate CLEANUP
return
}
playtone leg_incoming tn_none
if { $status != "ls_000"} {
puts "\n(act_InvalidExt) Status is not 000. (Status=$status)\n"
if { $langselect == "Turkish" } {
puts "\n(act_InvalidExt) Playing Turkish prompt\n"
media play leg_incoming flash:Transfer_To_Operator.au
}
if { $langselect == "English" } {
puts "\n(act_InvalidExt) Playing English prompt\n"
media play leg_incoming flash:Transfer_To_Operator.au
}
leg setup $pilotno callInfo leg_incoming
puts "\n(act_InvalidExt) Cannot connect so Xfer to OP ($pilotno)\n"
}
}
set fsm(SELECTOPT,ev_collectdigits_done) "act_Collected TRANSFERTOEXT"
set fsm(SELECTOPTENG,ev_collectdigits_done) "act_eng_Collected TRANSFERTOEXT"
Thanks,
Raghavendra
11-29-2018 04:00 AM
My original tcl as follows , where should be added additonal l rows ? Im confuse that point.
proc act_InvalidExt { } {
global langselect
global pilotno
puts "\n(act_InvalidExt) Entering Procedure\n"
set status [infotag get evt_status]
puts "\nDEBUG STATUS: $status\n"
playtone leg_incoming tn_none
if { $status != "ls_000"} {
puts "\n(act_InvalidExt) Status is not 000. (Status=$status)\n"
if { $langselect == "Turkish" } {
puts "\n(act_InvalidExt) Playing Turkish prompt\n"
media play leg_incoming flash:Transfer_To_Operator.au
}
if { $langselect == "English" } {
puts "\n(act_InvalidExt) Playing English prompt\n"
media play leg_incoming flash:Transfer_To_Operator.au
}
leg setup $pilotno callInfo leg_incoming
puts "\n(act_InvalidExt) Cannot connect so Xfer to OP ($pilotno)\n"
}
}
proc donothing { } {
puts "\n(donothing) Cannot end up here\n"
}
init
set delay 5
#----------------------------------
# State Machine
#----------------------------------
set fsm(any_state,ev_disconnected) "act_Cleanup same_state"
set fsm(CALL_INIT,ev_setup_indication) "act_Setup same_state"
set fsm(SELECTOPT,ev_collectdigits_done) "act_Collected same_state"
set fsm(PLACECALL,ev_leg_timer) "act_Cleanup same_state"
set fsm(SELECTOPTENG,ev_collectdigits_done) "act_eng_Collected same_state"
set fsm(CLEANUP,ev_leg_timer) "act_Cleanup same_state"
set fsm(TRANSFERTOOP,ev_media_done) "optransfer same_state"
set fsm(TRANSFERTOEXT,ev_collectdigits_done) "exttransfer same_state"
set fsm(TRANSFERTOEXT,ev_setup_done) "act_InvalidExt same_state"
fsm define fsm CALL_INIT
11-29-2018 04:10 AM
please make highlighted changes mentioned in the above post into your original script.
Thanks,
Raghavendra
11-29-2018 10:52 PM
TCL is working perfectly. Thank you :)
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide