diff --git a/src/mod/languages/mod_managed/freeswitch_managed.cpp b/src/mod/languages/mod_managed/freeswitch_managed.cpp index 2e2a7106df..7206373118 100644 --- a/src/mod/languages/mod_managed/freeswitch_managed.cpp +++ b/src/mod/languages/mod_managed/freeswitch_managed.cpp @@ -34,6 +34,10 @@ #include #include "freeswitch_managed.h" +#ifdef _MANAGED +#pragma unmanaged +#endif + ManagedSession::ManagedSession():CoreSession() { diff --git a/src/mod/languages/mod_managed/managed/Demo.cs b/src/mod/languages/mod_managed/managed/Demo.cs index 22d151476e..910f678e58 100644 --- a/src/mod/languages/mod_managed/managed/Demo.cs +++ b/src/mod/languages/mod_managed/managed/Demo.cs @@ -46,17 +46,31 @@ namespace FreeSWITCH.Demo return true; } - protected override void Run() - { - Session.Answer(); + protected override void Run() { + bool isRecording = false; Session.DtmfReceivedFunction = (d, t) => { + Log.WriteLine(LogLevel.Critical, "RECORDING is {0}", Session.GetVariable("RECORDING")); Log.WriteLine(LogLevel.Info, "Received {0} for {1}.", d, t); - return ""; + + if (isRecording) { + Log.WriteLine(LogLevel.Info, "Recording: [TRUE] Returning crap"); + return "1"; + } else { + Log.WriteLine(LogLevel.Info, "Recording: [FALSE] Returning null"); + return null; + } }; - Log.WriteLine(LogLevel.Info, "Inside AppDemo.Run (args '{0}'); HookState is {1}. Now will collect digits.", Arguments, Session.HookState); - Session.CollectDigits(5000); // Hanging up here will cause an abort and the next line won't be written - Log.WriteLine(LogLevel.Info, "AppDemo is finishing its run and will now hang up."); - Session.Hangup("USER_BUSY"); + Session.StreamFile(@"C:\freeswitch\Debug\sounds\en\us\callie\voicemail\8000\vm-hello.wav", 0); + var fn = @"C:\" + Session.GetHashCode() + ".wav"; + isRecording = true; + Session.SetVariable("RECORDING", "true"); + Session.RecordFile(fn, 600, 500, 3); + isRecording = false; + Session.SetVariable("RECORDING", "false"); + Session.sleep(500); + Log.WriteLine(LogLevel.Info, "WW GROUP: Finished Recording file"); + 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|#"); + Log.WriteLine(LogLevel.Info, "WW GROUP: Message Menu [" + res + "]"); } void hangupHook() diff --git a/src/mod/languages/mod_managed/mod_managed.cpp b/src/mod/languages/mod_managed/mod_managed.cpp index bf22b4f755..b2ad33c016 100644 --- a/src/mod/languages/mod_managed/mod_managed.cpp +++ b/src/mod/languages/mod_managed/mod_managed.cpp @@ -362,6 +362,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_managed_load) return SWITCH_STATUS_SUCCESS; } +#ifdef _MANAGED +#pragma unmanaged +#endif SWITCH_STANDARD_API(managedrun_api_function) { if (switch_strlen_zero(cmd)) {