Courtesy Callback

Courtesy Callback

Courtesy Callback gives a caller the option to have an agent return their call. This option limits the time a caller waits on the phone for an agent to answer.

Each call has a calculated Estimated Wait Time (EWT). When a caller's EWT approaches zero, the script places a call back to the caller. When the caller answers, the script inserts the caller back into the queue with their original order. The caller reaches an agent in the same time as if they had stayed on the phone.

Figure 1. Courtesy Callback

Courtesy Callback Call Flows

If the caller opts for a callback, they leave their name and phone number. Their request remains in the system. The system places a callback to the caller when the Estimated Wait Time (EWT) reaches the correct value. The caller answers the call and confirms that they are the original caller, and the system connects the caller to the agent after a short wait.


Note

Courtesy Callback is also supported for IP-originated calls.


A typical call flow for this feature follows this pattern:

  1. The call arrives at Unified CVP and the call is treated in the normal VRU environment.

  2. The Call Studio and Unified CCE Courtesy Callback scripts determine if the caller is eligible for a callback based on your rules.

  3. If the caller is eligible, the system announces the EWT and offers the caller a callback when an agent is available.

  4. The caller chooses what to do:

    1. If the caller chooses not to use the callback feature, queuing continues as normal.

    2. If the caller chooses to receive a callback, the system prompts the caller to record their name and to key in their phone number.

  5. The system writes a database record to log the callback information.


    Note

    If the database is not accessible, the system does not offer a callback to the caller.


  6. The caller disconnects from the TDM side of the call. However, the IP side of the call in Unified CVP and Unified CCE is still active. This keeps the call in the same queue position. No queue music plays, so Voice Browser resources used during this time are less than for a caller actually in the queue.

  7. When an appropriate agent is close to being available (as determined by your callback scripts), then the system calls the person back. The system announces the recorded name when the callback is made to ensure that correct person accepts the call.

  8. A VRU session asks the caller to confirm that they are the correct person and that they are ready for the callback.

    If the system cannot reach the callback number (for example, busy lines, RNA, or network problems), then the call is not sent to an agent. The call also does not go to the agent if the caller does not confirm that they are the correct person. The agent is guaranteed that someone is waiting when they take the call. The system assumes that the caller is already on the line by the time the agent gets the call.

    This feature is called preemptive callback because the system assumes that the caller waits a minimal time for the agent and the caller is on the line when the agent answers.

  9. The system presents the call context on the agent screen-pop, as normal.

If the system cannot reach the caller after a configurable number and frequency of retries, the callback cancels and the database status updates appropriately. You can run reports to determine if any manual callbacks are necessary based on your business rules.

See the Configuration Guide for Cisco Unified Customer Voice Portal at https://www.cisco.com/en/US/products/sw/custcosw/ps1006/products_installation_and_configuration_guides_list.html for a call flow description of the scripts providing the Courtesy Callback feature.

Configure Courtesy Callback

Configure Gateway

Configure the VXML Gateway for Courtesy Callback

Complete the following procedure to configure the VXML gateway for Courtesy Callback:

Procedure

Step 1

Copy cvp_ccb_vxml.tcl from the CVP Operations Console to the flash memory of the gateway, as follows:

  1. Select Bulk Administration > File Transfer > Scripts and Media.

  2. In Device Association, select Gateway for Device Type.

  3. Select the required gateway from the Available list.

  4. Click the right arrow icon to move the available gateway to the Selected list.

  5. From the default gateway files, highlight cvp_ccb_vxml.tcl.

  6. Click Transfer.

Step 2

Log on to VXML gateway.

Step 3

Add the cvp_cc service to the configuration service cvp_cc flash:cvp_ccb_vxml.tcl.

This service does not require any parameters.

Step 4

Enter the following command to load the application:

call application voice load cvp_cc

Step 5

On the VoIP dial-peer that defines the VRU from Unified CCE, verify that the codec can be used for recording.

Example:

The following example verifies that g711ulaw can be used for recording in Courtesy Callback:

dial-peer voice 123 voip
 service bootstrap
 incoming called-number 123T
 dtmf-relay rte-nte
 h245-signal
 h245-alphanumeric
 codec g711ulaw
 no vad!
Step 6

Configure the following to ensure that SIP is setup to forward SIP INFO messaging:

voice service voip
 signaling forward unconditional
Step 7

To play the beep to prompt the caller to record their name in the BillingQueue example script add the following text to the configuration:

vxml version 2.0

Note 

Whenever you enable vxml version 2.0 on the gateway, vxml audioerror is off by default. When an audio file cannot be played, error.badfetch will not generate an audio error event.

To generate an error in the gateway, enable vxmlaudioerror.

