Voicent Gateway Perl 
              Interface
              In addition to the basic Voicent Perl module,               the extended API contains the following functions. 
              
              Theextended perl 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 
              
                -  $status =
                call_status('11234035434', responses);
 
                -  
 
               
               
              
              
                - 
                
                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]; 
                } 
                 
                 
                ... 
                } 
                 
 
                 
               
               |