Perl IVR API | Simple Gateway API

Back to Perl Interface

  1. call_ivr
  2. call_status_response
  3. Source Code

Call IVR

Synopsis - call_ivr

call_ivr <phoneno> <appname> <selfdelete> <callerid> <detection>

Description - call_ivr

Objective

Make a phone call to the specified number and use the IVr application to interact and control the phone call.

Parameters
<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';
<callerid> The 11 digit caller ID number.
<detection> The amount of detection for our system to recognize human answer. 0= balanced, 1= more aggressive, 2= most aggressive, 3= detection off.
Returns
<reqId> The return value is the call request ID.

Example - call_ivr


                        call_ivr('123-4567', 'reminderApp', 1, '12345678911', 3);
                    

Call Status Responses

Synopsis - call_status_response

call_till_confirm <reqId> <responses>

Description - call_status_response

Objective

Check the call status and responses of the call with . 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.

Parameters
<reqId> The reqId.
<responses> Reference to an array and is used to collect responses.

Example - call_status_response


                    $status = call_status('11234035434', responses)
                    

Source Code


                        package Voicent;

                        use LWP::UserAgent;
                        use HTTP::Request::Common;

                        $voicent::host = "localhost";
                        $voicent::port = 8155;

                        ...
                        sub call_ivr {
                        my ($phoneno, $appname, $selfdelete) = @_;

                        my %params = ();
                        $params{'info'} = 'call ' . $phoneno;
                        $params{'phoneno'} = $phoneno;
                        $params{'firstocc'} = '10';
                        $params{'startapp'} = $appname;
                        $params{'selfdelete'} = $selfdelete;

                        return _call_now(\%params);
                        }


                        sub call_status_response {
                        my ($reqId, $responses) = @_;

                        my $url = 'http://' . $host . ':' . $port;
                        $url = $url . '/ocall/callstatusHandler.jsp';
                        $url = $url . '?reqid=' . $reqId;

                        my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.0');

                        my $resp = $ua->request(GET $url);

                        unless ($resp->is_success) {
                        print "Error sending call request to Voicent Gateway";
                        return "";
                        }

                        $result = $resp->content();

                        @rcarr = split(/^/, $result);

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

                        // call status is the 3rd field
                        return $rcarr[2];
                        }


                        ...
                        }