Implement a method to allow regions to query the gridwide Freeswitch

configuration from ROBUST
viewer-2-initial-appearance
Melanie 2010-11-21 22:17:25 +00:00
parent b43a01179e
commit 2b0ef9ad1d
4 changed files with 41 additions and 0 deletions

View File

@ -35,6 +35,8 @@ using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base; using OpenSim.Server.Handlers.Base;
using log4net; using log4net;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
namespace OpenSim.Server.Handlers.Freeswitch namespace OpenSim.Server.Handlers.Freeswitch
{ {
@ -67,12 +69,16 @@ namespace OpenSim.Server.Handlers.Freeswitch
ServerUtils.LoadPlugin<IFreeswitchService>(freeswitchService, args); ServerUtils.LoadPlugin<IFreeswitchService>(freeswitchService, args);
server.AddHTTPHandler(String.Format("{0}/freeswitch-config", m_freeSwitchAPIPrefix), FreeSwitchConfigHTTPHandler); server.AddHTTPHandler(String.Format("{0}/freeswitch-config", m_freeSwitchAPIPrefix), FreeSwitchConfigHTTPHandler);
server.AddHTTPHandler(String.Format("{0}/region-config", m_freeSwitchAPIPrefix), RegionConfigHTTPHandler);
} }
public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request) public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request)
{ {
Hashtable response = new Hashtable(); Hashtable response = new Hashtable();
response["str_response_string"] = string.Empty; response["str_response_string"] = string.Empty;
response["content_type"] = "text/plain";
response["keepalive"] = false;
response["int_response_code"] = 500;
Hashtable requestBody = ParseRequestBody((string) request["body"]); Hashtable requestBody = ParseRequestBody((string) request["body"]);
@ -105,5 +111,18 @@ namespace OpenSim.Server.Handlers.Freeswitch
return bodyParams; return bodyParams;
} }
public Hashtable RegionConfigHTTPHandler(Hashtable request)
{
Hashtable response = new Hashtable();
response["content_type"] = "text/json";
response["keepalive"] = false;
response["int_response_code"] = 200;
response["str_response_string"] = m_FreeswitchService.GetJsonConfig();
return response;
}
} }
} }

View File

@ -34,6 +34,7 @@ using OpenSim.Framework;
using OpenSim.Data; using OpenSim.Data;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
using OpenMetaverse; using OpenMetaverse;
using OpenMetaverse.StructuredData;
using System.Collections; using System.Collections;
namespace OpenSim.Services.FreeswitchService namespace OpenSim.Services.FreeswitchService
@ -384,5 +385,24 @@ namespace OpenSim.Services.FreeswitchService
return response; return response;
} }
public string GetJsonConfig()
{
OSDMap map = new OSDMap(11);
map.Add("Realm", m_freeSwitchRealm);
map.Add("SIPProxy", m_freeSwitchSIPProxy);
map.Add("AttemptUseSTUN", m_freeSwitchAttemptUseSTUN);
map.Add("EchoServer", m_freeSwitchEchoServer);
map.Add("EchoPort", m_freeSwitchEchoPort);
map.Add("DefaultWellKnownIP", m_freeSwitchDefaultWellKnownIP);
map.Add("DefaultTimeout", m_freeSwitchDefaultTimeout);
map.Add("Context", m_freeSwitchContext);
map.Add("ServerUser", m_freeSwitchServerUser);
map.Add("ServerPass", m_freeSwitchServerPass);
map.Add("APIPrefix", m_freeSwitchAPIPrefix);
return OSDParser.SerializeJsonString(map);
}
} }
} }

View File

@ -35,5 +35,6 @@ namespace OpenSim.Services.Interfaces
{ {
Hashtable HandleDirectoryRequest(Hashtable requestBody); Hashtable HandleDirectoryRequest(Hashtable requestBody);
Hashtable HandleDialplanRequest(Hashtable requestBody); Hashtable HandleDialplanRequest(Hashtable requestBody);
string GetJsonConfig();
} }
} }

View File

@ -1023,6 +1023,7 @@
<ReferencePath>../../../bin/</ReferencePath> <ReferencePath>../../../bin/</ReferencePath>
<Reference name="System"/> <Reference name="System"/>
<Reference name="OpenMetaverseTypes" path="../../../bin/"/> <Reference name="OpenMetaverseTypes" path="../../../bin/"/>
<Reference name="OpenMetaverse.StructuredData" path="../../../bin/"/>
<Reference name="OpenMetaverse" path="../../../bin/"/> <Reference name="OpenMetaverse" path="../../../bin/"/>
<Reference name="OpenSim.Framework"/> <Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Console"/> <Reference name="OpenSim.Framework.Console"/>