]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11785 [mod_lua] reswig with patches for scan-build
authorChris Rienzo <chris@signalwire.com>
Tue, 16 Apr 2019 20:45:21 +0000 (00:45 +0400)
committerAndrey Volk <andywolk@gmail.com>
Wed, 17 Jul 2019 17:46:59 +0000 (21:46 +0400)
src/mod/languages/mod_lua/hack.diff
src/mod/languages/mod_lua/mod_lua_wrap.cpp
src/mod/languages/mod_managed/freeswitch_wrap.cxx
src/mod/languages/mod_managed/managed/swig.cs

index 2837c9a08bfc22deb5841ff4987f96c00ff1dbaf..308ef189e997b00427ebf9b3f8348bd72d169c1d 100644 (file)
    return SWIG_arg;
    
    if(0) SWIG_fail;
+@@ -9217,6 +9217,7 @@ static int _wrap_Dbh_test_reactive__SWIG_0(lua_State* L) {
+   arg2 = (char *)lua_tostring(L, 2);
+   arg3 = (char *)lua_tostring(L, 3);
+   arg4 = (char *)lua_tostring(L, 4);
++  switch_assert(arg1);
+   result = (bool)(arg1)->test_reactive(arg2,arg3,arg4);
+   lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
+   return SWIG_arg;
+@@ -9404,6 +9405,7 @@ static int _wrap_Dbh_query(lua_State* L) {
+       (&arg3)->idx = 3;
+     }
+   }
++  switch_assert(arg1);
+   result = (bool)(arg1)->query(arg2,arg3);
+   lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
+   return SWIG_arg;
+@@ -9427,7 +9429,7 @@ static int _wrap_Dbh_affected_rows(lua_State* L) {
+   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Dbh,0))){
+     SWIG_fail_ptr("Dbh_affected_rows",1,SWIGTYPE_p_LUA__Dbh);
+   }
+-  
++  switch_assert(arg1);
+   result = (int)(arg1)->affected_rows();
+   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
+   return SWIG_arg;
+@@ -9451,7 +9453,7 @@ static int _wrap_Dbh_last_error(lua_State* L) {
+   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Dbh,0))){
+     SWIG_fail_ptr("Dbh_last_error",1,SWIGTYPE_p_LUA__Dbh);
+   }
+-  
++  switch_assert(arg1);
+   result = (char *)(arg1)->last_error();
+   lua_pushstring(L,(const char *)result); SWIG_arg++;
+   return SWIG_arg;
+@@ -9474,7 +9476,7 @@ static int _wrap_Dbh_clear_error(lua_State* L) {
+   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Dbh,0))){
+     SWIG_fail_ptr("Dbh_clear_error",1,SWIGTYPE_p_LUA__Dbh);
+   }
+-  
++  switch_assert(arg1);
+   (arg1)->clear_error();
+   
+   return SWIG_arg;
+@@ -9502,6 +9504,7 @@ static int _wrap_Dbh_load_extension(lua_State* L) {
+   }
+   
+   arg2 = (char *)lua_tostring(L, 2);
++  switch_assert(arg1);
+   result = (int)(arg1)->load_extension((char const *)arg2);
+   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
+   return SWIG_arg;
+@@ -9601,6 +9604,7 @@ static int _wrap_JSON_decode(lua_State* L) {
+   }
+   
+   arg2 = (char *)lua_tostring(L, 2);
++  switch_assert(arg1);
+   result = (cJSON *)(arg1)->decode((char const *)arg2);
+   {
+     SWIG_arg += LUA::JSON::cJSON2LuaTable(L, result);
+@@ -9634,6 +9638,7 @@ static int _wrap_JSON_encode(lua_State* L) {
+     (&arg2)->L = L;
+     (&arg2)->idx = 2;
+   }
++  switch_assert(arg1);
+   result = (char *)(arg1)->encode(arg2);
+   lua_pushstring(L,(const char *)result); SWIG_arg++;
+   return SWIG_arg;
+@@ -9661,6 +9666,7 @@ static int _wrap_JSON_execute__SWIG_0(lua_State* L) {
+   }
+   
+   arg2 = (char *)lua_tostring(L, 2);
++  switch_assert(arg1);
+   result = (cJSON *)(arg1)->execute((char const *)arg2);
+   {
+     SWIG_arg += LUA::JSON::cJSON2LuaTable(L, result);
+@@ -9694,6 +9700,7 @@ static int _wrap_JSON_execute__SWIG_1(lua_State* L) {
+     (&arg2)->L = L;
+     (&arg2)->idx = 2;
+   }
++  switch_assert(arg1);
+   result = (cJSON *)(arg1)->execute(arg2);
+   {
+     SWIG_arg += LUA::JSON::cJSON2LuaTable(L, result);
+@@ -9778,6 +9785,7 @@ static int _wrap_JSON_execute2__SWIG_0(lua_State* L) {
+   }
+   
+   arg2 = (char *)lua_tostring(L, 2);
++  switch_assert(arg1);
+   result = (char *)(arg1)->execute2((char const *)arg2);
+   lua_pushstring(L,(const char *)result); SWIG_arg++;
+   return SWIG_arg;
+@@ -9808,6 +9816,7 @@ static int _wrap_JSON_execute2__SWIG_1(lua_State* L) {
+     (&arg2)->L = L;
+     (&arg2)->idx = 2;
+   }
++  switch_assert(arg1);
+   result = (char *)(arg1)->execute2(arg2);
+   lua_pushstring(L,(const char *)result); SWIG_arg++;
+   return SWIG_arg;
+@@ -9888,6 +9897,7 @@ static int _wrap_JSON_encode_empty_table_as_object(lua_State* L) {
+   }
+   
+   arg2 = (lua_toboolean(L, 2)!=0);
++  switch_assert(arg1);
+   (arg1)->encode_empty_table_as_object(arg2);
+   
+   return SWIG_arg;
+@@ -9914,6 +9924,7 @@ static int _wrap_JSON_return_unformatted_json(lua_State* L) {
+   }
+   
+   arg2 = (lua_toboolean(L, 2)!=0);
++  switch_assert(arg1);
+   (arg1)->return_unformatted_json(arg2);
+   
+   return SWIG_arg;
index 30f6ac66290baccfb114c39c589d9fc963a6d0d1..ea42d2134f4fc215cfcd347bf5c47eafce99111e 100644 (file)
@@ -2682,31 +2682,32 @@ SWIG_Lua_dostring(lua_State *L, const char *str) {
 #define SWIGTYPE_p_EventConsumer swig_types[4]
 #define SWIGTYPE_p_IVRMenu swig_types[5]
 #define SWIGTYPE_p_LUA__Dbh swig_types[6]
-#define SWIGTYPE_p_LUA__Session swig_types[7]
-#define SWIGTYPE_p_SWIGLUA_FN swig_types[8]
-#define SWIGTYPE_p_Stream swig_types[9]
-#define SWIGTYPE_p_input_callback_state swig_types[10]
-#define SWIGTYPE_p_int swig_types[11]
-#define SWIGTYPE_p_lua_State swig_types[12]
-#define SWIGTYPE_p_p_switch_event_node_t swig_types[13]
-#define SWIGTYPE_p_session_flag_t swig_types[14]
-#define SWIGTYPE_p_switch_call_cause_t swig_types[15]
-#define SWIGTYPE_p_switch_channel_state_t swig_types[16]
-#define SWIGTYPE_p_switch_channel_t swig_types[17]
-#define SWIGTYPE_p_switch_core_session_t swig_types[18]
-#define SWIGTYPE_p_switch_event_t swig_types[19]
-#define SWIGTYPE_p_switch_event_types_t swig_types[20]
-#define SWIGTYPE_p_switch_input_args_t swig_types[21]
-#define SWIGTYPE_p_switch_input_type_t swig_types[22]
-#define SWIGTYPE_p_switch_priority_t swig_types[23]
-#define SWIGTYPE_p_switch_queue_t swig_types[24]
-#define SWIGTYPE_p_switch_state_handler_table_t swig_types[25]
-#define SWIGTYPE_p_switch_status_t swig_types[26]
-#define SWIGTYPE_p_switch_stream_handle_t swig_types[27]
-#define SWIGTYPE_p_uint32_t swig_types[28]
-#define SWIGTYPE_p_void swig_types[29]
-static swig_type_info *swig_types[31];
-static swig_module_info swig_module = {swig_types, 30, 0, 0, 0, 0};
+#define SWIGTYPE_p_LUA__JSON swig_types[7]
+#define SWIGTYPE_p_LUA__Session swig_types[8]
+#define SWIGTYPE_p_SWIGLUA_FN swig_types[9]
+#define SWIGTYPE_p_Stream swig_types[10]
+#define SWIGTYPE_p_input_callback_state swig_types[11]
+#define SWIGTYPE_p_int swig_types[12]
+#define SWIGTYPE_p_lua_State swig_types[13]
+#define SWIGTYPE_p_p_switch_event_node_t swig_types[14]
+#define SWIGTYPE_p_session_flag_t swig_types[15]
+#define SWIGTYPE_p_switch_call_cause_t swig_types[16]
+#define SWIGTYPE_p_switch_channel_state_t swig_types[17]
+#define SWIGTYPE_p_switch_channel_t swig_types[18]
+#define SWIGTYPE_p_switch_core_session_t swig_types[19]
+#define SWIGTYPE_p_switch_event_t swig_types[20]
+#define SWIGTYPE_p_switch_event_types_t swig_types[21]
+#define SWIGTYPE_p_switch_input_args_t swig_types[22]
+#define SWIGTYPE_p_switch_input_type_t swig_types[23]
+#define SWIGTYPE_p_switch_priority_t swig_types[24]
+#define SWIGTYPE_p_switch_queue_t swig_types[25]
+#define SWIGTYPE_p_switch_state_handler_table_t swig_types[26]
+#define SWIGTYPE_p_switch_status_t swig_types[27]
+#define SWIGTYPE_p_switch_stream_handle_t swig_types[28]
+#define SWIGTYPE_p_uint32_t swig_types[29]
+#define SWIGTYPE_p_void swig_types[30]
+static swig_type_info *swig_types[32];
+static swig_module_info swig_module = {swig_types, 31, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -9216,6 +9217,7 @@ static int _wrap_Dbh_test_reactive__SWIG_0(lua_State* L) {
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   arg4 = (char *)lua_tostring(L, 4);
+  switch_assert(arg1);
   result = (bool)(arg1)->test_reactive(arg2,arg3,arg4);
   lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
@@ -9403,6 +9405,7 @@ static int _wrap_Dbh_query(lua_State* L) {
       (&arg3)->idx = 3;
     }
   }
+  switch_assert(arg1);
   result = (bool)(arg1)->query(arg2,arg3);
   lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
@@ -9426,7 +9429,7 @@ static int _wrap_Dbh_affected_rows(lua_State* L) {
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Dbh,0))){
     SWIG_fail_ptr("Dbh_affected_rows",1,SWIGTYPE_p_LUA__Dbh);
   }
-  
+  switch_assert(arg1);
   result = (int)(arg1)->affected_rows();
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
@@ -9450,7 +9453,7 @@ static int _wrap_Dbh_last_error(lua_State* L) {
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Dbh,0))){
     SWIG_fail_ptr("Dbh_last_error",1,SWIGTYPE_p_LUA__Dbh);
   }
-  
+  switch_assert(arg1);
   result = (char *)(arg1)->last_error();
   lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
@@ -9473,7 +9476,7 @@ static int _wrap_Dbh_clear_error(lua_State* L) {
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Dbh,0))){
     SWIG_fail_ptr("Dbh_clear_error",1,SWIGTYPE_p_LUA__Dbh);
   }
-  
+  switch_assert(arg1);
   (arg1)->clear_error();
   
   return SWIG_arg;
@@ -9501,6 +9504,7 @@ static int _wrap_Dbh_load_extension(lua_State* L) {
   }
   
   arg2 = (char *)lua_tostring(L, 2);
+  switch_assert(arg1);
   result = (int)(arg1)->load_extension((char const *)arg2);
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
@@ -9568,6 +9572,424 @@ static swig_lua_class *swig_Dbh_bases[] = {0};
 static const char *swig_Dbh_base_names[] = {0};
 static swig_lua_class _wrap_class_Dbh = { "Dbh", "Dbh", &SWIGTYPE_p_LUA__Dbh,_proxy__wrap_new_Dbh, swig_delete_Dbh, swig_Dbh_methods, swig_Dbh_attributes, &swig_Dbh_Sf_SwigStatic, swig_Dbh_meta, swig_Dbh_bases, swig_Dbh_base_names };
 
