VoiceGuide IVR Software Main Page
Jump to content

Loop In Waiting Room With Moh

Recommended Posts

We have problems with MoH playing (waiting room).

We have loop in script and sometimes VG playing MoH sometimes not.

Example of connection is on line 15 in attached log file.

 

In Line Status Monitor we see that prompt is playing when on is displayed : [wait 15 sek] Playing wav ()

 

 

but no when LSM showing: [wait 15 sek] Playing wav (C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav)

 

Where is a problem?

 

 

0521_1610_vgEngine.zip

Share this post


Link to post

I have still problems with loop with MoH.

 

 

I need make some steps in background hide behind MoH. But I can't.

 

I attached example witch should working.

 

I need start Moh make some steps, wait for example 15 seconds (waiting room) and then play prompt or follow to other script, but VG playing MoH

 

In attached example VG playing prompt medivet_podaj_numer.wav displaying PLAY 1 module and waiting til end of prompt and then waiting additional timeout 10 seconds and skiping to next module.

 

We need playing MoH durring all steps (modules) between VBS module including vg.Play_Start till module including vg.Play_Stop. I use empty PLAY module to wait next step (next Agents availability checkout).

 

former VG version has another helpful functionality - stoping play activity when next module was Play module.

loop.zip

Share this post


Link to post

Looks like you are using a VBScript module to start the playing, and then move immediately to some Database Query modules and Evaluate Expression models.

 

Those Database Query modules and Evaluate Expression models complete so fast that the VBScript has not started playing of sound file - and this then confuses VoiceGuide as to what to actually do when the command to play a file is received when script is already in a Play module.

 

Try the following:

 

1. Change the VBScript to:

set vg = CreateObject("vgServices.CommandLink")
vg.Play_Start $RV_LINEID, "C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav"
vg.Run_ResultReturn $RV_LINEID, "success"
set vg = Nothing

and set the "Wait till VBScript completes" option.

 

 

or:

 

2. Try just using a Play module to play the atmospheric.wav - instead of using a VBScript module to just play as sound file...

 

 

 

