Database Systems Corp.
Home  |   Contact Us  |   About Us  |   Sign Up  |   FAQ

predictive dialers and crm software
computer telephony software predictive dialer

Automatic Call Distribution
Predictive Dialer
Business Phone Systems
T1 Line Service
T1 Line IVR Phone Systems
Digital Service
VRU Voice Response Unit
Auto Attendant Software
Call Answering Service

predictive dialers and crm software
Information

Interactive Voice Response
Toll Free Services
T1 Line Phone Service
IVR Systems
Toll Free Phone Service
IVR Software
Open IVR Solutions
IVR Services
Voice Response Unit
IVR Design Program
ACD Systems
IVR Hosting Service
IVR Outsourcing
Phone Answering Service
Inbound Telemarketing


IVR systems interactive voice response

IVR Interactive Voice Response

This section of our technical library presents information and documentation relating to IVR and interactive voice response software as well as automatic call answering solutions. Business phone systems and toll free answering systems (generally 800 numbers and their equivalent) are very popular for service and sales organizations, allowing customers and prospects to call your organization anywhere in the country. Our PACER and Wizard IVR systems add another dimension to our call center phone system solutions. An Interactive Voice Response (IVR) processes inbound phone calls, plays recorded messages including information extracted from databases and the internet, and potentially routes calls to either in-house service agents or transfers the caller to an outside extension.

Using IVR Report Server Client API

Account Data

 

struct IrsApiAccountDataResponse{ // IRS_RT_ACCOUNTDATA

    int  filetype;  // e.g., IRSAPI_FT_DNII

    int  operation; // e.g., IRSAPI_OP_FIRSTRECORD

    char data[233];

};

 

There are four (4) files in the Accounts data area, and eight (8) types of record data returns.  The IrsApiAccountDataResponse.filetype will indicate which of the data record types have been returned (or have generated an error).

 

File Types

 

#define IRSAPI_FT_IVRPHONES        0

#define IRSAPI_FT_DNII             1

#define IRSAPI_FT_ACCOUNTS         2

#define IRSAPI_FT_FULLACCOUNT      3

#define IRSAPI_FT_USERS            4

#define IRSAPI_FT_SCRIPTS          5

#define IRSAPI_FT_FULLSCRIPTS      6

 

(Note: bytes lengths below do not indicate the null terminator – e.g. 16 bytes use 17 bytes of storage).

 

IRSAPI_FT_IVRPHONES – The structure is responding to a request for a list of IVR Phone numbers that have been assigned in the Accounts database (from the ivr_scripts file, 16 bytes).

IRSAPI_FT_DNII – Request for entries from the ivr_dnis file, 20 bytes.

IRSAPI_FT_ACCOUNTS – Request for a list of active account numbers (from ivr_accounts, 10 bytes);

IRSAPI_FT_FULLACCOUNT – Request for a full account record from the ivr_accounts file.  Returned in two parts (see IRSAPI_OP_RECORD2, below), 232 bytes and 156 bytes, respectively (second half is prepended with the account number for identification).

IRSAPI_FT_USERS – Request for full users records (ivr_users, 55 bytes).

IRSAPI_FT_SCRIPTS – Requested script data for a given account number (ivr_scripts, account, dnis and script name only, 30 bytes).

IRSAPI_FT_FULLSCRIPTS – Requested entire script data records (ivr_scripts) for various search options.  Returned in two parts, 219 bytes and 101 bytes respectively (.second half prepended with dnis/script for identification).

 

Operations

 

#define IRSAPI_OP_FIRSTRECORD      0

#define IRSAPI_OP_RECORD           1

#define IRSAPI_OP_RECORD2          2

#define IRSAPI_OP_DIGITS           IRSAPI_OP_RECORD2

#define IRSAPI_OP_DONERECORD       3

#define IRSAPI_OP_FIRSTCELL        4

#define IRSAPI_OP_CELL             5