+static int _wrap_new_JSON(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::JSON",0,0)
+  result = (LUA::JSON *)new LUA::JSON();
+  SWIG_NewPointerObj(L,result,SWIGTYPE_p_LUA__JSON,1); SWIG_arg++; 
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_decode(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  char *arg2 = (char *) 0 ;
+  cJSON *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::decode",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::decode",1,"LUA::JSON *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("LUA::JSON::decode",2,"char const *");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_decode",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  arg2 = (char *)lua_tostring(L, 2);
+  switch_assert(arg1);
+  result = (cJSON *)(arg1)->decode((char const *)arg2);
+  {
+    SWIG_arg += LUA::JSON::cJSON2LuaTable(L, result);
+    cJSON_Delete(result);
+  }
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_encode(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  SWIGLUA_TABLE arg2 ;
+  char *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::encode",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::encode",1,"LUA::JSON *");
+  if(!lua_istable(L,2)) SWIG_fail_arg("LUA::JSON::encode",2,"SWIGLUA_TABLE");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_encode",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  {
+    (&arg2)->L = L;
+    (&arg2)->idx = 2;
+  }
+  switch_assert(arg1);
+  result = (char *)(arg1)->encode(arg2);
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_execute__SWIG_0(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  char *arg2 = (char *) 0 ;
+  cJSON *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::execute",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::execute",1,"LUA::JSON *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("LUA::JSON::execute",2,"char const *");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_execute",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  arg2 = (char *)lua_tostring(L, 2);
+  switch_assert(arg1);
+  result = (cJSON *)(arg1)->execute((char const *)arg2);
+  {
+    SWIG_arg += LUA::JSON::cJSON2LuaTable(L, result);
+    cJSON_Delete(result);
+  }
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_execute__SWIG_1(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  SWIGLUA_TABLE arg2 ;
+  cJSON *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::execute",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::execute",1,"LUA::JSON *");
+  if(!lua_istable(L,2)) SWIG_fail_arg("LUA::JSON::execute",2,"SWIGLUA_TABLE");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_execute",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  {
+    (&arg2)->L = L;
+    (&arg2)->idx = 2;
+  }
+  switch_assert(arg1);
+  result = (cJSON *)(arg1)->execute(arg2);
+  {
+    SWIG_arg += LUA::JSON::cJSON2LuaTable(L, result);
+    cJSON_Delete(result);
+  }
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_execute(lua_State* L) {
+  int argc;
+  int argv[3]={
+    1,2,3
+  };
+  
+  argc = lua_gettop(L);
+  if (argc == 2) {
+    int _v;
+    {
+      void *ptr;
+      if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_LUA__JSON, 0)) {
+        _v = 0;
+      } else {
+        _v = 1;
+      }
+    }
+    if (_v) {
+      {
+        _v = SWIG_lua_isnilstring(L,argv[1]);
+      }
+      if (_v) {
+        return _wrap_JSON_execute__SWIG_0(L);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      void *ptr;
+      if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_LUA__JSON, 0)) {
+        _v = 0;
+      } else {
+        _v = 1;
+      }
+    }
+    if (_v) {
+      {
+        _v = lua_istable(L, argv[1]);
+      }
+      if (_v) {
+        return _wrap_JSON_execute__SWIG_1(L);
+      }
+    }
+  }
+  
+  SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'JSON_execute'\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    LUA::JSON::execute(char const *)\n"
+    "    LUA::JSON::execute(SWIGLUA_TABLE)\n");
+  lua_error(L);return 0;
+}
+
+
+static int _wrap_JSON_execute2__SWIG_0(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::execute2",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::execute2",1,"LUA::JSON *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("LUA::JSON::execute2",2,"char const *");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_execute2",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  arg2 = (char *)lua_tostring(L, 2);
+  switch_assert(arg1);
+  result = (char *)(arg1)->execute2((char const *)arg2);
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_execute2__SWIG_1(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  SWIGLUA_TABLE arg2 ;
+  char *result = 0 ;
+  
+  SWIG_check_num_args("LUA::JSON::execute2",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::execute2",1,"LUA::JSON *");
+  if(!lua_istable(L,2)) SWIG_fail_arg("LUA::JSON::execute2",2,"SWIGLUA_TABLE");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_execute2",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  {
+    (&arg2)->L = L;
+    (&arg2)->idx = 2;
+  }
+  switch_assert(arg1);
+  result = (char *)(arg1)->execute2(arg2);
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_execute2(lua_State* L) {
+  int argc;
+  int argv[3]={
+    1,2,3
+  };
+  
+  argc = lua_gettop(L);
+  if (argc == 2) {
+    int _v;
+    {
+      void *ptr;
+      if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_LUA__JSON, 0)) {
+        _v = 0;
+      } else {
+        _v = 1;
+      }
+    }
+    if (_v) {
+      {
+        _v = SWIG_lua_isnilstring(L,argv[1]);
+      }
+      if (_v) {
+        return _wrap_JSON_execute2__SWIG_0(L);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      void *ptr;
+      if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_LUA__JSON, 0)) {
+        _v = 0;
+      } else {
+        _v = 1;
+      }
+    }
+    if (_v) {
+      {
+        _v = lua_istable(L, argv[1]);
+      }
+      if (_v) {
+        return _wrap_JSON_execute2__SWIG_1(L);
+      }
+    }
+  }
+  
+  SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'JSON_execute2'\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    LUA::JSON::execute2(char const *)\n"
+    "    LUA::JSON::execute2(SWIGLUA_TABLE)\n");
+  lua_error(L);return 0;
+}
+
+
+static int _wrap_JSON_encode_empty_table_as_object(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  bool arg2 ;
+  
+  SWIG_check_num_args("LUA::JSON::encode_empty_table_as_object",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::encode_empty_table_as_object",1,"LUA::JSON *");
+  if(!lua_isboolean(L,2)) SWIG_fail_arg("LUA::JSON::encode_empty_table_as_object",2,"bool");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_encode_empty_table_as_object",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  arg2 = (lua_toboolean(L, 2)!=0);
+  switch_assert(arg1);
+  (arg1)->encode_empty_table_as_object(arg2);
+  
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static int _wrap_JSON_return_unformatted_json(lua_State* L) {
+  int SWIG_arg = 0;
+  LUA::JSON *arg1 = (LUA::JSON *) 0 ;
+  bool arg2 ;
+  
+  SWIG_check_num_args("LUA::JSON::return_unformatted_json",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("LUA::JSON::return_unformatted_json",1,"LUA::JSON *");
+  if(!lua_isboolean(L,2)) SWIG_fail_arg("LUA::JSON::return_unformatted_json",2,"bool");
+  
+  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__JSON,0))){
+    SWIG_fail_ptr("JSON_return_unformatted_json",1,SWIGTYPE_p_LUA__JSON);
+  }
+  
+  arg2 = (lua_toboolean(L, 2)!=0);
+  switch_assert(arg1);
+  (arg1)->return_unformatted_json(arg2);
+  
+  return SWIG_arg;
+  
+  if(0) SWIG_fail;
+  
+fail:
+  lua_error(L);
+  return SWIG_arg;
+}
+
+
+static void swig_delete_JSON(void *obj) {
+LUA::JSON *arg1 = (LUA::JSON *) obj;
+delete arg1;
+}
+static int _proxy__wrap_new_JSON(lua_State *L) {
+    assert(lua_istable(L,1));
+    lua_pushcfunction(L,_wrap_new_JSON);
+    assert(!lua_isnil(L,-1));
+    lua_replace(L,1); /* replace our table with real constructor */
+    lua_call(L,lua_gettop(L)-1,1);
+    return 1;
+}
+static swig_lua_attribute swig_JSON_attributes[] = {
+    {0,0,0}
+};
+static swig_lua_method swig_JSON_methods[]= {
+    { "decode", _wrap_JSON_decode},
+    { "encode", _wrap_JSON_encode},
+    { "execute", _wrap_JSON_execute},
+    { "execute2", _wrap_JSON_execute2},
+    { "encode_empty_table_as_object", _wrap_JSON_encode_empty_table_as_object},
+    { "return_unformatted_json", _wrap_JSON_return_unformatted_json},
+    {0,0}
+};
+static swig_lua_method swig_JSON_meta[] = {
+    {0,0}
+};
+
+static swig_lua_attribute swig_JSON_Sf_SwigStatic_attributes[] = {
+    {0,0,0}
+};
+static swig_lua_const_info swig_JSON_Sf_SwigStatic_constants[]= {
+    {0,0,0,0,0,0}
+};
+static swig_lua_method swig_JSON_Sf_SwigStatic_methods[]= {
+    {0,0}
+};
+static swig_lua_class* swig_JSON_Sf_SwigStatic_classes[]= {
+    0
+};
+
+static swig_lua_namespace swig_JSON_Sf_SwigStatic = {
+    "JSON",
+    swig_JSON_Sf_SwigStatic_methods,
+    swig_JSON_Sf_SwigStatic_attributes,
+    swig_JSON_Sf_SwigStatic_constants,
+    swig_JSON_Sf_SwigStatic_classes,
+    0
+};
+static swig_lua_class *swig_JSON_bases[] = {0};
+static const char *swig_JSON_base_names[] = {0};
+static swig_lua_class _wrap_class_JSON = { "JSON", "JSON", &SWIGTYPE_p_LUA__JSON,_proxy__wrap_new_JSON, swig_delete_JSON, swig_JSON_methods, swig_JSON_attributes, &swig_JSON_Sf_SwigStatic, swig_JSON_meta, swig_JSON_bases, swig_JSON_base_names };
+
 static swig_lua_attribute swig_SwigModule_attributes[] = {
     {0,0,0}
 };
