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).
#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).
#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_FIRSTRECORD – IrsApiAccountDataResponse.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).
(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.
|