VoiceGuide IVR Software Main Page
Jump to content

Escalation Issues

Recommended Posts

Escalation is very sporadic. Works some times as designed and other times causes VG to hang, requiring the service to be restarted. All from the same test script. She script is being placed into the data directory.

 

On one occasion, the escalation number waited about 8 minutes to be called after the first number did not answer ant the retires were exhausted. On another attempt, it did not even try the escalation number, instead writing “disconnected” into the outdial log table and then hung VG, causing it to be restarted.

 

I just can not get escalation to work consistently and reliable

 

Logs attached

 

 

 

<OutDialEntry>

<PhoneNumber>18187314522</PhoneNumber>

<OnAnswerLive>C:\VGScripts\outbound\SendMessageWav.vgs</OnAnswerLive>

<OnAnswerMachine>retry</OnAnswerMachine>

<RetriesLeft>2</RetriesLeft>

<RetriesDelay>2</RetriesDelay>

<RV>[MessageWav]{1.wav,2.wav,3.wav}</RV>

<Escalation>

<OutDialEntry>

<PhoneNumber>18188470215</PhoneNumber>

<OnAnswerLive>C:\VGScripts\outbound\SendMessageWav.vgs</OnAnswerLive>

<OnAnswerMachine>retry</OnAnswerMachine>

<RetriesLeft>2</RetriesLeft>

<RetriesDelay>2</RetriesDelay>

<RV>[MessageWav]{1.wav,2.wav,3.wav}</RV>

</OutDialEntry>

</Escalation>

</OutDialEntry>

0915_1236_vgEngine.zip

Share this post


Link to post

There seems to be something strange happening on a database level on this system. VoiceGuide is getting some unexpected responses from the database.
We were not able to replicate behaviour on our test systems here.
Looks like you are using a locally installed SQL Server for the outdial database. Which version of SQL Server is used on this system?

Could you please download and install this version which has some more debugging in it: [old link removed]
and after installing this new version change the vgEngine trace level to 15 in VG.INI.
Then restart the VoiceGuide service and load the outdial XML file. Wait till the escallation problem occurs, then .ZIP and and post the trace files here.


---------

The problems here starts occurring when the DataReader object which stores the data returned by the databse in response to an SQL query only contains 3 fields rather then the expected 18 (which the SQL query asked for). From trace it seems that when this problem occurs the DataReader object contains results from another (previously supplied) DataReader object altogether - which is strange as the DataReader objects are created by .ExecuteReader call, and VG's local DataReader pointer assigned the result of 18 field SQL query is different then VG's local DataReader pointer assigned the result of 3 field SQL query. It seems that the .ExecuteReader call is returning the wrong (old) DataReader object...

123104.856 10 dial db do findcall objDbDataReader_Stage2.iFieldCount=3, sTaskTimestamp=123104.856, diff=00:00:00

above error is the main cause of problems in both 0915_1225_vgEngine.txt and 0915_1236_vgEngine.txt.

---------


In 0915_1236_vgEngine.txt we also see another error:

124213.902 10 0 ERROR v7.0.3427.32874 (2009-05-20 17:15:49.74) DbOutDialQue_DeleteID ExecuteNonQuery error. : There is already an open DataReader associated with this Command which must be closed first.

at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at ktlib.vgDb.vgDb_ProviderInvariant.Db_Delete_Entry(Int32 iID, Guid guid)


but this DbCommand object never had a DataReader associated with it. Only ExecuteNonQuery calls have been made against this DbCommand object.

Share this post


Link to post

I installed VoiceGuide_7.1.0_090916.exe and it caused VG to fail. It would start, but only 1 line would show active in the monintor and it would not process calls. I had to rollback to VoiceGuide_7.0.9_090520.exe

 

Jeff

Share this post


Link to post

Could you please post the trace files created by v7.1.0_090916 when it was being started. We can then see what happened on the system.

 

The errors that we found and listed in the previous post are database or database driver related. We have not seen any such errors on our test setup which uses SQL Server as the outdial database.

 

Which version of SQL Server is used on this system?

Share this post


Link to post

logs attached from previous attempt and the dialing attempt

 

we are using ms sql server std edition 2005

Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright © 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

 

Thanks

0922_1000_vgEngine.zip

Share this post


Link to post

The vgEngine traces show that the Config.xml file was not set correctly for the Digital ISDN card.

The Config.xml used was the default one that is installed - for a a 4 port analog card.

 

The config.xml file (and configline.xml file) should be copied from the current VoiceGuide setup in order for the new install to open the ports on the digital card and use those ports to make outbound calls.

Share this post


Link to post

Would the MS SQL Server 2008 Express (the free version) be a suitable replacement for the current 2005 version which is used on this system?

We use SQL Server 2008 Express (Runtime with Advanced Services version) on the couple of SQL Sever based systems in our lab. Changing to SQL Server 2008 Express would make your setup same as our test systems.

 

I repeat that we have experienced no problems with retrieving calls like you describe on any of our test systems.

 

Is .NET 3.5 SP1 installed on this machine?

Which version of Windows is used on this machine?

Share this post


Link to post

SQL server 2005 express is not an option. We have been using sql server 2005 std since VG 6 with no issues

We are using Windows server 2003 SP 2

