Jump to: navigation, search

Submitting Call Report Records

When OCS attempts a call, it sends the call report record to Web or Application Server via an HTTP POST request. This record can be used to manage compliance with Contact Attempt rules.

Call report records are sent to an external system twice.

For each attempt to place a call (or interaction) made from a started outbound dialing campaign in any dialing mode, OCS sends two call report records. The first call record (an HTTP POST request with GSW_HIST_SEQUENCE_NUM: 0) to Web or Application Server is sent when a call attempt is initiated. When the call is finalized with any result (Answer, Answering Machine, Abandoned, DoNotCall, and so on), the second call record (an HTTP POST request with GSW_HIST_SEQUENCE_NUM: 1) containing the GSW_CALL_RESULT parameter is sent to Web or Application Server.

The GSW_HIST_SEQUENCE_NUM: 1 record overwrites the GSW_HIST_SEQUENCE_NUM: 0 record when dialing rules are applied by the compliance manager.

Feature Configuration

Add the following configuration options, as described on the OCS Option Descriptions page in this manual:

The data posted to Web or Application Server can contain the following attributes. Refer to the Reference Manual for a detailed description of each attribute.

Field Description Type Mandatory
GSW_CALL_ATTEMPT_GUID The global unique identifier of the call processing attempt used for historical reporting. String Yes
GSW_HIST_SEQUENCE_NUM The record submission sequential number 0 or 1. Value 0 means the first call report record submission for a given call attempt. Value 1 means the second call report record submission for a given finalized call. Integer Yes
GSW_TENANT_NAME The value is populated from the current Tenant (where the Campaign Group belongs). The Tenant\Annex\devops\customer_name option. Defaults to undefined if not set. String Yes, with exception when the Annex of the Tenant is not configured properly
GSW_TENANT_CCID The Contact Center ID. The value is populated from the current Tenant (where the Campaign Group belongs). The Tenant\Annex\devops\customer_name option. Defaults to undefined if not set. String Yes, with exception when the Annex of the Tenant is not configured properly
GSW_PHONE The customer’s phone number. String Yes
GSW_CHAIN_ID The unique chain identifier. Integer Yes
GSW_CHAIN_N The unique identifier of a record in a chain. Integer Yes
GSW_PHONE_TYPE The customer's phone type. Integer Yes
GSW_CUSTOMER_ID The customer identifier that is used for requests. The ID that is taken from the c_client_id field of the Calling List (this field is configured with the GSW_CUSTOMER_ID send_attribute). This field is optional but it is sent if it is defined in the Calling List table. String No
GSW_START_PROCESSING The timestamp when OCS starts processing a given call attempt. If pre-dial validation is in place, this is the time when a pre-dial validation request is sent. Unix UTC epoch dot milliseconds Yes
GSW_CALL_TIME The time when OCS sends a request to the dialer (for example, TMakePredictiveCall). Unix UTC epoch dot milliseconds No. The field is available when a request was actually sent. The field is not available for negative pre-dial validation.
GSW_SCHEDULED_TIME The time when the record is rescheduled. GSW_DATE_TIME in OCS desktop protocol terms. Unix UTC epoch dot milliseconds No. The field is available only with records of particular types.
GSW_TZ_OFFSET The time difference, in seconds, between Universal Time Coordinated (UTC) and a particular time zone. Integer Yes
GSW_TZ_NAME The Configuration Server time zone name (usually a standard three-letter abbreviation)--for example: PST, CTT, GMT. String Yes
GSW_CALL_RESULT The call result of the primary record. Integer Yes
GSW_CAMPAIGN_NAME The name of the Campaign. String Yes
GSW_CAMPAIGN_TEMPLATE_NAME The name of the Campaign Template (the Script of type Outbound Campaign, referenced by the Campaign Group via the scriptDBID attribute). String No. OCS does not deliver it if the Campaign Group does not have a reference to the Template (possible in non-CX Contact configurations).
GSW_CALLING_LIST The name of the Calling List. String Yes
GSW_CALLING_LIST_DBID The database identifier of the calling list. Integer Yes
GSW_CAMPAIGN_GROUP_NAME The name of the Campaign Group. String Yes
GSW_CAMPAIGN_GROUP_GUID The global unique identifier of the Campaign Group, which is taken from uuid_generator::to_str(Session.pSessionGUID). String Yes
GSW_GROUP_NAME The Agent or Place Group name. String Yes
GSW_QUEUE_NAME The name of the Voice Transfer Destination DN. String Yes
GSW_DIAL_MODE Current dialing mode of the Campaign Group. Integer Yes
GSW_AGENT_ID The Agent ID field value. String No. The field is available for successful calls only.
GSW_RECORD_TYPE The record type of the primary record after the processing. Integer Yes
GSW_RECORD_STATUS The record status. Integer Yes
GSW_OPTIMIZE_BY The optimization method (enumeration). Integer No. The field is available for Predictive modes only.
GSW_OPTIMIZE_GOAL The optimization goal. Integer No. The field is available for Predictive modes only.
GSW_DIALING The time when call dialing is started. The timeDialing value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_RINGING The time when a call is ringing. The timeClientRinging value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_RELEASED The time when a call is released. The timeBadCallReleased value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_ANSWERED The time when a call is answered. The timeClientPickedUp value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_CPD_COMPLETED The time when CPD is completed. The timeCPDFinished value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_QUEUED The time when a call is placed in a queue. The timeQueued value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_AGENT_RINGING The timeAgentRinging value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_AGENT_ANSWERED The time when an agent answers a call. The timeAgentEstablished value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_DIVERTED The time when a call is diverted. The timeAMDiverted value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_ABANDONED The time when a call is abandoned. The timeAbandoned value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_AGENT_RELEASED The time when an agent releases a call. The timeAgentCallReleased value that is taken from FTC timestamps. Unix UTC epoch dot milliseconds No
GSW_ACW_COMPLETED The time when After Call Work is completed. Unix UTC epoch dot milliseconds No
GSW_COMPLETE_PROCESSING The time when processing of a call attempt is completed. The time when an outbound record for the given call is considered completed and is removed from OCS active processing. Unix UTC epoch dot milliseconds No
GSW_POSTAL_CODE The client's postal code. String No. The field is available when it's defined in the calling list.
GSW_COUNTRY_CODE The client's country code. String No. The field is available when it's defined in the calling list.
GSW_TZ_JAVA_NAME The client's time zone. String No. The field is available when it's defined in the calling list.
GSW_STATE_CODE The client's region code. This is a two-letter abbreviation and not ISO 3166-2 (for example, CA and not US-CA). String No. The field is available when it's defined in the calling list.
GSW_D_AREA_CODE The area code associated with the device. String No. The field is available when it's defined in the calling list.
GSW_D_COUNTRY_CODE The country code associated with the device. String No. The field is available when it's defined in the calling list.
GSW_D_TZ_JAVA_NAME The time zone associated with the device. String No. The field is available when it's defined in the calling list.
GSW_D_STATE_CODE The region code of a device. This is a two-letter abbreviation and not ISO 3166-2 (for example, CA and not US-CA). String No. The field is available when it's defined in the calling list.
GSW_DEVICE_MASK The device mask. Integer No. The field is available when it's defined in the calling list.
GSW_BLOCKING_RULE The name of the rule that caused a negative result of pre-dial validation. OCS might receive it from a third-party validation server in a negative validation response. In such case, OCS passes it in a call attempt record submission unchanged. String No. The field is available only for negative pre-dial validation results.
GSW_BLOCKING_RULE_TYPE The type of the compliance object that caused a negative pre-dial validation (Mandatory Suppression List, Custom Compliance Rule, etc). OCS may receive it from a third-party validation server in a negative validation response. In such case, OCS passes it in a call attempt record submission unchanged. Integer No. The field is available only for negative pre-dial validation results.
User-defined fields:

