TransferCall

Purpose

Use TransferCall to transfer a caller to another number.


A screen capture of the Action TransferCall window

Description

A voice mail application may offer the option of transferring rather than leaving a message, or an "automated attendant" may transfer a caller who hesitates for too long, to a human agent. Your ability to transfer a call depends on the capabilities of your switch.

The operation of TransferCall assumes that the voice application is running on a channel that is already active (handling an incoming call). Blueworx Voice Response assumes that the transfer is a screened transfer, the caller is put on hold before the signals are sent to the switch, and the transfer is completed only if the third party answers. If your switch only supports blind transfer, you need to set the Ring Wait and Ring Time parameters to 0 (see Ring Wait ).

TransferCall causes an automatic fade out of any background music.

TransferCall supports use of the system variable SV541 to pass additional call information from a state table to SIP, and SV542 to receive information back from SIP. See Transferring information between a state table and SIP for more details on how information can be communicated between the application and SIP.

A successful TransferCall action can be followed by a PlayPrompt to announce the caller to the third party (see Figure 1).

An unsuccessful TransferCall action must be followed by a ReconnectCall action or a TerminateCall action, as appropriate. Figure 1 shows the possible outcomes and what the voice application should try to do in each case.

The TransferCall action works in three distinct steps:

  1. It dials the number string, including the feature code.
  2. It waits for a ring tone.
  3. It waits for the phone to be answered.

Dialing the number string

While dialing the number, a period (.) in the dial string causes the action to wait for a dial tone before proceeding. If the action does not receive a dial tone within the time specified in the Pause parameter, it terminates with an Outbound Line Problem result. If it receives a tone other than a dial tone, it terminates with an Unexpected Tone, Phone Busy or Network Busy result, depending on the tone received.

Waiting for a ring tone

After the number has been dialed, TransferCall waits for a ring tone. Because some protocols do not provide ring tones, and because it is possible for the call to be answered before a ring tone is generated, the action can also detect that the call has been answered during this time. This means that, depending on the protocol, an answer is detected either by signaling or by voice energy. If a ring tone or an answer is not detected within the time specified in the Ring Wait parameter, the action terminates with an Outbound Line Problem result. If an answer is detected, the action terminates with a Succeeded result. If the action receives a tone other than a ring tone, the action terminates with an Unexpected Tone, Phone Busy, or Network Busy result, depending on the tone received.

Waiting for the phone to be answered

In the final step, the action waits for up to the time specified in the Ring Time parameter for the call to be answered. This is detected by signaling for protocols that support answer detection or by voice energy for protocols that do not (loop start and ground start). If the call is not answered in the specified time, the action terminates with a No Answer result.

Figure 1. Call transfer: The sequence of state table actions and result states
This diagram is a flowchart representation of the TransferCall information that is provided in the text before and after the diagram. It shows the possible outcomes depending on whether or not the call transfer to a third party is successful, together with the actions that a voice application should take in each case.

Like MakeCall and Dial, TransferCall can detect voice energy. When TransferCall transfers a call, the call is considered "answered" in most signaling protocols when the receiver on the ringing phone is lifted (off hook). In some protocols, the call is not considered answered until voice energy is detected. If TransferCall detects voice energy, independent of the signaling protocol used, the transfer is successful.

If the transfer is successful, you must issue a TerminateCall action to disconnect the original call, because this does not happen automatically.

If the transfer is unsuccessful, reconnection to the original call is dependent on the type of switch. You should issue the ReconnectCall action in any case, to allow for portability between switches.

Call progress tones

TransferCall can recognize the call progress tones. The tones that are received when an application executes a TransferCall action depend on the precise switch configuration for your system. To display the call progress tone values, from the Welcome window, select Configuration, then Pack Configuration. The information on the call progress tones is under the Direction & Tones button. For more information see the Blueworx Voice Response for AIX: Configuring the System information.

To succeed, TransferCall expects certain call progress tones (for example, a dial tone after the transfer signal, and a ring tone after dialing). If other tones are detected (for example, a busy tone), the System: Progress tone type (SV176) and System: Progress tone ID (SV175) system variables are set to identify the tone received. The tones that TransferCall recognizes are assigned specific results that identify the tone, as listed under Possible results. If TransferCall does not recognize a tone, it returns the Unexpected Tone result.

Note that the dial tone provided by the public switched telephone network in Italy is not recognized.

Parameters

The parameters for TransferCall identify the number and format of the digit string. They also include three timing parameters.

Phone Number
Specifies the digit string TransferCall sends to the switch. This parameter can be a variable or a constant.

The Transfer Call Feature Code and Transfer Call Request Signal system parameters in the signaling Type parameters group identify the digit string that your switch recognizes as a request to transfer a call to another number. Some switches require only a hook flash action to initiate a transfer. In this case, make Blueworx Voice Response generate a hook flash by setting the Transfer Call Request Signal system parameter to the default (signaling). For information about configuring these parameters as required by your switch, see the Blueworx Voice Response for AIX: Configuring the System information.

If you are using MF signaling, see Phone number and format for MF signaling for more information.

Format
Defines the format of the digit string sent by Phone Number. This parameter can be a variable or a constant.

