]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
reswig
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 23 May 2017 17:42:43 +0000 (12:42 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 23 May 2017 17:42:43 +0000 (12:42 -0500)
src/mod/languages/mod_managed/freeswitch_wrap.cxx
src/mod/languages/mod_managed/managed/swig.cs

index 72118edb730331bf42b560ec3e4776cb91b966ef..08f24ac8a0549e601d2f46b5c23296e933668248 100644 (file)
@@ -7268,3538 +7268,3996 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_waitlist_t(void * jarg1) {
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_close(void * jarg1) {
-  int jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_samplerate_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  result = (int)switch_core_db_close(arg1);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->samplerate = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_open(char * jarg1, void * jarg2) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_samplerate_get(void * jarg1) {
   int jresult ;
-  char *arg1 = (char *) 0 ;
-  switch_core_db_t **arg2 = (switch_core_db_t **) 0 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (char *)jarg1; 
-  arg2 = (switch_core_db_t **)jarg2; 
-  result = (int)switch_core_db_open((char const *)arg1,arg2);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->samplerate);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_db_column_text(void * jarg1, int jarg2) {
-  void * jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_channels_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int arg2 ;
-  unsigned char *result = 0 ;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg1 = (switch_mm_s *)jarg1; 
   arg2 = (int)jarg2; 
-  result = (unsigned char *)switch_core_db_column_text(arg1,arg2);
-  jresult = (void *)result; 
+  if (arg1) (arg1)->channels = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_channels_get(void * jarg1) {
+  int jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int result;
+  
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->channels);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_db_column_name(void * jarg1, int jarg2) {
-  char * jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_keyint_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int arg2 ;
-  char *result = 0 ;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg1 = (switch_mm_s *)jarg1; 
   arg2 = (int)jarg2; 
-  result = (char *)switch_core_db_column_name(arg1,arg2);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
+  if (arg1) (arg1)->keyint = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_column_count(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_keyint_get(void * jarg1) {
   int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
-  result = (int)switch_core_db_column_count(arg1);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->keyint);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_db_errmsg(void * jarg1) {
-  char * jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_ab_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  result = (char *)switch_core_db_errmsg(arg1);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->ab = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_exec(void * jarg1, char * jarg2, void * jarg3, void * jarg4, void * jarg5) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_ab_get(void * jarg1) {
   int jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  switch_core_db_callback_func_t arg3 = (switch_core_db_callback_func_t) 0 ;
-  void *arg4 = (void *) 0 ;
-  char **arg5 = (char **) 0 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (switch_core_db_callback_func_t)jarg3; 
-  arg4 = (void *)jarg4; 
-  arg5 = (char **)jarg5; 
-  result = (int)switch_core_db_exec(arg1,(char const *)arg2,arg3,arg4,arg5);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->ab);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_finalize(void * jarg1) {
-  int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vb_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
-  result = (int)switch_core_db_finalize(arg1);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->vb = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_prepare(void * jarg1, char * jarg2, int jarg3, void * jarg4, void * jarg5) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vb_get(void * jarg1) {
   int jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  int arg3 ;
-  switch_core_db_stmt_t **arg4 = (switch_core_db_stmt_t **) 0 ;
-  char **arg5 = (char **) 0 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (int)jarg3; 
-  arg4 = (switch_core_db_stmt_t **)jarg4; 
-  arg5 = (char **)jarg5; 
-  result = (int)switch_core_db_prepare(arg1,(char const *)arg2,arg3,arg4,(char const **)arg5);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->vb);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_step(void * jarg1) {
-  int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vw_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
-  result = (int)switch_core_db_step(arg1);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->vw = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_reset(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vw_get(void * jarg1) {
   int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
-  result = (int)switch_core_db_reset(arg1);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->vw);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_int(void * jarg1, int jarg2, int jarg3) {
-  int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vh_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int arg2 ;
-  int arg3 ;
-  int result;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg1 = (switch_mm_s *)jarg1; 
   arg2 = (int)jarg2; 
-  arg3 = (int)jarg3; 
-  result = (int)switch_core_db_bind_int(arg1,arg2,arg3);
-  jresult = result; 
-  return jresult;
+  if (arg1) (arg1)->vh = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_int64(void * jarg1, int jarg2, long long jarg3) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vh_get(void * jarg1) {
   int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
-  int arg2 ;
-  int64_t arg3 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
-  arg2 = (int)jarg2; 
-  arg3 = (int64_t)jarg3; 
-  result = (int)switch_core_db_bind_int64(arg1,arg2,arg3);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->vh);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_text(void * jarg1, int jarg2, char * jarg3, int jarg4, void * jarg5) {
-  int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_cbr_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int arg2 ;
-  char *arg3 = (char *) 0 ;
-  int arg4 ;
-  switch_core_db_destructor_type_t arg5 = (switch_core_db_destructor_type_t) 0 ;
-  int result;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg1 = (switch_mm_s *)jarg1; 
   arg2 = (int)jarg2; 
-  arg3 = (char *)jarg3; 
-  arg4 = (int)jarg4; 
-  arg5 = (switch_core_db_destructor_type_t)jarg5; 
-  result = (int)switch_core_db_bind_text(arg1,arg2,(char const *)arg3,arg4,arg5);
-  jresult = result; 
-  return jresult;
+  if (arg1) (arg1)->cbr = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_double(void * jarg1, int jarg2, double jarg3) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_cbr_get(void * jarg1) {
   int jresult ;
-  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
-  int arg2 ;
-  double arg3 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_stmt_t *)jarg1; 
-  arg2 = (int)jarg2; 
-  arg3 = (double)jarg3; 
-  result = (int)switch_core_db_bind_double(arg1,arg2,arg3);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->cbr);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT long long SWIGSTDCALL CSharp_switch_core_db_last_insert_rowid(void * jarg1) {
-  long long jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  int64_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_fps_set(void * jarg1, float jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  float arg2 ;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  result = (int64_t)switch_core_db_last_insert_rowid(arg1);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (float)jarg2; 
+  if (arg1) (arg1)->fps = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_get_table(void * jarg1, char * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6) {
-  int jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char ***arg3 = (char ***) 0 ;
-  int *arg4 = (int *) 0 ;
-  int *arg5 = (int *) 0 ;
-  char **arg6 = (char **) 0 ;
-  int result;
+SWIGEXPORT float SWIGSTDCALL CSharp_switch_mm_t_fps_get(void * jarg1) {
+  float jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  float result;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (char ***)jarg3; 
-  arg4 = (int *)jarg4; 
-  arg5 = (int *)jarg5; 
-  arg6 = (char **)jarg6; 
-  result = (int)switch_core_db_get_table(arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (float) ((arg1)->fps);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_db_free_table(void * jarg1) {
-  char **arg1 = (char **) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_source_fps_set(void * jarg1, float jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  float arg2 ;
   
-  arg1 = (char **)jarg1; 
-  switch_core_db_free_table(arg1);
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (float)jarg2; 
+  if (arg1) (arg1)->source_fps = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_db_free(char * jarg1) {
-  char *arg1 = (char *) 0 ;
+SWIGEXPORT float SWIGSTDCALL CSharp_switch_mm_t_source_fps_get(void * jarg1) {
+  float jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  float result;
   
-  arg1 = (char *)jarg1; 
-  switch_core_db_free(arg1);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (float) ((arg1)->source_fps);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_changes(void * jarg1) {
-  int jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vbuf_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  result = (int)switch_core_db_changes(arg1);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->vbuf = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_load_extension(void * jarg1, char * jarg2) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vbuf_get(void * jarg1) {
   int jresult ;
-  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
-  char *arg2 = (char *) 0 ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  arg1 = (switch_core_db_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  result = (int)switch_core_db_load_extension(arg1,(char const *)arg2);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->vbuf);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_OK_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vprofile_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_video_profile_t arg2 ;
   
-  result = (int)(0);
-  jresult = result
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (switch_video_profile_t)jarg2
+  if (arg1) (arg1)->vprofile = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_ERROR_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vprofile_get(void * jarg1) {
   int jresult ;
-  int result;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_video_profile_t result;
   
-  result = (int)(1);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (switch_video_profile_t) ((arg1)->vprofile);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_INTERNAL_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vencspd_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_video_encode_speed_t arg2 ;
   
-  result = (int)(2);
-  jresult = result
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (switch_video_encode_speed_t)jarg2
+  if (arg1) (arg1)->vencspd = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_PERM_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vencspd_get(void * jarg1) {
   int jresult ;
-  int result;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_video_encode_speed_t result;
   
-  result = (int)(3);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (switch_video_encode_speed_t) ((arg1)->vencspd);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_ABORT_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_try_hardware_encoder_set(void * jarg1, unsigned char jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  uint8_t arg2 ;
   
-  result = (int)(4);
-  jresult = result
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (uint8_t)jarg2
+  if (arg1) (arg1)->try_hardware_encoder = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_BUSY_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_mm_t_try_hardware_encoder_get(void * jarg1) {
+  unsigned char jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  uint8_t result;
   
-  result = (int)(5);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (uint8_t) ((arg1)->try_hardware_encoder);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_LOCKED_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_scale_w_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  result = (int)(6);
-  jresult = result
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2
+  if (arg1) (arg1)->scale_w = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOMEM_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_scale_w_get(void * jarg1) {
   int jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  result = (int)(7);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->scale_w);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_READONLY_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_scale_h_set(void * jarg1, int jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  int arg2 ;
   
-  result = (int)(8);
-  jresult = result
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (int)jarg2
+  if (arg1) (arg1)->scale_h = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_INTERRUPT_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_scale_h_get(void * jarg1) {
   int jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   int result;
   
-  result = (int)(9);
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (int) ((arg1)->scale_h);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_IOERR_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_fmt_set(void * jarg1, void * jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_img_fmt_t arg2 ;
+  switch_img_fmt_t *argp2 ;
   
-  result = (int)(10);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  argp2 = (switch_img_fmt_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_img_fmt_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->fmt = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_CORRUPT_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_mm_t_fmt_get(void * jarg1) {
+  void * jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_img_fmt_t result;
   
-  result = (int)(11);
-  jresult = result; 
+  arg1 = (switch_mm_s *)jarg1; 
+  result =  ((arg1)->fmt);
+  jresult = new switch_img_fmt_t((const switch_img_fmt_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOTFOUND_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_auth_username_set(void * jarg1, char * jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  result = (int)(12);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->auth_username;
+    if (arg2) {
+      arg1->auth_username = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->auth_username, (const char *)arg2);
+    } else {
+      arg1->auth_username = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_FULL_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_mm_t_auth_username_get(void * jarg1) {
+  char * jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  char *result = 0 ;
   
-  result = (int)(13);
-  jresult = result; 
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (char *) ((arg1)->auth_username);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_CANTOPEN_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_auth_password_set(void * jarg1, char * jarg2) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  result = (int)(14);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->auth_password;
+    if (arg2) {
+      arg1->auth_password = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->auth_password, (const char *)arg2);
+    } else {
+      arg1->auth_password = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_PROTOCOL_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_mm_t_auth_password_get(void * jarg1) {
+  char * jresult ;
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  char *result = 0 ;
   
-  result = (int)(15);
-  jresult = result; 
+  arg1 = (switch_mm_s *)jarg1; 
+  result = (char *) ((arg1)->auth_password);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_EMPTY_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_mm_t() {
+  void * jresult ;
+  switch_mm_s *result = 0 ;
   
-  result = (int)(16);
-  jresult = result; 
+  result = (switch_mm_s *)new switch_mm_s();
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_SCHEMA_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_mm_t(void * jarg1) {
+  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
   
-  result = (int)(17);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_mm_s *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_TOOBIG_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_close(void * jarg1) {
   int jresult ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
   int result;
   
-  result = (int)(18);
+  arg1 = (switch_core_db_t *)jarg1; 
+  result = (int)switch_core_db_close(arg1);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_CONSTRAINT_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_open(char * jarg1, void * jarg2) {
   int jresult ;
+  char *arg1 = (char *) 0 ;
+  switch_core_db_t **arg2 = (switch_core_db_t **) 0 ;
   int result;
   
-  result = (int)(19);
+  arg1 = (char *)jarg1; 
+  arg2 = (switch_core_db_t **)jarg2; 
+  result = (int)switch_core_db_open((char const *)arg1,arg2);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_MISMATCH_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_db_column_text(void * jarg1, int jarg2) {
+  void * jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  int arg2 ;
+  unsigned char *result = 0 ;
   
-  result = (int)(20);
-  jresult = result; 
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg2 = (int)jarg2; 
+  result = (unsigned char *)switch_core_db_column_text(arg1,arg2);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_MISUSE_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_db_column_name(void * jarg1, int jarg2) {
+  char * jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  int arg2 ;
+  char *result = 0 ;
   
-  result = (int)(21);
-  jresult = result; 
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg2 = (int)jarg2; 
+  result = (char *)switch_core_db_column_name(arg1,arg2);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOLFS_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_column_count(void * jarg1) {
   int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
   int result;
   
-  result = (int)(22);
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  result = (int)switch_core_db_column_count(arg1);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_AUTH_get() {
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_db_errmsg(void * jarg1) {
+  char * jresult ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (switch_core_db_t *)jarg1; 
+  result = (char *)switch_core_db_errmsg(arg1);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_exec(void * jarg1, char * jarg2, void * jarg3, void * jarg4, void * jarg5) {
   int jresult ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_core_db_callback_func_t arg3 = (switch_core_db_callback_func_t) 0 ;
+  void *arg4 = (void *) 0 ;
+  char **arg5 = (char **) 0 ;
   int result;
   
-  result = (int)(23);
+  arg1 = (switch_core_db_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (switch_core_db_callback_func_t)jarg3; 
+  arg4 = (void *)jarg4; 
+  arg5 = (char **)jarg5; 
+  result = (int)switch_core_db_exec(arg1,(char const *)arg2,arg3,arg4,arg5);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_FORMAT_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_finalize(void * jarg1) {
   int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
   int result;
   
-  result = (int)(24);
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  result = (int)switch_core_db_finalize(arg1);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_RANGE_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_prepare(void * jarg1, char * jarg2, int jarg3, void * jarg4, void * jarg5) {
   int jresult ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  switch_core_db_stmt_t **arg4 = (switch_core_db_stmt_t **) 0 ;
+  char **arg5 = (char **) 0 ;
   int result;
   
-  result = (int)(25);
+  arg1 = (switch_core_db_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (int)jarg3; 
+  arg4 = (switch_core_db_stmt_t **)jarg4; 
+  arg5 = (char **)jarg5; 
+  result = (int)switch_core_db_prepare(arg1,(char const *)arg2,arg3,arg4,(char const **)arg5);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOTADB_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_step(void * jarg1) {
   int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
   int result;
   
-  result = (int)(26);
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  result = (int)switch_core_db_step(arg1);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_ROW_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_reset(void * jarg1) {
   int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
   int result;
   
-  result = (int)(100);
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  result = (int)switch_core_db_reset(arg1);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_DONE_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_int(void * jarg1, int jarg2, int jarg3) {
   int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  int arg2 ;
+  int arg3 ;
   int result;
   
-  result = (int)(101);
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg2 = (int)jarg2; 
+  arg3 = (int)jarg3; 
+  result = (int)switch_core_db_bind_int(arg1,arg2,arg3);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_sql_concat() {
-  char * jresult ;
-  char *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_int64(void * jarg1, int jarg2, long long jarg3) {
+  int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  int arg2 ;
+  int64_t arg3 ;
+  int result;
   
-  result = (char *)switch_sql_concat();
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg2 = (int)jarg2; 
+  arg3 = (int64_t)jarg3; 
+  result = (int)switch_core_db_bind_int64(arg1,arg2,arg3);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_regex_compile(char * jarg1, int jarg2, void * jarg3, void * jarg4, void * jarg5) {
-  void * jresult ;
-  char *arg1 = (char *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_text(void * jarg1, int jarg2, char * jarg3, int jarg4, void * jarg5) {
+  int jresult ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
   int arg2 ;
-  char **arg3 = (char **) 0 ;
-  int *arg4 = (int *) 0 ;
-  unsigned char *arg5 = (unsigned char *) 0 ;
-  switch_regex_t *result = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  switch_core_db_destructor_type_t arg5 = (switch_core_db_destructor_type_t) 0 ;
+  int result;
   
-  arg1 = (char *)jarg1; 
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
   arg2 = (int)jarg2; 
-  arg3 = (char **)jarg3; 
-  arg4 = (int *)jarg4; 
-  arg5 = (unsigned char *)jarg5; 
-  result = (switch_regex_t *)switch_regex_compile((char const *)arg1,arg2,(char const **)arg3,arg4,(unsigned char const *)arg5);
-  jresult = (void *)result; 
+  arg3 = (char *)jarg3; 
+  arg4 = (int)jarg4; 
+  arg5 = (switch_core_db_destructor_type_t)jarg5; 
+  result = (int)switch_core_db_bind_text(arg1,arg2,(char const *)arg3,arg4,arg5);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_copy_substring(char * jarg1, void * jarg2, int jarg3, int jarg4, char * jarg5, int jarg6) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_bind_double(void * jarg1, int jarg2, double jarg3) {
   int jresult ;
-  char *arg1 = (char *) 0 ;
-  int *arg2 = (int *) 0 ;
-  int arg3 ;
-  int arg4 ;
-  char *arg5 = (char *) 0 ;
-  int arg6 ;
+  switch_core_db_stmt_t *arg1 = (switch_core_db_stmt_t *) 0 ;
+  int arg2 ;
+  double arg3 ;
   int result;
   
-  arg1 = (char *)jarg1; 
-  arg2 = (int *)jarg2; 
-  arg3 = (int)jarg3; 
-  arg4 = (int)jarg4; 
-  arg5 = (char *)jarg5; 
-  arg6 = (int)jarg6; 
-  result = (int)switch_regex_copy_substring((char const *)arg1,arg2,arg3,arg4,arg5,arg6);
+  arg1 = (switch_core_db_stmt_t *)jarg1; 
+  arg2 = (int)jarg2; 
+  arg3 = (double)jarg3; 
+  result = (int)switch_core_db_bind_double(arg1,arg2,arg3);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_regex_free(void * jarg1) {
-  void *arg1 = (void *) 0 ;
+SWIGEXPORT long long SWIGSTDCALL CSharp_switch_core_db_last_insert_rowid(void * jarg1) {
+  long long jresult ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
+  int64_t result;
   
-  arg1 = (void *)jarg1; 
-  switch_regex_free(arg1);
+  arg1 = (switch_core_db_t *)jarg1; 
+  result = (int64_t)switch_core_db_last_insert_rowid(arg1);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_perform(char * jarg1, char * jarg2, void * jarg3, void * jarg4, unsigned long jarg5) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_get_table(void * jarg1, char * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6) {
   int jresult ;
-  char *arg1 = (char *) 0 ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
   char *arg2 = (char *) 0 ;
-  switch_regex_t **arg3 = (switch_regex_t **) 0 ;
+  char ***arg3 = (char ***) 0 ;
   int *arg4 = (int *) 0 ;
-  uint32_t arg5 ;
+  int *arg5 = (int *) 0 ;
+  char **arg6 = (char **) 0 ;
   int result;
   
-  arg1 = (char *)jarg1; 
+  arg1 = (switch_core_db_t *)jarg1; 
   arg2 = (char *)jarg2; 
-  arg3 = (switch_regex_t **)jarg3; 
+  arg3 = (char ***)jarg3; 
   arg4 = (int *)jarg4; 
-  arg5 = (uint32_t)jarg5; 
-  result = (int)switch_regex_perform((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
+  arg5 = (int *)jarg5; 
+  arg6 = (char **)jarg6; 
+  result = (int)switch_core_db_get_table(arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_perform_substitution(void * jarg1, int jarg2, char * jarg3, char * jarg4, char * jarg5, void * jarg6, void * jarg7) {
-  switch_regex_t *arg1 = (switch_regex_t *) 0 ;
-  int arg2 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  char *arg5 = (char *) 0 ;
-  switch_size_t arg6 ;
-  int *arg7 = (int *) 0 ;
-  switch_size_t *argp6 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_db_free_table(void * jarg1) {
+  char **arg1 = (char **) 0 ;
   
-  arg1 = (switch_regex_t *)jarg1; 
-  arg2 = (int)jarg2; 
-  arg3 = (char *)jarg3; 
-  arg4 = (char *)jarg4; 
-  arg5 = (char *)jarg5; 
-  argp6 = (switch_size_t *)jarg6; 
-  if (!argp6) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg6 = *argp6; 
-  arg7 = (int *)jarg7; 
-  switch_perform_substitution(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7);
+  arg1 = (char **)jarg1; 
+  switch_core_db_free_table(arg1);
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_match(char * jarg1, char * jarg2) {
-  int jresult ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_db_free(char * jarg1) {
   char *arg1 = (char *) 0 ;
-  char *arg2 = (char *) 0 ;
-  switch_status_t result;
   
   arg1 = (char *)jarg1; 
-  arg2 = (char *)jarg2; 
-  result = (switch_status_t)switch_regex_match((char const *)arg1,(char const *)arg2);
+  switch_core_db_free(arg1);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_changes(void * jarg1) {
+  int jresult ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
+  int result;
+  
+  arg1 = (switch_core_db_t *)jarg1; 
+  result = (int)switch_core_db_changes(arg1);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_match_partial(char * jarg1, char * jarg2, void * jarg3) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_db_load_extension(void * jarg1, char * jarg2) {
   int jresult ;
-  char *arg1 = (char *) 0 ;
+  switch_core_db_t *arg1 = (switch_core_db_t *) 0 ;
   char *arg2 = (char *) 0 ;
-  int *arg3 = (int *) 0 ;
-  switch_status_t result;
+  int result;
   
-  arg1 = (char *)jarg1; 
+  arg1 = (switch_core_db_t *)jarg1; 
   arg2 = (char *)jarg2; 
-  arg3 = (int *)jarg3; 
-  result = (switch_status_t)switch_regex_match_partial((char const *)arg1,(char const *)arg2,arg3);
+  result = (int)switch_core_db_load_extension(arg1,(char const *)arg2);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_capture_regex(void * jarg1, int jarg2, char * jarg3, void * jarg4, char * jarg5, void * jarg6, void * jarg7) {
-  switch_regex_t *arg1 = (switch_regex_t *) 0 ;
-  int arg2 ;
-  char *arg3 = (char *) 0 ;
-  int *arg4 = (int *) 0 ;
-  char *arg5 = (char *) 0 ;
-  switch_cap_callback_t arg6 = (switch_cap_callback_t) 0 ;
-  void *arg7 = (void *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_OK_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_regex_t *)jarg1; 
-  arg2 = (int)jarg2; 
-  arg3 = (char *)jarg3; 
-  arg4 = (int *)jarg4; 
-  arg5 = (char *)jarg5; 
-  arg6 = (switch_cap_callback_t)jarg6; 
-  arg7 = (void *)jarg7; 
-  switch_capture_regex(arg1,arg2,(char const *)arg3,arg4,(char const *)arg5,arg6,arg7);
+  result = (int)(0);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_regex_set_var_callback(char * jarg1, char * jarg2, void * jarg3) {
-  char *arg1 = (char *) 0 ;
-  char *arg2 = (char *) 0 ;
-  void *arg3 = (void *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_ERROR_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (char *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (void *)jarg3; 
-  switch_regex_set_var_callback((char const *)arg1,(char const *)arg2,arg3);
+  result = (int)(1);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_regex_set_event_header_callback(char * jarg1, char * jarg2, void * jarg3) {
-  char *arg1 = (char *) 0 ;
-  char *arg2 = (char *) 0 ;
-  void *arg3 = (void *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_INTERNAL_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (char *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (void *)jarg3; 
-  switch_regex_set_event_header_callback((char const *)arg1,(char const *)arg2,arg3);
+  result = (int)(2);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_MAX_CORE_THREAD_SESSION_OBJS_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_PERM_get() {
   int jresult ;
   int result;
   
-  result = (int)(128);
+  result = (int)(3);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_MAX_STREAMS_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_ABORT_get() {
   int jresult ;
   int result;
   
-  result = (int)(128);
+  result = (int)(4);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_mms_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_BUSY_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->mms = arg2;
+  result = (int)(5);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_mms_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_LOCKED_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->mms);
-  jresult = (unsigned long)result; 
+  result = (int)(6);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_ms_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOMEM_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->ms = arg2;
+  result = (int)(7);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_ms_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_READONLY_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->ms);
-  jresult = (unsigned long)result; 
+  result = (int)(8);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_sec_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_INTERRUPT_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->sec = arg2;
+  result = (int)(9);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_sec_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_IOERR_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->sec);
-  jresult = (unsigned long)result; 
+  result = (int)(10);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_min_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_CORRUPT_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->min = arg2;
+  result = (int)(11);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_min_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOTFOUND_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->min);
-  jresult = (unsigned long)result; 
+  result = (int)(12);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_hr_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_FULL_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->hr = arg2;
+  result = (int)(13);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_hr_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_CANTOPEN_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->hr);
-  jresult = (unsigned long)result; 
+  result = (int)(14);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_day_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_PROTOCOL_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->day = arg2;
+  result = (int)(15);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_day_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_EMPTY_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->day);
-  jresult = (unsigned long)result; 
+  result = (int)(16);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_yr_set(void * jarg1, unsigned long jarg2) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_SCHEMA_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->yr = arg2;
+  result = (int)(17);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_yr_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_TOOBIG_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  result = (uint32_t) ((arg1)->yr);
-  jresult = (unsigned long)result; 
+  result = (int)(18);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_time_duration() {
-  void * jresult ;
-  switch_core_time_duration *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_CONSTRAINT_get() {
+  int jresult ;
+  int result;
   
-  result = (switch_core_time_duration *)new switch_core_time_duration();
-  jresult = (void *)result; 
+  result = (int)(19);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_core_time_duration(void * jarg1) {
-  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_MISMATCH_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_time_duration *)jarg1; 
-  delete arg1;
+  result = (int)(20);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_app_set(void * jarg1, char * jarg2) {
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_MISUSE_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->app;
-    if (arg2) {
-      arg1->app = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->app, (const char *)arg2);
-    } else {
-      arg1->app = 0;
-    }
-  }
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_app_log_app_get(void * jarg1) {
-  char * jresult ;
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (switch_app_log *)jarg1; 
-  result = (char *) ((arg1)->app);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  result = (int)(21);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_arg_set(void * jarg1, char * jarg2) {
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOLFS_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->arg;
-    if (arg2) {
-      arg1->arg = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->arg, (const char *)arg2);
-    } else {
-      arg1->arg = 0;
-    }
-  }
+  result = (int)(22);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_app_log_arg_get(void * jarg1) {
-  char * jresult ;
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_AUTH_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  result = (char *) ((arg1)->arg);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  result = (int)(23);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_stamp_set(void * jarg1, void * jarg2) {
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_FORMAT_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->stamp = arg2;
+  result = (int)(24);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_app_log_stamp_get(void * jarg1) {
-  void * jresult ;
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  switch_time_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_RANGE_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  result =  ((arg1)->stamp);
-  jresult = new switch_time_t((const switch_time_t &)result); 
+  result = (int)(25);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_next_set(void * jarg1, void * jarg2) {
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  switch_app_log *arg2 = (switch_app_log *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_NOTADB_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  arg2 = (switch_app_log *)jarg2
-  if (arg1) (arg1)->next = arg2;
+  result = (int)(26);
+  jresult = result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_app_log_next_get(void * jarg1) {
-  void * jresult ;
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
-  switch_app_log *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_ROW_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_app_log *)jarg1; 
-  result = (switch_app_log *) ((arg1)->next);
-  jresult = (void *)result; 
+  result = (int)(100);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_app_log() {
-  void * jresult ;
-  switch_app_log *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_CORE_DB_DONE_get() {
+  int jresult ;
+  int result;
   
-  result = (switch_app_log *)new switch_app_log();
-  jresult = (void *)result; 
+  result = (int)(101);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_app_log(void * jarg1) {
-  switch_app_log *arg1 = (switch_app_log *) 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_sql_concat() {
+  char * jresult ;
+  char *result = 0 ;
   
-  arg1 = (switch_app_log *)jarg1; 
-  delete arg1;
+  result = (char *)switch_sql_concat();
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_func_set(void * jarg1, void * jarg2) {
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  switch_thread_start_t arg2 ;
-  switch_thread_start_t *argp2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_regex_compile(char * jarg1, int jarg2, void * jarg3, void * jarg4, void * jarg5) {
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  int arg2 ;
+  char **arg3 = (char **) 0 ;
+  int *arg4 = (int *) 0 ;
+  unsigned char *arg5 = (unsigned char *) 0 ;
+  switch_regex_t *result = 0 ;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  argp2 = (switch_thread_start_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_thread_start_t", 0);
-    return ;
-  }
-  arg2 = *argp2
-  if (arg1) (arg1)->func = arg2;
+  arg1 = (char *)jarg1; 
+  arg2 = (int)jarg2; 
+  arg3 = (char **)jarg3; 
+  arg4 = (int *)jarg4; 
+  arg5 = (unsigned char *)jarg5; 
+  result = (switch_regex_t *)switch_regex_compile((char const *)arg1,arg2,(char const **)arg3,arg4,(unsigned char const *)arg5);
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_func_get(void * jarg1) {
-  void * jresult ;
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  switch_thread_start_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_copy_substring(char * jarg1, void * jarg2, int jarg3, int jarg4, char * jarg5, int jarg6) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  int *arg2 = (int *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  int result;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  result =  ((arg1)->func);
-  jresult = new switch_thread_start_t((const switch_thread_start_t &)result); 
+  arg1 = (char *)jarg1; 
+  arg2 = (int *)jarg2; 
+  arg3 = (int)jarg3; 
+  arg4 = (int)jarg4; 
+  arg5 = (char *)jarg5; 
+  arg6 = (int)jarg6; 
+  result = (int)switch_regex_copy_substring((char const *)arg1,arg2,arg3,arg4,arg5,arg6);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_obj_set(void * jarg1, void * jarg2) {
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_regex_free(void * jarg1) {
+  void *arg1 = (void *) 0 ;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->obj = arg2;
+  arg1 = (void *)jarg1; 
+  switch_regex_free(arg1);
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_obj_get(void * jarg1) {
-  void * jresult ;
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  void *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_perform(char * jarg1, char * jarg2, void * jarg3, void * jarg4, unsigned long jarg5) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_regex_t **arg3 = (switch_regex_t **) 0 ;
+  int *arg4 = (int *) 0 ;
+  uint32_t arg5 ;
+  int result;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  result = (void *) ((arg1)->obj);
-  jresult = (void *)result; 
+  arg1 = (char *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (switch_regex_t **)jarg3; 
+  arg4 = (int *)jarg4; 
+  arg5 = (uint32_t)jarg5; 
+  result = (int)switch_regex_perform((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_alloc_set(void * jarg1, int jarg2) {
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_perform_substitution(void * jarg1, int jarg2, char * jarg3, char * jarg4, char * jarg5, void * jarg6, void * jarg7) {
+  switch_regex_t *arg1 = (switch_regex_t *) 0 ;
   int arg2 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  switch_size_t arg6 ;
+  int *arg7 = (int *) 0 ;
+  switch_size_t *argp6 ;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
+  arg1 = (switch_regex_t *)jarg1; 
   arg2 = (int)jarg2; 
-  if (arg1) (arg1)->alloc = arg2;
+  arg3 = (char *)jarg3; 
+  arg4 = (char *)jarg4; 
+  arg5 = (char *)jarg5; 
+  argp6 = (switch_size_t *)jarg6; 
+  if (!argp6) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg6 = *argp6; 
+  arg7 = (int *)jarg7; 
+  switch_perform_substitution(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7);
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_thread_data_t_alloc_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_match(char * jarg1, char * jarg2) {
   int jresult ;
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  int result;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_status_t result;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  result = (int) ((arg1)->alloc);
+  arg1 = (char *)jarg1; 
+  arg2 = (char *)jarg2; 
+  result = (switch_status_t)switch_regex_match((char const *)arg1,(char const *)arg2);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_pool_set(void * jarg1, void * jarg2) {
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_regex_match_partial(char * jarg1, char * jarg2, void * jarg3) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int *arg3 = (int *) 0 ;
+  switch_status_t result;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  arg2 = (switch_memory_pool_t *)jarg2; 
-  if (arg1) (arg1)->pool = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_pool_get(void * jarg1) {
-  void * jresult ;
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
-  switch_memory_pool_t *result = 0 ;
-  
-  arg1 = (switch_thread_data_s *)jarg1; 
-  result = (switch_memory_pool_t *) ((arg1)->pool);
-  jresult = (void *)result; 
+  arg1 = (char *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (int *)jarg3; 
+  result = (switch_status_t)switch_regex_match_partial((char const *)arg1,(char const *)arg2,arg3);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_thread_data_t() {
-  void * jresult ;
-  switch_thread_data_s *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_capture_regex(void * jarg1, int jarg2, char * jarg3, void * jarg4, char * jarg5, void * jarg6, void * jarg7) {
+  switch_regex_t *arg1 = (switch_regex_t *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  int *arg4 = (int *) 0 ;
+  char *arg5 = (char *) 0 ;
+  switch_cap_callback_t arg6 = (switch_cap_callback_t) 0 ;
+  void *arg7 = (void *) 0 ;
   
-  result = (switch_thread_data_s *)new switch_thread_data_s();
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_regex_t *)jarg1; 
+  arg2 = (int)jarg2; 
+  arg3 = (char *)jarg3; 
+  arg4 = (int *)jarg4; 
+  arg5 = (char *)jarg5; 
+  arg6 = (switch_cap_callback_t)jarg6; 
+  arg7 = (void *)jarg7; 
+  switch_capture_regex(arg1,arg2,(char const *)arg3,arg4,(char const *)arg5,arg6,arg7);
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_thread_data_t(void * jarg1) {
-  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_regex_set_var_callback(char * jarg1, char * jarg2, void * jarg3) {
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *arg3 = (void *) 0 ;
   
-  arg1 = (switch_thread_data_s *)jarg1; 
-  delete arg1;
+  arg1 = (char *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (void *)jarg3; 
+  switch_regex_set_var_callback((char const *)arg1,(char const *)arg2,arg3);
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_on_set(void * jarg1, void * jarg2) {
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_regex_set_event_header_callback(char * jarg1, char * jarg2, void * jarg3) {
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *arg3 = (void *) 0 ;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->on = arg2;
+  arg1 = (char *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (void *)jarg3; 
+  switch_regex_set_event_header_callback((char const *)arg1,(char const *)arg2,arg3);
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_on_get(void * jarg1) {
-  void * jresult ;
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_MAX_CORE_THREAD_SESSION_OBJS_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  result =  ((arg1)->on);
-  jresult = new switch_time_t((const switch_time_t &)result); 
+  result = (int)(128);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_off_set(void * jarg1, void * jarg2) {
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
-  
-  arg1 = (switch_hold_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->off = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_off_get(void * jarg1) {
-  void * jresult ;
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_MAX_STREAMS_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  result =  ((arg1)->off);
-  jresult = new switch_time_t((const switch_time_t &)result); 
+  result = (int)(128);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_uuid_set(void * jarg1, char * jarg2) {
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_mms_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->uuid;
-    if (arg2) {
-      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->uuid, (const char *)arg2);
-    } else {
-      arg1->uuid = 0;
-    }
-  }
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->mms = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_hold_record_t_uuid_get(void * jarg1) {
-  char * jresult ;
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_mms_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  result = (char *) ((arg1)->uuid);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->mms);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_next_set(void * jarg1, void * jarg2) {
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  switch_hold_record_s *arg2 = (switch_hold_record_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_ms_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  arg2 = (switch_hold_record_s *)jarg2; 
-  if (arg1) (arg1)->next = arg2;
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->ms = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_next_get(void * jarg1) {
-  void * jresult ;
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
-  switch_hold_record_s *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_ms_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  result = (switch_hold_record_s *) ((arg1)->next);
-  jresult = (void *)result; 
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->ms);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_hold_record_t() {
-  void * jresult ;
-  switch_hold_record_s *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_sec_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
   
-  result = (switch_hold_record_s *)new switch_hold_record_s();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2
+  if (arg1) (arg1)->sec = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_hold_record_t(void * jarg1) {
-  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_sec_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_hold_record_s *)jarg1; 
-  delete arg1;
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->sec);
+  jresult = (unsigned long)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_uuid_set(void * jarg1, char * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_min_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->uuid;
-    if (arg2) {
-      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->uuid, (const char *)arg2);
-    } else {
-      arg1->uuid = 0;
-    }
-  }
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->min = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_node_t_uuid_get(void * jarg1) {
-  char * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_min_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (char *) ((arg1)->uuid);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->min);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_xml_cdr_set(void * jarg1, void * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_xml_t arg2 = (switch_xml_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_hr_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_xml_t)jarg2; 
-  if (arg1) (arg1)->xml_cdr = arg2;
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->hr = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_xml_cdr_get(void * jarg1) {
-  void * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_xml_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_hr_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_xml_t) ((arg1)->xml_cdr);
-  jresult = (void *)result; 
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->hr);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t__event_set(void * jarg1, void * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_event_t *arg2 = (switch_event_t *) 0 ;
-  
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_event_t *)jarg2; 
-  if (arg1) (arg1)->event = arg2;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_day_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
+  
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->day = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t__event_get(void * jarg1) {
-  void * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_event_t *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_day_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_event_t *) ((arg1)->event);
-  jresult = (void *)result; 
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->day);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_callstate_set(void * jarg1, int jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_channel_callstate_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_time_duration_yr_set(void * jarg1, unsigned long jarg2) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_channel_callstate_t)jarg2; 
-  if (arg1) (arg1)->callstate = arg2;
+  arg1 = (switch_core_time_duration *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->yr = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_node_t_callstate_get(void * jarg1) {
-  int jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_channel_callstate_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_time_duration_yr_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
+  uint32_t result;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_channel_callstate_t) ((arg1)->callstate);
-  jresult = result; 
+  arg1 = (switch_core_time_duration *)jarg1; 
+  result = (uint32_t) ((arg1)->yr);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_hold_record_set(void * jarg1, void * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_hold_record_t *arg2 = (switch_hold_record_t *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_time_duration() {
+  void * jresult ;
+  switch_core_time_duration *result = 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_hold_record_t *)jarg2
-  if (arg1) (arg1)->hold_record = arg2;
+  result = (switch_core_time_duration *)new switch_core_time_duration();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_hold_record_get(void * jarg1) {
-  void * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_hold_record_t *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_core_time_duration(void * jarg1) {
+  switch_core_time_duration *arg1 = (switch_core_time_duration *) 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_hold_record_t *) ((arg1)->hold_record);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_core_time_duration *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_hup_profile_set(void * jarg1, void * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_app_set(void * jarg1, char * jarg2) {
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_caller_profile_t *)jarg2; 
-  if (arg1) (arg1)->hup_profile = arg2;
+  arg1 = (switch_app_log *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->app;
+    if (arg2) {
+      arg1->app = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->app, (const char *)arg2);
+    } else {
+      arg1->app = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_hup_profile_get(void * jarg1) {
-  void * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_caller_profile_t *result = 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_app_log_app_get(void * jarg1) {
+  char * jresult ;
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_caller_profile_t *) ((arg1)->hup_profile);
-  jresult = (void *)result
+  arg1 = (switch_app_log *)jarg1; 
+  result = (char *) ((arg1)->app);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_direction_set(void * jarg1, int jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_call_direction_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_arg_set(void * jarg1, char * jarg2) {
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_call_direction_t)jarg2; 
-  if (arg1) (arg1)->direction = arg2;
+  arg1 = (switch_app_log *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->arg;
+    if (arg2) {
+      arg1->arg = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->arg, (const char *)arg2);
+    } else {
+      arg1->arg = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_node_t_direction_get(void * jarg1) {
-  int jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_call_direction_t result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_app_log_arg_get(void * jarg1) {
+  char * jresult ;
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_call_direction_t) ((arg1)->direction);
-  jresult = result
+  arg1 = (switch_app_log *)jarg1; 
+  result = (char *) ((arg1)->arg);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_parent_set(void * jarg1, void * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_device_record_s *arg2 = (switch_device_record_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_stamp_set(void * jarg1, void * jarg2) {
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (switch_device_record_s *)jarg2; 
-  if (arg1) (arg1)->parent = arg2;
+  arg1 = (switch_app_log *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->stamp = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_parent_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_app_log_stamp_get(void * jarg1) {
   void * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  switch_device_record_s *result = 0 ;
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  switch_time_t result;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (switch_device_record_s *) ((arg1)->parent);
-  jresult = (void *)result
+  arg1 = (switch_app_log *)jarg1; 
+  result =  ((arg1)->stamp);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_next_set(void * jarg1, void * jarg2) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_app_log_next_set(void * jarg1, void * jarg2) {
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  switch_app_log *arg2 = (switch_app_log *) 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  arg2 = (device_uuid_node_s *)jarg2; 
+  arg1 = (switch_app_log *)jarg1; 
+  arg2 = (switch_app_log *)jarg2; 
   if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_next_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_app_log_next_get(void * jarg1) {
   void * jresult ;
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
-  device_uuid_node_s *result = 0 ;
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
+  switch_app_log *result = 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
-  result = (device_uuid_node_s *) ((arg1)->next);
+  arg1 = (switch_app_log *)jarg1; 
+  result = (switch_app_log *) ((arg1)->next);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_node_t() {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_app_log() {
   void * jresult ;
-  device_uuid_node_s *result = 0 ;
+  switch_app_log *result = 0 ;
   
-  result = (device_uuid_node_s *)new device_uuid_node_s();
+  result = (switch_app_log *)new switch_app_log();
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_node_t(void * jarg1) {
-  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_app_log(void * jarg1) {
+  switch_app_log *arg1 = (switch_app_log *) 0 ;
   
-  arg1 = (device_uuid_node_s *)jarg1; 
+  arg1 = (switch_app_log *)jarg1; 
   delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_func_set(void * jarg1, void * jarg2) {
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  switch_thread_start_t arg2 ;
+  switch_thread_start_t *argp2 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->total = arg2;
+  arg1 = (switch_thread_data_s *)jarg1; 
+  argp2 = (switch_thread_start_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_thread_start_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->func = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_func_get(void * jarg1) {
+  void * jresult ;
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  switch_thread_start_t result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->total);
-  jresult = (unsigned long)result
+  arg1 = (switch_thread_data_s *)jarg1; 
+  result =  ((arg1)->func);
+  jresult = new switch_thread_start_t((const switch_thread_start_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_in_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_obj_set(void * jarg1, void * jarg2) {
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->total_in = arg2;
+  arg1 = (switch_thread_data_s *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->obj = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_in_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_obj_get(void * jarg1) {
+  void * jresult ;
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->total_in);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_thread_data_s *)jarg1; 
+  result = (void *) ((arg1)->obj);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_out_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_alloc_set(void * jarg1, int jarg2) {
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->total_out = arg2;
+  arg1 = (switch_thread_data_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->alloc = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_out_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_thread_data_t_alloc_get(void * jarg1) {
+  int jresult ;
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  int result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->total_out);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_thread_data_s *)jarg1; 
+  result = (int) ((arg1)->alloc);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_thread_data_t_pool_set(void * jarg1, void * jarg2) {
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->offhook = arg2;
+  arg1 = (switch_thread_data_s *)jarg1; 
+  arg2 = (switch_memory_pool_t *)jarg2; 
+  if (arg1) (arg1)->pool = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_thread_data_t_pool_get(void * jarg1) {
+  void * jresult ;
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
+  switch_memory_pool_t *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->offhook);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_thread_data_s *)jarg1; 
+  result = (switch_memory_pool_t *) ((arg1)->pool);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_in_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_thread_data_t() {
+  void * jresult ;
+  switch_thread_data_s *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->offhook_in = arg2;
+  result = (switch_thread_data_s *)new switch_thread_data_s();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_in_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_thread_data_t(void * jarg1) {
+  switch_thread_data_s *arg1 = (switch_thread_data_s *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->offhook_in);
-  jresult = (unsigned long)result; 
-  return jresult;
+  arg1 = (switch_thread_data_s *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_out_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_on_set(void * jarg1, void * jarg2) {
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->offhook_out = arg2;
+  arg1 = (switch_hold_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->on = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_out_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_on_get(void * jarg1) {
+  void * jresult ;
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->offhook_out);
-  jresult = (unsigned long)result
+  arg1 = (switch_hold_record_s *)jarg1; 
+  result =  ((arg1)->on);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_off_set(void * jarg1, void * jarg2) {
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->active = arg2;
+  arg1 = (switch_hold_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->off = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_off_get(void * jarg1) {
+  void * jresult ;
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->active);
-  jresult = (unsigned long)result
+  arg1 = (switch_hold_record_s *)jarg1; 
+  result =  ((arg1)->off);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_in_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_uuid_set(void * jarg1, char * jarg2) {
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->active_in = arg2;
+  arg1 = (switch_hold_record_s *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->uuid;
+    if (arg2) {
+      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->uuid, (const char *)arg2);
+    } else {
+      arg1->uuid = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_in_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_hold_record_t_uuid_get(void * jarg1) {
+  char * jresult ;
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->active_in);
-  jresult = (unsigned long)result
+  arg1 = (switch_hold_record_s *)jarg1; 
+  result = (char *) ((arg1)->uuid);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_out_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_hold_record_t_next_set(void * jarg1, void * jarg2) {
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  switch_hold_record_s *arg2 = (switch_hold_record_s *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->active_out = arg2;
+  arg1 = (switch_hold_record_s *)jarg1; 
+  arg2 = (switch_hold_record_s *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_out_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_hold_record_t_next_get(void * jarg1) {
+  void * jresult ;
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
+  switch_hold_record_s *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->active_out);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_hold_record_s *)jarg1; 
+  result = (switch_hold_record_s *) ((arg1)->next);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_hold_record_t() {
+  void * jresult ;
+  switch_hold_record_s *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2
-  if (arg1) (arg1)->held = arg2;
+  result = (switch_hold_record_s *)new switch_hold_record_s();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_hold_record_t(void * jarg1) {
+  switch_hold_record_s *arg1 = (switch_hold_record_s *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->held);
-  jresult = (unsigned long)result; 
-  return jresult;
+  arg1 = (switch_hold_record_s *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_in_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_uuid_set(void * jarg1, char * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->held_in = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->uuid;
+    if (arg2) {
+      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->uuid, (const char *)arg2);
+    } else {
+      arg1->uuid = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_in_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
-  
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->held_in);
-  jresult = (unsigned long)result
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_node_t_uuid_get(void * jarg1) {
+  char * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (char *) ((arg1)->uuid);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_out_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_xml_cdr_set(void * jarg1, void * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_xml_t arg2 = (switch_xml_t) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->held_out = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_xml_t)jarg2; 
+  if (arg1) (arg1)->xml_cdr = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_out_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_xml_cdr_get(void * jarg1) {
+  void * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_xml_t result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->held_out);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_xml_t) ((arg1)->xml_cdr);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_unheld_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t__event_set(void * jarg1, void * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_event_t *arg2 = (switch_event_t *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->unheld = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_event_t *)jarg2; 
+  if (arg1) (arg1)->event = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_unheld_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t__event_get(void * jarg1) {
+  void * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_event_t *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->unheld);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_event_t *) ((arg1)->event);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_unheld_in_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_callstate_set(void * jarg1, int jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_channel_callstate_t arg2 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->unheld_in = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_channel_callstate_t)jarg2; 
+  if (arg1) (arg1)->callstate = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_unheld_in_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_node_t_callstate_get(void * jarg1) {
+  int jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_channel_callstate_t result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->unheld_in);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_channel_callstate_t) ((arg1)->callstate);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_unheld_out_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_hold_record_set(void * jarg1, void * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_hold_record_t *arg2 = (switch_hold_record_t *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->unheld_out = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_hold_record_t *)jarg2; 
+  if (arg1) (arg1)->hold_record = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_unheld_out_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_hold_record_get(void * jarg1) {
+  void * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_hold_record_t *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->unheld_out);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_hold_record_t *) ((arg1)->hold_record);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_hup_profile_set(void * jarg1, void * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->hup = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_caller_profile_t *)jarg2; 
+  if (arg1) (arg1)->hup_profile = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_hup_profile_get(void * jarg1) {
+  void * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_caller_profile_t *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->hup);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_caller_profile_t *) ((arg1)->hup_profile);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_in_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_direction_set(void * jarg1, int jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_call_direction_t arg2 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->hup_in = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_call_direction_t)jarg2; 
+  if (arg1) (arg1)->direction = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_in_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_node_t_direction_get(void * jarg1) {
+  int jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_call_direction_t result;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->hup_in);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_call_direction_t) ((arg1)->direction);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_out_set(void * jarg1, unsigned long jarg2) {
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_parent_set(void * jarg1, void * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_device_record_s *arg2 = (switch_device_record_s *) 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->hup_out = arg2;
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (switch_device_record_s *)jarg2; 
+  if (arg1) (arg1)->parent = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_out_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_parent_get(void * jarg1) {
+  void * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  switch_device_record_s *result = 0 ;
   
-  arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->hup_out);
-  jresult = (unsigned long)result; 
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (switch_device_record_s *) ((arg1)->parent);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_node_t_next_set(void * jarg1, void * jarg2) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;
+  
+  arg1 = (device_uuid_node_s *)jarg1; 
+  arg2 = (device_uuid_node_s *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_node_t_next_get(void * jarg1) {
+  void * jresult ;
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  device_uuid_node_s *result = 0 ;
+  
+  arg1 = (device_uuid_node_s *)jarg1; 
+  result = (device_uuid_node_s *) ((arg1)->next);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_node_t() {
+  void * jresult ;
+  device_uuid_node_s *result = 0 ;
+  
+  result = (device_uuid_node_s *)new device_uuid_node_s();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_node_t(void * jarg1) {
+  device_uuid_node_s *arg1 = (device_uuid_node_s *) 0 ;
+  
+  arg1 = (device_uuid_node_s *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->ringing = arg2;
+  if (arg1) (arg1)->total = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->ringing);
+  result = (uint32_t) ((arg1)->total);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_in_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_in_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->ringing_in = arg2;
+  if (arg1) (arg1)->total_in = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_in_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_in_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->ringing_in);
+  result = (uint32_t) ((arg1)->total_in);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_out_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_total_out_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->ringing_out = arg2;
+  if (arg1) (arg1)->total_out = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_out_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_total_out_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->ringing_out);
+  result = (uint32_t) ((arg1)->total_out);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->early = arg2;
+  if (arg1) (arg1)->offhook = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->early);
+  result = (uint32_t) ((arg1)->offhook);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_in_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_in_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->early_in = arg2;
+  if (arg1) (arg1)->offhook_in = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_in_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_in_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->early_in);
+  result = (uint32_t) ((arg1)->offhook_in);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_out_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_offhook_out_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->early_out = arg2;
+  if (arg1) (arg1)->offhook_out = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_out_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_offhook_out_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->early_out);
+  result = (uint32_t) ((arg1)->offhook_out);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ring_wait_set(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_set(void * jarg1, unsigned long jarg2) {
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t arg2 ;
   
   arg1 = (switch_device_stats_s *)jarg1; 
   arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->ring_wait = arg2;
+  if (arg1) (arg1)->active = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ring_wait_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_get(void * jarg1) {
   unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
   uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  result = (uint32_t) ((arg1)->ring_wait);
+  result = (uint32_t) ((arg1)->active);
   jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_stats_t() {
-  void * jresult ;
-  switch_device_stats_s *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_in_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  result = (switch_device_stats_s *)new switch_device_stats_s();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2
+  if (arg1) (arg1)->active_in = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_stats_t(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_in_get(void * jarg1) {
+  unsigned long jresult ;
   switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
   arg1 = (switch_device_stats_s *)jarg1; 
-  delete arg1;
+  result = (uint32_t) ((arg1)->active_in);
+  jresult = (unsigned long)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_device_id_set(void * jarg1, char * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_active_out_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->device_id;
-    if (arg2) {
-      arg1->device_id = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->device_id, (const char *)arg2);
-    } else {
-      arg1->device_id = 0;
-    }
-  }
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->active_out = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_record_t_device_id_get(void * jarg1) {
-  char * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_active_out_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (char *) ((arg1)->device_id);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->active_out);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_set(void * jarg1, char * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->uuid;
-    if (arg2) {
-      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->uuid, (const char *)arg2);
-    } else {
-      arg1->uuid = 0;
-    }
-  }
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->held = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_record_t_uuid_get(void * jarg1) {
-  char * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (char *) ((arg1)->uuid);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->held);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_refs_set(void * jarg1, int jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_in_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->refs = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->held_in = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_refs_get(void * jarg1) {
-  int jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  int result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_in_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (int) ((arg1)->refs);
-  jresult = result; 
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->held_in);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_stats_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_stats_t *arg2 = (switch_device_stats_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_held_out_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (switch_device_stats_t *)jarg2; 
-  if (arg1) (arg1)->stats = *arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->held_out = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_stats_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_stats_t *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_held_out_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (switch_device_stats_t *)& ((arg1)->stats);
-  jresult = (void *)result; 
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->held_out);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_stats_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_stats_t *arg2 = (switch_device_stats_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_unheld_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (switch_device_stats_t *)jarg2; 
-  if (arg1) (arg1)->last_stats = *arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->unheld = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_last_stats_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_stats_t *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_unheld_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (switch_device_stats_t *)& ((arg1)->last_stats);
-  jresult = (void *)result; 
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->unheld);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_state_set(void * jarg1, int jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_state_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_unheld_in_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (switch_device_state_t)jarg2; 
-  if (arg1) (arg1)->state = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->unheld_in = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_state_get(void * jarg1) {
-  int jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_state_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_unheld_in_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (switch_device_state_t) ((arg1)->state);
-  jresult = result; 
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->unheld_in);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_state_set(void * jarg1, int jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_state_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_unheld_out_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (switch_device_state_t)jarg2; 
-  if (arg1) (arg1)->last_state = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->unheld_out = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_last_state_get(void * jarg1) {
-  int jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_device_state_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_unheld_out_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (switch_device_state_t) ((arg1)->last_state);
-  jresult = result; 
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->unheld_out);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_active_start_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
-  
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->active_start = arg2;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
+  
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->hup = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_active_start_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->active_start);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->hup);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_active_stop_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_in_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->active_stop = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->hup_in = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_active_stop_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_in_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->active_stop);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->hup_in);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_call_time_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_hup_out_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->last_call_time = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->hup_out = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_last_call_time_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_hup_out_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->last_call_time);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->hup_out);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_ring_start_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->ring_start = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->ringing = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_ring_start_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->ring_start);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->ringing);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_ring_stop_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_in_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->ring_stop = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->ringing_in = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_ring_stop_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_in_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->ring_stop);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->ringing_in);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_hold_start_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ringing_out_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->hold_start = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->ringing_out = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_hold_start_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ringing_out_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->hold_start);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->ringing_out);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_hold_stop_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->hold_stop = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->early = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_hold_stop_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->hold_stop);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->early);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_call_start_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_in_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->call_start = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->early_in = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_call_start_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_time_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_in_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result =  ((arg1)->call_start);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->early_in);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_list_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;
-  
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (device_uuid_node_s *)jarg2; 
-  if (arg1) (arg1)->uuid_list = arg2;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_early_out_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
+  
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->early_out = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_uuid_list_get(void * jarg1) {
-  void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  device_uuid_node_s *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_early_out_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (device_uuid_node_s *) ((arg1)->uuid_list);
-  jresult = (void *)result; 
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->early_out);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_tail_set(void * jarg1, void * jarg2) {
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_stats_t_ring_wait_set(void * jarg1, unsigned long jarg2) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (device_uuid_node_s *)jarg2; 
-  if (arg1) (arg1)->uuid_tail = arg2;
+  arg1 = (switch_device_stats_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->ring_wait = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_uuid_tail_get(void * jarg1) {
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_device_stats_t_ring_wait_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  uint32_t result;
+  
+  arg1 = (switch_device_stats_s *)jarg1; 
+  result = (uint32_t) ((arg1)->ring_wait);
+  jresult = (unsigned long)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_stats_t() {
   void * jresult ;
-  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  device_uuid_node_s *result = 0 ;
+  switch_device_stats_s *result = 0 ;
   
-  arg1 = (switch_device_record_s *)jarg1; 
-  result = (device_uuid_node_s *) ((arg1)->uuid_tail);
+  result = (switch_device_stats_s *)new switch_device_stats_s();
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_mutex_set(void * jarg1, void * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_stats_t(void * jarg1) {
+  switch_device_stats_s *arg1 = (switch_device_stats_s *) 0 ;
+  
+  arg1 = (switch_device_stats_s *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_device_id_set(void * jarg1, char * jarg2) {
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+  char *arg2 = (char *) 0 ;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (switch_mutex_t *)jarg2; 
-  if (arg1) (arg1)->mutex = arg2;
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->device_id;
+    if (arg2) {
+      arg1->device_id = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->device_id, (const char *)arg2);
+    } else {
+      arg1->device_id = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_mutex_get(void * jarg1) {
-  void * jresult ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_record_t_device_id_get(void * jarg1) {
+  char * jresult ;
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_mutex_t *result = 0 ;
+  char *result = 0 ;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  result = (switch_mutex_t *) ((arg1)->mutex);
-  jresult = (void *)result
+  result = (char *) ((arg1)->device_id);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_pool_set(void * jarg1, void * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_set(void * jarg1, char * jarg2) {
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
+  char *arg2 = (char *) 0 ;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (switch_memory_pool_t *)jarg2; 
-  if (arg1) (arg1)->pool = arg2;
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->uuid;
+    if (arg2) {
+      arg1->uuid = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->uuid, (const char *)arg2);
+    } else {
+      arg1->uuid = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_pool_get(void * jarg1) {
-  void * jresult ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_device_record_t_uuid_get(void * jarg1) {
+  char * jresult ;
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  switch_memory_pool_t *result = 0 ;
+  char *result = 0 ;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  result = (switch_memory_pool_t *) ((arg1)->pool);
-  jresult = (void *)result
+  result = (char *) ((arg1)->uuid);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_user_data_set(void * jarg1, void * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_refs_set(void * jarg1, int jarg2) {
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  void *arg2 = (void *) 0 ;
+  int arg2 ;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->user_data = arg2;
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->refs = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_user_data_get(void * jarg1) {
-  void * jresult ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_refs_get(void * jarg1) {
+  int jresult ;
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
-  void *result = 0 ;
+  int result;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  result = (void *) ((arg1)->user_data);
-  jresult = (void *)result; 
+  result = (int) ((arg1)->refs);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_record_t() {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_stats_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_stats_t *arg2 = (switch_device_stats_t *) 0 ;
+  
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (switch_device_stats_t *)jarg2; 
+  if (arg1) (arg1)->stats = *arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_stats_get(void * jarg1) {
   void * jresult ;
-  switch_device_record_s *result = 0 ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_stats_t *result = 0 ;
   
-  result = (switch_device_record_s *)new switch_device_record_s();
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (switch_device_stats_t *)& ((arg1)->stats);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_record_t(void * jarg1) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_stats_set(void * jarg1, void * jarg2) {
   switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_stats_t *arg2 = (switch_device_stats_t *) 0 ;
   
   arg1 = (switch_device_record_s *)jarg1; 
-  delete arg1;
+  arg2 = (switch_device_stats_t *)jarg2; 
+  if (arg1) (arg1)->last_stats = *arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_DTLS_SRTP_FNAME_get() {
-  char * jresult ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_last_stats_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_stats_t *result = 0 ;
   
-  result = (char *)("dtls-srtp");
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (switch_device_stats_t *)& ((arg1)->last_stats);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_MAX_FPLEN_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_state_set(void * jarg1, int jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_state_t arg2 ;
   
-  result = (int)(64);
-  jresult = result
-  return jresult;
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (switch_device_state_t)jarg2
+  if (arg1) (arg1)->state = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_MAX_FPSTRLEN_get() {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_state_get(void * jarg1) {
   int jresult ;
-  int result;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_state_t result;
   
-  result = (int)(192);
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (switch_device_state_t) ((arg1)->state);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_len_set(void * jarg1, unsigned long jarg2) {
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_state_set(void * jarg1, int jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_state_t arg2 ;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->len = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (switch_device_state_t)jarg2; 
+  if (arg1) (arg1)->last_state = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_dtls_fingerprint_t_len_get(void * jarg1) {
-  unsigned long jresult ;
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  uint32_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_device_record_t_last_state_get(void * jarg1) {
+  int jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_device_state_t result;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  result = (uint32_t) ((arg1)->len);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (switch_device_state_t) ((arg1)->last_state);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_data_set(void * jarg1, void * jarg2) {
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  uint8_t *arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_active_start_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  arg2 = (uint8_t *)jarg2; 
-  {
-    size_t ii;
-    uint8_t *b = (uint8_t *) arg1->data;
-    for (ii = 0; ii < (size_t)64+1; ii++) b[ii] = *((uint8_t *) arg2 + ii);
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
   }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->active_start = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_dtls_fingerprint_t_data_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_active_start_get(void * jarg1) {
   void * jresult ;
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  uint8_t *result = 0 ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  result = (uint8_t *)(uint8_t *) ((arg1)->data);
-  jresult = result
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->active_start);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_type_set(void * jarg1, char * jarg2) {
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_active_stop_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->type;
-    if (arg2) {
-      arg1->type = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->type, (const char *)arg2);
-    } else {
-      arg1->type = 0;
-    }
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
   }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->active_stop = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_dtls_fingerprint_t_type_get(void * jarg1) {
-  char * jresult ;
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_active_stop_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  result = (char *) ((arg1)->type);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->active_stop);
+  jresult = new switch_time_t((const switch_time_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_str_set(void * jarg1, char * jarg2) {
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  char *arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_last_call_time_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    if(arg2) {
-      strncpy((char*)arg1->str, (const char *)arg2, 192-1);
-      arg1->str[192-1] = 0;
-    } else {
-      arg1->str[0] = 0;
-    }
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
   }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->last_call_time = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_dtls_fingerprint_t_str_get(void * jarg1) {
-  char * jresult ;
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_last_call_time_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  result = (char *)(char *) ((arg1)->str);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->last_call_time);
+  jresult = new switch_time_t((const switch_time_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_dtls_fingerprint_t() {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_ring_start_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
+  
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->ring_start = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_ring_start_get(void * jarg1) {
   void * jresult ;
-  dtls_fp_s *result = 0 ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  result = (dtls_fp_s *)new dtls_fp_s();
-  jresult = (void *)result; 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->ring_start);
+  jresult = new switch_time_t((const switch_time_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_dtls_fingerprint_t(void * jarg1) {
-  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_ring_stop_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (dtls_fp_s *)jarg1; 
-  delete arg1;
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->ring_stop = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_MESSAGE_STRING_ARG_MAX_get() {
-  int jresult ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_ring_stop_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  result = (int)(10);
-  jresult = result; 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->ring_stop);
+  jresult = new switch_time_t((const switch_time_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_from_set(void * jarg1, char * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_hold_start_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->from;
-    if (arg2) {
-      arg1->from = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->from, (const char *)arg2);
-    } else {
-      arg1->from = 0;
-    }
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
   }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->hold_start = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message_from_get(void * jarg1) {
-  char * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_hold_start_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (char *) ((arg1)->from);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->hold_start);
+  jresult = new switch_time_t((const switch_time_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_message_id_set(void * jarg1, int jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_core_session_message_types_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_hold_stop_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (switch_core_session_message_types_t)jarg2; 
-  if (arg1) (arg1)->message_id = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->hold_stop = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message_message_id_get(void * jarg1) {
-  int jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_core_session_message_types_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_hold_stop_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (switch_core_session_message_types_t) ((arg1)->message_id);
-  jresult = result
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->hold_stop);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_numeric_arg_set(void * jarg1, int jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_call_start_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->numeric_arg = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->call_start = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message_numeric_arg_get(void * jarg1) {
-  int jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_call_start_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_time_t result;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (int) ((arg1)->numeric_arg);
-  jresult = result
+  arg1 = (switch_device_record_s *)jarg1; 
+  result =  ((arg1)->call_start);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_arg_set(void * jarg1, char * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_list_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    if (arg2) {
-      arg1->string_arg = (char const *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->string_arg, (const char *)arg2);
-    } else {
-      arg1->string_arg = 0;
-    }
-  }
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (device_uuid_node_s *)jarg2; 
+  if (arg1) (arg1)->uuid_list = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message_string_arg_get(void * jarg1) {
-  char * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_uuid_list_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  device_uuid_node_s *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (char *) ((arg1)->string_arg);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (device_uuid_node_s *) ((arg1)->uuid_list);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_arg_size_set(void * jarg1, void * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_uuid_tail_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  device_uuid_node_s *arg2 = (device_uuid_node_s *) 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->string_arg_size = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (device_uuid_node_s *)jarg2; 
+  if (arg1) (arg1)->uuid_tail = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_arg_size_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_uuid_tail_get(void * jarg1) {
   void * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t result;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  device_uuid_node_s *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result =  ((arg1)->string_arg_size);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (device_uuid_node_s *) ((arg1)->uuid_tail);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_set(void * jarg1, void * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_mutex_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->pointer_arg = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (switch_mutex_t *)jarg2; 
+  if (arg1) (arg1)->mutex = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_mutex_get(void * jarg1) {
   void * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  void *result = 0 ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_mutex_t *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (void *) ((arg1)->pointer_arg);
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (switch_mutex_t *) ((arg1)->mutex);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_size_set(void * jarg1, void * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_pool_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->pointer_arg_size = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (switch_memory_pool_t *)jarg2; 
+  if (arg1) (arg1)->pool = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_size_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_pool_get(void * jarg1) {
   void * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t result;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  switch_memory_pool_t *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result =  ((arg1)->pointer_arg_size);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (switch_memory_pool_t *) ((arg1)->pool);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_numeric_reply_set(void * jarg1, int jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_device_record_t_user_data_set(void * jarg1, void * jarg2) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->numeric_reply = arg2;
+  arg1 = (switch_device_record_s *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->user_data = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message_numeric_reply_get(void * jarg1) {
-  int jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_device_record_t_user_data_get(void * jarg1) {
+  void * jresult ;
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (int) ((arg1)->numeric_reply);
-  jresult = result; 
+  arg1 = (switch_device_record_s *)jarg1; 
+  result = (void *) ((arg1)->user_data);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_reply_set(void * jarg1, char * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_device_record_t() {
+  void * jresult ;
+  switch_device_record_s *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->string_reply;
-    if (arg2) {
-      arg1->string_reply = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->string_reply, (const char *)arg2);
-    } else {
-      arg1->string_reply = 0;
-    }
-  }
+  result = (switch_device_record_s *)new switch_device_record_s();
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message_string_reply_get(void * jarg1) {
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_device_record_t(void * jarg1) {
+  switch_device_record_s *arg1 = (switch_device_record_s *) 0 ;
+  
+  arg1 = (switch_device_record_s *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_DTLS_SRTP_FNAME_get() {
   char * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   char *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (char *) ((arg1)->string_reply);
+  result = (char *)("dtls-srtp");
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_reply_size_set(void * jarg1, void * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_MAX_FPLEN_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->string_reply_size = arg2;
+  result = (int)(64);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_reply_size_get(void * jarg1) {
-  void * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_MAX_FPSTRLEN_get() {
+  int jresult ;
+  int result;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result =  ((arg1)->string_reply_size);
-  jresult = new switch_size_t((const switch_size_t &)result); 
+  result = (int)(192);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_set(void * jarg1, void * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_len_set(void * jarg1, unsigned long jarg2) {
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->pointer_reply = arg2;
+  arg1 = (dtls_fp_s *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->len = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_get(void * jarg1) {
-  void * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  void *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_dtls_fingerprint_t_len_get(void * jarg1) {
+  unsigned long jresult ;
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (void *) ((arg1)->pointer_reply);
-  jresult = (void *)result; 
+  arg1 = (dtls_fp_s *)jarg1; 
+  result = (uint32_t) ((arg1)->len);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_size_set(void * jarg1, void * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_data_set(void * jarg1, void * jarg2) {
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  uint8_t *arg2 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
+  arg1 = (dtls_fp_s *)jarg1; 
+  arg2 = (uint8_t *)jarg2; 
+  {
+    size_t ii;
+    uint8_t *b = (uint8_t *) arg1->data;
+    for (ii = 0; ii < (size_t)64+1; ii++) b[ii] = *((uint8_t *) arg2 + ii);
   }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->pointer_reply_size = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_size_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_dtls_fingerprint_t_data_get(void * jarg1) {
   void * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_size_t result;
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  uint8_t *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result =  ((arg1)->pointer_reply_size);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  arg1 = (dtls_fp_s *)jarg1; 
+  result = (uint8_t *)(uint8_t *) ((arg1)->data);
+  jresult = result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_flags_set(void * jarg1, unsigned long jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_core_session_message_flag_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_type_set(void * jarg1, char * jarg2) {
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (switch_core_session_message_flag_t)jarg2; 
-  if (arg1) (arg1)->flags = arg2;
+  arg1 = (dtls_fp_s *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->type;
+    if (arg2) {
+      arg1->type = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->type, (const char *)arg2);
+    } else {
+      arg1->type = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_session_message_flags_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  switch_core_session_message_flag_t result;
-  
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (switch_core_session_message_flag_t) ((arg1)->flags);
-  jresult = (unsigned long)result
+SWIGEXPORT char * SWIGSTDCALL CSharp_dtls_fingerprint_t_type_get(void * jarg1) {
+  char * jresult ;
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (dtls_fp_s *)jarg1; 
+  result = (char *) ((arg1)->type);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message__file_set(void * jarg1, char * jarg2) {
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_dtls_fingerprint_t_str_set(void * jarg1, char * jarg2) {
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  char *arg2 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
+  arg1 = (dtls_fp_s *)jarg1; 
   arg2 = (char *)jarg2; 
   {
-    if (arg2) {
-      arg1->_file = (char const *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->_file, (const char *)arg2);
+    if(arg2) {
+      strncpy((char*)arg1->str, (const char *)arg2, 192-1);
+      arg1->str[192-1] = 0;
     } else {
-      arg1->_file = 0;
+      arg1->str[0] = 0;
     }
   }
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message__file_get(void * jarg1) {
+SWIGEXPORT char * SWIGSTDCALL CSharp_dtls_fingerprint_t_str_get(void * jarg1) {
   char * jresult ;
-  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
   char *result = 0 ;
   
-  arg1 = (switch_core_session_message *)jarg1; 
-  result = (char *) ((arg1)->_file);
+  arg1 = (dtls_fp_s *)jarg1; 
+  result = (char *)(char *) ((arg1)->str);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message__func_set(void * jarg1, char * jarg2) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_dtls_fingerprint_t() {
+  void * jresult ;
+  dtls_fp_s *result = 0 ;
+  
+  result = (dtls_fp_s *)new dtls_fp_s();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_dtls_fingerprint_t(void * jarg1) {
+  dtls_fp_s *arg1 = (dtls_fp_s *) 0 ;
+  
+  arg1 = (dtls_fp_s *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_MESSAGE_STRING_ARG_MAX_get() {
+  int jresult ;
+  int result;
+  
+  result = (int)(10);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_from_set(void * jarg1, char * jarg2) {
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   char *arg2 = (char *) 0 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
   arg2 = (char *)jarg2; 
   {
+    delete [] arg1->from;
     if (arg2) {
-      arg1->_func = (char const *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->_func, (const char *)arg2);
+      arg1->from = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->from, (const char *)arg2);
     } else {
-      arg1->_func = 0;
+      arg1->from = 0;
     }
   }
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message__func_get(void * jarg1) {
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message_from_get(void * jarg1) {
   char * jresult ;
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   char *result = 0 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  result = (char *) ((arg1)->_func);
+  result = (char *) ((arg1)->from);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message__line_set(void * jarg1, int jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_message_id_set(void * jarg1, int jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_core_session_message_types_t arg2 ;
+  
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (switch_core_session_message_types_t)jarg2; 
+  if (arg1) (arg1)->message_id = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message_message_id_get(void * jarg1) {
+  int jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_core_session_message_types_t result;
+  
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (switch_core_session_message_types_t) ((arg1)->message_id);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_numeric_arg_set(void * jarg1, int jarg2) {
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   int arg2 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
   arg2 = (int)jarg2; 
-  if (arg1) (arg1)->_line = arg2;
+  if (arg1) (arg1)->numeric_arg = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message__line_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message_numeric_arg_get(void * jarg1) {
   int jresult ;
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   int result;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  result = (int) ((arg1)->_line);
+  result = (int) ((arg1)->numeric_arg);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_array_arg_set(void * jarg1, void * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_arg_set(void * jarg1, char * jarg2) {
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char **arg2 ;
+  char *arg2 = (char *) 0 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  arg2 = (char **)jarg2; 
+  arg2 = (char *)jarg2; 
   {
-    size_t ii;
-    char const * *b = (char const * *) arg1->string_array_arg;
-    for (ii = 0; ii < (size_t)10; ii++) b[ii] = *((char const * *) arg2 + ii);
+    if (arg2) {
+      arg1->string_arg = (char const *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->string_arg, (const char *)arg2);
+    } else {
+      arg1->string_arg = 0;
+    }
   }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_array_arg_get(void * jarg1) {
-  void * jresult ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message_string_arg_get(void * jarg1) {
+  char * jresult ;
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  char **result = 0 ;
+  char *result = 0 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  result = (char **)(char **) ((arg1)->string_array_arg);
-  jresult = result
+  result = (char *) ((arg1)->string_arg);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_delivery_time_set(void * jarg1, void * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_arg_size_set(void * jarg1, void * jarg2) {
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  time_t arg2 ;
-  time_t *argp2 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  argp2 = (time_t *)jarg2; 
+  argp2 = (switch_size_t *)jarg2; 
   if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null time_t", 0);
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
     return ;
   }
   arg2 = *argp2; 
-  if (arg1) (arg1)->delivery_time = arg2;
+  if (arg1) (arg1)->string_arg_size = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_delivery_time_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_arg_size_get(void * jarg1) {
   void * jresult ;
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
-  time_t result;
+  switch_size_t result;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  result =  ((arg1)->delivery_time);
-  jresult = new time_t((const time_t &)result); 
+  result =  ((arg1)->string_arg_size);
+  jresult = new switch_size_t((const switch_size_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_session_message() {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_set(void * jarg1, void * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  void *arg2 = (void *) 0 ;
+  
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->pointer_arg = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_get(void * jarg1) {
   void * jresult ;
-  switch_core_session_message *result = 0 ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  void *result = 0 ;
   
-  result = (switch_core_session_message *)new switch_core_session_message();
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (void *) ((arg1)->pointer_arg);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_core_session_message(void * jarg1) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_size_set(void * jarg1, void * jarg2) {
   switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
   arg1 = (switch_core_session_message *)jarg1; 
-  delete arg1;
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->pointer_arg_size = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_running_set(void * jarg1, int jarg2) {
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_arg_size_get(void * jarg1) {
+  void * jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_size_t result;
+  
+  arg1 = (switch_core_session_message *)jarg1; 
+  result =  ((arg1)->pointer_arg_size);
+  jresult = new switch_size_t((const switch_size_t &)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_numeric_reply_set(void * jarg1, int jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   int arg2 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
+  arg1 = (switch_core_session_message *)jarg1; 
   arg2 = (int)jarg2; 
-  if (arg1) (arg1)->running = arg2;
+  if (arg1) (arg1)->numeric_reply = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_thread_session_running_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message_numeric_reply_get(void * jarg1) {
   int jresult ;
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   int result;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  result = (int) ((arg1)->running);
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (int) ((arg1)->numeric_reply);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_mutex_set(void * jarg1, void * jarg2) {
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_reply_set(void * jarg1, char * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  arg2 = (switch_mutex_t *)jarg2; 
-  if (arg1) (arg1)->mutex = arg2;
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->string_reply;
+    if (arg2) {
+      arg1->string_reply = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->string_reply, (const char *)arg2);
+    } else {
+      arg1->string_reply = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_mutex_get(void * jarg1) {
-  void * jresult ;
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  switch_mutex_t *result = 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message_string_reply_get(void * jarg1) {
+  char * jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  result = (switch_mutex_t *) ((arg1)->mutex);
-  jresult = (void *)result
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (char *) ((arg1)->string_reply);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_objs_set(void * jarg1, void * jarg2) {
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  void **arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_reply_size_set(void * jarg1, void * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  arg2 = (void **)jarg2; 
-  {
-    size_t ii;
-    void * *b = (void * *) arg1->objs;
-    for (ii = 0; ii < (size_t)128; ii++) b[ii] = *((void * *) arg2 + ii);
-  }
+  arg1 = (switch_core_session_message *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->string_reply_size = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_objs_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_reply_size_get(void * jarg1) {
   void * jresult ;
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  void **result = 0 ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  result = (void **)(void **) ((arg1)->objs);
-  jresult = result
+  arg1 = (switch_core_session_message *)jarg1; 
+  result =  ((arg1)->string_reply_size);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_input_callback_set(void * jarg1, void * jarg2) {
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  switch_input_callback_function_t arg2 = (switch_input_callback_function_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_set(void * jarg1, void * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  arg2 = (switch_input_callback_function_t)jarg2; 
-  if (arg1) (arg1)->input_callback = arg2;
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->pointer_reply = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_input_callback_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_get(void * jarg1) {
   void * jresult ;
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  switch_input_callback_function_t result;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  result = (switch_input_callback_function_t) ((arg1)->input_callback);
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (void *) ((arg1)->pointer_reply);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_pool_set(void * jarg1, void * jarg2) {
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_size_set(void * jarg1, void * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  arg2 = (switch_memory_pool_t *)jarg2; 
-  if (arg1) (arg1)->pool = arg2;
+  arg1 = (switch_core_session_message *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->pointer_reply_size = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_pool_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_pointer_reply_size_get(void * jarg1) {
   void * jresult ;
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
-  switch_memory_pool_t *result = 0 ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  result = (switch_memory_pool_t *) ((arg1)->pool);
-  jresult = (void *)result
+  arg1 = (switch_core_session_message *)jarg1; 
+  result =  ((arg1)->pointer_reply_size);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_thread_session() {
-  void * jresult ;
-  switch_core_thread_session *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_flags_set(void * jarg1, unsigned long jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_core_session_message_flag_t arg2 ;
   
-  result = (switch_core_thread_session *)new switch_core_thread_session();
-  jresult = (void *)result; 
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (switch_core_session_message_flag_t)jarg2; 
+  if (arg1) (arg1)->flags = arg2;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_core_session_message_flags_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  switch_core_session_message_flag_t result;
+  
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (switch_core_session_message_flag_t) ((arg1)->flags);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_core_thread_session(void * jarg1) {
-  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message__file_set(void * jarg1, char * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_core_thread_session *)jarg1; 
-  delete arg1;
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg2) {
+      arg1->_file = (char const *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->_file, (const char *)arg2);
+    } else {
+      arg1->_file = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_must_malloc(unsigned long jarg1) {
-  void * jresult ;
-  size_t arg1 ;
-  void *result = 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message__file_get(void * jarg1) {
+  char * jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (size_t)jarg1; 
-  result = (void *)switch_must_malloc(arg1);
-  jresult = (void *)result
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (char *) ((arg1)->_file);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_must_realloc(void * jarg1, unsigned long jarg2) {
-  void * jresult ;
-  void *arg1 = (void *) 0 ;
-  size_t arg2 ;
-  void *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message__func_set(void * jarg1, char * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (void *)jarg1; 
-  arg2 = (size_t)jarg2; 
-  result = (void *)switch_must_realloc(arg1,arg2);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg2) {
+      arg1->_func = (char const *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->_func, (const char *)arg2);
+    } else {
+      arg1->_func = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_must_strdup(char * jarg1) {
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_session_message__func_get(void * jarg1) {
   char * jresult ;
-  char *arg1 = (char *) 0 ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
   char *result = 0 ;
   
-  arg1 = (char *)jarg1; 
-  result = (char *)switch_must_strdup((char const *)arg1);
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (char *) ((arg1)->_func);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_screen_size(void * jarg1, void * jarg2) {
-  int *arg1 = (int *) 0 ;
-  int *arg2 = (int *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message__line_set(void * jarg1, int jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  int arg2 ;
   
-  arg1 = (int *)jarg1; 
-  arg2 = (int *)jarg2; 
-  switch_core_screen_size(arg1,arg2);
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->_line = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_sched_heartbeat(void * jarg1, unsigned long jarg2) {
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_session_message__line_get(void * jarg1) {
+  int jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  int result;
   
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  switch_core_session_sched_heartbeat(arg1,arg2);
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (int) ((arg1)->_line);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_unsched_heartbeat(void * jarg1) {
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_string_array_arg_set(void * jarg1, void * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char **arg2 ;
   
-  arg1 = (switch_core_session_t *)jarg1; 
-  switch_core_session_unsched_heartbeat(arg1);
+  arg1 = (switch_core_session_message *)jarg1; 
+  arg2 = (char **)jarg2; 
+  {
+    size_t ii;
+    char const * *b = (char const * *) arg1->string_array_arg;
+    for (ii = 0; ii < (size_t)10; ii++) b[ii] = *((char const * *) arg2 + ii);
+  }
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_enable_heartbeat(void * jarg1, unsigned long jarg2) {
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_array_arg_get(void * jarg1) {
+  void * jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  char **result = 0 ;
   
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  switch_core_session_enable_heartbeat(arg1,arg2);
+  arg1 = (switch_core_session_message *)jarg1; 
+  result = (char **)(char **) ((arg1)->string_array_arg);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_disable_heartbeat(void * jarg1) {
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_delivery_time_set(void * jarg1, void * jarg2) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  time_t arg2 ;
+  time_t *argp2 ;
   
-  arg1 = (switch_core_session_t *)jarg1; 
-  switch_core_session_disable_heartbeat(arg1);
+  arg1 = (switch_core_session_message *)jarg1; 
+  argp2 = (time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->delivery_time = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_pop(void * jarg1, char * jarg2, void * jarg3) {
-  int jresult ;
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  switch_media_bug_t **arg3 = (switch_media_bug_t **) 0 ;
-  switch_status_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_delivery_time_get(void * jarg1) {
+  void * jresult ;
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  time_t result;
   
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (switch_media_bug_t **)jarg3; 
-  result = (switch_status_t)switch_core_media_bug_pop(arg1,(char const *)arg2,arg3);
-  jresult = result; 
+  arg1 = (switch_core_session_message *)jarg1; 
+  result =  ((arg1)->delivery_time);
+  jresult = new time_t((const time_t &)result); 
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_exec_all(void * jarg1, char * jarg2, void * jarg3, void * jarg4) {
-  int jresult ;
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  switch_media_bug_exec_cb_t arg3 = (switch_media_bug_exec_cb_t) 0 ;
-  void *arg4 = (void *) 0 ;
-  switch_status_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_session_message() {
+  void * jresult ;
+  switch_core_session_message *result = 0 ;
   
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (char *)jarg2; 
+  result = (switch_core_session_message *)new switch_core_session_message();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_core_session_message(void * jarg1) {
+  switch_core_session_message *arg1 = (switch_core_session_message *) 0 ;
+  
+  arg1 = (switch_core_session_message *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_running_set(void * jarg1, int jarg2) {
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  int arg2 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->running = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_thread_session_running_get(void * jarg1) {
+  int jresult ;
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  int result;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  result = (int) ((arg1)->running);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_mutex_set(void * jarg1, void * jarg2) {
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  arg2 = (switch_mutex_t *)jarg2; 
+  if (arg1) (arg1)->mutex = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_mutex_get(void * jarg1) {
+  void * jresult ;
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_mutex_t *result = 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  result = (switch_mutex_t *) ((arg1)->mutex);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_objs_set(void * jarg1, void * jarg2) {
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  void **arg2 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  arg2 = (void **)jarg2; 
+  {
+    size_t ii;
+    void * *b = (void * *) arg1->objs;
+    for (ii = 0; ii < (size_t)128; ii++) b[ii] = *((void * *) arg2 + ii);
+  }
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_objs_get(void * jarg1) {
+  void * jresult ;
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  void **result = 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  result = (void **)(void **) ((arg1)->objs);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_input_callback_set(void * jarg1, void * jarg2) {
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_input_callback_function_t arg2 = (switch_input_callback_function_t) 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  arg2 = (switch_input_callback_function_t)jarg2; 
+  if (arg1) (arg1)->input_callback = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_input_callback_get(void * jarg1) {
+  void * jresult ;
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_input_callback_function_t result;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  result = (switch_input_callback_function_t) ((arg1)->input_callback);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_thread_session_pool_set(void * jarg1, void * jarg2) {
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  arg2 = (switch_memory_pool_t *)jarg2; 
+  if (arg1) (arg1)->pool = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_thread_session_pool_get(void * jarg1) {
+  void * jresult ;
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  switch_memory_pool_t *result = 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  result = (switch_memory_pool_t *) ((arg1)->pool);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_thread_session() {
+  void * jresult ;
+  switch_core_thread_session *result = 0 ;
+  
+  result = (switch_core_thread_session *)new switch_core_thread_session();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_core_thread_session(void * jarg1) {
+  switch_core_thread_session *arg1 = (switch_core_thread_session *) 0 ;
+  
+  arg1 = (switch_core_thread_session *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_must_malloc(unsigned long jarg1) {
+  void * jresult ;
+  size_t arg1 ;
+  void *result = 0 ;
+  
+  arg1 = (size_t)jarg1; 
+  result = (void *)switch_must_malloc(arg1);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_must_realloc(void * jarg1, unsigned long jarg2) {
+  void * jresult ;
+  void *arg1 = (void *) 0 ;
+  size_t arg2 ;
+  void *result = 0 ;
+  
+  arg1 = (void *)jarg1; 
+  arg2 = (size_t)jarg2; 
+  result = (void *)switch_must_realloc(arg1,arg2);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_must_strdup(char * jarg1) {
+  char * jresult ;
+  char *arg1 = (char *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (char *)jarg1; 
+  result = (char *)switch_must_strdup((char const *)arg1);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_screen_size(void * jarg1, void * jarg2) {
+  int *arg1 = (int *) 0 ;
+  int *arg2 = (int *) 0 ;
+  
+  arg1 = (int *)jarg1; 
+  arg2 = (int *)jarg2; 
+  switch_core_screen_size(arg1,arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_sched_heartbeat(void * jarg1, unsigned long jarg2) {
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  uint32_t arg2 ;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  switch_core_session_sched_heartbeat(arg1,arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_unsched_heartbeat(void * jarg1) {
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  switch_core_session_unsched_heartbeat(arg1);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_enable_heartbeat(void * jarg1, unsigned long jarg2) {
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  uint32_t arg2 ;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  switch_core_session_enable_heartbeat(arg1,arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_disable_heartbeat(void * jarg1) {
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  switch_core_session_disable_heartbeat(arg1);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_pop(void * jarg1, char * jarg2, void * jarg3) {
+  int jresult ;
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_media_bug_t **arg3 = (switch_media_bug_t **) 0 ;
+  switch_status_t result;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (switch_media_bug_t **)jarg3; 
+  result = (switch_status_t)switch_core_media_bug_pop(arg1,(char const *)arg2,arg3);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_exec_all(void * jarg1, char * jarg2, void * jarg3, void * jarg4) {
+  int jresult ;
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_media_bug_exec_cb_t arg3 = (switch_media_bug_exec_cb_t) 0 ;
+  void *arg4 = (void *) 0 ;
+  switch_status_t result;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (char *)jarg2; 
   arg3 = (switch_media_bug_exec_cb_t)jarg3; 
   arg4 = (void *)jarg4; 
   result = (switch_status_t)switch_core_media_bug_exec_all(arg1,(char const *)arg2,arg3,arg4);
@@ -11054,6 +11512,26 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_media_bug_get_session(void * ja
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_media_bug_set_media_params(void * jarg1, void * jarg2) {
+  switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ;
+  switch_mm_t *arg2 = (switch_mm_t *) 0 ;
+  
+  arg1 = (switch_media_bug_t *)jarg1; 
+  arg2 = (switch_mm_t *)jarg2; 
+  switch_core_media_bug_set_media_params(arg1,arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_media_bug_get_media_params(void * jarg1, void * jarg2) {
+  switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ;
+  switch_mm_t *arg2 = (switch_mm_t *) 0 ;
+  
+  arg1 = (switch_media_bug_t *)jarg1; 
+  arg2 = (switch_mm_t *)jarg2; 
+  switch_core_media_bug_get_media_params(arg1,arg2);
+}
+
+
 SWIGEXPORT char * SWIGSTDCALL CSharp_switch_core_media_bug_get_text(void * jarg1) {
   char * jresult ;
   switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ;
@@ -11168,13 +11646,15 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_remove_callback(void * j
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_close(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_media_bug_close(void * jarg1, int jarg2) {
   int jresult ;
   switch_media_bug_t **arg1 = (switch_media_bug_t **) 0 ;
+  switch_bool_t arg2 ;
   switch_status_t result;
   
   arg1 = (switch_media_bug_t **)jarg1; 
-  result = (switch_status_t)switch_core_media_bug_close(arg1);
+  arg2 = (switch_bool_t)jarg2; 
+  result = (switch_status_t)switch_core_media_bug_close(arg1,arg2);
   jresult = result; 
   return jresult;
 }
@@ -22326,2603 +22806,2086 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_caller_profile() {
   switch_caller_profile *result = 0 ;
   
   result = (switch_caller_profile *)new switch_caller_profile();
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_caller_profile(void * jarg1) {
-  switch_caller_profile *arg1 = (switch_caller_profile *) 0 ;
-  
-  arg1 = (switch_caller_profile *)jarg1; 
-  delete arg1;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_application_name_set(void * jarg1, char * jarg2) {
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->application_name;
-    if (arg2) {
-      arg1->application_name = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->application_name, (const char *)arg2);
-    } else {
-      arg1->application_name = 0;
-    }
-  }
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_application_application_name_get(void * jarg1) {
-  char * jresult ;
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  result = (char *) ((arg1)->application_name);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_application_data_set(void * jarg1, char * jarg2) {
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->application_data;
-    if (arg2) {
-      arg1->application_data = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->application_data, (const char *)arg2);
-    } else {
-      arg1->application_data = 0;
-    }
-  }
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_application_application_data_get(void * jarg1) {
-  char * jresult ;
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  result = (char *) ((arg1)->application_data);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_application_function_set(void * jarg1, void * jarg2) {
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  switch_application_function_t arg2 = (switch_application_function_t) 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  arg2 = (switch_application_function_t)jarg2; 
-  if (arg1) (arg1)->application_function = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_application_application_function_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  switch_application_function_t result;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  result = (switch_application_function_t) ((arg1)->application_function);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_next_set(void * jarg1, void * jarg2) {
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  switch_caller_application *arg2 = (switch_caller_application *) 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  arg2 = (switch_caller_application *)jarg2; 
-  if (arg1) (arg1)->next = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_application_next_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  switch_caller_application *result = 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  result = (switch_caller_application *) ((arg1)->next);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_caller_application() {
-  void * jresult ;
-  switch_caller_application *result = 0 ;
-  
-  result = (switch_caller_application *)new switch_caller_application();
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_caller_application(void * jarg1) {
-  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
-  
-  arg1 = (switch_caller_application *)jarg1; 
-  delete arg1;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_extension_name_set(void * jarg1, char * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->extension_name;
-    if (arg2) {
-      arg1->extension_name = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->extension_name, (const char *)arg2);
-    } else {
-      arg1->extension_name = 0;
-    }
-  }
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_extension_extension_name_get(void * jarg1) {
-  char * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (char *) ((arg1)->extension_name);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_extension_number_set(void * jarg1, char * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->extension_number;
-    if (arg2) {
-      arg1->extension_number = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->extension_number, (const char *)arg2);
-    } else {
-      arg1->extension_number = 0;
-    }
-  }
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_extension_extension_number_get(void * jarg1) {
-  char * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (char *) ((arg1)->extension_number);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_current_application_set(void * jarg1, void * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_application_t *arg2 = (switch_caller_application_t *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (switch_caller_application_t *)jarg2; 
-  if (arg1) (arg1)->current_application = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_current_application_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_application_t *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (switch_caller_application_t *) ((arg1)->current_application);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_last_application_set(void * jarg1, void * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_application_t *arg2 = (switch_caller_application_t *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (switch_caller_application_t *)jarg2; 
-  if (arg1) (arg1)->last_application = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_last_application_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_application_t *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (switch_caller_application_t *) ((arg1)->last_application);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_applications_set(void * jarg1, void * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_application_t *arg2 = (switch_caller_application_t *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (switch_caller_application_t *)jarg2; 
-  if (arg1) (arg1)->applications = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_applications_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_application_t *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (switch_caller_application_t *) ((arg1)->applications);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_children_set(void * jarg1, void * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_profile *arg2 = (switch_caller_profile *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (switch_caller_profile *)jarg2; 
-  if (arg1) (arg1)->children = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_children_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_profile *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (switch_caller_profile *) ((arg1)->children);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_next_set(void * jarg1, void * jarg2) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_extension *arg2 = (switch_caller_extension *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  arg2 = (switch_caller_extension *)jarg2; 
-  if (arg1) (arg1)->next = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_next_get(void * jarg1) {
-  void * jresult ;
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  switch_caller_extension *result = 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  result = (switch_caller_extension *) ((arg1)->next);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_caller_extension() {
-  void * jresult ;
-  switch_caller_extension *result = 0 ;
-  
-  result = (switch_caller_extension *)new switch_caller_extension();
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_caller_extension(void * jarg1) {
-  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
-  
-  arg1 = (switch_caller_extension *)jarg1; 
-  delete arg1;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_new(void * jarg1, char * jarg2, char * jarg3) {
-  void * jresult ;
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  switch_caller_extension_t *result = 0 ;
-  
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (char *)jarg3; 
-  result = (switch_caller_extension_t *)switch_caller_extension_new(arg1,(char const *)arg2,(char const *)arg3);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_caller_extension_clone(void * jarg1, void * jarg2, void * jarg3) {
-  int jresult ;
-  switch_caller_extension_t **arg1 = (switch_caller_extension_t **) 0 ;
-  switch_caller_extension_t *arg2 = (switch_caller_extension_t *) 0 ;
-  switch_memory_pool_t *arg3 = (switch_memory_pool_t *) 0 ;
-  switch_status_t result;
-  
-  arg1 = (switch_caller_extension_t **)jarg1; 
-  arg2 = (switch_caller_extension_t *)jarg2; 
-  arg3 = (switch_memory_pool_t *)jarg3; 
-  result = (switch_status_t)switch_caller_extension_clone(arg1,arg2,arg3);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_add_application(void * jarg1, void * jarg2, char * jarg3, char * jarg4) {
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  switch_caller_extension_t *arg2 = (switch_caller_extension_t *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (switch_caller_extension_t *)jarg2; 
-  arg3 = (char *)jarg3; 
-  arg4 = (char *)jarg4; 
-  switch_caller_extension_add_application(arg1,arg2,(char const *)arg3,(char const *)arg4);
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_add_application_printf(void * jarg1, void * jarg2, char * jarg3, char * jarg4) {
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  switch_caller_extension_t *arg2 = (switch_caller_extension_t *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  void *arg5 = 0 ;
-  
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (switch_caller_extension_t *)jarg2; 
-  arg3 = (char *)jarg3; 
-  arg4 = (char *)jarg4; 
-  switch_caller_extension_add_application_printf(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_get_field_by_name(void * jarg1, char * jarg2) {
-  char * jresult ;
-  switch_caller_profile_t *arg1 = (switch_caller_profile_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (switch_caller_profile_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  result = (char *)switch_caller_get_field_by_name(arg1,(char const *)arg2);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_profile_new(void * jarg1, char * jarg2, char * jarg3, char * jarg4, char * jarg5, char * jarg6, char * jarg7, char * jarg8, char * jarg9, char * jarg10, char * jarg11, char * jarg12) {
-  void * jresult ;
-  switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  char *arg5 = (char *) 0 ;
-  char *arg6 = (char *) 0 ;
-  char *arg7 = (char *) 0 ;
-  char *arg8 = (char *) 0 ;
-  char *arg9 = (char *) 0 ;
-  char *arg10 = (char *) 0 ;
-  char *arg11 = (char *) 0 ;
-  char *arg12 = (char *) 0 ;
-  switch_caller_profile_t *result = 0 ;
-  
-  arg1 = (switch_memory_pool_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (char *)jarg3; 
-  arg4 = (char *)jarg4; 
-  arg5 = (char *)jarg5; 
-  arg6 = (char *)jarg6; 
-  arg7 = (char *)jarg7; 
-  arg8 = (char *)jarg8; 
-  arg9 = (char *)jarg9; 
-  arg10 = (char *)jarg10; 
-  arg11 = (char *)jarg11; 
-  arg12 = (char *)jarg12; 
-  result = (switch_caller_profile_t *)switch_caller_profile_new(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7,(char const *)arg8,(char const *)arg9,(char const *)arg10,(char const *)arg11,(char const *)arg12);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_profile_clone(void * jarg1, void * jarg2) {
-  void * jresult ;
-  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
-  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;
-  switch_caller_profile_t *result = 0 ;
-  
-  arg1 = (switch_core_session_t *)jarg1; 
-  arg2 = (switch_caller_profile_t *)jarg2; 
-  result = (switch_caller_profile_t *)switch_caller_profile_clone(arg1,arg2);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_profile_dup(void * jarg1, void * jarg2) {
-  void * jresult ;
-  switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;
-  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;
-  switch_caller_profile_t *result = 0 ;
-  
-  arg1 = (switch_memory_pool_t *)jarg1; 
-  arg2 = (switch_caller_profile_t *)jarg2; 
-  result = (switch_caller_profile_t *)switch_caller_profile_dup(arg1,arg2);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_profile_event_set_data(void * jarg1, char * jarg2, void * jarg3) {
-  switch_caller_profile_t *arg1 = (switch_caller_profile_t *) 0 ;
-  char *arg2 = (char *) 0 ;
-  switch_event_t *arg3 = (switch_event_t *) 0 ;
-  
-  arg1 = (switch_caller_profile_t *)jarg1; 
-  arg2 = (char *)jarg2; 
-  arg3 = (switch_event_t *)jarg3; 
-  switch_caller_profile_event_set_data(arg1,(char const *)arg2,arg3);
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_w_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->w = arg2;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_w_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->w);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_h_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->h = arg2;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_h_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->h);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_x_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->x = arg2;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_x_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->x);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_y_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->y = arg2;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_y_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
-  
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->y);
-  jresult = result; 
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_z_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_caller_profile(void * jarg1) {
+  switch_caller_profile *arg1 = (switch_caller_profile *) 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->z = arg2;
+  arg1 = (switch_caller_profile *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_z_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_application_name_set(void * jarg1, char * jarg2) {
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->z);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_caller_application *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->application_name;
+    if (arg2) {
+      arg1->application_name = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->application_name, (const char *)arg2);
+    } else {
+      arg1->application_name = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_M_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_application_application_name_get(void * jarg1) {
+  char * jresult ;
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->M = arg2;
+  arg1 = (switch_caller_application *)jarg1; 
+  result = (char *) ((arg1)->application_name);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_M_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_application_data_set(void * jarg1, char * jarg2) {
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->M);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_caller_application *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->application_data;
+    if (arg2) {
+      arg1->application_data = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->application_data, (const char *)arg2);
+    } else {
+      arg1->application_data = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_X_set(void * jarg1, int jarg2) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t arg2 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_application_application_data_get(void * jarg1) {
+  char * jresult ;
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  arg2 = (int32_t)jarg2; 
-  if (arg1) (arg1)->X = arg2;
+  arg1 = (switch_caller_application *)jarg1; 
+  result = (char *) ((arg1)->application_data);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_X_get(void * jarg1) {
-  int jresult ;
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
-  int32_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_application_function_set(void * jarg1, void * jarg2) {
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  switch_application_function_t arg2 = (switch_application_function_t) 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  result = (int32_t) ((arg1)->X);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_caller_application *)jarg1; 
+  arg2 = (switch_application_function_t)jarg2; 
+  if (arg1) (arg1)->application_function = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_frame_geometry_t() {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_application_application_function_get(void * jarg1) {
   void * jresult ;
-  switch_frame_geometry *result = 0 ;
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  switch_application_function_t result;
   
-  result = (switch_frame_geometry *)new switch_frame_geometry();
+  arg1 = (switch_caller_application *)jarg1; 
+  result = (switch_application_function_t) ((arg1)->application_function);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_frame_geometry_t(void * jarg1) {
-  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_application_next_set(void * jarg1, void * jarg2) {
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  switch_caller_application *arg2 = (switch_caller_application *) 0 ;
   
-  arg1 = (switch_frame_geometry *)jarg1; 
-  delete arg1;
+  arg1 = (switch_caller_application *)jarg1; 
+  arg2 = (switch_caller_application *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_codec_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_codec_t *arg2 = (switch_codec_t *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_application_next_get(void * jarg1) {
+  void * jresult ;
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  switch_caller_application *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (switch_codec_t *)jarg2; 
-  if (arg1) (arg1)->codec = arg2;
+  arg1 = (switch_caller_application *)jarg1; 
+  result = (switch_caller_application *) ((arg1)->next);
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_codec_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_caller_application() {
   void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_codec_t *result = 0 ;
+  switch_caller_application *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (switch_codec_t *) ((arg1)->codec);
+  result = (switch_caller_application *)new switch_caller_application();
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_source_set(void * jarg1, char * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_caller_application(void * jarg1) {
+  switch_caller_application *arg1 = (switch_caller_application *) 0 ;
+  
+  arg1 = (switch_caller_application *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_extension_name_set(void * jarg1, char * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
+  arg1 = (switch_caller_extension *)jarg1; 
   arg2 = (char *)jarg2; 
   {
+    delete [] arg1->extension_name;
     if (arg2) {
-      arg1->source = (char const *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->source, (const char *)arg2);
+      arg1->extension_name = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->extension_name, (const char *)arg2);
     } else {
-      arg1->source = 0;
+      arg1->extension_name = 0;
     }
   }
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_frame_source_get(void * jarg1) {
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_extension_extension_name_get(void * jarg1) {
   char * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
   char *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (char *) ((arg1)->source);
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (char *) ((arg1)->extension_name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_packet_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *arg2 = (void *) 0 ;
-  
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->packet = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_packet_get(void * jarg1) {
-  void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *result = 0 ;
-  
-  arg1 = (switch_frame *)jarg1; 
-  result = (void *) ((arg1)->packet);
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_packetlen_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_extension_number_set(void * jarg1, char * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->packetlen = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->extension_number;
+    if (arg2) {
+      arg1->extension_number = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->extension_number, (const char *)arg2);
+    } else {
+      arg1->extension_number = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_packetlen_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_extension_extension_number_get(void * jarg1) {
+  char * jresult ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->packetlen);
-  jresult = (unsigned long)result
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (char *) ((arg1)->extension_number);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_extra_data_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_current_application_set(void * jarg1, void * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_application_t *arg2 = (switch_caller_application_t *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->extra_data = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  arg2 = (switch_caller_application_t *)jarg2; 
+  if (arg1) (arg1)->current_application = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_extra_data_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_current_application_get(void * jarg1) {
   void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *result = 0 ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_application_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (void *) ((arg1)->extra_data);
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (switch_caller_application_t *) ((arg1)->current_application);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_data_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_last_application_set(void * jarg1, void * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_application_t *arg2 = (switch_caller_application_t *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->data = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  arg2 = (switch_caller_application_t *)jarg2; 
+  if (arg1) (arg1)->last_application = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_data_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_last_application_get(void * jarg1) {
   void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *result = 0 ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_application_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (void *) ((arg1)->data);
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (switch_caller_application_t *) ((arg1)->last_application);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_datalen_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_applications_set(void * jarg1, void * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_application_t *arg2 = (switch_caller_application_t *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->datalen = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  arg2 = (switch_caller_application_t *)jarg2; 
+  if (arg1) (arg1)->applications = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_datalen_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_applications_get(void * jarg1) {
+  void * jresult ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_application_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->datalen);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (switch_caller_application_t *) ((arg1)->applications);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_buflen_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_children_set(void * jarg1, void * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_profile *arg2 = (switch_caller_profile *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->buflen = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  arg2 = (switch_caller_profile *)jarg2; 
+  if (arg1) (arg1)->children = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_buflen_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_children_get(void * jarg1) {
+  void * jresult ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_profile *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->buflen);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (switch_caller_profile *) ((arg1)->children);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_samples_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_next_set(void * jarg1, void * jarg2) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_extension *arg2 = (switch_caller_extension *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->samples = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  arg2 = (switch_caller_extension *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_samples_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_next_get(void * jarg1) {
+  void * jresult ;
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
+  switch_caller_extension *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->samples);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_caller_extension *)jarg1; 
+  result = (switch_caller_extension *) ((arg1)->next);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_rate_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
-  
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->rate = arg2;
-}
-
-
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_rate_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_caller_extension() {
+  void * jresult ;
+  switch_caller_extension *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->rate);
-  jresult = (unsigned long)result; 
+  result = (switch_caller_extension *)new switch_caller_extension();
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_channels_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_caller_extension(void * jarg1) {
+  switch_caller_extension *arg1 = (switch_caller_extension *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->channels = arg2;
+  arg1 = (switch_caller_extension *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_channels_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_extension_new(void * jarg1, char * jarg2, char * jarg3) {
+  void * jresult ;
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  switch_caller_extension_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->channels);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (char *)jarg3; 
+  result = (switch_caller_extension_t *)switch_caller_extension_new(arg1,(char const *)arg2,(char const *)arg3);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_payload_set(void * jarg1, unsigned char jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_payload_t arg2 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_caller_extension_clone(void * jarg1, void * jarg2, void * jarg3) {
+  int jresult ;
+  switch_caller_extension_t **arg1 = (switch_caller_extension_t **) 0 ;
+  switch_caller_extension_t *arg2 = (switch_caller_extension_t *) 0 ;
+  switch_memory_pool_t *arg3 = (switch_memory_pool_t *) 0 ;
+  switch_status_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (switch_payload_t)jarg2; 
-  if (arg1) (arg1)->payload = arg2;
+  arg1 = (switch_caller_extension_t **)jarg1; 
+  arg2 = (switch_caller_extension_t *)jarg2; 
+  arg3 = (switch_memory_pool_t *)jarg3; 
+  result = (switch_status_t)switch_caller_extension_clone(arg1,arg2,arg3);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_frame_payload_get(void * jarg1) {
-  unsigned char jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_payload_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_add_application(void * jarg1, void * jarg2, char * jarg3, char * jarg4) {
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  switch_caller_extension_t *arg2 = (switch_caller_extension_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (switch_payload_t) ((arg1)->payload);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (switch_caller_extension_t *)jarg2; 
+  arg3 = (char *)jarg3; 
+  arg4 = (char *)jarg4; 
+  switch_caller_extension_add_application(arg1,arg2,(char const *)arg3,(char const *)arg4);
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_timestamp_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_extension_add_application_printf(void * jarg1, void * jarg2, char * jarg3, char * jarg4) {
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  switch_caller_extension_t *arg2 = (switch_caller_extension_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *arg5 = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->timestamp = arg2;
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (switch_caller_extension_t *)jarg2; 
+  arg3 = (char *)jarg3; 
+  arg4 = (char *)jarg4; 
+  switch_caller_extension_add_application_printf(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5);
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_timestamp_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_caller_get_field_by_name(void * jarg1, char * jarg2) {
+  char * jresult ;
+  switch_caller_profile_t *arg1 = (switch_caller_profile_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->timestamp);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_caller_profile_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  result = (char *)switch_caller_get_field_by_name(arg1,(char const *)arg2);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_seq_set(void * jarg1, unsigned short jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint16_t arg2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_profile_new(void * jarg1, char * jarg2, char * jarg3, char * jarg4, char * jarg5, char * jarg6, char * jarg7, char * jarg8, char * jarg9, char * jarg10, char * jarg11, char * jarg12) {
+  void * jresult ;
+  switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  char *arg9 = (char *) 0 ;
+  char *arg10 = (char *) 0 ;
+  char *arg11 = (char *) 0 ;
+  char *arg12 = (char *) 0 ;
+  switch_caller_profile_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint16_t)jarg2; 
-  if (arg1) (arg1)->seq = arg2;
+  arg1 = (switch_memory_pool_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (char *)jarg3; 
+  arg4 = (char *)jarg4; 
+  arg5 = (char *)jarg5; 
+  arg6 = (char *)jarg6; 
+  arg7 = (char *)jarg7; 
+  arg8 = (char *)jarg8; 
+  arg9 = (char *)jarg9; 
+  arg10 = (char *)jarg10; 
+  arg11 = (char *)jarg11; 
+  arg12 = (char *)jarg12; 
+  result = (switch_caller_profile_t *)switch_caller_profile_new(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7,(char const *)arg8,(char const *)arg9,(char const *)arg10,(char const *)arg11,(char const *)arg12);
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned short SWIGSTDCALL CSharp_switch_frame_seq_get(void * jarg1) {
-  unsigned short jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint16_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_profile_clone(void * jarg1, void * jarg2) {
+  void * jresult ;
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;
+  switch_caller_profile_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint16_t) ((arg1)->seq);
-  jresult = result; 
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (switch_caller_profile_t *)jarg2; 
+  result = (switch_caller_profile_t *)switch_caller_profile_clone(arg1,arg2);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_ssrc_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_caller_profile_dup(void * jarg1, void * jarg2) {
+  void * jresult ;
+  switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;
+  switch_caller_profile_t *arg2 = (switch_caller_profile_t *) 0 ;
+  switch_caller_profile_t *result = 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->ssrc = arg2;
+  arg1 = (switch_memory_pool_t *)jarg1; 
+  arg2 = (switch_caller_profile_t *)jarg2; 
+  result = (switch_caller_profile_t *)switch_caller_profile_dup(arg1,arg2);
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_ssrc_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  uint32_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_caller_profile_event_set_data(void * jarg1, char * jarg2, void * jarg3) {
+  switch_caller_profile_t *arg1 = (switch_caller_profile_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_event_t *arg3 = (switch_event_t *) 0 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (uint32_t) ((arg1)->ssrc);
-  jresult = (unsigned long)result
-  return jresult;
+  arg1 = (switch_caller_profile_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (switch_event_t *)jarg3
+  switch_caller_profile_event_set_data(arg1,(char const *)arg2,arg3);
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_m_set(void * jarg1, int jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_bool_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_w_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (switch_bool_t)jarg2; 
-  if (arg1) (arg1)->m = arg2;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2; 
+  if (arg1) (arg1)->w = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_m_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_w_get(void * jarg1) {
   int jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_bool_t result;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (switch_bool_t) ((arg1)->m);
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->w);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_flags_set(void * jarg1, unsigned long jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_frame_flag_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_h_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (switch_frame_flag_t)jarg2; 
-  if (arg1) (arg1)->flags = arg2;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2; 
+  if (arg1) (arg1)->h = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_flags_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_frame_flag_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_h_get(void * jarg1) {
+  int jresult ;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (switch_frame_flag_t) ((arg1)->flags);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->h);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_user_data_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_x_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->user_data = arg2;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2; 
+  if (arg1) (arg1)->x = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_user_data_get(void * jarg1) {
-  void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  void *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_x_get(void * jarg1) {
+  int jresult ;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (void *) ((arg1)->user_data);
-  jresult = (void *)result; 
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->x);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_pmap_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  payload_map_t *arg2 = (payload_map_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_y_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (payload_map_t *)jarg2; 
-  if (arg1) (arg1)->pmap = arg2;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2; 
+  if (arg1) (arg1)->y = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_pmap_get(void * jarg1) {
-  void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  payload_map_t *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_y_get(void * jarg1) {
+  int jresult ;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (payload_map_t *) ((arg1)->pmap);
-  jresult = (void *)result; 
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->y);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_img_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_image_t *arg2 = (switch_image_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_z_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (switch_image_t *)jarg2; 
-  if (arg1) (arg1)->img = arg2;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2; 
+  if (arg1) (arg1)->z = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_img_get(void * jarg1) {
-  void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_image_t *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_z_get(void * jarg1) {
+  int jresult ;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (switch_image_t *) ((arg1)->img);
-  jresult = (void *)result; 
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->z);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_set(void * jarg1, void * jarg2) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_frame_geometry *arg2 = (switch_frame_geometry *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_M_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  arg1 = (switch_frame *)jarg1; 
-  arg2 = (switch_frame_geometry *)jarg2; 
-  if (arg1) (arg1)->geometry = *arg2;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2; 
+  if (arg1) (arg1)->M = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_geometry_get(void * jarg1) {
-  void * jresult ;
-  switch_frame *arg1 = (switch_frame *) 0 ;
-  switch_frame_geometry *result = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_M_get(void * jarg1) {
+  int jresult ;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  result = (switch_frame_geometry *)& ((arg1)->geometry);
-  jresult = (void *)result; 
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->M);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_frame() {
-  void * jresult ;
-  switch_frame *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_t_X_set(void * jarg1, int jarg2) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t arg2 ;
   
-  result = (switch_frame *)new switch_frame();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  arg2 = (int32_t)jarg2
+  if (arg1) (arg1)->X = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_frame(void * jarg1) {
-  switch_frame *arg1 = (switch_frame *) 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_geometry_t_X_get(void * jarg1) {
+  int jresult ;
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
+  int32_t result;
   
-  arg1 = (switch_frame *)jarg1; 
-  delete arg1;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  result = (int32_t) ((arg1)->X);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_init_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_frame_geometry_t() {
+  void * jresult ;
+  switch_frame_geometry *result = 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2
-  if (arg1) (arg1)->on_init = arg2;
+  result = (switch_frame_geometry *)new switch_frame_geometry();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_init_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_frame_geometry_t(void * jarg1) {
+  switch_frame_geometry *arg1 = (switch_frame_geometry *) 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_init);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_frame_geometry *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_routing_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_codec_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_codec_t *arg2 = (switch_codec_t *) 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_routing = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (switch_codec_t *)jarg2; 
+  if (arg1) (arg1)->codec = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_routing_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_codec_get(void * jarg1) {
   void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
-  
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_routing);
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_codec_t *result = 0 ;
+  
+  arg1 = (switch_frame *)jarg1; 
+  result = (switch_codec_t *) ((arg1)->codec);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_execute_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_source_set(void * jarg1, char * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_execute = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg2) {
+      arg1->source = (char const *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->source, (const char *)arg2);
+    } else {
+      arg1->source = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_execute_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_frame_source_get(void * jarg1) {
+  char * jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_execute);
-  jresult = (void *)result
+  arg1 = (switch_frame *)jarg1; 
+  result = (char *) ((arg1)->source);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_hangup_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_packet_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_hangup = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->packet = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_hangup_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_packet_get(void * jarg1) {
   void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_hangup);
+  arg1 = (switch_frame *)jarg1; 
+  result = (void *) ((arg1)->packet);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_exchange_media_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_packetlen_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_exchange_media = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->packetlen = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_exchange_media_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_packetlen_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_exchange_media);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->packetlen);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_soft_execute_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_extra_data_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_soft_execute = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->extra_data = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_soft_execute_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_extra_data_get(void * jarg1) {
   void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_soft_execute);
+  arg1 = (switch_frame *)jarg1; 
+  result = (void *) ((arg1)->extra_data);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_consume_media_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_data_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_consume_media = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->data = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_consume_media_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_data_get(void * jarg1) {
   void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_consume_media);
+  arg1 = (switch_frame *)jarg1; 
+  result = (void *) ((arg1)->data);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_hibernate_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_datalen_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_hibernate = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->datalen = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_hibernate_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_datalen_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_hibernate);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->datalen);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_reset_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_buflen_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_reset = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->buflen = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_reset_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_buflen_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_reset);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->buflen);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_park_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_samples_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_park = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->samples = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_park_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_samples_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_park);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->samples);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_reporting_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_rate_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_reporting = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->rate = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_reporting_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_rate_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_reporting);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->rate);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_destroy_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_channels_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (switch_state_handler_t)jarg2; 
-  if (arg1) (arg1)->on_destroy = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->channels = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_destroy_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  switch_state_handler_t result;
-  
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (switch_state_handler_t) ((arg1)->on_destroy);
-  jresult = (void *)result; 
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_channels_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
+  
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->channels);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_flags_set(void * jarg1, int jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_payload_set(void * jarg1, unsigned char jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_payload_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->flags = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (switch_payload_t)jarg2; 
+  if (arg1) (arg1)->payload = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_state_handler_table_flags_get(void * jarg1) {
-  int jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  int result;
+SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_frame_payload_get(void * jarg1) {
+  unsigned char jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_payload_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (int) ((arg1)->flags);
+  arg1 = (switch_frame *)jarg1; 
+  result = (switch_payload_t) ((arg1)->payload);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_padding_set(void * jarg1, void * jarg2) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  void **arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_timestamp_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  arg2 = (void **)jarg2; 
-  {
-    size_t ii;
-    void * *b = (void * *) arg1->padding;
-    for (ii = 0; ii < (size_t)10; ii++) b[ii] = *((void * *) arg2 + ii);
-  }
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->timestamp = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_padding_get(void * jarg1) {
-  void * jresult ;
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
-  void **result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_timestamp_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  result = (void **)(void **) ((arg1)->padding);
-  jresult = result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->timestamp);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_state_handler_table() {
-  void * jresult ;
-  switch_state_handler_table *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_seq_set(void * jarg1, unsigned short jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint16_t arg2 ;
   
-  result = (switch_state_handler_table *)new switch_state_handler_table();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint16_t)jarg2
+  if (arg1) (arg1)->seq = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_state_handler_table(void * jarg1) {
-  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+SWIGEXPORT unsigned short SWIGSTDCALL CSharp_switch_frame_seq_get(void * jarg1) {
+  unsigned short jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint16_t result;
   
-  arg1 = (switch_state_handler_table *)jarg1; 
-  delete arg1;
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint16_t) ((arg1)->seq);
+  jresult = result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_read_function_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_stream_handle_read_function_t arg2 = (switch_stream_handle_read_function_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_ssrc_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  arg2 = (switch_stream_handle_read_function_t)jarg2; 
-  if (arg1) (arg1)->read_function = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->ssrc = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_read_function_get(void * jarg1) {
-  void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_stream_handle_read_function_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_ssrc_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result = (switch_stream_handle_read_function_t) ((arg1)->read_function);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (uint32_t) ((arg1)->ssrc);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_write_function_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_stream_handle_write_function_t arg2 = (switch_stream_handle_write_function_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_m_set(void * jarg1, int jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_bool_t arg2 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  arg2 = (switch_stream_handle_write_function_t)jarg2; 
-  if (arg1) (arg1)->write_function = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (switch_bool_t)jarg2; 
+  if (arg1) (arg1)->m = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_write_function_get(void * jarg1) {
-  void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_stream_handle_write_function_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_frame_m_get(void * jarg1) {
+  int jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_bool_t result;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result = (switch_stream_handle_write_function_t) ((arg1)->write_function);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (switch_bool_t) ((arg1)->m);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_raw_write_function_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_stream_handle_raw_write_function_t arg2 = (switch_stream_handle_raw_write_function_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_flags_set(void * jarg1, unsigned long jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_frame_flag_t arg2 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  arg2 = (switch_stream_handle_raw_write_function_t)jarg2; 
-  if (arg1) (arg1)->raw_write_function = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (switch_frame_flag_t)jarg2; 
+  if (arg1) (arg1)->flags = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_raw_write_function_get(void * jarg1) {
-  void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_stream_handle_raw_write_function_t result;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_frame_flags_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_frame_flag_t result;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result = (switch_stream_handle_raw_write_function_t) ((arg1)->raw_write_function);
-  jresult = (void *)result; 
+  arg1 = (switch_frame *)jarg1; 
+  result = (switch_frame_flag_t) ((arg1)->flags);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_data_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_user_data_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
   void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
+  arg1 = (switch_frame *)jarg1; 
   arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->data = arg2;
+  if (arg1) (arg1)->user_data = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_data_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_user_data_get(void * jarg1) {
   void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
   void *result = 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result = (void *) ((arg1)->data);
+  arg1 = (switch_frame *)jarg1; 
+  result = (void *) ((arg1)->user_data);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_end_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_pmap_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  payload_map_t *arg2 = (payload_map_t *) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->end = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (payload_map_t *)jarg2; 
+  if (arg1) (arg1)->pmap = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_end_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_pmap_get(void * jarg1) {
   void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  void *result = 0 ;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  payload_map_t *result = 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result = (void *) ((arg1)->end);
+  arg1 = (switch_frame *)jarg1; 
+  result = (payload_map_t *) ((arg1)->pmap);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_data_size_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_img_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_image_t *arg2 = (switch_image_t *) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->data_size = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (switch_image_t *)jarg2; 
+  if (arg1) (arg1)->img = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_data_size_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_img_get(void * jarg1) {
   void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t result;
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_image_t *result = 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result =  ((arg1)->data_size);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  arg1 = (switch_frame *)jarg1; 
+  result = (switch_image_t *) ((arg1)->img);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_data_len_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_frame_geometry_set(void * jarg1, void * jarg2) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_frame_geometry *arg2 = (switch_frame_geometry *) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->data_len = arg2;
+  arg1 = (switch_frame *)jarg1; 
+  arg2 = (switch_frame_geometry *)jarg2; 
+  if (arg1) (arg1)->geometry = *arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_data_len_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_frame_geometry_get(void * jarg1) {
   void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t result;
-  
-  arg1 = (switch_stream_handle *)jarg1; 
-  result =  ((arg1)->data_len);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  switch_frame *arg1 = (switch_frame *) 0 ;
+  switch_frame_geometry *result = 0 ;
+  
+  arg1 = (switch_frame *)jarg1; 
+  result = (switch_frame_geometry *)& ((arg1)->geometry);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_alloc_len_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_frame() {
+  void * jresult ;
+  switch_frame *result = 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->alloc_len = arg2;
+  result = (switch_frame *)new switch_frame();
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_alloc_len_get(void * jarg1) {
-  void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_frame(void * jarg1) {
+  switch_frame *arg1 = (switch_frame *) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result =  ((arg1)->alloc_len);
-  jresult = new switch_size_t((const switch_size_t &)result); 
-  return jresult;
+  arg1 = (switch_frame *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_alloc_chunk_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_init_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->alloc_chunk = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_init = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_alloc_chunk_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_init_get(void * jarg1) {
   void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_size_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result =  ((arg1)->alloc_chunk);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_init);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_param_event_set(void * jarg1, void * jarg2) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_event_t *arg2 = (switch_event_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_routing_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  arg2 = (switch_event_t *)jarg2; 
-  if (arg1) (arg1)->param_event = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_routing = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_param_event_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_routing_get(void * jarg1) {
   void * jresult ;
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
-  switch_event_t *result = 0 ;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  result = (switch_event_t *) ((arg1)->param_event);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_routing);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_stream_handle() {
-  void * jresult ;
-  switch_stream_handle *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_execute_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  result = (switch_stream_handle *)new switch_stream_handle();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2
+  if (arg1) (arg1)->on_execute = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_stream_handle(void * jarg1) {
-  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_execute_get(void * jarg1) {
+  void * jresult ;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_stream_handle *)jarg1; 
-  delete arg1;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_execute);
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_outgoing_channel_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_outgoing_channel_t arg2 = (switch_io_outgoing_channel_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_hangup_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_outgoing_channel_t)jarg2; 
-  if (arg1) (arg1)->outgoing_channel = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_hangup = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_outgoing_channel_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_hangup_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_outgoing_channel_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_outgoing_channel_t) ((arg1)->outgoing_channel);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_hangup);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_read_frame_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_read_frame_t arg2 = (switch_io_read_frame_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_exchange_media_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_read_frame_t)jarg2; 
-  if (arg1) (arg1)->read_frame = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_exchange_media = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_read_frame_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_exchange_media_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_read_frame_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_read_frame_t) ((arg1)->read_frame);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_exchange_media);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_write_frame_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_write_frame_t arg2 = (switch_io_write_frame_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_soft_execute_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_write_frame_t)jarg2; 
-  if (arg1) (arg1)->write_frame = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_soft_execute = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_write_frame_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_soft_execute_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_write_frame_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_write_frame_t) ((arg1)->write_frame);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_soft_execute);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_kill_channel_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_kill_channel_t arg2 = (switch_io_kill_channel_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_consume_media_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_kill_channel_t)jarg2; 
-  if (arg1) (arg1)->kill_channel = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_consume_media = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_kill_channel_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_consume_media_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_kill_channel_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_kill_channel_t) ((arg1)->kill_channel);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_consume_media);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_send_dtmf_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_send_dtmf_t arg2 = (switch_io_send_dtmf_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_hibernate_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_send_dtmf_t)jarg2; 
-  if (arg1) (arg1)->send_dtmf = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_hibernate = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_send_dtmf_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_hibernate_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_send_dtmf_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_send_dtmf_t) ((arg1)->send_dtmf);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_hibernate);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_receive_message_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_receive_message_t arg2 = (switch_io_receive_message_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_reset_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_receive_message_t)jarg2; 
-  if (arg1) (arg1)->receive_message = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_reset = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_receive_message_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_reset_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_receive_message_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_receive_message_t) ((arg1)->receive_message);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_reset);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_receive_event_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_receive_event_t arg2 = (switch_io_receive_event_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_park_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_receive_event_t)jarg2; 
-  if (arg1) (arg1)->receive_event = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_park = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_receive_event_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_park_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_receive_event_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_receive_event_t) ((arg1)->receive_event);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_park);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_state_change_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_state_change_t arg2 = (switch_io_state_change_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_reporting_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_state_change_t)jarg2; 
-  if (arg1) (arg1)->state_change = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_reporting = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_state_change_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_reporting_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_state_change_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_state_change_t) ((arg1)->state_change);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_reporting);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_read_video_frame_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_read_video_frame_t arg2 = (switch_io_read_video_frame_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_on_destroy_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t arg2 = (switch_state_handler_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_read_video_frame_t)jarg2; 
-  if (arg1) (arg1)->read_video_frame = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (switch_state_handler_t)jarg2; 
+  if (arg1) (arg1)->on_destroy = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_read_video_frame_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_destroy_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_read_video_frame_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  switch_state_handler_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_read_video_frame_t) ((arg1)->read_video_frame);
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (switch_state_handler_t) ((arg1)->on_destroy);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_write_video_frame_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_write_video_frame_t arg2 = (switch_io_write_video_frame_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_flags_set(void * jarg1, int jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_write_video_frame_t)jarg2; 
-  if (arg1) (arg1)->write_video_frame = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->flags = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_write_video_frame_get(void * jarg1) {
-  void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_write_video_frame_t result;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_state_handler_table_flags_get(void * jarg1) {
+  int jresult ;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  int result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_write_video_frame_t) ((arg1)->write_video_frame);
-  jresult = (void *)result; 
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (int) ((arg1)->flags);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_read_text_frame_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_read_text_frame_t arg2 = (switch_io_read_text_frame_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_padding_set(void * jarg1, void * jarg2) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  void **arg2 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_read_text_frame_t)jarg2; 
-  if (arg1) (arg1)->read_text_frame = arg2;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  arg2 = (void **)jarg2; 
+  {
+    size_t ii;
+    void * *b = (void * *) arg1->padding;
+    for (ii = 0; ii < (size_t)10; ii++) b[ii] = *((void * *) arg2 + ii);
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_read_text_frame_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_padding_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_read_text_frame_t result;
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
+  void **result = 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_read_text_frame_t) ((arg1)->read_text_frame);
-  jresult = (void *)result; 
+  arg1 = (switch_state_handler_table *)jarg1; 
+  result = (void **)(void **) ((arg1)->padding);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_write_text_frame_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_write_text_frame_t arg2 = (switch_io_write_text_frame_t) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_state_handler_table() {
+  void * jresult ;
+  switch_state_handler_table *result = 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_write_text_frame_t)jarg2
-  if (arg1) (arg1)->write_text_frame = arg2;
+  result = (switch_state_handler_table *)new switch_state_handler_table();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_write_text_frame_get(void * jarg1) {
-  void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_write_text_frame_t result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_state_handler_table(void * jarg1) {
+  switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_write_text_frame_t) ((arg1)->write_text_frame);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_state_handler_table *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_state_run_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_state_run_t arg2 = (switch_io_state_run_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_read_function_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_stream_handle_read_function_t arg2 = (switch_stream_handle_read_function_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_state_run_t)jarg2; 
-  if (arg1) (arg1)->state_run = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  arg2 = (switch_stream_handle_read_function_t)jarg2; 
+  if (arg1) (arg1)->read_function = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_state_run_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_read_function_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_state_run_t result;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_stream_handle_read_function_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_state_run_t) ((arg1)->state_run);
+  arg1 = (switch_stream_handle *)jarg1; 
+  result = (switch_stream_handle_read_function_t) ((arg1)->read_function);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_get_jb_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_get_jb_t arg2 = (switch_io_get_jb_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_write_function_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_stream_handle_write_function_t arg2 = (switch_stream_handle_write_function_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (switch_io_get_jb_t)jarg2; 
-  if (arg1) (arg1)->get_jb = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  arg2 = (switch_stream_handle_write_function_t)jarg2; 
+  if (arg1) (arg1)->write_function = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_get_jb_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_write_function_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  switch_io_get_jb_t result;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_stream_handle_write_function_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (switch_io_get_jb_t) ((arg1)->get_jb);
+  arg1 = (switch_stream_handle *)jarg1; 
+  result = (switch_stream_handle_write_function_t) ((arg1)->write_function);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_padding_set(void * jarg1, void * jarg2) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  void **arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_raw_write_function_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_stream_handle_raw_write_function_t arg2 = (switch_stream_handle_raw_write_function_t) 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  arg2 = (void **)jarg2; 
-  {
-    size_t ii;
-    void * *b = (void * *) arg1->padding;
-    for (ii = 0; ii < (size_t)10; ii++) b[ii] = *((void * *) arg2 + ii);
-  }
+  arg1 = (switch_stream_handle *)jarg1; 
+  arg2 = (switch_stream_handle_raw_write_function_t)jarg2; 
+  if (arg1) (arg1)->raw_write_function = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_padding_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_raw_write_function_get(void * jarg1) {
   void * jresult ;
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
-  void **result = 0 ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_stream_handle_raw_write_function_t result;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  result = (void **)(void **) ((arg1)->padding);
-  jresult = result; 
+  arg1 = (switch_stream_handle *)jarg1; 
+  result = (switch_stream_handle_raw_write_function_t) ((arg1)->raw_write_function);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_io_routines() {
-  void * jresult ;
-  switch_io_routines *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_data_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  result = (switch_io_routines *)new switch_io_routines();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_stream_handle *)jarg1; 
+  arg2 = (void *)jarg2
+  if (arg1) (arg1)->data = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_io_routines(void * jarg1) {
-  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_data_get(void * jarg1) {
+  void * jresult ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_io_routines *)jarg1; 
-  delete arg1;
+  arg1 = (switch_stream_handle *)jarg1; 
+  result = (void *) ((arg1)->data);
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_interface_name_set(void * jarg1, char * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_end_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    if (arg2) {
-      arg1->interface_name = (char const *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->interface_name, (const char *)arg2);
-    } else {
-      arg1->interface_name = 0;
-    }
-  }
+  arg1 = (switch_stream_handle *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->end = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_endpoint_interface_interface_name_get(void * jarg1) {
-  char * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_end_get(void * jarg1) {
+  void * jresult ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (char *) ((arg1)->interface_name);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_stream_handle *)jarg1; 
+  result = (void *) ((arg1)->end);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_io_routines_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_io_routines_t *arg2 = (switch_io_routines_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_data_size_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_io_routines_t *)jarg2; 
-  if (arg1) (arg1)->io_routines = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->data_size = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_io_routines_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_data_size_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_io_routines_t *result = 0 ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_io_routines_t *) ((arg1)->io_routines);
-  jresult = (void *)result
+  arg1 = (switch_stream_handle *)jarg1; 
+  result =  ((arg1)->data_size);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_state_handler_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_state_handler_table_t *arg2 = (switch_state_handler_table_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_data_len_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_state_handler_table_t *)jarg2; 
-  if (arg1) (arg1)->state_handler = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->data_len = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_state_handler_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_data_len_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_state_handler_table_t *result = 0 ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_state_handler_table_t *) ((arg1)->state_handler);
-  jresult = (void *)result
+  arg1 = (switch_stream_handle *)jarg1; 
+  result =  ((arg1)->data_len);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_private_info_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_alloc_len_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->private_info = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->alloc_len = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_private_info_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_alloc_len_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  void *result = 0 ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (void *) ((arg1)->private_info);
-  jresult = (void *)result
+  arg1 = (switch_stream_handle *)jarg1; 
+  result =  ((arg1)->alloc_len);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_rwlock_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_alloc_chunk_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_thread_rwlock_t *)jarg2; 
-  if (arg1) (arg1)->rwlock = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->alloc_chunk = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_rwlock_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_alloc_chunk_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_thread_rwlock_t *result = 0 ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
-  jresult = (void *)result
+  arg1 = (switch_stream_handle *)jarg1; 
+  result =  ((arg1)->alloc_chunk);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_refs_set(void * jarg1, int jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_stream_handle_param_event_set(void * jarg1, void * jarg2) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_event_t *arg2 = (switch_event_t *) 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->refs = arg2;
+  arg1 = (switch_stream_handle *)jarg1; 
+  arg2 = (switch_event_t *)jarg2; 
+  if (arg1) (arg1)->param_event = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_endpoint_interface_refs_get(void * jarg1) {
-  int jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_stream_handle_param_event_get(void * jarg1) {
+  void * jresult ;
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
+  switch_event_t *result = 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (int) ((arg1)->refs);
-  jresult = result; 
+  arg1 = (switch_stream_handle *)jarg1; 
+  result = (switch_event_t *) ((arg1)->param_event);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_reflock_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_stream_handle() {
+  void * jresult ;
+  switch_stream_handle *result = 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_mutex_t *)jarg2
-  if (arg1) (arg1)->reflock = arg2;
+  result = (switch_stream_handle *)new switch_stream_handle();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_reflock_get(void * jarg1) {
-  void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_mutex_t *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_stream_handle(void * jarg1) {
+  switch_stream_handle *arg1 = (switch_stream_handle *) 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_mutex_t *) ((arg1)->reflock);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_stream_handle *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_parent_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_outgoing_channel_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_outgoing_channel_t arg2 = (switch_io_outgoing_channel_t) 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_loadable_module_interface_t *)jarg2; 
-  if (arg1) (arg1)->parent = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_outgoing_channel_t)jarg2; 
+  if (arg1) (arg1)->outgoing_channel = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_parent_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_outgoing_channel_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_loadable_module_interface_t *result = 0 ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_outgoing_channel_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_outgoing_channel_t) ((arg1)->outgoing_channel);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_next_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_endpoint_interface *arg2 = (switch_endpoint_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_read_frame_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_read_frame_t arg2 = (switch_io_read_frame_t) 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_endpoint_interface *)jarg2; 
-  if (arg1) (arg1)->next = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_read_frame_t)jarg2; 
+  if (arg1) (arg1)->read_frame = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_next_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_read_frame_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_endpoint_interface *result = 0 ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_read_frame_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_endpoint_interface *) ((arg1)->next);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_read_frame_t) ((arg1)->read_frame);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_recover_callback_set(void * jarg1, void * jarg2) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_core_recover_callback_t arg2 = (switch_core_recover_callback_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_write_frame_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_write_frame_t arg2 = (switch_io_write_frame_t) 0 ;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  arg2 = (switch_core_recover_callback_t)jarg2; 
-  if (arg1) (arg1)->recover_callback = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_write_frame_t)jarg2; 
+  if (arg1) (arg1)->write_frame = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_recover_callback_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_write_frame_get(void * jarg1) {
   void * jresult ;
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
-  switch_core_recover_callback_t result;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_write_frame_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  result = (switch_core_recover_callback_t) ((arg1)->recover_callback);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_write_frame_t) ((arg1)->write_frame);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_endpoint_interface() {
-  void * jresult ;
-  switch_endpoint_interface *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_kill_channel_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_kill_channel_t arg2 = (switch_io_kill_channel_t) 0 ;
   
-  result = (switch_endpoint_interface *)new switch_endpoint_interface();
-  jresult = (void *)result
-  return jresult;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_kill_channel_t)jarg2
+  if (arg1) (arg1)->kill_channel = arg2;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_endpoint_interface(void * jarg1) {
-  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_kill_channel_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_kill_channel_t result;
   
-  arg1 = (switch_endpoint_interface *)jarg1; 
-  delete arg1;
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_kill_channel_t) ((arg1)->kill_channel);
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interval_set(void * jarg1, int jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_send_dtmf_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_send_dtmf_t arg2 = (switch_io_send_dtmf_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->interval = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_send_dtmf_t)jarg2; 
+  if (arg1) (arg1)->send_dtmf = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_timer_interval_get(void * jarg1) {
-  int jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_send_dtmf_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_send_dtmf_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (int) ((arg1)->interval);
-  jresult = result; 
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_send_dtmf_t) ((arg1)->send_dtmf);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_flags_set(void * jarg1, unsigned long jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_receive_message_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_receive_message_t arg2 = (switch_io_receive_message_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->flags = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_receive_message_t)jarg2; 
+  if (arg1) (arg1)->receive_message = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_timer_flags_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_receive_message_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_receive_message_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (uint32_t) ((arg1)->flags);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_receive_message_t) ((arg1)->receive_message);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_samples_set(void * jarg1, unsigned int jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  unsigned int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_receive_event_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_receive_event_t arg2 = (switch_io_receive_event_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (unsigned int)jarg2; 
-  if (arg1) (arg1)->samples = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_receive_event_t)jarg2; 
+  if (arg1) (arg1)->receive_event = arg2;
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_switch_timer_samples_get(void * jarg1) {
-  unsigned int jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  unsigned int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_receive_event_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_receive_event_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (unsigned int) ((arg1)->samples);
-  jresult = result; 
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_receive_event_t) ((arg1)->receive_event);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_samplecount_set(void * jarg1, unsigned long jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_state_change_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_state_change_t arg2 = (switch_io_state_change_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->samplecount = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_state_change_t)jarg2; 
+  if (arg1) (arg1)->state_change = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_timer_samplecount_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_state_change_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_state_change_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (uint32_t) ((arg1)->samplecount);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_state_change_t) ((arg1)->state_change);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_last_samplecount_set(void * jarg1, unsigned long jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint32_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_read_video_frame_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_read_video_frame_t arg2 = (switch_io_read_video_frame_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (uint32_t)jarg2; 
-  if (arg1) (arg1)->last_samplecount = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_read_video_frame_t)jarg2; 
+  if (arg1) (arg1)->read_video_frame = arg2;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_timer_last_samplecount_get(void * jarg1) {
-  unsigned long jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint32_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_read_video_frame_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_read_video_frame_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (uint32_t) ((arg1)->last_samplecount);
-  jresult = (unsigned long)result; 
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_read_video_frame_t) ((arg1)->read_video_frame);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_timer_interface_set(void * jarg1, void * jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_timer_interface_t *arg2 = (switch_timer_interface_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_write_video_frame_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_write_video_frame_t arg2 = (switch_io_write_video_frame_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (switch_timer_interface_t *)jarg2; 
-  if (arg1) (arg1)->timer_interface = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_write_video_frame_t)jarg2; 
+  if (arg1) (arg1)->write_video_frame = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_timer_interface_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_write_video_frame_get(void * jarg1) {
   void * jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_timer_interface_t *result = 0 ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_write_video_frame_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (switch_timer_interface_t *) ((arg1)->timer_interface);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_write_video_frame_t) ((arg1)->write_video_frame);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_memory_pool_set(void * jarg1, void * jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_read_text_frame_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_read_text_frame_t arg2 = (switch_io_read_text_frame_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (switch_memory_pool_t *)jarg2; 
-  if (arg1) (arg1)->memory_pool = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_read_text_frame_t)jarg2; 
+  if (arg1) (arg1)->read_text_frame = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_memory_pool_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_read_text_frame_get(void * jarg1) {
   void * jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_memory_pool_t *result = 0 ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_read_text_frame_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (switch_memory_pool_t *) ((arg1)->memory_pool);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_read_text_frame_t) ((arg1)->read_text_frame);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_private_info_set(void * jarg1, void * jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  void *arg2 = (void *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_write_text_frame_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_write_text_frame_t arg2 = (switch_io_write_text_frame_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (void *)jarg2; 
-  if (arg1) (arg1)->private_info = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_write_text_frame_t)jarg2; 
+  if (arg1) (arg1)->write_text_frame = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_private_info_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_write_text_frame_get(void * jarg1) {
   void * jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  void *result = 0 ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_write_text_frame_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (void *) ((arg1)->private_info);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_write_text_frame_t) ((arg1)->write_text_frame);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_diff_set(void * jarg1, void * jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_size_t arg2 ;
-  switch_size_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_state_run_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_state_run_t arg2 = (switch_io_state_run_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  argp2 = (switch_size_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->diff = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_state_run_t)jarg2; 
+  if (arg1) (arg1)->state_run = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_diff_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_state_run_get(void * jarg1) {
   void * jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_size_t result;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_state_run_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result =  ((arg1)->diff);
-  jresult = new switch_size_t((const switch_size_t &)result)
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_state_run_t) ((arg1)->state_run);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_start_set(void * jarg1, void * jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_time_t arg2 ;
-  switch_time_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_get_jb_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_get_jb_t arg2 = (switch_io_get_jb_t) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  argp2 = (switch_time_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->start = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (switch_io_get_jb_t)jarg2; 
+  if (arg1) (arg1)->get_jb = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_start_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_get_jb_get(void * jarg1) {
   void * jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  switch_time_t result;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  switch_io_get_jb_t result;
   
-  arg1 = (switch_timer *)jarg1; 
-  result =  ((arg1)->start);
-  jresult = new switch_time_t((const switch_time_t &)result)
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (switch_io_get_jb_t) ((arg1)->get_jb);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_tick_set(void * jarg1, unsigned long long jarg2) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint64_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_io_routines_padding_set(void * jarg1, void * jarg2) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  void **arg2 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  arg2 = (uint64_t)jarg2; 
-  if (arg1) (arg1)->tick = arg2;
+  arg1 = (switch_io_routines *)jarg1; 
+  arg2 = (void **)jarg2; 
+  {
+    size_t ii;
+    void * *b = (void * *) arg1->padding;
+    for (ii = 0; ii < (size_t)10; ii++) b[ii] = *((void * *) arg2 + ii);
+  }
 }
 
 
-SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_switch_timer_tick_get(void * jarg1) {
-  unsigned long long jresult ;
-  switch_timer *arg1 = (switch_timer *) 0 ;
-  uint64_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_io_routines_padding_get(void * jarg1) {
+  void * jresult ;
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
+  void **result = 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
-  result = (uint64_t) ((arg1)->tick);
+  arg1 = (switch_io_routines *)jarg1; 
+  result = (void **)(void **) ((arg1)->padding);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_timer() {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_io_routines() {
   void * jresult ;
-  switch_timer *result = 0 ;
+  switch_io_routines *result = 0 ;
   
-  result = (switch_timer *)new switch_timer();
+  result = (switch_io_routines *)new switch_io_routines();
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_timer(void * jarg1) {
-  switch_timer *arg1 = (switch_timer *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_io_routines(void * jarg1) {
+  switch_io_routines *arg1 = (switch_io_routines *) 0 ;
   
-  arg1 = (switch_timer *)jarg1; 
+  arg1 = (switch_io_routines *)jarg1; 
   delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_interface_name_set(void * jarg1, char * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_interface_name_set(void * jarg1, char * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
+  arg1 = (switch_endpoint_interface *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg2) {
@@ -24935,462 +24898,511 @@ SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_interface_name_set(voi
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_timer_interface_interface_name_get(void * jarg1) {
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_endpoint_interface_interface_name_get(void * jarg1) {
   char * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
   char *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
+  arg1 = (switch_endpoint_interface *)jarg1; 
   result = (char *) ((arg1)->interface_name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_init_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_io_routines_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_io_routines_t *arg2 = (switch_io_routines_t *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
-  if (arg1) (arg1)->timer_init = arg2;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_io_routines_t *)jarg2; 
+  if (arg1) (arg1)->io_routines = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_init_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_io_routines_get(void * jarg1) {
   void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*result)(switch_timer_t *) = 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_io_routines_t *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_init);
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_io_routines_t *) ((arg1)->io_routines);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_next_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_state_handler_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_state_handler_table_t *arg2 = (switch_state_handler_table_t *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
-  if (arg1) (arg1)->timer_next = arg2;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_state_handler_table_t *)jarg2; 
+  if (arg1) (arg1)->state_handler = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_next_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_state_handler_get(void * jarg1) {
   void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*result)(switch_timer_t *) = 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_state_handler_table_t *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_next);
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_state_handler_table_t *) ((arg1)->state_handler);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_step_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_private_info_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
-  if (arg1) (arg1)->timer_step = arg2;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->private_info = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_step_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_private_info_get(void * jarg1) {
   void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*result)(switch_timer_t *) = 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_step);
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (void *) ((arg1)->private_info);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_sync_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_rwlock_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
-  if (arg1) (arg1)->timer_sync = arg2;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_thread_rwlock_t *)jarg2; 
+  if (arg1) (arg1)->rwlock = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_sync_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_rwlock_get(void * jarg1) {
   void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*result)(switch_timer_t *) = 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_thread_rwlock_t *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_sync);
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_check_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*arg2)(switch_timer_t *,switch_bool_t) = (switch_status_t (*)(switch_timer_t *,switch_bool_t)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_refs_set(void * jarg1, int jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  int arg2 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_timer_t *,switch_bool_t))jarg2; 
-  if (arg1) (arg1)->timer_check = arg2;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->refs = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_check_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_endpoint_interface_refs_get(void * jarg1) {
+  int jresult ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  int result;
+  
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (int) ((arg1)->refs);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_reflock_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+  
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_mutex_t *)jarg2; 
+  if (arg1) (arg1)->reflock = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_reflock_get(void * jarg1) {
   void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*result)(switch_timer_t *,switch_bool_t) = 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_mutex_t *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_timer_t *,switch_bool_t)) ((arg1)->timer_check);
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_mutex_t *) ((arg1)->reflock);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_destroy_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_parent_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
-  if (arg1) (arg1)->timer_destroy = arg2;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_loadable_module_interface_t *)jarg2; 
+  if (arg1) (arg1)->parent = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_destroy_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_parent_get(void * jarg1) {
   void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_status_t (*result)(switch_timer_t *) = 0 ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_loadable_module_interface_t *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_destroy);
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_next_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_endpoint_interface *arg2 = (switch_endpoint_interface *) 0 ;
+  
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_endpoint_interface *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_next_get(void * jarg1) {
+  void * jresult ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_endpoint_interface *result = 0 ;
+  
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_endpoint_interface *) ((arg1)->next);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_endpoint_interface_recover_callback_set(void * jarg1, void * jarg2) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_core_recover_callback_t arg2 = (switch_core_recover_callback_t) 0 ;
+  
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  arg2 = (switch_core_recover_callback_t)jarg2; 
+  if (arg1) (arg1)->recover_callback = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_endpoint_interface_recover_callback_get(void * jarg1) {
+  void * jresult ;
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
+  switch_core_recover_callback_t result;
+  
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  result = (switch_core_recover_callback_t) ((arg1)->recover_callback);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_rwlock_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_endpoint_interface() {
+  void * jresult ;
+  switch_endpoint_interface *result = 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_thread_rwlock_t *)jarg2
-  if (arg1) (arg1)->rwlock = arg2;
+  result = (switch_endpoint_interface *)new switch_endpoint_interface();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_rwlock_get(void * jarg1) {
-  void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_thread_rwlock_t *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_endpoint_interface(void * jarg1) {
+  switch_endpoint_interface *arg1 = (switch_endpoint_interface *) 0 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_endpoint_interface *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_refs_set(void * jarg1, int jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interval_set(void * jarg1, int jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
   int arg2 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
+  arg1 = (switch_timer *)jarg1; 
   arg2 = (int)jarg2; 
-  if (arg1) (arg1)->refs = arg2;
+  if (arg1) (arg1)->interval = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_timer_interface_refs_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_timer_interval_get(void * jarg1) {
   int jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
   int result;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (int) ((arg1)->refs);
+  arg1 = (switch_timer *)jarg1; 
+  result = (int) ((arg1)->interval);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_reflock_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_flags_set(void * jarg1, unsigned long jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_mutex_t *)jarg2; 
-  if (arg1) (arg1)->reflock = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->flags = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_reflock_get(void * jarg1) {
-  void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_mutex_t *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_timer_flags_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_mutex_t *) ((arg1)->reflock);
-  jresult = (void *)result; 
+  arg1 = (switch_timer *)jarg1; 
+  result = (uint32_t) ((arg1)->flags);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_parent_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_samples_set(void * jarg1, unsigned int jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  unsigned int arg2 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_loadable_module_interface_t *)jarg2; 
-  if (arg1) (arg1)->parent = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (unsigned int)jarg2; 
+  if (arg1) (arg1)->samples = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_parent_get(void * jarg1) {
-  void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_loadable_module_interface_t *result = 0 ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_switch_timer_samples_get(void * jarg1) {
+  unsigned int jresult ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  unsigned int result;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
-  jresult = (void *)result; 
+  arg1 = (switch_timer *)jarg1; 
+  result = (unsigned int) ((arg1)->samples);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_next_set(void * jarg1, void * jarg2) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_timer_interface *arg2 = (switch_timer_interface *) 0 ;
-  
-  arg1 = (switch_timer_interface *)jarg1; 
-  arg2 = (switch_timer_interface *)jarg2; 
-  if (arg1) (arg1)->next = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_next_get(void * jarg1) {
-  void * jresult ;
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  switch_timer_interface *result = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_samplecount_set(void * jarg1, unsigned long jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_timer_interface *)jarg1; 
-  result = (switch_timer_interface *) ((arg1)->next);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->samplecount = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_timer_interface() {
-  void * jresult ;
-  switch_timer_interface *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_timer_samplecount_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint32_t result;
   
-  result = (switch_timer_interface *)new switch_timer_interface();
-  jresult = (void *)result; 
+  arg1 = (switch_timer *)jarg1; 
+  result = (uint32_t) ((arg1)->samplecount);
+  jresult = (unsigned long)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_timer_interface(void * jarg1) {
-  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
-  
-  arg1 = (switch_timer_interface *)jarg1; 
-  delete arg1;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_interface_name_set(void * jarg1, char * jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_last_samplecount_set(void * jarg1, unsigned long jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint32_t arg2 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    if (arg2) {
-      arg1->interface_name = (char const *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->interface_name, (const char *)arg2);
-    } else {
-      arg1->interface_name = 0;
-    }
-  }
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->last_samplecount = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_dialplan_interface_interface_name_get(void * jarg1) {
-  char * jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_switch_timer_last_samplecount_get(void * jarg1) {
+  unsigned long jresult ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint32_t result;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (char *) ((arg1)->interface_name);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_timer *)jarg1; 
+  result = (uint32_t) ((arg1)->last_samplecount);
+  jresult = (unsigned long)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_hunt_function_set(void * jarg1, void * jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_dialplan_hunt_function_t arg2 = (switch_dialplan_hunt_function_t) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_timer_interface_set(void * jarg1, void * jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_timer_interface_t *arg2 = (switch_timer_interface_t *) 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (switch_dialplan_hunt_function_t)jarg2; 
-  if (arg1) (arg1)->hunt_function = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (switch_timer_interface_t *)jarg2; 
+  if (arg1) (arg1)->timer_interface = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_hunt_function_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_timer_interface_get(void * jarg1) {
   void * jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_dialplan_hunt_function_t result;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_timer_interface_t *result = 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (switch_dialplan_hunt_function_t) ((arg1)->hunt_function);
+  arg1 = (switch_timer *)jarg1; 
+  result = (switch_timer_interface_t *) ((arg1)->timer_interface);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_rwlock_set(void * jarg1, void * jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_memory_pool_set(void * jarg1, void * jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_memory_pool_t *arg2 = (switch_memory_pool_t *) 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (switch_thread_rwlock_t *)jarg2; 
-  if (arg1) (arg1)->rwlock = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (switch_memory_pool_t *)jarg2; 
+  if (arg1) (arg1)->memory_pool = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_rwlock_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_memory_pool_get(void * jarg1) {
   void * jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_thread_rwlock_t *result = 0 ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_memory_pool_t *result = 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
+  arg1 = (switch_timer *)jarg1; 
+  result = (switch_memory_pool_t *) ((arg1)->memory_pool);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_refs_set(void * jarg1, int jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_private_info_set(void * jarg1, void * jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  void *arg2 = (void *) 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->refs = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->private_info = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_dialplan_interface_refs_get(void * jarg1) {
-  int jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_private_info_get(void * jarg1) {
+  void * jresult ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  void *result = 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (int) ((arg1)->refs);
-  jresult = result; 
+  arg1 = (switch_timer *)jarg1; 
+  result = (void *) ((arg1)->private_info);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_reflock_set(void * jarg1, void * jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_diff_set(void * jarg1, void * jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_size_t arg2 ;
+  switch_size_t *argp2 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (switch_mutex_t *)jarg2; 
-  if (arg1) (arg1)->reflock = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  argp2 = (switch_size_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->diff = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_reflock_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_diff_get(void * jarg1) {
   void * jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_mutex_t *result = 0 ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_size_t result;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (switch_mutex_t *) ((arg1)->reflock);
-  jresult = (void *)result
+  arg1 = (switch_timer *)jarg1; 
+  result =  ((arg1)->diff);
+  jresult = new switch_size_t((const switch_size_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_parent_set(void * jarg1, void * jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_start_set(void * jarg1, void * jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_time_t arg2 ;
+  switch_time_t *argp2 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (switch_loadable_module_interface_t *)jarg2; 
-  if (arg1) (arg1)->parent = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  argp2 = (switch_time_t *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_time_t", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->start = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_parent_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_start_get(void * jarg1) {
   void * jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_loadable_module_interface_t *result = 0 ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  switch_time_t result;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
-  jresult = (void *)result
+  arg1 = (switch_timer *)jarg1; 
+  result =  ((arg1)->start);
+  jresult = new switch_time_t((const switch_time_t &)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_next_set(void * jarg1, void * jarg2) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_dialplan_interface *arg2 = (switch_dialplan_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_tick_set(void * jarg1, unsigned long long jarg2) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint64_t arg2 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  arg2 = (switch_dialplan_interface *)jarg2; 
-  if (arg1) (arg1)->next = arg2;
+  arg1 = (switch_timer *)jarg1; 
+  arg2 = (uint64_t)jarg2; 
+  if (arg1) (arg1)->tick = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_next_get(void * jarg1) {
-  void * jresult ;
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
-  switch_dialplan_interface *result = 0 ;
+SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_switch_timer_tick_get(void * jarg1) {
+  unsigned long long jresult ;
+  switch_timer *arg1 = (switch_timer *) 0 ;
+  uint64_t result;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
-  result = (switch_dialplan_interface *) ((arg1)->next);
-  jresult = (void *)result; 
+  arg1 = (switch_timer *)jarg1; 
+  result = (uint64_t) ((arg1)->tick);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_dialplan_interface() {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_timer() {
   void * jresult ;
-  switch_dialplan_interface *result = 0 ;
+  switch_timer *result = 0 ;
   
-  result = (switch_dialplan_interface *)new switch_dialplan_interface();
+  result = (switch_timer *)new switch_timer();
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_dialplan_interface(void * jarg1) {
-  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_timer(void * jarg1) {
+  switch_timer *arg1 = (switch_timer *) 0 ;
   
-  arg1 = (switch_dialplan_interface *)jarg1; 
+  arg1 = (switch_timer *)jarg1; 
   delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_interface_name_set(void * jarg1, char * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_interface_name_set(void * jarg1, char * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_timer_interface *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg2) {
@@ -25403,864 +25415,874 @@ SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_interface_name_set(void
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_file_interface_interface_name_get(void * jarg1) {
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_timer_interface_interface_name_get(void * jarg1) {
   char * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
   char *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_timer_interface *)jarg1; 
   result = (char *) ((arg1)->interface_name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_open_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,char const *) = (switch_status_t (*)(switch_file_handle_t *,char const *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_init_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,char const *))jarg2; 
-  if (arg1) (arg1)->file_open = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
+  if (arg1) (arg1)->timer_init = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_open_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_init_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,char const *) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*result)(switch_timer_t *) = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,char const *)) ((arg1)->file_open);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_init);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_close_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *) = (switch_status_t (*)(switch_file_handle_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_next_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *))jarg2; 
-  if (arg1) (arg1)->file_close = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
+  if (arg1) (arg1)->timer_next = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_close_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_next_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*result)(switch_timer_t *) = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *)) ((arg1)->file_close);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_next);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_truncate_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,int64_t) = (switch_status_t (*)(switch_file_handle_t *,int64_t)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_step_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,int64_t))jarg2; 
-  if (arg1) (arg1)->file_truncate = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
+  if (arg1) (arg1)->timer_step = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_truncate_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_step_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,int64_t) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*result)(switch_timer_t *) = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,int64_t)) ((arg1)->file_truncate);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_step);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_read_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,void *,switch_size_t *) = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_sync_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *))jarg2; 
-  if (arg1) (arg1)->file_read = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
+  if (arg1) (arg1)->timer_sync = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_read_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_sync_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,void *,switch_size_t *) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*result)(switch_timer_t *) = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) ((arg1)->file_read);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_sync);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_write_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,void *,switch_size_t *) = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_check_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*arg2)(switch_timer_t *,switch_bool_t) = (switch_status_t (*)(switch_timer_t *,switch_bool_t)) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *))jarg2; 
-  if (arg1) (arg1)->file_write = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_timer_t *,switch_bool_t))jarg2; 
+  if (arg1) (arg1)->timer_check = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_write_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_check_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,void *,switch_size_t *) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*result)(switch_timer_t *,switch_bool_t) = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) ((arg1)->file_write);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_timer_t *,switch_bool_t)) ((arg1)->timer_check);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_read_video_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t) = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_timer_destroy_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*arg2)(switch_timer_t *) = (switch_status_t (*)(switch_timer_t *)) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t))jarg2; 
-  if (arg1) (arg1)->file_read_video = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_timer_t *))jarg2; 
+  if (arg1) (arg1)->timer_destroy = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_timer_destroy_get(void * jarg1) {
+  void * jresult ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_status_t (*result)(switch_timer_t *) = 0 ;
+  
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_timer_t *)) ((arg1)->timer_destroy);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_rwlock_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
+  
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_thread_rwlock_t *)jarg2; 
+  if (arg1) (arg1)->rwlock = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_rwlock_get(void * jarg1) {
+  void * jresult ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_thread_rwlock_t *result = 0 ;
+  
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_refs_set(void * jarg1, int jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  int arg2 ;
+  
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->refs = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_read_video_get(void * jarg1) {
-  void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t) = 0 ;
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_timer_interface_refs_get(void * jarg1) {
+  int jresult ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  int result;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t)) ((arg1)->file_read_video);
-  jresult = (void *)result; 
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (int) ((arg1)->refs);
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_write_video_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,switch_frame_t *) = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_reflock_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *))jarg2; 
-  if (arg1) (arg1)->file_write_video = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_mutex_t *)jarg2; 
+  if (arg1) (arg1)->reflock = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_write_video_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_reflock_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,switch_frame_t *) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_mutex_t *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *)) ((arg1)->file_write_video);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_mutex_t *) ((arg1)->reflock);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_seek_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,unsigned int *,int64_t,int) = (switch_status_t (*)(switch_file_handle_t *,unsigned int *,int64_t,int)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_parent_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,unsigned int *,int64_t,int))jarg2; 
-  if (arg1) (arg1)->file_seek = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_loadable_module_interface_t *)jarg2; 
+  if (arg1) (arg1)->parent = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_seek_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_parent_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,unsigned int *,int64_t,int) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_loadable_module_interface_t *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,unsigned int *,int64_t,int)) ((arg1)->file_seek);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_set_string_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,switch_audio_col_t,char const *) = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const *)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_timer_interface_next_set(void * jarg1, void * jarg2) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_timer_interface *arg2 = (switch_timer_interface *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const *))jarg2; 
-  if (arg1) (arg1)->file_set_string = arg2;
+  arg1 = (switch_timer_interface *)jarg1; 
+  arg2 = (switch_timer_interface *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_set_string_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_timer_interface_next_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,switch_audio_col_t,char const *) = 0 ;
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
+  switch_timer_interface *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const *)) ((arg1)->file_set_string);
+  arg1 = (switch_timer_interface *)jarg1; 
+  result = (switch_timer_interface *) ((arg1)->next);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_get_string_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,switch_audio_col_t,char const **) = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const **)) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_timer_interface() {
+  void * jresult ;
+  switch_timer_interface *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const **))jarg2
-  if (arg1) (arg1)->file_get_string = arg2;
+  result = (switch_timer_interface *)new switch_timer_interface();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_get_string_get(void * jarg1) {
-  void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,switch_audio_col_t,char const **) = 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_timer_interface(void * jarg1) {
+  switch_timer_interface *arg1 = (switch_timer_interface *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const **)) ((arg1)->file_get_string);
-  jresult = (void *)result; 
-  return jresult;
+  arg1 = (switch_timer_interface *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_command_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*arg2)(switch_file_handle_t *,switch_file_command_t) = (switch_status_t (*)(switch_file_handle_t *,switch_file_command_t)) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_interface_name_set(void * jarg1, char * jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_file_command_t))jarg2; 
-  if (arg1) (arg1)->file_command = arg2;
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg2) {
+      arg1->interface_name = (char const *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->interface_name, (const char *)arg2);
+    } else {
+      arg1->interface_name = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_command_get(void * jarg1) {
-  void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_status_t (*result)(switch_file_handle_t *,switch_file_command_t) = 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_dialplan_interface_interface_name_get(void * jarg1) {
+  char * jresult ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_status_t (*)(switch_file_handle_t *,switch_file_command_t)) ((arg1)->file_command);
-  jresult = (void *)result
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  result = (char *) ((arg1)->interface_name);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_extens_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  char **arg2 = (char **) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_hunt_function_set(void * jarg1, void * jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+  switch_dialplan_hunt_function_t arg2 = (switch_dialplan_hunt_function_t) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (char **)jarg2; 
-  if (arg1) (arg1)->extens = arg2;
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  arg2 = (switch_dialplan_hunt_function_t)jarg2; 
+  if (arg1) (arg1)->hunt_function = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_extens_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_hunt_function_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  char **result = 0 ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+  switch_dialplan_hunt_function_t result;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (char **) ((arg1)->extens);
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  result = (switch_dialplan_hunt_function_t) ((arg1)->hunt_function);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_rwlock_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_rwlock_set(void * jarg1, void * jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   arg2 = (switch_thread_rwlock_t *)jarg2; 
   if (arg1) (arg1)->rwlock = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_rwlock_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_rwlock_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   switch_thread_rwlock_t *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_refs_set(void * jarg1, int jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_refs_set(void * jarg1, int jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   int arg2 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->refs = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_file_interface_refs_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_dialplan_interface_refs_get(void * jarg1) {
   int jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   int result;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   result = (int) ((arg1)->refs);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_reflock_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_reflock_set(void * jarg1, void * jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   arg2 = (switch_mutex_t *)jarg2; 
   if (arg1) (arg1)->reflock = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_reflock_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_reflock_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   switch_mutex_t *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   result = (switch_mutex_t *) ((arg1)->reflock);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_parent_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_parent_set(void * jarg1, void * jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   arg2 = (switch_loadable_module_interface_t *)jarg2; 
   if (arg1) (arg1)->parent = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_parent_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_parent_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   switch_loadable_module_interface_t *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
   result = (switch_loadable_module_interface_t *) ((arg1)->parent);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_next_set(void * jarg1, void * jarg2) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_file_interface *arg2 = (switch_file_interface *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_dialplan_interface_next_set(void * jarg1, void * jarg2) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+  switch_dialplan_interface *arg2 = (switch_dialplan_interface *) 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  arg2 = (switch_file_interface *)jarg2; 
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  arg2 = (switch_dialplan_interface *)jarg2; 
   if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_next_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_dialplan_interface_next_get(void * jarg1) {
   void * jresult ;
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  switch_file_interface *result = 0 ;
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
+  switch_dialplan_interface *result = 0 ;
   
-  arg1 = (switch_file_interface *)jarg1; 
-  result = (switch_file_interface *) ((arg1)->next);
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  result = (switch_dialplan_interface *) ((arg1)->next);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_file_interface() {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_dialplan_interface() {
   void * jresult ;
-  switch_file_interface *result = 0 ;
-  
-  result = (switch_file_interface *)new switch_file_interface();
-  jresult = (void *)result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_file_interface(void * jarg1) {
-  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
-  
-  arg1 = (switch_file_interface *)jarg1; 
-  delete arg1;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_samplerate_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+  switch_dialplan_interface *result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2
-  if (arg1) (arg1)->samplerate = arg2;
+  result = (switch_dialplan_interface *)new switch_dialplan_interface();
+  jresult = (void *)result
+  return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_samplerate_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_dialplan_interface(void * jarg1) {
+  switch_dialplan_interface *arg1 = (switch_dialplan_interface *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->samplerate);
-  jresult = result; 
-  return jresult;
+  arg1 = (switch_dialplan_interface *)jarg1; 
+  delete arg1;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_channels_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_interface_name_set(void * jarg1, char * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  char *arg2 = (char *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->channels = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg2) {
+      arg1->interface_name = (char const *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->interface_name, (const char *)arg2);
+    } else {
+      arg1->interface_name = 0;
+    }
+  }
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_channels_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_file_interface_interface_name_get(void * jarg1) {
+  char * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->channels);
-  jresult = result
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (char *) ((arg1)->interface_name);
+  jresult = SWIG_csharp_string_callback((const char *)result)
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_keyint_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_open_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,char const *) = (switch_status_t (*)(switch_file_handle_t *,char const *)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->keyint = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,char const *))jarg2; 
+  if (arg1) (arg1)->file_open = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_keyint_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_open_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,char const *) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->keyint);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,char const *)) ((arg1)->file_open);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_ab_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_close_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *) = (switch_status_t (*)(switch_file_handle_t *)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->ab = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *))jarg2; 
+  if (arg1) (arg1)->file_close = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_ab_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_close_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->ab);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *)) ((arg1)->file_close);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vb_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_truncate_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,int64_t) = (switch_status_t (*)(switch_file_handle_t *,int64_t)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->vb = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,int64_t))jarg2; 
+  if (arg1) (arg1)->file_truncate = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vb_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_truncate_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,int64_t) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->vb);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,int64_t)) ((arg1)->file_truncate);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vw_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_read_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,void *,switch_size_t *) = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->vw = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *))jarg2; 
+  if (arg1) (arg1)->file_read = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vw_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_read_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,void *,switch_size_t *) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->vw);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) ((arg1)->file_read);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vh_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_write_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,void *,switch_size_t *) = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->vh = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *))jarg2; 
+  if (arg1) (arg1)->file_write = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vh_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_write_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,void *,switch_size_t *) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->vh);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,void *,switch_size_t *)) ((arg1)->file_write);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_cbr_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_read_video_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t) = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->cbr = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t))jarg2; 
+  if (arg1) (arg1)->file_read_video = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_cbr_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_read_video_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->cbr);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *,switch_video_read_flag_t)) ((arg1)->file_read_video);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_fps_set(void * jarg1, float jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  float arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_write_video_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,switch_frame_t *) = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (float)jarg2; 
-  if (arg1) (arg1)->fps = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *))jarg2; 
+  if (arg1) (arg1)->file_write_video = arg2;
 }
 
 
-SWIGEXPORT float SWIGSTDCALL CSharp_switch_mm_t_fps_get(void * jarg1) {
-  float jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  float result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_write_video_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,switch_frame_t *) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (float) ((arg1)->fps);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,switch_frame_t *)) ((arg1)->file_write_video);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_source_fps_set(void * jarg1, float jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  float arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_seek_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,unsigned int *,int64_t,int) = (switch_status_t (*)(switch_file_handle_t *,unsigned int *,int64_t,int)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (float)jarg2; 
-  if (arg1) (arg1)->source_fps = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,unsigned int *,int64_t,int))jarg2; 
+  if (arg1) (arg1)->file_seek = arg2;
 }
 
 
-SWIGEXPORT float SWIGSTDCALL CSharp_switch_mm_t_source_fps_get(void * jarg1) {
-  float jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  float result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_seek_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,unsigned int *,int64_t,int) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (float) ((arg1)->source_fps);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,unsigned int *,int64_t,int)) ((arg1)->file_seek);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vbuf_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_set_string_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,switch_audio_col_t,char const *) = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const *)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->vbuf = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const *))jarg2; 
+  if (arg1) (arg1)->file_set_string = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vbuf_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_set_string_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,switch_audio_col_t,char const *) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->vbuf);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const *)) ((arg1)->file_set_string);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vprofile_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  switch_video_profile_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_get_string_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,switch_audio_col_t,char const **) = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const **)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (switch_video_profile_t)jarg2; 
-  if (arg1) (arg1)->vprofile = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const **))jarg2; 
+  if (arg1) (arg1)->file_get_string = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vprofile_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  switch_video_profile_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_get_string_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,switch_audio_col_t,char const **) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (switch_video_profile_t) ((arg1)->vprofile);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,switch_audio_col_t,char const **)) ((arg1)->file_get_string);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_vencspd_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  switch_video_encode_speed_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_file_command_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*arg2)(switch_file_handle_t *,switch_file_command_t) = (switch_status_t (*)(switch_file_handle_t *,switch_file_command_t)) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (switch_video_encode_speed_t)jarg2; 
-  if (arg1) (arg1)->vencspd = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_file_handle_t *,switch_file_command_t))jarg2; 
+  if (arg1) (arg1)->file_command = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vencspd_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  switch_video_encode_speed_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_file_command_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_status_t (*result)(switch_file_handle_t *,switch_file_command_t) = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (switch_video_encode_speed_t) ((arg1)->vencspd);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_file_handle_t *,switch_file_command_t)) ((arg1)->file_command);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_try_hardware_encoder_set(void * jarg1, unsigned char jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  uint8_t arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_extens_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  char **arg2 = (char **) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (uint8_t)jarg2; 
-  if (arg1) (arg1)->try_hardware_encoder = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (char **)jarg2; 
+  if (arg1) (arg1)->extens = arg2;
 }
 
 
-SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_mm_t_try_hardware_encoder_get(void * jarg1) {
-  unsigned char jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  uint8_t result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_extens_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  char **result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (uint8_t) ((arg1)->try_hardware_encoder);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (char **) ((arg1)->extens);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_scale_w_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_rwlock_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->scale_w = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_thread_rwlock_t *)jarg2; 
+  if (arg1) (arg1)->rwlock = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_scale_w_get(void * jarg1) {
-  int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  int result;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_rwlock_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_thread_rwlock_t *result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->scale_w);
-  jresult = result; 
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
+  jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_scale_h_set(void * jarg1, int jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_refs_set(void * jarg1, int jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
   int arg2 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
+  arg1 = (switch_file_interface *)jarg1; 
   arg2 = (int)jarg2; 
-  if (arg1) (arg1)->scale_h = arg2;
+  if (arg1) (arg1)->refs = arg2;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_scale_h_get(void * jarg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_switch_file_interface_refs_get(void * jarg1) {
   int jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
   int result;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (int) ((arg1)->scale_h);
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (int) ((arg1)->refs);
   jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_fmt_set(void * jarg1, void * jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  switch_img_fmt_t arg2 ;
-  switch_img_fmt_t *argp2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_reflock_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  argp2 = (switch_img_fmt_t *)jarg2; 
-  if (!argp2) {
-    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_img_fmt_t", 0);
-    return ;
-  }
-  arg2 = *argp2; 
-  if (arg1) (arg1)->fmt = arg2;
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_mutex_t *)jarg2; 
+  if (arg1) (arg1)->reflock = arg2;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_switch_mm_t_fmt_get(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_reflock_get(void * jarg1) {
   void * jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  switch_img_fmt_t result;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_mutex_t *result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result =  ((arg1)->fmt);
-  jresult = new switch_img_fmt_t((const switch_img_fmt_t &)result)
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_mutex_t *) ((arg1)->reflock);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_auth_username_set(void * jarg1, char * jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_parent_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->auth_username;
-    if (arg2) {
-      arg1->auth_username = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->auth_username, (const char *)arg2);
-    } else {
-      arg1->auth_username = 0;
-    }
-  }
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_loadable_module_interface_t *)jarg2; 
+  if (arg1) (arg1)->parent = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_mm_t_auth_username_get(void * jarg1) {
-  char * jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_parent_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_loadable_module_interface_t *result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (char *) ((arg1)->auth_username);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_auth_password_set(void * jarg1, char * jarg2) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  char *arg2 = (char *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_interface_next_set(void * jarg1, void * jarg2) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_file_interface *arg2 = (switch_file_interface *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    delete [] arg1->auth_password;
-    if (arg2) {
-      arg1->auth_password = (char *) (new char[strlen((const char *)arg2)+1]);
-      strcpy((char *)arg1->auth_password, (const char *)arg2);
-    } else {
-      arg1->auth_password = 0;
-    }
-  }
+  arg1 = (switch_file_interface *)jarg1; 
+  arg2 = (switch_file_interface *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
 }
 
 
-SWIGEXPORT char * SWIGSTDCALL CSharp_switch_mm_t_auth_password_get(void * jarg1) {
-  char * jresult ;
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
-  char *result = 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_interface_next_get(void * jarg1) {
+  void * jresult ;
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
+  switch_file_interface *result = 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
-  result = (char *) ((arg1)->auth_password);
-  jresult = SWIG_csharp_string_callback((const char *)result)
+  arg1 = (switch_file_interface *)jarg1; 
+  result = (switch_file_interface *) ((arg1)->next);
+  jresult = (void *)result
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_mm_t() {
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_file_interface() {
   void * jresult ;
-  switch_mm_s *result = 0 ;
+  switch_file_interface *result = 0 ;
   
-  result = (switch_mm_s *)new switch_mm_s();
+  result = (switch_file_interface *)new switch_file_interface();
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_mm_t(void * jarg1) {
-  switch_mm_s *arg1 = (switch_mm_s *) 0 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_file_interface(void * jarg1) {
+  switch_file_interface *arg1 = (switch_file_interface *) 0 ;
   
-  arg1 = (switch_mm_s *)jarg1; 
+  arg1 = (switch_file_interface *)jarg1; 
   delete arg1;
 }
 
index b89f31e1315ed718b60961536c9ff68161227586..fdc5ae318ec88077a397eca84f3c14aabfd873e4 100644 (file)
@@ -1381,6 +1381,14 @@ else
     return ret;
   }
 
+  public static void switch_core_media_bug_set_media_params(SWIGTYPE_p_switch_media_bug bug, switch_mm_t mm) {
+    freeswitchPINVOKE.switch_core_media_bug_set_media_params(SWIGTYPE_p_switch_media_bug.getCPtr(bug), switch_mm_t.getCPtr(mm));
+  }
+
+  public static void switch_core_media_bug_get_media_params(SWIGTYPE_p_switch_media_bug bug, switch_mm_t mm) {
+    freeswitchPINVOKE.switch_core_media_bug_get_media_params(SWIGTYPE_p_switch_media_bug.getCPtr(bug), switch_mm_t.getCPtr(mm));
+  }
+
   public static string switch_core_media_bug_get_text(SWIGTYPE_p_switch_media_bug bug) {
     string ret = freeswitchPINVOKE.switch_core_media_bug_get_text(SWIGTYPE_p_switch_media_bug.getCPtr(bug));
     return ret;
@@ -1425,8 +1433,8 @@ else
     return ret;
   }
 
-  public static switch_status_t switch_core_media_bug_close(SWIGTYPE_p_p_switch_media_bug bug) {
-    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_core_media_bug_close(SWIGTYPE_p_p_switch_media_bug.getCPtr(bug));
+  public static switch_status_t switch_core_media_bug_close(SWIGTYPE_p_p_switch_media_bug bug, switch_bool_t destroy) {
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_core_media_bug_close(SWIGTYPE_p_p_switch_media_bug.getCPtr(bug), (int)destroy);
     return ret;
   }
 
@@ -9972,6 +9980,126 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_waitlist_t")]
   public static extern void delete_switch_waitlist_t(HandleRef jarg1);
 
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_samplerate_set")]
+  public static extern void switch_mm_t_samplerate_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_samplerate_get")]
+  public static extern int switch_mm_t_samplerate_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_channels_set")]
+  public static extern void switch_mm_t_channels_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_channels_get")]
+  public static extern int switch_mm_t_channels_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_keyint_set")]
+  public static extern void switch_mm_t_keyint_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_keyint_get")]
+  public static extern int switch_mm_t_keyint_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_ab_set")]
+  public static extern void switch_mm_t_ab_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_ab_get")]
+  public static extern int switch_mm_t_ab_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vb_set")]
+  public static extern void switch_mm_t_vb_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vb_get")]
+  public static extern int switch_mm_t_vb_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vw_set")]
+  public static extern void switch_mm_t_vw_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vw_get")]
+  public static extern int switch_mm_t_vw_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vh_set")]
+  public static extern void switch_mm_t_vh_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vh_get")]
+  public static extern int switch_mm_t_vh_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_cbr_set")]
+  public static extern void switch_mm_t_cbr_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_cbr_get")]
+  public static extern int switch_mm_t_cbr_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fps_set")]
+  public static extern void switch_mm_t_fps_set(HandleRef jarg1, float jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fps_get")]
+  public static extern float switch_mm_t_fps_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_source_fps_set")]
+  public static extern void switch_mm_t_source_fps_set(HandleRef jarg1, float jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_source_fps_get")]
+  public static extern float switch_mm_t_source_fps_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vbuf_set")]
+  public static extern void switch_mm_t_vbuf_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vbuf_get")]
+  public static extern int switch_mm_t_vbuf_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vprofile_set")]
+  public static extern void switch_mm_t_vprofile_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vprofile_get")]
+  public static extern int switch_mm_t_vprofile_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vencspd_set")]
+  public static extern void switch_mm_t_vencspd_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vencspd_get")]
+  public static extern int switch_mm_t_vencspd_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_try_hardware_encoder_set")]
+  public static extern void switch_mm_t_try_hardware_encoder_set(HandleRef jarg1, byte jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_try_hardware_encoder_get")]
+  public static extern byte switch_mm_t_try_hardware_encoder_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_w_set")]
+  public static extern void switch_mm_t_scale_w_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_w_get")]
+  public static extern int switch_mm_t_scale_w_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_h_set")]
+  public static extern void switch_mm_t_scale_h_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_h_get")]
+  public static extern int switch_mm_t_scale_h_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fmt_set")]
+  public static extern void switch_mm_t_fmt_set(HandleRef jarg1, HandleRef jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fmt_get")]
+  public static extern IntPtr switch_mm_t_fmt_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_username_set")]
+  public static extern void switch_mm_t_auth_username_set(HandleRef jarg1, string jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_username_get")]
+  public static extern string switch_mm_t_auth_username_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_password_set")]
+  public static extern void switch_mm_t_auth_password_set(HandleRef jarg1, string jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_password_get")]
+  public static extern string switch_mm_t_auth_password_get(HandleRef jarg1);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_mm_t")]
+  public static extern IntPtr new_switch_mm_t();
+
+  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_mm_t")]
+  public static extern void delete_switch_mm_t(HandleRef jarg1);
+
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_db_close")]
   public static extern int switch_core_db_close(HandleRef jarg1);
 
@@ -10920,6 +11048,12 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_get_session")]
   public static extern IntPtr switch_core_media_bug_get_session(HandleRef jarg1);
 
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_set_media_params")]
+  public static extern void switch_core_media_bug_set_media_params(HandleRef jarg1, HandleRef jarg2);
+
+  [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_get_media_params")]
+  public static extern void switch_core_media_bug_get_media_params(HandleRef jarg1, HandleRef jarg2);
+
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_get_text")]
   public static extern string switch_core_media_bug_get_text(HandleRef jarg1);
 
@@ -10948,7 +11082,7 @@ class freeswitchPINVOKE {
   public static extern int switch_core_media_bug_remove_callback(HandleRef jarg1, HandleRef jarg2);
 
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_close")]
-  public static extern int switch_core_media_bug_close(HandleRef jarg1);
+  public static extern int switch_core_media_bug_close(HandleRef jarg1, int jarg2);
 
   [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_remove_all_function")]
   public static extern int switch_core_media_bug_remove_all_function(HandleRef jarg1, string jarg2);
@@ -14376,126 +14510,6 @@ class freeswitchPINVOKE {
   [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_file_interface")]
   public static extern void delete_switch_file_interface(HandleRef jarg1);
 
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_samplerate_set")]
-  public static extern void switch_mm_t_samplerate_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_samplerate_get")]
-  public static extern int switch_mm_t_samplerate_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_channels_set")]
-  public static extern void switch_mm_t_channels_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_channels_get")]
-  public static extern int switch_mm_t_channels_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_keyint_set")]
-  public static extern void switch_mm_t_keyint_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_keyint_get")]
-  public static extern int switch_mm_t_keyint_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_ab_set")]
-  public static extern void switch_mm_t_ab_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_ab_get")]
-  public static extern int switch_mm_t_ab_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vb_set")]
-  public static extern void switch_mm_t_vb_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vb_get")]
-  public static extern int switch_mm_t_vb_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vw_set")]
-  public static extern void switch_mm_t_vw_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vw_get")]
-  public static extern int switch_mm_t_vw_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vh_set")]
-  public static extern void switch_mm_t_vh_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vh_get")]
-  public static extern int switch_mm_t_vh_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_cbr_set")]
-  public static extern void switch_mm_t_cbr_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_cbr_get")]
-  public static extern int switch_mm_t_cbr_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fps_set")]
-  public static extern void switch_mm_t_fps_set(HandleRef jarg1, float jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fps_get")]
-  public static extern float switch_mm_t_fps_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_source_fps_set")]
-  public static extern void switch_mm_t_source_fps_set(HandleRef jarg1, float jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_source_fps_get")]
-  public static extern float switch_mm_t_source_fps_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vbuf_set")]
-  public static extern void switch_mm_t_vbuf_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vbuf_get")]
-  public static extern int switch_mm_t_vbuf_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vprofile_set")]
-  public static extern void switch_mm_t_vprofile_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vprofile_get")]
-  public static extern int switch_mm_t_vprofile_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vencspd_set")]
-  public static extern void switch_mm_t_vencspd_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vencspd_get")]
-  public static extern int switch_mm_t_vencspd_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_try_hardware_encoder_set")]
-  public static extern void switch_mm_t_try_hardware_encoder_set(HandleRef jarg1, byte jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_try_hardware_encoder_get")]
-  public static extern byte switch_mm_t_try_hardware_encoder_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_w_set")]
-  public static extern void switch_mm_t_scale_w_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_w_get")]
-  public static extern int switch_mm_t_scale_w_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_h_set")]
-  public static extern void switch_mm_t_scale_h_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_scale_h_get")]
-  public static extern int switch_mm_t_scale_h_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fmt_set")]
-  public static extern void switch_mm_t_fmt_set(HandleRef jarg1, HandleRef jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_fmt_get")]
-  public static extern IntPtr switch_mm_t_fmt_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_username_set")]
-  public static extern void switch_mm_t_auth_username_set(HandleRef jarg1, string jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_username_get")]
-  public static extern string switch_mm_t_auth_username_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_password_set")]
-  public static extern void switch_mm_t_auth_password_set(HandleRef jarg1, string jarg2);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_auth_password_get")]
-  public static extern string switch_mm_t_auth_password_get(HandleRef jarg1);
-
-  [DllImport("mod_managed", EntryPoint="CSharp_new_switch_mm_t")]
-  public static extern IntPtr new_switch_mm_t();
-
-  [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_mm_t")]
-  public static extern void delete_switch_mm_t(HandleRef jarg1);
-
   [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_file_interface_set")]
   public static extern void switch_file_handle_file_interface_set(HandleRef jarg1, HandleRef jarg2);