diff options
Diffstat (limited to 'misc')
-rw-r--r-- | misc/freeswitch/scripts/configuration.lua | 6 | ||||
-rw-r--r-- | misc/freeswitch/scripts/configuration/freeswitch_xml.lua | 42 |
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> |