161642.171 26  44  15 state [play MoH] type: Script_VBScript, iRunWait=0
161642.171 26  44  15       rv    replace start
------------------------------
set vg = CreateObject("vgServices.CommandLink")
vg.Play_Start $RV_LINEID, "C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav"
set vg = Nothing
------------------------------
161642.171 26  44  15       rv    replace end   [set vg = CreateObject("vgServices.CommandLink")
vg.Play_Start 44, "C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav"
set vg = Nothing]
161642.171 26  44  15       script will be ran from file: C:\Program Files\VoiceGuide\temp\vbs_44_2.vbs
161642.171 26  44  15       on hold file: , iModuleIdx=546
161642.171 26  44  15       delete existing: C:\Program Files\VoiceGuide\temp\vbs_44_2.vbs
161642.171 26  44  15       current objVbsOrExeProcess=
161642.171 26  44  15       RunVBScriptFile [wscript][C:\Program Files\VoiceGuide\temp\vbs_44_2.vbs][] timeout=60 (vbsPath=C:\Program Files\VoiceGuide\temp), start (new Process)
161642.171 26  44  15       objVbsOrExeProcess.Start call
161642.187 26  44  15       RunVBScriptFile just started. Handle=44200, Id=4012, StartTime=13-05-21 16:16:42, HasExited=False
161642.187 26  44  15       VBScript started [C:\Program Files\VoiceGuide\temp\vbs_44_2.vbs], ProcessHandle=[44200], VbsOrExeProcess.WorkingSet=[86016]
161642.187 26  44  15       RunModule_Script_AfterScriptStarted start
161642.187 26  44  15       Run Script continuing...
161642.187 26  44  15       FindNextVgmTitleInPathList: next module title is=[db_connect]
161642.187 26  44  15 t     timer clear (force=False)
161642.187 26  44  15       RunModule start Evaluate, [db_connect], iModuleIdx=545, previous: vgm=546, vgs=15:15
161642.187 26  44  15 state [db_connect] Evaluate ["$RV[connection_string]"]
161642.187 26  44  15       rv    replace start ["$RV[connection_string]"]
161642.187 26  44  15       rv    replace end   ["ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;"]
161642.187 26  44  15       eval  [Cstr("ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;")]
161642.187 26  44  15       eval  InvokeMember Eval returned
161642.187 26  44  15       creating new (non-global) rv : db_connect
161642.187 26  44  15       Eval Expr result:[ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;] stored in RV[db_connect]
161642.187 26  44  15       path {ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;} not found
161642.187 26  44  15       matching path not found [ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;], try boolean paths.
161642.187 26  44  15       ex: ScriptIo.VGMTYPE_EVALEXPR [ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;] could not be converted to boolean. Take Success path as string non-empty.
161642.187 26  44  15       FindNextVgmTitleInPathList: next module title is=[kolejkowanie_db]
161642.187 26  44  15       matching path found (Boolean True)
161642.187 26  44  15 t     timer clear (force=False)
161642.187 26  44  15       RunModule start Database Query, [kolejkowanie_db], iModuleIdx=544, previous: vgm=545, vgs=15:15
161642.187 26  44  15 state [kolejkowanie_db] DB Query
161642.187 26  44  15       rv    replace start [$RV[db_connect]]
161642.187 26  44  15       rv    replace end   [ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;]
161642.187 26  44  15       rv    replace start
------------------------------
SELECT (          SELECT COUNT(*) as opened            FROM polaczenia            WHERE call_end is null            AND id_proj=$RV[id_projektu]            AND call_start BETWEEN (now()- interval '2 hour') AND (SELECT call_start FROM polaczenia WHERE session_id='$RV[session_id]')          ) as opened,                    (SELECT COUNT (*) as ilosc_placowek              FROM infolinia_fa INNER JOIN placowki  ON placowki.id=infolinia_fa.placowka            WHERE id_menu=$RV[ID_FA]           AND available=true           AND              (telemarketer IS TRUE                OR   (                  post_days=FALSE                   OR                     (    SELECT available                        FROM post_days                        WHERE  post_id=placowki.id                       AND   day=date_part('dow',timestamp 'now')                        AND from_full<=to_char(timestamp 'now','HH24MISS') AND to_full>=to_char(timestamp 'now','HH24MISS')                  )=TRUE                  )                  )          )    as available_targets,                  (SELECT  (      (        SELECT czas_oczekiwania        FROM infolinia_fa        WHERE id_menu=$RV[ID_FA]        LIMIT 1       )*60  -      (        SELECT ROUND(EXTRACT           (epoch from (SELECT (now() -           (          SELECT call_start          FROM polaczenia          WHERE session_id='$RV[session_id]' ))          )           ))      )  ) as wtei  ) as wait_time_expiries_in
------------------------------
161642.187 26  44  15       db    strDatabaseName=[] strDbConnectString=[ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;] sAdoNetFactoriesAvailable=[|System.Data.Odbc|System.Data.OleDb|System.Data.OracleClient|System.Data.SqlClient|System.Data.SQLite|Npgsql|]
161642.187 26  44  15       db    did not find ado.net data provider :
161642.187 26  44  15       db    PlayOnHoldFile
161642.187 26  44  15       moh file not specified
161642.187 26  44  15       db    using ado.net ODBC data provider : OdbcConnection/OdbcCommand/etc
161642.187 26  44  15       db    odbc  RunQuery_Odbc [kolejkowanie_db], db=[], connect=[ Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database11;UID=user;PWD=pass;], sql=[SELECT (          SELECT COUNT(*) as opened            FROM polaczenia            WHERE call_end is null            AND id_proj=515            AND call_start BETWEEN (now()- interval '2 hour') AND (SELECT call_start FROM polaczenia WHERE session_id='ID201305211616171515')          ) as opened,                    (SELECT COUNT (*) as ilosc_placowek              FROM infolinia_fa INNER JOIN placowki  ON placowki.id=infolinia_fa.placowka            WHERE id_menu=-515           AND available=true           AND              (telemarketer IS TRUE                OR   (                  post_days=FALSE                   OR                     (    SELECT available                        FROM post_days                        WHERE  post_id=placowki.id                       AND   day=date_part('dow',timestamp 'now')                        AND from_full<=to_char(timestamp 'now','HH24MISS') AND to_full>=to_char(timestamp 'now','HH24MISS')                  )=TRUE                  )                  )          )    as available_targets,                  (SELECT  (      (        SELECT czas_oczekiwania        FROM infolinia_fa        WHERE id_menu=-515        LIMIT 1       )*60  -      (        SELECT ROUND(EXTRACT           (epoch from (SELECT (now() -           (          SELECT call_start          FROM polaczenia          WHERE session_id='ID201305211616171515' ))          )           ))      )  ) as wtei  ) as wait_time_expiries_in]
161642.187 26  44  15       db    odbc  thread init (threadpool)
161642.187 29  44  15       db    odbc  connection create call.
161642.187 26  44  15       db    odbc  thread started (threadpool)
161642.187 29  44  15       db    odbc  connection open call.
161642.187 26  44  15 t     timer set   30 sec : EV_TIMEOUT_HANGUP
161642.250 29  44  15       db    odbc  connection open returned.
161642.250 29  44  15       db    odbc  m_strSQL=[SELECT (          SELECT COUNT(*) as opened            FROM polaczenia            WHERE call_end is null            AND id_proj=515            AND call_start BETWEEN (now()- interval '2 hour') AND (SELECT call_start FROM polaczenia WHERE session_id='ID201305211616171515')          ) as opened,                    (SELECT COUNT (*) as ilosc_placowek              FROM infolinia_fa INNER JOIN placowki  ON placowki.id=infolinia_fa.placowka            WHERE id_menu=-515           AND available=true           AND              (telemarketer IS TRUE                OR   (                  post_days=FALSE                   OR                     (    SELECT available                        FROM post_days                        WHERE  post_id=placowki.id                       AND   day=date_part('dow',timestamp 'now')                        AND from_full<=to_char(timestamp 'now','HH24MISS') AND to_full>=to_char(timestamp 'now','HH24MISS')                  )=TRUE                  )                  )          )    as available_targets,                  (SELECT  (      (        SELECT czas_oczekiwania        FROM infolinia_fa        WHERE id_menu=-515        LIMIT 1       )*60  -      (        SELECT ROUND(EXTRACT           (epoch from (SELECT (now() -           (          SELECT call_start          FROM polaczenia          WHERE session_id='ID201305211616171515' ))          )           ))      )  ) as wtei  ) as wait_time_expiries_in]
161642.250 29  44  15       db    odbc  DataAdapter.Fill init.
161642.250 29  44  15       db    odbc  DataAdapter.Fill call.
161642.312  9               remoting link constructor activated: vgServices_CommandLink
161642.312 29  44  15       db    odbc  DataAdapter.Fill returned. tsFillTime=00:00:00.0625000
161642.328 29  44  15       db    read loop iColIdx=0, sBlob_DbColumn=[], strField_Name=[opened]
161642.328 29  44  15       rv    add   start kolejkowanie_db_opened|16
161642.328 29  44  15       rv    add   16
161642.328 29  44  15       rv    add   start kolejkowanie_db_1|16
161642.328 29  44  15       rv    add   16
161642.328 29  44  15       rv    add   start kolejkowanie_db_opened_1|16
161642.328 29  44  15       rv    add   16
161642.328 29  44  15       rv    add   start kolejkowanie_db_1_1|16
161642.328 29  44  15       rv    add   16
161642.328 29  44  15       db    read loop iColIdx=1, sBlob_DbColumn=[], strField_Name=[available_targets]
161642.328 29  44  15       rv    add   start kolejkowanie_db_available_targets|2
161642.328 29  44  15       rv    add   2
161642.328 29  44  15       rv    add   start kolejkowanie_db_2|2
161642.328 29  44  15       rv    add   2
161642.328 29  44  15       rv    add   start kolejkowanie_db_available_targets_1|2
161642.328 29  44  15       rv    add   2
161642.328 29  44  15       rv    add   start kolejkowanie_db_2_1|2
161642.328 29  44  15       rv    add   2
161642.328 29  44  15       db    read loop iColIdx=2, sBlob_DbColumn=[], strField_Name=[wait_time_expiries_in]
161642.328 29  44  15       rv    add   start kolejkowanie_db_wait_time_expiries_in|11976
161642.328 29  44  15       rv    add   11976
161642.328 29  44  15       rv    add   start kolejkowanie_db_3|11976
161642.328 29  44  15       rv    add   11976
161642.328 29  44  15       rv    add   start kolejkowanie_db_wait_time_expiries_in_1|11976
161642.328 29  44  15       rv    add   11976
161642.328 29  44  15       rv    add   start kolejkowanie_db_3_1|11976
161642.328 29  44  15       rv    add   11976
161642.328 29  44  15       rv    add   start kolejkowanie_db_RowCount|1
161642.328 29  44  15       rv    add   1
161642.328 29  44  15       db    completed.  SqlQueryType=READER, RowsCount=1, sRv=
161642.328 29  44  15       db    completed. iRunWait=1, WavPlayWasStarted=0, WavPlayHasNowFinished=0
161642.328 29  44  15       db    completed. iRowsAffected=1
161642.328 29  44  15       FindNextVgmTitleInPathList: next module title is=[jeszcze czekamy]
161642.328 29  44  15       RunModule_AddToTaskQueue [Evaluate,[jeszcze czekamy],543]
161642.328 29  44  15       q scr add   evScriptEvent 9800 CMD_RUN_SAME_MODULE_AGAIN
161642.328  6  44  15       q scr run   evScriptEvent sCode=[CMD_RUN_SAME_MODULE_AGAIN] iActionID=0, crn=0[0|0|0|0|0][|||||] 00:00:00 max:15|00:00:03.7656250
161642.328 29  44  15       db    odbc  query completed.
161642.328  6  44  15       scriptevent CMD_RUN_SAME_MODULE_AGAIN  0|0|0  || LineState=LS_DBQUERY
161642.328  6  44  15 t     timer clear (force=False)
161642.328  6  44  15       RunModule start Evaluate, [jeszcze czekamy], iModuleIdx=543, previous: vgm=543, vgs=15:15
161642.328  6  44  15 state [jeszcze czekamy] Evaluate [$RV[kolejkowanie_db_wait_time_expiries_in_1]>0]
161642.328  6  44  15       rv    replace start [$RV[kolejkowanie_db_wait_time_expiries_in_1]>0]
161642.328  6  44  15       rv    replace end   [11976>0]
161642.328  6  44  15       eval  [11976>0]
161642.328  6  44  15       eval  InvokeMember Eval returned
161642.328  6  44  15       Eval Expr result:[True]
161642.328  6  44  15       path {True} found (at offset 3)
161642.328  6  44  15       FindNextVgmTitleInPathList: next module title is=[dostepni]
161642.328  6  44  15 t     timer clear (force=False)
161642.328  6  44  15       RunModule start Evaluate, [dostepni], iModuleIdx=523, previous: vgm=543, vgs=15:15
161642.328  6  44  15 state [dostepni] Evaluate [$RV[kolejkowanie_db_available_targets_1]<1]
161642.328  6  44  15       rv    replace start [$RV[kolejkowanie_db_available_targets_1]<1]
161642.328  6  44  15       rv    replace end   [2<1]
161642.328  6  44  15       eval  [2<1]
161642.328  6  44  15       eval  InvokeMember Eval returned
161642.328  6  44  15       Eval Expr result:[False]
161642.328  6  44  15       path {False} found (at offset 3)
161642.328  6  44  15       FindNextVgmTitleInPathList: next module title is=[juz_do _obslugi]
161642.328  6  44  15 t     timer clear (force=False)
161642.328  6  44  15       RunModule start Evaluate, [juz_do _obslugi], iModuleIdx=542, previous: vgm=523, vgs=15:15
161642.328  6  44  15 state [juz_do _obslugi] Evaluate [$RV[kolejkowanie_db_opened_1]<=$RV[kolejkowanie_db_available_targets_1]]
161642.328  6  44  15       rv    replace start [$RV[kolejkowanie_db_opened_1]<=$RV[kolejkowanie_db_available_targets_1]]
161642.328  6  44  15       rv    replace end   [16<=2]
161642.328  6  44  15       eval  [16<=2]
161642.328  6  44  15       eval  InvokeMember Eval returned
161642.328  6  44  15       Eval Expr result:[False]
161642.328  6  44  15       path {False} found (at offset 41)
161642.328  6  44  15       FindNextVgmTitleInPathList: next module title is=[wait 15 sek]
161642.328  6  44  15 t     timer clear (force=False)
161642.328  6  44  15       RunModule start Play, [wait 15 sek], iModuleIdx=525, previous: vgm=542, vgs=15:15
161642.328  6  44  15       [wait 15 sek] VGMTYPE_PLAY run start
161642.328  6  44  15       CheckForAnyPlayActionsAndSetkeysIfNecessary no PlayActions, vgmidx=525, strPaths=on {timeout 15} goto [miejsce_w_kolejce]

