Many voice applications give the caller the option of speaking to a real person.
Blueworx Voice Response uses the facilities provided by SIP.
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 two 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 bvr. and is used to represent the transfer
option required:
- bvr.transfer
- Transfers a call without checking that an agent is available (blind
transfer).
- bvr.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 bvr.consult.successful event. If wait_for_answer="false",
an bvr.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".
- 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 bvr.consult.successful event.
If wait_for_answer="false" an bvr.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, for example, an agent, 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="'sip:247093@test.blueworx.com'"/>
<send target="evt.connectionid" name="'bvr.transfer'"
namelist="target" targettype="'connection'"/>
</transition>
To use a consult transfer, your CCXML document must use a
<send> element
within a
<transition> element. For example, to perform a consult transfer
that completes when the transfer has started, rather than completed:
<transition event="connection.connected" name="evt">
<var name="target" expr="'sip:247093@test.blueworx.com'"/>
<send target="evt.connectionid" name="'bvr.consult'"
namelist="target" targettype="'connection'"/>
</transition>
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.bvr.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 bvr.transfer.successful event.