VoiceGuide IVR Software Main Page
Jump to content

Mysql Order By / Limit Not Working?

Recommended Posts

I have "order by priority asc LIMIT 1" in my config but it seems to not work? Is this correct below? Should I split the suffix into two lines?

 

<Dialer>

<OutDialQue_ADODB_Provider>MySql.Data.MySqlClient</OutDialQue_ADODB_Provider>

<OutDialQue_Database>MySql</OutDialQue_Database>

<OutDialQue_ConnectString>Database="$DATABASE";Data Source="localhost";User Id="vgdb";Password="vgdb";</OutDialQue_ConnectString>

<OutDialQue_SqlPrefix>SELECT</OutDialQue_SqlPrefix>

<OutDialQue_SqlSuffix>order by priority asc LIMIT 1</OutDialQue_SqlSuffix>

</Dialer>

 

or

 

<OutDialQue_SqlSuffix>LIMIT 1</OutDialQue_SqlSuffix>

<OutDialQue_SqlSuffix>ORDER BY PRIORITY ASC</OutDialQue_SqlSuffix>

Share this post


Link to post

Have just confirmed on our test system that this works fine:

 

<OutDialQue_SqlSuffix>ORDER BY Priority ASC LIMIT 1</OutDialQue_SqlSuffix>

 

MySQL on our test system is 5.0.45, and latest version of VoiceGuide was used (which is currently v7.2.4)

 

What problems have you experienced? Can you post the vgEngine traces capturing the system startup and the attempted call data retrieves?

 

NB. LIMIT 1 is probably redundant in latest versions of v7 as the ADO.NET provider requests to database are made in 'SingeRow' mode anyway. But we still used in as per above and it works fine.

Share this post


Link to post

Can you please edit the VG.INI file and set the VoiceGuide log level to 15 in VG.INI as per below:

 

[Log]

VoiceGuide=15

 

Then restart the VoiceGuide service.

 

Then please post the vgEngine traces showing system startup and a minute or so after startup completes. (we should then be able to see database interactions in vgEngine file)

 

When posting traces/scripts please .ZIP them up and post them as attachments

Share this post


Link to post

Attached are the new logs at level 15.

When I restarted this time, it did make one call that was priority 1 and then did no more. There are about 109 at priority 1 and 7k at priority 5.

Please advise.

1012_ktTts.zip

Share this post


Link to post

Did you insert the call entries into the database yourself or using the VoiceGuide's Outbound Call Loader ?

Share this post


Link to post

Looks like when the call entries were placed in the PortToUse table neither the CallID nor the GUID for the call was specified.

 

From http://www.voiceguide.com/vghelp/source/html/dial_vgdb_external_config.htm :

An alternative approach instead of placing the CallQue.ID in the PortToUse.CallID column would be to use a GUID to link the PortToUse entries to the CallQue entry. Just generate a GUID and write the same GUID into the PortToUse.CallGUID column and into the CallQue.GUID column. A value of -1 can then be placed in the PortToUse.CallID column.

 

CallID in PortToUse table must equal to Call's ID in CallQue table.

 

 

 

 

Looks like you are using a 4 line analog system, so most likely using the PortToUse table is not necessary(?)

 

When loading different campaigns do you set them to dial out on different ports on a per-campaign basis?

If not then you can stop using the PortToUse table altogether.

 

In the VoiceGuide's Config.xml add this entry to the <Dialer> section:

 

<OutDialQue_PortToUse_LinkField>Disable</OutDialQue_PortToUse_LinkField>

 

so your <Dialer> section looks like this:

 

<Dialer>

<OutDialQue_ADODB_Provider>MySql.Data.MySqlClient</OutDialQue_ADODB_Provider>

<OutDialQue_Database>MySql</OutDialQue_Database>

<OutDialQue_ConnectString>Database="$DATABASE";Data Source="localhost";User Id="vgdb";Password="vgdb";</OutDialQue_ConnectString>

<OutDialQue_SqlPrefix>SELECT</OutDialQue_SqlPrefix>

