WARNING: This is alpha version of Callback feature. Feature released in WMS version 3.88.42007.36
This functionality allows the customer to request a callback instead of waiting for the operator's response.
To configure this functionality need to create 6 contexts. Or import them from the attached file:
Context 1: cgCbRequestCallback
The context that is used to exit the queue and go to the confirmation ivr.
Context 2: cgCbConfirm
Context to confirm the phone number/enter another number/return to the queue/etc.
where:
default - number for checking the original caller id. If the number is valid, then we offer the customer to order a call to this number, or enter another: "Press 1 have an agent call you back to the phone number <say-as interpret-as='telephone'>${CALLERID(num)}</say-as>. Press 2, to enter a different callback number. Press 3, to listen again. Press 0 to return to the queue on hold."
Example |
---|
$[! ${REGEX("^[+0-9][0-9]{6,14}$" ${CALLERID(num)})}] |
0 - number to return to the queue at the same position as the caller before pressing 1
To return to the queue with the music on hold, use the following custom application:
Example |
---|
Queue(${QUEUENAME},C,,,,,,,,${QUEUEPOSITION},class2) |
, where "class2" is the name of the MoH class.
To return to the queue without music on hold, use the following custom application variant:
Example |
---|
Queue(${QUEUENAME},Cr,,,,,,,,${QUEUEPOSITION}) |
1 - number to create a new call instead of the current one
To execute Originate(), you need to set the following channel variables:
Variable | Value | Comments |
---|---|---|
ORIGINATE_CHANNEL | Local/${CALLERID(num)}@cgCbIn/n | cgCbIn is the name of Context 5 |
ORIGINATE_CONTEXT | cgCbOut | cgCbOut is the name of Context 6 |
ORIGINATE_EXTEN | ${CALLERID(num)} | number to callback |
ORIGINATE_PRIORITY | 1 | |
ORIGINATE_CALLERID | Callback: ${CALLERID(name)} <${CALLERID(num)}> | setting the caller's number and name |
ORIGINATE_TIMEOUT | 3600 | waiting time (in seconds) for operator response before timeout. In the example - 1 hour. |
ORIGINATE_ASYNC | true | enabling asynchronous mode. If it's true - the dialplan will continue without waiting for the operator's response. |
ORIGINATE_VARIABLES | QUEUENAME=${QUEUENAME},QUEUEPOSITION=${QUEUEPOSITION} | setting in a new channel variables that we need further |
and execute Custom application -> Originate(). After that, playback "Thank you for requesting a callback. You may now hang up and wait for our call. Goodbye".
2 - number for entering a different callback phone
3 - number to repeat the message
Context 3: cgCbEnteringPhone
Context for entering another phone number:
where:
default - play message "Please enter the phone number. Otherwise you may press 9 to return to the queue on hold." and wait response
9 - number to return to the queue at the same position as the caller before pressing 9
[0-8]. - number to verify the input. If the entered number does not start from zero, the second digit is not zero and its length is not 7-15, then playback "The number you entered: <say-as interpret-as='telephone'>${ENTERED_NUMBER}</say-as> is incorrect." and go to the default number. Otherwise, go to context "cgCbValidatePhone".
Example |
---|
$[ ${REGEX("^0[1-9][0-9]{5,13}$" ${ENTERED_NUMBER})}] |
Context 4: cgCbValidatePhone
Context for checking the callback number:
where:
default - number to playback the client's phone number, which he entered: "You have entered the following phone number: <say-as interpret-as='telephone'>${ENTERED_NUMBER}</say-as>", "Press 1 to confirm. Press 2 to try again. Press 3 to listen again. Press 0 to return to the queue on hold.".
i, t - numbers for processing timeout and invalid input.
0 - number to return to the queue at the same position as the caller before pressing 0
1 - number to confirm phone number
2 - number to re-enter phone
3 - number to repeat the message
Context 5: cgCbIn
Context for adding a callback to the queue for the same position.
Example |
---|
Queue(${QUEUENAME},Cr,,,,,,,,${QUEUEPOSITION}) |
Context 6: cgCbOut
Context that is executed when the operator answers the call. Used for outgoing call to the client. And also for handling error/notifications.
Setting the variable "PRESERVE_CID" allows you to save the callerid name of the original call.
To enable the callback, in the queue settings in the dialplan parameter, select the name of the first context (cgCbRequestCallback):
To notify customers about the possibility to have a callback, you have to playback a notification of the possibility of a callback before entering to the callgroup.
NOTE: Possibility to enable periodic announcements going to be added in next versions.