Merge branch 'master' into queuetest
						commit
						371576d1dd
					
				| 
						 | 
				
			
			@ -430,7 +430,7 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
			
		|||
                string path = request.RawUrl;
 | 
			
		||||
                string handlerKey = GetHandlerKey(request.HttpMethod, path);
 | 
			
		||||
 | 
			
		||||
                //m_log.DebugFormat("[BASE HTTP SERVER]: Handling {0} request for {1}", request.HttpMethod, path);
 | 
			
		||||
//                m_log.DebugFormat("[BASE HTTP SERVER]: Handling {0} request for {1}", request.HttpMethod, path);
 | 
			
		||||
 | 
			
		||||
                if (TryGetStreamHandler(handlerKey, out requestHandler))
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -118,7 +118,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
 | 
			
		||||
                if (serviceDll == String.Empty)
 | 
			
		||||
                {
 | 
			
		||||
                    m_log.Error("[FreeSwitchVoice]: No LocalServiceModule named in section FreeSwitchVoice");
 | 
			
		||||
                    m_log.Error("[FreeSwitchVoice]: No LocalServiceModule named in section FreeSwitchVoice.  Not starting.");
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -143,8 +143,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
                if (String.IsNullOrEmpty(m_freeSwitchRealm) ||
 | 
			
		||||
                    String.IsNullOrEmpty(m_freeSwitchAPIPrefix))
 | 
			
		||||
                {
 | 
			
		||||
                    m_log.Error("[FreeSwitchVoice] plugin mis-configured");
 | 
			
		||||
                    m_log.Info("[FreeSwitchVoice] plugin disabled: incomplete configuration");
 | 
			
		||||
                    m_log.Error("[FreeSwitchVoice]: Freeswitch service mis-configured.  Not starting.");                    
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -164,24 +163,24 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
                // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler);
 | 
			
		||||
                //  MainServer.Instance.AddStreamHandler(h);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_signin.php", m_freeSwitchAPIPrefix),
 | 
			
		||||
                                 FreeSwitchSLVoiceSigninHTTPHandler);
 | 
			
		||||
 | 
			
		||||
                MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix),
 | 
			
		||||
                                 FreeSwitchSLVoiceBuddyHTTPHandler);
 | 
			
		||||
                
 | 
			
		||||
                MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_watcher.php", m_freeSwitchAPIPrefix),
 | 
			
		||||
                                 FreeSwitchSLVoiceWatcherHTTPHandler);                
 | 
			
		||||
 | 
			
		||||
                m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm);
 | 
			
		||||
                m_log.InfoFormat("[FreeSwitchVoice]: using FreeSwitch server {0}", m_freeSwitchRealm);
 | 
			
		||||
 | 
			
		||||
                m_Enabled = true;
 | 
			
		||||
 | 
			
		||||
                m_log.Info("[FreeSwitchVoice] plugin enabled");
 | 
			
		||||
                m_log.Info("[FreeSwitchVoice]: plugin enabled");
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                m_log.ErrorFormat("[FreeSwitchVoice] plugin initialization failed: {0}", e.Message);
 | 
			
		||||
                m_log.DebugFormat("[FreeSwitchVoice] plugin initialization failed: {0}", e.ToString());
 | 
			
		||||
                m_log.ErrorFormat("[FreeSwitchVoice]: plugin initialization failed: {0} {1}", e.Message, e.StackTrace);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -240,7 +239,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
        {
 | 
			
		||||
            if (m_Enabled)
 | 
			
		||||
            {
 | 
			
		||||
                m_log.Info("[FreeSwitchVoice] registering IVoiceModule with the scene");
 | 
			
		||||
                m_log.Info("[FreeSwitchVoice]: registering IVoiceModule with the scene");
 | 
			
		||||
 | 
			
		||||
                // register the voice interface for this module, so the script engine can call us
 | 
			
		||||
                scene.RegisterModuleInterface<IVoiceModule>(this);
 | 
			
		||||
| 
						 | 
				
			
			@ -302,7 +301,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
        // </summary>
 | 
			
		||||
        public void OnRegisterCaps(Scene scene, UUID agentID, Caps caps)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.DebugFormat("[FreeSwitchVoice] OnRegisterCaps: agentID {0} caps {1}", agentID, caps);
 | 
			
		||||
            m_log.DebugFormat(
 | 
			
		||||
                "[FreeSwitchVoice]: OnRegisterCaps() called with agentID {0} caps {1} in scene {2}", 
 | 
			
		||||
                agentID, caps, scene.RegionInfo.RegionName);
 | 
			
		||||
 | 
			
		||||
            string capsBase = "/CAPS/" + caps.CapsObjectPath;
 | 
			
		||||
            caps.RegisterHandler("ProvisionVoiceAccountRequest",
 | 
			
		||||
| 
						 | 
				
			
			@ -344,6 +345,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
        public string ProvisionVoiceAccountRequest(Scene scene, string request, string path, string param,
 | 
			
		||||
                                                   UUID agentID, Caps caps)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.DebugFormat(
 | 
			
		||||
                "[FreeSwitchVoice][PROVISIONVOICE]: ProvisionVoiceAccountRequest() request: {0}, path: {1}, param: {2}", request, path, param);
 | 
			
		||||
            
 | 
			
		||||
            ScenePresence avatar = scene.GetScenePresence(agentID);
 | 
			
		||||
            if (avatar == null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -357,9 +361,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                //m_log.DebugFormat("[FreeSwitchVoice][PROVISIONVOICE]: request: {0}, path: {1}, param: {2}",
 | 
			
		||||
                //                  request, path, param);
 | 
			
		||||
 | 
			
		||||
                //XmlElement    resp;
 | 
			
		||||
                string agentname = "x" + Convert.ToBase64String(agentID.GetBytes());
 | 
			
		||||
                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
 | 
			
		|||
        public string ParcelVoiceInfoRequest(Scene scene, string request, string path, string param,
 | 
			
		||||
                                             UUID agentID, Caps caps)
 | 
			
		||||
        {
 | 
			
		||||
//            m_log.DebugFormat(
 | 
			
		||||
//                "[FreeSwitchVoice][PARCELVOICE]: ParcelVoiceInfoRequest() on {0} for {1}", 
 | 
			
		||||
//                scene.RegionInfo.RegionName, agentID);
 | 
			
		||||
            
 | 
			
		||||
            ScenePresence avatar = scene.GetScenePresence(agentID);
 | 
			
		||||
            string avatarName = avatar.Name;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -502,6 +507,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
 | 
			
		||||
            m_log.DebugFormat("[FreeSwitchVoice][CHATSESSION]: avatar \"{0}\": request: {1}, path: {2}, param: {3}",
 | 
			
		||||
                              avatarName, request, path, param);
 | 
			
		||||
            
 | 
			
		||||
            return "<llsd>true</llsd>";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -555,10 +561,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
            return response;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public Hashtable FreeSwitchSLVoiceGetPreloginHTTPHandler(Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceGetPreloginHTTPHandler called");
 | 
			
		||||
            m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceGetPreloginHTTPHandler called");
 | 
			
		||||
 | 
			
		||||
            Hashtable response = new Hashtable();
 | 
			
		||||
            response["content_type"] = "text/xml";
 | 
			
		||||
| 
						 | 
				
			
			@ -592,6 +597,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
 | 
			
		||||
        public Hashtable FreeSwitchSLVoiceBuddyHTTPHandler(Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceBuddyHTTPHandler called");
 | 
			
		||||
            
 | 
			
		||||
            Hashtable response = new Hashtable();
 | 
			
		||||
            response["int_response_code"] = 200;
 | 
			
		||||
            response["str_response_string"] = string.Empty;
 | 
			
		||||
| 
						 | 
				
			
			@ -650,21 +657,64 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
                                    <bdy_status>A</bdy_status>
 | 
			
		||||
                                    <modified_ts>{3}</modified_ts>
 | 
			
		||||
                                    <b2g_group_id></b2g_group_id>
 | 
			
		||||
                                </level3>", ids[i],i,m_freeSwitchRealm,dt));
 | 
			
		||||
                                </level3>", ids[i], i ,m_freeSwitchRealm, dt));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            resp.Append("</buddies><groups></groups></body></level0></response>");
 | 
			
		||||
 | 
			
		||||
            response["str_response_string"] = resp.ToString();
 | 
			
		||||
//            Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
 | 
			
		||||
 | 
			
		||||
            //m_log.DebugFormat("[FREESWITCH]: {0}", normalizeEndLines.Replace((string)response["str_response_string"],""));
 | 
			
		||||
//            Regex normalizeEndLines = new Regex(@"(\r\n|\n)", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
 | 
			
		||||
//
 | 
			
		||||
//            m_log.DebugFormat(
 | 
			
		||||
//                "[FREESWITCH]: FreeSwitchSLVoiceBuddyHTTPHandler() response {0}", 
 | 
			
		||||
//                normalizeEndLines.Replace((string)response["str_response_string"],""));
 | 
			
		||||
            
 | 
			
		||||
            return response;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Hashtable FreeSwitchSLVoiceWatcherHTTPHandler(Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceWatcherHTTPHandler called");
 | 
			
		||||
            
 | 
			
		||||
            Hashtable response = new Hashtable();
 | 
			
		||||
            response["int_response_code"] = 200;
 | 
			
		||||
            response["content-type"] = "text/xml";
 | 
			
		||||
 | 
			
		||||
            Hashtable requestBody = ParseRequestBody((string)request["body"]);
 | 
			
		||||
 | 
			
		||||
            string auth_token = (string)requestBody["auth_token"];
 | 
			
		||||
            //string[] auth_tokenvals = auth_token.Split(':');
 | 
			
		||||
            //string username = auth_tokenvals[0];
 | 
			
		||||
 | 
			
		||||
            StringBuilder resp = new StringBuilder();
 | 
			
		||||
            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\">");
 | 
			
		||||
            
 | 
			
		||||
            // 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 
 | 
			
		||||
            // give an OK response, then viewer 2 engages in an continuous viv_signin.php, viv_buddy.php, viv_watcher.php loop
 | 
			
		||||
            // Viewer 1 appeared happy to ignore the lack of reply and still works with this reply.
 | 
			
		||||
            //
 | 
			
		||||
            // However, really we need to fill in whatever watcher data should be here (whatever that is).
 | 
			
		||||
            resp.Append(string.Format(@"<level0>
 | 
			
		||||
                        <status>OK</status>
 | 
			
		||||
                        <cookie_name>lib_session</cookie_name>
 | 
			
		||||
                        <cookie>{0}</cookie>
 | 
			
		||||
                        <auth_token>{0}</auth_token>
 | 
			
		||||
                        <body/></level0></response>", auth_token));            
 | 
			
		||||
            
 | 
			
		||||
            response["str_response_string"] = resp.ToString();
 | 
			
		||||
            
 | 
			
		||||
//            Regex normalizeEndLines = new Regex(@"(\r\n|\n)", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
 | 
			
		||||
//
 | 
			
		||||
//            m_log.DebugFormat(
 | 
			
		||||
//                "[FREESWITCH]: FreeSwitchSLVoiceWatcherHTTPHandler() response {0}", 
 | 
			
		||||
//                normalizeEndLines.Replace((string)response["str_response_string"],""));
 | 
			
		||||
            
 | 
			
		||||
            return response;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        public Hashtable FreeSwitchSLVoiceSigninHTTPHandler(Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceSigninHTTPHandler called");
 | 
			
		||||
            m_log.Debug("[FreeSwitchVoice]: FreeSwitchSLVoiceSigninHTTPHandler called");
 | 
			
		||||
//            string requestbody = (string)request["body"];
 | 
			
		||||
//            string uri = (string)request["uri"];
 | 
			
		||||
//            string contenttype = (string)request["content-type"];
 | 
			
		||||
| 
						 | 
				
			
			@ -709,7 +759,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
                    </level0>
 | 
			
		||||
                </response>", userid, pos, avatarName);
 | 
			
		||||
 | 
			
		||||
            response["int_response_code"] = 200;
 | 
			
		||||
            response["int_response_code"] = 200;            
 | 
			
		||||
            
 | 
			
		||||
//            m_log.DebugFormat("[FreeSwitchVoice]: Sending FreeSwitchSLVoiceSigninHTTPHandler response");
 | 
			
		||||
            
 | 
			
		||||
            return response;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -795,16 +848,18 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
            response["keepalive"] = false;
 | 
			
		||||
            response["int_response_code"] = 500;
 | 
			
		||||
 | 
			
		||||
            Hashtable requestBody = ParseRequestBody((string) request["body"]);
 | 
			
		||||
            Hashtable requestBody = ParseRequestBody((string)request["body"]);                                   
 | 
			
		||||
 | 
			
		||||
            string section = (string) requestBody["section"];
 | 
			
		||||
            
 | 
			
		||||
            m_log.DebugFormat("[FreeSwitchVoice]: Received request for config section {0}", section);            
 | 
			
		||||
 | 
			
		||||
            if (section == "directory")
 | 
			
		||||
                response = m_FreeswitchService.HandleDirectoryRequest(requestBody);
 | 
			
		||||
            else if (section == "dialplan")
 | 
			
		||||
                response = m_FreeswitchService.HandleDialplanRequest(requestBody);
 | 
			
		||||
            else
 | 
			
		||||
                m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section);
 | 
			
		||||
                m_log.WarnFormat("[FreeSwitchVoice]: Unknown section {0} was requested.", section);
 | 
			
		||||
 | 
			
		||||
            return response;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -821,4 +876,4 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
 | 
			
		|||
 | 
			
		||||
        #endregion
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -62,6 +62,8 @@ namespace PrimMesher
 | 
			
		|||
 | 
			
		||||
            bool needsScaling = false;
 | 
			
		||||
 | 
			
		||||
            bool smallMap = bmW * bmH <= lod * lod;
 | 
			
		||||
 | 
			
		||||
            width = bmW;
 | 
			
		||||
            height = bmH;
 | 
			
		||||
            while (width * height > numLodPixels)
 | 
			
		||||
| 
						 | 
				
			
			@ -104,9 +106,14 @@ namespace PrimMesher
 | 
			
		|||
                {
 | 
			
		||||
                    for (int x = 0; x <= width; x++)
 | 
			
		||||
                    {
 | 
			
		||||
                        int bmY = y < height ? y * 2 : y * 2 - 1;
 | 
			
		||||
                        int bmX = x < width ? x * 2 : x * 2 - 1;
 | 
			
		||||
                        Color c = bm.GetPixel(bmX, bmY);
 | 
			
		||||
                        Color c;
 | 
			
		||||
 | 
			
		||||
                        if (smallMap)
 | 
			
		||||
                            c = bm.GetPixel(x < width ? x : x - 1,
 | 
			
		||||
                                            y < height ? y : y - 1);
 | 
			
		||||
                        else
 | 
			
		||||
                            c = bm.GetPixel(x < width ? x * 2 : x * 2 - 1,
 | 
			
		||||
                                            y < height ? y * 2 : y * 2 - 1);
 | 
			
		||||
 | 
			
		||||
                        redBytes[byteNdx] = c.R;
 | 
			
		||||
                        greenBytes[byteNdx] = c.G;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,13 +50,13 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
 | 
			
		||||
        public Hashtable HandleDialplanRequest(Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.DebugFormat("[FreeSwitchVoice] HandleDialplanRequest called with {0}",request.ToString());
 | 
			
		||||
            m_log.DebugFormat("[FreeSwitchVoice]: HandleDialplanRequest called with {0}",request.ToString());
 | 
			
		||||
 | 
			
		||||
            Hashtable response = new Hashtable();
 | 
			
		||||
 | 
			
		||||
            foreach (DictionaryEntry item in request)
 | 
			
		||||
            {
 | 
			
		||||
               m_log.InfoFormat("[FreeSwitchDirectory] requestBody item {0} {1}",item.Key, item.Value);
 | 
			
		||||
               m_log.InfoFormat("[FreeSwitchDirectory]: requestBody item {0} {1}",item.Key, item.Value);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            string requestcontext = (string) request["Hunt-Context"];
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
 | 
			
		||||
            if (m_freeSwitchContext != String.Empty && m_freeSwitchContext != requestcontext)
 | 
			
		||||
            {
 | 
			
		||||
                m_log.Debug("[FreeSwitchDirectory] returning empty as it's for another context");
 | 
			
		||||
                m_log.Debug("[FreeSwitchDirectory]: returning empty as it's for another context");
 | 
			
		||||
                response["str_response_string"] = "";
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
| 
						 | 
				
			
			@ -116,13 +116,16 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
        {
 | 
			
		||||
            Hashtable response = new Hashtable();
 | 
			
		||||
            string domain = (string) request["domain"];
 | 
			
		||||
            if (domain != m_freeSwitchRealm) {
 | 
			
		||||
            if (domain != m_freeSwitchRealm) 
 | 
			
		||||
            {
 | 
			
		||||
                response["content_type"] = "text/xml";
 | 
			
		||||
                response["keepalive"] = false;
 | 
			
		||||
                response["int_response_code"] = 200;
 | 
			
		||||
                response["str_response_string"] = "";
 | 
			
		||||
            } else {
 | 
			
		||||
                 m_log.DebugFormat("[FreeSwitchDirectory] HandleDirectoryRequest called with {0}",request.ToString());
 | 
			
		||||
            } 
 | 
			
		||||
            else 
 | 
			
		||||
            {
 | 
			
		||||
//                 m_log.DebugFormat("[FreeSwitchDirectory]: HandleDirectoryRequest called with {0}",request.ToString());
 | 
			
		||||
            
 | 
			
		||||
                 // information in the request we might be interested in
 | 
			
		||||
             
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +148,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
             
 | 
			
		||||
                 foreach (DictionaryEntry item in request)
 | 
			
		||||
                 {
 | 
			
		||||
                    m_log.InfoFormat("[FreeSwitchDirectory] requestBody item {0} {1}", item.Key, item.Value);
 | 
			
		||||
                    m_log.DebugFormat("[FreeSwitchDirectory]: requestBody item {0} {1}", item.Key, item.Value);
 | 
			
		||||
                 }
 | 
			
		||||
             
 | 
			
		||||
                 string eventCallingFunction = (string) request["Event-Calling-Function"];
 | 
			
		||||
| 
						 | 
				
			
			@ -173,7 +176,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
                     }
 | 
			
		||||
                     else
 | 
			
		||||
                     {
 | 
			
		||||
                         m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown sip_auth_method {0}",sipAuthMethod);
 | 
			
		||||
                         m_log.ErrorFormat("[FreeSwitchVoice]: HandleDirectoryRequest unknown sip_auth_method {0}",sipAuthMethod);
 | 
			
		||||
                         response["int_response_code"] = 404;
 | 
			
		||||
                         response["content_type"] = "text/xml";
 | 
			
		||||
                         response["str_response_string"] = "";
 | 
			
		||||
| 
						 | 
				
			
			@ -205,7 +208,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
                 }
 | 
			
		||||
                 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["keepalive"] = false;
 | 
			
		||||
                     response["content_type"] = "text/xml";
 | 
			
		||||
| 
						 | 
				
			
			@ -217,7 +220,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
        
 | 
			
		||||
        private Hashtable HandleRegister(string Context, string Realm, Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory] HandleRegister called");
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory]: HandleRegister called");
 | 
			
		||||
            
 | 
			
		||||
            // TODO the password we return needs to match that sent in the request, this is hard coded for now
 | 
			
		||||
            string password = "1234";
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +257,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
        
 | 
			
		||||
        private Hashtable HandleInvite(string Context, string Realm, Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory] HandleInvite called");
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory]: HandleInvite called");
 | 
			
		||||
            
 | 
			
		||||
            // TODO the password we return needs to match that sent in the request, this is hard coded for now
 | 
			
		||||
            string password = "1234";
 | 
			
		||||
| 
						 | 
				
			
			@ -301,7 +304,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
 | 
			
		||||
        private Hashtable HandleLocateUser(String Realm, Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory] HandleLocateUser called");
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory]: HandleLocateUser called");
 | 
			
		||||
            
 | 
			
		||||
            // TODO the password we return needs to match that sent in the request, this is hard coded for now
 | 
			
		||||
            string domain = (string) request["domain"];
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +338,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
       
 | 
			
		||||
        private Hashtable HandleConfigSofia(string Context, string Realm, Hashtable request)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory] HandleConfigSofia called");
 | 
			
		||||
            m_log.Info("[FreeSwitchDirectory]: HandleConfigSofia called.");
 | 
			
		||||
            
 | 
			
		||||
            // TODO the password we return needs to match that sent in the request, this is hard coded for now
 | 
			
		||||
            string domain = (string) request["domain"];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ namespace OpenSim.Services.FreeswitchService
 | 
			
		|||
                m_freeSwitchDefaultWellKnownIP = freeswitchConfig.GetString("ServerAddress", String.Empty);
 | 
			
		||||
                if (m_freeSwitchDefaultWellKnownIP == String.Empty)
 | 
			
		||||
                {
 | 
			
		||||
                    m_log.Error("[FREESWITCH]: No FreeswitchServerAddress given, can't continue");
 | 
			
		||||
                    m_log.Error("[FREESWITCH]: No ServerAddress given, cannot start service.");
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -621,10 +621,11 @@
 | 
			
		|||
 | 
			
		||||
    ;; You need to load a local service for a standalone, and a remote service
 | 
			
		||||
    ;; for a grid region. Use one of the lines below, as appropriate
 | 
			
		||||
    ;; If you're using Freeswitch on a standalone then you will also need to configure the [FreeswitchService] section
 | 
			
		||||
    ; LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService
 | 
			
		||||
    ; LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector
 | 
			
		||||
 | 
			
		||||
    ;; If using a remote module, specify the server URL
 | 
			
		||||
    ;; If using a remote connector, specify the server URL
 | 
			
		||||
    ; FreeswitchServiceURL = http://my.grid.server:8003/fsapi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -632,20 +633,37 @@
 | 
			
		|||
    ;; !!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
    ;; !!!!!!STANDALONE ONLY!!!!!!
 | 
			
		||||
    ;; !!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
    ;; IP of your FS server
 | 
			
		||||
    ;ServerAddress = 85.25.142.92
 | 
			
		||||
    ;; The IP address of your FreeSWITCH server.  The common case is for this to be the same as the server running the OpenSim standalone
 | 
			
		||||
    ;; This has to be set for the FreeSWITCH service to work
 | 
			
		||||
    ;ServerAddress = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
    ;; All other options are - well - optional
 | 
			
		||||
    ; Realm = "127.0.0.1"
 | 
			
		||||
    ; SIPProxy = "127.0.0.1:5060"
 | 
			
		||||
    ; EchoServer = "127.0.0.1"
 | 
			
		||||
    ; EchoPort = 50505
 | 
			
		||||
    ; AttemptSTUN = "false"
 | 
			
		||||
    ;; The following configuration parameters are optional
 | 
			
		||||
 | 
			
		||||
    ;; By default, this is the same as the ServerAddress
 | 
			
		||||
    ; Realm = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
    ;; By default, this is the same as the ServerAddress on port 5060
 | 
			
		||||
    ; SIPProxy = 127.0.0.1:5060
 | 
			
		||||
 | 
			
		||||
    ;; Default is 5000ms
 | 
			
		||||
    ; DefaultTimeout = 5000
 | 
			
		||||
    ; Context = "default"
 | 
			
		||||
    ; UserName = "freeswitch"
 | 
			
		||||
    ; Password = "password"
 | 
			
		||||
 | 
			
		||||
    ;; The dial plan context.  Default is "default"
 | 
			
		||||
    ; Context = default
 | 
			
		||||
 | 
			
		||||
    ;; Currently unused
 | 
			
		||||
    ; UserName = freeswitch
 | 
			
		||||
 | 
			
		||||
    ;; Currently unused
 | 
			
		||||
    ; Password = password
 | 
			
		||||
 | 
			
		||||
    ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
 | 
			
		||||
    ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
 | 
			
		||||
    ;; stun.freeswitch.org is not guaranteed to be running so use it in
 | 
			
		||||
    ;; production at your own risk    
 | 
			
		||||
    ; EchoServer = 127.0.0.1
 | 
			
		||||
    ; EchoPort = 50505
 | 
			
		||||
    ; AttemptSTUN = false
 | 
			
		||||
 | 
			
		||||
[Groups]
 | 
			
		||||
    ;# {Enabled} {} {Enable groups?} {true false} false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -459,7 +459,7 @@
 | 
			
		|||
[Mesh]
 | 
			
		||||
    ; enable / disable Collada mesh support
 | 
			
		||||
    ; default is true
 | 
			
		||||
    ; ColladaMesh = true
 | 
			
		||||
    ColladaMesh = true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[ODEPhysicsSettings]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,19 +85,41 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
 | 
			
		|||
; * This is the configuration for the freeswitch server in grid mode
 | 
			
		||||
[FreeswitchService]
 | 
			
		||||
    LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
 | 
			
		||||
    ;; IP of your FS server
 | 
			
		||||
 | 
			
		||||
    ;; The IP address of your FreeSWITCH server.
 | 
			
		||||
    ; ServerAddress = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
    ;; All other options are - well - optional
 | 
			
		||||
    ; Realm = "127.0.0.1"
 | 
			
		||||
    ; SIPProxy = "127.0.0.1:5060"
 | 
			
		||||
    ; EchoServer = "127.0.0.1"
 | 
			
		||||
    ; EchoPort = 50505
 | 
			
		||||
    ; AttemptSTUN = "false"
 | 
			
		||||
    ;; The following configuration parameters are optional
 | 
			
		||||
 | 
			
		||||
    ;; By default, this is the same as the ServerAddress
 | 
			
		||||
    ; Realm = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
    ;; By default, this is the same as the ServerAddress on port 5060
 | 
			
		||||
    ; SIPProxy = 127.0.0.1:5060
 | 
			
		||||
 | 
			
		||||
    ;; Default is 5000ms
 | 
			
		||||
    ; DefaultTimeout = 5000
 | 
			
		||||
    ; Context = "default"
 | 
			
		||||
    ; UserName = "freeswitch"
 | 
			
		||||
    ; Password = "password"
 | 
			
		||||
 | 
			
		||||
    ;; The dial plan context.  Default is "default"
 | 
			
		||||
    ; Context = default
 | 
			
		||||
 | 
			
		||||
    ;; Currently unused
 | 
			
		||||
    ; UserName = freeswitch
 | 
			
		||||
 | 
			
		||||
    ;; Currently unused
 | 
			
		||||
    ; Password = password
 | 
			
		||||
 | 
			
		||||
    ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
 | 
			
		||||
    ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
 | 
			
		||||
    ;; stun.freeswitch.org is not guaranteed to be running so use it in
 | 
			
		||||
    ;; production at your own risk    
 | 
			
		||||
    ; EchoServer = 127.0.0.1
 | 
			
		||||
    ; EchoPort = 50505
 | 
			
		||||
    ; AttemptSTUN = false
 | 
			
		||||
 | 
			
		||||
    LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
 | 
			
		||||
    ;; IP of your FS server
 | 
			
		||||
    ; ServerAddress = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
; * This is the new style authentication service. Currently, only MySQL
 | 
			
		||||
; * is implemented. 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,19 +69,37 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
 | 
			
		|||
; * This is the configuration for the freeswitch server in grid mode
 | 
			
		||||
[FreeswitchService]
 | 
			
		||||
    LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
 | 
			
		||||
    ;; IP of your FS server
 | 
			
		||||
 | 
			
		||||
    ;; The IP address of your FreeSWITCH server.
 | 
			
		||||
    ; ServerAddress = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
    ;; All other options are - well - optional
 | 
			
		||||
    ; Realm = "127.0.0.1"
 | 
			
		||||
    ; SIPProxy = "127.0.0.1:5060"
 | 
			
		||||
    ; EchoServer = "127.0.0.1"
 | 
			
		||||
    ; EchoPort = 50505
 | 
			
		||||
    ; AttemptSTUN = "false"
 | 
			
		||||
    ;; The following configuration parameters are optional
 | 
			
		||||
 | 
			
		||||
    ;; By default, this is the same as the ServerAddress
 | 
			
		||||
    ; Realm = 127.0.0.1
 | 
			
		||||
 | 
			
		||||
    ;; By default, this is the same as the ServerAddress on port 5060
 | 
			
		||||
    ; SIPProxy = 127.0.0.1:5060
 | 
			
		||||
 | 
			
		||||
    ;; Default is 5000ms
 | 
			
		||||
    ; DefaultTimeout = 5000
 | 
			
		||||
    ; Context = "default"
 | 
			
		||||
    ; UserName = "freeswitch"
 | 
			
		||||
    ; Password = "password"
 | 
			
		||||
 | 
			
		||||
    ;; The dial plan context.  Default is "default"
 | 
			
		||||
    ; Context = default
 | 
			
		||||
 | 
			
		||||
    ;; Currently unused
 | 
			
		||||
    ; UserName = freeswitch
 | 
			
		||||
 | 
			
		||||
    ;; Currently unused
 | 
			
		||||
    ; Password = password
 | 
			
		||||
 | 
			
		||||
    ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
 | 
			
		||||
    ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
 | 
			
		||||
    ;; stun.freeswitch.org is not guaranteed to be running so use it in
 | 
			
		||||
    ;; production at your own risk    
 | 
			
		||||
    ; EchoServer = 127.0.0.1
 | 
			
		||||
    ; EchoPort = 50505
 | 
			
		||||
    ; AttemptSTUN = false
 | 
			
		||||
 | 
			
		||||
; * This is the new style authentication service. Currently, only MySQL
 | 
			
		||||
; * is implemented. 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,10 +28,10 @@
 | 
			
		|||
 | 
			
		||||
[HGInventoryAccessModule]
 | 
			
		||||
    ProfileServerURI = "http://127.0.0.1:9000/profiles"
 | 
			
		||||
	;; If you want to protect your assets from being copied by foreign visitors
 | 
			
		||||
	;; uncomment the next line. You may want to do this on sims that have licensed content.
 | 
			
		||||
	; OutboundPermission = False
 | 
			
		||||
 | 
			
		||||
    ;; If you want to protect your assets from being copied by foreign visitors
 | 
			
		||||
    ;; uncomment the next line. You may want to do this on sims that have licensed content.
 | 
			
		||||
    ; OutboundPermission = False
 | 
			
		||||
 | 
			
		||||
[Modules]
 | 
			
		||||
    ;; Choose 0 or 1 cache modules, and the corresponding config file, if it exists.
 | 
			
		||||
| 
						 | 
				
			
			@ -45,16 +45,9 @@
 | 
			
		|||
    AssetCaching = "CenomeMemoryAssetCache"
 | 
			
		||||
    Include-CenomeCache = "config-include/CenomeCache.ini"
 | 
			
		||||
 | 
			
		||||
    ;; Enable this to use Freeswitch on a standalone
 | 
			
		||||
    ;FreeswitchServiceInConnector = True
 | 
			
		||||
 | 
			
		||||
    ;; Authorization is not on by default, as it depends on external php
 | 
			
		||||
    ;AuthorizationServices = "LocalAuthorizationServicesConnector"
 | 
			
		||||
 | 
			
		||||
[FreeswitchService]
 | 
			
		||||
    ;; Configuration for the freeswitch service goes here
 | 
			
		||||
    LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
 | 
			
		||||
 | 
			
		||||
[GridService]
 | 
			
		||||
    ;; For in-memory region storage (default)
 | 
			
		||||
    StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
 | 
			
		||||
| 
						 | 
				
			
			@ -74,9 +67,8 @@
 | 
			
		|||
    Region_Welcome_Area = "DefaultRegion, FallbackRegion"
 | 
			
		||||
 | 
			
		||||
    ; === HG ONLY ===
 | 
			
		||||
	;; change this to the address of your simulator
 | 
			
		||||
	Gatekeeper="http://127.0.0.1:9000"
 | 
			
		||||
 | 
			
		||||
    ;; change this to the address of your simulator
 | 
			
		||||
    Gatekeeper="http://127.0.0.1:9000"
 | 
			
		||||
 | 
			
		||||
[LibraryModule]
 | 
			
		||||
    ; Set this if you want to change the name of the OpenSim Library
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue