VoiceXML 2.1 Development Guide Home  |  Frameset Home

  Disconnect Events  |  TOC  |  Transfer sample Code  

Transfer Exceptions


VoiceXML Transfer Exceptions

The following exceptions only occur during or after the execution of a <transfer> in the VoiceXML application. Note the fact that they are NOT caught by using the standard 'catch event' syntax, but rather, as part of a conditional statement within the <transfer> form-item itself. The syntax for successfully catching these events is as follows:

<if cond="TransferName == condition1'">
      <!-- do something here -->
<elseif cond="Transfername == condition2'"/>
      <!-- do something else here -->
</if>



When placing an outbound call via the <transfer> element in your application, it is always considered best practice to add handlers for ALL of the events detailed below:

Condition Explanation
maxtime_disconnect Maxtime of <transfer> expired
busy Destination number was busy
network_busy Network busy....contact Voxeo Support
noanswer Connect timeout reached
far_end_disconnect Callee disconnected during the transfer
near_end_disconnect Caller disconnected during the transfer
error.connection.noauthorization Caller not authorized to call the specified destination
error.connection.baddestination The specified call destination URL is malformed, (check your code)
error.unsupported.transfer.blind Blind transfers are disallowed on the Voxeo platform by default. However, this can be enabled, with a few restrictions. Contact our Sales Team for details.


Transfer_Example.vxml


<?xml version="1.0" encoding="UTF-8"?>

<vxml version = "2.1" >

<meta name=Maintainer" content="YOUR_EMAIL@SOMEWHERE.COM"/>

<form id="CallTransfer">
  <block>
    <prompt>
      Preparing to dial the number
    </prompt>
  </block>

  <transfer name="MyCall" dest="tel:+1234567890"
          bridge="true" connecttimeout="20s" maxtime="60s">

    <filled>
      <if cond="MyCall == 'busy'">
      <log expr=" '***** BUSY *****' "/>
        <prompt>
          Sorry, the lines are busy. Please try again later.
        </prompt>
        <exit/>

      <elseif cond="MyCall == 'noanswer'"/>
      <log expr=" '***** NOANSWER *****' "/>
        <prompt>
          Hey, nobody is answering the phone.
        </prompt>

      <elseif cond="MyCall == 'far_end_disconnect'"/>
      <log expr=" '***** FAR END DISCONNECT *****' "/>
        <prompt>
          Your party must have hung up. How rude.
        </prompt>

      <elseif cond="MyCall == 'near_end_disconnect'"/>
      <log expr=" '***** NEAR END DISCONNECT *****' "/>
        <submit next ="MyCoolCleanupPage.jsp"/>
   
      <elseif cond="MyCall == 'maxtime.disconnect'"/>
        <log expr=" '***** MAXTIME DISCONNECT  *****' "/>
        <prompt>
          Your call ran over the maxtime of sixty seconds,
            and your called party has been disconnected.
        </prompt>

      </if>
    </filled>
  </transfer>
</form>
</vxml>






  ANNOTATIONS: EXISTING POSTS
awirtz
2/11/2005 8:22 PM (EST)
Inside a <transfer> block, connection.disconnect.hangup events are suppressed to allow the disconnect event to be returned as a value of 'near_end_disconnect'

login

  Disconnect Events  |  TOC  |  Transfer sample Code  

© 2003-2008 Voxeo Corporation  |  Voxeo IVR  |  VoiceXML & CCXML IVR Developer Site