diff options
Diffstat (limited to 'OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs')
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs | 80 |
1 files changed, 10 insertions, 70 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs index 242bc3f..cceaa9b 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 | |||
96 | private string m_openSimWellKnownHTTPAddress; | 96 | private string m_openSimWellKnownHTTPAddress; |
97 | private string m_freeSwitchContext; | 97 | private string m_freeSwitchContext; |
98 | 98 | ||
99 | private FreeSwitchDirectory m_FreeSwitchDirectory; | ||
100 | private FreeSwitchDialplan m_FreeSwitchDialplan; | ||
101 | |||
102 | private readonly Dictionary<string, string> m_UUIDName = new Dictionary<string, string>(); | 99 | private readonly Dictionary<string, string> m_UUIDName = new Dictionary<string, string>(); |
103 | private Dictionary<string, string> m_ParcelAddress = new Dictionary<string, string>(); | 100 | private Dictionary<string, string> m_ParcelAddress = new Dictionary<string, string>(); |
104 | 101 | ||
@@ -172,41 +169,24 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
172 | // - buddies: viv_buddy.php | 169 | // - buddies: viv_buddy.php |
173 | // - ???: viv_watcher.php | 170 | // - ???: viv_watcher.php |
174 | // - signout: viv_signout.php | 171 | // - signout: viv_signout.php |
175 | if (UseProxy) | 172 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), |
176 | { | 173 | FreeSwitchSLVoiceGetPreloginHTTPHandler); |
177 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/", m_freeSwitchAPIPrefix), | ||
178 | ForwardProxyRequest); | ||
179 | } | ||
180 | else | ||
181 | { | ||
182 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), | ||
183 | FreeSwitchSLVoiceGetPreloginHTTPHandler); | ||
184 | 174 | ||
185 | // RestStreamHandler h = new | 175 | // RestStreamHandler h = new |
186 | // RestStreamHandler("GET", | 176 | // RestStreamHandler("GET", |
187 | // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler); | 177 | // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler); |
188 | // MainServer.Instance.AddStreamHandler(h); | 178 | // MainServer.Instance.AddStreamHandler(h); |
189 | 179 | ||
190 | 180 | ||
191 | 181 | ||
192 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_signin.php", m_freeSwitchAPIPrefix), | 182 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_signin.php", m_freeSwitchAPIPrefix), |
193 | FreeSwitchSLVoiceSigninHTTPHandler); | 183 | FreeSwitchSLVoiceSigninHTTPHandler); |
194 | 184 | ||
195 | // set up http request handlers to provide | 185 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix), |
196 | // on-demand FreeSwitch configuration to | 186 | FreeSwitchSLVoiceBuddyHTTPHandler); |
197 | // FreeSwitch's mod_curl_xml | ||
198 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/freeswitch-config", m_freeSwitchAPIPrefix), | ||
199 | FreeSwitchConfigHTTPHandler); | ||
200 | |||
201 | MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix), | ||
202 | FreeSwitchSLVoiceBuddyHTTPHandler); | ||
203 | } | ||
204 | 187 | ||
205 | m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm); | 188 | m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm); |
206 | 189 | ||
207 | m_FreeSwitchDirectory = new FreeSwitchDirectory(); | ||
208 | m_FreeSwitchDialplan = new FreeSwitchDialplan(); | ||
209 | |||
210 | m_pluginEnabled = true; | 190 | m_pluginEnabled = true; |
211 | m_WOF = false; | 191 | m_WOF = false; |
212 | 192 | ||
@@ -725,46 +705,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
725 | 705 | ||
726 | response["int_response_code"] = 200; | 706 | response["int_response_code"] = 200; |
727 | return response; | 707 | return response; |
728 | /* | ||
729 | <level0> | ||
730 | <status>OK</status><body><status>Ok</status><cookie_name>lib_session</cookie_name> | ||
731 | * <cookie>xMj1QJSc7TA-G7XqcW6QXAg==:1290551700:050d35c6fef96f132f780d8039ff7592::</cookie> | ||
732 | * <auth_token>xMj1QJSc7TA-G7XqcW6QXAg==:1290551700:050d35c6fef96f132f780d8039ff7592::</auth_token> | ||
733 | * <primary>1</primary> | ||
734 | * <account_id>7449</account_id> | ||
735 | * <displayname>Teravus Ousley</displayname></body></level0> | ||
736 | */ | ||
737 | } | ||
738 | |||
739 | public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request) | ||
740 | { | ||
741 | m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}", (string)request["body"]); | ||
742 | |||
743 | Hashtable response = new Hashtable(); | ||
744 | response["str_response_string"] = string.Empty; | ||
745 | // all the params come as NVPs in the request body | ||
746 | Hashtable requestBody = parseRequestBody((string) request["body"]); | ||
747 | |||
748 | // is this a dialplan or directory request | ||
749 | string section = (string) requestBody["section"]; | ||
750 | |||
751 | if (section == "directory") | ||
752 | response = m_FreeSwitchDirectory.HandleDirectoryRequest(m_freeSwitchContext, m_freeSwitchRealm, requestBody); | ||
753 | else if (section == "dialplan") | ||
754 | response = m_FreeSwitchDialplan.HandleDialplanRequest(m_freeSwitchContext, m_freeSwitchRealm, requestBody); | ||
755 | else | ||
756 | m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section); | ||
757 | |||
758 | // XXX: re-generate dialplan: | ||
759 | // - conf == region UUID | ||
760 | // - conf number = region port | ||
761 | // -> TODO Initialise(): keep track of regions via events | ||
762 | // re-generate accounts for all avatars | ||
763 | // -> TODO Initialise(): keep track of avatars via events | ||
764 | Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); | ||
765 | |||
766 | m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler return {0}",normalizeEndLines.Replace(((string)response["str_response_string"]), "")); | ||
767 | return response; | ||
768 | } | 708 | } |
769 | 709 | ||
770 | public Hashtable parseRequestBody(string body) | 710 | public Hashtable parseRequestBody(string body) |