The block httpMenu is used to collect digits from a caller and pass them to an external web link for processing, the returned result determines the call branching.
The caller is prompted with a pre-recorded message, then digits pressed on the caller's phone are collected. The digit collection is terminated by the caller pressing the '#' key (or a timeout). When all digits are collected they are appended to the external web link (parameter URL) as the field-values of a query string.
The field-values appended are; digits collected 'digits=digits', caller-id 'callerid=callerid', a unique call identifier 'uid=uid' and the number which received the call 'origin=origin'.
For example, if 1234 is entered by caller 012345678 who called +353123456789 and the url supplied is 'http://mysite.com/call.php?' then it will result in a url like 'http://mysite.com/call.php?digits=1234&callerid=012345678&uid=1542799260735&origin=353123456789'. The call.php page will then processes the digits and publish a single digit result.
There are ten acceptable results from the http call, digits 1-10 take the corresponding success outputs, 0 is interpreted as failure (including timeout) and sent to the failure output on the bottom. Keypad digits 0-9, and '*' may be collected, (# is reserved for end of digits).
The unique call identifier remains the same for the duration of the call, it can be useful link records when httpMenu's or httpScreen's are cascaded in a call flow.
Settings for this block
Sound: Menu Options: The greeting filename to be played back to caller. If the greeting is not present a beep is played to the caller.
Sound: No Match: The filename to be played back to caller if the result is not matched to an output. This occurs when an unconnected output is taken (ie. for result 1-10, unconnected failure output, result '0', will hangup). If the sound file is not present an error beep is played to the caller instead.
URL: The web url to query. Field-value pairs 'digits=
digits&callerid=
callerid&uid=
uid&origin=
origin' will be appended.
*IMPORTANT* character '?' will NOT be appended. (this is so you can append an additional field-value pair if you wish)
Simple Example
ABC company wants to process client calls based on their client support contract. They provide two levels of support 'Premium' and 'Ordinary'. The level of support needs to be determined from a 6 digit account code.
The solution is simple using the httpMenu block. The httpMenu block will determine the call flow in real time by linking to their client database through a query to an ABC company website link.
Here's what happens - when a call arrives the httpMenu will prompt the caller to “enter account code”, then contact the web link 'http://abc.com/calls.php' using an appended query string '?digits=123456&callerid=012345678&uid=1542799260735&origin=33184880913'. The query string will include the collected digits (digits=123456), the caller-id (callerid=012345678) a unique call identifier (uid=1542799260735) and the number called (origin=33184880913).
The web page 'http://abc.com/calls.php' will then match the digits=123456 and output a '1'. As a result the call will be sent to the first output, Premium Support.
Note: If the result was 3 (not connected) then the 'No Match' sound would be played back to the caller and they would return to the 'Menu Options' for another attempt.
Code example
Here's an example of some PHP code you could use on a remote webpage to process digits 1234 to output 1, digits 4321 to output 2, other digits to the bottom output.
<?php
$got_digits = $_GET['digits'];
if ($got_digits==1234)
echo 1;
else
if ($got_digits==4321)
echo 2;
else
echo 0;
?>