@@ -9605,6 +10027,7 @@ static swig_lua_class* swig_SwigModule_classes[]= {
 &_wrap_class_CoreSession,
 &_wrap_class_Session,
 &_wrap_class_Dbh,
+&_wrap_class_JSON,
     0
 };
 static swig_lua_namespace* swig_SwigModule_namespaces[] = {
@@ -9635,6 +10058,7 @@ static swig_type_info _swigt__p_Event = {"_p_Event", "Event *", 0, 0, (void*)&_w
 static swig_type_info _swigt__p_EventConsumer = {"_p_EventConsumer", "EventConsumer *", 0, 0, (void*)&_wrap_class_EventConsumer, 0};
 static swig_type_info _swigt__p_IVRMenu = {"_p_IVRMenu", "IVRMenu *", 0, 0, (void*)&_wrap_class_IVRMenu, 0};
 static swig_type_info _swigt__p_LUA__Dbh = {"_p_LUA__Dbh", "LUA::Dbh *", 0, 0, (void*)&_wrap_class_Dbh, 0};
+static swig_type_info _swigt__p_LUA__JSON = {"_p_LUA__JSON", "LUA::JSON *", 0, 0, (void*)&_wrap_class_JSON, 0};
 static swig_type_info _swigt__p_LUA__Session = {"_p_LUA__Session", "LUA::Session *", 0, 0, (void*)&_wrap_class_Session, 0};
 static swig_type_info _swigt__p_SWIGLUA_FN = {"_p_SWIGLUA_FN", "SWIGLUA_FN *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Stream = {"_p_Stream", "Stream *", 0, 0, (void*)&_wrap_class_Stream, 0};
@@ -9667,6 +10091,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_EventConsumer,
   &_swigt__p_IVRMenu,
   &_swigt__p_LUA__Dbh,
+  &_swigt__p_LUA__JSON,
   &_swigt__p_LUA__Session,
   &_swigt__p_SWIGLUA_FN,
   &_swigt__p_Stream,
@@ -9699,6 +10124,7 @@ static swig_cast_info _swigc__p_Event[] = {  {&_swigt__p_Event, 0, 0, 0},{0, 0,
 static swig_cast_info _swigc__p_EventConsumer[] = {  {&_swigt__p_EventConsumer, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IVRMenu[] = {  {&_swigt__p_IVRMenu, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_LUA__Dbh[] = {  {&_swigt__p_LUA__Dbh, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_LUA__JSON[] = {  {&_swigt__p_LUA__JSON, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_LUA__Session[] = {  {&_swigt__p_LUA__Session, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_SWIGLUA_FN[] = {  {&_swigt__p_SWIGLUA_FN, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Stream[] = {  {&_swigt__p_Stream, 0, 0, 0},{0, 0, 0, 0}};
@@ -9731,6 +10157,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_EventConsumer,
   _swigc__p_IVRMenu,
   _swigc__p_LUA__Dbh,
+  _swigc__p_LUA__JSON,
   _swigc__p_LUA__Session,
   _swigc__p_SWIGLUA_FN,
   _swigc__p_Stream,
index 7d7e664256bc37927165522c6c79739a748db009..f7d5e0a44c17f06420094f14e0941488326ec6b7 100644 (file)
@@ -1929,6 +1929,46 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_MAX_FORWARDS_VARIA
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_RFC7989_SESSION_ID_VARIABLE_get___() {
+  char * jresult ;
+  char *result = 0 ;
+  
+  result = (char *)("session_uuid");
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_RFC7989_REMOTE_SESSION_ID_VARIABLE_get___() {
+  char * jresult ;
+  char *result = 0 ;
+  
+  result = (char *)("remote_session_uuid");
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_RFC7989_APP_SESSION_ID_VARIABLE_get___() {
+  char * jresult ;
+  char *result = 0 ;
+  
+  result = (char *)("app_session_uuid");
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_RFC7989_GENERIC_PARAM_VARIABLE_get___() {
+  char * jresult ;
+  char *result = 0 ;
+  
+  result = (char *)("generic_param_session_uuid");
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
 SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_MAX_SESSION_TRANSFERS_VARIABLE_get___() {
   char * jresult ;
   char *result = 0 ;
@@ -4743,6 +4783,196 @@ SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_rtcp_numbers_
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_nack_count_set___(void * jarg1, unsigned short jarg2) {
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t arg2 ;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  arg2 = (uint16_t)jarg2; 
+  if (arg1) (arg1)->nack_count = arg2;
+}
+
+
+SWIGEXPORT unsigned short SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_nack_count_get___(void * jarg1) {
+  unsigned short jresult ;
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t result;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  result = (uint16_t) ((arg1)->nack_count);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_fir_count_set___(void * jarg1, unsigned short jarg2) {
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t arg2 ;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  arg2 = (uint16_t)jarg2; 
+  if (arg1) (arg1)->fir_count = arg2;
+}
+
+
+SWIGEXPORT unsigned short SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_fir_count_get___(void * jarg1) {
+  unsigned short jresult ;
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t result;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  result = (uint16_t) ((arg1)->fir_count);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_pli_count_set___(void * jarg1, unsigned short jarg2) {
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t arg2 ;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  arg2 = (uint16_t)jarg2; 
+  if (arg1) (arg1)->pli_count = arg2;
+}
+
+
+SWIGEXPORT unsigned short SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_pli_count_get___(void * jarg1) {
+  unsigned short jresult ;
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t result;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  result = (uint16_t) ((arg1)->pli_count);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_sr_count_set___(void * jarg1, unsigned short jarg2) {
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t arg2 ;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  arg2 = (uint16_t)jarg2; 
+  if (arg1) (arg1)->sr_count = arg2;
+}
+
+
+SWIGEXPORT unsigned short SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_sr_count_get___(void * jarg1) {
+  unsigned short jresult ;
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t result;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  result = (uint16_t) ((arg1)->sr_count);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_rr_count_set___(void * jarg1, unsigned short jarg2) {
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t arg2 ;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  arg2 = (uint16_t)jarg2; 
+  if (arg1) (arg1)->rr_count = arg2;
+}
+
+
+SWIGEXPORT unsigned short SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_rr_count_get___(void * jarg1) {
+  unsigned short jresult ;
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  uint16_t result;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  result = (uint16_t) ((arg1)->rr_count);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_rtcp_video_counters_t___() {
+  void * jresult ;
+  switch_rtcp_video_counters_t *result = 0 ;
+  
+  result = (switch_rtcp_video_counters_t *)new switch_rtcp_video_counters_t();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_rtcp_video_counters_t___(void * jarg1) {
+  switch_rtcp_video_counters_t *arg1 = (switch_rtcp_video_counters_t *) 0 ;
+  
+  arg1 = (switch_rtcp_video_counters_t *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_in_set___(void * jarg1, void * jarg2) {
+  switch_rtcp_video_stats_t *arg1 = (switch_rtcp_video_stats_t *) 0 ;
+  switch_rtcp_video_counters_t *arg2 = (switch_rtcp_video_counters_t *) 0 ;
+  
+  arg1 = (switch_rtcp_video_stats_t *)jarg1; 
+  arg2 = (switch_rtcp_video_counters_t *)jarg2; 
+  if (arg1) (arg1)->video_in = *arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_in_get___(void * jarg1) {
+  void * jresult ;
+  switch_rtcp_video_stats_t *arg1 = (switch_rtcp_video_stats_t *) 0 ;
+  switch_rtcp_video_counters_t *result = 0 ;
+  
+  arg1 = (switch_rtcp_video_stats_t *)jarg1; 
+  result = (switch_rtcp_video_counters_t *)& ((arg1)->video_in);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_out_set___(void * jarg1, void * jarg2) {
+  switch_rtcp_video_stats_t *arg1 = (switch_rtcp_video_stats_t *) 0 ;
+  switch_rtcp_video_counters_t *arg2 = (switch_rtcp_video_counters_t *) 0 ;
+  
+  arg1 = (switch_rtcp_video_stats_t *)jarg1; 
+  arg2 = (switch_rtcp_video_counters_t *)jarg2; 
+  if (arg1) (arg1)->video_out = *arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_out_get___(void * jarg1) {
+  void * jresult ;
+  switch_rtcp_video_stats_t *arg1 = (switch_rtcp_video_stats_t *) 0 ;
+  switch_rtcp_video_counters_t *result = 0 ;
+  
+  arg1 = (switch_rtcp_video_stats_t *)jarg1; 
+  result = (switch_rtcp_video_counters_t *)& ((arg1)->video_out);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_rtcp_video_stats_t___() {
+  void * jresult ;
+  switch_rtcp_video_stats_t *result = 0 ;
+  
+  result = (switch_rtcp_video_stats_t *)new switch_rtcp_video_stats_t();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_rtcp_video_stats_t___(void * jarg1) {
+  switch_rtcp_video_stats_t *arg1 = (switch_rtcp_video_stats_t *) 0 ;
+  
+  arg1 = (switch_rtcp_video_stats_t *)jarg1; 
+  delete arg1;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_rtp_stats_t_inbound_set___(void * jarg1, void * jarg2) {
   switch_rtp_stats_t *arg1 = (switch_rtp_stats_t *) 0 ;
   switch_rtp_numbers_t *arg2 = (switch_rtp_numbers_t *) 0 ;
@@ -5845,6 +6075,90 @@ SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_vid_params_t_
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_fps_t_fps_set___(void * jarg1, float jarg2) {
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  float arg2 ;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  arg2 = (float)jarg2; 
+  if (arg1) (arg1)->fps = arg2;
+}
+
+
+SWIGEXPORT float SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_fps_t_fps_get___(void * jarg1) {
+  float jresult ;
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  float result;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  result = (float) ((arg1)->fps);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_fps_t_ms_set___(void * jarg1, int jarg2) {
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  int arg2 ;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->ms = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_fps_t_ms_get___(void * jarg1) {
+  int jresult ;
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  int result;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  result = (int) ((arg1)->ms);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_fps_t_samples_set___(void * jarg1, int jarg2) {
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  int arg2 ;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->samples = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_fps_t_samples_get___(void * jarg1) {
+  int jresult ;
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  int result;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  result = (int) ((arg1)->samples);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_fps_t___() {
+  void * jresult ;
+  switch_fps_s *result = 0 ;
+  
+  result = (switch_fps_s *)new switch_fps_s();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_fps_t___(void * jarg1) {
+  switch_fps_s *arg1 = (switch_fps_s *) 0 ;
+  
+  arg1 = (switch_fps_s *)jarg1; 
+  delete arg1;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_MEDIA_TYPE_TOTAL_get___() {
   int jresult ;
   int result;
@@ -12751,6 +13065,28 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_core_perform_strdu
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_core_perform_strndup___(void * jarg1, char * jarg2, unsigned long jarg3, char * jarg4, char * jarg5, int jarg6) {
+  char * jresult ;
+  switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  size_t arg3 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  char *result = 0 ;
+  
+  arg1 = (switch_memory_pool_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (size_t)jarg3; 
+  arg4 = (char *)jarg4; 
+  arg5 = (char *)jarg5; 
+  arg6 = (int)jarg6; 
+  result = (char *)switch_core_perform_strndup(arg1,(char const *)arg2,arg3,(char const *)arg4,(char const *)arg5,arg6);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
 SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_core_session_sprintf___(void * jarg1, char * jarg2) {
   char * jresult ;
   switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
@@ -16664,6 +17000,28 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_native_ha
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_native_handle_t_database_interface_dbh_set___(void * jarg1, void * jarg2) {
+  switch_cache_db_native_handle_t *arg1 = (switch_cache_db_native_handle_t *) 0 ;
+  switch_database_interface_handle_t *arg2 = (switch_database_interface_handle_t *) 0 ;
+  
+  arg1 = (switch_cache_db_native_handle_t *)jarg1; 
+  arg2 = (switch_database_interface_handle_t *)jarg2; 
+  if (arg1) (arg1)->database_interface_dbh = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_native_handle_t_database_interface_dbh_get___(void * jarg1) {
+  void * jresult ;
+  switch_cache_db_native_handle_t *arg1 = (switch_cache_db_native_handle_t *) 0 ;
+  switch_database_interface_handle_t *result = 0 ;
+  
+  arg1 = (switch_cache_db_native_handle_t *)jarg1; 
+  result = (switch_database_interface_handle_t *) ((arg1)->database_interface_dbh);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_cache_db_native_handle_t___() {
   void * jresult ;
   switch_cache_db_native_handle_t *result = 0 ;
@@ -16886,6 +17244,127 @@ SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_cache_db_pgsq
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_dsn_set___(void * jarg1, char * jarg2) {
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    delete [] arg1->dsn;
+    if (arg2) {
+      arg1->dsn = (char *) (new char[strlen((const char *)arg2)+1]);
+      strcpy((char *)arg1->dsn, (const char *)arg2);
+    } else {
+      arg1->dsn = 0;
+    }
+  }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_dsn_get___(void * jarg1) {
+  char * jresult ;
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  result = (char *) ((arg1)->dsn);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_prefix_set___(void * jarg1, char * jarg2) {
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  char *arg2 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if(arg2) {
+      strncpy((char*)arg1->prefix, (const char *)arg2, 16-1);
+      arg1->prefix[16-1] = 0;
+    } else {
+      arg1->prefix[0] = 0;
+    }
+  }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_prefix_get___(void * jarg1) {
+  char * jresult ;
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  result = (char *)(char *) ((arg1)->prefix);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_database_interface_set___(void * jarg1, void * jarg2) {
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  switch_database_interface_t *arg2 = (switch_database_interface_t *) 0 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  arg2 = (switch_database_interface_t *)jarg2; 
+  if (arg1) (arg1)->database_interface = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_database_interface_get___(void * jarg1) {
+  void * jresult ;
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  switch_database_interface_t *result = 0 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  result = (switch_database_interface_t *) ((arg1)->database_interface);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_make_module_no_unloadable_set___(void * jarg1, int jarg2) {
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  switch_bool_t arg2 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  arg2 = (switch_bool_t)jarg2; 
+  if (arg1) (arg1)->make_module_no_unloadable = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_make_module_no_unloadable_get___(void * jarg1) {
+  int jresult ;
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  switch_bool_t result;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  result = (switch_bool_t) ((arg1)->make_module_no_unloadable);
+  jresult = (int)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_cache_db_database_interface_options_t___() {
+  void * jresult ;
+  switch_cache_db_database_interface_options_t *result = 0 ;
+  
+  result = (switch_cache_db_database_interface_options_t *)new switch_cache_db_database_interface_options_t();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_cache_db_database_interface_options_t___(void * jarg1) {
+  switch_cache_db_database_interface_options_t *arg1 = (switch_cache_db_database_interface_options_t *) 0 ;
+  
+  arg1 = (switch_cache_db_database_interface_options_t *)jarg1; 
+  delete arg1;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_core_db_options_set___(void * jarg1, void * jarg2) {
   switch_cache_db_connection_options_t *arg1 = (switch_cache_db_connection_options_t *) 0 ;
   switch_cache_db_core_db_options_t *arg2 = (switch_cache_db_core_db_options_t *) 0 ;
@@ -16952,6 +17431,28 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_connectio
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_database_interface_options_set___(void * jarg1, void * jarg2) {
+  switch_cache_db_connection_options_t *arg1 = (switch_cache_db_connection_options_t *) 0 ;
+  switch_cache_db_database_interface_options_t *arg2 = (switch_cache_db_database_interface_options_t *) 0 ;
+  
+  arg1 = (switch_cache_db_connection_options_t *)jarg1; 
+  arg2 = (switch_cache_db_database_interface_options_t *)jarg2; 
+  if (arg1) (arg1)->database_interface_options = *arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_database_interface_options_get___(void * jarg1) {
+  void * jresult ;
+  switch_cache_db_connection_options_t *arg1 = (switch_cache_db_connection_options_t *) 0 ;
+  switch_cache_db_database_interface_options_t *result = 0 ;
+  
+  arg1 = (switch_cache_db_connection_options_t *)jarg1; 
+  result = (switch_cache_db_database_interface_options_t *)& ((arg1)->database_interface_options);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_cache_db_connection_options_t___() {
   void * jresult ;
   switch_cache_db_connection_options_t *result = 0 ;
@@ -17032,6 +17533,28 @@ SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative__switch_cache_db_get_db_hand
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative__switch_cache_db_get_db_handle_dsn_ex___(void * jarg1, char * jarg2, int jarg3, char * jarg4, char * jarg5, int jarg6) {
+  int jresult ;
+  switch_cache_db_handle_t **arg1 = (switch_cache_db_handle_t **) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_bool_t arg3 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  switch_status_t result;
+  
+  arg1 = (switch_cache_db_handle_t **)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (switch_bool_t)jarg3; 
+  arg4 = (char *)jarg4; 
+  arg5 = (char *)jarg5; 
+  arg6 = (int)jarg6; 
+  result = (switch_status_t)_switch_cache_db_get_db_handle_dsn_ex(arg1,(char const *)arg2,arg3,(char const *)arg4,(char const *)arg5,arg6);
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative__switch_cache_db_get_db_handle_dsn___(void * jarg1, char * jarg2, char * jarg3, char * jarg4, int jarg5) {
   int jresult ;
   switch_cache_db_handle_t **arg1 = (switch_cache_db_handle_t **) 0 ;
@@ -17216,6 +17739,26 @@ SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_test_reactiv
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_test_reactive_ex___(void * jarg1, char * jarg2, char * jarg3, char * jarg4, char * jarg5) {
+  int jresult ;
+  switch_cache_db_handle_t *arg1 = (switch_cache_db_handle_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  switch_bool_t result;
+  
+  arg1 = (switch_cache_db_handle_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (char *)jarg3; 
+  arg4 = (char *)jarg4; 
+  arg5 = (char *)jarg5; 
+  result = (switch_bool_t)switch_cache_db_test_reactive_ex(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_persistant_execute___(void * jarg1, char * jarg2, unsigned long jarg3) {
   int jresult ;
   switch_cache_db_handle_t *arg1 = (switch_cache_db_handle_t *) 0 ;
@@ -17256,6 +17799,24 @@ SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_persistant_e
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_flush_handles___(void * jarg1) {
+  switch_database_interface_t *arg1 = (switch_database_interface_t *) 0 ;
+  
+  arg1 = (switch_database_interface_t *)jarg1; 
+  switch_cache_db_database_interface_flush_handles(arg1);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_core_check_core_db_dsn___() {
+  int jresult ;
+  switch_status_t result;
+  
+  result = (switch_status_t)switch_core_check_core_db_dsn();
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_core_set_signal_handlers___() {
   switch_core_set_signal_handlers();
 }
@@ -18474,6 +19035,28 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_in
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_interface_database_interface_set___(void * jarg1, void * jarg2) {
+  switch_loadable_module_interface *arg1 = (switch_loadable_module_interface *) 0 ;
+  switch_database_interface_t *arg2 = (switch_database_interface_t *) 0 ;
+  
+  arg1 = (switch_loadable_module_interface *)jarg1; 
+  arg2 = (switch_database_interface_t *)jarg2; 
+  if (arg1) (arg1)->database_interface = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_interface_database_interface_get___(void * jarg1) {
+  void * jresult ;
+  switch_loadable_module_interface *arg1 = (switch_loadable_module_interface *) 0 ;
+  switch_database_interface_t *result = 0 ;
+  
+  arg1 = (switch_loadable_module_interface *)jarg1; 
+  result = (switch_database_interface_t *) ((arg1)->database_interface);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_interface_rwlock_set___(void * jarg1, void * jarg2) {
   switch_loadable_module_interface *arg1 = (switch_loadable_module_interface *) 0 ;
   switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
@@ -18777,6 +19360,20 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_ge
 }
 
 
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_get_database_interface___(char * jarg1, char * jarg2) {
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_database_interface_t *result = 0 ;
+  
+  arg1 = (char *)jarg1; 
+  arg2 = (char *)jarg2; 
+  result = (switch_database_interface_t *)switch_loadable_module_get_database_interface((char const *)arg1,(char const *)arg2);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_get_speech_interface___(char * jarg1) {
   void * jresult ;
   char *arg1 = (char *) 0 ;
@@ -18959,6 +19556,18 @@ SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_exist
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_protect___(char * jarg1) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  switch_status_t result;
+  
+  arg1 = (char *)jarg1; 
+  result = (switch_status_t)switch_loadable_module_protect((char const *)arg1);
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_loadable_module_unload_module___(char * jarg1, char * jarg2, int jarg3, void * jarg4) {
   int jresult ;
   char *arg1 = (char *) 0 ;
@@ -20966,6 +21575,18 @@ SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_calc_bitrate___(int j
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_calc_fps___(void * jarg1, float jarg2, int jarg3) {
+  switch_fps_t *arg1 = (switch_fps_t *) 0 ;
+  float arg2 ;
+  int arg3 ;
+  
+  arg1 = (switch_fps_t *)jarg1; 
+  arg2 = (float)jarg2; 
+  arg3 = (int)jarg3; 
+  switch_calc_fps(arg1,arg2,arg3);
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_parse_bandwidth_string___(char * jarg1) {
   int jresult ;
   char *arg1 = (char *) 0 ;
@@ -31305,6 +31926,489 @@ SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_directory_han
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_interface_name_set___(void * jarg1, char * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (switch_database_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 char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_interface_name_get___(void * jarg1) {
+  char * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (char *) ((arg1)->interface_name);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_flags_set___(void * jarg1, unsigned long jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  uint32_t arg2 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (uint32_t)jarg2; 
+  if (arg1) (arg1)->flags = arg2;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_flags_get___(void * jarg1) {
+  unsigned long jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  uint32_t result;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (uint32_t) ((arg1)->flags);
+  jresult = (unsigned long)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_new_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(char *,switch_database_interface_handle_t **) = (switch_status_t (*)(char *,switch_database_interface_handle_t **)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(char *,switch_database_interface_handle_t **))jarg2; 
+  if (arg1) (arg1)->handle_new = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_new_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(char *,switch_database_interface_handle_t **) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(char *,switch_database_interface_handle_t **)) ((arg1)->handle_new);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_destroy_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t **) = (switch_status_t (*)(switch_database_interface_handle_t **)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t **))jarg2; 
+  if (arg1) (arg1)->handle_destroy = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_destroy_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t **) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t **)) ((arg1)->handle_destroy);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_flush_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t *) = (switch_status_t (*)(switch_database_interface_handle_t *)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t *))jarg2; 
+  if (arg1) (arg1)->flush = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_flush_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t *) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t *)) ((arg1)->flush);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_exec_detailed_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,char **) = (switch_status_t (*)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,char **)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,char **))jarg2; 
+  if (arg1) (arg1)->exec_detailed = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_exec_detailed_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,char **) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,char **)) ((arg1)->exec_detailed);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_exec_string_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t *,char const *,char *,size_t,char **) = (switch_status_t (*)(switch_database_interface_handle_t *,char const *,char *,size_t,char **)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t *,char const *,char *,size_t,char **))jarg2; 
+  if (arg1) (arg1)->exec_string = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_exec_string_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t *,char const *,char *,size_t,char **) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t *,char const *,char *,size_t,char **)) ((arg1)->exec_string);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_sql_set_auto_commit_attr_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t *,switch_bool_t) = (switch_status_t (*)(switch_database_interface_handle_t *,switch_bool_t)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t *,switch_bool_t))jarg2; 
+  if (arg1) (arg1)->sql_set_auto_commit_attr = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_sql_set_auto_commit_attr_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t *,switch_bool_t) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t *,switch_bool_t)) ((arg1)->sql_set_auto_commit_attr);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_commit_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t *) = (switch_status_t (*)(switch_database_interface_handle_t *)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t *))jarg2; 
+  if (arg1) (arg1)->commit = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_commit_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t *) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t *)) ((arg1)->commit);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_rollback_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t *) = (switch_status_t (*)(switch_database_interface_handle_t *)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t *))jarg2; 
+  if (arg1) (arg1)->rollback = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_rollback_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t *) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t *)) ((arg1)->rollback);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_callback_exec_detailed_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,switch_core_db_callback_func_t,void *,char **) = (switch_status_t (*)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,switch_core_db_callback_func_t,void *,char **)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,switch_core_db_callback_func_t,void *,char **))jarg2; 
+  if (arg1) (arg1)->callback_exec_detailed = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_callback_exec_detailed_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,switch_core_db_callback_func_t,void *,char **) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(char const *,char const *,int,switch_database_interface_handle_t *,char const *,switch_core_db_callback_func_t,void *,char **)) ((arg1)->callback_exec_detailed);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_affected_rows_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*arg2)(switch_database_interface_handle_t *,int *) = (switch_status_t (*)(switch_database_interface_handle_t *,int *)) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_status_t (*)(switch_database_interface_handle_t *,int *))jarg2; 
+  if (arg1) (arg1)->affected_rows = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_affected_rows_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_status_t (*result)(switch_database_interface_handle_t *,int *) = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_status_t (*)(switch_database_interface_handle_t *,int *)) ((arg1)->affected_rows);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_prefixes_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  char **arg2 = (char **) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (char **)jarg2; 
+  if (arg1) (arg1)->prefixes = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_prefixes_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  char **result = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (char **) ((arg1)->prefixes);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_rwlock_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_thread_rwlock_t *arg2 = (switch_thread_rwlock_t *) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_thread_rwlock_t *)jarg2; 
+  if (arg1) (arg1)->rwlock = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_rwlock_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_thread_rwlock_t *result = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_thread_rwlock_t *) ((arg1)->rwlock);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_refs_set___(void * jarg1, int jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  int arg2 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->refs = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_refs_get___(void * jarg1) {
+  int jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  int result;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (int) ((arg1)->refs);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_reflock_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_mutex_t *arg2 = (switch_mutex_t *) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_mutex_t *)jarg2; 
+  if (arg1) (arg1)->reflock = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_reflock_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_mutex_t *result = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_mutex_t *) ((arg1)->reflock);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_parent_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_loadable_module_interface_t *arg2 = (switch_loadable_module_interface_t *) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_loadable_module_interface_t *)jarg2; 
+  if (arg1) (arg1)->parent = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_parent_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_loadable_module_interface_t *result = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_loadable_module_interface_t *) ((arg1)->parent);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_next_set___(void * jarg1, void * jarg2) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_database_interface *arg2 = (switch_database_interface *) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  arg2 = (switch_database_interface *)jarg2; 
+  if (arg1) (arg1)->next = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_next_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  switch_database_interface *result = 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  result = (switch_database_interface *) ((arg1)->next);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_database_interface___() {
+  void * jresult ;
+  switch_database_interface *result = 0 ;
+  
+  result = (switch_database_interface *)new switch_database_interface();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_database_interface___(void * jarg1) {
+  switch_database_interface *arg1 = (switch_database_interface *) 0 ;
+  
+  arg1 = (switch_database_interface *)jarg1; 
+  delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_connection_options_set___(void * jarg1, void * jarg2) {
+  switch_database_interface_handle *arg1 = (switch_database_interface_handle *) 0 ;
+  switch_cache_db_database_interface_options_t *arg2 = (switch_cache_db_database_interface_options_t *) 0 ;
+  
+  arg1 = (switch_database_interface_handle *)jarg1; 
+  arg2 = (switch_cache_db_database_interface_options_t *)jarg2; 
+  if (arg1) (arg1)->connection_options = *arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_connection_options_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface_handle *arg1 = (switch_database_interface_handle *) 0 ;
+  switch_cache_db_database_interface_options_t *result = 0 ;
+  
+  arg1 = (switch_database_interface_handle *)jarg1; 
+  result = (switch_cache_db_database_interface_options_t *)& ((arg1)->connection_options);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_handle_set___(void * jarg1, void * jarg2) {
+  switch_database_interface_handle *arg1 = (switch_database_interface_handle *) 0 ;
+  void *arg2 = (void *) 0 ;
+  
+  arg1 = (switch_database_interface_handle *)jarg1; 
+  arg2 = (void *)jarg2; 
+  if (arg1) (arg1)->handle = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_database_interface_handle_handle_get___(void * jarg1) {
+  void * jresult ;
+  switch_database_interface_handle *arg1 = (switch_database_interface_handle *) 0 ;
+  void *result = 0 ;
+  
+  arg1 = (switch_database_interface_handle *)jarg1; 
+  result = (void *) ((arg1)->handle);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_database_interface_handle___() {
+  void * jresult ;
+  switch_database_interface_handle *result = 0 ;
+  
+  result = (switch_database_interface_handle *)new switch_database_interface_handle();
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_delete_switch_database_interface_handle___(void * jarg1) {
+  switch_database_interface_handle *arg1 = (switch_database_interface_handle *) 0 ;
+  
+  arg1 = (switch_database_interface_handle *)jarg1; 
+  delete arg1;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_audio_codec_settings_unused_set___(void * jarg1, int jarg2) {
   switch_audio_codec_settings *arg1 = (switch_audio_codec_settings *) 0 ;
   int arg2 ;
@@ -31455,6 +32559,35 @@ SWIGEXPORT unsigned char SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_video_codec
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_video_codec_settings_config_profile_name_set___(void * jarg1, char * jarg2) {
+  switch_video_codec_settings *arg1 = (switch_video_codec_settings *) 0 ;
+  char *arg2 ;
+  
+  arg1 = (switch_video_codec_settings *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if(arg2) {
+      strncpy((char*)arg1->config_profile_name, (const char *)arg2, 64-1);
+      arg1->config_profile_name[64-1] = 0;
+    } else {
+      arg1->config_profile_name[0] = 0;
+    }
+  }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_video_codec_settings_config_profile_name_get___(void * jarg1) {
+  char * jresult ;
+  switch_video_codec_settings *arg1 = (switch_video_codec_settings *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (switch_video_codec_settings *)jarg1; 
+  result = (char *)(char *) ((arg1)->config_profile_name);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_new_switch_video_codec_settings___() {
   void * jresult ;
   switch_video_codec_settings *result = 0 ;
@@ -42312,6 +43445,40 @@ SWIGEXPORT void SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_ivr_orig_and_bridge_
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_ivr_play_and_collect_input___(void * jarg1, char * jarg2, char * jarg3, char * jarg4, int jarg5, int jarg6, char * jarg7, unsigned long jarg8, void * jarg9, void * jarg10, char * jarg11, void * jarg12) {
+  int jresult ;
+  switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  int arg6 ;
+  char *arg7 = (char *) 0 ;
+  uint32_t arg8 ;
+  cJSON **arg9 = (cJSON **) 0 ;
+  char **arg10 = (char **) 0 ;
+  char *arg11 = (char *) 0 ;
+  switch_input_args_t *arg12 = (switch_input_args_t *) 0 ;
+  switch_status_t result;
+  
+  arg1 = (switch_core_session_t *)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (char *)jarg3; 
+  arg4 = (char *)jarg4; 
+  arg5 = (int)jarg5; 
+  arg6 = (int)jarg6; 
+  arg7 = (char *)jarg7; 
+  arg8 = (uint32_t)jarg8; 
+  arg9 = (cJSON **)jarg9; 
+  arg10 = (char **)jarg10; 
+  arg11 = (char *)jarg11; 
+  arg12 = (switch_input_args_t *)jarg12; 
+  result = (switch_status_t)switch_ivr_play_and_collect_input(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,arg9,arg10,arg11,arg12);
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_FreeSWITCHfNative_SWITCH_RTP_MAX_BUF_LEN_get___() {
   int jresult ;
   int result;
@@ -45457,6 +46624,28 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_add_child___(v
 }
 
 
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_add_child_d___(void * jarg1, char * jarg2, void * jarg3) {
+  void * jresult ;
+  switch_xml_t arg1 = (switch_xml_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_size_t arg3 ;
+  switch_size_t *argp3 ;
+  switch_xml_t result;
+  
+  arg1 = (switch_xml_t)jarg1; 
+  arg2 = (char *)jarg2; 
+  argp3 = (switch_size_t *)jarg3; 
+  if (!argp3) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+    return 0;
+  }
+  arg3 = *argp3; 
+  result = (switch_xml_t)switch_xml_add_child_d(arg1,(char const *)arg2,arg3);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_txt___(void * jarg1, char * jarg2) {
   void * jresult ;
   switch_xml_t arg1 = (switch_xml_t) 0 ;
@@ -45471,6 +46660,20 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_txt___(voi
 }
 
 
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_txt_d___(void * jarg1, char * jarg2) {
+  void * jresult ;
+  switch_xml_t arg1 = (switch_xml_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  switch_xml_t result;
+  
+  arg1 = (switch_xml_t)jarg1; 
+  arg2 = (char *)jarg2; 
+  result = (switch_xml_t)switch_xml_set_txt_d(arg1,(char const *)arg2);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_attr___(void * jarg1, char * jarg2, char * jarg3) {
   void * jresult ;
   switch_xml_t arg1 = (switch_xml_t) 0 ;
@@ -45487,6 +46690,38 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_attr___(vo
 }
 
 
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_attr_d___(void * jarg1, char * jarg2, char * jarg3) {
+  void * jresult ;
+  switch_xml_t arg1 = (switch_xml_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  switch_xml_t result;
+  
+  arg1 = (switch_xml_t)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (char *)jarg3; 
+  result = (switch_xml_t)switch_xml_set_attr_d(arg1,(char const *)arg2,(char const *)arg3);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_attr_d_buf___(void * jarg1, char * jarg2, char * jarg3) {
+  void * jresult ;
+  switch_xml_t arg1 = (switch_xml_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  switch_xml_t result;
+  
+  arg1 = (switch_xml_t)jarg1; 
+  arg2 = (char *)jarg2; 
+  arg3 = (char *)jarg3; 
+  result = (switch_xml_t)switch_xml_set_attr_d_buf(arg1,(char const *)arg2,(char const *)arg3);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_FreeSWITCHfNative_switch_xml_set_flag___(void * jarg1, int jarg2) {
   void * jresult ;
   switch_xml_t arg1 = (switch_xml_t) 0 ;
index 8d057bf319da9d4b47fb6d7ee7c79a918d0e34b6..e2ae184d5ca51ad3320b2ad1c2a8f35032f6feb2 100644 (file)
@@ -1083,6 +1083,64 @@ public class SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_s
 
 namespace FreeSWITCH.Native {
 
+public class SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public class SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t {
   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
 
@@ -1199,6 +1257,64 @@ public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t {
 
 namespace FreeSWITCH.Native {
 
+public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t {
   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
 
@@ -2591,6 +2707,122 @@ public class SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_
 
 namespace FreeSWITCH.Native {
 
+public class SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+  internal SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t(global::System.IntPtr cPtr, bool futureUse) {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  protected SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t() {
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public class SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t {
   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
 
@@ -8175,6 +8407,11 @@ else
     return ret;
   }
 
+  public static string switch_core_perform_strndup(SWIGTYPE_p_apr_pool_t pool, string todup, uint len, string file, string func, int line) {
+    string ret = freeswitchPINVOKE.switch_core_perform_strndup(SWIGTYPE_p_apr_pool_t.getCPtr(pool), todup, len, file, func, line);
+    return ret;
+  }
+
   public static string switch_core_session_sprintf(SWIGTYPE_p_switch_core_session session, string fmt) {
     string ret = freeswitchPINVOKE.switch_core_session_sprintf(SWIGTYPE_p_switch_core_session.getCPtr(session), fmt);
     return ret;
@@ -9641,6 +9878,11 @@ else
     return ret;
   }
 
+  public static switch_status_t _switch_cache_db_get_db_handle_dsn_ex(SWIGTYPE_p_p_switch_cache_db_handle dbh, string dsn, switch_bool_t make_module_no_unloadable, string file, string func, int line) {
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE._switch_cache_db_get_db_handle_dsn_ex(SWIGTYPE_p_p_switch_cache_db_handle.getCPtr(dbh), dsn, (int)make_module_no_unloadable, file, func, line);
+    return ret;
+  }
+
   public static switch_status_t _switch_cache_db_get_db_handle_dsn(SWIGTYPE_p_p_switch_cache_db_handle dbh, string dsn, string file, string func, int line) {
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE._switch_cache_db_get_db_handle_dsn(SWIGTYPE_p_p_switch_cache_db_handle.getCPtr(dbh), dsn, file, func, line);
     return ret;
@@ -9695,6 +9937,11 @@ else
     return ret;
   }
 
+  public static switch_bool_t switch_cache_db_test_reactive_ex(SWIGTYPE_p_switch_cache_db_handle db, string test_sql, string drop_sql, string reactive_sql, string row_size_limited_reactive_sql) {
+    switch_bool_t ret = (switch_bool_t)freeswitchPINVOKE.switch_cache_db_test_reactive_ex(SWIGTYPE_p_switch_cache_db_handle.getCPtr(db), test_sql, drop_sql, reactive_sql, row_size_limited_reactive_sql);
+    return ret;
+  }
+
   public static switch_status_t switch_cache_db_persistant_execute(SWIGTYPE_p_switch_cache_db_handle dbh, string sql, uint retries) {
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_cache_db_persistant_execute(SWIGTYPE_p_switch_cache_db_handle.getCPtr(dbh), sql, retries);
     return ret;
@@ -9705,6 +9952,15 @@ else
     return ret;
   }
 
+  public static void switch_cache_db_database_interface_flush_handles(switch_database_interface database_interface) {
+    freeswitchPINVOKE.switch_cache_db_database_interface_flush_handles(switch_database_interface.getCPtr(database_interface));
+  }
+
+  public static switch_status_t switch_core_check_core_db_dsn() {
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_core_check_core_db_dsn();
+    return ret;
+  }
+
   public static void switch_core_set_signal_handlers() {
     freeswitchPINVOKE.switch_core_set_signal_handlers();
   }
@@ -10120,6 +10376,12 @@ else
     return ret;
   }
 
+  public static switch_database_interface switch_loadable_module_get_database_interface(string name, string modname) {
+    global::System.IntPtr cPtr = freeswitchPINVOKE.switch_loadable_module_get_database_interface(name, modname);
+    switch_database_interface ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_database_interface(cPtr, false);
+    return ret;
+  }
+
   public static switch_speech_interface switch_loadable_module_get_speech_interface(string name) {
     global::System.IntPtr cPtr = freeswitchPINVOKE.switch_loadable_module_get_speech_interface(name);
     switch_speech_interface ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_speech_interface(cPtr, false);
@@ -10200,6 +10462,11 @@ else
     return ret;
   }
 
+  public static switch_status_t switch_loadable_module_protect(string mod) {
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_loadable_module_protect(mod);
+    return ret;
+  }
+
   public static switch_status_t switch_loadable_module_unload_module(string dir, string fname, switch_bool_t force, out string err) {
 var err_ptr = global::System.IntPtr.Zero;
     try {
@@ -10809,6 +11076,10 @@ else
     return ret;
   }
 
+  public static void switch_calc_fps(switch_fps_t fpsP, float fps, int samplerate) {
+    freeswitchPINVOKE.switch_calc_fps(switch_fps_t.getCPtr(fpsP), fps, samplerate);
+  }
+
   public static int switch_parse_bandwidth_string(string bwv) {
     int ret = freeswitchPINVOKE.switch_parse_bandwidth_string(bwv);
     return ret;
@@ -13320,6 +13591,11 @@ else
     freeswitchPINVOKE.switch_ivr_orig_and_bridge(SWIGTYPE_p_switch_core_session.getCPtr(session), data, SWIGTYPE_p_switch_dial_handle_s.getCPtr(dh));
   }
 
+  public static switch_status_t switch_ivr_play_and_collect_input(SWIGTYPE_p_switch_core_session session, string prompt, string recognizer_mod_name, string recognizer_grammar, int min_digits, int max_digits, string terminators, uint digit_timeout, SWIGTYPE_p_p_cJSON recognition_result, ref string digits_collected, string terminator_collected, switch_input_args_t args) {
+    switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_ivr_play_and_collect_input(SWIGTYPE_p_switch_core_session.getCPtr(session), prompt, recognizer_mod_name, recognizer_grammar, min_digits, max_digits, terminators, digit_timeout, SWIGTYPE_p_p_cJSON.getCPtr(recognition_result), ref digits_collected, terminator_collected, switch_input_args_t.getCPtr(args));
+    return ret;
+  }
+
   public static switch_status_t switch_rtp_add_crypto_key(SWIGTYPE_p_switch_rtp rtp_session, switch_rtp_crypto_direction_t direction, uint index, switch_secure_settings_t ssec) {
     switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_rtp_add_crypto_key(SWIGTYPE_p_switch_rtp.getCPtr(rtp_session), (int)direction, index, switch_secure_settings_t.getCPtr(ssec));
     return ret;
@@ -13908,18 +14184,43 @@ else
     return ret;
   }
 
+  public static switch_xml switch_xml_add_child_d(switch_xml xml, string name, SWIGTYPE_p_switch_size_t off) {
+    global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_add_child_d(switch_xml.getCPtr(xml), name, SWIGTYPE_p_switch_size_t.getCPtr(off));
+    switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
+    if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public static switch_xml switch_xml_set_txt(switch_xml xml, string txt) {
     global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_set_txt(switch_xml.getCPtr(xml), txt);
     switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
     return ret;
   }
 
+  public static switch_xml switch_xml_set_txt_d(switch_xml xml, string txt) {
+    global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_set_txt_d(switch_xml.getCPtr(xml), txt);
+    switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
+    return ret;
+  }
+
   public static switch_xml switch_xml_set_attr(switch_xml xml, string name, string value) {
     global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_set_attr(switch_xml.getCPtr(xml), name, value);
     switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
     return ret;
   }
 
+  public static switch_xml switch_xml_set_attr_d(switch_xml xml, string name, string value) {
+    global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_set_attr_d(switch_xml.getCPtr(xml), name, value);
+    switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
+    return ret;
+  }
+
+  public static switch_xml switch_xml_set_attr_d_buf(switch_xml xml, string name, string value) {
+    global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_set_attr_d_buf(switch_xml.getCPtr(xml), name, value);
+    switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
+    return ret;
+  }
+
   public static switch_xml switch_xml_set_flag(switch_xml xml, switch_xml_flag_t flag) {
     global::System.IntPtr cPtr = freeswitchPINVOKE.switch_xml_set_flag(switch_xml.getCPtr(xml), (int)flag);
     switch_xml ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_xml(cPtr, false);
@@ -14500,6 +14801,10 @@ else
   public static readonly string SWITCH_EXEC_AFTER_BRIDGE_APP_VARIABLE = freeswitchPINVOKE.SWITCH_EXEC_AFTER_BRIDGE_APP_VARIABLE_get();
   public static readonly string SWITCH_EXEC_AFTER_BRIDGE_ARG_VARIABLE = freeswitchPINVOKE.SWITCH_EXEC_AFTER_BRIDGE_ARG_VARIABLE_get();
   public static readonly string SWITCH_MAX_FORWARDS_VARIABLE = freeswitchPINVOKE.SWITCH_MAX_FORWARDS_VARIABLE_get();
+  public static readonly string SWITCH_RFC7989_SESSION_ID_VARIABLE = freeswitchPINVOKE.SWITCH_RFC7989_SESSION_ID_VARIABLE_get();
+  public static readonly string SWITCH_RFC7989_REMOTE_SESSION_ID_VARIABLE = freeswitchPINVOKE.SWITCH_RFC7989_REMOTE_SESSION_ID_VARIABLE_get();
+  public static readonly string SWITCH_RFC7989_APP_SESSION_ID_VARIABLE = freeswitchPINVOKE.SWITCH_RFC7989_APP_SESSION_ID_VARIABLE_get();
+  public static readonly string SWITCH_RFC7989_GENERIC_PARAM_VARIABLE = freeswitchPINVOKE.SWITCH_RFC7989_GENERIC_PARAM_VARIABLE_get();
   public static readonly string SWITCH_MAX_SESSION_TRANSFERS_VARIABLE = freeswitchPINVOKE.SWITCH_MAX_SESSION_TRANSFERS_VARIABLE_get();
   public static readonly string SWITCH_DISABLE_APP_LOG_VARIABLE = freeswitchPINVOKE.SWITCH_DISABLE_APP_LOG_VARIABLE_get();
   public static readonly string SWITCH_SPEECH_KEY = freeswitchPINVOKE.SWITCH_SPEECH_KEY_get();
@@ -15262,6 +15567,18 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_MAX_FORWARDS_VARIABLE_get___")]
   public static extern string SWITCH_MAX_FORWARDS_VARIABLE_get();
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_RFC7989_SESSION_ID_VARIABLE_get___")]
+  public static extern string SWITCH_RFC7989_SESSION_ID_VARIABLE_get();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_RFC7989_REMOTE_SESSION_ID_VARIABLE_get___")]
+  public static extern string SWITCH_RFC7989_REMOTE_SESSION_ID_VARIABLE_get();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_RFC7989_APP_SESSION_ID_VARIABLE_get___")]
+  public static extern string SWITCH_RFC7989_APP_SESSION_ID_VARIABLE_get();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_RFC7989_GENERIC_PARAM_VARIABLE_get___")]
+  public static extern string SWITCH_RFC7989_GENERIC_PARAM_VARIABLE_get();
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_MAX_SESSION_TRANSFERS_VARIABLE_get___")]
   public static extern string SWITCH_MAX_SESSION_TRANSFERS_VARIABLE_get();
 
@@ -15979,6 +16296,60 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_rtcp_numbers_t___")]
   public static extern void delete_switch_rtcp_numbers_t(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_nack_count_set___")]
+  public static extern void switch_rtcp_video_counters_t_nack_count_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_nack_count_get___")]
+  public static extern ushort switch_rtcp_video_counters_t_nack_count_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_fir_count_set___")]
+  public static extern void switch_rtcp_video_counters_t_fir_count_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_fir_count_get___")]
+  public static extern ushort switch_rtcp_video_counters_t_fir_count_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_pli_count_set___")]
+  public static extern void switch_rtcp_video_counters_t_pli_count_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_pli_count_get___")]
+  public static extern ushort switch_rtcp_video_counters_t_pli_count_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_sr_count_set___")]
+  public static extern void switch_rtcp_video_counters_t_sr_count_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_sr_count_get___")]
+  public static extern ushort switch_rtcp_video_counters_t_sr_count_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_rr_count_set___")]
+  public static extern void switch_rtcp_video_counters_t_rr_count_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_counters_t_rr_count_get___")]
+  public static extern ushort switch_rtcp_video_counters_t_rr_count_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_rtcp_video_counters_t___")]
+  public static extern global::System.IntPtr new_switch_rtcp_video_counters_t();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_rtcp_video_counters_t___")]
+  public static extern void delete_switch_rtcp_video_counters_t(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_in_set___")]
+  public static extern void switch_rtcp_video_stats_t_video_in_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_in_get___")]
+  public static extern global::System.IntPtr switch_rtcp_video_stats_t_video_in_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_out_set___")]
+  public static extern void switch_rtcp_video_stats_t_video_out_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtcp_video_stats_t_video_out_get___")]
+  public static extern global::System.IntPtr switch_rtcp_video_stats_t_video_out_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_rtcp_video_stats_t___")]
+  public static extern global::System.IntPtr new_switch_rtcp_video_stats_t();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_rtcp_video_stats_t___")]
+  public static extern void delete_switch_rtcp_video_stats_t(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_rtp_stats_t_inbound_set___")]
   public static extern void switch_rtp_stats_t_inbound_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
@@ -16276,6 +16647,30 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_vid_params_t___")]
   public static extern void delete_switch_vid_params_t(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_fps_t_fps_set___")]
+  public static extern void switch_fps_t_fps_set(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_fps_t_fps_get___")]
+  public static extern float switch_fps_t_fps_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_fps_t_ms_set___")]
+  public static extern void switch_fps_t_ms_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_fps_t_ms_get___")]
+  public static extern int switch_fps_t_ms_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_fps_t_samples_set___")]
+  public static extern void switch_fps_t_samples_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_fps_t_samples_get___")]
+  public static extern int switch_fps_t_samples_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_fps_t___")]
+  public static extern global::System.IntPtr new_switch_fps_t();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_fps_t___")]
+  public static extern void delete_switch_fps_t(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_MEDIA_TYPE_TOTAL_get___")]
   public static extern int SWITCH_MEDIA_TYPE_TOTAL_get();
 
@@ -18016,6 +18411,9 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_core_perform_strdup___")]
   public static extern string switch_core_perform_strdup(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4, int jarg5);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_core_perform_strndup___")]
+  public static extern string switch_core_perform_strndup(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, uint jarg3, string jarg4, string jarg5, int jarg6);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_core_session_sprintf___")]
   public static extern string switch_core_session_sprintf(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
@@ -18898,6 +19296,12 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_native_handle_t_pgsql_dbh_get___")]
   public static extern global::System.IntPtr switch_cache_db_native_handle_t_pgsql_dbh_get(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_native_handle_t_database_interface_dbh_set___")]
+  public static extern void switch_cache_db_native_handle_t_database_interface_dbh_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_native_handle_t_database_interface_dbh_get___")]
+  public static extern global::System.IntPtr switch_cache_db_native_handle_t_database_interface_dbh_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_cache_db_native_handle_t___")]
   public static extern global::System.IntPtr new_switch_cache_db_native_handle_t();
 
@@ -18952,6 +19356,36 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_cache_db_pgsql_options_t___")]
   public static extern void delete_switch_cache_db_pgsql_options_t(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_dsn_set___")]
+  public static extern void switch_cache_db_database_interface_options_t_dsn_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_dsn_get___")]
+  public static extern string switch_cache_db_database_interface_options_t_dsn_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_prefix_set___")]
+  public static extern void switch_cache_db_database_interface_options_t_prefix_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_prefix_get___")]
+  public static extern string switch_cache_db_database_interface_options_t_prefix_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_database_interface_set___")]
+  public static extern void switch_cache_db_database_interface_options_t_database_interface_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_database_interface_get___")]
+  public static extern global::System.IntPtr switch_cache_db_database_interface_options_t_database_interface_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_make_module_no_unloadable_set___")]
+  public static extern void switch_cache_db_database_interface_options_t_make_module_no_unloadable_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_options_t_make_module_no_unloadable_get___")]
+  public static extern int switch_cache_db_database_interface_options_t_make_module_no_unloadable_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_cache_db_database_interface_options_t___")]
+  public static extern global::System.IntPtr new_switch_cache_db_database_interface_options_t();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_cache_db_database_interface_options_t___")]
+  public static extern void delete_switch_cache_db_database_interface_options_t(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_core_db_options_set___")]
   public static extern void switch_cache_db_connection_options_t_core_db_options_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
@@ -18970,6 +19404,12 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_pgsql_options_get___")]
   public static extern global::System.IntPtr switch_cache_db_connection_options_t_pgsql_options_get(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_database_interface_options_set___")]
+  public static extern void switch_cache_db_connection_options_t_database_interface_options_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_connection_options_t_database_interface_options_get___")]
+  public static extern global::System.IntPtr switch_cache_db_connection_options_t_database_interface_options_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_cache_db_connection_options_t___")]
   public static extern global::System.IntPtr new_switch_cache_db_connection_options_t();
 
@@ -18991,6 +19431,9 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative__switch_cache_db_get_db_handle___")]
   public static extern int _switch_cache_db_get_db_handle(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, string jarg4, string jarg5, int jarg6);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative__switch_cache_db_get_db_handle_dsn_ex___")]
+  public static extern int _switch_cache_db_get_db_handle_dsn_ex(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3, string jarg4, string jarg5, int jarg6);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative__switch_cache_db_get_db_handle_dsn___")]
   public static extern int _switch_cache_db_get_db_handle_dsn(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4, int jarg5);
 
@@ -19024,12 +19467,21 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_test_reactive___")]
   public static extern int switch_cache_db_test_reactive(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_test_reactive_ex___")]
+  public static extern int switch_cache_db_test_reactive_ex(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4, string jarg5);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_persistant_execute___")]
   public static extern int switch_cache_db_persistant_execute(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, uint jarg3);
 
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_persistant_execute_trans_full___")]
   public static extern int switch_cache_db_persistant_execute_trans_full(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, uint jarg3, string jarg4, string jarg5, string jarg6, string jarg7);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_cache_db_database_interface_flush_handles___")]
+  public static extern void switch_cache_db_database_interface_flush_handles(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_core_check_core_db_dsn___")]
+  public static extern int switch_core_check_core_db_dsn();
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_core_set_signal_handlers___")]
   public static extern void switch_core_set_signal_handlers();
 
@@ -19339,6 +19791,12 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_interface_limit_interface_get___")]
   public static extern global::System.IntPtr switch_loadable_module_interface_limit_interface_get(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_interface_database_interface_set___")]
+  public static extern void switch_loadable_module_interface_database_interface_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_interface_database_interface_get___")]
+  public static extern global::System.IntPtr switch_loadable_module_interface_database_interface_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_interface_rwlock_set___")]
   public static extern void switch_loadable_module_interface_rwlock_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
@@ -19411,6 +19869,9 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_get_file_interface___")]
   public static extern global::System.IntPtr switch_loadable_module_get_file_interface(string jarg1, string jarg2);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_get_database_interface___")]
+  public static extern global::System.IntPtr switch_loadable_module_get_database_interface(string jarg1, string jarg2);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_get_speech_interface___")]
   public static extern global::System.IntPtr switch_loadable_module_get_speech_interface(string jarg1);
 
@@ -19450,6 +19911,9 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_exists___")]
   public static extern int switch_loadable_module_exists(string jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_protect___")]
+  public static extern int switch_loadable_module_protect(string jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_loadable_module_unload_module___")]
   public static extern int switch_loadable_module_unload_module(string jarg1, string jarg2, int jarg3, ref global::System.IntPtr jarg4);
 
@@ -19870,6 +20334,9 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_calc_bitrate___")]
   public static extern int switch_calc_bitrate(int jarg1, int jarg2, int jarg3, double jarg4);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_calc_fps___")]
+  public static extern void switch_calc_fps(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2, int jarg3);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_parse_bandwidth_string___")]
   public static extern int switch_parse_bandwidth_string(string jarg1);
 
@@ -22483,6 +22950,138 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_directory_handle___")]
   public static extern void delete_switch_directory_handle(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_interface_name_set___")]
+  public static extern void switch_database_interface_interface_name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_interface_name_get___")]
+  public static extern string switch_database_interface_interface_name_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_flags_set___")]
+  public static extern void switch_database_interface_flags_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_flags_get___")]
+  public static extern uint switch_database_interface_flags_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_new_set___")]
+  public static extern void switch_database_interface_handle_new_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_new_get___")]
+  public static extern global::System.IntPtr switch_database_interface_handle_new_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_destroy_set___")]
+  public static extern void switch_database_interface_handle_destroy_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_destroy_get___")]
+  public static extern global::System.IntPtr switch_database_interface_handle_destroy_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_flush_set___")]
+  public static extern void switch_database_interface_flush_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_flush_get___")]
+  public static extern global::System.IntPtr switch_database_interface_flush_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_exec_detailed_set___")]
+  public static extern void switch_database_interface_exec_detailed_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_exec_detailed_get___")]
+  public static extern global::System.IntPtr switch_database_interface_exec_detailed_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_exec_string_set___")]
+  public static extern void switch_database_interface_exec_string_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_exec_string_get___")]
+  public static extern global::System.IntPtr switch_database_interface_exec_string_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_sql_set_auto_commit_attr_set___")]
+  public static extern void switch_database_interface_sql_set_auto_commit_attr_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_sql_set_auto_commit_attr_get___")]
+  public static extern global::System.IntPtr switch_database_interface_sql_set_auto_commit_attr_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_commit_set___")]
+  public static extern void switch_database_interface_commit_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_commit_get___")]
+  public static extern global::System.IntPtr switch_database_interface_commit_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_rollback_set___")]
+  public static extern void switch_database_interface_rollback_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_rollback_get___")]
+  public static extern global::System.IntPtr switch_database_interface_rollback_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_callback_exec_detailed_set___")]
+  public static extern void switch_database_interface_callback_exec_detailed_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_callback_exec_detailed_get___")]
+  public static extern global::System.IntPtr switch_database_interface_callback_exec_detailed_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_affected_rows_set___")]
+  public static extern void switch_database_interface_affected_rows_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_affected_rows_get___")]
+  public static extern global::System.IntPtr switch_database_interface_affected_rows_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_prefixes_set___")]
+  public static extern void switch_database_interface_prefixes_set(global::System.Runtime.InteropServices.HandleRef jarg1, ref string jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_prefixes_get___")]
+  public static extern string switch_database_interface_prefixes_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_rwlock_set___")]
+  public static extern void switch_database_interface_rwlock_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_rwlock_get___")]
+  public static extern global::System.IntPtr switch_database_interface_rwlock_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_refs_set___")]
+  public static extern void switch_database_interface_refs_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_refs_get___")]
+  public static extern int switch_database_interface_refs_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_reflock_set___")]
+  public static extern void switch_database_interface_reflock_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_reflock_get___")]
+  public static extern global::System.IntPtr switch_database_interface_reflock_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_parent_set___")]
+  public static extern void switch_database_interface_parent_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_parent_get___")]
+  public static extern global::System.IntPtr switch_database_interface_parent_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_next_set___")]
+  public static extern void switch_database_interface_next_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_next_get___")]
+  public static extern global::System.IntPtr switch_database_interface_next_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_database_interface___")]
+  public static extern global::System.IntPtr new_switch_database_interface();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_database_interface___")]
+  public static extern void delete_switch_database_interface(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_connection_options_set___")]
+  public static extern void switch_database_interface_handle_connection_options_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_connection_options_get___")]
+  public static extern global::System.IntPtr switch_database_interface_handle_connection_options_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_handle_set___")]
+  public static extern void switch_database_interface_handle_handle_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_database_interface_handle_handle_get___")]
+  public static extern global::System.IntPtr switch_database_interface_handle_handle_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_database_interface_handle___")]
+  public static extern global::System.IntPtr new_switch_database_interface_handle();
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_delete_switch_database_interface_handle___")]
+  public static extern void delete_switch_database_interface_handle(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_audio_codec_settings_unused_set___")]
   public static extern void switch_audio_codec_settings_unused_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
 
@@ -22525,6 +23124,12 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_video_codec_settings_fps_get___")]
   public static extern byte switch_video_codec_settings_fps_get(global::System.Runtime.InteropServices.HandleRef jarg1);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_video_codec_settings_config_profile_name_set___")]
+  public static extern void switch_video_codec_settings_config_profile_name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_video_codec_settings_config_profile_name_get___")]
+  public static extern string switch_video_codec_settings_config_profile_name_get(global::System.Runtime.InteropServices.HandleRef jarg1);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_new_switch_video_codec_settings___")]
   public static extern global::System.IntPtr new_switch_video_codec_settings();
 
@@ -24964,6 +25569,9 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_ivr_orig_and_bridge___")]
   public static extern void switch_ivr_orig_and_bridge(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_ivr_play_and_collect_input___")]
+  public static extern int switch_ivr_play_and_collect_input(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4, int jarg5, int jarg6, string jarg7, uint jarg8, global::System.Runtime.InteropServices.HandleRef jarg9, ref string jarg10, string jarg11, global::System.Runtime.InteropServices.HandleRef jarg12);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_SWITCH_RTP_MAX_BUF_LEN_get___")]
   public static extern int SWITCH_RTP_MAX_BUF_LEN_get();
 
@@ -25699,12 +26307,24 @@ class freeswitchPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_add_child___")]
   public static extern global::System.IntPtr switch_xml_add_child(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_add_child_d___")]
+  public static extern global::System.IntPtr switch_xml_add_child_d(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_set_txt___")]
   public static extern global::System.IntPtr switch_xml_set_txt(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_set_txt_d___")]
+  public static extern global::System.IntPtr switch_xml_set_txt_d(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_set_attr___")]
   public static extern global::System.IntPtr switch_xml_set_attr(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
 
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_set_attr_d___")]
+  public static extern global::System.IntPtr switch_xml_set_attr_d(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
+
+  [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_set_attr_d_buf___")]
+  public static extern global::System.IntPtr switch_xml_set_attr_d_buf(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
+
   [global::System.Runtime.InteropServices.DllImport("mod_managed", EntryPoint="CSharp_FreeSWITCHfNative_switch_xml_set_flag___")]
   public static extern global::System.IntPtr switch_xml_set_flag(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
 
@@ -29329,6 +29949,17 @@ public class switch_cache_db_connection_options_t : global::System.IDisposable {
     } 
   }
 
+  public switch_cache_db_database_interface_options_t database_interface_options {
+    set {
+      freeswitchPINVOKE.switch_cache_db_connection_options_t_database_interface_options_set(swigCPtr, switch_cache_db_database_interface_options_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_cache_db_connection_options_t_database_interface_options_get(swigCPtr);
+      switch_cache_db_database_interface_options_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_cache_db_database_interface_options_t(cPtr, false);
+      return ret;
+    } 
+  }
+
   public switch_cache_db_connection_options_t() : this(freeswitchPINVOKE.new_switch_cache_db_connection_options_t(), true) {
   }
 
@@ -29405,10 +30036,100 @@ public class switch_cache_db_core_db_options_t : global::System.IDisposable {
 
 namespace FreeSWITCH.Native {
 
+public class switch_cache_db_database_interface_options_t : global::System.IDisposable {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+  protected bool swigCMemOwn;
+
+  internal switch_cache_db_database_interface_options_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(switch_cache_db_database_interface_options_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+
+  ~switch_cache_db_database_interface_options_t() {
+    Dispose();
+  }
+
+  public virtual void Dispose() {
+    lock(this) {
+      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
+        if (swigCMemOwn) {
+          swigCMemOwn = false;
+          freeswitchPINVOKE.delete_switch_cache_db_database_interface_options_t(swigCPtr);
+        }
+        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+      }
+      global::System.GC.SuppressFinalize(this);
+    }
+  }
+
+  public string dsn {
+    set {
+      freeswitchPINVOKE.switch_cache_db_database_interface_options_t_dsn_set(swigCPtr, value);
+    } 
+    get {
+      string ret = freeswitchPINVOKE.switch_cache_db_database_interface_options_t_dsn_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public string prefix {
+    set {
+      freeswitchPINVOKE.switch_cache_db_database_interface_options_t_prefix_set(swigCPtr, value);
+    } 
+    get {
+      string ret = freeswitchPINVOKE.switch_cache_db_database_interface_options_t_prefix_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public switch_database_interface database_interface {
+    set {
+      freeswitchPINVOKE.switch_cache_db_database_interface_options_t_database_interface_set(swigCPtr, switch_database_interface.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_cache_db_database_interface_options_t_database_interface_get(swigCPtr);
+      switch_database_interface ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_database_interface(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_bool_t make_module_no_unloadable {
+    set {
+      freeswitchPINVOKE.switch_cache_db_database_interface_options_t_make_module_no_unloadable_set(swigCPtr, (int)value);
+    } 
+    get {
+      switch_bool_t ret = (switch_bool_t)freeswitchPINVOKE.switch_cache_db_database_interface_options_t_make_module_no_unloadable_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public switch_cache_db_database_interface_options_t() : this(freeswitchPINVOKE.new_switch_cache_db_database_interface_options_t(), true) {
+  }
+
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public enum switch_cache_db_handle_type_t {
   SCDB_TYPE_CORE_DB,
   SCDB_TYPE_ODBC,
-  SCDB_TYPE_PGSQL
+  SCDB_TYPE_PGSQL,
+  SCDB_TYPE_DATABASE_INTERFACE
 }
 
 }
@@ -29487,6 +30208,17 @@ public class switch_cache_db_native_handle_t : global::System.IDisposable {
     } 
   }
 
+  public switch_database_interface_handle database_interface_dbh {
+    set {
+      freeswitchPINVOKE.switch_cache_db_native_handle_t_database_interface_dbh_set(swigCPtr, switch_database_interface_handle.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_cache_db_native_handle_t_database_interface_dbh_get(swigCPtr);
+      switch_database_interface_handle ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_database_interface_handle(cPtr, false);
+      return ret;
+    } 
+  }
+
   public switch_cache_db_native_handle_t() : this(freeswitchPINVOKE.new_switch_cache_db_native_handle_t(), true) {
   }
 
@@ -30704,6 +31436,7 @@ public enum switch_channel_flag_t {
   CF_ARRANGED_BRIDGE,
   CF_STATE_REPEAT,
   CF_WANT_DTLSv1_2,
+  CF_RFC7329_COMPAT,
   CF_FLAG_MAX
 }
 
@@ -32811,6 +33544,7 @@ public enum switch_core_session_message_types_t {
   SWITCH_MESSAGE_RING_EVENT,
   SWITCH_MESSAGE_RESAMPLE_EVENT,
   SWITCH_MESSAGE_HEARTBEAT_EVENT,
+  SWITCH_MESSAGE_INDICATE_SESSION_ID,
   SWITCH_MESSAGE_INVALID
 }
 
@@ -33235,6 +33969,334 @@ public class switch_crypto_key_material_t : global::System.IDisposable {
 
 namespace FreeSWITCH.Native {
 
+public enum switch_database_flag_enum_t {
+  SWITCH_DATABASE_FLAG_ROW_SIZE_LIMIT = (1 << 0)
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class switch_database_interface : global::System.IDisposable {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+  protected bool swigCMemOwn;
+
+  internal switch_database_interface(global::System.IntPtr cPtr, bool cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(switch_database_interface obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+
+  ~switch_database_interface() {
+    Dispose();
+  }
+
+  public virtual void Dispose() {
+    lock(this) {
+      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
+        if (swigCMemOwn) {
+          swigCMemOwn = false;
+          freeswitchPINVOKE.delete_switch_database_interface(swigCPtr);
+        }
+        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+      }
+      global::System.GC.SuppressFinalize(this);
+    }
+  }
+
+  public string interface_name {
+    set {
+      freeswitchPINVOKE.switch_database_interface_interface_name_set(swigCPtr, value);
+    } 
+    get {
+      string ret = freeswitchPINVOKE.switch_database_interface_interface_name_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public uint flags {
+    set {
+      freeswitchPINVOKE.switch_database_interface_flags_set(swigCPtr, value);
+    } 
+    get {
+      uint ret = freeswitchPINVOKE.switch_database_interface_flags_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t handle_new {
+    set {
+      freeswitchPINVOKE.switch_database_interface_handle_new_set(swigCPtr, SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_handle_new_get(swigCPtr);
+      SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_char_p_p_switch_database_interface_handle__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t handle_destroy {
+    set {
+      freeswitchPINVOKE.switch_database_interface_handle_destroy_set(swigCPtr, SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_handle_destroy_get(swigCPtr);
+      SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_p_switch_database_interface_handle__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t flush {
+    set {
+      freeswitchPINVOKE.switch_database_interface_flush_set(swigCPtr, SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_flush_get(swigCPtr);
+      SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t exec_detailed {
+    set {
+      freeswitchPINVOKE.switch_database_interface_exec_detailed_set(swigCPtr, SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_exec_detailed_get(swigCPtr);
+      SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_p_char__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t exec_string {
+    set {
+      freeswitchPINVOKE.switch_database_interface_exec_string_set(swigCPtr, SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_exec_string_get(swigCPtr);
+      SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_database_interface_handle_p_q_const__char_p_char_size_t_p_p_char__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t sql_set_auto_commit_attr {
+    set {
+      freeswitchPINVOKE.switch_database_interface_sql_set_auto_commit_attr_set(swigCPtr, SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_sql_set_auto_commit_attr_get(swigCPtr);
+      SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_database_interface_handle_enum_switch_bool_t__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t commit {
+    set {
+      freeswitchPINVOKE.switch_database_interface_commit_set(swigCPtr, SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_commit_get(swigCPtr);
+      SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t rollback {
+    set {
+      freeswitchPINVOKE.switch_database_interface_rollback_set(swigCPtr, SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_rollback_get(swigCPtr);
+      SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_database_interface_handle__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t callback_exec_detailed {
+    set {
+      freeswitchPINVOKE.switch_database_interface_callback_exec_detailed_set(swigCPtr, SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_callback_exec_detailed_get(swigCPtr);
+      SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_q_const__char_p_q_const__char_int_p_switch_database_interface_handle_p_q_const__char_p_f_p_void_int_p_p_char_p_p_char__int_p_void_p_p_char__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t affected_rows {
+    set {
+      freeswitchPINVOKE.switch_database_interface_affected_rows_set(swigCPtr, SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_affected_rows_get(swigCPtr);
+      SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_database_interface_handle_p_int__switch_status_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public string prefixes {
+  set { freeswitchPINVOKE.switch_database_interface_prefixes_set(swigCPtr, ref value); }
+
+  get {
+    return freeswitchPINVOKE.switch_database_interface_prefixes_get(swigCPtr);
+  }
+
+  }
+
+  public SWIGTYPE_p_switch_thread_rwlock_t rwlock {
+    set {
+      freeswitchPINVOKE.switch_database_interface_rwlock_set(swigCPtr, SWIGTYPE_p_switch_thread_rwlock_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_rwlock_get(swigCPtr);
+      SWIGTYPE_p_switch_thread_rwlock_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_switch_thread_rwlock_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public int refs {
+    set {
+      freeswitchPINVOKE.switch_database_interface_refs_set(swigCPtr, value);
+    } 
+    get {
+      int ret = freeswitchPINVOKE.switch_database_interface_refs_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_switch_mutex_t reflock {
+    set {
+      freeswitchPINVOKE.switch_database_interface_reflock_set(swigCPtr, SWIGTYPE_p_switch_mutex_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_reflock_get(swigCPtr);
+      SWIGTYPE_p_switch_mutex_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_switch_mutex_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_loadable_module_interface parent {
+    set {
+      freeswitchPINVOKE.switch_database_interface_parent_set(swigCPtr, switch_loadable_module_interface.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_parent_get(swigCPtr);
+      switch_loadable_module_interface ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_loadable_module_interface(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_database_interface next {
+    set {
+      freeswitchPINVOKE.switch_database_interface_next_set(swigCPtr, switch_database_interface.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_next_get(swigCPtr);
+      switch_database_interface ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_database_interface(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_database_interface() : this(freeswitchPINVOKE.new_switch_database_interface(), true) {
+  }
+
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class switch_database_interface_handle : global::System.IDisposable {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+  protected bool swigCMemOwn;
+
+  internal switch_database_interface_handle(global::System.IntPtr cPtr, bool cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(switch_database_interface_handle obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+
+  ~switch_database_interface_handle() {
+    Dispose();
+  }
+
+  public virtual void Dispose() {
+    lock(this) {
+      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
+        if (swigCMemOwn) {
+          swigCMemOwn = false;
+          freeswitchPINVOKE.delete_switch_database_interface_handle(swigCPtr);
+        }
+        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+      }
+      global::System.GC.SuppressFinalize(this);
+    }
+  }
+
+  public switch_cache_db_database_interface_options_t connection_options {
+    set {
+      freeswitchPINVOKE.switch_database_interface_handle_connection_options_set(swigCPtr, switch_cache_db_database_interface_options_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_handle_connection_options_get(swigCPtr);
+      switch_cache_db_database_interface_options_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_cache_db_database_interface_options_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public SWIGTYPE_p_void handle {
+    set {
+      freeswitchPINVOKE.switch_database_interface_handle_handle_set(swigCPtr, SWIGTYPE_p_void.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_database_interface_handle_handle_get(swigCPtr);
+      SWIGTYPE_p_void ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_void(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_database_interface_handle() : this(freeswitchPINVOKE.new_switch_database_interface_handle(), true) {
+  }
+
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public class switch_device_node_t : global::System.IDisposable {
   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
   protected bool swigCMemOwn;
@@ -36411,6 +37473,84 @@ public class switch_filenames : global::System.IDisposable {
 
 namespace FreeSWITCH.Native {
 
+public class switch_fps_t : global::System.IDisposable {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+  protected bool swigCMemOwn;
+
+  internal switch_fps_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(switch_fps_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+
+  ~switch_fps_t() {
+    Dispose();
+  }
+
+  public virtual void Dispose() {
+    lock(this) {
+      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
+        if (swigCMemOwn) {
+          swigCMemOwn = false;
+          freeswitchPINVOKE.delete_switch_fps_t(swigCPtr);
+        }
+        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+      }
+      global::System.GC.SuppressFinalize(this);
+    }
+  }
+
+  public float fps {
+    set {
+      freeswitchPINVOKE.switch_fps_t_fps_set(swigCPtr, value);
+    } 
+    get {
+      float ret = freeswitchPINVOKE.switch_fps_t_fps_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public int ms {
+    set {
+      freeswitchPINVOKE.switch_fps_t_ms_set(swigCPtr, value);
+    } 
+    get {
+      int ret = freeswitchPINVOKE.switch_fps_t_ms_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public int samples {
+    set {
+      freeswitchPINVOKE.switch_fps_t_samples_set(swigCPtr, value);
+    } 
+    get {
+      int ret = freeswitchPINVOKE.switch_fps_t_samples_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public switch_fps_t() : this(freeswitchPINVOKE.new_switch_fps_t(), true) {
+  }
+
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public class switch_frame : global::System.IDisposable {
   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
   protected bool swigCMemOwn;
@@ -39596,6 +40736,17 @@ public class switch_loadable_module_interface : global::System.IDisposable {
     } 
   }
 
+  public switch_database_interface database_interface {
+    set {
+      freeswitchPINVOKE.switch_loadable_module_interface_database_interface_set(swigCPtr, switch_database_interface.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_loadable_module_interface_database_interface_get(swigCPtr);
+      switch_database_interface ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_database_interface(cPtr, false);
+      return ret;
+    } 
+  }
+
   public SWIGTYPE_p_switch_thread_rwlock_t rwlock {
     set {
       freeswitchPINVOKE.switch_loadable_module_interface_rwlock_set(swigCPtr, SWIGTYPE_p_switch_thread_rwlock_t.getCPtr(value));
@@ -39646,6 +40797,25 @@ public class switch_loadable_module_interface : global::System.IDisposable {
 
 namespace FreeSWITCH.Native {
 
+public enum switch_loadable_module_type_t {
+  SWITCH_LOADABLE_MODULE_TYPE_PRELOAD,
+  SWITCH_LOADABLE_MODULE_TYPE_COMMON,
+  SWITCH_LOADABLE_MODULE_TYPE_POSTLOAD
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public enum switch_log_level_t {
   SWITCH_LOG_DEBUG10 = 110,
   SWITCH_LOG_DEBUG9 = 109,
@@ -40370,7 +41540,8 @@ public enum switch_module_interface_name_t {
   SWITCH_MANAGEMENT_INTERFACE,
   SWITCH_LIMIT_INTERFACE,
   SWITCH_CHAT_APPLICATION_INTERFACE,
-  SWITCH_JSON_API_INTERFACE
+  SWITCH_JSON_API_INTERFACE,
+  SWITCH_DATABASE_INTERFACE
 }
 
 }
@@ -41056,6 +42227,174 @@ public class switch_rtcp_numbers_t : global::System.IDisposable {
 
 namespace FreeSWITCH.Native {
 
+public class switch_rtcp_video_counters_t : global::System.IDisposable {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+  protected bool swigCMemOwn;
+
+  internal switch_rtcp_video_counters_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(switch_rtcp_video_counters_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+
+  ~switch_rtcp_video_counters_t() {
+    Dispose();
+  }
+
+  public virtual void Dispose() {
+    lock(this) {
+      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
+        if (swigCMemOwn) {
+          swigCMemOwn = false;
+          freeswitchPINVOKE.delete_switch_rtcp_video_counters_t(swigCPtr);
+        }
+        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+      }
+      global::System.GC.SuppressFinalize(this);
+    }
+  }
+
+  public ushort nack_count {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_counters_t_nack_count_set(swigCPtr, value);
+    } 
+    get {
+      ushort ret = freeswitchPINVOKE.switch_rtcp_video_counters_t_nack_count_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public ushort fir_count {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_counters_t_fir_count_set(swigCPtr, value);
+    } 
+    get {
+      ushort ret = freeswitchPINVOKE.switch_rtcp_video_counters_t_fir_count_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public ushort pli_count {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_counters_t_pli_count_set(swigCPtr, value);
+    } 
+    get {
+      ushort ret = freeswitchPINVOKE.switch_rtcp_video_counters_t_pli_count_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public ushort sr_count {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_counters_t_sr_count_set(swigCPtr, value);
+    } 
+    get {
+      ushort ret = freeswitchPINVOKE.switch_rtcp_video_counters_t_sr_count_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public ushort rr_count {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_counters_t_rr_count_set(swigCPtr, value);
+    } 
+    get {
+      ushort ret = freeswitchPINVOKE.switch_rtcp_video_counters_t_rr_count_get(swigCPtr);
+      return ret;
+    } 
+  }
+
+  public switch_rtcp_video_counters_t() : this(freeswitchPINVOKE.new_switch_rtcp_video_counters_t(), true) {
+  }
+
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
+public class switch_rtcp_video_stats_t : global::System.IDisposable {
+  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+  protected bool swigCMemOwn;
+
+  internal switch_rtcp_video_stats_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+  }
+
+  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(switch_rtcp_video_stats_t obj) {
+    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+  }
+
+  ~switch_rtcp_video_stats_t() {
+    Dispose();
+  }
+
+  public virtual void Dispose() {
+    lock(this) {
+      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
+        if (swigCMemOwn) {
+          swigCMemOwn = false;
+          freeswitchPINVOKE.delete_switch_rtcp_video_stats_t(swigCPtr);
+        }
+        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+      }
+      global::System.GC.SuppressFinalize(this);
+    }
+  }
+
+  public switch_rtcp_video_counters_t video_in {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_stats_t_video_in_set(swigCPtr, switch_rtcp_video_counters_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_rtcp_video_stats_t_video_in_get(swigCPtr);
+      switch_rtcp_video_counters_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_rtcp_video_counters_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_rtcp_video_counters_t video_out {
+    set {
+      freeswitchPINVOKE.switch_rtcp_video_stats_t_video_out_set(swigCPtr, switch_rtcp_video_counters_t.getCPtr(value));
+    } 
+    get {
+      global::System.IntPtr cPtr = freeswitchPINVOKE.switch_rtcp_video_stats_t_video_out_get(swigCPtr);
+      switch_rtcp_video_counters_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new switch_rtcp_video_counters_t(cPtr, false);
+      return ret;
+    } 
+  }
+
+  public switch_rtcp_video_stats_t() : this(freeswitchPINVOKE.new_switch_rtcp_video_stats_t(), true) {
+  }
+
+}
+
+}
+//------------------------------------------------------------------------------
+// <auto-generated />
+//
+// This file was automatically generated by SWIG (http://www.swig.org).
+// Version 3.0.10
+//
+// Do not make changes to this file unless you know what you are doing--modify
+// the SWIG interface file instead.
+//------------------------------------------------------------------------------
+
+namespace FreeSWITCH.Native {
+
 public enum switch_rtp_bug_flag_t {
   RTP_BUG_NONE = 0,
   RTP_BUG_CISCO_SKIP_MARK_BIT_2833 = (1 << 0),
@@ -45350,6 +46689,16 @@ public class switch_video_codec_settings : global::System.IDisposable {
     } 
   }
 
+  public string config_profile_name {
+    set {
+      freeswitchPINVOKE.switch_video_codec_settings_config_profile_name_set(swigCPtr, value);
+    } 
+    get {
+      string ret = freeswitchPINVOKE.switch_video_codec_settings_config_profile_name_get(swigCPtr);
+      return ret;
+    } 
+  }
+
   public switch_video_codec_settings() : this(freeswitchPINVOKE.new_switch_video_codec_settings(), true) {
   }