VoiceGuide IVR Software Main Page
Jump to content

Making Postgres / Postgresql As Dialout Source

Recommended Posts

1. How to configure VG to connect Postgresql database as outbound call source?

 

Dialer configuration for example can look like:

 

<Dialer>

<OutDialQue_ADODB_Provider></OutDialQue_ADODB_Provider>

<OutDialQue_Database>dial_out_source</OutDialQue_Database>

<OutDialQue_ConnectString>ODBC; Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=databasename;UID=user;PWD=password;</OutDialQue_ConnectString>

<OutDialQue_PortToUse_LinkField></OutDialQue_PortToUse_LinkField>

<OutDialQue_SqlPrefix>SELECT</OutDialQue_SqlPrefix>

<OutDialQue_SqlSuffix>LIMIT 1</OutDialQue_SqlSuffix>

</Dialer>

 

(simple changed mysql configuration from VoiceGuide Online Help, I don't know it's working.)

 

 

2. I have no idea how using ADO.NET with postgres. any hints?

Witch additional value have ado.net vs. ODBC?

Share this post


Link to post

I made some steps but without success.

 

in config.xml file:

 

...

</Channels>

</Devices_Dialogic>

 

<Dialer>

<OutDialQue_ADODB_Provider>Devart.Data.PostgreSql</OutDialQue_ADODB_Provider>

<OutDialQue_Database>callque</OutDialQue_Database>

<OutDialQue_ConnectString>Host=IP; Port=5432; Database=db; UserId=user; Password=pass;</OutDialQue_ConnectString>

</Dialer>

 

</VoiceGuideConfig>

 

 

I attached log file.

 

I found dotConnect for PostgreSQL 6.2 Express (free) on dotConnect

 

 

any hints?

1116_1832_vgEngine.zip

Share this post


Link to post

Which version of PostgreSQL are you using?

 

Current versions are 9.X

 

 

 

BTW:

 

on your 60 line system for ports dtiB2T1 and dtiB2T2 it looks like you are assigning voice devices that do not exist. You may need to fix your Config.xml

 

vgEngine trace shows:

 

220211.015  5               ReadXmlInto_zConfigXml_Channels read in: dxxxB8C3| dtiB2T1 C:\Program Files\VoiceGuide\Scripts\Maciej\prepaid_2011_10_14.vgp allowDialout=1

220211.015  5               ReadXmlInto_zConfigXml_Channels read in: dxxxB8C4| dtiB2T2 C:\Program Files\VoiceGuide\Scripts\Maciej\prepaid_2011_10_14.vgp allowDialout=1

 

usually:

dtiB2T1 should use dxxxB9C1

dtiB2T2 should use dxxxB9C2

ans so on.

 

on D300JCT/D600JCT cards you will usually find that dxxxB8C2 is last device on dxxxB8 board and next voice device is dxxxB9C1 - which is on the second D/300JCT (or second span of D/600JCT)

 

You may need to check the ktTel trace and how any calls that arrive on dtiB2T1 and dtiB2T2 behave - most likely those two channels right now do not work due to the way they are configured.

Please start a new thread if you have more questions about dti/dxxx config.

Share this post


Link to post

Please update system to this version of VoiceGuide v7:

[old link removed]

and then use this <Dialer> section on Config.xml:

<Dialer>
<OutDialQue_ADODB_Provider>Npgsql</OutDialQue_ADODB_Provider>
<OutDialQue_Database>vgDb</OutDialQue_Database>
<OutDialQue_ConnectString>Server=10.1.1.36;User Id=postgres;Password=postgres;Database=vgDb;</OutDialQue_ConnectString>
<OutDialQue_SqlPrefix>SELECT</OutDialQue_SqlPrefix>
<OutDialQue_SqlSuffix>LIMIT 1</OutDialQue_SqlSuffix>
<OutDialQue_PortToUse_LinkField></OutDialQue_PortToUse_LinkField>
</Dialer>

ConnectString would need to be modified to suit your system.

v7.3.3 includes the Npgsql .NET Data Adapter for Postgres.

It has been tested as working with Postgres 9.2.1

Share this post


Link to post

vgEngine:

 

 

160718.440 10 ERROR v0.0.0.0 (2012-11-27 23:14:28.22) DoWorkFindCall Stage1_AnyPort.ExecuteReader : syntax error at or near "1"

 

w Devart.Data.PostgreSql.p.e(aa A_0)

w Devart.Data.PostgreSql.aa.ah()

w Devart.Data.PostgreSql.PgSqlCommand.InternalPrepare(Boolean implicitPrepare, Int32 startRecord, Int32 maxRecords)

w Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)

w Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)

w System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)

