Three way calling has been a difficult feature to support primarily because Brooktrout cards and many other TAPI devices don't provide good conference calling support through TAPI. Voice modems are not acceptable devices for making 3 way calls - they do not support conference calling at all. It is a waste of time to attempt to implement three way calling without a hardware configuration that supports it.
Don't believe us about conference calling with voice modems? If you choose to try to do three way calling with a voice modem, expect to fail and please don't ask us for help.
Supported Hardware Configurations for Three-Way Calling
There are two hardware configurations that can correctly support three-way calling with Active Call Center:
Three Way Calling Overview
Three way calling encompasses a variety of different scenarios, the most elementary of which is the following:
Some advanced applications for three-way calling include call recording ("this call will be recorded for quality assurance purposes"), pre-paid calling card applications, and integrated call routing applications without using a PBX.
Three Way Calling Features
Active Call Center provides powerful three-way calling features that allow you nearly complete flexibility when configuring a call routing application. There are three three-way calling 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 = "Conference"
Implementing Three-Way Calling
Implementing three-way calling 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 creating a three-way call or not creating a three-way call. During a three-way call, 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 both before and after the three-way call has started.
Here are the basic steps to implementing a three-way call:
Step 1. Call the third party.
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 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 three-way call is either successfully completed or aborted.
Step 2. Interact with the third 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 a three-way 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 send the call to voice mail."
Step 3. Based on the input of the dialed party, abort or complete the three-way call.
To abort a three-way call 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 three-way call, set the TransferCallTo variable to "Conference". Active Call Center will create a three-way call between the original caller, Active Call Center, and the third party.
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
' Three-way call was accepted, finish it.
TransferCallTo = "Conference"
' Continue the call at the next node.
GotoNode = "NextNode"
Else
' Transfer was rejected, abort.
TransferCallTo = "Abort"
End If
Applications for Three Way Calling
Some sample applications for three-way calling include: