Know Which Customer Record The Gateway is Requesting | Outbound Application Tutorial

The survey message as described in the introduction section:

"Hi, this is ACME car service calling [customer name]. We have provided your [maker of the car] for maintenance service on [date of the service] , please rate our service by number 1 to 5, with 5 being the best. Thank you for your time."

When the gateway is calling one customer, it will get the dynamically generated VXML file through the URL that is specified in the starturl parameter. When we send our call request to the gateway, we really do not know when the gateway will call back for the VXML file. And if we are using multi-line system, there will be concurrent access to the starturl.

To solve this problem, for example, you can embedded a customer ID in the starturl string. So when the gateway calling back, it will submit the customer ID back to the starturl. The updated start.jsp file is listed below:

<?xml version="1.0"?>
                <vxml version="1.0">
                    <%
                    String ans = request.getParameter("ans");
                    boolean isAnsweringMachine = ("t".equals(ans));
                    String customer_name = request.getParameter("customer_name");
                    String car_maker = request.getParameter("car_maker");
                    String service_date = request.getParameter("service_date");
                    %>
                    <form id="td">
                        <% if (isAnsweringMachine) {
                        int anstotal = 1;
                        Integer AnsTotal = (Integer) application.getAttribute("anstotal");
                        if (AnsTotal != null)
                        anstotal = AnsTotal.intValue() + 1;
                        application.setAttribute("anstotal", new Integer(anstotal));
                        %>
                        <block>
                            <audio src="audio/acme.wav"/>
                            <%=customer_name%>
                            <audio src="audio/we_provide.wav"/>
                            <%=car_maker%>
                            <audio src="audio/maintenance.wav"/>
                            <%=service_date%>
                            <audio src="audio/thanks.wav"/>
                        </block>
                        <% } else { %>
                        <field name="rating">
                            <prompt timeout="10s">
                                <block>
                                    <audio src="audio/acme.wav"/>
                                    <%=customer_name%>
                                    <audio src="audio/we_provide.wav"/>
                                    <%=car_maker%>
                                    <audio src="audio/maintenance.wav"/>
                                    <%=service_date%>
                                    <audio src="audio/please_press_15.wav"/>
                                </block>
                            </prompt>
                            <dtmf>
                                1 | 2 | 3 | 4 | 5
                            </dtmf>
                            <filled>
                                <submit next="recordrating.jsp" namelist="rating"/>
                            </filled>
                        </field>
                        <% } %>
                    </form>
                </vxml>

Once the gateway get the VXML file through the starturl with the necessary parameter, the VXML file could look like this:

<?xml version="1.0"?>
                <vxml version="1.0">
                    <form id="td">
                        <field name="rating">
                            <prompt timeout="10s">
                                <block>
                                    <audio src="audio/acme.wav"/>
                                    John Smith
                                    <audio src="audio/we_provide.wav"/>
                                    Honda Accord
                                    <audio src="audio/maintenance.wav"/>
                                    Monday Jan 20
                                    <audio src="audio/please_press_15.wav"/>
                                </block>
                            </prompt>
                            <dtmf>
                                1 | 2 | 3 | 4 | 5
                            </dtmf>
                            <filled>
                                <submit next="recordrating.jsp" namelist="rating"/>
                            </filled>
                        </field>
                    </form>
                </vxml>