VoiceGuide IVR Software Main Page
Jump to content

Gosub/return, Hanging Up

Recommended Posts

I have questions regarding two problems:

 

1) We are using voiceguide for a research study at a university, and we want to inform participants when they have pressed a wrong key while answering a series of questions through voiceguide. We tried using the gosub/return path, so that when they pressed the wrong key (e.g. the 2 key) in response to a module (we'll call it question 1 module), it would then go to the "wrong key" module, where the recording would tell them that they had hit the wrong key, and then return back to the question 1 module where they could hear the question again.

 

The path looks like this in the question 1 module: on {2} gosub [Wrong Key] return [Question 1].

 

However, what is happening is that if they press the wrong key, they are being sent to the wrong key module, but then voiceguide just gets stuck there. The wrong key recording plays over and over, and then eventually voiceguide hangs up, no matter what keys are pressed after this point.

 

Is there a way to make it so that voiceguide will return to the original module, and not get stuck on the Wrong Key module?

 

2) We also want participants to have the option of going back a question. So we have them press # to go back to the previous module. Voiceguide hangs up whenever we press # to go back to the previous module however. Why is this happening? Is there a way to fix it?

 

Thanks,

Caroline

Share this post


Link to post
The wrong key recording plays over and over

And what is the 'replays' value set to in that module...? if it is set to 1 or more then that's the number of times the module will play the sound file... (if no keys are pressed to exit the module...)

and then eventually voiceguide hangs up, no matter what keys are pressed after this point.

Have you specified the "return" path from that module...?

eg:

on {timeout 0} return

 

If you are still having problems then enable logging by setting the log levels to 10 in VG.INI as per below:

[Log]

 

VoiceGuide=10

NumberLoader=0

VoicemailManager=0

EmailSender=0

TapiWrapOcx=0

SapiWrapOcx=0

Then make a test call which demonstrates the problem.

 

Debug Trace files will be created in VG's \log\ subdirectory.

 

Please post the traces and the VoiceGuide script(s) used.

 

When posting traces/scripts please .ZIP them up and post them as attachments.

Share this post


Link to post

Here is the trace log of the call: The script gets stuck on the Wrong Key module and won't return to the original module.

 

The path in the original module is: on {2} gosub [Wrong Key] return [Question 1]

 

The path in the Wrong Key module is: on {timeout 0} return [Question 1].

 

141132.05 0 sys cleanup Start

141132.05 0 sys cleanup End

141632.03 6 devstate NUMCALLS 0 0

141632.03 6 tapi callstate start

141632.03 6 tapi callstate OFFERING 66372 0 4

141632.03 6 rv clear

141632.03 6 Answer the call at 4/19/2006 2:16:32 PM

141632.03 6 lineAnswer(66372) => 66355

141632.03 6 ev Lev_CallerID [9198438143,,0000]

141632.03 6 rv lg add [DNIS]{0000}

141632.03 6 ev Lev_CallerID [9198438143,,0000]

141632.03 6 callinfo CALLEDID

141632.03 6 callinfo ORIGIN

141632.03 6 ring 0

141632.58 6 tapi callstate start

141632.58 6 tapi callstate CONNECTED 66372 1 0

141632.58 6 callstate CONNECTED 66372,1,0

141632.58 6 WorkingModeTAPI@Connected=

141632.58 6 WorkingModeScript@Connected=

141632.58 6 Inband detection not enabled

141632.58 6 StartLoadedVgs at 4/19/2006 2:16:32 PM, script interpretor VgMulti v5.2.5026 3

141632.58 6 rv ns add [scriptsPath]{C:\Program Files\VoiceGuide\Scripts\}

141632.58 6 rv ns add [scriptPath]{C:\Program Files\VoiceGuide\Scripts}

141632.59 6 rv lg add [$RV_STARTTIME]{4/19/2006 2:16:32 PM}

141632.59 6 rv lg add [$RV_DEVICEID]{6}

141632.59 6 rv lg add [$RV_CIDNAME]{}

141632.59 6 rv ns add [PathApp]{C:\Program Files\VoiceGuide\}

141632.59 6 rv lg add [$RV_CIDNUMBER]{9198438143}

141632.59 6 rv lg add [$RV_DNIS]{0000}

141632.59 6 rv lg add [DNIS]{0000}

141632.59 6 tapi Reply (LineEvReply) ok 66355 0

141632.59 6 callinfo MONITORMODES

141632.59 6 timer clear

141632.59 6 state [Welcome] Playing

141632.59 6 state [Welcome] Playing (welcome.wav)

141632.59 6 play set playid=513281

141632.61 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\welcome.wav]