When TransferCall is invoked, the parameter values define both the digit string that contains all the numbers TransferCall sends to the switch and a format for the digit string. The format defines where TransferCall should pause as it sends the digits specified in the digit string.

TransferCall recognizes three format characters:

#
"This is a digit."
, (comma)
"Wait the number of seconds specified by the Pause parameter." For more information, see Pause.
. (period)
"Wait the number of seconds specified by the Pause parameter to receive a dial tone. Proceed to sending the digit string as soon as the dial tone is received. If the dial tone is not received before the specified time elapses, terminate the TransferCall action with the Outbound Line Problem or Unexpected Tone result." For more information, see Pause.

If the Dial Tone Detection system parameter is set to no dial tone, the period has the same effect as a comma.

For example, the format of a digit string that dials 9 to get a trunk, followed by a seven-digit telephone number, could be either #,####### or #.#######, depending on whether you want Blueworx Voice Response to proceed immediately after pausing, or proceed only when the dial tone is received.

If the switch does not send a standard dial tone, use a comma rather than a period to format the digit string. This will ensure that the digits are sent after the time specified by the Pause parameter, regardless of the tone received.

Phone number and format for MF signaling

When you define the digit string and format for a call that is to be made using multifrequency (MF) signaling, the digit string must include the characters that define the MF auxiliary signals that send a start digit (KP) and stop digit (ST). MF auxiliary signals as follows:

Character

MFAuxiliarySignal

*

Codeop11

#

Codeop12

D

KPorKP1

B

KP2

C

ST

For example, using MF signaling, the digit string and format used to send an area code and telephone number preceded by a 9 would look like this:

    D9CD4085551212C
    ###,############

The switch reads this combination as KP (start of a digit sequence), 9 (get a trunk), ST (end of a digit sequence), pause, KP (start of a digit sequence), 4085551212 (the telephone number), ST (end of a digit sequence).

MF signaling can also be specified in the Transfer Feature code system parameter, because digits in that string are also mapped in this way.

Pause
Specifies how long to wait to receive a dial tone when a comma or a period is specified in the format (see Format). The unit of measure is seconds. When waiting for a dial tone (when a period is specified in the format), the default is set by the Maximum Dial Tone Wait system parameter; the maximum allowable value is 30 seconds. If this parameter is left as 0, the default value is used.
Ring Wait
Specifies how long to wait after sending the digits for a ringback tone. The unit of measure is seconds. The default is set by the Maximum Ring Wait system parameter; the maximum allowable value is 30 seconds. If this parameter is left as 0, the default value is used unless Ring Time is also 0.

If both Ring Wait and Ring Time are set to 0, this is a request for a blind transfer. TransferCall transfers the call, then immediately returns the Succeeded result without waiting for any further activity on the channel. For example, if your switch and protocol allow blind transfer, you can use it to transfer incoming calls to an automatic call distributor (ACD) call group for handling.

Ring Time
Specifies how long to wait while the telephone rings. The unit of measure is seconds. The default is set by the Maximum Ring Time system parameter; the maximum allowable value is 120 seconds. If this parameter is left as 0, the default value is used unless Ring Wait is also 0. See the Ring Wait description.

If both Ring Wait and Ring Time are set to 0, this is a request for a blind transfer. For more information, see Ring Wait.

Possible results

TransferCall can have one of the following results:

Succeeded
The switch has received the signal and made the call. You can use a PlayPrompt action to announce the caller to the third party. You must issue a TerminateCall action.
Invalid Phone Number
The phone number or format string specified in the action, or the feature code specified in the Transfer feature code system parameter contained invalid characters, or the number of digits in the phone number parameter did not match the number of # characters in the format string parameters.

Issue a ReconnectCall action next.

Phone Busy
The telephone number dialed was busy. Issue a ReconnectCall action next.
Network Busy
The network was busy and the telephone number could not be dialed. Issue a ReconnectCall action next.
No Answer
The telephone number dialed did not answer. Issue a ReconnectCall action next.
Outbound Line Problem
There was a problem with the outbound line. Issue a ReconnectCall action next.
Unexpected Tone
Unexpected call progress tone was detected. Issue a ReconnectCall action next.
Caller Hung Up
The caller has hung up. Issue a TerminateCall action next.

ASCII syntax

When using an ASCII editor, code this action with these parameters in the following order:

  1. Number
  2. Format string
  3. Pause time
  4. Ring wait time
  5. Ring time

For example:

label: "Check Edges"
        TransferCall("735789", "######", 4, 15, 15)
          edge EDGE_TC_SUCCESSFUL:                      successful
          edge EDGE_TC_INVALID_PHONE_NO:          invalid_phone_no
          edge EDGE_TC_PHONE_BUSY:                 phone_busy
          edge EDGE_TC_NETWORK_BUSY:               network_busy
          edge EDGE_TC_NO_ANSWER:                          no_answer
          edge EDGE_TC_OUTBOUND_LINE_PROBLEM: outbound_line_problem
          edge EDGE_TC_UNEXPECTED_TONE:    unexpected_tone
          edge EDGE_HUP:                                         hup
        ;

The parameters and edges are described above under "Parameters" and "Possible results". For more information, see Testing a state table using the debugger.