]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
vs2010 reswig
authorJeff Lenk <jeff@jefflenk.com>
Fri, 14 Jun 2013 16:45:44 +0000 (11:45 -0500)
committerJeff Lenk <jeff@jefflenk.com>
Fri, 14 Jun 2013 16:45:44 +0000 (11:45 -0500)
src/mod/languages/mod_managed/freeswitch_wrap.2010.cxx
src/mod/languages/mod_managed/managed/swig.2010.cs

index f95dc49f41388ce61a1a592f76448b0109602db4..c37bffb7a1084484ee5c9218bd09db27274afc34 100644 (file)
@@ -1130,6 +1130,26 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_SENSITIVE_DTMF_VARIABLE_get() {
 }\r
 \r
 \r
+SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE_get() {\r
+  char * jresult ;\r
+  char *result = 0 ;\r
+  \r
+  result = (char *)("record_post_process_exec_app");\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_RECORD_POST_PROCESS_EXEC_API_VARIABLE_get() {\r
+  char * jresult ;\r
+  char *result = 0 ;\r
+  \r
+  result = (char *)("record_post_process_exec_api");\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get() {\r
   char * jresult ;\r
   char *result = 0 ;\r
@@ -2806,6 +2826,72 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_SWITCH_GLOBAL_dirs_get() {
 }\r
 \r
 \r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_filenames_conf_name_set(void * jarg1, char * jarg2) {\r
+  switch_filenames *arg1 = (switch_filenames *) 0 ;\r
+  char *arg2 = (char *) 0 ;\r
+  \r
+  arg1 = (switch_filenames *)jarg1; \r
+  arg2 = (char *)jarg2; \r
+  {\r
+    if (arg1->conf_name) delete [] arg1->conf_name;\r
+    if (arg2) {\r
+      arg1->conf_name = (char *) (new char[strlen((const char *)arg2)+1]);\r
+      strcpy((char *)arg1->conf_name, (const char *)arg2);\r
+    } else {\r
+      arg1->conf_name = 0;\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_filenames_conf_name_get(void * jarg1) {\r
+  char * jresult ;\r
+  switch_filenames *arg1 = (switch_filenames *) 0 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (switch_filenames *)jarg1; \r
+  result = (char *) ((arg1)->conf_name);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_filenames() {\r
+  void * jresult ;\r
+  switch_filenames *result = 0 ;\r
+  \r
+  result = (switch_filenames *)new switch_filenames();\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_filenames(void * jarg1) {\r
+  switch_filenames *arg1 = (switch_filenames *) 0 ;\r
+  \r
+  arg1 = (switch_filenames *)jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_SWITCH_GLOBAL_filenames_set(void * jarg1) {\r
+  switch_filenames *arg1 = (switch_filenames *) 0 ;\r
+  \r
+  arg1 = (switch_filenames *)jarg1; \r
+  SWITCH_GLOBAL_filenames = *arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_SWITCH_GLOBAL_filenames_get() {\r
+  void * jresult ;\r
+  switch_filenames *result = 0 ;\r
+  \r
+  result = (switch_filenames *)&SWITCH_GLOBAL_filenames;\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_MAX_STACKS_get() {\r
   int jresult ;\r
   int result;\r
@@ -6162,6 +6248,96 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_app_log(void * jarg1) {
 }\r
 \r
 \r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_func_set(void * jarg1, void * jarg2) {\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  switch_thread_start_t arg2 ;\r
+  switch_thread_start_t *argp2 ;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  argp2 = (switch_thread_start_t *)jarg2; \r
+  if (!argp2) {\r
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_thread_start_t", 0);\r
+    return ;\r
+  }\r
+  arg2 = *argp2; \r
+  if (arg1) (arg1)->func = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_func_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  switch_thread_start_t result;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  result =  ((arg1)->func);\r
+  jresult = new switch_thread_start_t((const switch_thread_start_t &)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_obj_set(void * jarg1, void * jarg2) {\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  void *arg2 = (void *) 0 ;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  arg2 = (void *)jarg2; \r
+  if (arg1) (arg1)->obj = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_obj_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  void *result = 0 ;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  result = (void *) ((arg1)->obj);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_alloc_set(void * jarg1, int jarg2) {\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  int arg2 ;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  arg2 = (int)jarg2; \r
+  if (arg1) (arg1)->alloc = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_thread_data_t_alloc_get(void * jarg1) {\r
+  int jresult ;\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  int result;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  result = (int) ((arg1)->alloc);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_thread_data_t() {\r
+  void * jresult ;\r
+  switch_thread_data_t *result = 0 ;\r
+  \r
+  result = (switch_thread_data_t *)new switch_thread_data_t();\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_thread_data_t(void * jarg1) {\r
+  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+  \r
+  arg1 = (switch_thread_data_t *)jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
 SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_on_set(void * jarg1, void * jarg2) {\r
   switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
   switch_time_t arg2 ;\r
@@ -6241,139 +6417,761 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_switch_hold_record_t_uuid_get(void * jarg1)
   switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
   char *result = 0 ;\r
   \r
-  arg1 = (switch_hold_record_t *)jarg1; \r
-  result = (char *) ((arg1)->uuid);\r
-  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  arg1 = (switch_hold_record_t *)jarg1; \r
+  result = (char *) ((arg1)->uuid);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_next_set(void * jarg1, void * jarg2) {\r
+  switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
+  switch_hold_record_s *arg2 = (switch_hold_record_s *) 0 ;\r
+  \r
+  arg1 = (switch_hold_record_t *)jarg1; \r
+  arg2 = (switch_hold_record_s *)jarg2; \r
+  if (arg1) (arg1)->next = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_next_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
+  switch_hold_record_s *result = 0 ;\r
+  \r
+  arg1 = (switch_hold_record_t *)jarg1; \r
+  result = (switch_hold_record_s *) ((arg1)->next);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_hold_record_t() {\r
+  void * jresult ;\r
+  switch_hold_record_t *result = 0 ;\r
+  \r
+  result = (switch_hold_record_t *)new switch_hold_record_t();\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_hold_record_t(void * jarg1) {\r
+  switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
+  \r
+  arg1 = (switch_hold_record_t *)jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_uuid_set(void * jarg1, char * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  char *arg2 = (char *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (char *)jarg2; \r
+  {\r
+    if (arg1->uuid) delete [] arg1->uuid;\r
+    if (arg2) {\r
+      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);\r
+      strcpy((char *)arg1->uuid, (const char *)arg2);\r
+    } else {\r
+      arg1->uuid = 0;\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_node_t_uuid_get(void * jarg1) {\r
+  char * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (char *) ((arg1)->uuid);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_xml_cdr_set(void * jarg1, void * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_xml_t arg2 = (switch_xml_t) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (switch_xml_t)jarg2; \r
+  if (arg1) (arg1)->xml_cdr = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_xml_cdr_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_xml_t result;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (switch_xml_t) ((arg1)->xml_cdr);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t__event_set(void * jarg1, void * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_event_t *arg2 = (switch_event_t *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (switch_event_t *)jarg2; \r
+  if (arg1) (arg1)->event = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t__event_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_event_t *result = 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (switch_event_t *) ((arg1)->event);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_callstate_set(void * jarg1, int jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_channel_callstate_t arg2 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (switch_channel_callstate_t)jarg2; \r
+  if (arg1) (arg1)->callstate = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_node_t_callstate_get(void * jarg1) {\r
+  int jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_channel_callstate_t result;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (switch_channel_callstate_t) ((arg1)->callstate);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_hold_record_set(void * jarg1, void * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_hold_record_t *arg2 = (switch_hold_record_t *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (switch_hold_record_t *)jarg2; \r
+  if (arg1) (arg1)->hold_record = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_hold_record_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_hold_record_t *result = 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (switch_hold_record_t *) ((arg1)->hold_record);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_hup_profile_set(void * jarg1, void * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (switch_caller_profile_t *)jarg2; \r
+  if (arg1) (arg1)->hup_profile = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_hup_profile_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_caller_profile_t *result = 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (switch_caller_profile_t *) ((arg1)->hup_profile);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_parent_set(void * jarg1, void * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_device_record_s *arg2 = (switch_device_record_s *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (switch_device_record_s *)jarg2; \r
+  if (arg1) (arg1)->parent = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_parent_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  switch_device_record_s *result = 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (switch_device_record_s *) ((arg1)->parent);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_next_set(void * jarg1, void * jarg2) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  arg2 = (device_uuid_node_s *)jarg2; \r
+  if (arg1) (arg1)->next = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_next_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  device_uuid_node_s *result = 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  result = (device_uuid_node_s *) ((arg1)->next);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_node_t() {\r
+  void * jresult ;\r
+  switch_device_node_t *result = 0 ;\r
+  \r
+  result = (switch_device_node_t *)new switch_device_node_t();\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_node_t(void * jarg1) {\r
+  switch_device_node_t *arg1 = (switch_device_node_t *) 0 ;\r
+  \r
+  arg1 = (switch_device_node_t *)jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->total = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->total);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->offhook = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->offhook);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->active = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->active);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->held = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->held);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->hup = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->hup);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->ringing = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->ringing);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_set(void * jarg1, unsigned long jarg2) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t arg2 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  arg2 = (uint32_t)jarg2; \r
+  if (arg1) (arg1)->early = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_get(void * jarg1) {\r
+  unsigned long jresult ;\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  uint32_t result;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  result = (uint32_t) ((arg1)->early);\r
+  jresult = (unsigned long)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_stats_t() {\r
+  void * jresult ;\r
+  switch_device_stats_t *result = 0 ;\r
+  \r
+  result = (switch_device_stats_t *)new switch_device_stats_t();\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_stats_t(void * jarg1) {\r
+  switch_device_stats_t *arg1 = (switch_device_stats_t *) 0 ;\r
+  \r
+  arg1 = (switch_device_stats_t *)jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_device_id_set(void * jarg1, char * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  char *arg2 = (char *) 0 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (char *)jarg2; \r
+  {\r
+    if (arg1->device_id) delete [] arg1->device_id;\r
+    if (arg2) {\r
+      arg1->device_id = (char *) (new char[strlen((const char *)arg2)+1]);\r
+      strcpy((char *)arg1->device_id, (const char *)arg2);\r
+    } else {\r
+      arg1->device_id = 0;\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_record_t_device_id_get(void * jarg1) {\r
+  char * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (char *) ((arg1)->device_id);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_set(void * jarg1, char * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  char *arg2 = (char *) 0 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (char *)jarg2; \r
+  {\r
+    if (arg1->uuid) delete [] arg1->uuid;\r
+    if (arg2) {\r
+      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);\r
+      strcpy((char *)arg1->uuid, (const char *)arg2);\r
+    } else {\r
+      arg1->uuid = 0;\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_record_t_uuid_get(void * jarg1) {\r
+  char * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (char *) ((arg1)->uuid);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_refs_set(void * jarg1, int jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  int arg2 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (int)jarg2; \r
+  if (arg1) (arg1)->refs = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_refs_get(void * jarg1) {\r
+  int jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  int result;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (int) ((arg1)->refs);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_stats_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_device_stats_t *arg2 = (switch_device_stats_t *) 0 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (switch_device_stats_t *)jarg2; \r
+  if (arg1) (arg1)->stats = *arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_stats_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_device_stats_t *result = 0 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (switch_device_stats_t *)& ((arg1)->stats);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_state_set(void * jarg1, int jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_device_state_t arg2 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (switch_device_state_t)jarg2; \r
+  if (arg1) (arg1)->state = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_state_get(void * jarg1) {\r
+  int jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_device_state_t result;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (switch_device_state_t) ((arg1)->state);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_state_set(void * jarg1, int jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_device_state_t arg2 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (switch_device_state_t)jarg2; \r
+  if (arg1) (arg1)->last_state = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_last_state_get(void * jarg1) {\r
+  int jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_device_state_t result;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (switch_device_state_t) ((arg1)->last_state);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_active_start_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_time_t arg2 ;\r
+  switch_time_t *argp2 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  argp2 = (switch_time_t *)jarg2; \r
+  if (!argp2) {\r
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);\r
+    return ;\r
+  }\r
+  arg2 = *argp2; \r
+  if (arg1) (arg1)->active_start = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_active_start_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_time_t result;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result =  ((arg1)->active_start);\r
+  jresult = new switch_time_t((const switch_time_t &)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_active_stop_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_time_t arg2 ;\r
+  switch_time_t *argp2 ;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  argp2 = (switch_time_t *)jarg2; \r
+  if (!argp2) {\r
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);\r
+    return ;\r
+  }\r
+  arg2 = *argp2; \r
+  if (arg1) (arg1)->active_stop = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_active_stop_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_time_t result;\r
+  \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result =  ((arg1)->active_stop);\r
+  jresult = new switch_time_t((const switch_time_t &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_next_set(void * jarg1, void * jarg2) {\r
-  switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
-  switch_hold_record_s *arg2 = (switch_hold_record_s *) 0 ;\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_call_time_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_time_t arg2 ;\r
+  switch_time_t *argp2 ;\r
   \r
-  arg1 = (switch_hold_record_t *)jarg1; \r
-  arg2 = (switch_hold_record_s *)jarg2; \r
-  if (arg1) (arg1)->next = arg2;\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  argp2 = (switch_time_t *)jarg2; \r
+  if (!argp2) {\r
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);\r
+    return ;\r
+  }\r
+  arg2 = *argp2; \r
+  if (arg1) (arg1)->last_call_time = arg2;\r
 }\r
 \r
 \r
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_next_get(void * jarg1) {\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_last_call_time_get(void * jarg1) {\r
   void * jresult ;\r
-  switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
-  switch_hold_record_s *result = 0 ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_time_t result;\r
   \r
-  arg1 = (switch_hold_record_t *)jarg1; \r
-  result = (switch_hold_record_s *) ((arg1)->next);\r
-  jresult = (void *)result\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result =  ((arg1)->last_call_time);\r
+  jresult = new switch_time_t((const switch_time_t &)result)\r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_hold_record_t() {\r
-  void * jresult ;\r
-  switch_hold_record_t *result = 0 ;\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_list_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;\r
   \r
-  result = (switch_hold_record_t *)new switch_hold_record_t();\r
-  jresult = (void *)result\r
-  return jresult;\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (device_uuid_node_s *)jarg2\r
+  if (arg1) (arg1)->uuid_list = arg2;\r
 }\r
 \r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_hold_record_t(void * jarg1) {\r
-  switch_hold_record_t *arg1 = (switch_hold_record_t *) 0 ;\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_uuid_list_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  device_uuid_node_s *result = 0 ;\r
   \r
-  arg1 = (switch_hold_record_t *)jarg1; \r
-  delete arg1;\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (device_uuid_node_s *) ((arg1)->uuid_list);\r
+  jresult = (void *)result; \r
+  return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_func_set(void * jarg1, void * jarg2) {\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
-  switch_thread_start_t arg2 ;\r
-  switch_thread_start_t *argp2 ;\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_tail_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
-  argp2 = (switch_thread_start_t *)jarg2; \r
-  if (!argp2) {\r
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_thread_start_t", 0);\r
-    return ;\r
-  }\r
-  arg2 = *argp2; \r
-  if (arg1) (arg1)->func = arg2;\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (device_uuid_node_s *)jarg2; \r
+  if (arg1) (arg1)->uuid_tail = arg2;\r
 }\r
 \r
 \r
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_func_get(void * jarg1) {\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_uuid_tail_get(void * jarg1) {\r
   void * jresult ;\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
-  switch_thread_start_t result;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  device_uuid_node_s *result = 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
-  result =  ((arg1)->func);\r
-  jresult = new switch_thread_start_t((const switch_thread_start_t &)result)\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (device_uuid_node_s *) ((arg1)->uuid_tail);\r
+  jresult = (void *)result\r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_obj_set(void * jarg1, void * jarg2) {\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
-  void *arg2 = (void *) 0 ;\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_mutex_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
-  arg2 = (void *)jarg2; \r
-  if (arg1) (arg1)->obj = arg2;\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (switch_mutex_t *)jarg2; \r
+  if (arg1) (arg1)->mutex = arg2;\r
 }\r
 \r
 \r
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_obj_get(void * jarg1) {\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_mutex_get(void * jarg1) {\r
   void * jresult ;\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
-  void *result = 0 ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_mutex_t *result = 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
-  result = (void *) ((arg1)->obj);\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (switch_mutex_t *) ((arg1)->mutex);\r
   jresult = (void *)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_alloc_set(void * jarg1, int jarg2) {\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
-  int arg2 ;\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_pool_set(void * jarg1, void * jarg2) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
-  arg2 = (int)jarg2; \r
-  if (arg1) (arg1)->alloc = arg2;\r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  arg2 = (switch_memory_pool_t *)jarg2; \r
+  if (arg1) (arg1)->pool = arg2;\r
 }\r
 \r
 \r
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_thread_data_t_alloc_get(void * jarg1) {\r
-  int jresult ;\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
-  int result;\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_pool_get(void * jarg1) {\r
+  void * jresult ;\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
+  switch_memory_pool_t *result = 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
-  result = (int) ((arg1)->alloc);\r
-  jresult = result; \r
+  arg1 = (switch_device_record_t *)jarg1; \r
+  result = (switch_memory_pool_t *) ((arg1)->pool);\r
+  jresult = (void *)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_thread_data_t() {\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_record_t() {\r
   void * jresult ;\r
-  switch_thread_data_t *result = 0 ;\r
+  switch_device_record_t *result = 0 ;\r
   \r
-  result = (switch_thread_data_t *)new switch_thread_data_t();\r
+  result = (switch_device_record_t *)new switch_device_record_t();\r
   jresult = (void *)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_thread_data_t(void * jarg1) {\r
-  switch_thread_data_t *arg1 = (switch_thread_data_t *) 0 ;\r
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_record_t(void * jarg1) {\r
+  switch_device_record_t *arg1 = (switch_device_record_t *) 0 ;\r
   \r
-  arg1 = (switch_thread_data_t *)jarg1; \r
+  arg1 = (switch_device_record_t *)jarg1; \r
   delete arg1;\r
 }\r
 \r
@@ -7562,6 +8360,24 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_transfer_recordings(void
 }\r
 \r
 \r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_transfer_callback(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {\r
+  int jresult ;\r
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;\r
+  switch_core_session_t *arg2 = (switch_core_session_t *) 0 ;\r
+  switch_media_bug_callback_t arg3 = (switch_media_bug_callback_t) 0 ;\r
+  void *(*arg4)(switch_core_session_t *,void *) = (void *(*)(switch_core_session_t *,void *)) 0 ;\r
+  switch_status_t result;\r
+  \r
+  arg1 = (switch_core_session_t *)jarg1; \r
+  arg2 = (switch_core_session_t *)jarg2; \r
+  arg3 = (switch_media_bug_callback_t)jarg3; \r
+  arg4 = (void *(*)(switch_core_session_t *,void *))jarg4; \r
+  result = (switch_status_t)switch_core_media_bug_transfer_callback(arg1,arg2,arg3,arg4);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_read(void * jarg1, void * jarg2, int jarg3) {\r
   int jresult ;\r
   switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ;\r
@@ -12445,6 +13261,24 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_get_stacksizes(void * jarg1, void
 }\r
 \r
 \r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_gen_encoded_silence(void * jarg1, void * jarg2, void * jarg3) {\r
+  unsigned char *arg1 = (unsigned char *) 0 ;\r
+  switch_codec_implementation_t *arg2 = (switch_codec_implementation_t *) 0 ;\r
+  switch_size_t arg3 ;\r
+  switch_size_t *argp3 ;\r
+  \r
+  arg1 = (unsigned char *)jarg1; \r
+  arg2 = (switch_codec_implementation_t *)jarg2; \r
+  argp3 = (switch_size_t *)jarg3; \r
+  if (!argp3) {\r
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);\r
+    return ;\r
+  }\r
+  arg3 = *argp3; \r
+  switch_core_gen_encoded_silence(arg1,(switch_codec_implementation const *)arg2,arg3);\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_dbtype() {\r
   int jresult ;\r
   switch_cache_db_handle_type_t result;\r
@@ -15158,6 +15992,20 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_switch_util_quote_shell_arg(char * jarg1) {
 }\r
 \r
 \r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_util_quote_shell_arg_pool(char * jarg1, void * jarg2) {\r
+  char * jresult ;\r
+  char *arg1 = (char *) 0 ;\r
+  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (char *)jarg1; \r
+  arg2 = (switch_memory_pool_t *)jarg2; \r
+  result = (char *)switch_util_quote_shell_arg_pool((char const *)arg1,arg2);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT char * SWIGSTDCALL CSharp_switch_url_encode(char * jarg1, char * jarg2, unsigned long jarg3) {\r
   char * jresult ;\r
   char *arg1 = (char *) 0 ;\r
@@ -26675,6 +27523,22 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_channel_del_variable_prefix(v
 }\r
 \r
 \r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_transfer_variable_prefix(void * jarg1, void * jarg2, char * jarg3) {\r
+  int jresult ;\r
+  switch_channel_t *arg1 = (switch_channel_t *) 0 ;\r
+  switch_channel_t *arg2 = (switch_channel_t *) 0 ;\r
+  char *arg3 = (char *) 0 ;\r
+  switch_status_t result;\r
+  \r
+  arg1 = (switch_channel_t *)jarg1; \r
+  arg2 = (switch_channel_t *)jarg2; \r
+  arg3 = (char *)jarg3; \r
+  result = (switch_status_t)switch_channel_transfer_variable_prefix(arg1,arg2,(char const *)arg3);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_export_variable_var_check(void * jarg1, char * jarg2, char * jarg3, char * jarg4, int jarg5) {\r
   int jresult ;\r
   switch_channel_t *arg1 = (switch_channel_t *) 0 ;\r
@@ -27854,6 +28718,109 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_state_thread_trylock(void * jar
 }\r
 \r
 \r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_handle_cause(void * jarg1, int jarg2) {\r
+  switch_channel_t *arg1 = (switch_channel_t *) 0 ;\r
+  switch_call_cause_t arg2 ;\r
+  \r
+  arg1 = (switch_channel_t *)jarg1; \r
+  arg2 = (switch_call_cause_t)jarg2; \r
+  switch_channel_handle_cause(arg1,arg2);\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_global_init(void * jarg1) {\r
+  switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;\r
+  \r
+  arg1 = (switch_memory_pool_t *)jarg1; \r
+  switch_channel_global_init(arg1);\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_global_uninit() {\r
+  switch_channel_global_uninit();\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_channel_set_device_id(void * jarg1, char * jarg2) {\r
+  char * jresult ;\r
+  switch_channel_t *arg1 = (switch_channel_t *) 0 ;\r
+  char *arg2 = (char *) 0 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (switch_channel_t *)jarg1; \r
+  arg2 = (char *)jarg2; \r
+  result = (char *)switch_channel_set_device_id(arg1,(char const *)arg2);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_clear_device_record(void * jarg1) {\r
+  switch_channel_t *arg1 = (switch_channel_t *) 0 ;\r
+  \r
+  arg1 = (switch_channel_t *)jarg1; \r
+  switch_channel_clear_device_record(arg1);\r
+}\r
+\r
+\r
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_channel_get_device_record(void * jarg1) {\r
+  void * jresult ;\r
+  switch_channel_t *arg1 = (switch_channel_t *) 0 ;\r
+  switch_device_record_t *result = 0 ;\r
+  \r
+  arg1 = (switch_channel_t *)jarg1; \r
+  result = (switch_device_record_t *)switch_channel_get_device_record(arg1);\r
+  jresult = (void *)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_release_device_record(void * jarg1) {\r
+  switch_device_record_t **arg1 = (switch_device_record_t **) 0 ;\r
+  \r
+  arg1 = (switch_device_record_t **)jarg1; \r
+  switch_channel_release_device_record(arg1);\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_bind_device_state_handler(void * jarg1, void * jarg2) {\r
+  int jresult ;\r
+  switch_device_state_function_t arg1 = (switch_device_state_function_t) 0 ;\r
+  void *arg2 = (void *) 0 ;\r
+  switch_status_t result;\r
+  \r
+  arg1 = (switch_device_state_function_t)jarg1; \r
+  arg2 = (void *)jarg2; \r
+  result = (switch_status_t)switch_channel_bind_device_state_handler(arg1,arg2);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_unbind_device_state_handler(void * jarg1) {\r
+  int jresult ;\r
+  switch_device_state_function_t arg1 = (switch_device_state_function_t) 0 ;\r
+  switch_status_t result;\r
+  \r
+  arg1 = (switch_device_state_function_t)jarg1; \r
+  result = (switch_status_t)switch_channel_unbind_device_state_handler(arg1);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_channel_device_state2str(int jarg1) {\r
+  char * jresult ;\r
+  switch_device_state_t arg1 ;\r
+  char *result = 0 ;\r
+  \r
+  arg1 = (switch_device_state_t)jarg1; \r
+  result = (char *)switch_channel_device_state2str(arg1);\r
+  jresult = SWIG_csharp_string_callback((const char *)result); \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_switch_buffer_create(void * jarg1, void * jarg2, void * jarg3) {\r
   int jresult ;\r
   switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;\r
@@ -30842,6 +31809,20 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_record_session(void * jarg1, char *
 }\r
 \r
 \r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_transfer_recordings(void * jarg1, void * jarg2) {\r
+  int jresult ;\r
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;\r
+  switch_core_session_t *arg2 = (switch_core_session_t *) 0 ;\r
+  switch_status_t result;\r
+  \r
+  arg1 = (switch_core_session_t *)jarg1; \r
+  arg2 = (switch_core_session_t *)jarg2; \r
+  result = (switch_status_t)switch_ivr_transfer_recordings(arg1,arg2);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_eavesdrop_pop_eavesdropper(void * jarg1, void * jarg2) {\r
   int jresult ;\r
   switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;\r
@@ -32646,6 +33627,22 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_blind_transfer_ack(void * jarg1, in
 }\r
 \r
 \r
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_record_session_mask(void * jarg1, char * jarg2, int jarg3) {\r
+  int jresult ;\r
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;\r
+  char *arg2 = (char *) 0 ;\r
+  switch_bool_t arg3 ;\r
+  switch_status_t result;\r
+  \r
+  arg1 = (switch_core_session_t *)jarg1; \r
+  arg2 = (char *)jarg2; \r
+  arg3 = (switch_bool_t)jarg3; \r
+  result = (switch_status_t)switch_ivr_record_session_mask(arg1,(char const *)arg2,arg3);\r
+  jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_RTP_MAX_BUF_LEN_get() {\r
   int jresult ;\r
   int result;\r
index 189cb6475abe0dc144a554aaa02d25a6b3b4447f..44e6f034b988259b00da888b0af376bd74038358 100644 (file)
@@ -1035,6 +1035,17 @@ public class freeswitch {
     } \r
   }\r
 \r
+  public static switch_filenames SWITCH_GLOBAL_filenames {\r
+    set {\r
+      freeswitchPINVOKE.SWITCH_GLOBAL_filenames_set(switch_filenames.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.SWITCH_GLOBAL_filenames_get();\r
+      switch_filenames ret = (cPtr == IntPtr.Zero) ? null : new switch_filenames(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
   public static int switch_core_db_close(SWIGTYPE_p_sqlite3 db) {\r
     int ret = freeswitchPINVOKE.switch_core_db_close(SWIGTYPE_p_sqlite3.getCPtr(db));\r
     return ret;\r
@@ -1347,6 +1358,11 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static switch_status_t switch_core_media_bug_transfer_callback(SWIGTYPE_p_switch_core_session orig_session, SWIGTYPE_p_switch_core_session new_session, SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t callback, SWIGTYPE_p_f_p_switch_core_session_p_void__p_void user_data_dup_func) {\r
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_core_media_bug_transfer_callback(SWIGTYPE_p_switch_core_session.getCPtr(orig_session), SWIGTYPE_p_switch_core_session.getCPtr(new_session), SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t.getCPtr(callback), SWIGTYPE_p_f_p_switch_core_session_p_void__p_void.getCPtr(user_data_dup_func));\r
+    return ret;\r
+  }\r
+\r
   public static switch_status_t switch_core_media_bug_read(SWIGTYPE_p_switch_media_bug bug, switch_frame frame, switch_bool_t fill) {\r
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_core_media_bug_read(SWIGTYPE_p_switch_media_bug.getCPtr(bug), switch_frame.getCPtr(frame), (int)fill);\r
     return ret;\r
@@ -3007,6 +3023,11 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static void switch_core_gen_encoded_silence(SWIGTYPE_p_unsigned_char data, switch_codec_implementation read_impl, SWIGTYPE_p_switch_size_t len) {\r
+    freeswitchPINVOKE.switch_core_gen_encoded_silence(SWIGTYPE_p_unsigned_char.getCPtr(data), switch_codec_implementation.getCPtr(read_impl), SWIGTYPE_p_switch_size_t.getCPtr(len));\r
+    if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+  }\r
+\r
   public static switch_cache_db_handle_type_t switch_core_dbtype() {\r
     switch_cache_db_handle_type_t ret = (switch_cache_db_handle_type_t)freeswitchPINVOKE.switch_core_dbtype();\r
     return ret;\r
@@ -3776,6 +3797,11 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static string switch_util_quote_shell_arg_pool(string arg0, SWIGTYPE_p_apr_pool_t pool) {\r
+    string ret = freeswitchPINVOKE.switch_util_quote_shell_arg_pool(arg0, SWIGTYPE_p_apr_pool_t.getCPtr(pool));\r
+    return ret;\r
+  }\r
+\r
   public static string switch_url_encode(string url, string buf, uint len) {\r
     string ret = freeswitchPINVOKE.switch_url_encode(url, buf, len);\r
     return ret;\r
@@ -4149,6 +4175,11 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static switch_status_t switch_channel_transfer_variable_prefix(SWIGTYPE_p_switch_channel orig_channel, SWIGTYPE_p_switch_channel new_channel, string prefix) {\r
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_transfer_variable_prefix(SWIGTYPE_p_switch_channel.getCPtr(orig_channel), SWIGTYPE_p_switch_channel.getCPtr(new_channel), prefix);\r
+    return ret;\r
+  }\r
+\r
   public static switch_status_t switch_channel_export_variable_var_check(SWIGTYPE_p_switch_channel channel, string varname, string val, string export_varname, switch_bool_t var_check) {\r
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_export_variable_var_check(SWIGTYPE_p_switch_channel.getCPtr(channel), varname, val, export_varname, (int)var_check);\r
     return ret;\r
@@ -4584,6 +4615,52 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static void switch_channel_handle_cause(SWIGTYPE_p_switch_channel channel, switch_call_cause_t cause) {\r
+    freeswitchPINVOKE.switch_channel_handle_cause(SWIGTYPE_p_switch_channel.getCPtr(channel), (int)cause);\r
+  }\r
+\r
+  public static void switch_channel_global_init(SWIGTYPE_p_apr_pool_t pool) {\r
+    freeswitchPINVOKE.switch_channel_global_init(SWIGTYPE_p_apr_pool_t.getCPtr(pool));\r
+  }\r
+\r
+  public static void switch_channel_global_uninit() {\r
+    freeswitchPINVOKE.switch_channel_global_uninit();\r
+  }\r
+\r
+  public static string switch_channel_set_device_id(SWIGTYPE_p_switch_channel channel, string device_id) {\r
+    string ret = freeswitchPINVOKE.switch_channel_set_device_id(SWIGTYPE_p_switch_channel.getCPtr(channel), device_id);\r
+    return ret;\r
+  }\r
+\r
+  public static void switch_channel_clear_device_record(SWIGTYPE_p_switch_channel channel) {\r
+    freeswitchPINVOKE.switch_channel_clear_device_record(SWIGTYPE_p_switch_channel.getCPtr(channel));\r
+  }\r
+\r
+  public static switch_device_record_t switch_channel_get_device_record(SWIGTYPE_p_switch_channel channel) {\r
+    IntPtr cPtr = freeswitchPINVOKE.switch_channel_get_device_record(SWIGTYPE_p_switch_channel.getCPtr(channel));\r
+    switch_device_record_t ret = (cPtr == IntPtr.Zero) ? null : new switch_device_record_t(cPtr, false);\r
+    return ret;\r
+  }\r
+\r
+  public static void switch_channel_release_device_record(SWIGTYPE_p_p_switch_device_record_s dcdrp) {\r
+    freeswitchPINVOKE.switch_channel_release_device_record(SWIGTYPE_p_p_switch_device_record_s.getCPtr(dcdrp));\r
+  }\r
+\r
+  public static switch_status_t switch_channel_bind_device_state_handler(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void function, SWIGTYPE_p_void user_data) {\r
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_bind_device_state_handler(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void.getCPtr(function), SWIGTYPE_p_void.getCPtr(user_data));\r
+    return ret;\r
+  }\r
+\r
+  public static switch_status_t switch_channel_unbind_device_state_handler(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void function) {\r
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_unbind_device_state_handler(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void.getCPtr(function));\r
+    return ret;\r
+  }\r
+\r
+  public static string switch_channel_device_state2str(switch_device_state_t device_state) {\r
+    string ret = freeswitchPINVOKE.switch_channel_device_state2str((int)device_state);\r
+    return ret;\r
+  }\r
+\r
   public static switch_status_t switch_buffer_create(SWIGTYPE_p_apr_pool_t pool, SWIGTYPE_p_p_switch_buffer buffer, SWIGTYPE_p_switch_size_t max_len) {\r
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_buffer_create(SWIGTYPE_p_apr_pool_t.getCPtr(pool), SWIGTYPE_p_p_switch_buffer.getCPtr(buffer), SWIGTYPE_p_switch_size_t.getCPtr(max_len));\r
     if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
@@ -5110,6 +5187,11 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static switch_status_t switch_ivr_transfer_recordings(SWIGTYPE_p_switch_core_session orig_session, SWIGTYPE_p_switch_core_session new_session) {\r
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_ivr_transfer_recordings(SWIGTYPE_p_switch_core_session.getCPtr(orig_session), SWIGTYPE_p_switch_core_session.getCPtr(new_session));\r
+    return ret;\r
+  }\r
+\r
   public static switch_status_t switch_ivr_eavesdrop_pop_eavesdropper(SWIGTYPE_p_switch_core_session session, SWIGTYPE_p_p_switch_core_session sessionp) {\r
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_ivr_eavesdrop_pop_eavesdropper(SWIGTYPE_p_switch_core_session.getCPtr(session), SWIGTYPE_p_p_switch_core_session.getCPtr(sessionp));\r
     return ret;\r
@@ -5657,6 +5739,11 @@ public class freeswitch {
     return ret;\r
   }\r
 \r
+  public static switch_status_t switch_ivr_record_session_mask(SWIGTYPE_p_switch_core_session session, string file, switch_bool_t on) {\r
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_ivr_record_session_mask(SWIGTYPE_p_switch_core_session.getCPtr(session), file, (int)on);\r
+    return ret;\r
+  }\r
+\r
   public static switch_status_t switch_rtp_add_crypto_key(SWIGTYPE_p_switch_rtp rtp_session, switch_rtp_crypto_direction_t direction, uint index, switch_rtp_crypto_key_type_t type, SWIGTYPE_p_unsigned_char key, SWIGTYPE_p_switch_size_t keylen) {\r
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_rtp_add_crypto_key(SWIGTYPE_p_switch_rtp.getCPtr(rtp_session), (int)direction, index, (int)type, SWIGTYPE_p_unsigned_char.getCPtr(key), SWIGTYPE_p_switch_size_t.getCPtr(keylen));\r
     if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
@@ -6614,6 +6701,8 @@ public class freeswitch {
   public static readonly string SWITCH_TRANSFER_HISTORY_VARIABLE = freeswitchPINVOKE.SWITCH_TRANSFER_HISTORY_VARIABLE_get();\r
   public static readonly string SWITCH_TRANSFER_SOURCE_VARIABLE = freeswitchPINVOKE.SWITCH_TRANSFER_SOURCE_VARIABLE_get();\r
   public static readonly string SWITCH_SENSITIVE_DTMF_VARIABLE = freeswitchPINVOKE.SWITCH_SENSITIVE_DTMF_VARIABLE_get();\r
+  public static readonly string SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE = freeswitchPINVOKE.SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE_get();\r
+  public static readonly string SWITCH_RECORD_POST_PROCESS_EXEC_API_VARIABLE = freeswitchPINVOKE.SWITCH_RECORD_POST_PROCESS_EXEC_API_VARIABLE_get();\r
   public static readonly string SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get();\r
   public static readonly string SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE_get();\r
   public static readonly string SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE_get();\r
@@ -7199,6 +7288,12 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_SENSITIVE_DTMF_VARIABLE_get")]\r
   public static extern string SWITCH_SENSITIVE_DTMF_VARIABLE_get();\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE_get")]\r
+  public static extern string SWITCH_RECORD_POST_PROCESS_EXEC_APP_VARIABLE_get();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_RECORD_POST_PROCESS_EXEC_API_VARIABLE_get")]\r
+  public static extern string SWITCH_RECORD_POST_PROCESS_EXEC_API_VARIABLE_get();\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get")]\r
   public static extern string SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get();\r
 \r
@@ -7649,6 +7744,24 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_GLOBAL_dirs_get")]\r
   public static extern IntPtr SWITCH_GLOBAL_dirs_get();\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_filenames_conf_name_set")]\r
+  public static extern void switch_filenames_conf_name_set(HandleRef jarg1, string jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_filenames_conf_name_get")]\r
+  public static extern string switch_filenames_conf_name_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_filenames")]\r
+  public static extern IntPtr new_switch_filenames();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_filenames")]\r
+  public static extern void delete_switch_filenames(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_GLOBAL_filenames_set")]\r
+  public static extern void SWITCH_GLOBAL_filenames_set(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_GLOBAL_filenames_get")]\r
+  public static extern IntPtr SWITCH_GLOBAL_filenames_get();\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_MAX_STACKS_get")]\r
   public static extern int SWITCH_MAX_STACKS_get();\r
 \r
@@ -8519,6 +8632,30 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_app_log")]\r
   public static extern void delete_switch_app_log(HandleRef jarg1);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_func_set")]\r
+  public static extern void switch_thread_data_t_func_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_func_get")]\r
+  public static extern IntPtr switch_thread_data_t_func_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_obj_set")]\r
+  public static extern void switch_thread_data_t_obj_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_obj_get")]\r
+  public static extern IntPtr switch_thread_data_t_obj_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_alloc_set")]\r
+  public static extern void switch_thread_data_t_alloc_set(HandleRef jarg1, int jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_alloc_get")]\r
+  public static extern int switch_thread_data_t_alloc_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_thread_data_t")]\r
+  public static extern IntPtr new_switch_thread_data_t();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_thread_data_t")]\r
+  public static extern void delete_switch_thread_data_t(HandleRef jarg1);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_hold_record_t_on_set")]\r
   public static extern void switch_hold_record_t_on_set(HandleRef jarg1, HandleRef jarg2);\r
 \r
@@ -8549,29 +8686,191 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_hold_record_t")]\r
   public static extern void delete_switch_hold_record_t(HandleRef jarg1);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_func_set")]\r
-  public static extern void switch_thread_data_t_func_set(HandleRef jarg1, HandleRef jarg2);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_uuid_set")]\r
+  public static extern void switch_device_node_t_uuid_set(HandleRef jarg1, string jarg2);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_func_get")]\r
-  public static extern IntPtr switch_thread_data_t_func_get(HandleRef jarg1);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_uuid_get")]\r
+  public static extern string switch_device_node_t_uuid_get(HandleRef jarg1);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_obj_set")]\r
-  public static extern void switch_thread_data_t_obj_set(HandleRef jarg1, HandleRef jarg2);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_xml_cdr_set")]\r
+  public static extern void switch_device_node_t_xml_cdr_set(HandleRef jarg1, HandleRef jarg2);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_obj_get")]\r
-  public static extern IntPtr switch_thread_data_t_obj_get(HandleRef jarg1);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_xml_cdr_get")]\r
+  public static extern IntPtr switch_device_node_t_xml_cdr_get(HandleRef jarg1);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_alloc_set")]\r
-  public static extern void switch_thread_data_t_alloc_set(HandleRef jarg1, int jarg2);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t__event_set")]\r
+  public static extern void switch_device_node_t__event_set(HandleRef jarg1, HandleRef jarg2);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_thread_data_t_alloc_get")]\r
-  public static extern int switch_thread_data_t_alloc_get(HandleRef jarg1);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t__event_get")]\r
+  public static extern IntPtr switch_device_node_t__event_get(HandleRef jarg1);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_thread_data_t")]\r
-  public static extern IntPtr new_switch_thread_data_t();\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_callstate_set")]\r
+  public static extern void switch_device_node_t_callstate_set(HandleRef jarg1, int jarg2);\r
 \r
-  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_thread_data_t")]\r
-  public static extern void delete_switch_thread_data_t(HandleRef jarg1);\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_callstate_get")]\r
+  public static extern int switch_device_node_t_callstate_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_hold_record_set")]\r
+  public static extern void switch_device_node_t_hold_record_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_hold_record_get")]\r
+  public static extern IntPtr switch_device_node_t_hold_record_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_hup_profile_set")]\r
+  public static extern void switch_device_node_t_hup_profile_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_hup_profile_get")]\r
+  public static extern IntPtr switch_device_node_t_hup_profile_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_parent_set")]\r
+  public static extern void switch_device_node_t_parent_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_parent_get")]\r
+  public static extern IntPtr switch_device_node_t_parent_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_next_set")]\r
+  public static extern void switch_device_node_t_next_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_node_t_next_get")]\r
+  public static extern IntPtr switch_device_node_t_next_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_device_node_t")]\r
+  public static extern IntPtr new_switch_device_node_t();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_device_node_t")]\r
+  public static extern void delete_switch_device_node_t(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_total_set")]\r
+  public static extern void switch_device_stats_t_total_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_total_get")]\r
+  public static extern uint switch_device_stats_t_total_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_offhook_set")]\r
+  public static extern void switch_device_stats_t_offhook_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_offhook_get")]\r
+  public static extern uint switch_device_stats_t_offhook_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_active_set")]\r
+  public static extern void switch_device_stats_t_active_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_active_get")]\r
+  public static extern uint switch_device_stats_t_active_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_held_set")]\r
+  public static extern void switch_device_stats_t_held_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_held_get")]\r
+  public static extern uint switch_device_stats_t_held_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_hup_set")]\r
+  public static extern void switch_device_stats_t_hup_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_hup_get")]\r
+  public static extern uint switch_device_stats_t_hup_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_ringing_set")]\r
+  public static extern void switch_device_stats_t_ringing_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_ringing_get")]\r
+  public static extern uint switch_device_stats_t_ringing_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_early_set")]\r
+  public static extern void switch_device_stats_t_early_set(HandleRef jarg1, uint jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_stats_t_early_get")]\r
+  public static extern uint switch_device_stats_t_early_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_device_stats_t")]\r
+  public static extern IntPtr new_switch_device_stats_t();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_device_stats_t")]\r
+  public static extern void delete_switch_device_stats_t(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_device_id_set")]\r
+  public static extern void switch_device_record_t_device_id_set(HandleRef jarg1, string jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_device_id_get")]\r
+  public static extern string switch_device_record_t_device_id_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_uuid_set")]\r
+  public static extern void switch_device_record_t_uuid_set(HandleRef jarg1, string jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_uuid_get")]\r
+  public static extern string switch_device_record_t_uuid_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_refs_set")]\r
+  public static extern void switch_device_record_t_refs_set(HandleRef jarg1, int jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_refs_get")]\r
+  public static extern int switch_device_record_t_refs_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_stats_set")]\r
+  public static extern void switch_device_record_t_stats_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_stats_get")]\r
+  public static extern IntPtr switch_device_record_t_stats_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_state_set")]\r
+  public static extern void switch_device_record_t_state_set(HandleRef jarg1, int jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_state_get")]\r
+  public static extern int switch_device_record_t_state_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_last_state_set")]\r
+  public static extern void switch_device_record_t_last_state_set(HandleRef jarg1, int jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_last_state_get")]\r
+  public static extern int switch_device_record_t_last_state_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_active_start_set")]\r
+  public static extern void switch_device_record_t_active_start_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_active_start_get")]\r
+  public static extern IntPtr switch_device_record_t_active_start_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_active_stop_set")]\r
+  public static extern void switch_device_record_t_active_stop_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_active_stop_get")]\r
+  public static extern IntPtr switch_device_record_t_active_stop_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_last_call_time_set")]\r
+  public static extern void switch_device_record_t_last_call_time_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_last_call_time_get")]\r
+  public static extern IntPtr switch_device_record_t_last_call_time_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_uuid_list_set")]\r
+  public static extern void switch_device_record_t_uuid_list_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_uuid_list_get")]\r
+  public static extern IntPtr switch_device_record_t_uuid_list_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_uuid_tail_set")]\r
+  public static extern void switch_device_record_t_uuid_tail_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_uuid_tail_get")]\r
+  public static extern IntPtr switch_device_record_t_uuid_tail_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_mutex_set")]\r
+  public static extern void switch_device_record_t_mutex_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_mutex_get")]\r
+  public static extern IntPtr switch_device_record_t_mutex_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_pool_set")]\r
+  public static extern void switch_device_record_t_pool_set(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_device_record_t_pool_get")]\r
+  public static extern IntPtr switch_device_record_t_pool_get(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_device_record_t")]\r
+  public static extern IntPtr new_switch_device_record_t();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_device_record_t")]\r
+  public static extern void delete_switch_device_record_t(HandleRef jarg1);\r
 \r
   [DllImport("mod_managed", EntryPoint="CSharp_DTLS_SRTP_FNAME_get")]\r
   public static extern string DTLS_SRTP_FNAME_get();\r
@@ -8861,6 +9160,9 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_transfer_recordings")]\r
   public static extern int switch_core_media_bug_transfer_recordings(HandleRef jarg1, HandleRef jarg2);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_transfer_callback")]\r
+  public static extern int switch_core_media_bug_transfer_callback(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, HandleRef jarg4);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_read")]\r
   public static extern int switch_core_media_bug_read(HandleRef jarg1, HandleRef jarg2, int jarg3);\r
 \r
@@ -9971,6 +10273,9 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_get_stacksizes")]\r
   public static extern int switch_core_get_stacksizes(HandleRef jarg1, HandleRef jarg2);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_core_gen_encoded_silence")]\r
+  public static extern void switch_core_gen_encoded_silence(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_dbtype")]\r
   public static extern int switch_core_dbtype();\r
 \r
@@ -10571,6 +10876,9 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_util_quote_shell_arg")]\r
   public static extern string switch_util_quote_shell_arg(string jarg1);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_util_quote_shell_arg_pool")]\r
+  public static extern string switch_util_quote_shell_arg_pool(string jarg1, HandleRef jarg2);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_url_encode")]\r
   public static extern string switch_url_encode(string jarg1, string jarg2, uint jarg3);\r
 \r
@@ -13490,6 +13798,9 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_del_variable_prefix")]\r
   public static extern uint switch_channel_del_variable_prefix(HandleRef jarg1, string jarg2);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_transfer_variable_prefix")]\r
+  public static extern int switch_channel_transfer_variable_prefix(HandleRef jarg1, HandleRef jarg2, string jarg3);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_export_variable_var_check")]\r
   public static extern int switch_channel_export_variable_var_check(HandleRef jarg1, string jarg2, string jarg3, string jarg4, int jarg5);\r
 \r
@@ -13766,6 +14077,36 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_state_thread_trylock")]\r
   public static extern int switch_channel_state_thread_trylock(HandleRef jarg1);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_handle_cause")]\r
+  public static extern void switch_channel_handle_cause(HandleRef jarg1, int jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_global_init")]\r
+  public static extern void switch_channel_global_init(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_global_uninit")]\r
+  public static extern void switch_channel_global_uninit();\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_set_device_id")]\r
+  public static extern string switch_channel_set_device_id(HandleRef jarg1, string jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_clear_device_record")]\r
+  public static extern void switch_channel_clear_device_record(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_get_device_record")]\r
+  public static extern IntPtr switch_channel_get_device_record(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_release_device_record")]\r
+  public static extern void switch_channel_release_device_record(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_bind_device_state_handler")]\r
+  public static extern int switch_channel_bind_device_state_handler(HandleRef jarg1, HandleRef jarg2);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_unbind_device_state_handler")]\r
+  public static extern int switch_channel_unbind_device_state_handler(HandleRef jarg1);\r
+\r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_device_state2str")]\r
+  public static extern string switch_channel_device_state2str(int jarg1);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_buffer_create")]\r
   public static extern int switch_buffer_create(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3);\r
 \r
@@ -14423,6 +14764,9 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_record_session")]\r
   public static extern int switch_ivr_record_session(HandleRef jarg1, string jarg2, uint jarg3, HandleRef jarg4);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_transfer_recordings")]\r
+  public static extern int switch_ivr_transfer_recordings(HandleRef jarg1, HandleRef jarg2);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_eavesdrop_pop_eavesdropper")]\r
   public static extern int switch_ivr_eavesdrop_pop_eavesdropper(HandleRef jarg1, HandleRef jarg2);\r
 \r
@@ -14753,6 +15097,9 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_blind_transfer_ack")]\r
   public static extern int switch_ivr_blind_transfer_ack(HandleRef jarg1, int jarg2);\r
 \r
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_record_session_mask")]\r
+  public static extern int switch_ivr_record_session_mask(HandleRef jarg1, string jarg2, int jarg3);\r
+\r
   [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_RTP_MAX_BUF_LEN_get")]\r
   public static extern int SWITCH_RTP_MAX_BUF_LEN_get();\r
 \r
@@ -18027,6 +18374,36 @@ namespace FreeSWITCH.Native {
 using System;\r
 using System.Runtime.InteropServices;\r
 \r
+public class SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void {\r
+  private HandleRef swigCPtr;\r
+\r
+  internal SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void(IntPtr cPtr, bool futureUse) {\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  protected SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void() {\r
+    swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
 public class SWIGTYPE_p_f_p_switch_core_session_enum_switch_media_type_t__p_stfu_instance_t {\r
   private HandleRef swigCPtr;\r
 \r
@@ -18567,6 +18944,36 @@ namespace FreeSWITCH.Native {
 using System;\r
 using System.Runtime.InteropServices;\r
 \r
+public class SWIGTYPE_p_f_p_switch_core_session_p_void__p_void {\r
+  private HandleRef swigCPtr;\r
+\r
+  internal SWIGTYPE_p_f_p_switch_core_session_p_void__p_void(IntPtr cPtr, bool futureUse) {\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  protected SWIGTYPE_p_f_p_switch_core_session_p_void__p_void() {\r
+    swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_void__p_void obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
 public class SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension {\r
   private HandleRef swigCPtr;\r
 \r
@@ -20487,6 +20894,36 @@ namespace FreeSWITCH.Native {
 using System;\r
 using System.Runtime.InteropServices;\r
 \r
+public class SWIGTYPE_p_p_switch_device_record_s {\r
+  private HandleRef swigCPtr;\r
+\r
+  internal SWIGTYPE_p_p_switch_device_record_s(IntPtr cPtr, bool futureUse) {\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  protected SWIGTYPE_p_p_switch_device_record_s() {\r
+    swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_device_record_s obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
 public class SWIGTYPE_p_p_switch_event {\r
   private HandleRef swigCPtr;\r
 \r
@@ -25235,7 +25672,8 @@ public enum switch_channel_callstate_t {
   CCS_EARLY,\r
   CCS_ACTIVE,\r
   CCS_HELD,\r
-  CCS_HANGUP\r
+  CCS_HANGUP,\r
+  CCS_UNHOLD\r
 }\r
 \r
 }\r
@@ -25347,6 +25785,8 @@ public enum switch_channel_flag_t {
   CF_ZRTP_PASSTHRU,\r
   CF_ZRTP_HASH,\r
   CF_CHANNEL_SWAP,\r
+  CF_DEVICE_LEG,\r
+  CF_FINAL_DEVICE_LEG,\r
   CF_PICKUP,\r
   CF_CONFIRM_BLIND_TRANSFER,\r
   CF_NO_PRESENCE,\r
@@ -25360,7 +25800,6 @@ public enum switch_channel_flag_t {
   CF_MEDIA_TRANS,\r
   CF_HOLD_ON_BRIDGE,\r
   CF_SECURE,\r
-  CF_CRYPTO_RECOVER,\r
   CF_LIBERAL_DTMF,\r
   CF_SLA_BARGE,\r
   CF_SLA_BARGING,\r
@@ -27308,7 +27747,7 @@ public enum switch_core_session_message_types_t {
   SWITCH_MESSAGE_INDICATE_REQUEST_IMAGE_MEDIA,\r
   SWITCH_MESSAGE_INDICATE_UUID_CHANGE,\r
   SWITCH_MESSAGE_INDICATE_SIMPLIFY,\r
-  SWITCH_MESSAGE_INDICATE_DEBUG_MEDIA,
+  SWITCH_MESSAGE_INDICATE_DEBUG_MEDIA,\r
   SWITCH_MESSAGE_INDICATE_PROXY_MEDIA,\r
   SWITCH_MESSAGE_INDICATE_APPLICATION_EXEC,\r
   SWITCH_MESSAGE_INDICATE_APPLICATION_EXEC_COMPLETE,\r
@@ -27564,20 +28003,20 @@ namespace FreeSWITCH.Native {
 using System;\r
 using System.Runtime.InteropServices;\r
 \r
-public class switch_dialplan_interface : IDisposable {\r
+public class switch_device_node_t : IDisposable {\r
   private HandleRef swigCPtr;\r
   protected bool swigCMemOwn;\r
 \r
-  internal switch_dialplan_interface(IntPtr cPtr, bool cMemoryOwn) {\r
+  internal switch_device_node_t(IntPtr cPtr, bool cMemoryOwn) {\r
     swigCMemOwn = cMemoryOwn;\r
     swigCPtr = new HandleRef(this, cPtr);\r
   }\r
 \r
-  internal static HandleRef getCPtr(switch_dialplan_interface obj) {\r
+  internal static HandleRef getCPtr(switch_device_node_t obj) {\r
     return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
   }\r
 \r
-  ~switch_dialplan_interface() {\r
+  ~switch_device_node_t() {\r
     Dispose();\r
   }\r
 \r
@@ -27586,7 +28025,7 @@ public class switch_dialplan_interface : IDisposable {
       if (swigCPtr.Handle != IntPtr.Zero) {\r
         if (swigCMemOwn) {\r
           swigCMemOwn = false;\r
-          freeswitchPINVOKE.delete_switch_dialplan_interface(swigCPtr);\r
+          freeswitchPINVOKE.delete_switch_device_node_t(swigCPtr);\r
         }\r
         swigCPtr = new HandleRef(null, IntPtr.Zero);\r
       }\r
@@ -27594,17 +28033,481 @@ public class switch_dialplan_interface : IDisposable {
     }\r
   }\r
 \r
-  public string interface_name {\r
+  public string uuid {\r
     set {\r
-      freeswitchPINVOKE.switch_dialplan_interface_interface_name_set(swigCPtr, value);\r
+      freeswitchPINVOKE.switch_device_node_t_uuid_set(swigCPtr, value);\r
     } \r
     get {\r
-      string ret = freeswitchPINVOKE.switch_dialplan_interface_interface_name_get(swigCPtr);\r
+      string ret = freeswitchPINVOKE.switch_device_node_t_uuid_get(swigCPtr);\r
       return ret;\r
     } \r
   }\r
 \r
-  public SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension hunt_function {\r
+  public switch_xml xml_cdr {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t_xml_cdr_set(swigCPtr, switch_xml.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_node_t_xml_cdr_get(swigCPtr);\r
+      switch_xml ret = (cPtr == IntPtr.Zero) ? null : new switch_xml(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_event _event {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t__event_set(swigCPtr, switch_event.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_node_t__event_get(swigCPtr);\r
+      switch_event ret = (cPtr == IntPtr.Zero) ? null : new switch_event(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_channel_callstate_t callstate {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t_callstate_set(swigCPtr, (int)value);\r
+    } \r
+    get {\r
+      switch_channel_callstate_t ret = (switch_channel_callstate_t)freeswitchPINVOKE.switch_device_node_t_callstate_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_hold_record_t hold_record {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t_hold_record_set(swigCPtr, switch_hold_record_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_node_t_hold_record_get(swigCPtr);\r
+      switch_hold_record_t ret = (cPtr == IntPtr.Zero) ? null : new switch_hold_record_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_caller_profile hup_profile {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t_hup_profile_set(swigCPtr, switch_caller_profile.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_node_t_hup_profile_get(swigCPtr);\r
+      switch_caller_profile ret = (cPtr == IntPtr.Zero) ? null : new switch_caller_profile(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_record_t parent {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t_parent_set(swigCPtr, switch_device_record_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_node_t_parent_get(swigCPtr);\r
+      switch_device_record_t ret = (cPtr == IntPtr.Zero) ? null : new switch_device_record_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_node_t next {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_node_t_next_set(swigCPtr, switch_device_node_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_node_t_next_get(swigCPtr);\r
+      switch_device_node_t ret = (cPtr == IntPtr.Zero) ? null : new switch_device_node_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_node_t() : this(freeswitchPINVOKE.new_switch_device_node_t(), true) {\r
+  }\r
+\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
+public class switch_device_record_t : IDisposable {\r
+  private HandleRef swigCPtr;\r
+  protected bool swigCMemOwn;\r
+\r
+  internal switch_device_record_t(IntPtr cPtr, bool cMemoryOwn) {\r
+    swigCMemOwn = cMemoryOwn;\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(switch_device_record_t obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+\r
+  ~switch_device_record_t() {\r
+    Dispose();\r
+  }\r
+\r
+  public virtual void Dispose() {\r
+    lock(this) {\r
+      if (swigCPtr.Handle != IntPtr.Zero) {\r
+        if (swigCMemOwn) {\r
+          swigCMemOwn = false;\r
+          freeswitchPINVOKE.delete_switch_device_record_t(swigCPtr);\r
+        }\r
+        swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+      }\r
+      GC.SuppressFinalize(this);\r
+    }\r
+  }\r
+\r
+  public string device_id {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_device_id_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      string ret = freeswitchPINVOKE.switch_device_record_t_device_id_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public string uuid {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_uuid_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      string ret = freeswitchPINVOKE.switch_device_record_t_uuid_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public int refs {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_refs_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      int ret = freeswitchPINVOKE.switch_device_record_t_refs_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_stats_t stats {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_stats_set(swigCPtr, switch_device_stats_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_record_t_stats_get(swigCPtr);\r
+      switch_device_stats_t ret = (cPtr == IntPtr.Zero) ? null : new switch_device_stats_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_state_t state {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_state_set(swigCPtr, (int)value);\r
+    } \r
+    get {\r
+      switch_device_state_t ret = (switch_device_state_t)freeswitchPINVOKE.switch_device_record_t_state_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_state_t last_state {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_last_state_set(swigCPtr, (int)value);\r
+    } \r
+    get {\r
+      switch_device_state_t ret = (switch_device_state_t)freeswitchPINVOKE.switch_device_record_t_last_state_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public SWIGTYPE_p_switch_time_t active_start {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_active_start_set(swigCPtr, SWIGTYPE_p_switch_time_t.getCPtr(value));\r
+      if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+    } \r
+    get {\r
+      SWIGTYPE_p_switch_time_t ret = new SWIGTYPE_p_switch_time_t(freeswitchPINVOKE.switch_device_record_t_active_start_get(swigCPtr), true);\r
+      if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public SWIGTYPE_p_switch_time_t active_stop {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_active_stop_set(swigCPtr, SWIGTYPE_p_switch_time_t.getCPtr(value));\r
+      if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+    } \r
+    get {\r
+      SWIGTYPE_p_switch_time_t ret = new SWIGTYPE_p_switch_time_t(freeswitchPINVOKE.switch_device_record_t_active_stop_get(swigCPtr), true);\r
+      if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public SWIGTYPE_p_switch_time_t last_call_time {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_last_call_time_set(swigCPtr, SWIGTYPE_p_switch_time_t.getCPtr(value));\r
+      if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+    } \r
+    get {\r
+      SWIGTYPE_p_switch_time_t ret = new SWIGTYPE_p_switch_time_t(freeswitchPINVOKE.switch_device_record_t_last_call_time_get(swigCPtr), true);\r
+      if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_node_t uuid_list {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_uuid_list_set(swigCPtr, switch_device_node_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_record_t_uuid_list_get(swigCPtr);\r
+      switch_device_node_t ret = (cPtr == IntPtr.Zero) ? null : new switch_device_node_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_node_t uuid_tail {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_uuid_tail_set(swigCPtr, switch_device_node_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_record_t_uuid_tail_get(swigCPtr);\r
+      switch_device_node_t ret = (cPtr == IntPtr.Zero) ? null : new switch_device_node_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public SWIGTYPE_p_switch_mutex_t mutex {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_mutex_set(swigCPtr, SWIGTYPE_p_switch_mutex_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_record_t_mutex_get(swigCPtr);\r
+      SWIGTYPE_p_switch_mutex_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_switch_mutex_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public SWIGTYPE_p_apr_pool_t pool {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_record_t_pool_set(swigCPtr, SWIGTYPE_p_apr_pool_t.getCPtr(value));\r
+    } \r
+    get {\r
+      IntPtr cPtr = freeswitchPINVOKE.switch_device_record_t_pool_get(swigCPtr);\r
+      SWIGTYPE_p_apr_pool_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_apr_pool_t(cPtr, false);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_record_t() : this(freeswitchPINVOKE.new_switch_device_record_t(), true) {\r
+  }\r
+\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+public enum switch_device_state_t {\r
+  SDS_DOWN,\r
+  SDS_RINGING,\r
+  SDS_ACTIVE,\r
+  SDS_ACTIVE_MULTI,\r
+  SDS_HELD,\r
+  SDS_HANGUP\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
+public class switch_device_stats_t : IDisposable {\r
+  private HandleRef swigCPtr;\r
+  protected bool swigCMemOwn;\r
+\r
+  internal switch_device_stats_t(IntPtr cPtr, bool cMemoryOwn) {\r
+    swigCMemOwn = cMemoryOwn;\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(switch_device_stats_t obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+\r
+  ~switch_device_stats_t() {\r
+    Dispose();\r
+  }\r
+\r
+  public virtual void Dispose() {\r
+    lock(this) {\r
+      if (swigCPtr.Handle != IntPtr.Zero) {\r
+        if (swigCMemOwn) {\r
+          swigCMemOwn = false;\r
+          freeswitchPINVOKE.delete_switch_device_stats_t(swigCPtr);\r
+        }\r
+        swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+      }\r
+      GC.SuppressFinalize(this);\r
+    }\r
+  }\r
+\r
+  public uint total {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_total_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_total_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public uint offhook {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_offhook_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_offhook_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public uint active {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_active_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_active_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public uint held {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_held_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_held_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public uint hup {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_hup_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_hup_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public uint ringing {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_ringing_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_ringing_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public uint early {\r
+    set {\r
+      freeswitchPINVOKE.switch_device_stats_t_early_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      uint ret = freeswitchPINVOKE.switch_device_stats_t_early_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_device_stats_t() : this(freeswitchPINVOKE.new_switch_device_stats_t(), true) {\r
+  }\r
+\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
+public class switch_dialplan_interface : IDisposable {\r
+  private HandleRef swigCPtr;\r
+  protected bool swigCMemOwn;\r
+\r
+  internal switch_dialplan_interface(IntPtr cPtr, bool cMemoryOwn) {\r
+    swigCMemOwn = cMemoryOwn;\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(switch_dialplan_interface obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+\r
+  ~switch_dialplan_interface() {\r
+    Dispose();\r
+  }\r
+\r
+  public virtual void Dispose() {\r
+    lock(this) {\r
+      if (swigCPtr.Handle != IntPtr.Zero) {\r
+        if (swigCMemOwn) {\r
+          swigCMemOwn = false;\r
+          freeswitchPINVOKE.delete_switch_dialplan_interface(swigCPtr);\r
+        }\r
+        swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+      }\r
+      GC.SuppressFinalize(this);\r
+    }\r
+  }\r
+\r
+  public string interface_name {\r
+    set {\r
+      freeswitchPINVOKE.switch_dialplan_interface_interface_name_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      string ret = freeswitchPINVOKE.switch_dialplan_interface_interface_name_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension hunt_function {\r
     set {\r
       freeswitchPINVOKE.switch_dialplan_interface_hunt_function_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension.getCPtr(value));\r
     } \r
@@ -28862,6 +29765,8 @@ public enum switch_event_types_t {
   SWITCH_EVENT_CONFERENCE_DATA,\r
   SWITCH_EVENT_CALL_SETUP_REQ,\r
   SWITCH_EVENT_CALL_SETUP_RESULT,\r
+  SWITCH_EVENT_CALL_DETAIL,\r
+  SWITCH_EVENT_DEVICE_STATE,\r
   SWITCH_EVENT_ALL\r
 }\r
 \r
@@ -28876,6 +29781,65 @@ public enum switch_event_types_t {
 \r
 namespace FreeSWITCH.Native {\r
 \r
+using System;\r
+using System.Runtime.InteropServices;\r
+\r
+public class switch_filenames : IDisposable {\r
+  private HandleRef swigCPtr;\r
+  protected bool swigCMemOwn;\r
+\r
+  internal switch_filenames(IntPtr cPtr, bool cMemoryOwn) {\r
+    swigCMemOwn = cMemoryOwn;\r
+    swigCPtr = new HandleRef(this, cPtr);\r
+  }\r
+\r
+  internal static HandleRef getCPtr(switch_filenames obj) {\r
+    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;\r
+  }\r
+\r
+  ~switch_filenames() {\r
+    Dispose();\r
+  }\r
+\r
+  public virtual void Dispose() {\r
+    lock(this) {\r
+      if (swigCPtr.Handle != IntPtr.Zero) {\r
+        if (swigCMemOwn) {\r
+          swigCMemOwn = false;\r
+          freeswitchPINVOKE.delete_switch_filenames(swigCPtr);\r
+        }\r
+        swigCPtr = new HandleRef(null, IntPtr.Zero);\r
+      }\r
+      GC.SuppressFinalize(this);\r
+    }\r
+  }\r
+\r
+  public string conf_name {\r
+    set {\r
+      freeswitchPINVOKE.switch_filenames_conf_name_set(swigCPtr, value);\r
+    } \r
+    get {\r
+      string ret = freeswitchPINVOKE.switch_filenames_conf_name_get(swigCPtr);\r
+      return ret;\r
+    } \r
+  }\r
+\r
+  public switch_filenames() : this(freeswitchPINVOKE.new_switch_filenames(), true) {\r
+  }\r
+\r
+}\r
+\r
+}\r
+/* ----------------------------------------------------------------------------\r
+ * This file was automatically generated by SWIG (http://www.swig.org).\r
+ * Version 2.0.1\r
+ *\r
+ * Do not make changes to this file unless you know what you are doing--modify\r
+ * the SWIG interface file instead.\r
+ * ----------------------------------------------------------------------------- */\r
+\r
+namespace FreeSWITCH.Native {\r
+\r
 [System.Flags] public enum switch_file_flag_enum_t {\r
   SWITCH_FILE_FLAG_READ = (1 << 0),\r
   SWITCH_FILE_FLAG_WRITE = (1 << 1),\r
@@ -32427,7 +33391,8 @@ namespace FreeSWITCH.Native {
   SMBF_LOCK = (1 << 12),\r
   SMBF_TAP_NATIVE_READ = (1 << 13),\r
   SMBF_TAP_NATIVE_WRITE = (1 << 14),\r
-  SMBF_ONE_ONLY = (1 << 15)\r
+  SMBF_ONE_ONLY = (1 << 15),\r
+  SMBF_MASK = (1 << 16)\r
 }\r
 \r
 }\r