Announced Call Transfer Overview
Announced call transfers encompass a variety of different scenarios, the most elementary of which is the following:
A number of variations of this scenario are possible. Here are some that are possible in the example above with announced call transfers:
Active Call Center provides powerful announced call transfer features that allow you nearly complete flexibility when configuring a call routing application. There are three announced call transfer features that are available:
TransferCallTo = "Call 5551212"
TransferCallTo = "Abort"
Note: At this time, the Abort features uses an "Unhold" function to retrieve the main call. This information will be useful if you are configuring dialing commands for a Brooktrout or other telephony card.
TransferCallTo = "Transfer"
Implementing Announced Call Transfer
Implementing sophisticated transfers requires calling the party to whom the call will be transferred, asking some questions to that party, and then responding to the feedback by either transferring or not transferring the call. During an announced call transfer, the Call Tree will continue processing just as if it were on a normal phone call. This facilitates conditional branching, looping, and other sophisticated call handling.
Here are the basic steps to implementing an announced transfer:
Step 1. Call the party to whom the call may be transferred.
Specify the number to call in a VBScript macro by setting the TransferCallTo variable to "Call ###", where ### represents the number to call. For example:
TransferCallTo = "Call 5551212"
If the call is dialed successfully, the Call Tree will continue at the next Node as determined by the GotoNode variable or the branching rules specified on the Responses Tab.
If the call cannot be completed (for example, busy, no answer, no available line, or a random disconnect), the call will end by default. To override this default transfer behavior, set the TransferFailedGotoNode variable to the name of a Node to which the Call Tree should branch on a failed transfer. The TransferFailedGotoNode variable overrides the value that may be set in the GotoNode variable. In the example below, Fail_Node is a node that handles failed call transfers:
TransferFailedGotoNode = "Fail_Node"
The TransferFailedGotoNode variable setting will work even in future Nodes until the transfer is either successfully completed or aborted.
Step 2. Interact with the dialed party.
You can use all the features that are available in a Call Tree to interact with the dialed party. The objective should be to determine whether or not the dialed party wishes to accept the call, and if not, whether any information or action should be relayed to the waiting party.
For example, Active Call Center could have asked the waiting caller to speak their name and saved the audio to a temporary wave file. It could then mention to the dialed party that "You have an incoming call from ..." and play back the wave file to the dialed party. The dialed party could be given a touch tone menu: "Press 1 to accept the call, 2 to take a message, 3 to transfer the call to someone else."
Step 3. Based on the input of the dialed party, abort or complete the transfer.
To abort a call transfer attempt and return the Call Tree to the waiting party, simply set the TransferCallTo variable to "Abort". The Call Tree will continue at the next Node with the waiting party. Keep in mind that the TransferCallTo variable, like all variables, is processed after the macro has executed. Therefore, any such secondary TransferCallTo requests must be made in a Node other than the one in which the transfer is initiated.
To complete a call transfer, set the TransferCallTo variable to "Transfer". Active Call Center will transfer the waiting party and disconnect from the call.
The sample VBScript macro below shows how a user's response may be used to either abort or complete a transfer:
' This code assumes the caller was
' asked to press 1 to accept the call
' or anything else to reject the call.
If Response = "1" Then
' Transfer was accepted, finish it.
TransferCallTo = "Transfer"
Else
' Transfer was rejected, abort.
TransferCallTo = "Abort"
End If
Example Demonstrating Announced Call Transfer
The Virtual Receptionist example demonstrates announced call transfer features with the TransferCallTo variable.
Special Note on Dialogic Hardware
Our tests with the Dialogic D/4 PCI indicate that the card issues an extra hook flash when the complete transfer request is sent. On some PBX systems, this may prevent announced transfer features from working entirely. On some PBX systems, we found that one workaround is to create a 3 way call and then have Active Call Center disconnect from the call, leaving the original call connected to the transferred party.