w ktlib.vgDb.vgDb_ProviderInvariant.DbProcessQueue_DoQueuedWork_FindCall(Object sender, ProcessingQueueEventArgs`1 args)

160718.441 10 dial ex Stage1_AnyPort.ExecuteReader complete

Share this post


Link to post

Please post full vgEngine traces showing system startup and the attempted call.

 

It looks like the <OutDialQue_SqlPrefix> and <OutDialQue_SqlSuffix> have not been set as advised, but we would need to see the full trace to confirm.

 

Please .ZIP up traces before posting.

Share this post


Link to post

Looks like the <OutDialQue_SqlPrefix> and <OutDialQue_SqlSuffix> are now set as advised.

 

A different error can now be seen in the traces:

 

080340.966 10 ERROR v0.0.0.0 (2012-11-27 23:14:28.22) DoWorkFindCall Stage1_AnyPort.ExecuteReader : ERROR: 42P01: relation "porttouse" does not exist

 

Can you please do the following:

 

1. Stop the VoiceGuide service.

2. Delete all 4 tables in the VoiceGuide database on Postgres

3. In VG.INI sectin [Log] set vgEngine=20

4. Start the VoiceGuide service.

5. .ZIP up and post the vgEngine trace caturing the startup and a minute or so afterwards.

Share this post


Link to post

Sorry,

 

I created only one table callque .

 

Which table are necessary for dialout functionality?

Share this post


Link to post

Please follow the 5-step instructions provided above.

 

The tables are created by VoiceGuide automatically.

Share this post


Link to post

Hi,

 

now dialout working, but only with Outbound Call Loader.

 

Thanks a lot!

 

 

I need hint how to insert task to tables without loader (SQL query).

I added record to callque but without success.

 

 

How to connect data between dialout database and script?

or

How to get "guid" data during outbound call to identify task in callque table?

Share this post


Link to post

If you would like to load outgoing calls by inserting entries into the database tables itself (instead of using XML input files or API interface or Outbound Call Loader GUI etc.) then its best for you to use the Outbound Call Loader to load a call into freshly generated tables and then look at what was inserted.

This will let you see what data was inserted into each of the tables.

(To stop VG from making the calls just do not have the VG service running at the time when the calls are inserted)

 

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

 

Read what <OutDialQue_PortToUse_LinkField> options are. It is possible to disable the need to use the PortToUse table using <OutDialQue_PortToUse_LinkField> setting.

 

If PortToUse table is not used then you only need to insert rows into the CallQue table. (but then you lose ability to specify on which ports the outgoing call can be made)

Share this post


Link to post

How to connect data from callque and used dial out script?

 

I need to get data from rv column as $RV using script during outbound call.

Share this post


Link to post

RV data in callque's 'rv' column will be automatically available in the script as Result Variables (RVs).

 

There is no need not make any connections to the database holding the details out queued outgoing calls from within the script.

 

The 'Dialer' component of VoiceGuide does everything.

 

The Dialer component of VoiceGuide takes data of the next call to made, makes the call, starts the scripts, creates the pre-defined RVs, etc.

 

Use the Outbound Call Loader to load a call that includes some RVs with it and then look at what was inserted. This will let you see in what format the RVs are stored in the callque's 'rv' column.

Share this post


Link to post

Hi,

 

 

Thanks! all working properly with data inserted with Call Loader, but VG not answering on tasks inserted with sql query:

 

INSERT INTO callque (

GUID,

PhoneNumber,

campaignname,

rv)

 

VALUES

(

'a0333f1a-8fe0-4472-a68c-2dca62ed4f44',

502131658,

'test',

'[ClientID]{24.wav}'

)

Other data are default.

 

 

 

I compared data inserted and don't see differences in callque table between records, but when i start VG only Load Module (id=38) inserted test running.

 

What I did wrong?

dialout.zip

Share this post


Link to post

Can you post output from database which shows both an entry loaded by VoiceGuide's Outbound Call Loader and an entry loaded by you.

 

ie. output of these two SQL queries:

 

SELECT * FROM callque;

 

and:

 

SELECT * FROM porttouse;

Share this post


Link to post

Are you only populating the callque table, without adding entries to porttouse?

 

Have you disabled the porttouse table in Config.xml?

Share this post


Link to post

Thanks a lot!

 

I not inserted data to porttouse table.

 

Now all working properly.

Share this post


Link to post

version VoiceGuide_7.3.3_121127 is current newest version?

 

on voiceguide.com I see available 7.3.2 version

 

 

Where should I to look for a newest version including all necessary functions?

Share this post


Link to post

VoiceGuide_7.3.3_121127 that was provided in this thread is the version that right now you should be using.

 

The Postgres ADO.NET drivers provided in that version and the changes to VG v7 to let it configure and use PostgreSQL have not yet been merged into main VG v7 distribution that is available for download from the main downloads page.

Share this post


Link to post

What with next updates?

 

Will next versions include the Postgres ADO.NET drivers?

 

What happen when You publish next versions and I update VG?

Share this post


Link to post

When v7.3.3 is made available on the main Downloads page it will include the Postgres ADO.NET drivers and the changes made to VoiceGuide_7.3.3_121127.

Share this post


Link to post

Witch VG version is newest and include the Postgres ADO.NET drivers?

 

Will ADO.NET driver in all next VG versions?

Share this post


Link to post

When v7.3.3 is made available for download from our WWW downloads page it will contain the Postgres ADO.NET drivers.

 

Until that time please use the version provided in this thread.

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
×