VoiceGuide IVR Software Main Page
Jump to content

Problems With Confirm Number Feature

Recommended Posts

I'm having problems with the confirm number feature.

 

When I call the system, and I get to the get_patient_id module it works

fine if I enter a valid patient_id.

 

But If I enter an invalid patient ID (say 2134, and then enter the # sign),

instead of stating that the number is invalid it just reprompts the user.

(it doesn't play not_valid.wav)

 

More importantly, I'm also having trouble with the

get_patient_dob module. Here, if the patient enters only six digits instead of

eight (entering a two digit year instead of a four digit year) the system will

hang up.

 

I've attached my script, and the event log. (I've made the maximum

number length one greater than the acutal maximum number length

so that they always enter # to end the input)

 

There was another person who had problems with the verification process, and it was fixed by updating to a later version:

 

http://voiceguide.com/forums/index.php?sho...ev_unknown_9220

bmc_test.vgs

Share this post


Link to post

Actually, when I ran it this time the get_patient_dob module worked fine.

However, the get_patient_id module did the same thing.

 

At 152316.86 >>verify_failed<< is seen.

 

But the playing of not_valid.wav never occurrs.

 

Actually, in a previous instance what it did the following: played the

not_valid.wav, and then hung up.

 

_ResultReturn $RV_LINEID, sResult

set vg = Nothing

]

152316.77 5 rv ns [PathSysVoice]{C:\Program Files\VoiceGuide\system\voice\}[PathApp]{C:\Program Files\VoiceGuide\}[PathDataVm]{C:\Program Files\VoiceGuide\data\}[PathVgSys]{C:\Program Files\VoiceGuide\system\}[scriptsPath]{C:\Program Files\VoiceGuide\Scripts\bmc_test\}[scriptPath]{C:\Program Files\VoiceGuide\Scripts\bmc_test}[$RV_STARTTIME]{5/17/2005 3:22:59 PM}[$RV_DEVICEID]{5}[$RV_CIDNAME]{}[PathApp]{C:\Program Files\VoiceGuide\}[$RV_CIDNUMBER]{}[welcome]{1}[get_patient_id]{2354}

152316.78 5 eng copy of verification script ran: vbs_5_1.vbs

152316.81 5 Run Script waiting. iRunWait=1 (shellid=1464, process=148)

152316.81 5 timer set 1 EV_TIMEOUT_CHECKONSTATE

152316.86 5 cl Run_ResultReturn >>verify_failed<<

 

 

 

152316.86 5 ScriptEventCode 9220 iLineState=1301

152316.88 5 LsGetNbrsRxDigits EV_UNKNOWN_9220

152316.88 5 eng GetNbr EV_MODGETNBRS_VERIFY_FAIL

152317.81 5 timer fired EV_TIMEOUT_CHECKONSTATE

152317.81 5 ScriptEventCode 9007 iLineState=1300

152317.81 5 LsGetNbrsPlayWelcMsg EV_TIMEOUT_CHECKONSTATE

152324.23 5 dtmf # (65776,35,2)

152324.25 5 ScriptEventCode 35 iLineState=1300

152324.25 5 LsGetNbrsPlayWelcMsg #

152324.27 5 timer set 6 EV_TIMEOUT_ENTERDATA

152324.28 5 PlaySoundStop err=0

152324.28 5 rv add [get_patient_id]{}

152324.30 5 timer clear

152324.30 5 [get_patient_id] Number Input

152324.30 5 [get_patient_id] Playing (full_get_patient_id.wav)

152324.31 5 play set playid=121500

152324.41 5 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\bmc_test\full_get_patient_id.wav]

152324.42 5 timer clear

152324.44 5 wa(5005,12150000)

152324.45 5 callinfo MONITORMODES

152329.47 5 wb(12150000)

152329.59 5 play end current play (playid=121500)

152329.61 5 ScriptEventCode 8001 iLineState=1300

log.txt

Share this post


Link to post

For this run, it hung up after I pressed the pound sign after entering

042680 for the get_patient_dob module.

 

It looks like it may have timed out waiting for data. But it didn't

replay the full_get_patient_dob.wav prompt asking the patient

to reenter the data.

 

