invoso.com Report post Posted 05/21/2013 02:34 PM 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
invoso.com Report post Posted 05/21/2013 04:20 PM 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
SupportTeam Report post Posted 05/22/2013 03:28 AM 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
invoso.com Report post Posted 05/22/2013 06:07 AM 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