VoiceXML with CCXML for Call Transfer and Bridging

The section explains how a VoiceXML dialog, started by a CCXML application using the dialogstart element, can perform a call transfer or bridge two calls together.

Note: How a VoiceXML dialog started directly by an incoming call performs transfer is described here VoiceXML Call Transfer and Bridging.

The VoiceXML dialog will have been started by the CCXML application using a dialogstart element.

When the VoiceXML dialog wishes to transfer or bridge the call, it uses a transfer element with:

A sample ccxml transfer/bridge application (transfer_sample.ccxml) is provided in /opt/blueworx/vr/sample/ccxml. The VoiceXML dialog it starts, asks the caller to specify which type of transfer they would like to test. In order for the application to work the dest variable must be set in transfer_sample.vxml. This is used as the destination for the blind and consult transfers and the bridge. Initially it is set to "sip:addressHereOrThisWillNotWork".

In each case the VoiceXML dialog uses the transfer element to trigger a dialog.transfer event into the CCXML application. For blind and consultation transfers CCXML provides messages that can be sent to trigger the transfer. These are "bvr.transfer" and "bvr.consult" .

In the case of a blind transfer the VoiceXML transfer element will always complete with success.

In the case of a consultation transfer the VoiceXML transfer element will complete reflecting the success of the transfer.
In the case of a bridge transfer, there is no automatic transfer performed by CCXML. It is up to the CCXML application to perform the transfer action using the CCXML createcall and join elements or createcall with a joinid attribute as shown in the example below. It is also the responsibility of the CCXML application to reflect the success or failure of the transfer back to the VoiceXML dialog. It does this by sending the BVR specific message "bvr.bridge.result" whose namelist attribute takes a single variable "successful". "successful" is set to "true" in the case of a successful bridge and "false" in the case of a failure.