153902.81 5 path {042680} not found

153902.81 5 timer set 6 EV_TIMEOUT_ENTERDATA

153904.23 5 dtmf # (66408,35,2)

153904.23 5 ScriptEventCode 35 iLineState=1301

153904.25 5 LsGetNbrsRxDigits #

153904.25 5 timer clear

153904.27 5 rv add [get_patient_dob]{042680}

153904.27 5 eng len(042680 ) min=8, max=9, replays=1

153904.28 5 [get_patient_dob] Playing (not_valid.wav)

153904.28 5 play set playid=61468

153904.38 5 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\bmc_test\not_valid.wav]

153904.39 5 timer clear

153904.41 5 wa(3752,6146800)

153904.41 5 callinfo MONITORMODES

153908.17 5 wb(6146800)

153908.30 5 play end current play (playid=61468)

153908.31 5 ScriptEventCode 8001 iLineState=1300

153908.31 5 LsGetNbrsPlayWelcMsg EV_PLAY_FINISHED

153908.33 5 timer set 10 EV_TIMEOUT_HANGUP

153908.33 5 timer set 6 EV_TIMEOUT_ENTERDATA

153914.80 5 timer fired EV_TIMEOUT_ENTERDATA

153914.80 5 ScriptEventCode 9006 iLineState=1301

153914.80 5 LsGetNbrsRxDigits EV_TIMEOUT_ENTERDATA

153914.81 5 rv add [get_patient_dob]{}

153914.81 5 AddRVns [get_patient_dob_PathTaken]{fail}

153914.83 5 rv add [Hangup Time]{5/17/2005 3:39:14 PM}

153914.83 5 Hanging up call... [No data entered]

153914.86 5 RecSoundStop ok

153914.88 5 PlaySoundStop err=0

153914.88 5 timer set 2 EV_TIMEOUT_WAITFORIDLEAFTERLINEDROP

153914.92 5 fnHangupCall end

153914.97 5 linedevstate 2048 0 0

153914.97 5 callstate IDLE 66408 0 0

153914.98 5 WorkingMode@Idle=

153914.98 5 timer clear

153915.00 5 timer set 1 EV_TIMEOUT_TIMETOREINITLINE

153915.02 5 tapi Reply (LineEvReply) ok 66442 0

153916.02 5 timer fired EV_TIMEOUT_TIMETOREINITLINE

153916.02 5 ScriptEventCode 9008 iLineState=900

153916.03 5 LsAwaitingCalls EV_TIMEOUT_TIMETOREINITLINE

153916.03 5 ReinitTelephony due to IDLE

153916.03 5 tapic lineDeallocateCall(MainCall:66408) 0

153916.20 5 lineOpen(5)=>

153916.22 5 Waiting for a call...

153916.22 5 LineHandle=65554

153916.23 5 timer set 3 EV_TIMEOUT_ATERIDLE_ALLOWOUT

153916.42 0 dial start any summary:|5:rdy=0|

153919.52 5 timer fired EV_TIMEOUT_ATERIDLE_ALLOWOUT

153919.52 5 ScriptEventCode 9013 iLineState=900

153920.42 0 dial start any summary:|5:idx=0|

log2.txt

Share this post


Link to post
But If I enter an invalid patient ID (say 2134, and then enter the # sign),

instead of stating that the number is invalid it just reprompts the user.

(it doesn't play not_valid.wav)

The module [get_patient_id] is setup to accept a max entry of 4 numbers.

After 4 digits are entered the verification script will run.

Pressing # key after the entering of 4 digits just results in terminating the playing sound file which was advising that verification has failed.

 

If the 'max digits' setting is used to determine when caller finished entering data then do not ask caller to press #, and conversely if asking caller to press # then do not set the 'min' and 'max' digits...

 

Its usually best to ask caller to press # and do not set the max value. Do any of these checks in the verification VBScript.

 

It looks like it may have timed out waiting for data. But it didn't

replay the full_get_patient_dob.wav prompt asking the patient

to reenter the data.

Trace shows that not_valid.wav was played:

153904.28 5 [get_patient_dob] Playing (not_valid.wav)

153904.28 5 play set playid=61468

153904.38 5 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\bmc_test\not_valid.wav]

But then no data was entered.

If the sound file which advises caller that entered number failed verification is played then the original prompt will no longer be played - the "failed verification" sound file essentially replaces the main prompt.

Share this post


Link to post

Thanks for your help.

 

On the first two test cases it did fine. But in testing the get_patient_dob

module there was a problem. After the invalid input is entered and the #

sign is pressed it just hangs:

 

9 5 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\bmc_test\full_get_patient_dob.wav]

