Add FAX Queue with retry_interval (#6398)

* Update app_config.php

* Use the new retry interval.

* Add the new retry interval.
This commit is contained in:
FusionPBX 2022-05-26 14:33:19 -06:00 committed by GitHub
parent 5d2b919fa9
commit c87ab41fff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 18 deletions

View File

@ -58,6 +58,14 @@
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number of tries to send before giving up.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "edf13aab-c7df-4966-9895-a085d43e64a1";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "fax_queue";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "retry_interval";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "180";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "How often to try resending the fax. Default 180 seconds.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "9c379e94-0cb8-41d6-8ee5-8459c5ef7391";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "fax_queue";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "interval";

View File

@ -63,13 +63,7 @@
return $exists;
}
//get the default settings settings
$fax_queue_interval = $_SESSION['fax_queue']['interval']['numeric'];
//set the defaults
if (!is_numeric($interval)) { $interval = 30; }
//set the email queue limit
//set the fax queue limit
if (isset($_SESSION['fax_queue']['limit']['numeric'])) {
$fax_queue_limit = $_SESSION['fax_queue']['limit']['numeric'];
}
@ -80,6 +74,14 @@
$debug = $_SESSION['fax_queue']['debug']['boolean'];
}
//set the fax queue retry interval
if (isset($_SESSION['fax_queue']['retry_interval']['numeric'])) {
$fax_retry_interval = $_SESSION['fax_queue']['retry_interval']['numeric'];
}
else {
$fax_retry_interval = '180';
}
//check to see if the process exists
$pid_exists = process_exists($pid_file);
@ -117,7 +119,7 @@
$sql .= "where ";
$sql .= "( ";
$sql .= " (fax_status = 'waiting' or fax_status = 'trying') ";
$sql .= " and (fax_retry_date is null or floor(extract(epoch from now()) - extract(epoch from fax_retry_date)) > :interval) ";
$sql .= " and (fax_retry_date is null or floor(extract(epoch from now()) - extract(epoch from fax_retry_date)) > :retry_interval) ";
$sql .= ") ";
$sql .= "or ( ";
$sql .= " fax_status = 'sent' ";
@ -134,7 +136,7 @@
$parameters['hostname'] = gethostname();
}
$parameters['limit'] = $fax_queue_limit;
$parameters['interval'] = $fax_queue_interval;
$parameters['retry_interval'] = $fax_retry_interval;
$database = new database;
$fax_queue = $database->select($sql, $parameters, 'all');
unset($parameters);

View File

@ -110,12 +110,6 @@
file_put_contents($pid_file, getmypid());
}
//get the call center settings
$interval = $_SESSION['fax_queue']['interval']['numeric'];
//set the defaults
if (!is_numeric($interval)) { $interval = 30; }
//set the fax queue interval
if (isset($_SESSION['fax_queue']['interval']['numeric'])) {
$fax_queue_interval = $_SESSION['fax_queue']['interval']['numeric'];
@ -135,6 +129,14 @@
$debug = $_SESSION['fax_queue']['debug']['boolean'];
}
//set the fax queue retry interval
if (isset($_SESSION['fax_queue']['retry_interval']['numeric'])) {
$fax_retry_interval = $_SESSION['fax_queue']['retry_interval']['numeric'];
}
else {
$fax_retry_interval = '180';
}
//change the working directory
chdir($document_root);
@ -146,7 +148,7 @@
$sql .= "where ";
$sql .= "( ";
$sql .= " (fax_status = 'waiting' or fax_status = 'trying') ";
$sql .= " and (fax_retry_date is null or floor(extract(epoch from now()) - extract(epoch from fax_retry_date)) > :interval) ";
$sql .= " and (fax_retry_date is null or floor(extract(epoch from now()) - extract(epoch from fax_retry_date)) > :retry_interval) ";
$sql .= ") ";
$sql .= "or ( ";
$sql .= " fax_status = 'sent' ";
@ -163,7 +165,7 @@
$parameters['hostname'] = gethostname();
}
$parameters['limit'] = $fax_queue_limit;
$parameters['interval'] = $fax_queue_interval;
$parameters['retry_interval'] = $fax_retry_interval;
if (isset($debug_sql)) {
print_r($parameters);
}
@ -201,7 +203,7 @@
}
//pause to prevent excessive database queries
sleep($interval);
sleep($fax_queue_interval);
}
//remove the old pid file