Revision as of 18:09, June 5, 2020 by Valentip (talk | contribs) (OUTBOUND-10747 - GSW_BLOCKING_RULE_TYPE)
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 made from a started outbound dialing campaign in autodial mode, OCS sends a call report record (an HTTP POST request with GSW_HIST_SEQUENCE_NUM: 0) to Web or Application Server. When the call is finalized with any result (Answer, Answering Machine, Abandoned, DoNotCall, and so on), the second record (an HTTP POST request with GSW_HIST_SEQUENCE_NUM: 1) containing the GSW_CALL_RESULT parameter is sent to Web or Application Server.

Note: 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.

Attribute Name Attribute Name Attribute Name
GSW_ABANDONED GSW_ACW_COMPLETED GSW_AGENT_ANSWERED
GSW_AGENT_ID GSW_AGENT_RELEASED GSW_AGENT_RINGING
GSW_ANSWERED GSW_BLOCKING_RULE GSW_BLOCKING_RULE_TYPE
GSW_CALL_ATTEMPT_GUID GSW_CALL_RESULT GSW_CALL_TIME
GSW_CALLING_LIST GSW_CALLING_LIST_DBID GSW_CAMPAIGN_GROUP_GUID
GSW_CAMPAIGN_GROUP_NAME GSW_CAMPAIGN_NAME GSW_CAMPAIGN_TEMPLATE_NAME
GSW_CHAIN_ID GSW_CHAIN_N GSW_COMPLETE_PROCESSING
GSW_COUNTRY_CODE GSW_CPD_COMPLETED GSW_CPN_DIGITS_SET
GSW_CUSTOMER_ID GSW_D_AREA_CODE GSW_D_COUNTRY_CODE
GSW_D_STATE_CODE GSW_D_TZ_JAVA_NAME GSW_DEVICE_MASK
GSW_DIAL_MODE GSW_DIALING GSW_DIVERTED
GSW_GROUP_NAME GSW_HIST_SEQUENCE_NUM GSW_OPTIMIZE_BY
GSW_OPTIMIZE_GOAL GSW_PHONE GSW_PHONE_TYPE
GSW_POSTAL_CODE GSW_QUEUED GSW_QUEUE_NAME
GSW_RECORD_STATUS GSW_RECORD_TYPE GSW_RELEASED
GSW_RINGING GSW_SCHEDULED_TIME GSW_START_PROCESSING
GSW_STATE_CODE GSW_TENANT_CCID GSW_TENANT_NAME
GSW_TZ_JAVA_NAME GSW_TZ_NAME GSW_TZ_OFFSET
<USER FIELD KEY NAME>

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

Comments or questions about this documentation? Contact us for support!