141632.61 6 timer clear

141632.61 6 RunModule PLAY end

141632.61 6 callinfo MONITORMODES

141632.89 0 dial start any summary:|6:hc>0|

141634.81 6 dtmf 1 (66372,49,2)

141634.81 6 ScriptEventCode 49 iLineState=1100

141634.83 6 LsPlayMsg 1

141634.88 6 PlaySoundStop err=0

141634.88 6 rv lg add [Welcome]{1}

141634.88 6 timer clear

141634.88 6 state [Welcome 2] Playing

141634.88 6 state [Welcome 2] Playing (welcome2.wav)

141634.88 6 play set playid=515562

141634.88 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\welcome2.wav]

141634.88 6 timer clear

141634.88 6 RunModule PLAY end

141634.88 6 callinfo MONITORMODES

141635.98 6 dtmf 2 (66372,50,2)

141635.98 6 ScriptEventCode 50 iLineState=1100

141635.98 6 LsPlayMsg 2

141635.98 6 PutStuffOnReturnCallStack(,Wrong Key,,Welcome 2)

141635.98 6 stack idx=1

141636.03 6 PlaySoundStop err=0

141636.03 6 rv lg add [Welcome 2]{2}

141636.03 6 timer clear

141636.05 6 state [Wrong Key] Playing

141636.05 6 state [Wrong Key] Playing (Wrong Key.wav)

141636.05 6 play set playid=516734

141636.05 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\Wrong Key.wav]

141636.05 6 timer clear

141636.05 6 RunModule PLAY end

141636.05 6 callinfo MONITORMODES

141641.84 6 play end current play (playid=516734)

141641.84 6 ScriptEventCode 8001 iLineState=1100

141641.86 6 LsPlayMsg EV_PLAY_FINISHED

141641.86 6 eng set timer EV_TIMEOUT_REPLAYMSG time=5

141641.86 6 timer set 5 EV_TIMEOUT_REPLAYMSG

141646.97 6 dtmf 1 (66372,49,2)

141646.97 6 ScriptEventCode 49 iLineState=1101

141646.97 6 LsPlayMsgFinished 1

141646.97 6 path {1} not found

141647.23 6 timer fired EV_TIMEOUT_REPLAYMSG

141647.23 6 ScriptEventCode 9005 iLineState=1101

141647.23 6 LsPlayMsgFinished EV_TIMEOUT_REPLAYMSG

141647.23 6 state [Wrong Key] Playing (Wrong Key.wav)

141647.23 6 play set playid=527921

141647.23 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\Wrong Key.wav]

141647.23 6 timer clear

141647.23 6 callinfo MONITORMODES

141653.06 6 play end current play (playid=527921)

141653.06 6 ScriptEventCode 8001 iLineState=1100

141653.06 6 LsPlayMsg EV_PLAY_FINISHED

141653.06 6 eng set timer EV_TIMEOUT_REPLAYMSG time=5

141653.08 6 timer set 5 EV_TIMEOUT_REPLAYMSG

141653.23 6 tapi callstate start

141653.23 6 tapi callstate DISCONNECTED 66372 0 0

141653.25 6 ScriptEventCode 9250 iLineState=1101

141653.25 6 LsPlayMsgFinished EV_REMOTEPARTY_DISCONNECT

141653.25 6 rv lg add [Hangup Time]{4/19/2006 2:16:53 PM}

141653.25 6 state Hanging up call...

141653.25 6 RecSoundStop ok

141653.25 6 PlaySoundStop err=0

141653.25 6 timer set 2 EV_TIMEOUT_WAITFORIDLEAFTERLINEDROP

141653.25 6 fnHangupCall end

141653.28 6 devstate NUMCALLS 0 0

141653.30 6 tapi callstate start

141653.30 6 tapi callstate IDLE 66372 0 0

141653.30 6 WorkingMode@Idle=

141653.30 6 timer clear

141653.30 6 timer set 1 EV_TIMEOUT_TIMETOREINITLINE

141653.30 6 tapi Reply (LineEvReply) ok 66338 0

141654.28 6 timer fired EV_TIMEOUT_TIMETOREINITLINE

141654.28 6 ScriptEventCode 9008 iLineState=900

141654.28 6 LsAwaitingCalls EV_TIMEOUT_TIMETOREINITLINE

141654.28 6 ReinitTelephony due to IDLE

141654.28 6 tapic lineDeallocateCall(MainCall:66372) 0

141654.33 6 lineOpen(6)=>

141654.33 6 state Waiting for a call...

141654.33 6 LineHandle=66321

141654.33 6 amchk set AMdet=False in Reinit@idle

