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];
}
...
}