<transfer>

The <transfer> element directs the interpreter to connect the caller to another entity (e.g., telephone line or another voice application). During the transfer operation, the current interpreter session is suspended.

Attributes

name Stores the outcome of a bridge transfer attempt.
cond (defaults to true) An expression that must evaluate to true in order for the form item to be visited.
expr The initial value of the form item variable; default is ECMAScript undefined. If initialized to a value, then the form item will not be visited unless the form item variable is cleared.
dest The telephone number of the destination. When using the "dest" attribute, you should always prefix a "1" before the telephone number. For extensions, the format is <transfer dest="tel:+11234567890;postd=1234"/>. To insert a pause before the extension is dialed, you can add a "p" before the extension number (i.e. "p1234"). NOTE: If using the transfer tag for outbound, please note that you are not able to transfer to another toll free number, as the outbound call is placed from a toll-free number.
destexpr An ECMAScript expression yielding the telephone number of the destination. NOTE: If using the transfer tag for outbound, please note that you are not able to transfer to another toll free number, as the outbound call is placed from a toll-free number.
type (defaults to "bridge") The type of transfer. The value can be "bridge", "blind", or "consultation". This setting overrides the bridge attribute.
bridge (defaults to "true") Instructs the platform to perform a bridge transfer rather than a blind transfer. See the notes section below.
connecttimeout (defaults to 30 seconds) The time to wait while trying to connect the call before returning the noanswer condition.
maxtime (defaults to 0) The time that the call is allowed to last, or 0 if no limit is imposed.
transferaudio The URI of an audio source to play while a bridge transfer attempt is in progress (before far-end answer). Nothing can be played during blind transfer attempts as those calls are immediately handed off to the phone switch.
aai Application-to-application information. A string containing data sent to an application on the far-end, available in the session variable session.connection.aai. The transmission of aai data may depend upon signaling network gateways and data translation (e.g. ISDN to SIP); the status of data sent to a remote site is not known or reported. Although all platforms must support the aai attribute, platforms are not required to send aai data and need not support receipt of aai data. Platforms that cannot receive aai data must set the session.connection.aai variable to the ECMAScript undefined value. The underlying transmission mechanism may impose data length limits.
aaiexpr An ECMAScript expression yielding the AAI data.

Notes

Exactly one of "dest" and "destexpr" may be specified. Telephone URLs are not accepted in either of those attributes. A "," can be used on channelized T1 and analog systems to indicate a 1.5 second pause during dialing. However, the "," will NOT work if embedded in a dial string on an ISDN system. Bridge transfer is allowable on all platforms. Blind transfer is only allowable on analog and channelized T1 servers connected to PBXes that permit blind transfers. For analog blind transfer, the platform will dial the destination and immediately hangup. If a hookflash is required to initiate blind transfer on the analog system, insert "&" into the dial string. For cT1 blind transfer, the platform will automatically prepend a hookflash to the destination dial string. One shadow variable is set name$.duration. The other two shadow variables, name$.inputmode and name$.utterance, are not supported. "Connecttimeout" refers specifically to the amount of time the system will wait for the far-end to pick up assuming an outbound call can be made at all. If, however, the IVR system is out of available ports through which to dial out, the <transfer> tag will return immediately with a network error. The following are possible outcomes for a bridge transfer after the connection to the callee is established: 1) The caller disconnects. Reason: The caller hung up. 2) The caller disconnects. (transfer outcome: near_end_disconnect) Reason: The caller forced the callee to disconnect via a DTMF or voice command. 3) The platform disconnects callee. (transfer outcome: maxtime_disconnect) Reason: The callee was disconnected by the platform because the call duration reached the value of maxtime attribute. 4) The network disconnects callee. (transfer outcome: network_disconnect) Reason: The network disconnected the callee from the platform. 5) The callee disconnects. (transfer outcome: far_end_disconnect) Reason: The callee hung up.


Example

<?xml version="1.0"?>
<vxml version="2.0">
  <form>
    <field name="targetnumber" type="digits">
      <prompt>
        What phone number would you like to dial?
      </prompt>
    </field>
    <transfer destexpr="targetnumber">
      <prompt>
        Transferring to
        <say-as type="acronym">
          <value expr="targetnumber"/>
        </say-as>.
      </prompt>
    </transfer>
  </form>
</vxml>

The output of the above script would be:

Computer: What phone number would you like to dial?
Human: One two one two five five five one two one two.
Computer: Transferring to one two one two five five five one two one two.
Computer: (transfers call to 1-212-555-1212)



Child Tags

<audio>, <catch>, <enumerate>, <error>, <filled>, <grammar>, <help>, <noinput>, <nomatch>, <prompt>, <property>, <value>



Parent Tags

<form>