Custom Job IVR
This section provides examples of how to set up special Job Processing features using IVR.
Customizing the entire Job Admin process
To customize the complete transaction, you must trap the JOB_GREET state (24) and then use either question boxes or predefined system variables to supply all or some of the following information:
•whether the call is to set up a new job or to monitor or modify an existing job (JOBNEWOLD)
•the owner reference for the 'owner' of the job (JOBOWNER)
•the 'jobtype' reference if the owner has more than one type of job defined (JOBTYPE)
•the broadcast lists to be used for a new job (JOBLISTS)
•the job instance number of an existing job (JOBINST)
•the action to be performed for an existing job (JOBACTION)
In addition, you should use $set_state to trap the states JOB_GOODBYE (49) and JOB_CREATE_FAIL (76), to which control will be transferred on completion of processing the job setup, or on error.
Having set up this information, control is transferred either to JOB_GREET (state 24) or to JOB_EXIST_NEW (state 25). The system then proceeds to request from the caller any details not supplied in system variables. In your infobox which is called from the 'goodbye' state you can test the JOB_ERROR system variable to ensure that the operation has succeeded.
Adding extra questions during job creation
When a job is created and launched using IVR, the conversation normally ends with the caller sending in the fax master which is to be broadcast. In this case the additional Q&A session must be done before the document is faxed. To do this, you must trap the JOB_GETDOCS state (45) and use question boxes to get the additional information from the caller. There are several system variables which give direct access to the job instance properties:
•assignment to JI_TOSEND sets the initial priority for the job (values 1 to 9). If your TOSEND queues are set up to provide peak and off-peak scheduling, this allows the caller to specify how the job is to be processed.
•assignment to JI_DATAx sets user variables which are carried through to the job statistics. This allows a caller to assign an account or job code. The x value must be 1 to 4 unless additional log fields have been defined.
•assignment to JI_DELAY defers processing the job. If the value is less than three digits, it is taken as a number of hours. Otherwise it must be a date or time in one of the formats HHMM, YYYYMMDD, or YYYYMMDDHHMM. The string length determines the format. The job admin system places the value in $fax_send_date and/or $fax_send_time in the job FS template list. A date on its own allows processing to start any time on the specified day; a time on its own allows processing to start on any day at the specified time.
•assignment to JI_PHONE inserts a new phone number for job proofs and job reports. if there was no proof specified previously, one is added with a job launch delay time of -1 (indefinite).
•assignment of "varname=value" to JI_VARDEF allows any variable to be set in job instance properties.
After your question box sequence, you can transfer back to the JOB_GETDOCS state to process the incoming fax.
Even if the job documents are pre-loaded, and there is nothing to be faxed in, you should still trap the JOB_GETDOCS state. In this case transferring back to the JOB_GETDOCS state will initiate the processing of the job, normally by sending a proof.
Automatic selection of Job Owner
When DID is available for incoming calls, you can use the DID to select owner job properties. In this case an initial User Profile is either selected by the whole DID number, or you can use the normal $dnis_scan method to select a user and an infobox from the incoming string. You can then preselect the JOBNEWOLD setting and the owner directory (JOBOWNER) and as much of the other data as your application requires. Finally, you can transfer to JOB_GREET state (24) and ask the caller to fill in any gaps in the required data.
Custom Menu Actions
Instead of asking the caller for a numeric action code, it is simple to provide a menu of available actions. To do this, allow the caller to select an existing job instance using Standard Job IVR. Then trap the JOB_JOBACTION state (68) and perform the menu functions using CopiaFacts IVR standard menus. The resulting menu action code is then assigned to the JOBACTION system variable, before transferring back to the JOB_JOBACTION state. To allow multiple actions on the same job, trap the JOB_GOODBYE state (49) and repeat the process of requesting an action through the menu.
Note that action codes higher than 99 are blocked from selection using the normal action code entry. This prevents accidental selection of potentially 'dangerous' actions such as deleting the job. These actions can, however be selected by assigning the code to the JOBACTION system variable.
Spoken Job Reporting
It is possible to allow your callers to hear spoken reports of job status. Again, allow the caller to select an existing job instance using Standard Job IVR. Then trap the JOB_JOBACTION state (68) and use the CopiaFacts play-amount features to speak one or more of the following system variables:
|JOB_TOTAL||Total items in job|
|JOB_SENT||Number of successful transmissions during job processing|
|JOB_FAIL||Number of failures during job processing|
|JOB_RETRIES||Number of retries during job processing|
|JOB_SCHEDULED||Date/time to which job has been deferred|
|JOB_SECONDS||Total call seconds for the job|
|JOB_TIMESTAMP||Date/time of last status change|
|JOBOWNER_CODE||Directory name of job owner|
|JOBTYPE_CODE||Directory name of job type|
|JOB_STATUS||Job status code (see Appendix J)|
|JOBOWNER_VOXFILE||Vox filename describing job owner|
|JOBTYPE_VOXFILE||Vox filename describing job type|