cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
199
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: Jean Lofrano on 27-07-2011 01:30:12 PM
Hi,
 
I have a script TCL IVR working very well...
 
But the first prompt is: Option 1 to user unlock; Option 2 to password change and Option 3 to forward to help desk...
 
And I don´t want wait to select a option... I would like to interrupt the prompt!!!
 
My script is configured for that, but it is not working. See:
 
proc ActionCollectQuestion1 { } {
    puts "IT7: collecting question 1"
    set Question1Param(interruptPrompt) true
    set Question1Param(terminationKey) #
    set Question1Param(enableReporting) true
    set Question1Param(maxDigits) 1
    set Question1Param(dialPlan) true
    set Question1Pattern(1) "1"
    set Question1Pattern(2) "2"
    set Question1Pattern(3) "3"
    leg collectdigits leg_incoming Question1Param
    puts "IT7: collected question 1"
}
#send collected digits through web
proc Action1 { } {
    puts "IT7: try to send web"
    global WebServer
    global Response1
    global CallerID
    global count
    global count1
    set StatusCollectDigits [infotag get evt_status]
    puts "IT7: cpf $StatusCollectDigits"
    #matched pattern
    if {$StatusCollectDigits == "cd_005"} {
       puts "IT7: starting web"
       set Response1 [infotag get evt_dcdigits]
       puts "Choose: $Response1"
       if { $Response1 == "3"} {
       puts "aguarde, transferindo para o help-desk"
       media play leg_incoming "flash:/aguarde.wav"
       fsm setstate HELPDESK
      
       }
      
      if { $Response1 == "2"} {
      puts "password change"
      
       set count 0
       set count1 0
           
       media play leg_incoming "flash:/alteracao-cpf.wav"
       fsm setstate PLAYEDQUESTION2
       }

      if { $Response1 == "1"} {
      puts "user unlock"
     
      set count 0
      set count1 0
     
      media play leg_incoming "flash:/desbloqueio-cpf.wav"
      fsm setstate PLAYEDQUESTION2
     }

     if { $Response1 > "3"}  {
 
     puts "Invalid option"
     media play leg_incoming "flash:/opcao-invalida.wav"
     fsm setstate PLAYEDWRONG1

     }
Could you help me please???
 
Thanks.

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 27-07-2011 02:46:40 PM
Ok , So I´m going to do in the proc:

#procedure to play audio file on incoming dial peer
proc ActionPlayWelcome { } {
    puts "IT7: playing audio Welcome"

    global WelcomePrompt
    global CallerID

   >>>>> Question1Param(interrupPrompt)true

    leg setupack leg_incoming
    leg proceeding leg_incoming
    leg connect leg_incoming

    set CallerID [infotag get leg_ani]

    puts "IT7: Caller ID $CallerID"

   >>>>>leg collectdigits leg_incoming Question1Param

    media play leg_incoming $WelcomePrompt

    puts "IT7: Audio played Welcome"
}

Is it correct??

thanks.

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 27-07-2011 02:54:24 PM
Hi, My prompt is WelcomePrompt... This proc run the option1 to... option 2 to.... and option3 to....

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 27-07-2011 03:07:47 PM
Ohh sorry,

The proc ActionPlayWelcome just run "olá"....

The proc correct is:

proc ActionPlayQuestion1 { } {
   
    global counter

>>>>> Question1Param(interrupPrompt)true

   set counter 0
   

    puts "IT7: playing question 1"

>>>>>leg collectdigits leg_incoming Question1Param


    media play leg_incoming "flash:/opcoes.wav"

    puts "IT7: played question 1"
}

I´m going to add both command in this proc and test...

Thanks...

Subject: RE: Collect digits error
Replied by: Yaw-Ming Chen on 27-07-2011 01:53:53 PM
1. Try to do "set Question1Param(interruptPrompt) true" at INIT stae or when call setup event received
2. Do leg collectdigits leg_incoming Question1Param commaqnd first
3. Then play the prompt for this digit collection

so it looks something like this:

    leg collectdigits leg_incoming PARAM
    media play leg_incoming $welcomePrompt

Subject: RE: Collect digits error
Replied by: Yaw-Ming Chen on 27-07-2011 02:50:47 PM
In this case you should be   able to barge-in "WelcomePrompt"

Subject: RE: Collect digits error
Replied by: Raghavendra Gutty Veeranagappa on 03-08-2011 03:47:49 AM
Hi Jean,

Please use below command to Collect digits to match a dial plan with a pattern prefix:

leg collectdigits leg_incoming Question1Param Question1Pattern

Thanks,
Raghavendra

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 02-08-2011 04:47:30 PM
Hi,

I put the "leg collectdigits leg_incoming Question1Param" command before of "media play leg_incoming "flash:/opcoes.wav", but it does not work...

Can you help me?

Thanks..

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 02-08-2011 04:52:34 PM
Hi ,

I wold like of collect the digits of proc "ActionPlayQuestion1"...

The current flow is:

proc ActionPlayQuestion1 { } {
   
    global counter

    set counter 0
   

    puts "IT7: playing question 1"

    media play leg_incoming "flash:/opcoes.wav"

    puts "IT7: played question 1"
}

proc ActionCollectQuestion1 { } {
    puts "IT7: collecting question 1"

    set Question1Param(interruptPrompt) true
    set Question1Param(terminationKey) #
    set Question1Param(enableReporting) true
    set Question1Param(maxDigits) 1
    set Question1Param(dialPlan) true
    set Question1Pattern(1) "1"
    set Question1Pattern(2) "2"
    set Question1Pattern(3) "3"

    leg collectdigits leg_incoming Question1Param

    puts "IT7: collected question 1"
}

proc Action1 { } {
    puts "IT7: try to send web"
    global WebServer
    global Response1
    global CallerID
    global count
    global count1

    set StatusCollectDigits [infotag get evt_status]

    puts "IT7: cpf $StatusCollectDigits"

    #matched pattern
    if {$StatusCollectDigits == "cd_005"} {

       puts "IT7: starting web"

       set Response1 [infotag get evt_dcdigits]
      

       puts "Choose: $Response1"

       if { $Response1 == "3"} {

.
.
.
.
.


set ScriptFSM(PLAYEDWELCOME,ev_media_done)              "ActionPlayQuestion1      PLAYEDQUESTION1"
set ScriptFSM(PLAYEDWRONG1,ev_media_done)               "ActionPlayQuestion1Again PLAYEDQUESTION1"

set ScriptFSM(PLAYEDQUESTION1,ev_media_done)            "ActionCollectQuestion1   COLLECTEDQUESTION1"
set ScriptFSM(COLLECTEDQUESTION1,ev_collectdigits_done) "Action1                  CALLDISCONNECT"

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 03-08-2011 10:46:43 AM
Ok thanks. I´m going to test with Question1Pattern.

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 03-08-2011 03:10:44 PM
Hi,

I put the new variable in the proc bellow, but it is not working yet...

proc ActionCollectQuestion1 { } {
    puts "IT7: collecting question 1"

    set Question1Param(interruptPrompt) true
    set Question1Param(terminationKey) #
    set Question1Param(enableReporting) true
    set Question1Param(maxDigits) 1
    set Question1Param(dialPlan) true
    set Question1Pattern(1) "1"
    set Question1Pattern(2) "2"
    set Question1Pattern(3) "3"

    leg collectdigits leg_incoming Question1Param Question1Pattern

    puts "IT7: collected question 1"
}


On router I put the "dtmf-relay h245-alphanumeric", but I don´t have sucess...

dial-peer voice 7067 voip
service passwordreset
incoming called-number 7077
dtmf-relay h245-alphanumeric
codec g711ulaw


The debug voice application digitcollect is bellow:

it7-rot-csc-03#
028835: *Nov 16 01:37:37.487: //3255//Digi:/tcl_LegDigitCollectObjCmd: collectdigits leg_incoming Question1Param Question1Pattern
028836: *Nov 16 01:37:37.491: //3255//Digi:/C_DigitCollect_Start: Leg=3255, Dialplan=True, Diaplanterm=False, DigitReport=True, DigitConsume=False IgnoreInitialKey=False, IgnoreDTMFacceptINFO=False, Abortkey=, Terminationkey=#, Numpatterns=3, Maxdigits=1, Mindigits=0, Interruptprompt=True, InterTimeout=-1000, Initialtimeout=-1000, Mask=0
028837: *Nov 16 01:37:37.491: //-1//Digi:/AFW_DigitCollect_New:
028838: *Nov 16 01:37:37.491: //-1//Digi:HN1585EEE3:/AFW_DigitCollect_New:
it7-rot-csc-03#DialPlan=TRUE AbortKey= TermKey=# NumPatts=3
              Enable=TRUE Consume=FALSE InterruptPrompt=TRUE minDigits=0 maxDigits=1 DialPlanTerm=FALSE
028839: *Nov 16 01:37:37.495: //3255/806FF4A50401/Digi:/DigitCollectStart_UpdateStats:
028840: *Nov 16 01:37:37.495: //3255//Digi:/AFW_M_DigitCollect_Action:
028841: *Nov 16 01:37:37.499: //3255//Digi:/act_DCRunning_RDone: callid=3255 Enable succeeded.enable=1 matchDialplan=1 numPatterns=3matchDialplanTerm=0
it7-rot-csc-03#
028842: *Nov 16 01:37:43.921: //3255//Digi:/AFW_M_DigitCollect_Action:
028843: *Nov 16 01:37:43.921: //3255//Digi:/act_DCRunning_Disconnected:
028844: *Nov 16 01:37:43.921: //3255//Digi:/DigitCollect_Complete: Status 7=DC_DISCONNECTED. Digits=
028845: *Nov 16 01:37:43.925: //3255//Digi:/AFW_M_DigitCollect_EventPreProcess:
028846: *Nov 16 01:37:43.925: //3255//Digi:/DigitCollectEnd_UpdateStats:

Subject: RE: Collect digits error
Replied by: Raghavendra Gutty Veeranagappa on 04-08-2011 02:38:04 AM
Hi Jean,

media play command syntax is wrong please modify as below.

media play leg_incoming flash:opcoes.wav

Thanks,
Raghavendra

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 04-08-2011 12:07:16 PM
Thanks, but the audio is working... My problem is in the proc "ActionCollectQuestion1".. It is not working...

I need to wait full audio "opcoes.wav" for after digit a option...

thanks.

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 04-08-2011 02:54:48 PM
I need wait terminate the audio to choose a option....

Subject: RE: Collect digits error
Replied by: Raghavendra Gutty Veeranagappa on 05-08-2011 01:25:28 AM
Hi Jean,

yes you need to wait to full audio to collect digit because you are issuing leg collect digits after ev_media_done event recieved, you can issue leg collect digits command after media play command and wait for ev_collectdigits_done event instead of ev_media_done event.

proc ActionPlayQuestion1 { } {

global counter

set counter 0

set Question1Param(interruptPrompt) true
set Question1Param(terminationKey) #
set Question1Param(enableReporting) true
set Question1Param(maxDigits) 1
set Question1Param(dialPlan) true
set Question1Pattern(1) "1"
set Question1Pattern(2) "2"
set Question1Pattern(3) "3"

puts "IT7: playing question 1"

media play leg_incoming flash:opcoes.wav

puts "IT7: played question 1"


leg collectdigits leg_incoming Question1Param Question1Pattern

}


Thanks,
Raghavendra

Subject: RE: Collect digits error
Replied by: Jean Lofrano on 05-08-2011 11:24:00 AM
Thank you so much!

The problem was solved.


Att.
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links