diff --git a/OpenSim/Region/OptionalModules/ServiceConnectorsOut/Freeswitch/LocalAssetServiceConnector.cs b/OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs similarity index 53% rename from OpenSim/Region/OptionalModules/ServiceConnectorsOut/Freeswitch/LocalAssetServiceConnector.cs rename to OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs index 7ec34aa7f0..a0e8d0c9ee 100644 --- a/OpenSim/Region/OptionalModules/ServiceConnectorsOut/Freeswitch/LocalAssetServiceConnector.cs +++ b/OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs @@ -25,77 +25,42 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using System; +using System.Reflection; +using System.Collections.Generic; using log4net; using Nini.Config; -using System; -using System.Collections.Generic; -using System.Reflection; using OpenSim.Framework; -using OpenSim.Server.Base; -using OpenSim.Region.Framework.Interfaces; +using OpenSim.Framework.Servers.HttpServer; using OpenSim.Region.Framework.Scenes; -using OpenSim.Services.Interfaces; +using OpenSim.Region.Framework.Interfaces; +using OpenSim.Server.Base; +using OpenSim.Server.Handlers.Base; -namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset +namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Freeswitch { - public class FreeswitchServicesConnector : - ISharedRegionModule + public class FreeswitchServiceInConnectorModule : ISharedRegionModule { - private static readonly ILog m_log = - LogManager.GetLogger( - MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static bool m_Enabled = false; + + private IConfigSource m_Config; + bool m_Registered = false; - private IFreeswitchService m_FreeswitchService; + #region IRegionModule interface - private bool m_Enabled = false; - - public Type ReplacableInterface + public void Initialise(IConfigSource config) { - get { return null; } - } - - public string Name - { - get { return "FreeswitchServicesConnector"; } - } - - public void Initialise(IConfigSource source) - { - IConfig moduleConfig = source.Configs["Modules"]; + m_Config = config; + IConfig moduleConfig = config.Configs["Modules"]; if (moduleConfig != null) { - string name = moduleConfig.GetString("FreeswitchServices", ""); - if (name == Name) + m_Enabled = moduleConfig.GetBoolean("FreeswitchServiceInConnector", false); + if (m_Enabled) { - IConfig freeswitchConfig = source.Configs["FreeswitchService"]; - if (freeswitchConfig == null) - { - m_log.Error("[FREESWITCH CONNECTOR]: FreeswitchService missing from OpenSim.ini"); - return; - } - - string serviceDll = freeswitchConfig.GetString("LocalServiceModule", - String.Empty); - - if (serviceDll == String.Empty) - { - m_log.Error("[FREESWITCH CONNECTOR]: No LocalServiceModule named in section FreeswitchService"); - return; - } - - Object[] args = new Object[] { source }; - m_FreeswitchService = - ServerUtils.LoadPlugin(serviceDll, - args); - - if (m_FreeswitchService == null) - { - m_log.Error("[FREESWITCH CONNECTOR]: Can't load freeswitch service"); - return; - } - m_Enabled = true; - m_log.Info("[FREESWITCH CONNECTOR]: Freeswitch connector enabled"); + m_log.Info("[FREESWITCH IN CONNECTOR]: FreeswitchServiceInConnector enabled"); } + } } @@ -107,14 +72,31 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset { } + public Type ReplacableInterface + { + get { return null; } + } + + public string Name + { + get { return "RegionFreeswitchService"; } + } + public void AddRegion(Scene scene) { if (!m_Enabled) return; - m_log.InfoFormat("[FREESWITCH CONNECTOR]: Enabled freeswitch for region {0}", scene.RegionInfo.RegionName); + if (!m_Registered) + { + m_Registered = true; - scene.RegisterModuleInterface(m_FreeswitchService); + m_log.Info("[RegionFreeswitchService]: Starting..."); + + Object[] args = new Object[] { m_Config, MainServer.Instance }; + + ServerUtils.LoadPlugin("OpenSim.Server.Handlers.dll:FreeswitchServiceConnector", args); + } } public void RemoveRegion(Scene scene) @@ -124,5 +106,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset public void RegionLoaded(Scene scene) { } + + #endregion + } }