112717.11 5 timer clear

112717.13 5 wa(17959,35423400)

112717.14 5 callinfo MONITORMODES

112725.02 5 dtmf 0 (65725,48,2)

112725.02 5 ScriptEventCode 48 iLineState=1300

112725.03 5 LsGetNbrsPlayWelcMsg 0

112725.11 5 PlaySoundStop err=0

112725.11 5 [get_patient_dob] Number Input 0

112725.13 5 path {0} not found

112725.13 5 timer set 6 EV_TIMEOUT_ENTERDATA

112725.36 5 dtmf 4 (65725,52,2)

112725.38 5 ScriptEventCode 52 iLineState=1301

112725.38 5 LsGetNbrsRxDigits 4

112725.38 5 [get_patient_dob] Number Input 04

112725.39 5 path {04} not found

112725.39 5 timer set 6 EV_TIMEOUT_ENTERDATA

112725.97 5 dtmf 2 (65725,50,2)

112725.98 5 ScriptEventCode 50 iLineState=1301

112725.98 5 LsGetNbrsRxDigits 2

112725.98 5 [get_patient_dob] Number Input 042

112726.00 5 path {042} not found

112726.00 5 timer set 6 EV_TIMEOUT_ENTERDATA

112726.52 5 dtmf 6 (65725,54,2)

112726.52 5 ScriptEventCode 54 iLineState=1301

112726.53 5 LsGetNbrsRxDigits 6

112726.53 5 [get_patient_dob] Number Input 0426

112726.53 5 path {0426} not found

112726.55 5 timer set 6 EV_TIMEOUT_ENTERDATA

112727.61 5 dtmf 8 (65725,56,2)

112727.61 5 ScriptEventCode 56 iLineState=1301

112727.63 5 LsGetNbrsRxDigits 8

112727.63 5 [get_patient_dob] Number Input 04268

112727.63 5 path {04268} not found

112727.64 5 timer set 6 EV_TIMEOUT_ENTERDATA

112728.23 5 dtmf 0 (65725,48,2)

112728.23 5 ScriptEventCode 48 iLineState=1301

112728.23 5 LsGetNbrsRxDigits 0

112728.25 5 [get_patient_dob] Number Input 042680

112728.25 5 path {042680} not found

112728.27 5 timer set 6 EV_TIMEOUT_ENTERDATA

112729.81 5 dtmf # (65725,35,2)

112729.81 5 ScriptEventCode 35 iLineState=1301

112729.83 5 LsGetNbrsRxDigits #

112729.83 5 timer clear

112729.84 5 rv add [get_patient_dob]{042680}

112729.84 5 eng run verification

112729.84 5 rv replace start (strlen>500)

112729.86 5 rv ns [PathSysVoice]{C:\Program Files\VoiceGuide\system\voice\}[PathApp]{C:\Program Files\VoiceGuide\}[PathDataVm]{C:\Program Files\VoiceGuide\data\}[PathVgSys]{C:\Program Files\VoiceGuide\system\}[scriptsPath]{C:\Program Files\VoiceGuide\Scripts\bmc_test\}[scriptPath]{C:\Program Files\VoiceGuide\Scripts\bmc_test}[$RV_STARTTIME]{5/18/2005 11:26:52 AM}[$RV_DEVICEID]{5}[$RV_CIDNAME]{}[PathApp]{C:\Program Files\VoiceGuide\}[$RV_CIDNUMBER]{}[welcome]{1}[get_patient_id]{7}[get_patient_name]{C:\Program Files\VoiceGuide\Scripts\bmc_test\7_name.wav}[get_patient_name_RecLen100ms]{26}[get_patient_name_EndRecCause]

#}[get_patient_dob]{042680}

