VoiceGuide IVR Software Main Page
Jump to content

Recording Problems

Recommended Posts

Please provide ktTel trace excerpt covering between 13:20 and 13:30 (16th June).

We can then see what happened with this recording.

Share this post


Link to post

Most likely the cause here is that you start a VBScript that issues a Play_Stop command just before you start a VBScript that issues a Record_2Lines_Start command, and you do not wait for that first VBScript to return before proceeding to the second VBScript.

 

If VBScripts are started one after another like this they are effectively running in parallel, and there various commands within them will be ran intermixed.

 

In this case looks like script from [sTOP MoH call] was ran after script started in [nagranie rozmowy fa], and the Play_Stop called in [sTOP MoH call] ended the recording started in [nagranie rozmowy fa].

 

The Play_Stop command will stop any Plays or Records currently performed on the line.

 

You should set the VoiceGuideto wait for script in [sTOP MoH call] to complete before proceeding, and use a Run_ResultReturn call in [sTOP MoH call] after calling Play_Stop.

 

The Play_Stop in [nagranie rozmowy fa] script is then unnecessary.

 

 

132445.178  6  13   5 state [sTOP MoH call] type: Script_VBScript, iRunWait=0
132445.194  6  13   5       rv    replace start 
------------------------------
set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop $RV_LINEID
set vg = Nothing
------------------------------
132445.194  6  13   5       rv    replace end   [set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop 13
set vg = Nothing]
132445.194  6  13   5       script will be ran from file: C:\Program Files\VoiceGuide\temp\vbs_13_4.vbs
132445.194  6  13   5       delete existing: C:\Program Files\VoiceGuide\temp\vbs_13_4.vbs
132445.194  6  13   5       current objVbsOrExeProcess=
132445.194  6  13   5       RunVBScriptFile [wscript][C:\Program Files\VoiceGuide\temp\vbs_13_4.vbs][] timeout=60 (vbsPath=C:\Program Files\VoiceGuide\temp), start (new Process)
132445.194  6  13   5       objVbsOrExeProcess.Start call
132445.194  7  22   8       q tel run   cmd_PlayStop
132445.194  6  13   5       RunVBScriptFile just started. Handle=39784, Id=5580, StartTime=2012-07-16 13:24:45, HasExited=False
132445.194 17  13   5 ev    PlayEnd 13 874406
132445.194  6  13   5       VBScript started [C:\Program Files\VoiceGuide\temp\vbs_13_4.vbs], ProcessHandle=[39784], VbsOrExeProcess.WorkingSet=[77824]
132445.194 17  13   5       play  end   id=874406, (old ID) current id=874968
132445.194  6  13   5       RunModule_Script_AfterScriptStarted start
132445.194  6  13   5       Run Script continuing...
132445.194  6  13   5       FindNextVgmTitleInPathList: next module title is=[record with permission]
132445.194  6  13   5 t     timer clear (force=False)
132445.194  6  13   5       RunModule start Evaluate, [record with permission], iModuleIdx=504, previous: vgm=536, vgs=13:13
132445.194  6  13   5 state [record with permission] Evaluate [$RV[permission_to_record]=1]
132445.194  6  13   5       rv    replace start [$RV[permission_to_record]=1]
132445.194  6  13   5       rv    replace end   [1=1]
132445.194  6  13   5       eval[1=1]
132445.194  6  13   5       CreateInstance ScriptControl objSC is: [system.__ComObject]
132445.194  6               d     added record with permission_Input | 1=1 | ( 72 65 63 6f 72 64 20 77 69 74 68 20 70 65 72 6d 69 73 73 69 6f 6e 5f 49 6e 70 75 74 |  31 3d 31 | 175) id=13
132445.194  6               d     added record with permission | True | ( 72 65 63 6f 72 64 20 77 69 74 68 20 70 65 72 6d 69 73 73 69 6f 6e |  54 72 75 65 | 176) id=13
132445.194  6  13   5       Eval Expr result:[True]
132445.194  6  13   5       path {True} found (at offset 3)
132445.194  6  13   5       FindNextVgmTitleInPathList: next module title is=[recorded]
132445.194  6  13   5 t     timer clear (force=False)
132445.194  6  13   5       RunModule start Evaluate, [recorded], iModuleIdx=524, previous: vgm=504, vgs=13:13
132445.194  6  13   5 state [recorded] Evaluate [1]
132445.194  6  13   5       eval[1]
132445.194  7               q tel run   cmd_TsRoute
132445.194  6  13   5       CreateInstance ScriptControl objSC is: [system.__ComObject]
132445.194  6               d     added recorded_Input | 1 | ( 72 65 63 6f 72 64 65 64 5f 49 6e 70 75 74 |  31 | 177) id=13
132445.194  6               d     added recorded | 1 | ( 72 65 63 6f 72 64 65 64 |  31 | 178) id=13
132445.194  6  13   5       creating new (non-global) rv : recorded
132445.194  6               d     updtd recorded | 1 | ( 72 65 63 6f 72 64 65 64 |  31 | 178) id=13
132445.194  6  13   5       Eval Expr result:[1] stored in RV[recorded]
132445.194  6  13   5       path {1} not found
132445.194  6  13   5       matching path not found [1], try boolean paths.
132445.194  6  13   5       ex: ScriptIo.VGMTYPE_EVALEXPR [1] could not be converted to boolean. Take Success path as string non-empty.
132445.194  6  13   5       FindNextVgmTitleInPathList: next module title is=[nagranie rozmowy fa]
132445.194  6  13   5       matching path found (Boolean True)
132445.194  6  13   5 t     timer clear (force=False)
132445.194  6  13   5       RunModule start Run VB Script, [nagranie rozmowy fa], iModuleIdx=497, previous: vgm=524, vgs=13:13
132445.194  6  13   5 state [nagranie rozmowy fa] type: Script_VBScript, iRunWait=0
132445.194  6  13   5       rv    replace start 
------------------------------
set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop $RV[Conf_LineId_1]
strRet = vg.Record_2Lines_Start($RV[Conf_LineId_1], $RV[Conf_LineId_1], $RV[Conf_LineId_2], "C:\callrecord\$RV[session_id].wav", "")
set vg = Nothing
------------------------------
132445.194  6  13   5       rv    replace end   [set vg = CreateObject("vgServices.CommandLink")
vg.Play_Stop 13
strRet = vg.Record_2Lines_Start(13, 13, 22, "C:\callrecord\ID201207161324360.wav", "")
set vg = Nothing]
132445.194  6  13   5       script will be ran from file: C:\Program Files\VoiceGuide\temp\vbs_13_5.vbs
132445.194  6  13   5       delete existing: C:\Program Files\VoiceGuide\temp\vbs_13_5.vbs
132445.194  6  13   5       current objVbsOrExeProcess=
132445.194  6  13   5       RunVBScriptFile [wscript][C:\Program Files\VoiceGuide\temp\vbs_13_5.vbs][] timeout=60 (vbsPath=C:\Program Files\VoiceGuide\temp), start (new Process)
132445.194  6  13   5       objVbsOrExeProcess.Start call
132445.210  6  13   5       RunVBScriptFile just started. Handle=39576, Id=4240, StartTime=2012-07-16 13:24:45, HasExited=False
132445.210  6  13   5       VBScript started [C:\Program Files\VoiceGuide\temp\vbs_13_5.vbs], ProcessHandle=[39576], VbsOrExeProcess.WorkingSet=[77824]
132445.210  6  13   5       RunModule_Script_AfterScriptStarted start
132445.210  6  13   5       Run Script continuing...
132445.210  6  13   5       FindNextVgmTitleInPathList: next module title is=[czy RICOH]
132445.210  6  13   5 t     timer clear (force=False)
132445.210  6  13   5       RunModule start Evaluate, [czy RICOH], iModuleIdx=526, previous: vgm=497, vgs=13:13
132445.210  6  13   5 state [czy RICOH] Evaluate [$RV[iD_projektu]=534]
132445.210  6  13   5       rv    replace start [$RV[iD_projektu]=534]
132445.210  6  13   5       rv    replace end   [543=534]
132445.210  6  13   5       eval[543=534]
132445.210  6  13   5       CreateInstance ScriptControl objSC is: [system.__ComObject]
132445.210  6               d     added czy RICOH_Input | 543=534 | ( 63 7a 79 20 52 49 43 4f 48 5f 49 6e 70 75 74 |  35 34 33 3d 35 33 34 | 179) id=13
132445.210  6               d     added czy RICOH | False | ( 63 7a 79 20 52 49 43 4f 48 |  46 61 6c 73 65 | 180) id=13
132445.210  6  13   5       Eval Expr result:[False]
132445.210  6  13   5       path {False} found (at offset 59)
132445.210  6  13   5       FindNextVgmTitleInPathList: next module title is=[connecting result fa= connected rch]
132445.210  6  13   5 t     timer clear (force=False)
132445.210  6  13   5       RunModule start Database Query, [connecting result fa= connected rch], iModuleIdx=500, previous: vgm=526, vgs=13:13
132445.210  6  13   5 state [connecting result fa= connected rch] DB Query
132445.210  6  13   5       rv    replace start [$RV[connection_string]]
132445.210  6  13   5       rv    replace end   [ODBC; Driver=USER_IDQL Unicode; Server=SERVER_ID; Port=5431; Database=database;UID=USER_ID;PWD=PASSWORD;]
132445.210  6  13   5       rv    replace start 
------------------------------
UPDATE polaczenia_unreached        SET reason='po³¹czono', transfer_achieved=now(),   reaction_time_un=  (    SELECT CEIL(extract(epoch FROM (now()-transfer_start))) from polaczenia_unreached   WHERE session_id='$RV[session_id]'  AND session_id_count='$RV[kolejnosc]')         WHERE session_id='$RV[session_id]' AND session_id_count='$RV[kolejnosc]';              UPDATE infolinia_fa  SET count_connections=count_connections + 1  WHERE id_menu=$RV[iD_FA] AND placowka=$RV[insert_call_order_placowka_$RV[kolejnosc]];                    UPDATE polaczenia  SET transfer_call_timestamp=now(),   effect='skierowano' WHERE session_id='$RV[session_id]';                    UPDATE polaczenia  SET waiting_time=extract(epoch FROM (transfer_call_timestamp-start_transfer))  WHERE session_id='$RV[session_id]'  AND effect='skierowano'
------------------------------
132445.210  6  13   5       db    strDatabaseName=[manager] strDbConnectString=[ODBC; Driver=USER_IDQL Unicode; Server=SERVER_ID; Port=5431; Database=database;UID=USER_ID;PWD=PASSWORD;] sAdoNetFactoriesAvailable=[|System.Data.Odbc|System.Data.OleDb|System.Data.OracleClient|System.Data.SqlClient|System.Data.SQLite|]
132445.210  6  13   5       db    using ado.net ODBC data provider : OdbcConnection/OdbcCommand/etc
132445.210  6  13   5 t     timer set   30 sec : EV_TIMEOUT_HANGUP
132445.210  6  13   5       db    odbc  RunQuery_Odbc [connecting result fa= connected rch], db=[manager], connect=[ Driver=USER_IDQL Unicode; Server=SERVER_ID; Port=5431; Database=database;UID=USER_ID;PWD=PASSWORD;], sql=[uPDATE polaczenia_unreached        SET reason='po³¹czono', transfer_achieved=now(),   reaction_time_un=  (    SELECT CEIL(extract(epoch FROM (now()-transfer_start))) from polaczenia_unreached   WHERE session_id='ID201207161324360'  AND session_id_count='1')         WHERE session_id='ID201207161324360' AND session_id_count='1';              UPDATE infolinia_fa  SET count_connections=count_connections + 1  WHERE id_menu=-543 AND placowka=5234;                    UPDATE polaczenia  SET transfer_call_timestamp=now(),   effect='skierowano' WHERE session_id='ID201207161324360';                    UPDATE polaczenia  SET waiting_time=extract(epoch FROM (transfer_call_timestamp-start_transfer))  WHERE session_id='ID201207161324360'  AND effect='skierowano']
132445.210  6  13   5       db    odbc  thread init (threadpool)
132445.210 28  13   5       db    odbc  connection create call.
132445.210 28  13   5       db    odbc  connection open call.
132445.210  6  13   5       db    odbc  thread started (threadpool)
132445.303 28  13   5       db    odbc  connection open returned.
132445.303 28  13   5       db    odbc  m_strSQL=[uPDATE polaczenia_unreached        SET reason='po³¹czono', transfer_achieved=now(),   reaction_time_un=  (    SELECT CEIL(extract(epoch FROM (now()-transfer_start))) from polaczenia_unreached   WHERE session_id='ID201207161324360'  AND session_id_count='1')         WHERE session_id='ID201207161324360' AND session_id_count='1';              UPDATE infolinia_fa  SET count_connections=count_connections + 1  WHERE id_menu=-543 AND placowka=5234;                    UPDATE polaczenia  SET transfer_call_timestamp=now(),   effect='skierowano' WHERE session_id='ID201207161324360';                    UPDATE polaczenia  SET waiting_time=extract(epoch FROM (transfer_call_timestamp-start_transfer))  WHERE session_id='ID201207161324360'  AND effect='skierowano']