141654.33 6 timer set 3 EV_TIMEOUT_ATERIDLE_ALLOWOUT

141654.91 0 dial start any summary:|6:rdy=0|

141657.61 6 timer fired EV_TIMEOUT_ATERIDLE_ALLOWOUT

141657.61 6 ScriptEventCode 9013 iLineState=900

141657.91 0 dial start any summary:|6:idx=0|

Share this post


Link to post

What is the 'replays' value set to in the [Wrong Key] module...? if it is set to 1 or more then that's the number of times the module will play the sound file...

 

The path specified in [Wrong Key] module should be:

 

on {timeout 0} return

 

Read: http://www.voiceguide.com/vghelp/html/Paths.htm

 

It would be quicker if you just post the script which you are using as well...

Share this post


Link to post

Thanks for your help, the gosub/return function is now working!

 

However, we still need help with a second problem. As I have described before, we are using voiceguide for a research study at a university. The participants in the study answer a series of questions using voiceguide. We need participants in this research study to have the option of going back to a previous question. I have attached the script - When we call in and go to module "BDI - question 2", and then press the # Key, which is meant to send them back to module "BDI - question 1", voiceguide hangs up. The trace log is below:

 

151544.50 0 dial start any summary:|6:idx=0|

151609.42 6 devstate NUMCALLS 0 0

151609.44 6 tapi callstate start

151609.44 6 tapi callstate OFFERING 66372 0 4

151609.44 6 rv clear

151609.44 6 Answer the call at 4/20/2006 3:16:09 PM

151609.44 6 lineAnswer(66372) => 66355

151609.45 6 ev Lev_CallerID [2404268959,,0000]

151609.45 6 rv lg add [DNIS]{0000}

151609.47 6 ev Lev_CallerID [2404268959,,0000]

151609.47 6 callinfo CALLEDID

151609.48 6 callinfo ORIGIN

151609.48 6 ring 0

151609.52 0 dial start any summary:|6:hc>0|

151609.98 6 tapi callstate start

151610.00 6 tapi callstate CONNECTED 66372 1 0

151610.00 6 callstate CONNECTED 66372,1,0

151610.00 6 WorkingModeTAPI@Connected=

151610.00 6 WorkingModeScript@Connected=

151610.00 6 Inband detection not enabled

151610.02 6 StartLoadedVgs at 4/20/2006 3:16:10 PM, script interpretor VgMulti v5.2.5026 3

151610.02 6 rv ns add [scriptsPath]{C:\Program Files\VoiceGuide\Scripts\}

151610.02 6 rv ns add [scriptPath]{C:\Program Files\VoiceGuide\Scripts}

151610.02 6 rv lg add [$RV_STARTTIME]{4/20/2006 3:16:10 PM}

151610.03 6 rv lg add [$RV_DEVICEID]{6}

151610.03 6 rv lg add [$RV_CIDNAME]{}

151610.03 6 rv ns add [PathApp]{C:\Program Files\VoiceGuide\}

151610.03 6 rv lg add [$RV_CIDNUMBER]{2404268959}

151610.03 6 rv lg add [$RV_DNIS]{0000}

151610.05 6 rv lg add [DNIS]{0000}

151610.05 6 tapi Reply (LineEvReply) ok 66355 0

151610.06 6 callinfo MONITORMODES

151610.06 6 timer clear

151610.06 6 state [Welcome] Playing

151610.06 6 state [Welcome] Playing (welcome.wav)

151610.06 6 play set playid=490750

151610.11 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\welcome.wav]

151610.13 6 timer clear

151610.13 6 RunModule PLAY end

151610.13 6 callinfo MONITORMODES

151613.92 6 dtmf 1 (66372,49,2)

151613.92 6 ScriptEventCode 49 iLineState=1100

151613.92 6 LsPlayMsg 1

151613.98 6 PlaySoundStop err=0

151613.98 6 rv lg add [Welcome]{1}

151614.02 6 timer clear

151614.02 6 state [Welcome 2] Playing

151614.02 6 state [Welcome 2] Playing (welcome2.wav)

151614.02 6 play set playid=494703

151614.05 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\welcome2.wav]

151614.06 6 timer clear

151614.06 6 RunModule PLAY end

151614.08 6 callinfo MONITORMODES

151616.28 6 dtmf 1 (66372,49,2)

151616.28 6 ScriptEventCode 49 iLineState=1100

151616.30 6 LsPlayMsg 1

151616.36 6 PlaySoundStop err=0

151616.36 6 rv lg add [Welcome 2]{1}

151616.38 6 timer clear

151616.38 6 state [iD] Number Input

151616.38 6 state [iD] Playing (ID.wav)

