Voicent Gateway SDK Reference Table of Content << Previous >> Next

Voicent Gateway PHP Interface For IVR Applications

In addition to the basic Voicent PHP interface class, the extended API contains the following functions.

The extended php interface source code is included at the end of this section.


SYNOPSIS

call_ivr <phoneno> <appname> <selfdelete>

DESCRIPTION

Make a phone call to the specified number and use the IVR application to interact and control the phone call.
 
The options are:
 
<phoneno> The phone number to call
<appname> The name of the deployed IVR application
<selfdelete> Ask the gateway to automatically delete the call request after the call is made if it is set to '1'

The return value is the call request id <reqId>.

EXAMPLE

$reqId = call_text("123-4567", "reminderApp", 0);
 
Make a call to phone number '123-4567' and use 'reminderApp' on the gateway for call interaction. You can use call_status_responses to get the call status and responses, or use call_remove to remove the call record.
 

SYNOPSIS

call_status_response <reqId> <responses>

DESCRIPTION

Check the call status and responses of the call with <reqId>. The second parameter is a reference to an array and is used to collect responses. So if you have an element named AttendMeeting, the response can be accessed as responses["AttendMeeting"]. Please note that you can have multiple IVR elements that collect responses.

EXAMPLE

$responses = array();
$status = call_status("11234035434", responses);
 

Source Code

Second version of Voicent class, showing the extended class methods.

<?php

class Voicent
{
    var $host = "localhost";
    var $port = 8155;

    ...

    function call_ivr($phoneno, $appname, $selfdelete)
    {
        $body = "info=" . urlencode("call " . $phoneno) . "&";
        $body .= "phoneno=" . urlencode($phoneno) . "&";
        $body .= "firstocc=10&";
        $body .= "startapp=" . urlencode($appname) . "&";
        $body .= "selfdelete=" . $selfdelete;

        return $this->_call_now($body);
    }

    function call_status_response($reqId, &$responses)
    {
        $headers = "GET /ocall/callstatusHandler.jsp?reqid=" . $reqId . " HTTP/1.1\r\n" .
                "User-Agent: Mozilla/4.0\r\n" .
                "Host: " . $this->host . "\r\n" .
                "\r\n";

        if (! ($sock = fsockopen($this->host, $this->port, $errno, $errstr))) {
            echo $errstr;
            return false;
        }

        fwrite($sock, $headers, strlen($headers));

        $status = "";
        while ($line = fgets($sock, 4096)) {
            if ($line == '')
                continue;
            $rcarr = explode("^", $line);

            // call responses is the 9th field
            $resparr = explode("|", $rcarr[8]);
            foreach ($resparr as $resp) {
                // each is a name value pair
                $nvarr = explode("=", $resp);
                $key = $nvarr[0];
                $value = $nvarr[1];
                $responses[$key] = $value;
            }

            // call status is the 3rd field
            if ($rcarr[2] == "made")
                $status = "Call Make";
            if ($rcarr[2] == "failed")
                $status = "Call Failed";
            break;
        }

        fclose($sock);
        return $status;
    }

    ......
}

?>



 

Developer Network Table of Content << Previous >> Next