132445.475 20               remoting link constructor activated: vgServices_CommandLink
132445.491 20  13   5 rem   Play_Stop 
132445.491 20  13   5       CallExistsOnLine TRUE crn=290016c
132445.491 20  13   5       q scr add   cmdPlayStop 0 
132445.491  6  13   5       q scr run   cmdPlayStop sCode=[] iActionID=0, crn=0[0|0|0|0|0][|||||]
132445.491  6  13   5       q tel add   cmd_PlayStop [0,0,0,0,0][||||]
132445.491  6  13   5       play  PlaySoundStop ok
132445.491  7  13   5       q tel run   cmd_PlayStop
132445.491 20  13   5 rem   Record_2Lines_Start [13,22,C:\callrecord\ID201207161324360.wav] options=[]
132445.491 20  13   5       CallExistsOnLine TRUE crn=290016c
132445.491 20  13   5       q tel add   cmd_SilenceDetectSet [1000,0,0,0,0][||||]
132445.491 20  13   5       q tel add   cmd_RecTwoLinesStart [13,22,880625,6,0][dxxxB2C1|dtiB1T5|dtiB1T8|C:\callrecord\ID201207161324360.wav|]
132445.491 20  13   5       Record_2Lines_Start [C:\callrecord\ID201207161324360.wav] ok