151616.39 6 play set playid=497078

151616.42 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\ID.wav]

151616.42 6 timer clear

151616.44 6 callinfo MONITORMODES

151621.03 6 dtmf 1 (66372,49,2)

151621.03 6 ScriptEventCode 49 iLineState=1300

151621.05 6 LsGetNbrsPlayWelcMsg 1

151621.11 6 PlaySoundStop err=0

151621.11 6 state [iD] Number Input 1

151621.11 6 path {1} not found

151621.11 6 timer set 5 EV_TIMEOUT_GOTOMODULE

151621.27 6 dtmf 2 (66372,50,2)

151621.28 6 ScriptEventCode 50 iLineState=1301

151621.28 6 LsGetNbrsRxDigits 2

151621.28 6 state [iD] Number Input 12

151621.28 6 path {12} not found

151621.30 6 timer set 5 EV_TIMEOUT_GOTOMODULE

151621.61 6 dtmf 3 (66372,51,2)

151621.61 6 ScriptEventCode 51 iLineState=1301

151621.61 6 LsGetNbrsRxDigits 3

151621.63 6 state [iD] Number Input 123

151621.63 6 path {123} not found

151621.63 6 timer set 5 EV_TIMEOUT_GOTOMODULE

151621.91 6 dtmf 4 (66372,52,2)

151621.91 6 ScriptEventCode 52 iLineState=1301

151621.92 6 LsGetNbrsRxDigits 4

151621.92 6 state [iD] Number Input 1234

151621.92 6 path {1234} not found

151621.92 6 timer set 5 EV_TIMEOUT_GOTOMODULE

151621.94 6 timer clear

151621.94 6 rv lg add [iD]{1234}

151621.94 6 path {1234} not found

151621.94 6 rv ns add [iD_PathTaken]{success}

151621.94 6 timer clear

151621.95 6 state [Parent/Child] Playing

151621.95 6 state [Parent/Child] Playing (Parentchild.wav)

151621.95 6 play set playid=502640

151621.98 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\Parentchild.wav]

151622.00 6 timer clear

151622.00 6 RunModule PLAY end

151622.02 6 callinfo MONITORMODES

151624.89 6 dtmf 1 (66372,49,2)

151624.91 6 ScriptEventCode 49 iLineState=1100

151624.91 6 LsPlayMsg 1

151624.97 6 PlaySoundStop err=0

151624.97 6 rv lg add [Parent/Child]{1}

151624.98 6 timer clear

151625.00 6 state [Parent Instructions] Playing

151625.00 6 state [Parent Instructions] Playing (Parent Instructions.wav)

151625.00 6 play set playid=505687

151625.03 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\Parent Instructions.wav]

151625.03 6 timer clear

151625.05 6 RunModule PLAY end

151625.05 6 callinfo MONITORMODES

151629.03 6 dtmf 1 (66372,49,2)

151629.05 6 ScriptEventCode 49 iLineState=1100

151629.05 6 LsPlayMsg 1

151629.11 6 PlaySoundStop err=0

151629.11 6 rv lg add [Parent Instructions]{1}

151629.13 6 timer clear

151629.13 6 state [Parent example question] Playing

151629.14 6 state [Parent example question] Playing (Parent Example Question.wav)

151629.14 6 play set playid=509828

151629.17 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\Parent Example Question.wav]

151629.17 6 timer clear

151629.19 6 RunModule PLAY end

151629.19 6 callinfo MONITORMODES

151631.25 6 dtmf 1 (66372,49,2)

151631.25 6 ScriptEventCode 49 iLineState=1100

151631.25 6 LsPlayMsg 1

151631.31 6 PlaySoundStop err=0

151631.31 6 rv lg add [Parent example question]{1}

151631.34 6 timer clear

151631.34 6 state [if 1 is answer to example question] Playing

151631.34 6 state [if 1 is answer to example question] Playing (P If 1 is answer to example question.wav)

151631.34 6 play set playid=512031

151631.38 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\P If 1 is answer to example question.wav]

151631.39 6 timer clear

151631.39 6 RunModule PLAY end

151631.41 6 callinfo MONITORMODES

151636.89 6 dtmf 1 (66372,49,2)

151636.89 6 ScriptEventCode 49 iLineState=1100

151636.89 6 LsPlayMsg 1

151636.95 6 PlaySoundStop err=0

151636.95 6 rv lg add [if 1 is answer to example question]{1}

151636.97 6 timer clear

151636.98 6 state [bDI - question 1] Number Input

151636.98 6 state [bDI - question 1] Playing (BDI Q1.wav)

151636.98 6 play set playid=517671