161642.328  6  44  15       PrepareAndPlayWavAndTts start iModuleIdx=525, iPlayFileIdx=1, bMakeTtsFile=True, sSoundFileIs=
161642.328  6  44  15       PrepareAndPlayWavAndTTS sPlayFile=
161642.328  6  44  15 state [wait 15 sek] Playing wav ()
161642.328  6  44  15       q scr add   evScriptEvent 8001 EV_PLAY_FINISHED
161642.328  6  44  15       q scr run   evScriptEvent sCode=[EV_PLAY_FINISHED] iActionID=0, crn=0[0|0|0|0|0][|||||] 00:00:00 max:15|00:00:03.7656250
161642.328  6  44  15       scriptevent EV_PLAY_FINISHED  0|0|0  || LineState=LS_PLAY_PLAYMSG
161642.328  6  44  15       LsPlayMsg EV_PLAY_FINISHED,EV_PLAY_FINISHED
161642.328  6  44  15       path {EV_PLAY_FINISHED} not found
161642.328  6  44  15       iCurrReplayCount=0, iMaxReplayCount=0
161642.328  6  44  15 t     timer set   10 sec : EV_TIMEOUT_HANGUP
161642.328  6  44  15 t     timer set   15 sec : EV_TIMEOUT_GOTOMODULE
161642.328  9  44  15 rem   Play_Start C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav
161642.328  9  44  15       CallExistsOnLine TRUE crn=2cc03ad
161642.328  9  44  15       q scr add   cmdPlayWavTts 0
161642.328  6  44  15       q scr run   cmdPlayWavTts sCode=[] iActionID=0, crn=0[525|0|0|0|0][C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav|||||] 00:00:00 max:15|00:00:03.7656250
161642.328  6  44  15       PrepareAndPlayWavAndTts start iModuleIdx=525, iPlayFileIdx=0, bMakeTtsFile=True, sSoundFileIs=C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav
161642.328  6  44  15       PrepareAndPlayWavAndTTS sPlayFile=C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav
161642.328  6  44  15 state [wait 15 sek] Playing wav (C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav)
161642.328  6  44  15       FindSoundFile start [C:\Program Files\VoiceGuide\Scripts\manager\moh\atmospheric.wav]
161642.328  6  44  15 t     timer clear (force=False)
161642.328  6  44  15       sound file not played as bDoNotStopMOH set and lPlayId=99
161642.328  6  44  15       q scr add   evScriptEvent 8001 EV_PLAY_FINISHED
161642.328  6  44  15       q scr run   evScriptEvent sCode=[EV_PLAY_FINISHED] iActionID=0, crn=0[0|0|0|0|0][|||||] 00:00:00 max:15|00:00:03.7656250
161642.328  6  44  15       scriptevent EV_PLAY_FINISHED  0|0|0  || LineState=LS_PLAY_PLAYMSGFINISHED
161642.328  6  44  15       LsPlayMsgFinished EV_PLAY_FINISHED,EV_PLAY_FINISHED, [ ], [ ], []
161642.328  6  44  15       path {EV_PLAY_FINISHED} not found
161642.328  6  44  15       iCurrReplayCount=0, iMaxReplayCount=0
161642.328  6  44  15 t     timer set   10 sec : EV_TIMEOUT_HANGUP
161642.328  6  44  15 t     timer set   15 sec : EV_TIMEOUT_GOTOMODULE
161642.671 25  35  12 timer EV_TIMEOUT_CHECKONSTATE

Share this post


Link to post

now it started

 

Idea was to hide tasks or loops behind MoH to find best moment to forwarding call, so only play module isn't right solution.

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
×