Example:
The following example uses config terminal mode to add both commands:
config t
vxml version 2.0
vxml audioerror
exit

Configure the Ingress Gateway for Courtesy Callback

Complete the following procedure to configure the ingress gateway for courtesy callback:

Procedure

Step 1

Copy surviability.tcl from the Operations Console to the flash memory of the gateway, as follows:

  1. Select Bulk Administration > File Transfer > Scripts and Media.

  2. In Device Association, select Gateway for Device Type.

  3. Select the required gateway from the Available list.

  4. Click the right arrow icon to move the available gateway to the Selected list.

  5. From the default gateway files, highlight survivability.tcl.

  6. Click Transfer.

Step 2

Log onto the ingress gateway.

Step 3

Add the following to the survivability service:

param ccb id:<host name or ip of this gateway>;loc:<location name>;trunks:<number of callback trunks>
  • id - A unique identifier for this gateway and is logged to the database to show which gateway processed the original callback request.

  • loc - An arbitrary location name specifying the location of this gateway.

  • Trunks - The number of DS0's reserved for callbacks on this gateway. Limit the number of T1/E1 trunks to enable the system to limit the resources allowed for callbacks.

Example:
The following example shows a basic configuration:
service cvp-survivability flash:survivability.tcl
param ccb id:10.86.132.177;loc:doclab;trunks:1!
Step 4

Create the incoming POTS dial peer, or verify that the survivability service is being used on your incoming POTS dial peer.

Example:
For example,
dial-peer voice 978555 pots
service cvp-survivability
incoming called-number 9785551234
direct-inward-dial!
Step 5

Create outgoing POTS dial peers for the callbacks. These are the dial peers that place the actual call back out to the PSTN.

Example:
For example,
dial-peer voice 978555 pots
destination-pattern 978555....
no digit-strip port 0/0/1:23!
Step 6

Use the following configuration to ensure that SIP is set up to forward SIP INFO messaging:

voice service voip signaling forward unconditional


Configure CUBE-E for Courtesy Callback


Note

If you are using CUBE-E then you need sip profile configuration and apply it on outgoing dial-peer through cvp. See the below the example:


A "sip-profile¨ configuration is needed on ISR CUBE E for the courtesy callback feature. To configure the "sip-profile", the following must be added

voice class sip-profiles 103

request INVITE sip-header Call-Info add "X-Cisco-CCBProbe: <ccb param>"

where "<ccb param>" is the "ccb" parameter defined in the survivability service. Add this "sip-profile" to the outgoing dial-peer to the CVP.

The following is a configuration example

voice class sip-profiles 103

request INVITE sip-header Call-Info add "X-Cisco-CCBProbe: id:10.10.10.180;sydlab;trunks:4"

dial-peer voice 5001 voip

description Comprehensive outbound route to CVP

destination-pattern 5001

session protocol sipv2

session target ipv4:10.10.10.10

dtmf-relay rtp-nte

voice-class sip profiles 103

codec g711ulaw

no vad

In the above example, 10.10.10.180 is the CUBE IP and 10.10.10.10 is the CVP Call Server IP.


Note

If CUBE E is used for Courtesy Call Back then under voice service voip class in CUBE E must have media flow-through for Courtesy Call Back to work.


Configure Unified CVP

Configure the Reporting Server for Courtesy Callback

A reporting server is required for the Courtesy Callback feature. Complete the following procedure to configure a reporting server for Courtesy Callback:

Before you begin

Install and configure the Reporting Server.

Procedure

Step 1

In the Operations Console, select System > Courtesy Callback.

The Courtesy Callback Configuration page displays.

Step 2

Choose the General tab.

Step 3

Click the Unified CVP Reporting Server drop-down, and select the Reporting Server to use for storing Courtesy Callback data.

Step 4

If required, select Enable secure communication with the Courtesy Callback database.

Step 5

Configure allowed and disabled dialed numbers.

These are the numbers that the system should and should not call when it is making a Courtesy Callback to a caller.

Note 

Initially, there are no allowed dialed numbers for the Courtesy Callback feature. Allow Unmatched Dialed Numbers is de-selected and, the Allowed Dialed Numbers window is empty.

Step 6

Adjust the Maximum Number of Calls per Calling Number to the desired number.

By default, this is set to 0 and no limit is imposed. This setting allows you to limit the number of calls that are eligible to receive a callback from the same calling number.

If this field is set to a positive number (X), then the Courtesy Callback Validate element only allows X callbacks per calling number to go through the preemptive exit state at any time.

If there are already X callbacks offered for a calling number, new calls go through the none exit state of the Validate element.

In addition, if no calling number is available for a call, the call always goes through the none exit state of the Validate element.

Step 7

