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
Routines – Details
int
IRSDecode(const char * message, void * structure);
Use this routine to translate the text message from DscIRS
to the IrsApiResponse structure.
void
IRSSetAsyncSelect(const HWND hWnd);
If doing asynchronous communication on NT, set the window
where the message retrieval is defined.
void
IRSSetServer(const char * _hostname, const char * _server);
Call this to indicate the name of the host and the DscIRS
server to enable subsequent requests.
int IRSPing();
Use to verify that the DscIRS server is active and
running. The server will answer IRSPing()
with an IRS_RT_PONG.
int
IRSMessage(char * message, const int timeout);
Accept an incoming message from DscIRS. Use timeout for synchronous reads, or the
client application may hang in the even t of server failure.
int
IRSRefreshAccountingData();
DscIRS reads the accounting data into memory for performance
reasons. This routine should be used to
alert the server that data has been changed, and should be reloaded.
int IRSRequestUserRecords();
Return the stored user records in the Accounts
database. Entire records returned (56
bytes).
int
IRSRequestUserRecord (const char * userName);
Return the user record for userName. Entire records returned (56 bytes).
int IRSRequestAccountRecords();
Return a list of all account records in the Accounts
database (10 bytes).
int
IRSRequestAccountRecord (const char * accountNumber);
Return the entire account record for accountNumber. The record comes in two pieces, at 232 bytes
and 10 + 146 bytes respectively (the second has the 10-bytes account number
prepended to the record).
int
IRSRequestDNISRecords();
Return all DNIS/account number records (20 bytes).
int
IRSRequestScriptRecordsByScript (const char * script);
Return entire script records for script. The record comes in two pieces, at 218 bytes
and 10 + 10 + 81 bytes respectively (the second has the 10-bytes dnis and
10-byte script prepended to the record).
int
IRSRequestScriptRecordsByDNIS (const char * dnis);
Return entire script records for dnis. The record comes in two pieces, at 218 bytes
and 10 + 10 + 81 bytes respectively (the second has the 10-bytes dnis and
10-byte script prepended to the record).
int
IRSRequestScriptRecord(const char * dnis, const char * script);
Return entire script record for dnis & script
(this is a unique search, with only one record returned). The record comes in two pieces, at 218 bytes
and 10 + 10 + 81 bytes respectively (the second has the 10-bytes dnis and
10-byte script prepended to the record).
int
IRSRequestScriptRecordsForAccount(const char * accountNumber);
Return script data records for accountNumber. Only the accountnumber, dnis and script are
returned (30 bytes).
int
IRSRequestScriptRecordsByIVRPhone(const char * ivrPhone);
Return entire script records for ivrPhone. The record comes in two pieces, at 218 bytes
and 10 + 10 + 81 bytes respectively (the second has the 10-bytes dnis and
10-byte script prepended to the record).
int
IRSRequestIVRPhoneNumbers();
Return a list of all unique (no dupes) IVR phone numbers in
the script database (16 bytes).
int IRSRequestLogRecords(const char * accountnumber,
const char * script,
char * date1, int dateoperator, char * date2,
char * time1, int timeoperator, char * time2);
Return log file records.
They may be searched in using the date and time search arguments. Use date2 and time2 if dateoperator
or timeoperator, respectively, are a range search (OP_RG).
Search operators:
#define OP_EQ 0 // equal
#define OP_LT 1 // less than
#define OP_GT 2 // greater than
#define OP_LE 3 // less than or equal to (not greater
than)
#define OP_GE 4 // greater than or equal to (not less
than)
#define OP_NE 5 // not equal to
#define OP_RG 6 // in the range of
#define OP_NA 7 // ignore this search operator
date1/date2 format: “YYYYMMDD”, eg. 20010610
time1/time2 format “HH::MM::SS”, eg. 13:30:00
Sample searches:
All records:
IrsApiRequestRecords(context, accountnumber, script,
"", OP_NA, "", "", OP_NA, "");
Date less than:
IrsApiRequestRecords(context, accountnumber, script,
"20010531", OP_LT, "",
"", OP_NA, "");
Date range:
numRecords =
IrsApiRequestRecords(context, accountnumber, script,
"20010101", OP_RG,
"20010531",
"", OP_NA,
"");
These are optional initialization routines - they are not
required to use this API.
void
IRSInitNamedQueue(const char * _uniqueName);
Initialize the identifier for the calling process to be
derived from _uniqueName, rather than the default process id.
void
IRSInitNumberedQueue(const int _uniqueID);
Initialize the identifier for the calling process to be
derived from _uniqueID, rather than the default process id.
int
IRSUniqueID();
Find out what the unique id for this process is (it will be
process id if not manually initialized).
void
IRSSetSocket(const SOCKET _socket);
Call this to bypass socket initialization, using an
established socket.
void IRSSetSocketAndUniqueID(const SOCKET _socket,
const int _uniqueID);
Combination of IrsSetSocket() and IRSInitNumberedQueue()
calls.
SOCKET
IRSGetSocket();
Find out established socket for this client. Note that if not manually set with IRSSetSocket()
first, this call will create the socket to the dscnmq service.
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.
|