132445.491 20               remoting link constructor activated: vgServices_CommandLink
132445.506  7  13   5       q tel run   cmd_SilenceDetectSet
132445.506  7  13   5       q tel run   cmd_RecTwoLinesStart
132445.506 17  13   5 ev    PlayEnd 13 874968
132445.506 17  13   5       play  end   id=874968, (current ID)
132445.506 17  13   5       q scr add   evScriptEvent 8001 EV_PLAY_FINISHED
132445.506  6  13   5       q scr run   evScriptEvent sCode=[EV_PLAY_FINISHED] iActionID=0, crn=0[874968|0|0|0|0][|||||]
132445.506  6  13   5       scriptevent EV_PLAY_FINISHED  874968|0|0  ||
132445.506  6  13   5       LsDbQuery EV_PLAY_FINISHED,EV_PLAY_FINISHED


132445.522 20  13   5 rem   Play_Stop 
132445.522 20  13   5       CallExistsOnLine TRUE crn=290016c
132445.522 20  13   5       q scr add   cmdPlayStop 0 
132445.522  6  13   5       q scr run   cmdPlayStop sCode=[] iActionID=0, crn=0[0|0|0|0|0][|||||]
132445.522  6  13   5       q tel add   cmd_PlayStop [0,0,0,0,0][||||]
132445.522  6  13   5       play  PlaySoundStop ok
132445.522  7  13   5       q tel run   cmd_PlayStop
132445.538 17  13   5 ev    Dialogic 130,TDX_RECORD, crn=290016c, 0,0,0,TM_USRSTOP,,
132445.538 17  13   5       q scr add   evScriptEvent 130 TDX_RECORD
132445.538  6  13   5       q scr run   evScriptEvent sCode=[TDX_RECORD] iActionID=0, crn=290016c[0|0|0|0|0][TM_USRSTOP|||||]
132445.538  6  13   5       scriptevent TDX_RECORD  0|0|0  TM_USRSTOP||
132445.538  6  13   5       LsDbQuery EV_UNKNOWN_130,TDX_RECORD
132445.538 17  13   5       q scr add   evScriptEvent 8003 EV_REC_FINISHED
132445.538  6  13   5       q scr run   evScriptEvent sCode=[EV_REC_FINISHED] iActionID=0, crn=0[0|0|0|0|0][|||||]
132445.538  6  13   5       scriptevent EV_REC_FINISHED  0|0|0  ||
132445.538  6  13   5       LsDbQuery EV_REC_FINISHED,EV_REC_FINISHED