#define IRSAPI_OP_DONECELLS        6

 

The IrsApiAccountDataResponse.operation flag is interpreted as follows:

 

IRSAPI_OP_FIRSTRECORDIrsApiAccountDataResponse.data contains the first record in what might be a multiple record transmission.

IRSAPI_OP_RECORD - IrsApiAccountDataResponse.data contains a data record.  If this is a two-part record transmission (IRSAPI_FT_FULLACCOUNT or IRSAPI_FT_FULLSCRIPTS), then this is the first half.

IRSAPI_OP_RECORD2 – The second half of a two part record transmission.

IRSAPI_OP_DIGITS – This is used for IVR log file returns (below).

IRSAPI_OP_DONERECORD – No more records are forthcoming for the data request.  IrsApiAccountDataResponse.data is undefined (no data record sent).

IRSAPI_OP_FIRSTCELL - This is used for IVR log file returns (below).

IRSAPI_OP_CELL - This is used for IVR log file returns (below).

IRSAPI_OP_DONECELLS - This is used for IVR log file returns (below).

 

Accounts Data Retrieval Example

 (dimensioned for 100 records):

 

    char m_Buffer[512]; // more than large enough

    char m_AccountDataRecord[100][378]; // extra byte for null

    static char l_Buffer[sizeof(struct IrsApiResponse)];

    static struct IrsApiResponse * mainResponse =

                 (IrsApiResponse *)&l_Buffer;

    static struct IrsApiAccountDataResponse * accountResponse =

                 (IrsApiAccountDataResponse *)mainResponse->value;

    int numRecords;

    int recordIndex;

 

    if(IRSMessage(m_Buffer, 10)){  // ten second timeout on read

      IRSDecode(m_Buffer, mainResponse);

      switch(mainResponse->type){

        case IRSAPI_RT_PONG:

        {

//        the server is running…

        }

        break;

        case IRSAPI_RT_ACCOUNTDATA:

        {

          switch(accountResponse->filetype){

            case IRSAPI_FT_FULLACCOUNT:

            {

              switch(accountResponse->operation){

                case IRSAPI_OP_FIRSTRECORD:

                {

                   recordIndex = 0;

//                 232 bytes + null terminator

                   strcpy(m_AccountData[recordIndex],

                          accountResponse->data);

                }

                break;

                case IRSAPI_OP_RECORD:

                {

//                 232 bytes + null terminator

                   strcpy(m_AccountData[++recordIndex],

                          accountResponse->data);

                }

                break;

                case IRSAPI_OP_RECORD2:

                {

                   if(memcmp(m_AccountData[recordIndex],

                             accountResponse->data,10) != 0){

//                   this is an error that shouldn’t happen! The

//                   second half of the record isn’t a match to the

//                   first.

                   }else{

//                   156 bytes + null terminator

                     strcpy(&m_AccountData[recordIndex][232],

                            &accountResponse->data[10]);

                  }

                }

                break;

                case IRSAPI_OP_DONERECORD:

                {

                   numRecords = recordIndex + 1; // all done

                }

                break;

            }

            break;

.

.

.

        }

        break;

.

.

.

 

 






Wizard Simplifies Development

DSC provides IVR software including our IVR wizard development tool for creating interactive voice response applications. Our IVR software lets you increase IVR development productivity by providing a visual development environment. IVR applications can be defined in minutes using this sophisticated, yet easy to use development tool. DSC also has available a comprehensive IVR software library known as our IVR Wizard Software Development Kit. This optional package is available for programmers and systems adminstrators who wish to manage IVR programs fromLinux IVR, Unix, or Windows IVR operating environments.

Data collected by your phone ACD (Automatic Call Distribution) or IVR (Interactive Voice Response) systems can be passed to your existing PC, Unix or Web applications through our phone software. The PACER predictive dialer can automatically call your customers and pass only connected calls to your agents. With our computer telephony software, your telephone and computer work together to provide cost-saving benefits.