VoiceGuide IVR Software Main Page
Jump to content

Detect Moh

Recommended Posts

Hi,

 

in my project I Use sometimes VBS like:

 

set vg = CreateObject("vgServices.CommandLink")
vg.Play_Start $RV_LINEID, "moh.wav"
vg.Run_ResultReturn $RV_LINEID, "success"
set vg = Nothing

Do not wait for VB script to complete.

 

and when I need to stop MOH I use

 

set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop $RV_LINEID
set vg = Nothing
Rem STOP MoH to connect

 

with waiting until script completes.

 

Stopping vg.Play need 1-1,5 second to execute.

Problem is when before no MoH declared and this 1-2 seconds is additional silence period.

 

Solution?

1. How to detect running vg.play to eliminate unnecessary use of vg.play_stop task?

2. can You to change VG to stop current play task (for example: moh) when play module or other play elements (On-Hold sonud in transfer module) is used? Some time ago it was available but no longer.

 

Share this post


Link to post

Stopping play is immediate.

 

The delay in second script would be that no "vg.Run_ResultReturn" was issued, and the module checks for result file and whether that module's script is still running only once every second.

 

If you add vg.Run_ResultReturn then that module will return without this pause.

Share this post


Link to post

Hi,

 

 

What exactly I should to add to achieve suspected effect?

 

vg.Run_ResultReturn $RV_LINEID, "success"

 

or

 

vg.Run_ResultReturn

 

 

each has no suspected result and now process need up to 5 seconds.

 

085826.547 3 28 10 state [sTOP MoH to connect_130] type: Script_VBScript, iRunWait=1
085826.547 3 28 10 rv replace start
------------------------------
set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop $RV_LINEID
set vg = Nothing
vg.Run_ResultReturn $RV_LINEID, "success"
Rem STOP MoH to connect
------------------------------
085826.547 3 28 10 rv replace end [set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop 28
set vg = Nothing
vg.Run_ResultReturn 28, "success"
Rem STOP MoH to connect]
085826.547 3 28 10 script will be ran from file: C:\Program Files (x86)\VoiceGuide\temp\vbs_28_1.vbs
085826.547 3 28 10 on hold file: , iModuleIdx=1214
085826.547 3 28 10 delete existing: C:\Program Files (x86)\VoiceGuide\temp\vbs_28_1.vbs
085826.548 3 28 10 current objVbsOrExeProcess=
085826.548 3 28 10 RunVBScriptFile [wscript][C:\Program Files (x86)\VoiceGuide\temp\vbs_28_1.vbs][] timeout=5 (vbsPath=C:\Program Files (x86)\VoiceGuide\temp), start (new Process)
085826.548 3 28 10 objVbsOrExeProcess.Start call
085826.559 3 28 10 RunVBScriptFile just started. Handle=20368, Id=8120, StartTime=2013-10-17 08:58:26, HasExited=False
085826.560 3 28 10 VBScript started [C:\Program Files (x86)\VoiceGuide\temp\vbs_28_1.vbs], ProcessHandle=[20368], VbsOrExeProcess.WorkingSet=[679936]
085826.560 3 28 10 RunModule_Script_AfterScriptStarted start
085826.560 3 28 10 Run Script waiting. iRunWait=1 (process:20368)
085826.560 3 28 10 t timer set 1 sec : EV_TIMEOUT_CHECKONSTATE
085826.560 3 28 10 moh file not specified

 

...

