Play different messages for
live human pickup and answering machine
As stated in the previous section, the gateway is aware two
starting VXML files, one for human pickup and the other for
answering machine. The starting VXML file for human pickup is
defined in startvxml or starturl.
Using static starting VXML file
If you are using startvxml for your starting VXML file,
the corresponding VXML file for the answering machine must be:
<startvxml file name>_ans.vxml
For example, if your startxml file name is myapp.vxml,
then the starting VXML file for the answering machine must be:
myapp_ans.vxml. These two files must reside in the same
directory. If the myapp_ans.vxml file does not exist, then
myapp.vxml is used.
As you can see in the previous section, the call control flow
will first fetch the myapp.vxml file before the dialing, if the
call is answered by a live human, the gateway plays the myapp.vxml
file; if the call is answered by an answering machine, the gateway
discard the myapp.vxml file and then fetch the myapp_ans.vxml file
to play.
Using dynamically generated VXML file
If you are using dynamically generated starting VXML file using
starturl, the gateway will first fetch the VXML file with
no parameter, if the call is answered by an answering machine, the
gateway discards the previously fetched VXML file and will then
fetch the VXML file with "ans=t".
For example, if your starturl is defined as
http://mydomain/myapp/start.jsp. The gateway will get the start
vxml file by sending an HTTP request to the URL defined, i.e.,
http://mydomain/myapp/start.jsp; if the call is answered by an
answering machine, the gateway will send another HTTP request to
the same URL with parameter ans=t, i.e.,
http://mydomain/myapp/start.jsp?ans=t
The following example JSP file will play live.wav for
human pickup, and play answering.wav for answering machine.
The wave file must reside under the directory audio. For
the time being, record any message in these two wave files. We'll
add more features as this tutorial develops.
<?xml
version="1.0"?>
<vxml version="1.0">
<%
String ans = request.getParameter("ans");
boolean isAnsweringMachine = ("t".equals(ans));
%>
<form id="td">
<block>
<% if (isAnsweringMachine) { %>
<audio src="audio/answering.wav"/>
<% } else { %>
<audio src="audio/live.wav"/>
<% } %>
</block>
</form>
</vxml>
For live human pickup, this JSP file returns:
<?xml
version="1.0"?>
<vxml version="1.0">
<form id="td">
<block>
<audio src="audio/live.wav"/>
</block>
</form>
</vxml>
For
answering machine, this JSP file returns:
<?xml
version="1.0"?>
<vxml version="1.0">
<form id="td">
<block>
<audio src="audio/answering.wav"/>
</block>
</form>
</vxml>
|