Hi, I am having a third party VoIP client which exposes API in .NET to communicate with my application. I want to use this client as an endpoint in Freeswitch (like how it is implemented in "mod_skypopen" module), so that calls coming to this client can be handled at Freeswitch and (if required) bridge calls to clients connected to Freeswitch. To implement this, I have written a managed module in which "ILoadNotificationPlugin" is implemented where config (client's interface config) is loaded. When there is an incoming call (ringing state) to the client, I get handle in managed module and trying to establish a session at freeswitch. While doing this I am getting exception as "Attempted to read or write protected memory. This is often an indication that other memory is corrupt." Here is the code that I am using... Could someone guide me if I am doing this correctly. Note: I am following "mod_skypopen" as an example... public static int new_inbound_channel(private_object pobject) { SWIGTYPE_p_switch_core_session session = null; SWIGTYPE_p_switch_channel channel = null; switch_endpoint_interface intf = new switch_endpoint_interface(); intf.interface_name = "NET_interface"; intf.io_routines = io_routines; intf.state_handler = state_handlers; freeswitch.switch_core_set_globals(); Api fsApi = new Api(); String uuid = fsApi.ExecuteString("create_uuid"); try { session = freeswitch.switch_core_session_request_uuid(intf, switch_call_direction_t.SWITCH_CALL_DIRECTION_INBOUND, 0, null, uuid); //I am getting the above issue here.... if (session != null) { freeswitch.switch_core_session_add_stream(session, null); channel = freeswitch.switch_core_session_get_channel(session); if (channel == null) { freeswitch.switch_core_session_destroy_state(session); return 0; } freeswitch.switch_channel_set_variable_name_printf(channel, "waste", "false"); pobject.caller_profile = freeswitch.switch_caller_profile_new(freeswitch.switch_core_session_get_pool(session), "NETClient", "dialplan", "callid_name", "callid_number", null, null, null, null, "mod_netclient", "context", "destination"); if (pobject.caller_profile != null) { freeswitch.switch_channel_set_name(channel, "name"); freeswitch.switch_channel_set_caller_profile(channel, pobject.caller_profile); } freeswitch.switch_channel_set_state_flag(channel, switch_channel_flag_t.CF_GEN_RINGBACK); switch_status_t session_status = freeswitch.switch_core_session_thread_launch(session); if (session_status != switch_status_t.SWITCH_STATUS_SUCCESS) { freeswitch.switch_core_session_destroy_state(session); return 0; } } } catch (Exception exp) { string expstring = exp.Message; } return 0; } Thanks & Regards Suneel