diff --git a/app/switch/resources/scripts/app/fax/resources/scripts/hangup_rx.lua b/app/switch/resources/scripts/app/fax/resources/scripts/hangup_rx.lua index 2e3c026a69..b662732827 100644 --- a/app/switch/resources/scripts/app/fax/resources/scripts/hangup_rx.lua +++ b/app/switch/resources/scripts/app/fax/resources/scripts/hangup_rx.lua @@ -48,6 +48,7 @@ require "resources.functions.explode"; require "resources.functions.count"; require "resources.functions.send_mail"; + require "resources.functions.file_exists"; --check if windows local IS_WINDOWS = (package.config:sub(1,1) == '\\') @@ -322,83 +323,81 @@ dbh:query(sql, params); --add the fax files - if (fax_success ~= nil) then - if (fax_success =="1") then - if (storage_type == "base64") then - --include the file io - local file = require "resources.functions.file" + if (file_exists(fax_file)) then + if (storage_type == "base64") then + --include the file io + local file = require "resources.functions.file" - --read file content as base64 string - fax_base64 = assert(file.read_base64(fax_file)); - end + --read file content as base64 string + fax_base64 = assert(file.read_base64(fax_file)); + end - local sql = {} - table.insert(sql, "insert into v_fax_files "); - table.insert(sql, "("); - table.insert(sql, "fax_file_uuid, "); - table.insert(sql, "fax_uuid, "); - table.insert(sql, "fax_mode, "); - table.insert(sql, "fax_file_type, "); - table.insert(sql, "fax_file_path, "); - if (caller_id_name ~= nil) then - table.insert(sql, "fax_caller_id_name, "); - end - if (caller_id_number ~= nil) then - table.insert(sql, "fax_caller_id_number, "); - end - table.insert(sql, "fax_date, "); - table.insert(sql, "fax_epoch, "); - if (storage_type == "base64") then - table.insert(sql, "fax_base64, "); - end - table.insert(sql, "domain_uuid"); - table.insert(sql, ") "); - table.insert(sql, "values "); - table.insert(sql, "("); - table.insert(sql, ":uuid, "); - table.insert(sql, ":fax_uuid, "); - table.insert(sql, "'rx', "); - table.insert(sql, "'tif', "); - table.insert(sql, ":fax_file, "); - if (caller_id_name ~= nil) then - table.insert(sql, ":caller_id_name, "); - end - if (caller_id_number ~= nil) then - table.insert(sql, ":caller_id_number, "); - end - if (database["type"] == "sqlite") then - table.insert(sql, ":fax_date, "); - else - table.insert(sql, "now(), "); - end - table.insert(sql, ":fax_time, "); - if (storage_type == "base64") then - table.insert(sql, ":fax_base64, "); - end - table.insert(sql, ":domain_uuid"); - table.insert(sql, ")"); - sql = table.concat(sql, "\n"); - local params = { - uuid = uuid; - domain_uuid = domain_uuid; - fax_uuid = fax_uuid; - fax_file = fax_file; - caller_id_name = caller_id_name; - caller_id_number = caller_id_number; - fax_base64 = fax_base64; - 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 - if (storage_type == "base64") then - local dbh = Database.new('system', 'base64'); - dbh:query(sql, params); - dbh:release(); - else - result = dbh:query(sql, params); - end + local sql = {} + table.insert(sql, "insert into v_fax_files "); + table.insert(sql, "("); + table.insert(sql, "fax_file_uuid, "); + table.insert(sql, "fax_uuid, "); + table.insert(sql, "fax_mode, "); + table.insert(sql, "fax_file_type, "); + table.insert(sql, "fax_file_path, "); + if (caller_id_name ~= nil) then + table.insert(sql, "fax_caller_id_name, "); + end + if (caller_id_number ~= nil) then + table.insert(sql, "fax_caller_id_number, "); + end + table.insert(sql, "fax_date, "); + table.insert(sql, "fax_epoch, "); + if (storage_type == "base64") then + table.insert(sql, "fax_base64, "); + end + table.insert(sql, "domain_uuid"); + table.insert(sql, ") "); + table.insert(sql, "values "); + table.insert(sql, "("); + table.insert(sql, ":uuid, "); + table.insert(sql, ":fax_uuid, "); + table.insert(sql, "'rx', "); + table.insert(sql, "'tif', "); + table.insert(sql, ":fax_file, "); + if (caller_id_name ~= nil) then + table.insert(sql, ":caller_id_name, "); + end + if (caller_id_number ~= nil) then + table.insert(sql, ":caller_id_number, "); + end + if (database["type"] == "sqlite") then + table.insert(sql, ":fax_date, "); + else + table.insert(sql, "now(), "); + end + table.insert(sql, ":fax_time, "); + if (storage_type == "base64") then + table.insert(sql, ":fax_base64, "); + end + table.insert(sql, ":domain_uuid"); + table.insert(sql, ")"); + sql = table.concat(sql, "\n"); + local params = { + uuid = uuid; + domain_uuid = domain_uuid; + fax_uuid = fax_uuid; + fax_file = fax_file; + caller_id_name = caller_id_name; + caller_id_number = caller_id_number; + fax_base64 = fax_base64; + 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 + if (storage_type == "base64") then + local dbh = Database.new('system', 'base64'); + dbh:query(sql, params); + dbh:release(); + else + result = dbh:query(sql, params); end end