151637.02 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\BDI Q1.wav]

151637.03 6 timer clear

151637.03 6 callinfo MONITORMODES

151640.22 6 dtmf 1 (66372,49,2)

151640.22 6 ScriptEventCode 49 iLineState=1300

151640.23 6 LsGetNbrsPlayWelcMsg 1

151640.30 6 PlaySoundStop err=0

151640.30 6 state [bDI - question 1] Number Input 1

151640.30 6 rv lg add [bDI - question 1]{1}

151640.30 6 rv ns add [bDI - question 1_PathTaken]{1}

151640.31 6 timer clear

151640.33 6 state [bDI - question 2] Number Input

151640.33 6 state [bDI - question 2] Playing (BDI Q2.wav)

151640.33 6 play set playid=521015

151640.36 6 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\BDI Q2.wav]

151640.38 6 timer clear

151640.38 6 callinfo MONITORMODES

151646.27 6 dtmf # (66372,35,2)

151646.27 6 ScriptEventCode 35 iLineState=1300

151646.28 6 LsGetNbrsPlayWelcMsg #

151646.34 6 PlaySoundStop err=0

151646.34 6 rv lg add [bDI - question 2]{}

151646.34 6 rv lg add [Hangup Time]{4/20/2006 3:16:46 PM}

151646.36 6 state Hanging up call... [# in GetNbrsPlayWelc]

151646.36 6 RecSoundStop ok

151646.38 6 PlaySoundStop err=0

151646.38 6 timer set 2 EV_TIMEOUT_WAITFORIDLEAFTERLINEDROP

151646.39 6 fnHangupCall end

151646.42 6 devstate NUMCALLS 0 0

151646.44 6 tapi callstate start

151646.44 6 tapi callstate IDLE 66372 0 0

151646.44 6 WorkingMode@Idle=

151646.45 6 timer clear

151646.45 6 timer set 1 EV_TIMEOUT_TIMETOREINITLINE

151646.47 6 tapi Reply (LineEvReply) ok 66338 0

151647.50 6 timer fired EV_TIMEOUT_TIMETOREINITLINE

151647.50 6 ScriptEventCode 9008 iLineState=900

151647.50 6 LsAwaitingCalls EV_TIMEOUT_TIMETOREINITLINE

151647.50 6 ReinitTelephony due to IDLE

151647.52 6 tapic lineDeallocateCall(MainCall:66372) 0

151647.59 6 lineOpen(6)=>

151647.61 6 state Waiting for a call...

151647.61 6 LineHandle=66321

151647.61 6 amchk set AMdet=False in Reinit@idle

151647.61 6 timer set 3 EV_TIMEOUT_ATERIDLE_ALLOWOUT

151648.52 0 dial start any summary:|6:rdy=0|

151650.91 6 timer fired EV_TIMEOUT_ATERIDLE_ALLOWOUT

151650.91 6 ScriptEventCode 9013 iLineState=900

151651.52 0 dial start any summary:|6:idx=0|

 

And the script is also attached. We really need participants to be able to go back to the previous question.

projectchat.zip

Share this post


Link to post

The module [bDI - question 2] is a 'Get Numbers' module.

 

The # key in 'Get Numbers' is used to indicate "End of Input".

 

Have a read of the Help file's entry covering how that module works: http://www.voiceguide.com/vghelp/html/modGetNumber.htm

 

From http://www.voiceguide.com/vghelp/html/modGetNumber.htm :

Fail Path

 

Taken if the caller has not pressed any number keys at all, ie. caller just presses the "#" key or VoiceGuide times out awaiting first key.

If the 'Fail' path is not defined then the system will hang up the call.

So you really should be using a "Fail" path if you want to intercept a case where just # is pressed.

 

I think a better thing for you to do is to use a "Play" module type for [bDI - question 2], just like you use a Play module type for most other questions you are asking to which the caller only needs to provide a single digit answer.

Share this post


Link to post

We used the "get numbers" module for these questions because we need to store their responses in a database. The "Play" module will not allow us to do that, correct?

 

Caroline

Share this post


Link to post

The entry made in a Play module is saved in a Result Variable associated with that module. You can then use that RV later in a DBQuery module to save the information in a database.

Share this post


Link to post

I use a '*' star-button for repeating prompts. This works for just about all modules, including get-numbers. Just add "on {*} goto [xxx]" to your paths. This allows alternative processing for "failed" or # numbers, because a null-number sometimes is a valid response/input. For example: say you want a credit-card start date: either you get MMYY, or # for none or * to repeat the module. You can then develop a general style of "VUI" (Voice User Interface) where # skips ahead, and * repeats the current module.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×