Diff
Modified: freeswitch/trunk/src/include/switch_nat.h (16252 => 16253)
--- freeswitch/trunk/src/include/switch_nat.h 2010-01-12 00:31:29 UTC (rev 16252)
+++ freeswitch/trunk/src/include/switch_nat.h 2010-01-12 00:40:43 UTC (rev 16253)
@@ -89,6 +89,10 @@
*/
SWITCH_DECLARE(switch_status_t) switch_nat_add_mapping(switch_port_t port, switch_nat_ip_proto_t proto, switch_port_t *external_port, switch_bool_t sticky);
/*!
+ \brief Has the NAT subsystem been initialized
+*/
+SWITCH_DECLARE(switch_bool_t) switch_nat_is_initialized(void);
+/*!
\brief Deletes a NAT mapping
\param proto Protocol
*/
Modified: freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c (16252 => 16253)
--- freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c 2010-01-12 00:31:29 UTC (rev 16252)
+++ freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c 2010-01-12 00:40:43 UTC (rev 16253)
@@ -112,6 +112,11 @@
if (!cmd) {
goto error;
}
+
+ if (!switch_nat_is_initialized()) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "nat_map API called while NAT not initialized\n");
+ goto error;
+ }
mydata = strdup(cmd);
switch_assert(mydata);
Modified: freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx (16252 => 16253)
--- freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx 2010-01-12 00:31:29 UTC (rev 16252)
+++ freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx 2010-01-12 00:40:43 UTC (rev 16253)
@@ -2399,6 +2399,66 @@
}
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_directories_recordings_dir_set(void * jarg1, char * jarg2) {
+ switch_directories *arg1 = (switch_directories *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (switch_directories *)jarg1;
+ arg2 = (char *)jarg2;
+ {
+ if (arg1->recordings_dir) delete [] arg1->recordings_dir;
+ if (arg2) {
+ arg1->recordings_dir = (char *) (new char[strlen((const char *)arg2)+1]);
+ strcpy((char *)arg1->recordings_dir, (const char *)arg2);
+ } else {
+ arg1->recordings_dir = 0;
+ }
+ }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_directories_recordings_dir_get(void * jarg1) {
+ char * jresult ;
+ switch_directories *arg1 = (switch_directories *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (switch_directories *)jarg1;
+ result = (char *) ((arg1)->recordings_dir);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_directories_sounds_dir_set(void * jarg1, char * jarg2) {
+ switch_directories *arg1 = (switch_directories *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (switch_directories *)jarg1;
+ arg2 = (char *)jarg2;
+ {
+ if (arg1->sounds_dir) delete [] arg1->sounds_dir;
+ if (arg2) {
+ arg1->sounds_dir = (char *) (new char[strlen((const char *)arg2)+1]);
+ strcpy((char *)arg1->sounds_dir, (const char *)arg2);
+ } else {
+ arg1->sounds_dir = 0;
+ }
+ }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_switch_directories_sounds_dir_get(void * jarg1) {
+ char * jresult ;
+ switch_directories *arg1 = (switch_directories *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (switch_directories *)jarg1;
+ result = (char *) ((arg1)->sounds_dir);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_directories() {
void * jresult ;
switch_directories *result = 0 ;
Modified: freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs (16252 => 16253)
--- freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs 2010-01-12 00:31:29 UTC (rev 16252)
+++ freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs 2010-01-12 00:40:43 UTC (rev 16253)
@@ -5490,6 +5490,18 @@
[DllImport("mod_managed", EntryPoint="CSharp_switch_directories_storage_dir_get")]
public static extern string switch_directories_storage_dir_get(HandleRef jarg1);
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_directories_recordings_dir_set")]
+ public static extern void switch_directories_recordings_dir_set(HandleRef jarg1, string jarg2);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_directories_recordings_dir_get")]
+ public static extern string switch_directories_recordings_dir_get(HandleRef jarg1);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_directories_sounds_dir_set")]
+ public static extern void switch_directories_sounds_dir_set(HandleRef jarg1, string jarg2);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_directories_sounds_dir_get")]
+ public static extern string switch_directories_sounds_dir_get(HandleRef jarg1);
+
[DllImport("mod_managed", EntryPoint="CSharp_new_switch_directories")]
public static extern IntPtr new_switch_directories();
@@ -21594,6 +21606,26 @@
}
}
+ public string recordings_dir {
+ set {
+ freeswitchPINVOKE.switch_directories_recordings_dir_set(swigCPtr, value);
+ }
+ get {
+ string ret = freeswitchPINVOKE.switch_directories_recordings_dir_get(swigCPtr);
+ return ret;
+ }
+ }
+
+ public string sounds_dir {
+ set {
+ freeswitchPINVOKE.switch_directories_sounds_dir_set(swigCPtr, value);
+ }
+ get {
+ string ret = freeswitchPINVOKE.switch_directories_sounds_dir_get(swigCPtr);
+ return ret;
+ }
+ }
+
public switch_directories() : this(freeswitchPINVOKE.new_switch_directories(), true) {
}
@@ -22473,6 +22505,7 @@
SWITCH_EVENT_RECORD_STOP,
SWITCH_EVENT_CALL_UPDATE,
SWITCH_EVENT_FAILURE,
+ SWITCH_EVENT_SOCKET_DATA,
SWITCH_EVENT_ALL
}
@@ -26256,7 +26289,8 @@
SCSC_CANCEL_SHUTDOWN,
SCSC_SEND_SIGHUP,
SCSC_DEBUG_LEVEL,
- SCSC_FLUSH_DB_HANDLES
+ SCSC_FLUSH_DB_HANDLES,
+ SCSC_SHUTDOWN_NOW
}
}
Modified: freeswitch/trunk/src/switch_nat.c (16252 => 16253)
--- freeswitch/trunk/src/switch_nat.c 2010-01-12 00:31:29 UTC (rev 16252)
+++ freeswitch/trunk/src/switch_nat.c 2010-01-12 00:40:43 UTC (rev 16253)
@@ -63,6 +63,7 @@
static nat_globals_perm_t nat_globals_perm;
static switch_bool_t first_init = SWITCH_TRUE;
+static switch_bool_t initialized = SWITCH_FALSE;
static switch_status_t get_upnp_pubaddr(char *pub_addr)
{
@@ -414,6 +415,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No PMP or UPnP NAT devices detected!\n");
}
first_init = SWITCH_FALSE;
+ initialized = SWITCH_TRUE;
}
static switch_status_t switch_nat_add_mapping_pmp(switch_port_t port, switch_nat_ip_proto_t proto, switch_port_t *external_port)
@@ -630,7 +632,6 @@
if (!(natxml = switch_xml_parse_str_dup(stream.data))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to parse XML: %s\n", (char *) stream.data);
switch_safe_free(stream.data);
- return;
}
/* iterate the xml and publish the mappings */
@@ -677,6 +678,10 @@
return stream.data; /* caller frees */
}
+SWITCH_DECLARE(switch_bool_t) switch_nat_is_initialized(void)
+{
+ return initialized;
+}
SWITCH_DECLARE(void) switch_nat_shutdown(void)
{