Perl Fax - Get List of Inbound Faxes

Download the Perl fax code samples.

The Perl fax script below displays information for a number of submitted faxes using the GetList method.

The GetList method, demonstrated in the following Perl fax example, allows you to retrieve a list of inbound (received) faxes:

#/**************** Settings begin **************/
my $username  = ''; # Enter your Interfax username here
my $password  = ''; # Enter your Interfax password here
my $listType = "AllMessages";
my $maxItems = 10;
my $NS = 'http://www.interfax.net';
#/**************** Settings end ****************/
 
 
my $client = SOAP::Lite
	->uri($NS)
	->on_action( sub { join '/', $NS, $_[1] } ) 
	->proxy('https://ws.interfax.net/inbound.asmx?wsdl');
 
my $result = $client
	->call(SOAP::Data->name('GetList')->attr({xmlns => $NS}) =>
			SOAP::Data->name('Username')->value($username)->type(''),
		    SOAP::Data->name('Password')->value($password)->type(''),
		    SOAP::Data->name('LType')->value($listType)->type(''),
		    SOAP::Data->name('MaxItems')->value($maxItems)->type('')
	);
 
 
if ( $result->fault ) {
    print $result->faultstring . "\n";
} else {
	if( $result->valueof('//GetListResult') == 0 ) {
		my @fax_items = $result->valueof('//objMessageItem/*');
 
		print "Displaying information for " . @fax_items . " faxes." . "\n";
		for(my $i=0; $i < @fax_items; $i++) {  
			print "Item " . ($i + 1) . "\n";  
			print "  MessageID=". $fax_items[$i]{'MessageID'} . "\n";
			print "  PhoneNumber=". $fax_items[$i]{'PhoneNumber'} . "\n";
			print "  RemoteCSID=". $fax_items[$i]{'RemoteCSID'} . "\n" if exists $fax_items[$i]{'RemoteCSID'};
			print "  MessageStatus=". $fax_items[$i]{'MessageStatus'} . "\n";
			print "  Pages=". $fax_items[$i]{'Pages'} . "\n";
			print "  MessageSize=". $fax_items[$i]{'MessageSize'} . "\n";
			print "  MessageType=". $fax_items[$i]{'MessageType'} . "\n";
			print "  ReceiveTime=". $fax_items[$i]{'ReceiveTime'} . "\n";
			print "  CallerID=". $fax_items[$i]{'CallerID'} . "\n";
			print "  MessageRecordingDuration=". $fax_items[$i]{'MessageRecordingDuration'} . "\n";
		}
	} else {
		print "Error, return code=" . $result->valueof('//GetListResult') . "\n";
	}
}