diff options
Diffstat (limited to 'misc/freeswitch')
-rw-r--r-- | misc/freeswitch/scripts/configuration.lua | 9 | ||||
-rw-r--r-- | misc/freeswitch/scripts/configuration/freeswitch_xml.lua | 50 |
2 files changed, 44 insertions, 15 deletions
diff --git a/misc/freeswitch/scripts/configuration.lua b/misc/freeswitch/scripts/configuration.lua index d0e2268..41c1523 100644 --- a/misc/freeswitch/scripts/configuration.lua +++ b/misc/freeswitch/scripts/configuration.lua @@ -125,6 +125,13 @@ function conf_conference(database) end end +function conf_post_switch(database) + require 'common.configuration_table'; + local parameters = common.configuration_table.get(database, 'post_load_switch', 'settings'); + + XML_STRING = xml:document(xml:generic{name = 'post_load_switch.conf', parameters = parameters}); +end + function directory_sip_account(database) local key = params:getHeader('key'); @@ -213,6 +220,8 @@ if XML_REQUEST.section == 'configuration' and XML_REQUEST.tag_name == 'configura conf_sofia(database); elseif XML_REQUEST.key_value == "conference.conf" then conf_conference(database); + elseif XML_REQUEST.key_value == "post_load_switch.conf" then + conf_post_switch(database); end elseif XML_REQUEST.section == 'directory' and XML_REQUEST.tag_name == '' then log:debug('SIP_ACCOUNT_DIRECTORY - initialization phase'); diff --git a/misc/freeswitch/scripts/configuration/freeswitch_xml.lua b/misc/freeswitch/scripts/configuration/freeswitch_xml.lua index 5f4602c..3da76df 100644 --- a/misc/freeswitch/scripts/configuration/freeswitch_xml.lua +++ b/misc/freeswitch/scripts/configuration/freeswitch_xml.lua @@ -12,12 +12,8 @@ function FreeSwitchXml.new(self, object) return object end -function FreeSwitchXml.param(self, name, value) - return '<param name="' .. tostring(name) .. '" value="' .. tostring(value) .. '"/>' -end - -function FreeSwitchXml.variable(self, name, value) - return '<variable name="' .. tostring(name) .. '" value="' .. tostring(value) .. '"/>' +function FreeSwitchXml.nv_tag(self, name, value, tag) + return '<' .. tostring(tag) .. ' name="' .. tostring(name) .. '" value="' .. tostring(value) .. '"/>' end function FreeSwitchXml.document(self, sections_xml) @@ -98,12 +94,12 @@ function FreeSwitchXml.user(self, user, params) local params_xml = {} for name, value in pairs(params) do - params_xml[#params_xml+1] = self:param(name, value) + params_xml[#params_xml+1] = self:nv_tag(name, value, 'param') end local variables_xml = {} for name, value in pairs(variables) do - variables_xml[#variables_xml+1] = self:variable(name, value) + variables_xml[#variables_xml+1] = self:nv_tag(name, value, 'variable') end local xml_string = @@ -137,12 +133,12 @@ function FreeSwitchXml.gateway_user(self, user, gateway_name, auth_name) local params_xml = {} for name, value in pairs(params) do - params_xml[#params_xml+1] = self:param(name, value) + params_xml[#params_xml+1] = self:nv_tag(name, value, 'param') end local variables_xml = {} for name, value in pairs(variables) do - variables_xml[#variables_xml+1] = self:variable(name, value) + variables_xml[#variables_xml+1] = self:nv_tag(name, value, 'variable') end local xml_string = @@ -169,7 +165,7 @@ function FreeSwitchXml.sofia(self, parameters, profiles_xml) local params_xml = {} for name, value in pairs(parameters) do - params_xml[#params_xml+1] = self:param(name, value) + params_xml[#params_xml+1] = self:nv_tag(name, value, 'param') end local xml_string = @@ -192,7 +188,7 @@ 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) + params_xml[#params_xml+1] = self:nv_tag(name, value, 'param') end if type(gateways_xml) == "string" then @@ -225,7 +221,7 @@ 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) + params_xml[#params_xml+1] = self:nv_tag(name, value, 'param') end end @@ -291,9 +287,9 @@ function FreeSwitchXml.conference(self, profiles_xml) end function FreeSwitchXml.conference_profile(self, profile_name, parameters) - params_xml = {} + local params_xml = {} for name, value in pairs(parameters) do - params_xml[#params_xml+1] = self:param(name, value) + params_xml[#params_xml+1] = self:nv_tag(name, value, 'param') end local xml_string = @@ -304,3 +300,27 @@ function FreeSwitchXml.conference_profile(self, profile_name, parameters) </profile>]] return xml_string end + +function FreeSwitchXml.generic(self, arg) + local params_xml = arg.params_xml or {}; + local params_tag = arg.params_tag or 'settings'; + local parameter_tag = arg.parameter_tag or 'param'; + + if arg.parameters then + for name, value in pairs(arg.parameters) do + params_xml[#params_xml+1] = self:nv_tag(name, value, parameter_tag) + end + end + + local xml_string = +[[ +<section name="configuration" description="FreeSWITCH configuration"> +<configuration name="]] .. tostring(arg.name) .. [[" description="Created by FreeSwitchXml.generic"> +<]] .. tostring(params_tag) .. [[> +]] .. table.concat(params_xml, "\n") .. [[ + +</]] .. tostring(params_tag) .. [[> +</configuration> +</section>]] + return xml_string +end |