112729.88 5 eng copy of verification script ran: vbs_5_2.vbs

112729.91 5 Run Script waiting. iRunWait=1 (shellid=2112, process=2252)

112729.91 5 timer set 1 EV_TIMEOUT_CHECKONSTATE

112729.95 5 cl Run_ResultReturn >>verify_failed<<

112729.95 5 ScriptEventCode 9220 iLineState=1301

112729.97 5 LsGetNbrsRxDigits EV_UNKNOWN_9220

112729.97 5 eng GetNbr EV_MODGETNBRS_VERIFY_FAIL

112730.91 5 timer fired EV_TIMEOUT_CHECKONSTATE

112730.91 5 ScriptEventCode 9007 iLineState=1300

112730.91 5 LsGetNbrsPlayWelcMsg EV_TIMEOUT_CHECKONSTATE

 

 

About 20 seconds later I pushed the # sign, and it replayed

the original prompt: full_get_patient_dob.wav

 

112754.80 5 dtmf # (65725,35,2)

112754.81 5 ScriptEventCode 35 iLineState=1300

112754.81 5 LsGetNbrsPlayWelcMsg #

112754.81 5 timer set 6 EV_TIMEOUT_ENTERDATA

112754.84 5 PlaySoundStop err=0

112754.84 5 rv add [get_patient_dob]{}

112754.86 5 timer clear

112754.86 5 [get_patient_dob] Number Input

112754.86 5 [get_patient_dob] Playing (full_get_patient_dob.wav)

112754.88 5 play set playid=392125

112754.97 5 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\bmc_test\full_get_patient_dob.wav]

112754.97 5 timer clear

112755.00 5 wa(17959,39212500)

112755.00 5 callinfo MONITORMODES

 

What is EV_UNKNOWN_9220 ? When I did a forum search for this error message

I got the post from the guy who needed a newer version.

 

http://voiceguide.com/forums/index.php?sho...ev_unknown_9220

Share this post


Link to post

For another prompt it worked:

 

122030.83 5 eng copy of verification script ran: vbs_5_12.vbs

122030.86 5 Run Script waiting. iRunWait=1 (shellid=1628, process=1552)

122030.88 5 timer set 1 EV_TIMEOUT_CHECKONSTATE

122030.92 5 cl Run_ResultReturn >>verify_failed<<

122030.92 5 ScriptEventCode 9220 iLineState=1301

122030.94 5 LsGetNbrsRxDigits EV_UNKNOWN_9220

122030.94 5 eng GetNbr EV_MODGETNBRS_VERIFY_FAIL

122030.95 5 [get_hrs_sleep] Playing (not_valid.wav, full_get_hrs_sleep.wav)

122030.95 5 play set playid=548203

122031.11 5 PlaySoundStart ok [C:\Program Files\VoiceGuide\Scripts\bmc_test\not_valid.wav,C:\Program Files\VoiceGuide\Scripts\bmc_test\full_get_hrs_sleep.wav]

122031.13 5 timer clear

122031.14 5 wa(11262,54820301)

122031.14 5 callinfo MONITORMODES

122042.48 5 play end current play (playid=548203)

122042.48 5 ScriptEventCode 8001 iLineState=1300

 

It looks like previously the timer EV_TIMEOUT_CHECKONSTATE fired improperly. This put it into the state EV_TIMEOUT_CHECKONSTATE when it should have

started playing the error message files.

 

112729.97 5 LsGetNbrsRxDigits EV_UNKNOWN_9220

112729.97 5 eng GetNbr EV_MODGETNBRS_VERIFY_FAIL

112730.91 5 timer fired EV_TIMEOUT_CHECKONSTATE

112730.91 5 ScriptEventCode 9007 iLineState=1300

112730.91 5 LsGetNbrsPlayWelcMsg EV_TIMEOUT_CHECKONSTATE

 

After EV_MODGETNBRS_VERIFY_FAIL it should start playing the error

messages.

 

That timer (EV_TIMEOUT_CHECKONSTATE) is used to monitor the execution

of the verification script and stop it if it is taking too long?

Share this post


Link to post

Please update your system to v5.2.4 and try running the scripts again.

I think v5.2.4 fixes the bug that you have encountered here.

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
×