diff options
author | Teravus Ovares | 2009-04-22 06:07:39 +0000 |
---|---|---|
committer | Teravus Ovares | 2009-04-22 06:07:39 +0000 |
commit | c397f05be74487d18eb2e60d52dadffc496aa19e (patch) | |
tree | 5cddd1cc17eb006a41bfec39b0f55c596ec402cc | |
parent | Change the default for FreeSwitch Voice to disable. Most people don't have (diff) | |
download | opensim-SC-c397f05be74487d18eb2e60d52dadffc496aa19e.zip opensim-SC-c397f05be74487d18eb2e60d52dadffc496aa19e.tar.gz opensim-SC-c397f05be74487d18eb2e60d52dadffc496aa19e.tar.bz2 opensim-SC-c397f05be74487d18eb2e60d52dadffc496aa19e.tar.xz |
* 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 method
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs | 21 |
2 files changed, 26 insertions, 9 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs index 4113976..24f114d 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs | |||
@@ -69,7 +69,15 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
69 | } | 69 | } |
70 | 70 | ||
71 | string eventCallingFunction = (string) request["Event-Calling-Function"]; | 71 | string eventCallingFunction = (string) request["Event-Calling-Function"]; |
72 | 72 | if (eventCallingFunction == null) | |
73 | { | ||
74 | eventCallingFunction = "sofia_reg_parse_auth"; | ||
75 | } | ||
76 | |||
77 | if (eventCallingFunction.Length == 0) | ||
78 | { | ||
79 | eventCallingFunction = "sofia_reg_parse_auth"; | ||
80 | } | ||
73 | 81 | ||
74 | if (eventCallingFunction=="sofia_reg_parse_auth") | 82 | if (eventCallingFunction=="sofia_reg_parse_auth") |
75 | { | 83 | { |
@@ -110,12 +118,16 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
110 | //response = HandleLoadNetworkLists(request); | 118 | //response = HandleLoadNetworkLists(request); |
111 | response["int_response_code"]=404; | 119 | response["int_response_code"]=404; |
112 | response["keepalive"] = false; | 120 | response["keepalive"] = false; |
121 | response["content_type"] = "text/xml"; | ||
122 | response["str_response_string"] = ""; | ||
113 | } | 123 | } |
114 | else | 124 | else |
115 | { | 125 | { |
116 | m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction); | 126 | m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction); |
117 | response["int_response_code"]=404; | 127 | response["int_response_code"]=404; |
118 | response["keepalive"] = false; | 128 | response["keepalive"] = false; |
129 | response["content_type"] = "text/xml"; | ||
130 | response["str_response_string"] = ""; | ||
119 | } | 131 | } |
120 | 132 | ||
121 | 133 | ||
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs index fcb1c97..6fb2c53 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs | |||
@@ -90,6 +90,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
90 | private static int m_freeSwitchSubscribeRetry; | 90 | private static int m_freeSwitchSubscribeRetry; |
91 | private static string m_freeSwitchUrlResetPassword; | 91 | private static string m_freeSwitchUrlResetPassword; |
92 | private static IPEndPoint m_FreeSwitchServiceIP; | 92 | private static IPEndPoint m_FreeSwitchServiceIP; |
93 | private int m_freeSwitchServicePort; | ||
94 | private string m_openSimWellKnownHTTPAddress; | ||
93 | 95 | ||
94 | private FreeSwitchDirectory m_FreeSwitchDirectory; | 96 | private FreeSwitchDirectory m_FreeSwitchDirectory; |
95 | private FreeSwitchDialplan m_FreeSwitchDialplan; | 97 | private FreeSwitchDialplan m_FreeSwitchDialplan; |
@@ -131,7 +133,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
131 | int servicePort = m_config.GetInt("freeswitch_service_port", 80); | 133 | int servicePort = m_config.GetInt("freeswitch_service_port", 80); |
132 | IPAddress serviceIPAddress = IPAddress.Parse(serviceIP); | 134 | IPAddress serviceIPAddress = IPAddress.Parse(serviceIP); |
133 | m_FreeSwitchServiceIP = new IPEndPoint(serviceIPAddress, servicePort); | 135 | m_FreeSwitchServiceIP = new IPEndPoint(serviceIPAddress, servicePort); |
134 | 136 | m_freeSwitchServicePort = servicePort; | |
135 | m_freeSwitchRealm = m_config.GetString("freeswitch_realm", String.Empty); | 137 | m_freeSwitchRealm = m_config.GetString("freeswitch_realm", String.Empty); |
136 | m_freeSwitchSIPProxy = m_config.GetString("freeswitch_sip_proxy", m_freeSwitchRealm); | 138 | m_freeSwitchSIPProxy = m_config.GetString("freeswitch_sip_proxy", m_freeSwitchRealm); |
137 | m_freeSwitchAttemptUseSTUN = m_config.GetBoolean("freeswitch_attempt_stun", true); | 139 | m_freeSwitchAttemptUseSTUN = m_config.GetBoolean("freeswitch_attempt_stun", true); |
@@ -139,6 +141,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
139 | m_freeSwitchEchoServer = m_config.GetString("freeswitch_echo_server", m_freeSwitchRealm); | 141 | m_freeSwitchEchoServer = m_config.GetString("freeswitch_echo_server", m_freeSwitchRealm); |
140 | m_freeSwitchEchoPort = m_config.GetInt("freeswitch_echo_port", 50505); | 142 | m_freeSwitchEchoPort = m_config.GetInt("freeswitch_echo_port", 50505); |
141 | m_freeSwitchDefaultWellKnownIP = m_config.GetString("freeswitch_well_known_ip", m_freeSwitchRealm); | 143 | m_freeSwitchDefaultWellKnownIP = m_config.GetString("freeswitch_well_known_ip", m_freeSwitchRealm); |
144 | m_openSimWellKnownHTTPAddress = m_config.GetString("opensim_well_known_http_address", serviceIPAddress.ToString()); | ||
142 | m_freeSwitchDefaultTimeout = m_config.GetInt("freeswitch_default_timeout", 5000); | 145 | m_freeSwitchDefaultTimeout = m_config.GetInt("freeswitch_default_timeout", 5000); |
143 | m_freeSwitchSubscribeRetry = m_config.GetInt("freeswitch_subscribe_retry", 120); | 146 | m_freeSwitchSubscribeRetry = m_config.GetInt("freeswitch_subscribe_retry", 120); |
144 | m_freeSwitchUrlResetPassword = m_config.GetString("freeswitch_password_reset_url", String.Empty); | 147 | m_freeSwitchUrlResetPassword = m_config.GetString("freeswitch_password_reset_url", String.Empty); |
@@ -306,12 +309,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
306 | // those | 309 | // those |
307 | 310 | ||
308 | agentname = agentname.Replace('+', '-').Replace('/', '_'); | 311 | agentname = agentname.Replace('+', '-').Replace('/', '_'); |
309 | 312 | ||
310 | // LLSDVoiceAccountResponse voiceAccountResponse = | 313 | // LLSDVoiceAccountResponse voiceAccountResponse = |
311 | // new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, "http://etsvc02.hursley.ibm.com/api"); | 314 | // new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, "http://etsvc02.hursley.ibm.com/api"); |
312 | LLSDVoiceAccountResponse voiceAccountResponse = | 315 | LLSDVoiceAccountResponse voiceAccountResponse = |
313 | new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, | 316 | new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, |
314 | String.Format("http://{0}/{1}/", m_FreeSwitchServiceIP, | 317 | String.Format("http://{0}:{1}{2}/", m_openSimWellKnownHTTPAddress, m_freeSwitchServicePort, |
315 | m_freeSwitchAPIPrefix)); | 318 | m_freeSwitchAPIPrefix)); |
316 | 319 | ||
317 | string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse); | 320 | string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse); |
@@ -490,20 +493,22 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
490 | 493 | ||
491 | public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request) | 494 | public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request) |
492 | { | 495 | { |
493 | m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}",request.ToString()); | 496 | m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}", (string)request["body"]); |
494 | 497 | ||
495 | Hashtable response = new Hashtable(); | 498 | Hashtable response = new Hashtable(); |
496 | 499 | ||
497 | // all the params come as NVPs in the request body | 500 | // all the params come as NVPs in the request body |
498 | Hashtable requestBody = parseRequestBody((string) request["body"]); | 501 | Hashtable requestBody = parseRequestBody((string) request["body"]); |
499 | 502 | ||
500 | // is this a dialplan or directory request | 503 | // is this a dialplan or directory request |
501 | string section = (string) requestBody["section"]; | 504 | string section = (string) requestBody["section"]; |
502 | 505 | ||
503 | if (section=="directory") | 506 | if (section == "directory") |
504 | response = m_FreeSwitchDirectory.HandleDirectoryRequest(requestBody); | 507 | response = m_FreeSwitchDirectory.HandleDirectoryRequest(requestBody); |
505 | else if (section=="dialplan") | 508 | else if (section == "dialplan") |
506 | response = m_FreeSwitchDialplan.HandleDialplanRequest(requestBody); | 509 | response = m_FreeSwitchDialplan.HandleDialplanRequest(requestBody); |
510 | else | ||
511 | m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section); | ||
507 | 512 | ||
508 | // XXX: re-generate dialplan: | 513 | // XXX: re-generate dialplan: |
509 | // - conf == region UUID | 514 | // - conf == region UUID |