Skip to content

Instantly share code, notes, and snippets.

View moteus's full-sized avatar

Alexey Melnichuk moteus

View GitHub Profile
@moteus
moteus / fusion_backup.lua
Last active November 2, 2017 07:35
Backup FusionPBX
local FS_DIR = 'c:/FreeSWITCH'
local FUSION_DIR = 'c:/wamp/www/fusionpbx'
local NGINX_DIR = 'c:/nginxwin'
local PHP_DIR = NGINX_DIR .. '/php_5.4'
-- local PASSWORD = '' -- password to pgsql (optional)
-- local BACKUP_DIR = '' -- target directory (default cwd)
-----------------------------------------------------------
local path = require "path"
local date = require "date"
@moteus
moteus / com2tcp.lua
Last active May 16, 2017 14:07
Connect to serial port via tcp
local uv = require "lluv"
uv.rs232 = require "lluv.rs232"
local sockets = {}
local port = uv.rs232('COM4',{
baud = '_9600';
data_bits = '_8';
parity = 'NONE';
stop_bits = '_1';
local Database = require "resources.functions.database"
local log = require "resources.functions.log".call_block
require "resources.functions.split"
local api = freeswitch.API()
if not session:ready() then return end
local domain_name = session:getVariable("domain_name")
@moteus
moteus / fsc.lua
Last active December 14, 2016 11:49
FusionPBX service control script
-- File to conrol FusionPBX Lua services/monitors
-- @usage:
-- # stop `call_flow_subscribe`
-- fs_cli -x "lua fsc.lua flow shutdown"
local destination = assert(argv[1])
local command = assert(argv[2])
local event = freeswitch.Event("CUSTOM", "fusion::" .. destination .. "::" .. command);
event:fire()
@moteus
moteus / fax_queue_monitor.lua
Last active December 14, 2016 11:49
FusionPBX fax_queue_monitor based on EventCounsumer class
require "resources.functions.config"
require "resources.functions.split"
local log = require "resources.functions.log".fax_queue_monitor
local Next = require "app.fax.resources.scripts.queue.next"
local EventConsumer = require "resources.functions.event_consumer"
local pid_file = scripts_dir .. "/run/fax_queue.tmp"
local events = EventConsumer.new(pid_file)
--- Service for FusionPBX to monitor on gateway status
-- and send email notification when gateway change its status.
--
-- Require FusionPBX 4.3 or higher
--
-- start: `fs_cli -x 'luarun gw_monitor.lua'`
-- stop: `fs_cli -x 'lua service gw_monitor stop'`
-- pid file: `${script_dir}/run/gw_monitor.pid`
local email = 'mail@address'
local log = require "resources.functions.log".apply_var
function apply_global_var(str, t)
return (string.gsub(str, "$${.-}", function(key)
key = string.sub(key, 4, -2)
local var = t and t[key] or freeswitch.getGlobalVariable(key)
if not var then
log.warningf("unknown global variable: %s", key)
end
return var or ''
-- File to conrol FusionPBX Lua services/monitors
-- @usage:
-- # stop `call_flow_subscribe` monitor
-- fs_cli -x "lua service flow shutdown"
-- # stop `mwi_subscribe` monitor
-- fs_cli -x "lua service mwi shutdown"
require "resources.functions.config"
local log = require "resources.functions.log".service
@moteus
moteus / dbf.lua
Created August 22, 2016 12:57
Basic IO for dbf file format.
local printf = function(...) return print(string.format(...)) end
local function prequire(...)
local ok, mod = pcall(require, ...)
if ok then return mod end
return nil, mod
end
local function iif(cond, val1, val2)
if cond then return val1 end return val2
@moteus
moteus / radiolisten.lua
Last active December 14, 2016 11:50
Radio Station listening for Freeswitch
-- Radio Station listening for Freeswitch
-- File containing stations. Modify location as needed
--
-- file format like
-- # Radiostation name
-- <ID>=<url>
--
STATIONS_FILE = [[c:\FreeSWITCH\scripts\radiostations.txt]]