]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Make cpp code as unmanaged as possible
authorMichael Giagnocavo <mgg@giagnocavo.net>
Wed, 22 Oct 2008 22:02:58 +0000 (22:02 +0000)
committerMichael Giagnocavo <mgg@giagnocavo.net>
Wed, 22 Oct 2008 22:02:58 +0000 (22:02 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10118 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/languages/mod_managed/freeswitch_managed.cpp
src/mod/languages/mod_managed/managed/Demo.cs
src/mod/languages/mod_managed/mod_managed.cpp

index 2e2a7106dfd6a8d67ddb9a20168ca87b2a513d65..72063731180a02d5481614ef0a9f41b33935f459 100644 (file)
 #include <switch_cpp.h>\r
 #include "freeswitch_managed.h"\r
 \r
+#ifdef _MANAGED\r
+#pragma unmanaged\r
+#endif\r
+\r
 ManagedSession::ManagedSession():CoreSession() \r
 {\r
 \r
index 22d151476ecac1329425fdc3e739bacbee1473b3..910f678e58eecaebe50f7cc7996f6b203090b34f 100644 (file)
@@ -46,17 +46,31 @@ namespace FreeSWITCH.Demo
             return true;\r
         }\r
 \r
-        protected override void Run()\r
-        {\r
-            Session.Answer();\r
+        protected override void Run() {\r
+            bool isRecording = false;\r
             Session.DtmfReceivedFunction = (d, t) => {\r
+                Log.WriteLine(LogLevel.Critical, "RECORDING is {0}", Session.GetVariable("RECORDING"));\r
                 Log.WriteLine(LogLevel.Info, "Received {0} for {1}.", d, t);\r
-                return "";\r
+\r
+                if (isRecording) {\r
+                    Log.WriteLine(LogLevel.Info, "Recording: [TRUE]  Returning crap");\r
+                    return "1";\r
+                } else {\r
+                    Log.WriteLine(LogLevel.Info, "Recording: [FALSE] Returning null");\r
+                    return null;\r
+                }\r
             };\r
-            Log.WriteLine(LogLevel.Info, "Inside AppDemo.Run (args '{0}'); HookState is {1}. Now will collect digits.", Arguments, Session.HookState);\r
-            Session.CollectDigits(5000); // Hanging up here will cause an abort and the next line won't be written\r
-            Log.WriteLine(LogLevel.Info, "AppDemo is finishing its run and will now hang up.");\r
-            Session.Hangup("USER_BUSY");\r
+            Session.StreamFile(@"C:\freeswitch\Debug\sounds\en\us\callie\voicemail\8000\vm-hello.wav", 0);\r
+            var fn = @"C:\" + Session.GetHashCode() + ".wav";\r
+            isRecording = true;\r
+            Session.SetVariable("RECORDING", "true");\r
+            Session.RecordFile(fn, 600, 500, 3);\r
+            isRecording = false;\r
+            Session.SetVariable("RECORDING", "false");\r
+            Session.sleep(500);\r
+            Log.WriteLine(LogLevel.Info, "WW GROUP: Finished Recording file");\r
+            var res = Session.PlayAndGetDigits(1, 1, 3, 3000, "*", @"C:\freeswitch\libs\sounds\en\us\callie\ivr\8000\ivr-sample_submenu.wav", @"C:\freeswitch\libs\sounds\en\us\callie\ivr\8000\ivr-sample_submenu.wav", "1|2|3|9|#");\r
+            Log.WriteLine(LogLevel.Info, "WW GROUP: Message Menu [" + res + "]");\r
         }\r
         \r
         void hangupHook()\r
index bf22b4f7550fec730e1673212c047808495ab1b9..b2ad33c0169fecf33d69dfe7b71cabd1f79e8d26 100644 (file)
@@ -362,6 +362,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_managed_load)
        return SWITCH_STATUS_SUCCESS;\r
 }\r
 \r
+#ifdef _MANAGED\r
+#pragma unmanaged\r
+#endif\r
 SWITCH_STANDARD_API(managedrun_api_function) \r
 {\r
        if (switch_strlen_zero(cmd)) {\r