diff options
author | Mic Bowman | 2011-04-21 08:23:01 -0700 |
---|---|---|
committer | Mic Bowman | 2011-04-21 08:23:01 -0700 |
commit | 371576d1dd9fb49f9e366b0fac44ab73381b3baa (patch) | |
tree | af61ce33dc45340ea1f99066eee64950014994ee | |
parent | Added ability to remove unacked packet from UnackedPacketCollection without a... (diff) | |
parent | fix meshing failure on sculpt maps smaller than 64x64 (diff) | |
download | opensim-SC-371576d1dd9fb49f9e366b0fac44ab73381b3baa.zip opensim-SC-371576d1dd9fb49f9e366b0fac44ab73381b3baa.tar.gz opensim-SC-371576d1dd9fb49f9e366b0fac44ab73381b3baa.tar.bz2 opensim-SC-371576d1dd9fb49f9e366b0fac44ab73381b3baa.tar.xz |
Merge branch 'master' into queuetest
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs | 105 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/SculptMap.cs | 13 | ||||
-rw-r--r-- | OpenSim/Services/FreeswitchService/FreeswitchService.cs | 29 | ||||
-rw-r--r-- | OpenSim/Services/FreeswitchService/FreeswitchServiceBase.cs | 2 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 42 | ||||
-rw-r--r-- | bin/OpenSimDefaults.ini | 2 | ||||
-rw-r--r-- | bin/Robust.HG.ini.example | 42 | ||||
-rw-r--r-- | bin/Robust.ini.example | 38 | ||||
-rw-r--r-- | bin/config-include/StandaloneCommon.ini.example | 18 |
10 files changed, 204 insertions, 89 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index ccec9b7..ba89e21 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -430,7 +430,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
430 | string path = request.RawUrl; | 430 | string path = request.RawUrl; |
431 | string handlerKey = GetHandlerKey(request.HttpMethod, path); | 431 | string handlerKey = GetHandlerKey(request.HttpMethod, path); |
432 | 432 | ||
433 | //m_log.DebugFormat("[BASE HTTP SERVER]: Handling {0} request for {1}", request.HttpMethod, path); | 433 | // m_log.DebugFormat("[BASE HTTP SERVER]: Handling {0} request for {1}", request.HttpMethod, path); |
434 | 434 | ||
435 | if (TryGetStreamHandler(handlerKey, out requestHandler)) | 435 | if (TryGetStreamHandler(handlerKey, out requestHandler)) |
436 | { | 436 | { |
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs index 7909d8a..373ffeb 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs | |||
@@ -118,7 +118,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
118 | 118 | ||
119 | if (serviceDll == String.Empty) | 119 | if (serviceDll == String.Empty) |
120 | { | 120 | { |
121 | m_log.Error("[FreeSwitchVoice]: No LocalServiceModule named in section FreeSwitchVoice"); | 121 | m_log.Error("[FreeSwitchVoice]: No LocalServiceModule named in section FreeSwitchVoice. Not starting."); |
122 | return; | 122 | return; |
123 | } | 123 | } |
124 | 124 | ||
@@ -143,8 +143,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
143 | if (String.IsNullOrEmpty(m_freeSwitchRealm) || | 143 | if (String.IsNullOrEmpty(m_freeSwitchRealm) || |
144 | String.IsNullOrEmpty(m_freeSwitchAPIPrefix)) | 144 | String.IsNullOrEmpty(m_freeSwitchAPIPrefix)) |
145 | { | 145 | { |
146 | m_log.Error("[FreeSwitchVoice] plugin mis-configured"); | 146 | m_log.Error("[FreeSwitchVoice]: Freeswitch service mis-configured. Not starting."); |
147 | m_log.Info("[FreeSwitchVoice] plugin disabled: incomplete configuration"); | ||
148 | return; | 147 | return; |
149 | } | 148 | } |
150 | 149 | ||
@@ -164,24 +163,24 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
164 | // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler); | 163 | // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler); |
165 | // MainServer.Instance.AddStreamHandler(h); | 164 | // MainServer.Instance.AddStreamHandler(h); |
166 | 165 | ||
167 | |||
168 | |||
169 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_signin.php", m_freeSwitchAPIPrefix), | 166 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_signin.php", m_freeSwitchAPIPrefix), |
170 | FreeSwitchSLVoiceSigninHTTPHandler); | 167 | FreeSwitchSLVoiceSigninHTTPHandler); |
171 | 168 | ||
172 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix), | 169 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix), |
173 | FreeSwitchSLVoiceBuddyHTTPHandler); | 170 | FreeSwitchSLVoiceBuddyHTTPHandler); |
171 | |||
172 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_watcher.php", m_freeSwitchAPIPrefix), | ||
173 | FreeSwitchSLVoiceWatcherHTTPHandler); | ||
174 | 174 | ||
175 | m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm); | 175 | m_log.InfoFormat("[FreeSwitchVoice]: using FreeSwitch server {0}", m_freeSwitchRealm); |
176 | 176 | ||
177 | m_Enabled = true; | 177 | m_Enabled = true; |
178 | 178 | ||
179 | m_log.Info("[FreeSwitchVoice] plugin enabled"); | 179 | m_log.Info("[FreeSwitchVoice]: plugin enabled"); |
180 | } | 180 | } |
181 | catch (Exception e) | 181 | catch (Exception e) |
182 | { | 182 | { |
183 | m_log.ErrorFormat("[FreeSwitchVoice] plugin initialization failed: {0}", e.Message); | 183 | m_log.ErrorFormat("[FreeSwitchVoice]: plugin initialization failed: {0} {1}", e.Message, e.StackTrace); |
184 | m_log.DebugFormat("[FreeSwitchVoice] plugin initialization failed: {0}", e.ToString()); | ||
185 | return; | 184 | return; |
186 | } | 185 | } |
187 | 186 | ||
@@ -240,7 +239,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
240 | { | 239 | { |
241 | if (m_Enabled) | 240 | if (m_Enabled) |
242 | { | 241 | { |
243 | m_log.Info("[FreeSwitchVoice] registering IVoiceModule with the scene"); | 242 | m_log.Info("[FreeSwitchVoice]: registering IVoiceModule with the scene"); |
244 | 243 | ||
245 | // register the voice interface for this module, so the script engine can call us | 244 | // register the voice interface for this module, so the script engine can call us |
246 | scene.RegisterModuleInterface<IVoiceModule>(this); | 245 | scene.RegisterModuleInterface<IVoiceModule>(this); |
@@ -302,7 +301,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
302 | // </summary> | 301 | // </summary> |
303 | public void OnRegisterCaps(Scene scene, UUID agentID, Caps caps) | 302 | public void OnRegisterCaps(Scene scene, UUID agentID, Caps caps) |
304 | { | 303 | { |
305 | m_log.DebugFormat("[FreeSwitchVoice] OnRegisterCaps: agentID {0} caps {1}", agentID, caps); | 304 | m_log.DebugFormat( |
305 | "[FreeSwitchVoice]: OnRegisterCaps() called with agentID {0} caps {1} in scene {2}", | ||
306 | agentID, caps, scene.RegionInfo.RegionName); | ||
306 | 307 | ||
307 | string capsBase = "/CAPS/" + caps.CapsObjectPath; | 308 | string capsBase = "/CAPS/" + caps.CapsObjectPath; |
308 | caps.RegisterHandler("ProvisionVoiceAccountRequest", | 309 | caps.RegisterHandler("ProvisionVoiceAccountRequest", |
@@ -344,6 +345,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
344 | public string ProvisionVoiceAccountRequest(Scene scene, string request, string path, string param, | 345 | public string ProvisionVoiceAccountRequest(Scene scene, string request, string path, string param, |
345 | UUID agentID, Caps caps) | 346 | UUID agentID, Caps caps) |
346 | { | 347 | { |
348 | m_log.DebugFormat( | ||
349 | "[FreeSwitchVoice][PROVISIONVOICE]: ProvisionVoiceAccountRequest() request: {0}, path: {1}, param: {2}", request, path, param); | ||
350 | |||
347 | ScenePresence avatar = scene.GetScenePresence(agentID); | 351 | ScenePresence avatar = scene.GetScenePresence(agentID); |
348 | if (avatar == null) | 352 | if (avatar == null) |
349 | { | 353 | { |
@@ -357,9 +361,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
357 | 361 | ||
358 | try | 362 | try |
359 | { | 363 | { |
360 | //m_log.DebugFormat("[FreeSwitchVoice][PROVISIONVOICE]: request: {0}, path: {1}, param: {2}", | ||
361 | // request, path, param); | ||
362 | |||
363 | //XmlElement resp; | 364 | //XmlElement resp; |
364 | string agentname = "x" + Convert.ToBase64String(agentID.GetBytes()); | 365 | string agentname = "x" + Convert.ToBase64String(agentID.GetBytes()); |
365 | string password = "1234";//temp hack//new UUID(Guid.NewGuid()).ToString().Replace('-','Z').Substring(0,16); | 366 | string password = "1234";//temp hack//new UUID(Guid.NewGuid()).ToString().Replace('-','Z').Substring(0,16); |
@@ -416,6 +417,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
416 | public string ParcelVoiceInfoRequest(Scene scene, string request, string path, string param, | 417 | public string ParcelVoiceInfoRequest(Scene scene, string request, string path, string param, |
417 | UUID agentID, Caps caps) | 418 | UUID agentID, Caps caps) |
418 | { | 419 | { |
420 | // m_log.DebugFormat( | ||
421 | // "[FreeSwitchVoice][PARCELVOICE]: ParcelVoiceInfoRequest() on {0} for {1}", | ||
422 | // scene.RegionInfo.RegionName, agentID); | ||
423 | |||
419 | ScenePresence avatar = scene.GetScenePresence(agentID); | 424 | ScenePresence avatar = scene.GetScenePresence(agentID); |
420 | string avatarName = avatar.Name; | 425 | string avatarName = avatar.Name; |
421 | 426 | ||
@@ -502,6 +507,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
502 | 507 | ||
503 | m_log.DebugFormat("[FreeSwitchVoice][CHATSESSION]: avatar \"{0}\": request: {1}, path: {2}, param: {3}", | 508 | m_log.DebugFormat("[FreeSwitchVoice][CHATSESSION]: avatar \"{0}\": request: {1}, path: {2}, param: {3}", |
504 | avatarName, request, path, param); | 509 | avatarName, request, path, param); |
510 | |||
505 | return "<llsd>true</llsd>"; | 511 | return "<llsd>true</llsd>"; |
506 | } | 512 | } |
507 | 513 | ||
@@ -555,10 +561,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
555 | return response; | 561 | return response; |
556 | } | 562 | } |
557 | 563 | ||
558 | |||
559 | public Hashtable FreeSwitchSLVoiceGetPreloginHTTPHandler(Hashtable request) | 564 | public Hashtable FreeSwitchSLVoiceGetPreloginHTTPHandler(Hashtable request) |
560 | { | 565 | { |
561 | m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceGetPreloginHTTPHandler called"); | 566 | m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceGetPreloginHTTPHandler called"); |
562 | 567 | ||
563 | Hashtable response = new Hashtable(); | 568 | Hashtable response = new Hashtable(); |
564 | response["content_type"] = "text/xml"; | 569 | response["content_type"] = "text/xml"; |
@@ -592,6 +597,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
592 | 597 | ||
593 | public Hashtable FreeSwitchSLVoiceBuddyHTTPHandler(Hashtable request) | 598 | public Hashtable FreeSwitchSLVoiceBuddyHTTPHandler(Hashtable request) |
594 | { | 599 | { |
600 | m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceBuddyHTTPHandler called"); | ||
601 | |||
595 | Hashtable response = new Hashtable(); | 602 | Hashtable response = new Hashtable(); |
596 | response["int_response_code"] = 200; | 603 | response["int_response_code"] = 200; |
597 | response["str_response_string"] = string.Empty; | 604 | response["str_response_string"] = string.Empty; |
@@ -650,21 +657,64 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
650 | <bdy_status>A</bdy_status> | 657 | <bdy_status>A</bdy_status> |
651 | <modified_ts>{3}</modified_ts> | 658 | <modified_ts>{3}</modified_ts> |
652 | <b2g_group_id></b2g_group_id> | 659 | <b2g_group_id></b2g_group_id> |
653 | </level3>", ids[i],i,m_freeSwitchRealm,dt)); | 660 | </level3>", ids[i], i ,m_freeSwitchRealm, dt)); |
654 | } | 661 | } |
655 | 662 | ||
656 | resp.Append("</buddies><groups></groups></body></level0></response>"); | 663 | resp.Append("</buddies><groups></groups></body></level0></response>"); |
657 | 664 | ||
658 | response["str_response_string"] = resp.ToString(); | 665 | response["str_response_string"] = resp.ToString(); |
659 | // Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); | 666 | // Regex normalizeEndLines = new Regex(@"(\r\n|\n)", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); |
660 | 667 | // | |
661 | //m_log.DebugFormat("[FREESWITCH]: {0}", normalizeEndLines.Replace((string)response["str_response_string"],"")); | 668 | // m_log.DebugFormat( |
669 | // "[FREESWITCH]: FreeSwitchSLVoiceBuddyHTTPHandler() response {0}", | ||
670 | // normalizeEndLines.Replace((string)response["str_response_string"],"")); | ||
671 | |||
662 | return response; | 672 | return response; |
663 | } | 673 | } |
664 | 674 | ||
675 | public Hashtable FreeSwitchSLVoiceWatcherHTTPHandler(Hashtable request) | ||
676 | { | ||
677 | m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceWatcherHTTPHandler called"); | ||
678 | |||
679 | Hashtable response = new Hashtable(); | ||
680 | response["int_response_code"] = 200; | ||
681 | response["content-type"] = "text/xml"; | ||
682 | |||
683 | Hashtable requestBody = ParseRequestBody((string)request["body"]); | ||
684 | |||
685 | string auth_token = (string)requestBody["auth_token"]; | ||
686 | //string[] auth_tokenvals = auth_token.Split(':'); | ||
687 | //string username = auth_tokenvals[0]; | ||
688 | |||
689 | StringBuilder resp = new StringBuilder(); | ||
690 | resp.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?><response xmlns=\"http://www.vivox.com\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"/xsd/buddy_list.xsd\">"); | ||
691 | |||
692 | // FIXME: This is enough of a response to stop viewer 2 complaining about a login failure and get voice to work. If we don't | ||
693 | // give an OK response, then viewer 2 engages in an continuous viv_signin.php, viv_buddy.php, viv_watcher.php loop | ||
694 | // Viewer 1 appeared happy to ignore the lack of reply and still works with this reply. | ||
695 | // | ||
696 | // However, really we need to fill in whatever watcher data should be here (whatever that is). | ||
697 | resp.Append(string.Format(@"<level0> | ||
698 | <status>OK</status> | ||
699 | <cookie_name>lib_session</cookie_name> | ||
700 | <cookie>{0}</cookie> | ||
701 | <auth_token>{0}</auth_token> | ||
702 | <body/></level0></response>", auth_token)); | ||
703 | |||
704 | response["str_response_string"] = resp.ToString(); | ||
705 | |||
706 | // Regex normalizeEndLines = new Regex(@"(\r\n|\n)", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); | ||
707 | // | ||
708 | // m_log.DebugFormat( | ||
709 | // "[FREESWITCH]: FreeSwitchSLVoiceWatcherHTTPHandler() response {0}", | ||
710 | // normalizeEndLines.Replace((string)response["str_response_string"],"")); | ||
711 | |||
712 | return response; | ||
713 | } | ||
714 | |||
665 | public Hashtable FreeSwitchSLVoiceSigninHTTPHandler(Hashtable request) | 715 | public Hashtable FreeSwitchSLVoiceSigninHTTPHandler(Hashtable request) |
666 | { | 716 | { |
667 | m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceSigninHTTPHandler called"); | 717 | m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceSigninHTTPHandler called"); |
668 | // string requestbody = (string)request["body"]; | 718 | // string requestbody = (string)request["body"]; |
669 | // string uri = (string)request["uri"]; | 719 | // string uri = (string)request["uri"]; |
670 | // string contenttype = (string)request["content-type"]; | 720 | // string contenttype = (string)request["content-type"]; |
@@ -709,7 +759,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
709 | </level0> | 759 | </level0> |
710 | </response>", userid, pos, avatarName); | 760 | </response>", userid, pos, avatarName); |
711 | 761 | ||
712 | response["int_response_code"] = 200; | 762 | response["int_response_code"] = 200; |
763 | |||
764 | // m_log.DebugFormat("[FreeSwitchVoice]: Sending FreeSwitchSLVoiceSigninHTTPHandler response"); | ||
765 | |||
713 | return response; | 766 | return response; |
714 | } | 767 | } |
715 | 768 | ||
@@ -795,16 +848,18 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
795 | response["keepalive"] = false; | 848 | response["keepalive"] = false; |
796 | response["int_response_code"] = 500; | 849 | response["int_response_code"] = 500; |
797 | 850 | ||
798 | Hashtable requestBody = ParseRequestBody((string) request["body"]); | 851 | Hashtable requestBody = ParseRequestBody((string)request["body"]); |
799 | 852 | ||
800 | string section = (string) requestBody["section"]; | 853 | string section = (string) requestBody["section"]; |
854 | |||
855 | m_log.DebugFormat("[FreeSwitchVoice]: Received request for config section {0}", section); | ||
801 | 856 | ||
802 | if (section == "directory") | 857 | if (section == "directory") |
803 | response = m_FreeswitchService.HandleDirectoryRequest(requestBody); | 858 | response = m_FreeswitchService.HandleDirectoryRequest(requestBody); |
804 | else if (section == "dialplan") | 859 | else if (section == "dialplan") |
805 | response = m_FreeswitchService.HandleDialplanRequest(requestBody); | 860 | response = m_FreeswitchService.HandleDialplanRequest(requestBody); |
806 | else | 861 | else |
807 | m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section); | 862 | m_log.WarnFormat("[FreeSwitchVoice]: Unknown section {0} was requested.", section); |
808 | 863 | ||
809 | return response; | 864 | return response; |
810 | } | 865 | } |
@@ -821,4 +876,4 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
821 | 876 | ||
822 | #endregion | 877 | #endregion |
823 | } | 878 | } |
824 | } | 879 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Meshing/SculptMap.cs b/OpenSim/Region/Physics/Meshing/SculptMap.cs index d2d71de..740424e 100644 --- a/OpenSim/Region/Physics/Meshing/SculptMap.cs +++ b/OpenSim/Region/Physics/Meshing/SculptMap.cs | |||
@@ -62,6 +62,8 @@ namespace PrimMesher | |||
62 | 62 | ||
63 | bool needsScaling = false; | 63 | bool needsScaling = false; |
64 | 64 | ||
65 | bool smallMap = bmW * bmH <= lod * lod; | ||
66 | |||
65 | width = bmW; | 67 | width = bmW; |
66 | height = bmH; | 68 | height = bmH; |
67 | while (width * height > numLodPixels) | 69 | while (width * height > numLodPixels) |
@@ -104,9 +106,14 @@ namespace PrimMesher | |||
104 | { | 106 | { |
105 | for (int x = 0; x <= width; x++) | 107 | for (int x = 0; x <= width; x++) |
106 | { | 108 | { |
107 | int bmY = y < height ? y * 2 : y * 2 - 1; | 109 | Color c; |
108 | int bmX = x < width ? x * 2 : x * 2 - 1; | 110 | |
109 | Color c = bm.GetPixel(bmX, bmY); | 111 | if (smallMap) |
112 | c = bm.GetPixel(x < width ? x : x - 1, | ||
113 | y < height ? y : y - 1); | ||
114 | else | ||
115 | c = bm.GetPixel(x < width ? x * 2 : x * 2 - 1, | ||
116 | y < height ? y * 2 : y * 2 - 1); | ||
110 | 117 | ||
111 | redBytes[byteNdx] = c.R; | 118 | redBytes[byteNdx] = c.R; |
112 | greenBytes[byteNdx] = c.G; | 119 | greenBytes[byteNdx] = c.G; |
diff --git a/OpenSim/Services/FreeswitchService/FreeswitchService.cs b/OpenSim/Services/FreeswitchService/FreeswitchService.cs index fe6f5cd..1ec89da 100644 --- a/OpenSim/Services/FreeswitchService/FreeswitchService.cs +++ b/OpenSim/Services/FreeswitchService/FreeswitchService.cs | |||
@@ -50,13 +50,13 @@ namespace OpenSim.Services.FreeswitchService | |||
50 | 50 | ||
51 | public Hashtable HandleDialplanRequest(Hashtable request) | 51 | public Hashtable HandleDialplanRequest(Hashtable request) |
52 | { | 52 | { |
53 | m_log.DebugFormat("[FreeSwitchVoice] HandleDialplanRequest called with {0}",request.ToString()); | 53 | m_log.DebugFormat("[FreeSwitchVoice]: HandleDialplanRequest called with {0}",request.ToString()); |
54 | 54 | ||
55 | Hashtable response = new Hashtable(); | 55 | Hashtable response = new Hashtable(); |
56 | 56 | ||
57 | foreach (DictionaryEntry item in request) | 57 | foreach (DictionaryEntry item in request) |
58 | { | 58 | { |
59 | m_log.InfoFormat("[FreeSwitchDirectory] requestBody item {0} {1}",item.Key, item.Value); | 59 | m_log.InfoFormat("[FreeSwitchDirectory]: requestBody item {0} {1}",item.Key, item.Value); |
60 | } | 60 | } |
61 | 61 | ||
62 | string requestcontext = (string) request["Hunt-Context"]; | 62 | string requestcontext = (string) request["Hunt-Context"]; |
@@ -66,7 +66,7 @@ namespace OpenSim.Services.FreeswitchService | |||
66 | 66 | ||
67 | if (m_freeSwitchContext != String.Empty && m_freeSwitchContext != requestcontext) | 67 | if (m_freeSwitchContext != String.Empty && m_freeSwitchContext != requestcontext) |
68 | { | 68 | { |
69 | m_log.Debug("[FreeSwitchDirectory] returning empty as it's for another context"); | 69 | m_log.Debug("[FreeSwitchDirectory]: returning empty as it's for another context"); |
70 | response["str_response_string"] = ""; | 70 | response["str_response_string"] = ""; |
71 | } | 71 | } |
72 | else | 72 | else |
@@ -116,13 +116,16 @@ namespace OpenSim.Services.FreeswitchService | |||
116 | { | 116 | { |
117 | Hashtable response = new Hashtable(); | 117 | Hashtable response = new Hashtable(); |
118 | string domain = (string) request["domain"]; | 118 | string domain = (string) request["domain"]; |
119 | if (domain != m_freeSwitchRealm) { | 119 | if (domain != m_freeSwitchRealm) |
120 | { | ||
120 | response["content_type"] = "text/xml"; | 121 | response["content_type"] = "text/xml"; |
121 | response["keepalive"] = false; | 122 | response["keepalive"] = false; |
122 | response["int_response_code"] = 200; | 123 | response["int_response_code"] = 200; |
123 | response["str_response_string"] = ""; | 124 | response["str_response_string"] = ""; |
124 | } else { | 125 | } |
125 | m_log.DebugFormat("[FreeSwitchDirectory] HandleDirectoryRequest called with {0}",request.ToString()); | 126 | else |
127 | { | ||
128 | // m_log.DebugFormat("[FreeSwitchDirectory]: HandleDirectoryRequest called with {0}",request.ToString()); | ||
126 | 129 | ||
127 | // information in the request we might be interested in | 130 | // information in the request we might be interested in |
128 | 131 | ||
@@ -145,7 +148,7 @@ namespace OpenSim.Services.FreeswitchService | |||
145 | 148 | ||
146 | foreach (DictionaryEntry item in request) | 149 | foreach (DictionaryEntry item in request) |
147 | { | 150 | { |
148 | m_log.InfoFormat("[FreeSwitchDirectory] requestBody item {0} {1}", item.Key, item.Value); | 151 | m_log.DebugFormat("[FreeSwitchDirectory]: requestBody item {0} {1}", item.Key, item.Value); |
149 | } | 152 | } |
150 | 153 | ||
151 | string eventCallingFunction = (string) request["Event-Calling-Function"]; | 154 | string eventCallingFunction = (string) request["Event-Calling-Function"]; |
@@ -173,7 +176,7 @@ namespace OpenSim.Services.FreeswitchService | |||
173 | } | 176 | } |
174 | else | 177 | else |
175 | { | 178 | { |
176 | m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown sip_auth_method {0}",sipAuthMethod); | 179 | m_log.ErrorFormat("[FreeSwitchVoice]: HandleDirectoryRequest unknown sip_auth_method {0}",sipAuthMethod); |
177 | response["int_response_code"] = 404; | 180 | response["int_response_code"] = 404; |
178 | response["content_type"] = "text/xml"; | 181 | response["content_type"] = "text/xml"; |
179 | response["str_response_string"] = ""; | 182 | response["str_response_string"] = ""; |
@@ -205,7 +208,7 @@ namespace OpenSim.Services.FreeswitchService | |||
205 | } | 208 | } |
206 | else | 209 | else |
207 | { | 210 | { |
208 | m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction); | 211 | m_log.ErrorFormat("[FreeSwitchVoice]: HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction); |
209 | response["int_response_code"] = 404; | 212 | response["int_response_code"] = 404; |
210 | response["keepalive"] = false; | 213 | response["keepalive"] = false; |
211 | response["content_type"] = "text/xml"; | 214 | response["content_type"] = "text/xml"; |
@@ -217,7 +220,7 @@ namespace OpenSim.Services.FreeswitchService | |||
217 | 220 | ||
218 | private Hashtable HandleRegister(string Context, string Realm, Hashtable request) | 221 | private Hashtable HandleRegister(string Context, string Realm, Hashtable request) |
219 | { | 222 | { |
220 | m_log.Info("[FreeSwitchDirectory] HandleRegister called"); | 223 | m_log.Info("[FreeSwitchDirectory]: HandleRegister called"); |
221 | 224 | ||
222 | // TODO the password we return needs to match that sent in the request, this is hard coded for now | 225 | // TODO the password we return needs to match that sent in the request, this is hard coded for now |
223 | string password = "1234"; | 226 | string password = "1234"; |
@@ -254,7 +257,7 @@ namespace OpenSim.Services.FreeswitchService | |||
254 | 257 | ||
255 | private Hashtable HandleInvite(string Context, string Realm, Hashtable request) | 258 | private Hashtable HandleInvite(string Context, string Realm, Hashtable request) |
256 | { | 259 | { |
257 | m_log.Info("[FreeSwitchDirectory] HandleInvite called"); | 260 | m_log.Info("[FreeSwitchDirectory]: HandleInvite called"); |
258 | 261 | ||
259 | // TODO the password we return needs to match that sent in the request, this is hard coded for now | 262 | // TODO the password we return needs to match that sent in the request, this is hard coded for now |
260 | string password = "1234"; | 263 | string password = "1234"; |
@@ -301,7 +304,7 @@ namespace OpenSim.Services.FreeswitchService | |||
301 | 304 | ||
302 | private Hashtable HandleLocateUser(String Realm, Hashtable request) | 305 | private Hashtable HandleLocateUser(String Realm, Hashtable request) |
303 | { | 306 | { |
304 | m_log.Info("[FreeSwitchDirectory] HandleLocateUser called"); | 307 | m_log.Info("[FreeSwitchDirectory]: HandleLocateUser called"); |
305 | 308 | ||
306 | // TODO the password we return needs to match that sent in the request, this is hard coded for now | 309 | // TODO the password we return needs to match that sent in the request, this is hard coded for now |
307 | string domain = (string) request["domain"]; | 310 | string domain = (string) request["domain"]; |
@@ -335,7 +338,7 @@ namespace OpenSim.Services.FreeswitchService | |||
335 | 338 | ||
336 | private Hashtable HandleConfigSofia(string Context, string Realm, Hashtable request) | 339 | private Hashtable HandleConfigSofia(string Context, string Realm, Hashtable request) |
337 | { | 340 | { |
338 | m_log.Info("[FreeSwitchDirectory] HandleConfigSofia called"); | 341 | m_log.Info("[FreeSwitchDirectory]: HandleConfigSofia called."); |
339 | 342 | ||
340 | // TODO the password we return needs to match that sent in the request, this is hard coded for now | 343 | // TODO the password we return needs to match that sent in the request, this is hard coded for now |
341 | string domain = (string) request["domain"]; | 344 | string domain = (string) request["domain"]; |
diff --git a/OpenSim/Services/FreeswitchService/FreeswitchServiceBase.cs b/OpenSim/Services/FreeswitchService/FreeswitchServiceBase.cs index ebbb1b0..25c18b6 100644 --- a/OpenSim/Services/FreeswitchService/FreeswitchServiceBase.cs +++ b/OpenSim/Services/FreeswitchService/FreeswitchServiceBase.cs | |||
@@ -64,7 +64,7 @@ namespace OpenSim.Services.FreeswitchService | |||
64 | m_freeSwitchDefaultWellKnownIP = freeswitchConfig.GetString("ServerAddress", String.Empty); | 64 | m_freeSwitchDefaultWellKnownIP = freeswitchConfig.GetString("ServerAddress", String.Empty); |
65 | if (m_freeSwitchDefaultWellKnownIP == String.Empty) | 65 | if (m_freeSwitchDefaultWellKnownIP == String.Empty) |
66 | { | 66 | { |
67 | m_log.Error("[FREESWITCH]: No FreeswitchServerAddress given, can't continue"); | 67 | m_log.Error("[FREESWITCH]: No ServerAddress given, cannot start service."); |
68 | return; | 68 | return; |
69 | } | 69 | } |
70 | 70 | ||
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index c05c3de..fbaa590 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -621,10 +621,11 @@ | |||
621 | 621 | ||
622 | ;; You need to load a local service for a standalone, and a remote service | 622 | ;; You need to load a local service for a standalone, and a remote service |
623 | ;; for a grid region. Use one of the lines below, as appropriate | 623 | ;; for a grid region. Use one of the lines below, as appropriate |
624 | ;; If you're using Freeswitch on a standalone then you will also need to configure the [FreeswitchService] section | ||
624 | ; LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService | 625 | ; LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService |
625 | ; LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector | 626 | ; LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector |
626 | 627 | ||
627 | ;; If using a remote module, specify the server URL | 628 | ;; If using a remote connector, specify the server URL |
628 | ; FreeswitchServiceURL = http://my.grid.server:8003/fsapi | 629 | ; FreeswitchServiceURL = http://my.grid.server:8003/fsapi |
629 | 630 | ||
630 | 631 | ||
@@ -632,20 +633,37 @@ | |||
632 | ;; !!!!!!!!!!!!!!!!!!!!!!!!!!! | 633 | ;; !!!!!!!!!!!!!!!!!!!!!!!!!!! |
633 | ;; !!!!!!STANDALONE ONLY!!!!!! | 634 | ;; !!!!!!STANDALONE ONLY!!!!!! |
634 | ;; !!!!!!!!!!!!!!!!!!!!!!!!!!! | 635 | ;; !!!!!!!!!!!!!!!!!!!!!!!!!!! |
635 | ;; IP of your FS server | 636 | ;; The IP address of your FreeSWITCH server. The common case is for this to be the same as the server running the OpenSim standalone |
636 | ;ServerAddress = 85.25.142.92 | 637 | ;; This has to be set for the FreeSWITCH service to work |
638 | ;ServerAddress = 127.0.0.1 | ||
637 | 639 | ||
638 | ;; All other options are - well - optional | 640 | ;; The following configuration parameters are optional |
639 | ; Realm = "127.0.0.1" | 641 | |
640 | ; SIPProxy = "127.0.0.1:5060" | 642 | ;; By default, this is the same as the ServerAddress |
641 | ; EchoServer = "127.0.0.1" | 643 | ; Realm = 127.0.0.1 |
642 | ; EchoPort = 50505 | 644 | |
643 | ; AttemptSTUN = "false" | 645 | ;; By default, this is the same as the ServerAddress on port 5060 |
646 | ; SIPProxy = 127.0.0.1:5060 | ||
647 | |||
648 | ;; Default is 5000ms | ||
644 | ; DefaultTimeout = 5000 | 649 | ; DefaultTimeout = 5000 |
645 | ; Context = "default" | ||
646 | ; UserName = "freeswitch" | ||
647 | ; Password = "password" | ||
648 | 650 | ||
651 | ;; The dial plan context. Default is "default" | ||
652 | ; Context = default | ||
653 | |||
654 | ;; Currently unused | ||
655 | ; UserName = freeswitch | ||
656 | |||
657 | ;; Currently unused | ||
658 | ; Password = password | ||
659 | |||
660 | ;; The following parameters are for STUN = Simple Traversal of UDP through NATs | ||
661 | ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal | ||
662 | ;; stun.freeswitch.org is not guaranteed to be running so use it in | ||
663 | ;; production at your own risk | ||
664 | ; EchoServer = 127.0.0.1 | ||
665 | ; EchoPort = 50505 | ||
666 | ; AttemptSTUN = false | ||
649 | 667 | ||
650 | [Groups] | 668 | [Groups] |
651 | ;# {Enabled} {} {Enable groups?} {true false} false | 669 | ;# {Enabled} {} {Enable groups?} {true false} false |
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index e72e851..30ebf84 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini | |||
@@ -459,7 +459,7 @@ | |||
459 | [Mesh] | 459 | [Mesh] |
460 | ; enable / disable Collada mesh support | 460 | ; enable / disable Collada mesh support |
461 | ; default is true | 461 | ; default is true |
462 | ; ColladaMesh = true | 462 | ColladaMesh = true |
463 | 463 | ||
464 | 464 | ||
465 | [ODEPhysicsSettings] | 465 | [ODEPhysicsSettings] |
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example index f12a143..ced2857 100644 --- a/bin/Robust.HG.ini.example +++ b/bin/Robust.HG.ini.example | |||
@@ -85,19 +85,41 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003 | |||
85 | ; * This is the configuration for the freeswitch server in grid mode | 85 | ; * This is the configuration for the freeswitch server in grid mode |
86 | [FreeswitchService] | 86 | [FreeswitchService] |
87 | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" | 87 | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" |
88 | ;; IP of your FS server | 88 | |
89 | ;; The IP address of your FreeSWITCH server. | ||
89 | ; ServerAddress = 127.0.0.1 | 90 | ; ServerAddress = 127.0.0.1 |
90 | 91 | ||
91 | ;; All other options are - well - optional | 92 | ;; The following configuration parameters are optional |
92 | ; Realm = "127.0.0.1" | 93 | |
93 | ; SIPProxy = "127.0.0.1:5060" | 94 | ;; By default, this is the same as the ServerAddress |
94 | ; EchoServer = "127.0.0.1" | 95 | ; Realm = 127.0.0.1 |
95 | ; EchoPort = 50505 | 96 | |
96 | ; AttemptSTUN = "false" | 97 | ;; By default, this is the same as the ServerAddress on port 5060 |
98 | ; SIPProxy = 127.0.0.1:5060 | ||
99 | |||
100 | ;; Default is 5000ms | ||
97 | ; DefaultTimeout = 5000 | 101 | ; DefaultTimeout = 5000 |
98 | ; Context = "default" | 102 | |
99 | ; UserName = "freeswitch" | 103 | ;; The dial plan context. Default is "default" |
100 | ; Password = "password" | 104 | ; Context = default |
105 | |||
106 | ;; Currently unused | ||
107 | ; UserName = freeswitch | ||
108 | |||
109 | ;; Currently unused | ||
110 | ; Password = password | ||
111 | |||
112 | ;; The following parameters are for STUN = Simple Traversal of UDP through NATs | ||
113 | ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal | ||
114 | ;; stun.freeswitch.org is not guaranteed to be running so use it in | ||
115 | ;; production at your own risk | ||
116 | ; EchoServer = 127.0.0.1 | ||
117 | ; EchoPort = 50505 | ||
118 | ; AttemptSTUN = false | ||
119 | |||
120 | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" | ||
121 | ;; IP of your FS server | ||
122 | ; ServerAddress = 127.0.0.1 | ||
101 | 123 | ||
102 | ; * This is the new style authentication service. Currently, only MySQL | 124 | ; * This is the new style authentication service. Currently, only MySQL |
103 | ; * is implemented. | 125 | ; * is implemented. |
diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example index 7c13076..4d16236 100644 --- a/bin/Robust.ini.example +++ b/bin/Robust.ini.example | |||
@@ -69,19 +69,37 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003 | |||
69 | ; * This is the configuration for the freeswitch server in grid mode | 69 | ; * This is the configuration for the freeswitch server in grid mode |
70 | [FreeswitchService] | 70 | [FreeswitchService] |
71 | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" | 71 | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" |
72 | ;; IP of your FS server | 72 | |
73 | ;; The IP address of your FreeSWITCH server. | ||
73 | ; ServerAddress = 127.0.0.1 | 74 | ; ServerAddress = 127.0.0.1 |
74 | 75 | ||
75 | ;; All other options are - well - optional | 76 | ;; The following configuration parameters are optional |
76 | ; Realm = "127.0.0.1" | 77 | |
77 | ; SIPProxy = "127.0.0.1:5060" | 78 | ;; By default, this is the same as the ServerAddress |
78 | ; EchoServer = "127.0.0.1" | 79 | ; Realm = 127.0.0.1 |
79 | ; EchoPort = 50505 | 80 | |
80 | ; AttemptSTUN = "false" | 81 | ;; By default, this is the same as the ServerAddress on port 5060 |
82 | ; SIPProxy = 127.0.0.1:5060 | ||
83 | |||
84 | ;; Default is 5000ms | ||
81 | ; DefaultTimeout = 5000 | 85 | ; DefaultTimeout = 5000 |
82 | ; Context = "default" | 86 | |
83 | ; UserName = "freeswitch" | 87 | ;; The dial plan context. Default is "default" |
84 | ; Password = "password" | 88 | ; Context = default |
89 | |||
90 | ;; Currently unused | ||
91 | ; UserName = freeswitch | ||
92 | |||
93 | ;; Currently unused | ||
94 | ; Password = password | ||
95 | |||
96 | ;; The following parameters are for STUN = Simple Traversal of UDP through NATs | ||
97 | ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal | ||
98 | ;; stun.freeswitch.org is not guaranteed to be running so use it in | ||
99 | ;; production at your own risk | ||
100 | ; EchoServer = 127.0.0.1 | ||
101 | ; EchoPort = 50505 | ||
102 | ; AttemptSTUN = false | ||
85 | 103 | ||
86 | ; * This is the new style authentication service. Currently, only MySQL | 104 | ; * This is the new style authentication service. Currently, only MySQL |
87 | ; * is implemented. | 105 | ; * is implemented. |
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example index d6f15bb..dcebd63 100644 --- a/bin/config-include/StandaloneCommon.ini.example +++ b/bin/config-include/StandaloneCommon.ini.example | |||
@@ -28,10 +28,10 @@ | |||
28 | 28 | ||
29 | [HGInventoryAccessModule] | 29 | [HGInventoryAccessModule] |
30 | ProfileServerURI = "http://127.0.0.1:9000/profiles" | 30 | ProfileServerURI = "http://127.0.0.1:9000/profiles" |
31 | ;; If you want to protect your assets from being copied by foreign visitors | ||
32 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
33 | ; OutboundPermission = False | ||
34 | 31 | ||
32 | ;; If you want to protect your assets from being copied by foreign visitors | ||
33 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
34 | ; OutboundPermission = False | ||
35 | 35 | ||
36 | [Modules] | 36 | [Modules] |
37 | ;; Choose 0 or 1 cache modules, and the corresponding config file, if it exists. | 37 | ;; Choose 0 or 1 cache modules, and the corresponding config file, if it exists. |
@@ -45,16 +45,9 @@ | |||
45 | AssetCaching = "CenomeMemoryAssetCache" | 45 | AssetCaching = "CenomeMemoryAssetCache" |
46 | Include-CenomeCache = "config-include/CenomeCache.ini" | 46 | Include-CenomeCache = "config-include/CenomeCache.ini" |
47 | 47 | ||
48 | ;; Enable this to use Freeswitch on a standalone | ||
49 | ;FreeswitchServiceInConnector = True | ||
50 | |||
51 | ;; Authorization is not on by default, as it depends on external php | 48 | ;; Authorization is not on by default, as it depends on external php |
52 | ;AuthorizationServices = "LocalAuthorizationServicesConnector" | 49 | ;AuthorizationServices = "LocalAuthorizationServicesConnector" |
53 | 50 | ||
54 | [FreeswitchService] | ||
55 | ;; Configuration for the freeswitch service goes here | ||
56 | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" | ||
57 | |||
58 | [GridService] | 51 | [GridService] |
59 | ;; For in-memory region storage (default) | 52 | ;; For in-memory region storage (default) |
60 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | 53 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" |
@@ -74,9 +67,8 @@ | |||
74 | Region_Welcome_Area = "DefaultRegion, FallbackRegion" | 67 | Region_Welcome_Area = "DefaultRegion, FallbackRegion" |
75 | 68 | ||
76 | ; === HG ONLY === | 69 | ; === HG ONLY === |
77 | ;; change this to the address of your simulator | 70 | ;; change this to the address of your simulator |
78 | Gatekeeper="http://127.0.0.1:9000" | 71 | Gatekeeper="http://127.0.0.1:9000" |
79 | |||
80 | 72 | ||
81 | [LibraryModule] | 73 | [LibraryModule] |
82 | ; Set this if you want to change the name of the OpenSim Library | 74 | ; Set this if you want to change the name of the OpenSim Library |