<OutDialQue_SqlSuffix>ORDER BY Priority ASC LIMIT 1</OutDialQue_SqlSuffix>

<OutDialQue_PortToUse_LinkField>Disable</OutDialQue_PortToUse_LinkField>

</Dialer>

 

(you can still stop certain lines from being used for outbound calls using the <AllowDialout> entry in Config.xml's <Channels> section).

Share this post


Link to post
I added them using an xml file and put it in the data directory and let it load.

Can you post a vgEngine trace capturing a xml file being loaded? (about 5-10 entries in xml file would be enough)

 

 

Are you able to do the <OutDialQue_PortToUse_LinkField>Disable</OutDialQue_PortToUse_LinkField> as suggested in previous post?

 

This should get your system working straight away.

Share this post


Link to post

Sorry, totally missed that line.

I added it and now it's dialing the priority calls. I should know in about an hour if it finishes and dials the remaining calls OK.

 

What does this do anyway?

 

<OutDialQue_PortToUse_LinkField>Disable</OutDialQue_PortToUse_LinkField>

Share this post


Link to post
What does this do anyway?

 

<OutDialQue_PortToUse_LinkField>Disable</OutDialQue_PortToUse_LinkField>

It stops VoiceGuide from looking at the PortToUse table.

The PortToUse table can be dropped/deleted altogether if you have <OutDialQue_PortToUse_LinkField> set to Disable.

 

As it looks like you do not need to limit which ports each call can be dialed out on, then you can just set <OutDialQue_PortToUse_LinkField> to Disable to simplify your setup.

Share this post


Link to post

I am considering upgrading from 4 to 24 lines. What if I want to select ports at that time? Is there a way to make it work?

 

Also, another question.

If I get the Dialogic® D/240JCT-1T1, will that work if I get an "old style" T1 or if I get an ISDN PRI? They are both digital? The T1 can be configured analog or digital or is that only if there is a break-out box to make the T1 into analog lines? It sounds like the ISDN PRI will give me the best control and options, but the cost may be too much.

 

Thanks!

Share this post


Link to post
What if I want to select ports at that time?

Once we determine why when you loaded with the XML method the IDs/GUIDs were not matched up between tables then you will be able to turn the PortToUse back on and then set 'allowed ports' on a per-call basis.

Please post a trace which captures the system loading some calls from an XML file.

 

If I get the Dialogic® D/240JCT-1T1, will that work if I get an "old style" T1 or if I get an ISDN PRI?

It will work on 'old style' T1 (Robbed Bit T1), but for outbound systems we recommend using ISDN PRI T1s.

All T1s are digital but you can think of Robbed Bit T1 as just a bunch of analog lines.

 

With ISDN you are guaranteed to know the precise time when the call has been answered. Useful if you want to start the scripts first message playing at precisely the time when receiver is picked up. ISDN also signals immediately when other party hangs up. This lets VoiceGuide hang up the call immediately as well and move onto dialing another number on same channel.

This way the CDRs from VoiceGuide exactly match the CDRs from Telco, letting you easily do CDR matching and call costs auditing.

 

Robbed Bit T1s which use E&M signalling should be able to tell you when remote end has answered and hung up. Best to check with your Telco if their Robbed Bit T1s use E&M signalling and if they correctly relay answer and hangup events notification.

 

If on all outbound calls you do live person vs answering machine discrimination, and do not mind if the system does not find out that call recipient hangs up then maybe a Robbed Bit T1 is sufficient. But keep in mind that your CDRs may show that calls lasted for longer then what the Telco knows they lasted (unless you get a robbed Bit T1 with E&M signalling that correctly relays the answer/hangup events)

Share this post


Link to post

Thanks! You all are the best in support and answering all questions. I will definitely encourage our group to get the T1 PRI to go from 4 analog to 12 or 24 lines!!! Should be worth the ROI.

BTW, I had a suspicion about the GUID's missing. I'll tackle that later when this large call group has finished going out.

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
×