* Some tweaks to the FreeSwitchModule to allow a well known hostname and avoid a double // in a path which causes account verification to fail
* The change shouldn't affect anyone who has it working currently and makes it a ton easier for everyone else to get it working. * Handle a case when there's no Event-Calling-Function but it's obviously a REGISTER method0.6.5-rc1
parent
bd522720f7
commit
c397f05be7
|
@ -69,7 +69,15 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
}
|
}
|
||||||
|
|
||||||
string eventCallingFunction = (string) request["Event-Calling-Function"];
|
string eventCallingFunction = (string) request["Event-Calling-Function"];
|
||||||
|
if (eventCallingFunction == null)
|
||||||
|
{
|
||||||
|
eventCallingFunction = "sofia_reg_parse_auth";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eventCallingFunction.Length == 0)
|
||||||
|
{
|
||||||
|
eventCallingFunction = "sofia_reg_parse_auth";
|
||||||
|
}
|
||||||
|
|
||||||
if (eventCallingFunction=="sofia_reg_parse_auth")
|
if (eventCallingFunction=="sofia_reg_parse_auth")
|
||||||
{
|
{
|
||||||
|
@ -110,12 +118,16 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
//response = HandleLoadNetworkLists(request);
|
//response = HandleLoadNetworkLists(request);
|
||||||
response["int_response_code"]=404;
|
response["int_response_code"]=404;
|
||||||
response["keepalive"] = false;
|
response["keepalive"] = false;
|
||||||
|
response["content_type"] = "text/xml";
|
||||||
|
response["str_response_string"] = "";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction);
|
m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction);
|
||||||
response["int_response_code"]=404;
|
response["int_response_code"]=404;
|
||||||
response["keepalive"] = false;
|
response["keepalive"] = false;
|
||||||
|
response["content_type"] = "text/xml";
|
||||||
|
response["str_response_string"] = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
private static int m_freeSwitchSubscribeRetry;
|
private static int m_freeSwitchSubscribeRetry;
|
||||||
private static string m_freeSwitchUrlResetPassword;
|
private static string m_freeSwitchUrlResetPassword;
|
||||||
private static IPEndPoint m_FreeSwitchServiceIP;
|
private static IPEndPoint m_FreeSwitchServiceIP;
|
||||||
|
private int m_freeSwitchServicePort;
|
||||||
|
private string m_openSimWellKnownHTTPAddress;
|
||||||
|
|
||||||
private FreeSwitchDirectory m_FreeSwitchDirectory;
|
private FreeSwitchDirectory m_FreeSwitchDirectory;
|
||||||
private FreeSwitchDialplan m_FreeSwitchDialplan;
|
private FreeSwitchDialplan m_FreeSwitchDialplan;
|
||||||
|
@ -131,7 +133,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
int servicePort = m_config.GetInt("freeswitch_service_port", 80);
|
int servicePort = m_config.GetInt("freeswitch_service_port", 80);
|
||||||
IPAddress serviceIPAddress = IPAddress.Parse(serviceIP);
|
IPAddress serviceIPAddress = IPAddress.Parse(serviceIP);
|
||||||
m_FreeSwitchServiceIP = new IPEndPoint(serviceIPAddress, servicePort);
|
m_FreeSwitchServiceIP = new IPEndPoint(serviceIPAddress, servicePort);
|
||||||
|
m_freeSwitchServicePort = servicePort;
|
||||||
m_freeSwitchRealm = m_config.GetString("freeswitch_realm", String.Empty);
|
m_freeSwitchRealm = m_config.GetString("freeswitch_realm", String.Empty);
|
||||||
m_freeSwitchSIPProxy = m_config.GetString("freeswitch_sip_proxy", m_freeSwitchRealm);
|
m_freeSwitchSIPProxy = m_config.GetString("freeswitch_sip_proxy", m_freeSwitchRealm);
|
||||||
m_freeSwitchAttemptUseSTUN = m_config.GetBoolean("freeswitch_attempt_stun", true);
|
m_freeSwitchAttemptUseSTUN = m_config.GetBoolean("freeswitch_attempt_stun", true);
|
||||||
|
@ -139,6 +141,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
m_freeSwitchEchoServer = m_config.GetString("freeswitch_echo_server", m_freeSwitchRealm);
|
m_freeSwitchEchoServer = m_config.GetString("freeswitch_echo_server", m_freeSwitchRealm);
|
||||||
m_freeSwitchEchoPort = m_config.GetInt("freeswitch_echo_port", 50505);
|
m_freeSwitchEchoPort = m_config.GetInt("freeswitch_echo_port", 50505);
|
||||||
m_freeSwitchDefaultWellKnownIP = m_config.GetString("freeswitch_well_known_ip", m_freeSwitchRealm);
|
m_freeSwitchDefaultWellKnownIP = m_config.GetString("freeswitch_well_known_ip", m_freeSwitchRealm);
|
||||||
|
m_openSimWellKnownHTTPAddress = m_config.GetString("opensim_well_known_http_address", serviceIPAddress.ToString());
|
||||||
m_freeSwitchDefaultTimeout = m_config.GetInt("freeswitch_default_timeout", 5000);
|
m_freeSwitchDefaultTimeout = m_config.GetInt("freeswitch_default_timeout", 5000);
|
||||||
m_freeSwitchSubscribeRetry = m_config.GetInt("freeswitch_subscribe_retry", 120);
|
m_freeSwitchSubscribeRetry = m_config.GetInt("freeswitch_subscribe_retry", 120);
|
||||||
m_freeSwitchUrlResetPassword = m_config.GetString("freeswitch_password_reset_url", String.Empty);
|
m_freeSwitchUrlResetPassword = m_config.GetString("freeswitch_password_reset_url", String.Empty);
|
||||||
|
@ -306,12 +309,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
// those
|
// those
|
||||||
|
|
||||||
agentname = agentname.Replace('+', '-').Replace('/', '_');
|
agentname = agentname.Replace('+', '-').Replace('/', '_');
|
||||||
|
|
||||||
// LLSDVoiceAccountResponse voiceAccountResponse =
|
// LLSDVoiceAccountResponse voiceAccountResponse =
|
||||||
// new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, "http://etsvc02.hursley.ibm.com/api");
|
// new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, "http://etsvc02.hursley.ibm.com/api");
|
||||||
LLSDVoiceAccountResponse voiceAccountResponse =
|
LLSDVoiceAccountResponse voiceAccountResponse =
|
||||||
new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm,
|
new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm,
|
||||||
String.Format("http://{0}/{1}/", m_FreeSwitchServiceIP,
|
String.Format("http://{0}:{1}{2}/", m_openSimWellKnownHTTPAddress, m_freeSwitchServicePort,
|
||||||
m_freeSwitchAPIPrefix));
|
m_freeSwitchAPIPrefix));
|
||||||
|
|
||||||
string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse);
|
string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse);
|
||||||
|
@ -490,20 +493,22 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
|
|
||||||
public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request)
|
public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}",request.ToString());
|
m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}", (string)request["body"]);
|
||||||
|
|
||||||
Hashtable response = new Hashtable();
|
Hashtable response = new Hashtable();
|
||||||
|
|
||||||
// all the params come as NVPs in the request body
|
// all the params come as NVPs in the request body
|
||||||
Hashtable requestBody = parseRequestBody((string) request["body"]);
|
Hashtable requestBody = parseRequestBody((string) request["body"]);
|
||||||
|
|
||||||
// is this a dialplan or directory request
|
// is this a dialplan or directory request
|
||||||
string section = (string) requestBody["section"];
|
string section = (string) requestBody["section"];
|
||||||
|
|
||||||
if (section=="directory")
|
if (section == "directory")
|
||||||
response = m_FreeSwitchDirectory.HandleDirectoryRequest(requestBody);
|
response = m_FreeSwitchDirectory.HandleDirectoryRequest(requestBody);
|
||||||
else if (section=="dialplan")
|
else if (section == "dialplan")
|
||||||
response = m_FreeSwitchDialplan.HandleDialplanRequest(requestBody);
|
response = m_FreeSwitchDialplan.HandleDialplanRequest(requestBody);
|
||||||
|
else
|
||||||
|
m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section);
|
||||||
|
|
||||||
// XXX: re-generate dialplan:
|
// XXX: re-generate dialplan:
|
||||||
// - conf == region UUID
|
// - conf == region UUID
|
||||||
|
|
Loading…
Reference in New Issue