Skip to content

Instantly share code, notes, and snippets.

View moteus's full-sized avatar

Alexey Melnichuk moteus

View GitHub Profile
@moteus
moteus / freeswitch.i
Created November 29, 2016 11:29
Dbh query with params for FS
%module freeswitch
%{
#include "freeswitch_lua.h"
%}
%typemap(in, checkfn = "lua_isfunction") SWIGLUA_FN {
$1.L = L;
$1.idx = $input;
}
@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]]
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")
<?xml version="1.0"?>
<document type="freeswitch/xml">
<X-PRE-PROCESS cmd="set" data="local_address=192.168.123.58"/>
<X-PRE-PROCESS cmd="set" data="local_port=5064"/>
<X-PRE-PROCESS cmd="set" data="domain_name=$${local_address}"/>
<X-PRE-PROCESS cmd="set" data="external_address=$${local_address}"/>
<X-PRE-PROCESS cmd="set" data="external_port=5088"/>
<section name="configuration">
@moteus
moteus / call_forward_api.lua
Last active April 18, 2017 13:35
FusionPBX. Use Lua code to build CF dialplan from Web UI
local Database = require "resources.functions.database"
local route_to_bridge = require "resources.functions.route_to_bridge"
local json = require "resources.functions.lunajson"
local function decode_value(v)
return (string.gsub(v, [[\u00(%x%x)]], {
['22'] = '"';
['27'] = "'";
['26'] = "&";
['3C'] = "<"; ['3c'] = "<";
--! @usage
-- forward incoming message to some extension
-- <action application="lua" data="sms_forward.lua '${from}' '100@my.domain.com'" />
local function escape(s)
s = string.gsub(s, '\\', '\\\\')
s = string.gsub(s, '|', '\\|')
return s
end
@moteus
moteus / sms_bcd2gsm.lua
Last active May 1, 2017 08:35
API command to fix ALPHANUMERIC source numbers received from mod_gsmopen
-- API command to fix ALPHANUMERIC source numbers received from mod_gsmopen
-- Usage: <action application="set" data="from=${lua(sms_bcd2gsm.lua ${from})}" />
-- !! Do not forget that for resending uses not `from` header but `from_full`.
--
-- https://github.com/moteus/lua-tpdu
--
assert(stream, 'this is API command')
local tut = require "tpdu.utils"
@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 curl = require "cURL"
local lom = require "lxp.lom"
local GISMETEO_CODES = {
['7495'] = '27612_1';
['7496'] = '27612_1';
['7499'] = '27612_1';
}
local gismeteo_base_url = "http://informer.gismeteo.ru/xml/"
@moteus
moteus / pgmoon.lluv.lua
Last active June 23, 2017 08:05
Wrapper class to use lluv socket class with pgmoon
-- socket = require "pgmoon.lluv".Socket.new()
local ut = require "lluv.utils"
local socket = require "lluv.luasocket"
local flatten = require("pgmoon.util").flatten
local function Super(class)
return function(self, m, ...)
if class.__base and class.__base[m] then
return class.__base[m](self, ...)