summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspag <spag@golwen.net>2013-02-06 15:12:02 +0100
committerspag <spag@golwen.net>2013-02-06 15:12:02 +0100
commit98b822e2d139ad2c2779ce292f597d25ff6f936c (patch)
tree16276dd07259ad05b0cc715f53b02759f6c94b8e
parent120d1ddc2b4213dd30b0a863ea65be4e0decf404 (diff)
persistent database connection
-rw-r--r--misc/freeswitch/scripts/fax_daemon.lua43
1 files changed, 21 insertions, 22 deletions
diff --git a/misc/freeswitch/scripts/fax_daemon.lua b/misc/freeswitch/scripts/fax_daemon.lua
index 94d343a..0784890 100644
--- a/misc/freeswitch/scripts/fax_daemon.lua
+++ b/misc/freeswitch/scripts/fax_daemon.lua
@@ -5,38 +5,37 @@
local MAIN_LOOP_SLEEP_TIME = 30;
-- Set logger
-require "common.log"
+require 'common.log'
local log = common.log.Log:new()
-log.prefix = "### [faxdaemon] "
+log.prefix = '#F# [faxdaemon] '
-log:debug('Starting fax daemon');
+log:info('FAX_DAEMON start');
-local database = nil;
-local api = freeswitch.API();
+require 'common.database'
+local database = common.database.Database:new{ log = log }:connect();
+if not database:connected() then
+ log:error('FAX_DAEMON - cannot connect to Gemeinschaft database');
+ return;
+end
+local api = freeswitch.API();
+require 'dialplan.fax'
freeswitch.setGlobalVariable('gs_fax_daemon', 'true');
+
while freeswitch.getGlobalVariable("gs_fax_daemon") == 'true' do
- require 'common.database'
- local database = common.database.Database:new{ log = log }:connect();
-
- if not database:connected() then
- log:error("connection to Gemeinschaft database lost - retry in " .. MAIN_LOOP_SLEEP_TIME .. " seconds")
- else
- require 'dialplan.fax'
- local fax_documents = dialplan.fax.Fax:new{log=log, database=database}:queued_for_sending();
-
- for key, fax_document in pairs(fax_documents) do
- if table.getn(fax_document.destination_numbers) > 0 and tonumber(fax_document.retry_counter) > 0 then
- log:debug('FAX_DAEMON_LOOP - fax_document=', fax_document.id, '/', fax_document.uuid, ', number: ' .. fax_document.destination_numbers[1]);
- local result = api:executeString('luarun send_fax.lua ' .. fax_document.id);
- end
+ local fax_documents = dialplan.fax.Fax:new{log=log, database=database}:queued_for_sending();
+
+ for key, fax_document in pairs(fax_documents) do
+ if table.getn(fax_document.destination_numbers) > 0 and tonumber(fax_document.retry_counter) > 0 then
+ log:debug('FAX_DAEMON_LOOP - fax_document=', fax_document.id, '/', fax_document.uuid, ', number: ' .. fax_document.destination_numbers[1]);
+ local result = api:executeString('luarun send_fax.lua ' .. fax_document.id);
end
end
- database:release();
-
+
if freeswitch.getGlobalVariable("gs_fax_daemon") == 'true' then
freeswitch.msleep(MAIN_LOOP_SLEEP_TIME * 1000);
end
end
-log:debug('Exiting fax daemon');
+database:release();
+log:info('FAX_DAEMON exit');