Add Fax Queue TX Email Variables (#6460)

* Add db field to v_fax_queue to link to fax log

* Add fax_duration field to v_fax_logs

Add fax duration to db to allow for logging of this data for fax email templates.

* Add new email variables to fax send

* Fix some logging variables and fax_log_uuid

Added back some missing session variables for the fax log.

Also update the email queue db field with the fax_log_uuid to allow us to add variables to the fax email templates later.

* Update hangup_tx.lua
This commit is contained in:
emak
2022-08-19 18:08:43 -06:00
committed by GitHub
parent f8f09f9a31
commit 26b3e7893b
4 changed files with 92 additions and 10 deletions
@@ -122,6 +122,8 @@
fax_success = env:getHeader("fax_success");
fax_result_text = env:getHeader("fax_result_text");
fax_local_station_id = env:getHeader("fax_local_station_id");
fax_image_resolution = env:getHeader("fax_image_resolution");
fax_image_size = env:getHeader("fax_image_size");
fax_ecm_used = env:getHeader("fax_ecm_used");
fax_uri = env:getHeader("fax_uri");
fax_extension_number = env:getHeader("fax_extension_number");
@@ -133,9 +135,11 @@
bridge_hangup_cause = env:getHeader("bridge_hangup_cause");
fax_result_code = env:getHeader("fax_result_code");
fax_remote_station_id = env:getHeader("fax_remote_station_id");
fax_document_transferred_pages = env:getHeader("fax_document_transferred_pages");
fax_document_total_pages = env:getHeader("fax_document_total_pages");
hangup_cause_q850 = tonumber(env:getHeader("hangup_cause_q850"));
fax_file = env:getHeader("fax_file");
fax_duration = env:getHeader("billsec");
--prevent nil errors
if (fax_file == nil) then
@@ -223,15 +227,6 @@
fax_file_name = array[count(array)];
end
--update the email queue status
if (fax_success == '1') then
sql = "update v_fax_queue ";
sql = sql .. "set fax_status = :fax_status ";
sql = sql .. "where fax_queue_uuid = :fax_queue_uuid ";
local params = {fax_queue_uuid = fax_queue_uuid, fax_status = fax_status}
dbh:query(sql, params);
end
--add to fax logs
sql = "insert into v_fax_logs ";
sql = sql .. "(";
@@ -267,6 +262,9 @@
if (fax_uri ~= nil) then
sql = sql .. "fax_uri, ";
end
if (fax_duration ~= nil) then
sql = sql .. "fax_duration, ";
end
sql = sql .. "fax_date, ";
sql = sql .. "fax_epoch ";
sql = sql .. ") ";
@@ -304,6 +302,9 @@
if (fax_uri ~= nil) then
sql = sql .. ":fax_uri, ";
end
if (fax_duration ~= nil) then
sql = sql .. ":fax_duration, ";
end
if (database["type"] == "sqlite") then
sql = sql .. ":fax_date, ";
else
@@ -328,14 +329,25 @@
fax_bad_rows = fax_bad_rows;
fax_transfer_rate = fax_transfer_rate;
fax_uri = fax_uri;
fax_duration = fax_duration;
fax_date = os.date("%Y-%m-%d %X");
fax_time = os.time();
};
if (debug["sql"]) then
freeswitch.consoleLog("notice", "[fax] SQL: " .. sql .. "; params:" .. json.encode(params) .. "\n");
end
dbh:query(sql, params);
--update the email queue status
if (fax_success == '1') then
sql = "update v_fax_queue ";
sql = sql .. "set fax_status = :fax_status, fax_log_uuid = :fax_log_uuid ";
sql = sql .. "where fax_queue_uuid = :fax_queue_uuid ";
local params = {fax_queue_uuid = fax_queue_uuid, fax_status = fax_status, fax_log_uuid = uuid}
dbh:query(sql, params);
end
--prepare base64
if (storage_type == "base64") then
--include the file io