summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/freeswitch/scripts/configuration.lua6
-rw-r--r--misc/freeswitch/scripts/configuration/freeswitch_xml.lua42
2 files changed, 21 insertions, 27 deletions
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 =
[[
<section name="configuration" description="FreeSwitch configuration for Sofia Profile">
@@ -260,32 +274,12 @@ function FreeSwitchXml.conference(self, profiles_xml, speaker, moderator)
</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="#"/>
+]] .. table.concat(speaker_xml, "\n") .. [[
+
</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="#"/>
+]] .. table.concat(moderator_xml, "\n") .. [[
+
</group>
</caller-controls>
<profiles>