VoiceGuide IVR Software Main Page
Jump to content

Setting Up voice call in one server and pickup call data in another

Recommended Posts

CREATE TABLE callque

                     

ID SERIAL PRIMARY KEY, 

                     

GUID UUID,

                     

PhoneNumber VARCHAR(100) DEFAULT '',

This is the phone to call 

               

PhoneNumberPrefix VARCHAR(100) DEFAULT '',

                     

ActivateTime DATE, 

                     

AnswerTimeout Int DEFAULT 40,

                     

CampaignName VARCHAR(100) DEFAULT '',

                     

Scheduler Int DEFAULT 0,

                     

Priority Int DEFAULT 10,

                     

OnAnswerLive VARCHAR(1000) DEFAULT '',

Message  to be used for text to voice:

             

OnAnswerMachine VARCHAR(1000) DEFAULT '',

same

                   

OnAnswerFax VARCHAR(1000) DEFAULT '',

                     

OnNotAnswered VARCHAR(1000) DEFAULT '',

                     

OnRetriesExhausted VARCHAR(1000) DEFAULT '',

                     

RetriesLeft Int DEFAULT 2,

3

                   

RetriesDelay Int DEFAULT 5,

                     

RV VARCHAR(4000) DEFAULT '',

                     

TimeStart_Mon Int DEFAULT 1,

                     

TimeStop_Mon Int DEFAULT 2359,

                     

TimeStart_Tue Int DEFAULT 1,

                     

TimeStop_Tue Int DEFAULT 2359,

                     

TimeStart_Wed Int DEFAULT 1,

                     

TimeStop_Wed Int DEFAULT 2359,

                     

TimeStart_Thu Int DEFAULT 1,

                     

TimeStop_Thu Int DEFAULT 2359,

                     

TimeStart_Fri Int DEFAULT 1,

                     

TimeStop_Fri Int DEFAULT 2359,

                     

TimeStart_Sat Int DEFAULT 1,

                     

TimeStop_Sat Int DEFAULT 2359,

                     

TimeStart_Sun Int DEFAULT 1,

                     

TimeStop_Sun Int DEFAULT 2359,

                     

CallOptions VARCHAR(4000) DEFAULT '',

                     

EscalationCalls VARCHAR(4000) DEFAULT ''

                     

Spanish of English  (S/E)

To determine what voice to use  E= English  Voice   S=Spanish Voice

       

Called (Y/N)

N = When we sent it to the que , Y= You change when the call is made 

       

Copied Y/N)

Updated by us 

                 

Call Status =

No answer, Done, Answewering machine etc.

I did not see a field for status

(Updated By You)

 

Invoice_Number 

Updated by us 

                 

Company ID 

Updated by us 

                 

Branch

Updated by us 

                 

User Created 

Updated by us 

                 

Customer ID

Updated by us 

                 
                       

 

.A) So this is the table we will create in our application server. (From here you will pick up data make the call and then update the record)

       VoiceGuide we plan to setup in another 

Any Comment :

 

 

.B) From Our Fields, we need Called updated to "Y" when the call is made 

Any Comment :

 

 

.C) Spanish or English is to determine what voice language to use.     E for English language, and S for Spanish language. 

Any Comment :

 

.E) For Cepstral Text to voice, what do I have to buy license-wise?    I want one voice for  Spanish messages and one for English messages 

Any Comment :

 

I have never seen this situation Im trying to set this system up. They are the ones doing the installation. They sent me to a forum. Can anyone answer these questions?  In my system, I am planning to have a table where we send all calls to it  and have a voice guide in a different server pick up the data from our data server. They then will update the data table with the status of the calls..Is the top table the one I should have in my data server .. so it can work?

\

 

 

Share this post


Link to post

The table structure looks to be based of VoiceGuide "OutDial" database, so VoiceGuide would be able to read in the calls inserted into this table and make those outgoing calls.

Setting up VoiceGuide Dialer to connect to this table would be done as per instructions provided here: https://www.voiceguide.com/vghelp/source/html/dial_vgdb_external_config.htm

When a call is made, VoiceGuide by default updates the CallTrack table, and insets record into the CDR tables. It may be a good idea for you first just use VoiceGuide with it's default database (SQLite) and make a few outgoing calls and see how the CallTrack table and other tables in that default database get updated.

Most likely you will find that the data that you want the system to save is already saved by default in the CallTrack table.

If you would like VoiceGuide to update this  "Called" field in your own table then this can be done from the VoiceGuide callflow using a 'Database Query' type module: https://www.voiceguide.com/vghelp/source/html/moddbquery.htm - note that callflows only run when calls are answered. If you need this custom field updated even then the number did not answer then you can use the sOnRetriesExhausted option/field to set the .VBS (VBScript) to run when call retries were exhausted and set your field from that VBScript.

We would recommend not using this custom "Called" field, but retrieving call outcome data from the CallTrack table.

 

Similar for the "Call Status" field. That field is already on the CallTrack table, and details of how the all is progressing can be just retrieved from that table.
 

Regarding the "Spanish or English" field:

