Get information about one or more submitted faxes with FaxQuery

This sample demonstrates how to retrieve information about a sent fax using the FaxQuery method. This method has more flexible querying options than FaxStatusEx.

<?php
 
/**************** Settings begin **************/
 
$username   = '';   // Enter your Interfax username here
$password   = '';   // Enter your Interfax password here
$query_verb = 'LT'; // Very flexible, see documentation
$query_data = '999999999';  //
$max_items  = '10';
 
/**************** Settings end ****************/
 
$client = new SoapClient("http://ws.interfax.net/dfs.asmx?wsdl");
 
$params->Username   = $username;
$params->Password   = $password;
$params->Verb       = $query_verb;
$params->VerbData   = $query_data;
$params->MaxItems   = $max_items;
$params->ResultCode = '';
 
$queryResult = $client->FaxQuery($params);
$queryCount = count($queryResult->FaxQueryResult->FaxItemEx);
 
// Format information retrieved from InterFAX
 
if (0 == $queryResult->ResultCode){ // status request succeeded
	switch($queryCount){
		case 0:
			echo 'No transactions fit query';
			break;
 
		case 1:	// single item returned by WS call
			echo 'ParentTransactionID: ' . $queryResult->FaxQueryResult->FaxItemEx->ParentTransactionID . '<br />';
			echo 'TransactionID: ' . $queryResult->FaxQueryResult->FaxItemEx->TransactionID . '<br />';
			echo 'SubmitTime: ' . $queryResult->FaxQueryResult->FaxItemEx->SubmitTime . '<br />';
			echo 'CompletionTime: ' . $queryResult->FaxQueryResult->FaxItemEx->PostponeTime . '<br />';
			echo 'CompletionTime: ' . $queryResult->FaxQueryResult->FaxItemEx->CompletionTime . '<br />';
			echo 'UserID: ' . $queryResult->FaxQueryResult->FaxItemEx->UserID . '<br />';
			echo 'Contact: ' . $queryResult->FaxQueryResult->FaxItemEx->Contact . '<br />';
			echo 'DestinationFax: ' . $queryResult->FaxQueryResult->FaxItemEx->DestinationFax . '<br />';
			echo 'ReplyEmail: ' . $queryResult->FaxQueryResult->FaxItemEx->ReplyEmail . '<br />';
			echo 'RemoteCSID: ' . $queryResult->FaxQueryResult->FaxItemEx->RemoteCSID . '<br />';
			echo 'PagesSent: ' . $queryResult->FaxQueryResult->FaxItemEx->PagesSent . '<br />';
			echo 'Status: ' . $queryResult->FaxQueryResult->FaxItemEx->Status . '<br />';
			echo 'Duration: ' . $queryResult->FaxQueryResult->FaxItemEx->Duration . '<br />';
			echo 'Subject: ' . $queryResult->FaxQueryResult->FaxItemEx->Subject . '<br />';
			echo 'PagesSubmitted: ' . $queryResult->FaxQueryResult->FaxItemEx->PagesSubmitted . '<br />';
			echo 'SenderCSID: ' . $queryResult->FaxQueryResult->FaxItemEx->SenderCSID . '<br />';
			echo 'Priority: ' . $queryResult->FaxQueryResult->FaxItemEx->Priority . '<br />';
			echo 'Units: ' . $queryResult->FaxQueryResult->FaxItemEx->Units . '<br />';
			echo 'CostPerUnit: ' . $queryResult->FaxQueryResult->FaxItemEx->CostPerUnit . '<br />';
			echo 'PageSize: ' . $queryResult->FaxQueryResult->FaxItemEx->PageSize . '<br />';
			echo 'PageOrientation: ' . $queryResult->FaxQueryResult->FaxItemEx->PageOrientation . '<br />';
			echo 'PageResolution: ' . $queryResult->FaxQueryResult->FaxItemEx->PageResolution . '<br />';
			echo 'RenderingQuality: ' . $queryResult->FaxQueryResult->FaxItemEx->RenderingQuality . '<br />';
			echo 'PageHeader: ' . $queryResult->FaxQueryResult->FaxItemEx->PageHeader . '<br />';
			echo 'RetriesToPerform: ' . $queryResult->FaxQueryResult->FaxItemEx->RetriesToPerform . '<br />';
			echo 'TrialsPerformed: ' . $queryResult->FaxQueryResult->FaxItemEx->TrialsPerformed . '<br />';
			break;
 
		default: // multiple items returned by WS call
			for($i = 0; $i < $queryCount; $i++){
				echo 'ParentTransactionID: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->ParentTransactionID . '<br />';
				echo 'TransactionID: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->TransactionID . '<br />';
				echo 'SubmitTime: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->SubmitTime . '<br />';
				echo 'CompletionTime: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PostponeTime . '<br />';
				echo 'CompletionTime: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->CompletionTime . '<br />';
				echo 'UserID: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->UserID . '<br />';
				echo 'Contact: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->Contact . '<br />';
				echo 'DestinationFax: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->DestinationFax . '<br />';
				echo 'ReplyEmail: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->ReplyEmail . '<br />';
				echo 'RemoteCSID: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->RemoteCSID . '<br />';
				echo 'PagesSent: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PagesSent . '<br />';
				echo 'Status: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->Status . '<br />';
				echo 'Duration: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->Duration . '<br />';
				echo 'Subject: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->Subject . '<br />';
				echo 'PagesSubmitted: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PagesSubmitted . '<br />';
				echo 'SenderCSID: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->SenderCSID . '<br />';
				echo 'Priority: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->Priority . '<br />';
				echo 'Units: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->Units . '<br />';
				echo 'CostPerUnit: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->CostPerUnit . '<br />';
				echo 'PageSize: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PageSize . '<br />';
				echo 'PageOrientation: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PageOrientation . '<br />';
				echo 'PageResolution: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PageResolution . '<br />';
				echo 'RenderingQuality: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->RenderingQuality . '<br />';
				echo 'PageHeader: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->PageHeader . '<br />';
				echo 'RetriesToPerform: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->RetriesToPerform . '<br />';
				echo 'TrialsPerformed: ' . $queryResult->FaxQueryResult->FaxItemEx[$i]->TrialsPerformed . '<br />';
				echo '------------------------------------<br />';
			}  // close loop
				break;
		}  // close switch
} else { // problem getting status
	// Do something here, like alerting an administrator
	echo 'Problem retrieving status';
}
 
?>