VoiceGuide IVR Software Main Page
Jump to content

Run Module Not Returning As Expected

Recommended Posts

We have run into an issue where the run module returns a fail when it should return a success. The run module is set to wait for program to finish. The program details are as follows:

 

c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

 

The program simply takes a wav file and converts it to mp3. The sox program being called executes successfully and creates the mp3 file. So we added the result file at the end of the command giving us this:

 

c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > "c:\program files\voiceguide\data\VGRUNRESULT_$RV_LINEID.TXT"

 

 

this results in a timeout. With no VGRUNRESULT being created.

 

We also have a php script that we call like so:

 

c:\php\php.exe c:\voicescripts\it-msg-rpc\vm-ticket-req.php $RV_LINEID

 

this php creates a file named VGRUNRESULT_$RV_LINEID.TXT in voiceguide\data that contains [variable]{12345}. This still results in the timeout path being taken. Why is the run module not returning success?

log.zip

post-22364-0-18968800-1452693703_thumb.png

post-22364-0-76691300-1452693703_thumb.png

Share this post


Link to post

VGRUNRESULT file is something that can optionally be created by the ran program to return information/results back to VoiceGuide afterwards.

It is not however necessary that any information/results be returned to VoiceGuide from a ran program.

Starting the program and then letting the module take the 'fail' path afterwards is fine. The 'fail' path does not necessarily mean that something went wrong with the running of the program, just that no 'results' were returned.

 

 

Trace shows that when sox.exe is called the system is not able to detect that program stopped running, and eventually a timeout path is taken. Not sure why the system would not detect the end of process running.

 

Can you try to run the sox.exe without the redirect ( the '>' ) at the end?

 

ie. make the command line just:

 

c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

 

or:

 

command.com /c c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

 

sox.exe output would not be in format expected by VoiceGuide anyway.

 

(What is the output of c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3

when it is ran from a normal Windows cmd.exe window?)

 

 

The Run Program module does not have to take a 'Success' path afterwards. The Run Program module starts the command line and taking a 'Fail' path afterwards does not mean that the ran program did not function, it just means that the ran program did not return explicit results using either the COM/WCF interfaces or the result file. Also if the outcome of the ran program is not needed immediately by the VoiceGuide script then there is usually not need to make the script wait for that ran program to complete.


155801.697   7   3   1 state [RunThis] Run Program
155801.697   7   3   1       rv    replace start [c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_$RV_LINEID.TXT]
155801.698   7   3   1       rv    replace end   [c:\sox-14-3-2\sox.exe c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_3.TXT]
155801.701   7   3   1       File.Exists(c:\sox-14-3-2\sox.exe) is true
155801.701   7   3   1       running program=[c:\sox-14-3-2\sox.exe], arguments=[c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_3.TXT], windowStyle=Hide, timeout=1
155801.703   7   3   1       ShellExe start [c:\sox-14-3-2\sox.exe][c:\vgtemp\it_msg\1.wav c:\vgtemp\it_msg\1.mp3 > VGRUNRESULT_3.TXT]
155801.706   7   3   1       Run Program waiting... (processHandle=5512, pid=5328)

...

155812.421   4   3   1 timer EV_TIMEOUT_CHECKONSTATE
155812.421   4   3   1       q_scr +     evScriptEvent 9007 EV_TIMEOUT_CHECKONSTATE
155812.421   7   3   1       q_scr run   evScriptEvent sCode=[EV_TIMEOUT_CHECKONSTATE] iActionID=0, crn=0 [0|0|0|0|0][|||||] 00:00:00 max:2|00:00:00.0230023
155812.421   7   3   1       se    EV_TIMEOUT_CHECKONSTATE 9007  0|0|0  || LineState=LS_RUN_WAITTILLFINISHED
155812.421   7   3   1       LsRunWaitTillFinished EV_TIMEOUT_CHECKONSTATE lCode2Str=EV_TIMEOUT_CHECKONSTATE
155812.421   7   3   1       IsProcessRunning sModuleClearScriptProcessWasCalledFrom=TAG_RESERVERD_VoiceGuide_ClearScript_Completed, CurrModuleTitle=RunThis
155812.421   7   3   1       LsRunWaitTillFinished: process still running
155812.426   7   3   1 ERROR v7.4.5614.28656 (16-May-15 14:55:11.73) LsRunWaitTillFinished (timeout) objVbsOrExeProcess.Kill : Process has exited, so the requested information is not available.

Share this post


Link to post

Can you please advise if the Windows 7 installed on this machine is the stock standard version, or whether it is different in any way to the standard Windows 7 install ?

 

Have any changes been made to it afterwards? Has any anti-virus type software been installed on this system?

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
×