It's best to not have this "Spanish or English" field. Instead insert a "Result Variable" indicating your selection into the "RV" field. Then the callflow will be able to use that Result  Variable to decide which language to use in the callflow. eg. insert:

[Language]{S} 

or

[Language]{E} 

And the callflow will the use the value that is now in $RV[Language] to decide which language to use.

And it may be even simpler to just create two callflows - one for Spanish and one for English, and just specify which one is to be used on the call at the time of loading the call.

 

Probably best approach is to just load your outgoing calls into VoiceGuide using the "Out Dial File" approach and then just monitor the call progress by checking the CallTrack table.

Any of your own Invoice_Number, Company_ID, Branch, Created, Customer_ID, Call_ID etc. can be loaded into the call record by setting the Result Variables associated with that call, and/or just stored in a totally separate table.

 

For purchasing Cepstral TTS please see: https://www.cepstral.com/store/telephony-server-windows

Share this post


Link to post

Hi, For cepstral, if I have 20 CHannels, do I have to buy 20 Licenses for the system?  I remember when we were running voiceguide years ago we only kept one

file in our server. It's critical that we keep our fields to pull the data. Your company will be the one doing the installation.. So you can set it up where we can use this one file and you can update the fields that we need . we can remove the Spanish and English fields and use the RV field. That's fine..  

Share this post


Link to post

When using SQLite the database file is only one file regardless of how many tables you have in that database. Are you using SQLite or will you be using some other database type to hold these outgoing calls?

If you want to keep track of Call Status (when it was dialed, outcome of that dial etc) then the CallTrack table is the best place for it. Pretty sure you will not be able to get VoiceGuide software to put that call status information in some other custom table like you suggest. Software is hardcoded to save that in CallTrack.

 

You need to check with Cepstral as to what their licensing states. How heavy is the TTS usage in your callflow? Are you able to perhaps just record  series of prompts using some other TTS generator and use those pre-recorded prompts -and just concatenating them as needed? Or do you need to read out text that changes form call to call?

Share this post


Link to post

 

We have 2 servers: the data \ SAAS application server and the voice guide server. In the data server, we use PostgreSQL. So we plan to have a table in our server called voice guide in PostgreSQL  and have the voice call server pick up the data, make the call, and update that Postgresql table. We work from there. 

 

For the Licence, yes, each call is different because we have balances of customers. So what do you think

Share this post


Link to post

Loading calls direct into VoiceGuide's own internal backend databases does not just involve loading calls into the "callque" table. It involves loading corresponding entries into the "calltrack" table and into the "porttouse" tables (use of the "porttouse" table can be disabled however in VoiceGuide's Config.xml).

Also please note that the "callque" table only stores those calls that still need to be dialed. VoiceGuide deletes entries in the "callque" table as soon as the call is answered. Once all the outgoing calls have been dialed and have been answered, the "callque" table is empty.

It's the "calltrack" table that needs to be queried if you want to check on call progress. The "calltrack" table entries are the ones that remain as the record of what calls were queued to be made, and the outcome of call attempts. And when call is answered and the IVR callflow is ran you can then call "Database Query" or "Call Web Service" or "Run Program" or "Run JavaScript/VBscript" modules from that IVR callfow itself to make your own updates as to how the outgoing call is progressing. Otherwise you can retrieve progress of each call attempt from the "calltrack" tables "Outcome", "OutcomeData" and "History" columns.

If you want to successfully load database entries direct into VoiceGuide's backend databases, and have VoiceGuide correctly react when it detects new entries in the callque table, then you should first familiarize yourself with how VoiceGuide itself loads entries into those back-end databases. This can be done by loading some calls using VoiceGuide's Outbound Call Loader app, and examining what entries VoiceGuide has created in it's various backend database tables.

-

The simplest way to automate the loading of new calls is by just uploading a file with all the call related information. This is the "OutDial file" method. Have you considered using that approach? Please see here for more information: https://www.voiceguide.com/vghelp/source/html/outbound-ivr-dialer-introduction.htm#outdialfile

-

Any custom call related information can be attached as Result Variables loaded for that call, or by having a structured naming approach when specifying the CampaignName.

Note that the CallTrack table also has the following fields: ContactName, ContactData1, ContactData2 (as well as CampaignName). These fields can be used to store your invoice/customer/company/branch - or at the very least store an identifier that you can use to retrieve that information from another (your own) table. These fields can be supplied to be set in CallTrack table when calls are loaded using the "OutDial file" method. (Using the "Number|Name|Data1|Data2" notation when specifying the number to dial).

-

VoiceGuide backend database table structures can be seen in the .SQL files in this directory: "C:\Program Files (x86)\VoiceGuide\System\setup\". The .SQL files there show how these tables are created.

 

Regarding TTS:

Is the balance the only thing that is different on each call? You do not necessarily need TTS for that. You can just use the "Say Number" module which plays out the amounts etc by concatenating pre-recorded sound file snippets. See: https://www.voiceguide.com/vghelp/source/html/modsaynumber.htm

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
×