int ACSAddCampaign(const char * _description,
const char * _startDate, // YYYYMMDD
const char * _startTime, // HHMM
const char * _stopDate,
const char * _stopTime);
This routine (ACSAddCampaign) MUST be run first as it
returns the generated campaign name for the rest of the calls, using the
AcsApiIVRModelResponse structure:
struct AcsApiIVRModelResponse{ // ACS_RT_IVR
char
campaign[7];
};
(Note: This is a
multi-operation call, and since any one of the subsequent calls that need to be
made to set up an IVR could fail, care must be taken if an error is encountered. Manual intervention will usually be
necessary. This shall hopefully
evolve.)
This routine
communicates with the cmpapid service via DscACS. It performs a number of operations, so multiple errors could be
returned. Cmpapid uses ivr_config &
dsc_config (in dbase11) to lookup directories and to generate the new campaign
name.
Dsc_config entries:
DIALERINTERFACE = ACDNT3,65.197.226.152
ACS_DBASE=f:\dbase
ACSCAMP_ID=00000F
ACSRECORDINGPATH=d:\sounds\recordings
Ivr_config entries:
<ivr progname>,<progpath>,junk
i.e.:
00000E,c:\ivrs\00000E\00000E,junk
Generated campaign name progress sequentially from “000000”
to “ZZZZZZ”; e.g. “000000”, “000001”,…”00000Z”,”000010”,…”00001Z”, etc.
All dates are character strings in the format “YYYYMMDD”;
all times “HHMM”.
If entries are missing, cmpapid will supply default values
and add these entries.
This routine will:
Add a campaign record.
Add a site record.
Add a customer file (cpfile) definition, of the same name as
the campaign. It based on the template
“CPBLAST” definition, which must exist.
Create the customer file on disk.
Return to you the name of the generated campaign.
int ACSChangeCampaignStartStopTimes(const char *
_campaign,
const char * _startDate,
const char *
_startTime,
const char * _stopDate,
const char * _stopTime);
This changes a campaign’s start and stop times.
int ACSChangeCampaignDescription(const char * _campaign,
const char * _description);
This changes a compaign’s description.
int ACSRemoveCampaign(const char * _campaign);
This removes a campaign.
Note: This only removes the
campaign record, not the other detritus generated above, by ACSAddCampaign().
int ACSSetCallModel(const char * _campaign,
const int _numBusyRetries,
const int * _busyRollMinutes,
const int _numNoAnswerRetries,
const int * _noAnswerRollMinutes,
const int
_numAnsweringMachineRetries,
const int *
_answeringMachineRollMinutes,
const int
_answeredRollMinutes);
Adds the call model record for the campaign. The “RollMinutes” arguments are int[3]
arrays, corresponding to the rollover minutes for indicated retries, up to 3.
int ACSSetListManager(const char * _campaign,
const int
_type,
const int
_ratio,
const int
_retries,
const int
_retryMinutes,
const char * _startDate,
const char * _startTime,
const char * _endDate,
const char * _endTime);
Adds the List Manager record. There are 5 types:
ACSAPI_LT_MAIN // fresh list definition
ACSAPI_LT_CONNECT // connect list definition
ACSAPI_LT_BUSY // busy list definition
ACSAPI_LT_NOANSWER // no answer list definition
ACSAPI_LT_ANSWMACHINE // answering machine list
definition
_retries & _retryMinutes are ignored for type
ACSAPI_LT_MAIN.
int ACSSetIVRModel(const char * _campaign,
const int _type,
const char * _pressthrunumber);
So far, there are three types:
ACSAPI_IT_VOICEBLAST1 // simple voice blast
ACSAPI_IT_VOICEBLAST2 // voice blast w/no custom per
# wave lookup
ACSAPI_IT_PRESSTHRU // simple IVR press-trough
_pressthrunumber is used only for ACSAPI_IT_PRESSTHRU.
Creates the appropriate IVR program, compiles it and places
it in the run area. Adds an entry in
ivr_config indicating its location.