mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-31 17:33:48 +00:00
Move the scripts to app/scripts/resources/scripts
This commit is contained in:
87
app/scripts/resources/scripts/monitor.lua
Normal file
87
app/scripts/resources/scripts/monitor.lua
Normal file
@@ -0,0 +1,87 @@
|
||||
-- monitor.lua
|
||||
-- Part of FusionPBX
|
||||
-- Copyright (C) 2010 Mark J Crane <markjcrane@fusionpbx.com>
|
||||
-- All rights reserved.
|
||||
--
|
||||
-- Redistribution and use in source and binary forms, with or without
|
||||
-- modification, are permitted provided that the following conditions are met:
|
||||
--
|
||||
-- 1. Redistributions of source code must retain the above copyright notice,
|
||||
-- this list of conditions and the following disclaimer.
|
||||
--
|
||||
-- 2. Redistributions in binary form must reproduce the above copyright
|
||||
-- notice, this list of conditions and the following disclaimer in the
|
||||
-- documentation and/or other materials provided with the distribution.
|
||||
--
|
||||
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
-- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
-- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
-- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
-- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
-- POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--define general settings
|
||||
tmp_file = "/usr/local/freeswitch/log/monitor.tmp";
|
||||
|
||||
--used to stop the lua service
|
||||
local file = assert(io.open(tmp_file, "w"));
|
||||
file:write("remove this file to stop the script");
|
||||
|
||||
--define the trim function
|
||||
require "resources.functions.trim"
|
||||
|
||||
--check if a file exists
|
||||
require "resources.functions.file_exists"
|
||||
|
||||
--create the api object
|
||||
api = freeswitch.API();
|
||||
|
||||
--run lua as a service
|
||||
while true do
|
||||
|
||||
--exit the loop when the file does not exist
|
||||
if (not file_exists(tmp_file)) then
|
||||
break;
|
||||
end
|
||||
|
||||
--check to see if the sip profile is running
|
||||
sip_profile = "internal";
|
||||
result = trim(api:execute("sofia", "status profile "..sip_profile));
|
||||
if (result == "Invalid Profile!") then
|
||||
--start the sip profile
|
||||
result = trim(api:execute("sofia", "profile "..sip_profile.." start"));
|
||||
freeswitch.consoleLog("NOTICE", "monitor.lua: "..sip_profile.." is not running starting the sip profile.\n");
|
||||
--run sofia recover
|
||||
api = freeswitch.API();
|
||||
result = api:execute("sofia", "recover");
|
||||
freeswitch.consoleLog("NOTICE", "monitor.lua - sofia recover\n");
|
||||
end
|
||||
result = "";
|
||||
|
||||
--check to see if the sip profile is running
|
||||
sip_profile = "external";
|
||||
result = trim(api:execute("sofia", "status profile "..sip_profile));
|
||||
if (result == "Invalid Profile!") then
|
||||
--start the sip profile
|
||||
result = trim(api:execute("sofia", "profile "..sip_profile.." start"));
|
||||
freeswitch.consoleLog("NOTICE", "monitor.lua: "..sip_profile.." is not running starting the sip profile.\n");
|
||||
--run sofia recover
|
||||
api = freeswitch.API();
|
||||
result = api:execute("sofia", "recover");
|
||||
freeswitch.consoleLog("NOTICE", "monitor.lua - sofia recover\n");
|
||||
end
|
||||
result = "";
|
||||
|
||||
--send a message to the log
|
||||
--freeswitch.consoleLog("NOTICE", "monitor.lua "..result.."\n");
|
||||
|
||||
--slow the loop down
|
||||
os.execute("sleep 3");
|
||||
|
||||
--testing exit immediately
|
||||
--break;
|
||||
end
|
||||
Reference in New Issue
Block a user