Choose the Call Server Deployment tab and move the Call Server you want to use for Courtesy Callbacks from the Available box to the Selected box.

Step 8

Click Save.

The configuration becomes active (is deployed) the next time the Reporting Server is restarted.

Step 9

You can also deploy the new Reporting Server configuration immediately by clicking Save & Deploy.

Note 
After all the updates are configured, restart the Reporting Server to update the configuration.

Configure the Call Studio Scripts for Courtesy Callback

The Courtesy Callback feature is controlled by a combination of Call Studio scripts and ICM scripts. Complete the following procedure to configure the Call Studio scripts:
Procedure

Step 1

Access the .zip file from the CVP OAMP machine from the location C:\Cisco\CVP\OPSConsoleServer\StudioDownloads\CourtesyCallbackStudioScripts.zip.

Step 2

Extract the example Call Studio Courtesy Callback scripts contained in CourtesyCallbackStudioScripts.zip to a folder of your choice on the computer running CallStudio.

Each folder contains a Call Studio project having the same name as the folder. The five individual project comprise the Courtesy Callback feature.

Note 
Do not modify the scripts CallbackEngine and CallbackQueue.
Step 3

Modify the scripts BillingQueue, CallbackEntry, and CallbackWait to suit your business needs.

Step 4

Start Call Studio by selecting Start > All Programs > Cisco > Cisco Unified Call Studio.

Step 5

Select File > Import.

The Import dialog box displays.

Step 6

Expand the Call Studio folder and select Existing Call Studio Project Into Workspace.

Step 7

Click Next .

The Import Call Studio Project From File System displays.

Step 8

Browse to the location where you extracted the call studio projects. For each of the folders that were unzipped, select the folder (for example BillingQueue) and select Finish.

The project is imported into Call Studio.

Step 9

Repeat the action in previous step for each of the five folders.

The five projects display in the upper-left of the Navigator window.

Step 10

Update the Default Audio Path URI field in Call Studio to contain the IP address and port value for your media server.

Step 11

For each of the Call Studio projects previously unzipped, complete the following steps:

  1. Select the project in the Navigator window of Call Studio.

  2. Choose Project > Properties > Call Studio > Audio Settings.

  3. On the Audio Settings window, modify the Default Audio Path URI field to http://<media-server >/en-us/VL/.

  4. Click Apply then click OK.

Step 12

Under CallbackEntry Project, if required, modify the caller interaction settings in the SetQueueDefault_01 node.

  1. In the Call Studio Navigator panel, open the CallBackEntry project and double-click app.callflow to display the application elements in the script window.

  2. Open the Start of Call page of the script using the tab at the bottom of the script display window.

  3. Select the SetQueueDefault_01 node.

  4. In the Element Configuration panel, choose the Setting tab and modify the default settings as required.

Step 13

In the CallbackEntry project, on the Wants Callback page, configure the following:

  1. Highlight the Record Name node and choose the Settings tab.

  2. In the Path setting, change the path to the location where you want to store the recorded names of the callers.

  3. Highlight the Add Callback to DB 1node.

  4. Change the Recorded name file setting to match the location of the recording folder that you created in the previous step.

  5. Ensure the keepalive Interval(in seconds) is greater than the length of the queue music being played. In the Start of Call page.

    The default is 120 seconds for the SetQueueDefaults_01 node.

  6. Save the CallbackEntry project.

  7. In the CallbackWait Project, modify values in the CallbackWait application.

    In this application, you can change the IVR interaction that the caller receives at the time of the actual callback. The caller interaction elements in CallbackWait > AskIfCallerReady page may be modified. Save the project after you modify it.

  8. Validate each of the five projects associated with the Courtesy Callback feature and deploy them to your VXML Server.

Step 14

Right-click each Courtesy Callback project in the Navigator window and select Validate.

Step 15

Right-click each of the projects and click Deploy, then click Finish.

Step 16

Using windows explorer, navigate to %CVP_HOME%\VXMLServer\applications.

Step 17

For each of the five Courtesy Callback applications, open the project's admin folder, in%CVP_Home%\VXMLServer\applications, and double-click deployApp.bat to deploy the application to the VXML Server.

Step 18

Verify that all the applications are running by going into %CVP_HOME%\VXMLServer\admin and double-clicking status.bat. All five applications should display under Application Name and with the status Running.

Step 19

Click Deploy.

Step 20

In the Deploy Destination area, select Archive File and click Browse.

Step 21

Navigate to the archive folder that you have set up.

Example:
C:\Users\Administrator\Desktop\Sample.
Step 22

Enter the name of the file.

Example:
For example Samplefile.zip.
Step 23

Click Save.

Step 24

In the Deploy Destination area click Finish.

Step 25

