Many voice applications give the caller the option
of speaking to a real person. Blueworx Voice Response has a
number of different transfer capabilities, and can use the facilities
of the telephone switch, a computer telephony integration (CTI) link,
or its own ability to join two calls together. These capabilities
are not included in the CCXML standard, therefore they are made available
by using the <send> element to send platform
specific messages to Blueworx Voice Response.
There are a number of different transfer options your CCXML application
can use. Your application can either transfer blind (without checking
that an agent is available), or it can check before transferring the
call. When the <send> element is used to transfer
calls, its attributes must be set as follows:
- target
-
The connectionid of the channel being transferred.
- name
- The type of event being sent. It is specified as a string beginning
with ibmwvr. and is used to represent the transfer
option required:
- ibmwvr.transfer
- Transfers a call without checking that an agent is available (blind
transfer).
- ibmwvr.conference
- Sets up a conference call without checking that the other party
is available (blind conference). Requires a telephony service with
CTI capability.
- ibmwvr.consult
- Puts a call on hold while connecting to an agent. The connection
to the agent (or other third party) is monitored for its outcome in
what is known as a screened transfer.
If this value is used
for the
name attribute, the following variables
should be included in the namelist attribute:
- purpose
- The variable named purpose declares the purpose
of the consult and should be set to a value of either "conference" or "transfer".
On some platforms it is not possible to complete a transfer from a
consult where the purpose was "conference" (or to
complete a consult from a transfer).
- wait_for_answer
- The variable named wait_for_answer indicates
at what stage a consult is considered to be successful and should
be set to the value of either "true" or "false".
If wait_for_answer="true", the consulted connection
must reach the connected state before the consult request returns
a ibmwvr.consult.successful event. If wait_for_answer="false",
an ibmwvr.consult.successful will be returned as
soon as the consultation call has been started. Some line signaling
types do not support wait_for_answer="true".
- ibmwvr.consult.transfer
- Transfers a held call to an agent.
- ibmwvr.consult.conference
- Sets up a conference call between the held party and the consulted
party. Requires a telephony service with CTI capability.
- ibmwvr.consult.retrieve
- Returns to a held call in the event of an agent being busy.
- namelist
- This is used to pass further information to the platform, such
as the telephone number to which a call is to be transferred.
Note: The
variable named wait_for_answer should be set to
the value of either true or false. wait_for_answer indicates
at what stage a consult is considered to be successful. If wait_for_answer="true",
the consulted connection must reach the CONNECTED state
before the consult request returns a ibmwvr.consult.successful event.
If wait_for_answer="false" an ibmwvr.consult.successful will
be returned as soon as the consultation call has been started. Some
line signaling types do not support wait_for_answer="true".
- targettype
- For call transfer, this attribute must be set to "'connection'".
To transfer a connected telephone call to an agent, or to set up
a conference call, your CCXML document must use a
<send> element
within a
<transition> element. For example,
to transfer a call without checking that an agent is available:
<transition event="connection.connected" name="evt">
<var name="target" expr="'tel:+441234567890'"/>
<send target="evt.connectionid" name="'ibmwvr.transfer'"
namelist="target" targettype="'connection'"/>
</transition>
Refer to the Blueworx Voice Response for AIX:
Deploying and Managing VoiceXML and Java Applications information for
information on using telephone URLs.
To set up a conference call, your CCXML document must use a
<send> element
within a
<transition> element. For example,
to set up a conference call without checking that a participant is
available:
<transition event="connection.connected" name="evt">
<var name="target" expr="'tel:+441234567890'"/>
<send target="evt.connectionid" name="'ibmwvr.conference'"
namelist="target" targettype="'connection'"/>
</transition>
Refer to the Blueworx Voice Response for AIX:
Deploying and Managing VoiceXML and Java Applications information for
information on using telephone URLs.
Note: The base
Blueworx Voice Response for AIX system
does not support call conference. To use
ibmwvr.conference or
ibmwvr.consult.conference,
you must have a telephony service
with CTI capability. To
use a telephony service, follow the instructions in “Adding Telephony
Capability”, in
Blueworx Voice Response for AIX:
Deploying and Managing VoiceXML and Java Applications.
To
set up a conference call, after first checking that the other party
is available:
- Use <send target="evt.connectionid" name="'ibmwvr.consult'"
namelist="target" targettype="'connection'"/> to establish
a new call.
- Use <send target="evt.connectionid" name="'ibmwvr.consult.conference'"
namelist="target" targettype="'connection'"/> to connect
the held party and the consulted party.
Call transfer events
The
result of attempting a <send> is given by
a subsequent success or failure event that can be used to execute
a <transition> that handles success or failure.
The failure event that is generated when an attempted action fails
is formed by pre-pending the string error. to the
string used as the name attribute in the <send>.
For example a blind transfer failure is indicated by an error.ibmwvr.transfer event.
The success event that is generated when an attempted action is successful
is formed by appending the string .successful to
the string used as the name attribute in the <send>.
For example a blind transfer success is indicated by an ibmwvr.transfer.successful event.
If for some reason a
SIP blind or attended transfer operation using a telephony
service with CTI capability (such as Genesys CTI) cannot be completed
satisfactorily, perhaps because there is a problem with the CTI server,
it is possible to specify that the transfer is made by
Blueworx Voice Response instead.
To do this, set the
usewvrtransfer parameter to
true in
a namelist variable, for example:
<transition event="connection.connected">
<var name="usewvrtransfer" expr="'true'"/>
<send target="event$.connectionid" name="'ibmwvr.transfer'"
namelist="usewvrtransfer" targettype="'connection'"/>
</transition>
Note: Blueworx Voice Response does
not support call conference, so conference call transfers cannot be
re-routed through it. Consequently name="'ibmwvr.conference'" or name="'ibmwvr.consult.conference'" cannot
be used with the usewvrtransfer parameter set to true.