085830.688 6 28 10 LsRunWaitTillFinished: process still running
085830.688 6 28 10 t timer set 1 sec : EV_TIMEOUT_CHECKONSTATE
085831.731 29 28 10 timer EV_TIMEOUT_CHECKONSTATE
085831.731 29 28 10 q scr add evScriptEvent 9007 EV_TIMEOUT_CHECKONSTATE
085831.731 6 28 10 q scr run evScriptEvent sCode=[EV_TIMEOUT_CHECKONSTATE] iActionID=0, crn=0[0|0|0|0|0][|||||] 00:00:00 max:6|00:00:00.7430425
085831.731 6 28 10 scriptevent EV_TIMEOUT_CHECKONSTATE 0|0|0 || LineState=LS_RUN_WAITTILLFINISHED
085831.731 6 28 10 LsRunWaitTillFinished EV_TIMEOUT_CHECKONSTATE lCode2Str=EV_TIMEOUT_CHECKONSTATE
085831.731 6 28 10 Process.HasExited is false (awaiting process end or COM function call) handle=20368, id=8120, StartTime=2013-10-17 08:58:26
085831.731 6 28 10 .ExitTime returned error.
085831.731 6 28 10 LsRunWaitTillFinished: process still running
085831.731 6 28 10 t timer set 1 sec : EV_TIMEOUT_CHECKONSTATE
085832.776 29 28 10 timer EV_TIMEOUT_CHECKONSTATE
085832.776 29 28 10 q scr add evScriptEvent 9007 EV_TIMEOUT_CHECKONSTATE
085832.776 6 28 10 q scr run evScriptEvent sCode=[EV_TIMEOUT_CHECKONSTATE] iActionID=0, crn=0[0|0|0|0|0][|||||] 00:00:00 max:6|00:00:00.7430425
085832.776 6 28 10 scriptevent EV_TIMEOUT_CHECKONSTATE 0|0|0 || LineState=LS_RUN_WAITTILLFINISHED
085832.776 6 28 10 LsRunWaitTillFinished EV_TIMEOUT_CHECKONSTATE lCode2Str=EV_TIMEOUT_CHECKONSTATE
085832.776 6 28 10 Process.HasExited is false (awaiting process end or COM function call) handle=20368, id=8120, StartTime=2013-10-17 08:58:26
085832.776 6 28 10 .ExitTime returned error.
085832.776 6 28 10 LsRunWaitTillFinished: process still running
085832.776 6 28 10 objVbsOrExeProcess.Kill (timeout) (System.Diagnostics.Process (wscript))
085832.776 6 28 10 FindNextVgmTitleInPathList: next module title is=[czy SMS screening]

 

 

 

 

 

Share this post


Link to post

In the VBScript module you are calling:

 

set vg = Nothing

 

before:

 

vg.Run_ResultReturn $RV_LINEID, "success"

 

 

 

Setting object to 'Nothing' and then using it afterwards is an error.

Share this post


Link to post

still 1 second duration

 

133426.092 13 7 3 state [sTOP MoH to connect last] type: Script_VBScript, iRunWait=1
133426.092 13 7 3 rv replace start
------------------------------
set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop $RV_LINEID
vg.Run_ResultReturn $RV_LINEID, "success"
set vg = Nothing
------------------------------
133426.092 13 7 3 rv replace end [set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop 7
vg.Run_ResultReturn 7, "success"
set vg = Nothing]

...

 

133427.173 6 7 3 FindNextVgmTitleInPathList: next module title is=[update polaczenia telefony first rch]

Share this post


Link to post

Looks like the system is running on a lower-spec hardware.

 

It should not take over half a second to start the running of a VBScript.

 

Have you looked at CPU usage on this system? Is any anti-virus software running on this system?

Share this post


Link to post

Is there anything else running on this system apart from Windows + Dialogic drivers+ VoiceGuide ? Any anti-virus software or other software that could interfere with normal running of external scripts and applications?

 

Is the 30% usage coming from other channels handling calls on this system? How many lines is this system handling?

 

Do you mean that one of the cores is showing 30% and others are close to 0, or is the average across the 4 cores 30% ?

 

Can you advise full system specs. esp. version Windows used on this system and how much RAM does the system have?

Share this post


Link to post

In the just released v7.4.0 the the Play_Stop signal can also be issued from the Evaluate Expression module. Just specify:

 

Play_Stop

 

as the expression to be evaluated and the play stop command will be issued. This should allow you to issue Play_Stop commands without needing to resort to using especially created VBScripts.

 

v7.4.0 can be downloaded here: [old link removed]

 

To upgrade: stop VG service, then run installer and install over the top of existing install.

Share this post


Link to post

Can You describe changes include VG 7.4.0 comparing to previous 7.3.3_130613 version?

 

Is any list of features added to VG as solutions suggested in this forum?

Share this post


Link to post

There were no major features added since 7.3.3_130613. v7.4.0 has a rewrite of lower level ISDN signalling handlers. This was made to handle glare conditions without raising any errors. (Glare conditions occasionally happen on ISDN systems when incoming and outgoing calls are made on same channel at the same time.)

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
×