aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMic Bowman2011-04-21 08:23:01 -0700
committerMic Bowman2011-04-21 08:23:01 -0700
commit371576d1dd9fb49f9e366b0fac44ab73381b3baa (patch)
treeaf61ce33dc45340ea1f99066eee64950014994ee
parentAdded ability to remove unacked packet from UnackedPacketCollection without a... (diff)
parentfix meshing failure on sculpt maps smaller than 64x64 (diff)
downloadopensim-SC_OLD-371576d1dd9fb49f9e366b0fac44ab73381b3baa.zip
opensim-SC_OLD-371576d1dd9fb49f9e366b0fac44ab73381b3baa.tar.gz
opensim-SC_OLD-371576d1dd9fb49f9e366b0fac44ab73381b3baa.tar.bz2
opensim-SC_OLD-371576d1dd9fb49f9e366b0fac44ab73381b3baa.tar.xz
Merge branch 'master' into queuetest
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs2
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs105
-rw-r--r--OpenSim/Region/Physics/Meshing/SculptMap.cs13
-rw-r--r--OpenSim/Services/FreeswitchService/FreeswitchService.cs29
-rw-r--r--OpenSim/Services/FreeswitchService/FreeswitchServiceBase.cs2
-rw-r--r--bin/OpenSim.ini.example42
-rw-r--r--bin/OpenSimDefaults.ini2
-rw-r--r--bin/Robust.HG.ini.example42
-rw-r--r--bin/Robust.ini.example38
-rw-r--r--bin/config-include/StandaloneCommon.ini.example18
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