cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1277
Views
0
Helpful
14
Replies
Highlighted
Participant

TCL IVR does play busy tone to PSTN callers

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...

 

https://community.cisco.com/t5/collaboration-documents/tcl-script-does-not-allow-busy-tone-to-pstn-callers/ta-p/3626333

 

  1. check leg setup status if return ls_007 then play busy tone

    2. replace leg setup by "handoff appl leg_incoming default "DESTINATION=$dnis" . Handoff back to IOS let IOS handle busy tone. But watch if displayinfo is passed.

 

calling number: 05342992223

called number:   02324638011  then I  dial : 8097

 

You can see my tcl script and gw trace attached file.

 

1 ACCEPTED SOLUTION

Accepted Solutions
Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

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

14 REPLIES 14
Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

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
}
}

Participant

Re: TCL IVR does play busy tone to PSTN callers

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

Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

Hi ,

 

You can use below command to play busy tone when you receive ls_007.

playtone leg_incoming tn_busy

 

Thanks,

Raghavendra

Participant

Re: TCL IVR does play busy tone to PSTN callers

H, Ravindra

 

Where should be use this command ? on dp delevel or TCL script ?

 

Can you please do it for me on my TCL file ?

 

Thanks

Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

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

Participant

Re: TCL IVR does play busy tone to PSTN callers

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

Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

You can test with the attached script, added below code in the script.

if { $status == "ls_007" } {
      playtone leg_incoming tn_busy
      timer start leg_timer 5 leg_incoming
      fsm setstate CLEANUP
      return
    }

 

Thanks,

Raghavendra

Participant

Re: TCL IVR does play busy tone to PSTN callers

Thank you Raghavendra, I will make test and update you. 

Participant

Re: TCL IVR does play busy tone to PSTN callers

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 .

 

Participant

Re: TCL IVR does play busy tone to PSTN callers

Collected working and non workin calls.

 

working tcl: test_ivr.tcl

non working: TCL.tcl

Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

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

Participant

Re: TCL IVR does play busy tone to PSTN callers

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

Cisco Employee

Re: TCL IVR does play busy tone to PSTN callers

please make highlighted changes mentioned in the above post into your original script.

 

Thanks,

Raghavendra 

Participant

Re: TCL IVR does play busy tone to PSTN callers

 

 Hi Raghavendra
 
 
 

 TCL is working perfectly. Thank you :)

CreatePlease to create content
Content for Community-Ad
August's Community Spotlight Awards
This widget could not be displayed.