diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs
deleted file mode 100644
index 46ad30fdfd..0000000000
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using log4net;
-using System;
-using System.Reflection;
-using System.Text;
-using System.Collections;
-
-namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
-{
- public class FreeSwitchDialplan
- {
- private static readonly ILog m_log =
- LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
-
- public Hashtable HandleDialplanRequest(string Context, string Realm, Hashtable request)
- {
- 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);
- }
-
- string requestcontext = (string) request["Hunt-Context"];
- response["content_type"] = "text/xml";
- response["keepalive"] = false;
- response["int_response_code"] = 200;
- if (Context != String.Empty && Context != requestcontext)
- {
- m_log.Debug("[FreeSwitchDirectory] returning empty as it's for another context");
- response["str_response_string"] = "";
- } else {
- response["str_response_string"] = String.Format(@"
-
-
- " +
-
-/*
-
-
-
-
-
- */
-
- @"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ", Context, Realm);
- }
-
- return response;
- }
- }
-
-}
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs
deleted file mode 100644
index 17cdf741b5..0000000000
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using log4net;
-using System;
-using System.Reflection;
-using System.Text;
-using System.Collections;
-
-namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
-{
- public class FreeSwitchDirectory
- {
- private static readonly ILog m_log =
- LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public Hashtable HandleDirectoryRequest(string Context, string Realm, Hashtable request)
- {
- Hashtable response = new Hashtable();
- string domain = (string) request["domain"];
- if (domain != Realm) {
- 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());
-
- // information in the request we might be interested in
-
- // Request 1 sip_auth for users account
-
- //Event-Calling-Function=sofia_reg_parse_auth
- //Event-Calling-Line-Number=1494
- //action=sip_auth
- //sip_user_agent=Vivox-SDK-2.1.3010.6151-Mac%20(Feb-11-2009/16%3A42%3A41)
- //sip_auth_username=xhZuXKmRpECyr2AARJYyGgg%3D%3D (==)
- //sip_auth_realm=9.20.151.43
- //sip_contact_user=xhZuXKmRpECyr2AARJYyGgg%3D%3D (==)
- //sip_contact_host=192.168.0.3 // this shouldnt really be a local IP, investigate STUN servers
- //sip_to_user=xhZuXKmRpECyr2AARJYyGgg%3D%3D
- //sip_to_host=9.20.151.43
- //sip_auth_method=REGISTER
- //user=xhZuXKmRpECyr2AARJYyGgg%3D%3D
- //domain=9.20.151.43
- //ip=9.167.220.137 // this is the correct IP rather than sip_contact_host above when through a vpn or NAT setup
-
- foreach (DictionaryEntry item in request)
- {
- m_log.InfoFormat("[FreeSwitchDirectory] requestBody item {0} {1}", item.Key, item.Value);
- }
-
- string eventCallingFunction = (string) request["Event-Calling-Function"];
- if (eventCallingFunction == null)
- {
- eventCallingFunction = "sofia_reg_parse_auth";
- }
-
- if (eventCallingFunction.Length == 0)
- {
- eventCallingFunction = "sofia_reg_parse_auth";
- }
-
- if (eventCallingFunction == "sofia_reg_parse_auth")
- {
- string sipAuthMethod = (string)request["sip_auth_method"];
-
- if (sipAuthMethod == "REGISTER")
- {
- response = HandleRegister(Context, Realm, request);
- }
- else if (sipAuthMethod == "INVITE")
- {
- response = HandleInvite(Context, Realm, request);
- }
- else
- {
- 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"] = "";
- }
- }
- else if (eventCallingFunction == "switch_xml_locate_user")
- {
- response = HandleLocateUser(Realm, request);
- }
- else if (eventCallingFunction == "user_data_function") // gets called when an avatar to avatar call is made
- {
- response = HandleLocateUser(Realm, request);
- }
- else if (eventCallingFunction == "user_outgoing_channel")
- {
- response = HandleRegister(Context, Realm, request);
- }
- else if (eventCallingFunction == "config_sofia") // happens once on freeswitch startup
- {
- response = HandleConfigSofia(Context, Realm, request);
- }
- else if (eventCallingFunction == "switch_load_network_lists")
- {
- //response = HandleLoadNetworkLists(request);
- response["int_response_code"] = 404;
- response["keepalive"] = false;
- response["content_type"] = "text/xml";
- response["str_response_string"] = "";
- }
- else
- {
- m_log.ErrorFormat("[FreeSwitchVoice] HandleDirectoryRequest unknown Event-Calling-Function {0}",eventCallingFunction);
- response["int_response_code"] = 404;
- response["keepalive"] = false;
- response["content_type"] = "text/xml";
- response["str_response_string"] = "";
- }
- }
- return response;
- }
-
- private Hashtable HandleRegister(string Context, string Realm, Hashtable request)
- {
- 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";
- string domain = (string) request["domain"];
- string user = (string) request["user"];
-
- Hashtable response = new Hashtable();
- response["content_type"] = "text/xml";
- response["keepalive"] = false;
- response["int_response_code"] = 200;
-
- response["str_response_string"] = String.Format(
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- ""+
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n",
- domain , user, password, Context);
-
- return response;
- }
-
- private Hashtable HandleInvite(string Context, string Realm, Hashtable request)
- {
- 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";
- string domain = (string) request["domain"];
- string user = (string) request["user"];
- string sipRequestUser = (string) request["sip_request_user"];
-
- Hashtable response = new Hashtable();
- response["content_type"] = "text/xml";
- response["keepalive"] = false;
- response["int_response_code"] = 200;
- response["str_response_string"] = String.Format(
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- ""+
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- ""+
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n",
- domain , user, password,sipRequestUser, Context);
-
- return response;
- }
-
- private Hashtable HandleLocateUser(String Realm, Hashtable request)
- {
- 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"];
- string user = (string) request["user"];
-
- Hashtable response = new Hashtable();
- response["content_type"] = "text/xml";
- response["keepalive"] = false;
- response["int_response_code"] = 200;
- response["str_response_string"] = String.Format(
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n"+
- "\r\n"+
- ""+
- "\r\n"+
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n",
- domain , user);
-
- return response;
- }
-
- private Hashtable HandleConfigSofia(string Context, string Realm, Hashtable request)
- {
- 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"];
-
- Hashtable response = new Hashtable();
- response["content_type"] = "text/xml";
- response["keepalive"] = false;
- response["int_response_code"] = 200;
- response["str_response_string"] = String.Format(
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n" +
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n"+
- ""+
- "\r\n" +
- "\r\n"+
- "\r\n"+
- "\r\n"+
- "\r\n" +
- "\r\n" +
- "\r\n",
- domain, Context);
-
- return response;
- }
-
-
-// private Hashtable HandleLoadNetworkLists(Hashtable request)
-// {
-// m_log.Info("[FreeSwitchDirectory] HandleLoadNetworkLists 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"];
-//
-// Hashtable response = new Hashtable();
-// response["content_type"] = "text/xml";
-// response["keepalive"] = false;
-// response["int_response_code"] = 200;
-// response["str_response_string"] = String.Format(
-// "\r\n" +
-// "\r\n" +
-// "\r\n" +
-// "\r\n" +
-// "\r\n" +
-// "\r\n" +
-// "\r\n" +
-// "\r\n" +
-// "\r\n"+
-// "\r\n"+
-// "\r\n"+
-// "\r\n" +
-// "\r\n" +
-// "\r\n",
-// domain);
-//
-//
-// return response;
-// }
- }
-}
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs
index 242bc3fdeb..cceaa9b279 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs
@@ -96,9 +96,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
private string m_openSimWellKnownHTTPAddress;
private string m_freeSwitchContext;
- private FreeSwitchDirectory m_FreeSwitchDirectory;
- private FreeSwitchDialplan m_FreeSwitchDialplan;
-
private readonly Dictionary m_UUIDName = new Dictionary();
private Dictionary m_ParcelAddress = new Dictionary();
@@ -172,41 +169,24 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// - buddies: viv_buddy.php
// - ???: viv_watcher.php
// - signout: viv_signout.php
- if (UseProxy)
- {
- MainServer.Instance.AddHTTPHandler(String.Format("{0}/", m_freeSwitchAPIPrefix),
- ForwardProxyRequest);
- }
- else
- {
- MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix),
- FreeSwitchSLVoiceGetPreloginHTTPHandler);
+ MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix),
+ FreeSwitchSLVoiceGetPreloginHTTPHandler);
- // RestStreamHandler h = new
- // RestStreamHandler("GET",
- // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler);
- // MainServer.Instance.AddStreamHandler(h);
+ // RestStreamHandler h = new
+ // RestStreamHandler("GET",
+ // 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_signin.php", m_freeSwitchAPIPrefix),
+ FreeSwitchSLVoiceSigninHTTPHandler);
- // set up http request handlers to provide
- // on-demand FreeSwitch configuration to
- // FreeSwitch's mod_curl_xml
- MainServer.Instance.AddHTTPHandler(String.Format("{0}/freeswitch-config", m_freeSwitchAPIPrefix),
- FreeSwitchConfigHTTPHandler);
-
- MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix),
- FreeSwitchSLVoiceBuddyHTTPHandler);
- }
+ MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix),
+ FreeSwitchSLVoiceBuddyHTTPHandler);
m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm);
- m_FreeSwitchDirectory = new FreeSwitchDirectory();
- m_FreeSwitchDialplan = new FreeSwitchDialplan();
-
m_pluginEnabled = true;
m_WOF = false;
@@ -725,46 +705,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
response["int_response_code"] = 200;
return response;
- /*
-
- OKOklib_session
- * xMj1QJSc7TA-G7XqcW6QXAg==:1290551700:050d35c6fef96f132f780d8039ff7592::
- * xMj1QJSc7TA-G7XqcW6QXAg==:1290551700:050d35c6fef96f132f780d8039ff7592::
- * 1
- * 7449
- * Teravus Ousley
- */
- }
-
- public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request)
- {
- m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}", (string)request["body"]);
-
- Hashtable response = new Hashtable();
- response["str_response_string"] = string.Empty;
- // all the params come as NVPs in the request body
- Hashtable requestBody = parseRequestBody((string) request["body"]);
-
- // is this a dialplan or directory request
- string section = (string) requestBody["section"];
-
- if (section == "directory")
- response = m_FreeSwitchDirectory.HandleDirectoryRequest(m_freeSwitchContext, m_freeSwitchRealm, requestBody);
- else if (section == "dialplan")
- response = m_FreeSwitchDialplan.HandleDialplanRequest(m_freeSwitchContext, m_freeSwitchRealm, requestBody);
- else
- m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section);
-
- // XXX: re-generate dialplan:
- // - conf == region UUID
- // - conf number = region port
- // -> TODO Initialise(): keep track of regions via events
- // re-generate accounts for all avatars
- // -> TODO Initialise(): keep track of avatars via events
- Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
-
- m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler return {0}",normalizeEndLines.Replace(((string)response["str_response_string"]), ""));
- return response;
}
public Hashtable parseRequestBody(string body)