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.Server.Handlers.Base;
using log4net;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
namespace OpenSim.Server.Handlers.Freeswitch
{
@ -67,12 +69,16 @@ namespace OpenSim.Server.Handlers.Freeswitch
ServerUtils.LoadPlugin<IFreeswitchService>(freeswitchService, args);
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)
{
Hashtable response = new Hashtable();
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"]);
@ -105,5 +111,18 @@ namespace OpenSim.Server.Handlers.Freeswitch
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.Services.Interfaces;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using System.Collections;
namespace OpenSim.Services.FreeswitchService
@ -384,5 +385,24 @@ namespace OpenSim.Services.FreeswitchService
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 HandleDialplanRequest(Hashtable requestBody);
string GetJsonConfig();
}
}

View File

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