Share this post


Link to post

I am going over everything with a fine tooth comb and see that the below tables are not in my database BUT are part of the provider specific script. What do they do and are they needed? They appear to be for Voice messages only

 

VmbDistribListMembers

VmbDistribLists

Vmbs

VmMsgs

Share this post


Link to post

The Vm* tables would not not used on your system and can be removed.

 

The two errors found in the trace files and outlined in our post from Sept 16th suggest there is an Database/Driver/ADO.NET level issue here. This is a strange issue and really the next thing we'd be doing when faced with such a situation would be to reformat the HD and reinstall Win+MSSQL+Dialogic+VG.

 

Is there anything else running on this system?

 

Can you advise why is it necessary to use sql server 2005 std rather then the 2008 express?

Share this post


Link to post

2005 std is used because we use other datbase functionality and many stored procedures that are called from web services. We synchronize the databases across networks for reportin. This database is connected to from 5 different servvers to feed data into the outdialque table

 

 

where else culd the dayabase be connecting from. This is a vg6 upfrade

 

Here is by config.xml entry

 

 

<Dialer>

<OutDialQue_ADODB_Provider>System.Data.SqlClient</OutDialQue_ADODB_Provider>

<OutDialQue_Database>VG</OutDialQue_Database>

<OutDialQue_ConnectString>Data Source=localhost;Database=VG;User ID=xxx;Password=xxx;</OutDialQue_ConnectString>

<OutDialQue_SqlPrefix></OutDialQue_SqlPrefix>

<OutDialQue_SqlSuffix></OutDialQue_SqlSuffix>

<OutDialQue_PortToUse_LinkField>GUID</OutDialQue_PortToUse_LinkField>

</Dialer>

Share this post


Link to post

The v7.1.0_090916 has a few changes in it that will better handle the sort of database return data errors that we've seen in logs from Sept 16th.

 

Please install that version and post logs (.ZIPed) from it to let us better see the extent of the incorrect data sets returned from DB/drivers, and confirm how these are handled on your system.

 

Set vgEngine logging to 15 as advised before.

Share this post


Link to post

I think I resolved the escalation issue. I created a database with teh new scripts and used SqlDelta to compared it to my database that was created with the db scripts from the original v7 release. I noticed that several default values of "" were added to most of the columns. I updated my database with teh default values and the escalation started to work

 

BUT another issue

 

When the original number exhausts retries, the escalated nymber is added to the database and called (as it should) BUT when VG tries to delete the original number, the below error is received. It appears that the delete is trying to use an already open datareader. (log attached)

 

Jeff

 

 

 

184619.593 10 0 ERROR v7.0.3427.32874 (2009-05-20 17:15:49.74) DbOutDialQue_DeleteID ExecuteNonQuery error. : There is already an open DataReader associated with this Command which must be closed first.

 

at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)

at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)

at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)

at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

at ktlib.vgDb.vgDb_ProviderInvariant.Db_Delete_Entry(Int32 iID, Guid guid)

0923_1840_vgEngine.zip

Share this post


Link to post

This is the same error as listed in Sept 16th post.

 

Please install v7.1.0_090916 and show logs from this new version (as described in previous post).

 

Note that in v7.1.0_090916 the databases have another field in callque and our porttouse tables - the scheduler field. Please refer to the database create .sql commands in the \system\setup\ directory.

Share this post


Link to post

Upgraded. I see several columns were added , scheduler and user, and user is causing the below error after a call is made. user is a keyword and in sql server and in all commands a column that has the same name as a keyword (user) MUST be enclosed in [ ] i.e [user]. This may be the cause of the error.

 

Log attached

 

 

 

 

230254.421 6 2 1 WriteToLogFiles_DoWrite : log subdirectory exists, strLogFnameLessSuffix=C:\Program Files\VoiceGuide\Scripts\log\test2rv

230254.421 6 2 1 LineState_Reinit_AndReleaseCall: crn=280002f

230254.421 11 ERROR v7.1.3546.33186 (2009-09-16 17:26:13.53) DbProcessQueue_DoQueuedWork_RunCoreSql : Incorrect syntax near the keyword 'User'.

 

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)

at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

at ktlib.vgDb.vgDb_ProviderInvariant.DbProcessQueue_DoQueuedWork_RunCoreSql(Object sender, ProcessingQueueEventArgs`1 args)

230254.421 6 2 1 LineState_Reinit_CleanLineState : begin

0924_2301_vgEngine.zip

Share this post


Link to post

I had to roll back because the error prevented the call from being inserted into CdrOut

Share this post


Link to post

This version has the CDR table fix as well: [old link removed]

Field user is now named: usr

The CDR non-insertion would not affect the performance of escalations being processed or other IVR operation.

The traces supplied did not show any escalation calls. The trace has only one call in it, which was answered by a live person on first outbound call attempt.

Share this post


Link to post

thanks

 

Never got to escalation. I first tried to make the call and saw the error. Since this is a production system, i had to roll back because of the no insert into cdrout and this is critical for call status reports. I will install the fix and try again

 

thanks again

 

jeff

Share this post


Link to post

Escalation now works like a champ. The latest release 7.1.0_090925 fixed all the issues

 

Thanks very much

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
×