Get information about one or more submitted faxes with FaxQuery2
25 Nov 2016 This code sample is deprecated and in process of being removed. Check out our new code libraries and usage documentation on InterFAX @ Github.
This sample demonstrates how to retrieve information about a sent fax using the FaxQuery2method. This method has more flexible querying options than FaxQuery.
<?php
/**************** Settings begin **************/
// See https://www.interfax.net/en/dev/webservice/reference/faxquery2
// for an explanation of properties
// Valid values for [property]_verb are:
// Equals | GreaterThan | GreaterOrEqual | LessThan | LessOrEqual | Like | IncludedIn | Between
// Leave both [property]_verb and [property]_data empty to ignore the property in the query
$username = '';
$password = '';
$subject_verb = '';
$subject_data = '';
$faxnumber_verb = '';
$faxnumber_data = '';
$date_from = '';
$date_to = '';
$user_id_verb = '';
$user_id_data = '';
$reply_address_verb = '';
$reply_address_data = '';
$transaction_id_verb = '';
$transaction_id_data = '';
$parent_transaction_id_verb = '';
$parent_transaction_id_data = '';
$status_verb = '';
$status_data = '';
// The following values control display settings
$show_hidden_transactions = TRUE;
$only_parents = FALSE;
$num_of_results = 100;
$starting_record = 0;
// Valid values for $order_by are:
// TransactionID | SubmitTime | CompletionTime | Status | DestinationFax | Subject | PagesSent | UserID | ReplyEmail
$order_by = 'TransactionID';
$asc_order_direction = TRUE;
$return_items = TRUE;
$return_stats = TRUE;
/**************** Settings end **************/
// Set default values for empty query properties
if(!($subject_verb && $subject_data)){
$subject_verb = 'Equals';
$subject_data = '';
}
if(!($faxnumber_verb && $faxnumber_data)){
$faxnumber_verb = 'Equals';
$faxnumber_data = '';
}
if(!$date_from) $date_from = '1999-01-01T00:00:01';
if(!$date_to) $date_to = '2999-12-31T23:59:59';
if(!($user_id_verb && $user_id_data)){
$user_id_verb = 'Equals';
$user_id_data = '';
}
if(!($reply_address_verb && $reply_address_data)){
$reply_address_verb = 'Equals';
$reply_address_data = '';
}
if(!($transaction_id_verb && $transaction_id_data)){
$transaction_id_verb = 'Equals';
$transaction_id_data = '';
}
if(!($parent_transaction_id_verb && $parent_transaction_id_data)){
$parent_transaction_id_verb = 'Equals';
$parent_transaction_id_data = '';
}
if(!($status_verb && !is_null($status_data))){
$status_verb = 'Equals';
$status_data = '';
}
// End setting default values
$params->Username = $username;
$params->Password = $password;
$params->QueryForm->Subject->Verb = $subject_verb;
$params->QueryForm->Subject->VerbData = $subject_data;
$params->QueryForm->FaxNumber->Verb = $faxnumber_verb;
$params->QueryForm->FaxNumber->VerbData = $faxnumber_data;
$params->QueryForm->DateFrom = $date_from;
$params->QueryForm->DateTo = $date_to;
$params->QueryForm->UserID->Verb = $user_id_verb;
$params->QueryForm->UserID->VerbData = $user_id_data;
$params->QueryForm->ReplyAddress->Verb = $reply_address_verb;
$params->QueryForm->ReplyAddress->VerbData = $reply_address_data;
$params->QueryForm->TransactionID->Verb = $transaction_id_verb;
$params->QueryForm->TransactionID->VerbData = $transaction_id_data;
$params->QueryForm->ParentTransactionID->Verb = $parent_transaction_id_verb;
$params->QueryForm->ParentTransactionID->VerbData = $parent_transaction_id_data;
$params->QueryForm->Status->Verb = $status_verb;
$params->QueryForm->Status->VerbData = $status_data;
$params->QueryForm->ShowHiddenTransactions = $show_hidden_transactions;
$params->QueryControl->OnlyParents = $only_parents;
$params->QueryControl->NumOfResults = $num_of_results;
$params->QueryControl->StartingRecord = $starting_record;
$params->QueryControl->OrderBy = $order_by;
$params->QueryControl->AscOrderDirection = $asc_order_direction;
$params->QueryControl->ReturnItems = $return_items;
$params->QueryControl->ReturnStats = $return_stats;
$client = new SoapClient("https://ws.interfax.net/dfs.asmx?wsdl");
// Use the call below to trace PHP's SOAP call
// $client = new SoapClient("https://ws.interfax.net/dfs.asmx?wsdl", array('trace' => 1));
$queryResult = $client->FaxQuery2($params);
// Display the SOAP call; use in conjunction with the alternative SOAP call above
// echo $client->__getLastRequest();
// Format and present retrieved data
if ($queryResult->FaxQuery2Result->ResultCode == 0){ // status request succeeded
if ($return_stats){
echo 'Stats';
$statsCount = count($queryResult->FaxQuery2Result->Stats->StatusCount);
switch($statsCount){
case 0:
echo 'No transactions fit query';
break;
case 1:
echo 'Status ' . $queryResult->FaxQuery2Result->Stats->StatusCount->Status . ' :';
echo $queryResult->FaxQuery2Result->Stats->StatusCount->Count . '';
break;
default:
for($j = 0; $j < $statsCount; $j++){
echo 'Status ' . $queryResult->FaxQuery2Result->Stats->StatusCount[$j]->Status . ' :';
echo $queryResult->FaxQuery2Result->Stats->StatusCount[$j]->Count . '';
}
break;
}
}
if ($return_items){
$queryCount = count($queryResult->FaxQuery2Result->FaxItems->FaxItemEx2);
echo 'Details';
switch($queryCount){
case 0:
echo 'No transactions fit query';
break;
case 1: // single item returned by WS call
echo 'ParentTransactionID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->ParentTransactionID . '';
echo 'TransactionID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->TransactionID . '';
echo 'SubmitTime: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->SubmitTime . '';
echo 'PostponeTime: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PostponeTime . '';
echo 'CompletionTime: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->CompletionTime . '';
echo 'UserID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->UserID . '';
echo 'Contact: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Contact . '';
echo 'Job ID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->JobID . '';
echo 'DestinationFax: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->DestinationFax . '';
echo 'ReplyEmail: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->ReplyEmail . '';
echo 'RemoteCSID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->RemoteCSID . '';
echo 'PagesSent: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PagesSent . '';
echo 'Status: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Status . '';
echo 'Duration: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Duration . '';
echo 'Subject: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Subject . '';
echo 'PagesSubmitted: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PagesSubmitted . '';
echo 'SenderCSID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->SenderCSID . '';
echo 'Priority: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Priority . '';
echo 'Units: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Units . '';
echo 'CostPerUnit: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->CostPerUnit . '';
echo 'PageSize: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PageSize . '';
echo 'PageOrientation: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PageOrientation . '';
echo 'PageResolution: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PageResolution . '';
echo 'RenderingQuality: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->RenderingQuality . '';
echo 'PageHeader: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->PageHeader . '';
echo 'RetriesToPerform: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->RetriesToPerform . '';
echo 'TrialsPerformed: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->TrialsPerformed . '';
echo 'LocaleID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->LocaleID . '';
echo 'GMTBias: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->GMTBias . '';
echo 'RetriesInterval: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->RetriesInterval . '';
echo 'UserData: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->UserData . '';
echo 'DeleteAfterUsage: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->DeleteAfterUsage . '';
echo 'Mode: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->Mode . '';
echo 'NumOfTransactions: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->NumOfTransactions . '';
echo 'MessageID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2->MessageID . '';
break;
default: // multiple items returned by WS call
for($i = 0; $i < $queryCount; $i++){
echo 'ParentTransactionID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->ParentTransactionID . '';
echo 'TransactionID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->TransactionID . '';
echo 'SubmitTime: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->SubmitTime . '';
echo 'PostponeTime: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PostponeTime . '';
echo 'CompletionTime: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->CompletionTime . '';
echo 'UserID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->UserID . '';
echo 'Contact: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Contact . '';
echo 'Job ID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->JobID . '';
echo 'DestinationFax: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->DestinationFax . '';
echo 'ReplyEmail: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->ReplyEmail . '';
echo 'RemoteCSID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->RemoteCSID . '';
echo 'PagesSent: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PagesSent . '';
echo 'Status: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Status . '';
echo 'Duration: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Duration . '';
echo 'Subject: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Subject . '';
echo 'PagesSubmitted: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PagesSubmitted . '';
echo 'SenderCSID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->SenderCSID . '';
echo 'Priority: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Priority . '';
echo 'Units: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Units . '';
echo 'CostPerUnit: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->CostPerUnit . '';
echo 'PageSize: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PageSize . '';
echo 'PageOrientation: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PageOrientation . '';
echo 'PageResolution: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PageResolution . '';
echo 'RenderingQuality: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->RenderingQuality . '';
echo 'PageHeader: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->PageHeader . '';
echo 'RetriesToPerform: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->RetriesToPerform . '';
echo 'TrialsPerformed: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->TrialsPerformed . '';
echo 'LocaleID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->LocaleID . '';
echo 'GMTBias: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->GMTBias . '';
echo 'RetriesInterval: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->RetriesInterval . '';
echo 'UserData: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->UserData . '';
echo 'DeleteAfterUsage: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->DeleteAfterUsage . '';
echo 'Mode: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->Mode . '';
echo 'NumOfTransactions: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->NumOfTransactions . '';
echo 'MessageID: ' . $queryResult->FaxQuery2Result->FaxItems->FaxItemEx2[$i]->MessageID . '';
echo '------------------------------------';
} // close loop
break;
} // close switch
}
} else { // problem getting status
// Do something here, like alerting an administrator
echo 'Problem retrieving status, error ' . $queryResult->FaxQuery2Result->ResultCode . '';
}
?>