Log in to OAMP and choose Bulk Administration\File Transfer\VXMLApplications.

Step 26

Select the VXML Server to which you want to deploy the applications.

Step 27

Select the zip file that contains the applications.

Example:
Samplefile.zip.
Step 28

Click Transfer.


Configure the Media Server for Courtesy Callback

Several Courtesy Callback specific media files are included with the sample scripts for Courtesy Callback. Complete the procedure to configure the Media Server for Courtesy Callback:

Procedure

Step 1

During the Unified CVP installation, the media files are copied as: %CVP_HOME%\OPSConsoleServer\CCBDownloads\CCBAudioFiles.zip.

Step 2

Unzip the special audio files and copy to your media server VXMLServer\Tomcat\webapps\CVP\audio.

The sample scripts are set up to use the default location "\CVP\audio" for the audio files.

Step 3

Change the default location of the audio files in the sample scripts to be your media server path.


Configure Unified CCE

Configure the ICM Script for Courtesy Callback

Following figure shows the sample Courtesy Callback ICM script.

Figure 2. Sample Courtesy Callback ICM script


Complete the following procedure to configure ICM to use the sample Courtesy Callback ICM script:

Procedure

Step 1

Copy the CCE example script, CourtesyCallback.ICMS to the CCE Admin Workstation.

The example CCE script is available in the following locations:
  • On the CVP install media in \CVP\Downloads and Samples\.
  • From the Operations Console in %CVP_HOME%\OPSConsoleServer\ICMDownloads.
  • In the Import Script - Manual Object Mapping window, map the route and skill group to the route and skill group available for courtesy callback.
    Note 
    For Small Contact Center Deployment Model, copy the CourtesyCallback.ICMS Routing Script on the desktop where Internet Script editor is installed.
Step 2

In Script Editor, select File > Import Script...

Note 
For Small Contact Center Deployment Model follow the below steps.
  1. Log In to ISE by sub customer user and Click on File>Import Script.
  2. Select the Routing script which is copied in the desktop CourtesyCallback.ICMS.
Step 3

In the script location dialog, select the CourtesyCallback.ICMS script and click Open.

Note 

You can bypass the set variable "Set media server" Highlighted as number 1 node in the Figure 57: Sample Courtesy Callback ICM script , as VXML Server, Call Server, and Media Server are collocated.

Step 4

Define a new ECC variable for courtesy callback.

A new ECC variable is used to determine if a caller is in a queue and can be offered a callback.

Step 5

Navigate to ICM Admin Workstation > ICM Configuration Manager > Expanded Call Variable List tool to create the ECC Variable user.CourtesyCallbackEnabled specific to Courtesy Callback.

Step 6

Set up the following parameters that are passed to CallbackEntry (VXML application):

Example:
  • ToExtVXML[0] =concatenate("application=CallbackEntry",";ewt=",Call.user.microapp.ToExtVXML[0])

  • ToExtVXML[1] = "qname=billing";

  • ToExtVXML[2] = "queueapp=BillingQueue;"

  • ToExtVXML[3] = concatenate("ani=",Call.CallingLineID,";");

CallbackEntry is the name of the VXML Server application that will be executed:

ewt is calculated in Block #2.

qname is the name of the VXML Server queue into which the call will be placed. There must be a unique qname for each unique resource pool queue.

queueapp is the name of the VXML Server queuing application that will be executed for this queue.

ani is the caller's calling Line Identifier.

Step 7

Create Network VRU Scripts.

Step 8

Navigate to ICM Configuration Manager > Network VRU Script List tool, create the following Interruptible Script Network VRU Scripts.

Name: VXML_Server_Interruptible

Network VRU: Select your Type 10 CVP VRU

VRU Script Name: GS,Server,V,interrupt

Timeout: 9000 seconds

Interruptible: Checked

Step 9

Choose ICM Configuration Manager > Network VRU Script List tool to create the following Non-Interruptible Script Network VRU Scripts.

Name - VXML_Server_NonInterruptible

Network VRU - Select your Type 10 CVP VRU

VRU Script Name - GS,Server,V, nointerrupt

Timeout - 9000 seconds ( must be greater than the maximum possible call life in Unified CVP)

Interruptible: Not Checked

Step 10

Verify that the user.microapp.ToExtVXMLECC variable is set up for an array of five items with a minimum size of 60 characters and the user.microapp.FromExtVXML variable is set up for an array of four with a minimum size of 60 characters.

Note 

Verify that you have at least one available route and skill group to map to the route and skillgroup in the example script.

Step 11

Save the script, then associate the call type and schedule the script.

Note 
For Small Contact Center Deployment Model ensure the resources used in this Routing Script, like Network VRU Scripts , ECC variables etc are specific to the sub customer.