Share this post


Link to post

I found probably source of problems. I had problems with hanging up connection like in this case. So You suggest conflict between ending and starting connections in this same time.

I deleted [sTOP MoH call] module (was added to be sure stopping MoH).

After declaring channels for outgoing calls (17-30) recording are correct, but I'm afraid that when more calls will arrived VG problems come back because they reach declared outgoing channel.

To decrease probability of channels in-out conflict I need to start searching first available channel starting latest or order depend on switch configuration.

 

Can You to change declaring outgoing calls channels with ordering?

So declaring 30-15 or 30, 29, 28, 27 ... 15 VG should searching first available channel starting 30 channel as described and next 29, 28, 27 ... 15.

In this case I receive calls from telecomm in order starting from 1 to 30 and VG calling out starting from 30 descending to 15 or other need order.

Share this post


Link to post
I deleted [sTOP MoH call] module (was added to be sure stopping MoH).

Guess that should work as well. (it would depend on rest of your script).

 

 

The other comments on line selection of outgoing calls probably belong in another thread?

Share this post


Link to post

Attached is a 334KB trace vgEngine excerpt.

 

What was the name of the file or the time that we should be looking at?

 

Are you sure that your script is not issuing any Play_Stop API commands that are causing the recording to stop?

Share this post


Link to post

