Skip to content

Instantly share code, notes, and snippets.

View moteus's full-sized avatar

Alexey Melnichuk moteus

View GitHub Profile
@moteus
moteus / att_xfer_mon.lua
Last active August 10, 2017 13:23
Monitor transfer channels on FS and put info to memcache to be able do intercep
-- This service can be run as standalone application
-- or from FreeSWITCH using `luarun att_xfer_mon.lua`
--------------------------------------------------------
local EventService = require "uv_event_service"
local Memcached = require "lluv.memcached"
local service_name = 'att_xfer'
local service = EventService.new(service_name, { '127.0.0.1', '8021', 'ClueCon',
@moteus
moteus / registry.lua
Created October 19, 2017 09:04
Implementation registry in lua
local Registry = {} do
Registry.__index = Registry
function Registry:new()
return setmetatable({_r = {0}}, {__index = self})
end
function Registry:ref(value)
local registry = self._r
@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 / cache_perf.lua
Last active November 23, 2017 11:47
Basic cache perfomance test for FusionPBX
-- to run test
-- * copy file to ${script_dir}\cache_perf.lua
-- * in some domain create varialble
-- category: test
-- subcategory: test
-- type: bool
-- value: false
-- * copy domain uuid to `domain_uuid` variable
-- * from fs_cli run `lua cache_perf.lua 1000`
-- (1000 is number of iteration)
@moteus
moteus / multi_request.lua
Last active April 13, 2018 07:26
Run multiple curl requests from coroutines simultaneously
local cURL = require "cURL.safe"
local json = require "cjson.safe"
-------------------------------------------------------------------
local MultiRequests = {} do
MultiRequests.__index = MultiRequests
function MultiRequests.new(...)
local self = setmetatable({}, MultiRequests)
return self:__init(...)
@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 / mkforwardlib.lua
Created January 9, 2014 07:08
Create proxy dll library on Windows. This script use `dumpbin` to list all export symbols. Example: `mkforwardlib lua51 lua5.1 X86` create lua5.1.dll as proxy to lua51.dll
local reallib
local fakelib
local machine
local extrasymbols = {}
local args = {...}
local errmsg
if args[1] then reallib = args[1] end
if args[2] then fakelib = args[2] end
if args[3] then machine = args[3] end
@moteus
moteus / prefix_tree.lua
Created June 21, 2013 08:32
Finds longest prefix from prefix list for given string
------------------------------------------------
-- Общие функции для работы с деревом --
------------------------------------------------
local default_compare = function(lhs, rhs) return lhs == rhs end;
local default_char_set = {'0','1','2','3','4','5','6','7','8','9'};
local INVALID_VALUE_ALWAYS_NIL = {}
--Удаляет все пустые ветви в дереве
local pack_empty

ELF

ELF Header

The first portion of any ELF file is the ELF header. This generally provides offsets to other headers (program headers and section headers) within an ELF.

typedef struct {
  unsigned char e_ident[EI_NIDENT];
 uint16_t e_type;
--- 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'