diff --git a/src/mod/languages/mod_managed/managed/ManagedSession.cs b/src/mod/languages/mod_managed/managed/ManagedSession.cs index 2de49d1bdb..d7c88e7c6e 100644 --- a/src/mod/languages/mod_managed/managed/ManagedSession.cs +++ b/src/mod/languages/mod_managed/managed/ManagedSession.cs @@ -47,7 +47,7 @@ namespace FreeSWITCH.Native { // SWITCH_DECLARE(void) InitManagedSession(ManagedSession *session, MonoObject *dtmfDelegate, MonoObject *hangupDelegate) [DllImport("mod_managed.dll", CharSet = CharSet.Ansi, CallingConvention=CallingConvention.Cdecl)] - static extern void InitManagedSession(IntPtr sessionPtr, DtmfCallback dtmfDelegate, Action hangupDelegate); + static extern void InitManagedSession(IntPtr sessionPtr, DtmfCallback dtmfDelegate, CdeclAction hangupDelegate); /// Initializes the native ManagedSession. Must be called after Originate. public void Initialize() @@ -57,11 +57,11 @@ namespace FreeSWITCH.Native // So we don't need to worry about GCHandles and all that.... // Info here: http://blogs.msdn.com/cbrumme/archive/2003/05/06/51385.aspx this._inputCallbackRef = inputCallback; - this._hangupCallback = hangupCallback; - InitManagedSession(ManagedSession.getCPtr(this).Handle, inputCallback, hangupCallback); + this._hangupCallbackRef = hangupCallback; + InitManagedSession(ManagedSession.getCPtr(this).Handle, this._inputCallbackRef, this._hangupCallbackRef); } DtmfCallback _inputCallbackRef; - CdeclAction _hangupCallback; + CdeclAction _hangupCallbackRef; /// Function to execute when this session hangs up. public Action HangupFunction { get; set; }