<USER FIELD KEY NAME>

Any user-defined fields with the send attribute, where send attribute values does not start with GSW_. String No
GSW_CPN_DIGITS The value of CPNDigits that is used in this call attempt. (The TMakePredictiveCall request parameter or attached to the

preview record via the GSW_CPN_DIGITS key-value pair). May not be present if no CPNDigits has been configured at any level.

String No
GSW_CPN_DIGITS_SET The name of the Caller ID Set (the Script configuration object) that is included the CPNDigits value used in this call attempt. May not be present if no CPNDigits is configured or if CPNDigits is configured not via a Caller ID Set (via SCXML or the CPNDigits OCS option at any level). String No
GSW_DISPOSITION_CODE The value of the Disposition Code that is provided to OCS by the agent desktop in a record finalization request or third-party validation server in a 409 Cancel negative response body in the GSW_DISPOSITION_CODE key-value pair. String No
GSW_DEVICE_INDEX The device index value for a given record. Integer Yes

Responses

When OCS sends the HTTP POST request, Web or Application Server returns a response code:

  • 200 OK — success
  • 4xx or 5xx — failure


Re-submitting Failed Records

If OCS receives any response other than 200 OK from Web or Application Server after submitting the HTTP POST request, it treats the record as failed and re-submits the record.

OCS checks the value in the history-wait-recovery-timeout, which stores the time OCS should wait before re-submitting another HTTP POST request and will re-submit the HTTP POST request to Web or Application Server.

If OCS reaches the threshold specified in the history-wait-condition-threshold option, the wait condition is triggered, which means dialing is suspended until re-submission of all failed records is completed.

Important
With a wait condition in place, the campaign remains in a running state, but dialing is suspended.

If OCS reaches the threshold specified in the history-wait-condition-threshold option before receiving a 200 OK response, it stops dialing.

Race Conditions

If OCS sends a pre-dial validation request to Web or Application Server for a contact record that Web or Application Server is currently processing but has not yet saved (for example, it has not yet sent a response or the record is marked for re-processing), a race condition occurs.

As a prevention measure, OCS checks for a race condition before submitting a pre-dial validation request. If it detects a race condition, it will not dial the record. Instead, OCS refers to the call result specified in the validation-race-condition-call-result option and attempts to apply that treatment to the call result.

In this scenario, the following log entry appears:
Predial check aborted due to race condition for phone %s

This page was last edited on May 12, 2021, at 19:43.
Comments or questions about this documentation? Contact us for support!