Web Responders Overview
Table of Contents
Scope:
Intended Audience: All Users
This article will give structure to and assist users in responding to WebResponder help requests regardless of incoming or outgoing calls.
Requirements
- Access to Netsapiens
- Access to WebResponder
- Access to To-Web
Critical Data
When Nms posts back to your WebResponder application (inbound or outbound), the URL always contains at least the following parameters:
- NmsAni
caller, e.g., “1001” - NmsDnis
callee e.g., “2125551212” - Account User
Account User - AccountDomain
Account Domain - AccountLastDial
Last Dialed Digits by the Account User - Digits
Received Digits - OrigCallID
(1-1188b) - TermCallID
(1-1188b) - ToUser
User Part input to the Responder - ToDomain
Domain Part input to the Responder
Inbound Calls
The To-Web application takes a single parameter: the URL of the WebResponder application. When the To-Web application is invoked, IVR control is passed to the WebResponder application at the given URL.
For inbound calls, configure a dial translation using the responder application To-Web and specify the URL of the WebResponder application in the Application Parameter field. IVR control is passed to the WebResponder application at the given URL, when an inbound call arrives.
Outbound Calls
For outbound calls, submit a new callrequest_config (via API) with request="Call-Web" and message=url. When the call is connected, the WebResponder application specified by "message" is invoked.
Example: New Call Request Configuration
(requires at least tacserver 1.0.123)
Note- orig_address is really "1st leg".
Verbs
All verbs take an "action" attribute. If the "action" attribute is present then control is returned to the URL given by the "action" attribute. If not present then the application ends.
Play
The <Play> action plays the given .wav file and posts back to the given action URL.
Example: Play
<Play action='continue.php'> http://www.example.com/hello-world.wav </Play>
plays the .wav file and posts back (i.e., returns control) to continue.php.
to end the call, omit the action parameter.to end the call, omit the action parameter.
Gather
The <Gather> action gathers the given number of DTMF digits and posts back to the given action url, optionally playing the given .wav file.
numDigits, the number of digits to gather, e.g., '1' (default=20)
Example: Gather
<Gather numDigits='3' action='handle-account-number.php'> <Play> http://www.example.com/what-is-your-account-number.wav </Play> </Gather>
This gathers 3 digits and posts back the relative URL handle-account-number.php?Digits=555.
The <Gather> verb posts back to the given action URL with the following parameters:
Digits, the gathered digits, for example, 123.
Forward
The <Forward> action forwards to the given destination. The <Forward> verb does NOT take an "action" parameter. The <Forward> verb is effectively a "goto".
Example: Forward
<Forward> 2125551212 </Forward>
Example:
This is an example of a "math" application. The application prompts the caller for two numbers and says the sum. The application demonstrates (a) a multi-step application and (b) storing state in a server side php session.
Example: 'Math' Application
<?php session_start(); header("Content-Type: text/xml"); if (strlen($_REQUEST["case"]) == 0) { echo "<Play action='add.php?case=1'> http://localhost/tts.php?q=Welcome+to+the+math+application </Play>"; } else if ($_REQUEST["case"] == "1") { echo "<Gather numDigits='1' action='add.php?case=2'> <Play> http://localhost/tts.php?q=What+is+the+first+number </Play> </Gather>"; } else if ($_REQUEST["case"] == "2") { $_SESSION["first_number"] = $_REQUEST["Digits"]; echo "<Gather numDigits='1' action='add.php?case=3'> <Play> http://localhost/tts.php?q=What+is+the+second+number </Play> </Gather>"; } else if ($_REQUEST["case"] == "3") { $first_number = $_SESSION["first_number"]; $second_number = $_REQUEST["Digits"]; $sum = $first_number + $second_number; echo "<Play> http://localhost/tts.php?q=holy+cow+$first_number+and+$second_number+is+$sum" </Play>"; } ?> <pre>