This chapter includes sections about the CallCoordinator application programming interfaces (APIs) related to intelligent answering. These sections are:
This interface is used to pass call-related data to a transaction.
These APIs allow programs to get call and party data from the Call Management Control Table (CMCT).
Each section explains the function of the interface and describes when it would be useful. It also explains how to use the interface and APIs and defines the CICS communication data area required for each one.
Also related to Intelligent Answering is the Set ANI ID API. It allows programs to update the ANI data associated with a call. See "Set ANI ID API (CAMI786C)" for more information about this API.
These CallCoordinator APIs are defined as general-use programming interfaces. See "Programming Interfaces" for a definition of general-use programming interfaces.
The Initiate With Data Interface enables CallCoordinator to pass key data about an incoming call to the initial transaction for that call. The initial transaction is the application program specified on the COR Telephony Settings panel, or the Agent Detail panel, or as specified by the CallCoordinator agent at signon. Refer to the Installation part and the Operations part of the CallPath CallCoordinator/CICS System Management Guide for details about indicating initial transactions for CallCoordinator. When the Initiate With Data Interface is indicated for an initial transaction, CallCoordinator passes the data to the Interface when it initiates the transaction.
This transaction can be initiated by an EXEC CICS START command, or an EXEC CICS RETURN IMMEDIATE command, depending on the option specified in the SPM Start Option. In order for the initial transaction to go through the CICS Dynamic Transaction Routing (DTR) exit, an EXEC CICS RETURN IMMEDIATE must be used.
See Table 18 for a complete description of the Initiate With Data interface data.
There are several ways you can use the data of this interface in the initial transaction of an application program. Many of these are related to the Automatic Number Identification (ANI) and Dialed Number Identification Service (DNIS) numbers, which can be provided with incoming calls. The following sections provide definitions and examples of how to use these numbers.
ANI
The ANI number associated with a call is the billing number of the calling party.
Your application program(s) can use ANI numbers to:
The Set ANI ID API allows updating the ANI information in the CMCT record for an active call. See "Set ANI ID API (CAMI786C)".
DNIS
The DNIS number associated with a call enables identification of the specific toll free number dialed by the caller when there are multiple toll free numbers in the same routing arrangement.
Your application program(s) can use DNIS numbers to:
Your application programs might require disabling of the CallCoordinator Initiate With Data Interface. This could be because:
In this case, your application program can use the Inquire Call Data API, Inquire Party Data API, or Inquire Call Tracking Parameters API to get data for a transaction. (The Inquire Call Tracking Parameters API will be deleted in the next release of this product.) See "Inquire Call Data API (CAMI726C)", "Inquire Party Data API (CAMI727C)" for more information.
To use the Initiate With Data Interface to pass data to your application program(s), do the following:
Alternately, the agent can indicate this when signing on to CallCoordinator. In this case, the option applies to that agent only.
Table 18. CICS Communication Data Area for the Initiate With Data Interface (CAMC500)
| Field | Attributes | Description |
|---|---|---|
| START-DATA | N/A | 01 level name. |
| START-TIME | PIC S9(07) COMP-3 | The time the transaction is started. Format HHMMSS. |
| START-DELAY | PIC S9(03) COMP-3 | The maximum time (seconds) that screen transfer can be delayed before it is abandoned. This value is defined in the COR Telephony Settings panel. |
| CNTL-NBR | PIC X(30) | Control number or account number of the caller entered using the Set Control Number API. May be obtained from customer database using the ANI number. May be used to tie status of call being tracked by CallCoordinator to your application. Can be alphanumeric and in any format. |
| CMCT-INDEX | PIC 9(04) | The index number of the CMCT entry that contains the data for this call. |
| CALLER | PIC X(10) | The telephone number of an internal caller. |
| DNIS-TABLE | PIC X(02) | The number of the DNIS routing table that was configured for the trunk group and that contains the DNIS number dialed for this call. Blank if the DNIS feature is not available or a DNIS number was not dialed. |
| DNIS-NUMBER | PIC X(32) | The last 10 characters of the DNIS number dialed by the caller. Used to determine the initial transaction to be started. Optional. Blank if the DNIS feature is not available or a DNIS number was not dialed. May be used to determine the initial transaction. |
| ANI-TABLE | PIC X(02) | The source of the ANI number.
|
| ANI-NUMBER | PIC X(32) | The last 10 characters of the telephone number (billing number) of the calling party. |
| SPM-START-OPTION | PIC X(1) | Initial transaction start option.
Indicates whether
CallCoordinator passes the Initiate With Data Interface data block to
the initial transaction at start time.
Valid values are:
|
| APPL-CONN-IDX | PIC 9(9) | Application connection index. One of the call indices. Used for call tracking and record identification. Sequence number generated by CallCoordinator Call Tracking Manager(CTM). Incremented for each new call except for call join or the first party add to an existing call. Not incremented for party adds after the first party add in the same telephony session. Value is the same as the Unit Of Work Index, except when two telephony sessions are combined. |
| COR-SYSID | PIC X(4) | CICS SysID of the COR. |
| RESERVED | PIC X(18) | An area used by CallCoordinator Screen Control Module. Do not use this field. |
| LENGTH | PIC S9(04) COMP Value +207 | Length in bytes of the data area sent from CallCoordinator to the STARTed initial transaction. |
| TASK-SEQ | PIC X(54) | The task sequencing work area used to start other programs. Do not Use this field. |
| CALLER-TYPE | PIC X(01) | The type of caller. |
EXEC CICS RETRIEVE INTO(CAMC500-START-DATA)
LENGTH(CAMC500-LENGTH)
END-EXEC.
This API enables an application program to get data about a call from the Call Management Control Table (CMCT). The Call Management Control Table (CMCT) is the product of CallCoordinator call tracking. It tracks the status of calls in progress, records current information about incoming calls, and supplies control functions for each telephone call. Each call in progress in CallCoordinator has an entry in the Call Management Control Table.
The CMCT data includes the following:
The Set ANI ID API allows updating the ANI information in the CMCT record for an active call. See "Set ANI ID API (CAMI786C)".
See "Set Control Number API (CAMI730C)" for more information about using this API.
See Table 19 for descriptions of all the data provided by the Inquire Call Data API.
To locate the correct entry in the CMCT, this API uses input from the application program. The input can be one or more of the following parameters:
When more than one search field is input, they are checked to ensure agreement.
In a sysplex environment, if the API is searching on CMCT-INDEX the SYSID of the COR where that CMCT INDEX is active is required as input to the SRCH-COR-SYSID field. The COR-SYSID is made available in the CAMC500-START-DATA area and the TRIGGER-DATA area.
When the SRCH-CMCT-INDEX field is the only input parameter, the API output does not include the CMCT Index of a simultaneous call involving the party of this call. When the other input parameters are used (SRCH-TERM-ID or a combination of SRCH-SWITCH-ID, SRCH-PARTY-NO, and SRCH-PARTY-TYPE), the API output does include the CMCT index of a simultaneous call involving the party of this call. This field is SRCH-PREV-CMCT-INDEX. The API can use this data as input in the CMCT-INDEX field to get the call data for this associated call. This output might include another SRCH-PREV-CMCT-INDEX for a third call involving the party.
In a sysplex environment the SRCH-COR-SYSID is required.
Call related data from the original call can be supplied to the business application associated with a related call.
How calls are tracked by CallPath/CICS for OS/390: As defined by the CallPath Services Architecture, a call comprises two parties (for example, caller and agent/IVR extension) each with a connection ID which represents their participation in the call. When a new, CallPath/CICS-tracked call comes into the call center, a call tracking record is created. This represents the original call between the caller and the call center agent or IVR. Associated with this call may be ANI and/or DNIS, any customer data added via the Set Control Number API, and any ANI number updated via the Set ANI API. The Application Connection ID (ACI) assigned and maintained by CallCoordinator is also always present in the call tracking record.
If the call is extended to another party, a new, related call tracking record is created which represents the call between the transferring agent/IVR and the new party (for example, a second agent). Until the transferring agent/IVR completes the transfer, two call tracking records exist: one representing the original call and a second representing the related call.
If the Call extension as transfer parameter is set to N, none of the call data from the original call is reflected in the second, related, call tracking record until the transfer is completed and the two call tracking records are joined. The combined original and the 'related' call tracking records now reflect the call between the caller and the second agent/IVR and all of the original call data information will be present in the call tracking record.
From a business application perspective the first call will be associated with the terminal of the first, transferring, agent/IVR and the second call associated with the terminal of the second, receiving, agent. The timing of the availability (and location) of the original call data will affect the processing the business application running on the second agent's terminal.
Original Call Data: Call data associated with the original call is included in the related Inquire Call Data API commarea fields prefixed with 'CAMC726-ORIGINAL' ONLY if the transfer has not completed. The CALL-PARENTAGE field indicates that this is a related(R) call tracking record. If the transfer has completed, the call data is in the normal CAMC726 commarea fields returned to the Inquire Call Data API call and the CALL-PARENTAGE field will indicate that this is a original(O) call tracking record.
See Table 19 for descriptions of the input fields of this API.
You can use this API whenever an application program needs CMCT data for an initial transaction. The application program might need the data in order to provide the appropriate display and data for the agent handling a call (intelligent answering).
This API can also be used to get data for records sent to the CallCoordinator MIS log. See "Write MIS Record API (CAMI700C)" for information about writing an application program that writes its own records to the MIS Log.
The Inquire Call Data API provides the same data available in the Initiate With Data Interface as well as additional data not in the Initiate With Data Interface. An application program can use the Inquire Call Data API to add to the Initiate with Data data. Alternatively, the application program can use the Inquire Call Data API for the common data when there is a reason not to use the Initiate With Data interface. Reasons for disabling the Initiate With Data Interface include:
To use the Inquire Call Data API in your application program, do the following:
If calling the API from COBOL II or later, INITIALIZE the Communication data area (CAMC726-COMMAREA-DATA) before setting any of the fields.
Table 19. CICS Communication Data Area for the Inquire Call Data API (CAMC726)
| Field | Attributes | In/Out | Description |
|---|---|---|---|
| COMMAREA | N/A | N/A | 01 level name. |
| COMMAREA-LEN | PIC S9(4) COMP VALUE +1024 | In | The length in bytes of the CICS communication data area. |
| COMMAREA-DATA | N/A | N/A | 03 level name. |
| FROM-PROGRAM-NAME | PIC X(08) | In | The name of the program invoking this API. |
| TO-PROGRAM-NAME | PIC X(08) | In | The name of this API (CAMI726C). |
| RETURN-CODE | PIC 9(04) | Out | Indicates the result of the attempted operation.
|
| SRCH-CMCT-INDEX | PIC X(05) | In | The relative record number of the record in the CMCT. Primary search field. When this field is the only input parameter, output does not include SRCH-PREV-CMCT-INDEX. |
| SRCH-TERM-ID | PIC X(08) | In | Identification number of agent's terminal, if the agent is signed on and terminal is not disabled. Secondary search field. When this field is input, output includes SRCH-PREV-CMCT-INDEX. |
| SRCH-SWITCH-ID | PIC X(08) | In | ID of the switch of the agent handling the call.
Part of the search field.
The complete search field is:
|
| SRCH-PARTY-TYPE | PIC X(01) | In | Agent's telephone number type.
Part of the search field.
The complete search field is:
|
| SRCH-PARTY-NO | PIC X(08) | In | Agent's telephone number.
Part of the search field.
The complete search field is:
|
| SRCH-PREV-CMCT- INDEX | PIC 9(05) | Out | The CMCT index for a simultaneous call involving the same party. Only output when the input parameters include SRCH-TERM-ID or a combination of SRCH-SWITCH-ID, SRCH-PARTY-NO, and SRCH-PARTY-TYPE. |
| PARTY-SEQ-NO | PIC 9(02) | Out | Sequence number of party in the call. If CMCT-INDEX is only parameter provided, PARTY-SEQ-NO will be set to blank. |
| SRCH-NEXT | PIC X(01) | N/A | Reserved |
| SRCH-BASE | PIC 9(04) | N/A | Reserved |
| REASON-CODE | PIC X(04) | Out |
|
| SRCH-COR-SYSID | PIC X(04) | In | The SYSID of the COR in which to call the API. Used with CMCT Index for sysplex environments only. |
| FILLER | PIC X(58) | N/A | Spaces. Reserved for future use. |
| CMCT-INDEX | PIC 9(05) | Out | The relative record number of the record in the CMCT. |
| MSG-DATE | PIC X(8) | Out | Date last message was received from the switch. |
| MSG-TIME | PIC X(9) | Out | Time last message was received from the switch. |
| CTM-SEQ | PIC 9(02) | Out | Sequential number assigned to records in the CMCT. |
| CTM-CNTR | PIC 9(03) | Out | Count of records written that are of same type as last record written. |
| UOW-APPLID | PIC X(8) | Out | ID of the CallCoordinator region which initiated processing of the work unit. |
| UOW-NO | PIC X(12) | Out | Sequential number assigned to an individual telephony session (call) and all related calls. |
| CX-APPLID | PIC X(8) | Out | ID of the CallCoordinator region which initiated processing of the call. |
| CX-NO | PIC X(12) | Out | Call index number (assigned to call using the event message time and the CTM-SEQ number). |
| APPL-CONN-ID | PIC S9(09) | Out | One of the call indices. Used for call tracking and record identification. Sequence number generated by CallCoordinator Call Tracking Manager(CTM). Incremented for each new call except for call join or the first party add to an existing call. Not incremented for party adds after the first party add in the same telephony session. Value is the same as the Unit Of Work Index, except when two telephony sessions are combined. |
| MSG-DATE-SUB | PIC X(8) | Out | Date in last message. |
| MSG-TIME-SUB | PIC X(9) | Out | Time in last message. |
| MSG-TYPE | PIC X(3) | Out | Identifies the last message type for the call.
Messages from CallPath/CICS begin with C.
|
| SWITCH | PIC X(8) | Out | ID of the switch of the agent handling the call. |
| CALL-SOURCE | PIC X(01) | Out | Indicates source of the call:
|
| CALL-PARENTAGE | PIC X(01) | Out | Indicates call parentage:
|
| CALL-STATE | PIC X(01) | Out | Indicates the state of the call in progress:
|
| END-CODE | PIC X(01) | Out | Indicates how the call ended.
Not applicable in an active call.
|
| PARTY-COUNT | PIC 9(02) | Out | Number of parties in the call. |
| PARTY-MIX-INX | PIC 9(03) | Out | An index that changes when there is a change in the parties participating in a call. |
| CNTRL-NO | PIC X(30) | Out | Control number or account number of the caller. Entered using the Set Control Number API. |
| BUS-VLU | PIC 9(12) | Out | Business value assigned to the call. Entered using the Set Control Number API. |
| ORIGINAL-BUS-VLU | PIC 9(12) | Out | As for BUS-VLU except that this applies to the ORIGINAL call if one exists. |
| BUS-VLU-SIGN | PIC X(01) | Out | Sign of the business value.
|
| ORIG-GROUP | PIC X(10) | Out | Pilot number used to access the original ACD group as opposed to that of an overflow ACD group which might have answered the call. |
| CALL-PURPOSE | PIC X(01) | Out | Indicates the purpose of the call:
|
| TRANSID | PIC X(8) | Out | Initial Transaction ID indicated for calls requiring screen processing by CallCoordinator Screen Control Module (Automatic mode). |
| USER-TRANSID | PIC X(8) | Out | Initial Transaction ID indicated for calls requiring screen processing by a user-written screen control program (User mode). |
| SRVR-FUNCTION | PIC X(10) | Out | The function of the server agent for the call. |
| SRVR-ID | PIC X(10) | Out | The ID number of the agent handling the call. |
| ANI-SOURCE | PIC X(2) | Out | The source of the Automatic Number Identification (ANI) data.
|
| ANI-NUMBER | PIC X(32) | Out | The ANI number (the billing number of the calling party). Left-justified and filled with spaces. |
| ORIGINAL-APPL-CONN-ID | PIC S9(09) | Out | One of the call indices. As for AAPL-CONN-ID except that this applies to the ORIGINAL call if one exists. |
| ORIGINAL-CNTRL-NO | PIC X(30) | Out | As for CNTRL-NO except that this applies to the ORIGINAL call if one exists. |
| ORIGINAL-BUS-VLU-SIGN | PIC X(01) | Out | As for BUS-VLU SIGN except that this applies to the ORIGINAL call if one exists. |
| ORIGINAL-ORIG-GROUP | PIC X(10) | Out | As for ORIG-GROUP except that this applies to the ORIGINAL call if one exists. |
| ORIGINAL-ANI-SOURCE | PIC X(2) | Out | As for ANI-SOURCE except that this applies to the ORIGINAL call if one exists. |
| ORIGINAL-ANI-NUMBER | PIC X(32) | Out | As for ANI-NUMBER except that this applies to the ORIGINAL call if one exists. |
| DNIS | PIC X(32) | Out | The dialed number identification service (DNIS) number (if any) dialed by the caller and passed by the switch. Used to determine the initial transaction to be started. |
| ORIGINAL-DNIS | PIC X(32) | Out | As for DNIS except that this applies to the ORIGINAL call if one exists. |
| DATA-COLLECTED | PIC X(512) | Out | The data collected as input from the telephone keypad. |
| PARTY-GROUP | PIC X(10) | Out | The pilot number used to access the ACD group that is currently handling the call. |
| PREV-PRTY-GROUP | PIC X(10) | Out | The pilot number used to access the ACD group that was previously handling the call. |
| RESERVED-1 | PIC X(24) | N/A | Reserved for IBM use. |
| FILLER | PIC X(47) | N/A | Spaces. Reserved for future use. |
| PROGRAM-DATA | PIC X(512) | Out | The program data associated with this call |
| RESERVED-2 | PIC X(84) | N/A | Reserved for IBM use. |
| FILLER | PIC X(316) | N/A | Spaces. Reserved for future use. |
Required input data is one or more of the following:
EXEC CICS LINK PROGRAM('CAMI726C')
COMMAREA(CAMC726-COMMAREA)
LENGTH(CAMC726-COMMAREA-LEN)
END-EXEC.
If operation of the API was successful, the output fields of the communication data area contain the CMCT data for the requested call.
This API enables an application program to get data about a party in a call. The party data is part of the CMCT data for a call. This data includes the following:
To locate the correct entry in the CMCT, this API uses input from the application program. The required input is:
In a sysplex environment, if the API is searching on CMCT-INDEX the SYSID of the COR where that CMCT INDEX is active is required as input to the SRCH-COR-SYSID field. The COR-SYSID is made available in the CAMC500-START-DATA area and the TRIGGER-DATA area.
For complete descriptions of the input and output fields of this API, see Table 20.
You can use this API whenever an application program needs CMCT data about the parties in a call.
This API can be used to:
See "Write MIS Record API (CAMI700C)" for information about writing an application program that writes its own records to the MIS Log.
To use the Inquire Party Data API in your application programs, do the following:
If calling the API from COBOL II or later, INITIALIZE
the Communication data area
(CAMC727-COMMAREA-DATA)
before setting any of the fields.
Table 20. CICS Communication Data Area for the Inquire Party Data API (CAMC727)
| Field | Attributes | In/out | Description |
|---|---|---|---|
| COMMAREA | N/A | N/A | 01 level name. |
| COMMAREA-LEN | PIC S9(04) COMP VALUE +2048 | In | The length in bytes of the CICS communication data area. |
| COMMAREA-DATA | N/A | N/A | 03 level name. |
| FROM-PROGRAM-NAME | PIC X(08) | In | The name of the program invoking this API. |
| TO-PROGRAM-NAME | PIC X(08) | In | The name of this API (CAMI727C). |
| RETURN-CODE | PIC 9(04) | Out | Indicates the result of the attempted operation.
|
| SRCH-CMCT-INDEX | PIC X(05) | In | The relative record number of the record in the CMCT. Primary search field. For sysplex users SRCH-COR-SYSID is required. |
| SRCH-PARTY-NO | PIC X(02) | In | The sequence number of a party in a call (1 = caller, 2 = called party, etc.). Second search field. |
| SRCH-COR-SYSID | PIC X(04) | In |
The SYSID of the COR in which to call the API.
Used with CMCT Index for sysplex environments only.
|
| REASON-CODE | PIC X(4) | Out | For Routing see Reason Codes at Start.
|
| FILLER | PIC X(107) | N/A | Spaces. Reserved for future use. |
| CMCT-INDEX | PIC 9(05) | Out | The relative record number of the record in the CMCT. |
| PARTY-SEQ-NO | PIC 9(02) | Out | The sequence number of a party in a call (1 = caller, 2 = called party, etc.). |
| PARTY-ROLE | PIC X(01) | Out | The role of the party.
|
| PARTY-SRVR | PIC X(01) | Out | Indicates whether this party is the server of the call.
|
| PARTY-INDEX | PIC X(10) | Out | A counter that is incremented and unique for each party in a call. |
| PARTY-SWITCH-ID | PIC X(08) | Out | The switch identification number of the party. |
| PARTY-NO-TYPE | PIC X(01) | Out | Party telephone number type.
|
| PARTY-NO | PIC X(08) | Out | Party's telephone number.
|
| PARTY-CONN-STATE | PIC X(01) | Out | The current connection state of the party.
|
| PARTY-AGENT-STATUS | PIC X(01) | Out | Agent status of the party (if an agent).
Note: Agent status is stored on the CMCT table. It does not change during a currently active call. Changes take effect for new calls only. |
| PARTY-AGENT-CLASS | PIC X(01) | Out | User-supplied value to indicate the class of the agent. Used in MIS reporting. |
| PARTY-AGENT-FN | PIC X(10) | Out | Agent function code of the party (if an agent). |
| PARTY-AGENT-ID | PIC X(10) | Out | Agent identification number of the party (if an agent). |
| FILLER | PIC X(827) | N/A | Spaces. Reserved for future use. |
Required input data is the SRCH-CMCT-INDEX and/or the SRCH-PARTY-NO. See Table 20 for descriptions of input fields of the API.
EXEC CICS LINK PROGRAM('CAMI727C')
COMMAREA(CAMC727-COMMAREA)
LENGTH(CAMC727-COMMAREA-LEN)
END-EXEC.
If operation of the API was successful, the output fields of the communication data area contain the party data from the CMCT.