summaryrefslogtreecommitdiff
path: root/misc/freeswitch/scripts/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'misc/freeswitch/scripts/configuration')
-rw-r--r--misc/freeswitch/scripts/configuration/freeswitch_xml.lua307
-rw-r--r--misc/freeswitch/scripts/configuration/simple_xml.lua50
-rw-r--r--misc/freeswitch/scripts/configuration/sip.lua8
3 files changed, 51 insertions, 314 deletions
diff --git a/misc/freeswitch/scripts/configuration/freeswitch_xml.lua b/misc/freeswitch/scripts/configuration/freeswitch_xml.lua
deleted file mode 100644
index c81bf50..0000000
--- a/misc/freeswitch/scripts/configuration/freeswitch_xml.lua
+++ /dev/null
@@ -1,307 +0,0 @@
--- ConfigurationModule: FreeSwitchXml
---
-module(...,package.seeall)
-
-FreeSwitchXml = {}
-
--- Create FreeSwitchXml object
-function FreeSwitchXml.new(self, object)
- object = object or {}
- setmetatable(object, self)
- self.__index = self
- return object
-end
-
-function FreeSwitchXml.param(self, name, value)
- return '<param name="' .. name .. '" value="' .. value .. '"/>'
-end
-
-function FreeSwitchXml.variable(self, name, value)
- return '<variable name="' .. name .. '" value="' .. value .. '"/>'
-end
-
-function FreeSwitchXml.document(self, sections_xml)
- if type(sections_xml) == "string" then
- sections_xml = { sections_xml }
- elseif type(sections_xml) == "nil" then
- sections_xml = { "" }
- end
-
- local xml_string=
-[[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="freeswitch/xml">
-]] .. table.concat(sections_xml, "\n") .. [[
-
-</document>]]
-
- return xml_string
-end
-
-function FreeSwitchXml.directory(self, entries_xml, domain)
- if type(entries_xml) == "string" then
- entries_xml = { entries_xml }
- elseif type(entries_xml) == "nil" then
- entries_xml = { "" }
- end
-
- local xml_string =
-[[
-<section name="directory">
-<domain name="]] .. domain .. [[">
-<params>
-<param name="dial-string" value="${sofia_contact(${dialed_user}@${dialed_domain})}"/>
-</params>
-]] .. table.concat(entries_xml, "\n") .. [[
-
-</domain>
-</section>]]
- return xml_string
-end
-
-function FreeSwitchXml.group_default(self, entries_xml)
- if type(entries_xml) == "string" then
- entries_xml = { entries_xml }
- elseif type(entries_xml) == "nil" then
- entries_xml = { "" }
- end
-
- local xml_string =
-[[
-<groups>
-<group name="default">
-<users>
-]] .. table.concat(entries_xml, "\n") .. [[
-
-</users>
-</group>
-</groups>]]
- return xml_string
-end
-
-function FreeSwitchXml.user(self, user)
- require 'common.configuration_file'
- local params = common.configuration_file.get('/opt/freeswitch/scripts/ini/sip_accounts.ini', 'parameters');
-
- params['password'] = user.password;
- params['vm-password'] = user.voicemail_pin;
-
- local variables = {
- user_context = "default",
- gs_from_gateway = "false",
- gs_account_id = user.id,
- gs_account_uuid = user.uuid,
- gs_account_type = "SipAccount",
- gs_account_state = user.state,
- gs_account_caller_name = user.caller_name,
- gs_account_owner_type = user.sip_accountable_type,
- gs_account_owner_id = user.sip_accountable_id
- }
-
- local params_xml = {}
- for name, value in pairs(params) do
- params_xml[#params_xml+1] = self:param(name, value)
- end
-
- local variables_xml = {}
- for name, value in pairs(variables) do
- variables_xml[#variables_xml+1] = self:variable(name, value)
- end
-
- local xml_string =
-[[
-<user id="]] .. user.auth_name .. [[">
-<params>
-]] .. table.concat(params_xml, "\n") .. [[
-
-</params>
-<variables>
-]] .. table.concat(variables_xml, "\n") .. [[
-
-</variables>
-</user>]]
- return xml_string
-end
-
-function FreeSwitchXml.gateway_user(self, user, gateway_name, auth_name)
- user.id = user.id or 0
-
- local params = {
- ['password'] = user.password,
- }
-
- local variables = {
- user_context = "default",
- gs_from_gateway = "true",
- gs_gateway_name = gateway_name,
- gs_gateway_id = user.id
- }
-
- local params_xml = {}
- for name, value in pairs(params) do
- params_xml[#params_xml+1] = self:param(name, value)
- end
-
- local variables_xml = {}
- for name, value in pairs(variables) do
- variables_xml[#variables_xml+1] = self:variable(name, value)
- end
-
- local xml_string =
-[[
-<user id="]] .. auth_name .. [[">
-<params>
-]] .. table.concat(params_xml, "\n") .. [[
-
-</params>
-<variables>
-]] .. table.concat(variables_xml, "\n") .. [[
-
-</variables>
-</user>]]
- return xml_string
-end
-
-function FreeSwitchXml.sofia(self, parameters, profiles_xml)
- if type(profiles_xml) == "string" then
- profiles_xml = { profiles_xml }
- elseif type(profiles_xml) == "nil" then
- profiles_xml = { "" }
- end
-
- local params_xml = {}
- for name, value in pairs(parameters) do
- params_xml[#params_xml+1] = self:param(name, value)
- end
-
- local xml_string =
-[[
-<section name="configuration" description="FreeSwitch configuration for Sofia Profile">
-<configuration name="sofia.conf" description="Sofia SIP Configuration">
-<global_settings>
-]] .. table.concat(params_xml, "\n") .. [[
-
-</global_settings>
-<profiles>
-]] .. table.concat(profiles_xml, "\n") .. [[
-
-</profiles>
-</configuration>
-</section>]]
- return xml_string
-end
-
-function FreeSwitchXml.sofia_profile(self, profile_name, parameters, gateways_xml)
- params_xml = {}
- for name, value in pairs(parameters) do
- params_xml[#params_xml+1] = self:param(name, value)
- end
-
- if type(gateways_xml) == "string" then
- gateways_xml = { gateways_xml }
- elseif type(gateways_xml) == "nil" then
- gateways_xml = { "" }
- end
-
- local xml_string =
-[[
-<profile name="]] .. profile_name .. [[">
-<aliases>
-</aliases>
-<gateways>
-]] .. table.concat(gateways_xml, "\n") .. [[
-
-</gateways>
-<domains>
-<domain name="all" alias="true" parse="false"/>
-</domains>
-<settings>
-]] .. table.concat(params_xml, "\n") .. [[
-
-</settings>
-</profile>]]
- return xml_string
-end
-
-function FreeSwitchXml.gateway(self, gateway_name, parameters)
- local params_xml = {}
- if parameters then
- for name, value in pairs(parameters) do
- params_xml[#params_xml+1] = self:param(name, value)
- end
- end
-
- local xml_string =
-[[
-<gateway name="]] .. gateway_name .. [[">
-]] .. table.concat(params_xml, "\n") .. [[
-
-</gateway>]]
- return xml_string
-end
-
-function FreeSwitchXml.conference(self, profiles_xml)
- if type(profiles_xml) == "string" then
- profiles_xml = { profiles_xml }
- elseif type(profiles_xml) == "nil" then
- profiles_xml = { "" }
- end
-
- local xml_string =
-[[
-<section name="configuration" description="FreeSwitch configuration for Sofia Profile">
-<configuration name="conference.conf" description="Conference configuration">
-<advertise>
-</advertise>
-<caller-controls>
-<group name="speaker">
-<control action="mute"/>
-<control action="deaf mute" digits="*"/>
-<control action="energy up" digits="9"/>
-<control action="energy equ" digits="8"/>
-<control action="energy dn" digits="7"/>
-<control action="vol talk up" digits="3"/>
-<control action="vol talk zero" digits="2"/>
-<control action="vol talk dn" digits="1"/>
-<control action="vol listen up" digits="6"/>
-<control action="vol listen zero" digits="5"/>
-<control action="vol listen dn" digits="4"/>
-<control action="hangup" digits="#"/>
-</group>
-<group name="moderator">
-<control action="mute" digits="0"/>
-<control action="deaf mute" digits="*"/>
-<control action="energy up" digits="9"/>
-<control action="energy equ" digits="8"/>
-<control action="energy dn" digits="7"/>
-<control action="vol talk up" digits="3"/>
-<control action="vol talk zero" digits="2"/>
-<control action="vol talk dn" digits="1"/>
-<control action="vol listen up" digits="6"/>
-<control action="vol listen zero" digits="5"/>
-<control action="vol listen dn" digits="4"/>
-<control action="hangup" digits="#"/>
-</group>
-</caller-controls>
-<profiles>
-]] .. table.concat(profiles_xml, "\n") .. [[
-
-</profiles>
-</configuration>
-</section>]]
- return xml_string
-end
-
-function FreeSwitchXml.conference_profile(self, profile_name, parameters)
- params_xml = {}
- for name, value in pairs(parameters) do
- params_xml[#params_xml+1] = self:param(name, value)
- end
-
- local xml_string =
-[[
-<profile name="]] .. profile_name .. [[">
-]] .. table.concat(params_xml, "\n") .. [[
-
-</profile>]]
- return xml_string
-end
diff --git a/misc/freeswitch/scripts/configuration/simple_xml.lua b/misc/freeswitch/scripts/configuration/simple_xml.lua
new file mode 100644
index 0000000..f04dd1e
--- /dev/null
+++ b/misc/freeswitch/scripts/configuration/simple_xml.lua
@@ -0,0 +1,50 @@
+-- Gemeinschaft 5 simple xml gererator class
+-- (c) AMOOMA GmbH 2013
+--
+
+module(...,package.seeall)
+
+SimpleXml = {}
+
+-- Create SimpleXml object
+function SimpleXml.new(self, arg)
+ arg = arg or {}
+ object = arg.object or {}
+ setmetatable(object, self);
+ self.__index = self;
+ self.class = 'simplexml';
+ return object;
+end
+
+function SimpleXml.element(self, arg)
+ local xml_tag = '<' .. tostring(arg[1]);
+ for key, value in pairs(arg) do
+ if type(key) == 'string' then
+ xml_tag = xml_tag .. ' ' .. tostring(key) .. '="' .. tostring(value) .. '"';
+ end
+ end
+ xml_tag = xml_tag .. '>';
+
+ for key=2, #arg do
+ xml_tag = xml_tag .. '\n' .. tostring(arg[key]) .. '\n';
+ end
+
+ return xml_tag .. '</' .. tostring(arg[1]) .. '>';
+end
+
+
+function SimpleXml.from_hash(self, element_name, parameter_hash, key_name, value_name)
+ local params_xml = '';
+ for key, value in pairs(parameter_hash) do
+ local arguments = { [1] = element_name };
+ if key_name and value_name then
+ arguments[key_name] = key;
+ arguments[value_name] = value;
+ else
+ arguments[key] = value;
+ end
+ params_xml = params_xml .. tostring(self:element(arguments)) .. '\n';
+ end
+
+ return params_xml;
+end
diff --git a/misc/freeswitch/scripts/configuration/sip.lua b/misc/freeswitch/scripts/configuration/sip.lua
index 78143bc..6f5b204 100644
--- a/misc/freeswitch/scripts/configuration/sip.lua
+++ b/misc/freeswitch/scripts/configuration/sip.lua
@@ -1,5 +1,5 @@
-- Gemeinschaft 5 module: sip configuration class
--- (c) AMOOMA GmbH 2012
+-- (c) AMOOMA GmbH 2012-2013
--
module(...,package.seeall)
@@ -18,12 +18,6 @@ function Sip.new(self, arg)
return object;
end
--- find gateway by name
-function Sip.find_gateway_by_name(self, name)
- require 'common.configuration_file'
- return common.configuration_file.get('/opt/freeswitch/scripts/ini/gateways.ini', name);
-end
-
-- list sip domains
function Sip.domains(self)
local sql_query = 'SELECT * FROM `sip_domains`';