From 44059b1cb8348c2ee24e056f81c3380abd55096d Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 10 Jan 2013 14:22:49 +0100 Subject: read conference controls from database --- misc/freeswitch/scripts/configuration.lua | 6 ++-- .../scripts/configuration/freeswitch_xml.lua | 42 ++++++++++------------ 2 files changed, 21 insertions(+), 27 deletions(-) (limited to 'misc/freeswitch') diff --git a/misc/freeswitch/scripts/configuration.lua b/misc/freeswitch/scripts/configuration.lua index 41c1523..0cd3752 100644 --- a/misc/freeswitch/scripts/configuration.lua +++ b/misc/freeswitch/scripts/configuration.lua @@ -100,7 +100,7 @@ function conf_conference(database) require 'common.configuration_table' XML_STRING = xml:document(xml:conference()); - local conference_parameters = common.configuration_table.get(database, 'conferences', 'parameters'); + local config = common.configuration_table.get(database, 'conferences'); local event_name = params:getHeader("Event-Name") if event_name == 'COMMAND' then @@ -112,8 +112,8 @@ function conf_conference(database) conference = common.conference.Conference:new{log=log, database=database}:find_by_id(conf_name); if conference then log:debug('CONFIG_CONFERENCE ', conf_name, ' name: ', conference.record.name, ', profile: ', profile_name); - conference_parameters['caller-id-name'] = conference.record.name or ''; - XML_STRING = xml:document(xml:conference(xml:conference_profile(profile_name, conference_parameters))); + config.parameters['caller-id-name'] = conference.record.name or ''; + XML_STRING = xml:document(xml:conference(xml:conference_profile(profile_name, config.parameters), config.controls_speaker, config.controls_moderator)); else log:error('CONFIG_CONFERENCE ', conf_name, ' - conference not found'); end diff --git a/misc/freeswitch/scripts/configuration/freeswitch_xml.lua b/misc/freeswitch/scripts/configuration/freeswitch_xml.lua index 65e7998..09472bf 100644 --- a/misc/freeswitch/scripts/configuration/freeswitch_xml.lua +++ b/misc/freeswitch/scripts/configuration/freeswitch_xml.lua @@ -252,6 +252,20 @@ function FreeSwitchXml.conference(self, profiles_xml, speaker, moderator) profiles_xml = { "" } end + local speaker_xml = {} + if speaker then + for name, value in pairs(speaker) do + speaker_xml[#speaker_xml+1] = self:to_tag{ tag_name = 'control', action = name, digits = value }; + end + end + + local moderator_xml = {} + if moderator then + for name, value in pairs(speaker) do + moderator_xml[#moderator_xml+1] = self:to_tag{ tag_name = 'control', action = name, digits = value }; + end + end + local xml_string = [[
@@ -260,32 +274,12 @@ function FreeSwitchXml.conference(self, profiles_xml, speaker, moderator) - - - - - - - - - - - - +]] .. table.concat(speaker_xml, "\n") .. [[ + - - - - - - - - - - - - +]] .. table.concat(moderator_xml, "\n") .. [[ + -- cgit v1.2.3