We can see in trace that you have a Play_Stop API call issued after the Record_2Lines_Start API call.

 

Also the Record_2Lines_Start call is made before a current play on line (id=375859) finishes.

 

If you are using Play_Stop to stop plays then you must ensure that play stops before other Plays/Records are started.

 

A suggestion was made in previous post:

You should set the VoiceGuideto wait for script in [sTOP MoH call] to complete before proceeding, and use a Run_ResultReturn call in [sTOP MoH call] after calling Play_Stop.

And the Play_Stop call in the script that calls Record_2Lines_Start should be removed.

 

 

 

 

083626.460 10  20   7 rem   Play_Stop 
083626.460 10  20   7       CallExistsOnLine TRUE crn=280003c
083626.460 10  20   7       q scr add   cmdPlayStop 0 
083626.460  6  20   7       q scr run   cmdPlayStop sCode=[] iActionID=0, crn=0[0|0|0|0|0][|||||] 6|00:00:00.1562500
083626.460  6  20   7       q tel add   cmd_PlayStop [0,0,0,0,0][||||]
083626.460  6  20   7       play  PlaySoundStop ok
083626.460  7  20   7       q tel run   cmd_PlayStop 4|00:00:00.1250000
083626.460 10  20   7 rem   Play_Stop 
083626.460 10  20   7       CallExistsOnLine TRUE crn=280003c
083626.460 10  20   7       q scr add   cmdPlayStop 0 
083626.460  6  20   7       q scr run   cmdPlayStop sCode=[] iActionID=0, crn=0[0|0|0|0|0][|||||] 6|00:00:00.1562500
083626.460  6  20   7       q tel add   cmd_PlayStop [0,0,0,0,0][||||]
083626.460  6  20   7       play  PlaySoundStop ok
083626.460 10  20   7 rem   Record_2Lines_Start [20,65,C:\callrecord\ID201207180834210.wav] options=[]
083626.460 10  20   7       CallExistsOnLine TRUE crn=280003c
083626.460 10  20   7       q tel add   cmd_SilenceDetectSet [1000,0,0,0,0][||||]
083626.460 10  20   7       q tel add   cmd_RecTwoLinesStart [20,65,381593,6,0][dxxxB2C3|dtiB1T7|dtiB1T22|C:\callrecord\ID201207180834210.wav|]
083626.460 10  20   7       Record_2Lines_Start [C:\callrecord\ID201207180834210.wav] ok
083626.460  7  20   7       q tel run   cmd_PlayStop 4|00:00:00.1250000
083626.460  7  20   7       q tel run   cmd_SilenceDetectSet 4|00:00:00.1250000
083626.460  7  20   7       q tel run   cmd_RecTwoLinesStart 4|00:00:00.1250000
083626.475 19  20   7 ev    PlayEnd 20 375859
083626.475 19  20   7       play  end   id=375859, (current ID)
083626.475 19  20   7       q scr add   evScriptEvent 8001 EV_PLAY_FINISHED
083626.475  6  20   7       q scr run   evScriptEvent sCode=[EV_PLAY_FINISHED] iActionID=0, crn=0[375859|0|0|0|0][|||||] 6|00:00:00.1562500
083626.475  6  20   7       scriptevent EV_PLAY_FINISHED  375859|0|0  ||
083626.475  6  20   7       LsDbQuery EV_PLAY_FINISHED,EV_PLAY_FINISHED
083626.522 10               remoting link constructor activated: vgServices_CommandLink
083626.538 10  20   7 rem   Play_Stop 

Share this post


Link to post

After moving Play_Stop from Record_2_Lines to previous VBS module (stopping play before recording) script working properly.

 

Summary hint:

Use separate VBS module to Stop MoH or other previous Play statement before start Record call.

Share this post


Link to post

And to ensure that the Play_Stop API calls completes before other API calls are issued, you should set VoiceGuide to wait for script to complete before proceeding. Use a Run_ResultReturn call after Play_Stop API call to let VoiceGuide progress to next module.

 

The Play/Record/Stop/etc API calls allow you to issue commands directly to Dialogic layer. You must ensure that only one API call is done at a time on a line otherwise Dialogic level errors can result. When using the VoiceGuide modules, VoiceGuide ensures that Dialogic API calls are made correctly, but if you are making those API calls directly yourself you need to ensure that they do not interfere with each other or other calls. The direct API calls should be used sparingly.

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
×