ktruk Report post Posted 06/28/2007 12:25 AM Hi, I have a problem with the GetNumbers module: I have a simple test script which simply runs the verify VBS and returns either "verify_passed" or "verify_failed", which works okay. (see the VBS in the log snippet below). I have 0 min/max digits set (ie: disabled) I have 2 retries and 8 seconds between retries. The "paths" are set as follows: on {success} goto [DateThankyou] on {fail} goto [DateInvalid] on {timeout 6} goto [DateInvalid] If I enter a number which passes, the "success" path is taken. (okay/expected) If I enter a hash, the "fail" path is taken. (okay/expected) If I make no entry, I get 3 plays of the intro wav and 8 second delays, then the fail path. (okay/expected) If I enter a number which fails validation, then the "failed validation" wav plays. (okay/expected) If I enter a number which fails validation, then the "failed validation" wav plays. Then a good number which passes, then take the success path. (okay/expected) If I make 3 bad entries, I get the fail path taken, BUT as the wav specified in the next module begins to play (R12B1.wav) at: 005546.90 this wav is cut-off before it begins and the 3rd "failed validation" wav plays instead, followed by a hangup. IE: the next module is skipped and ignored. EITHER the 3rd replay of the "failed validation" message should be skipped and the fail-path taken, then whatever happens there should run. OR this 3rd message should play, followed by the module taking the fail-path OR there should be a path for "MaxRetries" which is taken instead. System is WinXP Pro, VG4Tapi v5.2.5058. Can you fix or suggest a work around please? Many thanks. (script attached) 005546.80 11 timer clear 005546.80 11 rv lg add [DateGet]{12345} 005546.80 11 eng run verification 005546.80 11 rv replace start: ['variable length date checking d = "$RV[DateGet]" pindate = "22365" If d = pindate then ok = "verify_passed" 'date good else ok = "verify_failed" 'date bad End if set vg = CreateObject("VoiceGuide.CommandLink") vg.Run_ResultReturn $RV_LineID, ok set vg = nothing ] 005546.80 11 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]{D:\VG\KTRDEV16B\}[ScriptPath]{D:\VG\KTRDEV16B}[$RV_STARTTIME]{28/06/2007 00:55:26}[$RV_DEVICEID]{11}[$RV_CIDNAME]{}[PathApp]{C:\Program Files\VoiceGuide\}[$RV_CIDNUMBER]{20}[$RV_DNIS]{6240}[DNIS]{6240}[DateGet]{12345}[DateGet]{12345}[DateGet]{12345} 005546.80 11 rv replace end: ['variable length date checking d = "12345" pindate = "22365" If d = pindate then ok = "verify_passed" 'date good else ok = "verify_failed" 'date bad End if set vg = CreateObject("VoiceGuide.CommandLink") vg.Run_ResultReturn 11, ok set vg = nothing ] 005546.80 11 eng copy of verification script ran: vbs_11_3_0628005546.vbs 005546.83 11 Run Script waiting. iRunWait=1 (shellid=2392, process=940) 005546.83 11 timer set 1 EV_TIMEOUT_CHECKONSTATE 005546.89 11 cl Run_ResultReturn >>verify_failed<< 005546.89 11 ScriptEventCode 9220 iLineState=1301 005546.89 11 LsGetNbrsRxDigits EV_UNKNOWN_9220 005546.89 11 getnbr EV_MODGETNBRS_VERIFY_FAIL 005546.90 11 getnbr iCurrReplayCount > maxReplayCount 005546.90 11 timer clear 005546.90 11 state [DateInvalid] Playing 005546.90 11 state [DateInvalid] Playing (R12B1.wav) 005546.90 11 play set playid=65453 005546.92 11 PlaySoundStart ok [R12B1.wav] 005546.92 11 timer clear 005546.92 11 RunModule PLAY end 005546.92 11 getnbr lPlayId=65453 005546.92 11 state [DateGet] Playing (PINDATEFAILED.wav) 005546.92 11 play set playid=65468 005546.94 11 PlaySoundStart ok [PINDATEFAILED.wav] 005546.94 11 timer clear 005548.86 11 play end current play (playid=65468) 005548.87 11 ScriptEventCode 8001 iLineState=1300 005548.87 11 LsGetNbrsPlayWelcMsg EV_PLAY_FINISHED 005548.87 11 timer set 10 EV_TIMEOUT_HANGUP 005548.87 11 timer set 1 EV_TIMEOUT_GOTOMODULE 005549.90 11 timer fired EV_TIMEOUT_GOTOMODULE 005549.90 11 ScriptEventCode 9002 iLineState=1301 005549.90 11 LsGetNbrsRxDigits EV_TIMEOUT_GOTOMODULE 005549.90 11 rv lg add [DateInvalid]{} 005549.90 11 rv ns add [DateInvalid_PathTaken]{timeout} 005549.90 11 timer clear 005549.90 11 rv lg add [Hangup Time]{28/06/2007 00:55:49} 005549.90 11 state Hanging up call... [Hangup Module] 005549.90 11 RecSoundStop ok 005549.92 11 PlaySoundStop err=0 005549.92 11 timer set 2 EV_TIMEOUT_WAITFORIDLEAFTERLINEDROP 005549.92 11 fnHangupCall end 005549.92 11 tapi Reply (LineEvReply) ok 66256 0 LineCallState=CONNECTED 005550.08 11 callinfo DEVSPECIFIC 005550.08 11 tapi callstate IDLE 65896 0 0 005550.08 11 WorkingMode@Idle= 005550.08 11 timer clear 005550.08 11 WriteToLogFiles_CurrScriptOnly start 005550.08 WriteToLogFiles_DoWrite start (D:\VG\KTRDEV16BdoDateTest5) 0doDateTest5.vgs Share this post Link to post
ktruk Report post Posted 06/28/2007 12:39 AM ...Oh, and just to be clear, the VBS validation code has been edited down to the basics and is not just doing a number equality check (even if the test code posted is) - so I can't just put the "pindate" in the path list as an explicit "{path}" number. I want to use the VBS code and use the GetNumbers retries counter if it can be made to work. Thanks again. Share this post Link to post
SupportTeam Report post Posted 06/28/2007 07:07 AM We'll have a look at this on the v5.x development system. In the meantime the easiest workaround would be to move the validating VBScript to a separate module, and loop back to the get numbers module [DateGet] if the validation is failed (after playing some announcement). Share this post Link to post
SupportTeam Report post Posted 06/28/2007 06:09 PM Please update the VgMulti.exe file on your system with the one attached to this post (v5.2.5060). This attached version should fix the bug which you have encountered. VgMulti_5.2.5060.zip Share this post Link to post
ktruk Report post Posted 07/02/2007 07:56 PM Whoopee! Another 'issue resolved' successfully! Thank you all. (PS: whats the going rate for software testers these days?) ;-) Share this post Link to post