From 4a2e4ffc0e598eccca21385d1c64f6dcaf5a2f40 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 4 Nov 2009 21:07:18 +0000 Subject: [PATCH] add flags to state_handler table git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15356 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_module_interfaces.h | 1 + src/include/switch_types.h | 4 + .../languages/mod_managed/freeswitch_wrap.cxx | 174 ++++++++++++++++++ src/mod/languages/mod_managed/managed/swig.cs | 122 +++++++++++- src/mod/languages/mod_perl/mod_perl_wrap.cpp | 6 +- src/switch_channel.c | 7 + 6 files changed, 309 insertions(+), 5 deletions(-) diff --git a/src/include/switch_module_interfaces.h b/src/include/switch_module_interfaces.h index e3fc4570bf..d683dec7d3 100644 --- a/src/include/switch_module_interfaces.h +++ b/src/include/switch_module_interfaces.h @@ -85,6 +85,7 @@ struct switch_state_handler_table { switch_state_handler_t on_reporting; /*! executed when the state changes to destroy */ switch_state_handler_t on_destroy; + int flags; void *padding[10]; }; diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 343af04dd9..61dfd70b36 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1409,6 +1409,10 @@ typedef enum { SCSC_SEND_SIGHUP } switch_session_ctl_t; +typedef enum { + SSH_FLAG_STICKY = (1 << 0) +} switch_state_handler_flag_t; + typedef struct apr_pool_t switch_memory_pool_t; typedef uint16_t switch_port_t; typedef uint8_t switch_payload_t; diff --git a/src/mod/languages/mod_managed/freeswitch_wrap.cxx b/src/mod/languages/mod_managed/freeswitch_wrap.cxx index 2e267e223c..956ea89fb8 100644 --- a/src/mod/languages/mod_managed/freeswitch_wrap.cxx +++ b/src/mod/languages/mod_managed/freeswitch_wrap.cxx @@ -938,6 +938,17 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_URL_SEPARATOR_get() { } +SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_IGNORE_DISPLAY_UPDATES_VARIABLE_get() { + char * jresult ; + char *result = 0 ; + + result = (char *) "ignore_display_updates"; + + jresult = SWIG_csharp_string_callback((const char *)result); + return jresult; +} + + SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_AUDIO_SPOOL_PATH_VARIABLE_get() { char * jresult ; char *result = 0 ; @@ -1081,6 +1092,39 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_g } +SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE_get() { + char * jresult ; + char *result = 0 ; + + result = (char *) "execute_on_pre_answer"; + + jresult = SWIG_csharp_string_callback((const char *)result); + return jresult; +} + + +SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE_get() { + char * jresult ; + char *result = 0 ; + + result = (char *) "execute_on_media"; + + jresult = SWIG_csharp_string_callback((const char *)result); + return jresult; +} + + +SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE_get() { + char * jresult ; + char *result = 0 ; + + result = (char *) "api_on_answer"; + + jresult = SWIG_csharp_string_callback((const char *)result); + return jresult; +} + + SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE_get() { char * jresult ; char *result = 0 ; @@ -5178,6 +5222,35 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_string_array_ar } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_message_delivery_time_set(void * jarg1, void * jarg2) { + switch_core_session_message *arg1 = (switch_core_session_message *) 0 ; + time_t arg2 ; + time_t *argp2 ; + + arg1 = (switch_core_session_message *)jarg1; + argp2 = (time_t *)jarg2; + if (!argp2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null time_t", 0); + return ; + } + arg2 = *argp2; + if (arg1) (arg1)->delivery_time = arg2; + +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_session_message_delivery_time_get(void * jarg1) { + void * jresult ; + switch_core_session_message *arg1 = (switch_core_session_message *) 0 ; + time_t result; + + arg1 = (switch_core_session_message *)jarg1; + result = ((arg1)->delivery_time); + jresult = new time_t((time_t &)result); + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_core_session_message() { void * jresult ; switch_core_session_message *result = 0 ; @@ -9095,6 +9168,32 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_get_addr(char * jarg1, void * jarg2, void * } +SWIGEXPORT int SWIGSTDCALL CSharp_get_addr_int(void * jarg1) { + int jresult ; + switch_sockaddr_t *arg1 = (switch_sockaddr_t *) 0 ; + int result; + + arg1 = (switch_sockaddr_t *)jarg1; + result = (int)get_addr_int(arg1); + jresult = result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_switch_cmp_addr(void * jarg1, void * jarg2) { + int jresult ; + switch_sockaddr_t *arg1 = (switch_sockaddr_t *) 0 ; + switch_sockaddr_t *arg2 = (switch_sockaddr_t *) 0 ; + int result; + + arg1 = (switch_sockaddr_t *)jarg1; + arg2 = (switch_sockaddr_t *)jarg2; + result = (int)switch_cmp_addr(arg1,arg2); + jresult = result; + return jresult; +} + + SWIGEXPORT unsigned short SWIGSTDCALL CSharp_get_port(void * jarg1) { unsigned short jresult ; sockaddr *arg1 = (sockaddr *) 0 ; @@ -11651,6 +11750,29 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_switch_state_handler_table_on_destroy_get(v } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_flags_set(void * jarg1, int jarg2) { + switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ; + int arg2 ; + + arg1 = (switch_state_handler_table *)jarg1; + arg2 = (int)jarg2; + if (arg1) (arg1)->flags = arg2; + +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_switch_state_handler_table_flags_get(void * jarg1) { + int jresult ; + switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ; + int result; + + arg1 = (switch_state_handler_table *)jarg1; + result = (int) ((arg1)->flags); + jresult = result; + return jresult; +} + + SWIGEXPORT void SWIGSTDCALL CSharp_switch_state_handler_table_padding_set(void * jarg1, void * jarg2) { switch_state_handler_table *arg1 = (switch_state_handler_table *) 0 ; void **arg2 ; @@ -19428,6 +19550,22 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_switch_channel_get_uuid(void * jarg1) { } +SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_set_profile_var(void * jarg1, char * jarg2, char * jarg3) { + int jresult ; + switch_channel_t *arg1 = (switch_channel_t *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + switch_status_t result; + + arg1 = (switch_channel_t *)jarg1; + arg2 = (char *)jarg2; + arg3 = (char *)jarg3; + result = (switch_status_t)switch_channel_set_profile_var(arg1,(char const *)arg2,(char const *)arg3); + jresult = result; + return jresult; +} + + SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_set_variable_var_check(void * jarg1, char * jarg2, char * jarg3, int jarg4) { int jresult ; switch_channel_t *arg1 = (switch_channel_t *) 0 ; @@ -19523,6 +19661,20 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_get_variables(void * jarg1, voi } +SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_pass_callee_id(void * jarg1, void * jarg2) { + int jresult ; + switch_channel_t *arg1 = (switch_channel_t *) 0 ; + switch_channel_t *arg2 = (switch_channel_t *) 0 ; + switch_status_t result; + + arg1 = (switch_channel_t *)jarg1; + arg2 = (switch_channel_t *)jarg2; + result = (switch_status_t)switch_channel_pass_callee_id(arg1,arg2); + jresult = result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_switch_channel_variable_first(void * jarg1) { void * jresult ; switch_channel_t *arg1 = (switch_channel_t *) 0 ; @@ -20463,6 +20615,28 @@ SWIGEXPORT void SWIGSTDCALL CSharp_switch_buffer_zero(void * jarg1) { } +SWIGEXPORT void * SWIGSTDCALL CSharp_switch_buffer_slide_write(void * jarg1, void * jarg2, void * jarg3) { + void * jresult ; + switch_buffer_t *arg1 = (switch_buffer_t *) 0 ; + void *arg2 = (void *) 0 ; + switch_size_t arg3 ; + switch_size_t result; + switch_size_t *argp3 ; + + arg1 = (switch_buffer_t *)jarg1; + arg2 = (void *)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_buffer_slide_write(arg1,(void const *)arg2,arg3); + jresult = new switch_size_t((switch_size_t &)result); + return jresult; +} + + SWIGEXPORT void SWIGSTDCALL CSharp_switch_buffer_destroy(void * jarg1) { switch_buffer_t **arg1 = (switch_buffer_t **) 0 ; diff --git a/src/mod/languages/mod_managed/managed/swig.cs b/src/mod/languages/mod_managed/managed/swig.cs index ea6b02a779..35056ca8bc 100644 --- a/src/mod/languages/mod_managed/managed/swig.cs +++ b/src/mod/languages/mod_managed/managed/swig.cs @@ -2226,6 +2226,16 @@ public class freeswitch { return ret; } + public static int get_addr_int(SWIGTYPE_p_switch_sockaddr_t sa) { + int ret = freeswitchPINVOKE.get_addr_int(SWIGTYPE_p_switch_sockaddr_t.getCPtr(sa)); + return ret; + } + + public static int switch_cmp_addr(SWIGTYPE_p_switch_sockaddr_t sa1, SWIGTYPE_p_switch_sockaddr_t sa2) { + int ret = freeswitchPINVOKE.switch_cmp_addr(SWIGTYPE_p_switch_sockaddr_t.getCPtr(sa1), SWIGTYPE_p_switch_sockaddr_t.getCPtr(sa2)); + return ret; + } + public static ushort get_port(SWIGTYPE_p_sockaddr sa) { ushort ret = freeswitchPINVOKE.get_port(SWIGTYPE_p_sockaddr.getCPtr(sa)); return ret; @@ -2590,6 +2600,11 @@ public class freeswitch { return ret; } + public static switch_status_t switch_channel_set_profile_var(SWIGTYPE_p_switch_channel channel, string name, string val) { + switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_set_profile_var(SWIGTYPE_p_switch_channel.getCPtr(channel), name, val); + return ret; + } + public static switch_status_t switch_channel_set_variable_var_check(SWIGTYPE_p_switch_channel channel, string varname, string value, switch_bool_t var_check) { switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_set_variable_var_check(SWIGTYPE_p_switch_channel.getCPtr(channel), varname, value, (int)var_check); return ret; @@ -2620,6 +2635,11 @@ public class freeswitch { return ret; } + public static switch_status_t switch_channel_pass_callee_id(SWIGTYPE_p_switch_channel channel, SWIGTYPE_p_switch_channel other_channel) { + switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_pass_callee_id(SWIGTYPE_p_switch_channel.getCPtr(channel), SWIGTYPE_p_switch_channel.getCPtr(other_channel)); + return ret; + } + public static switch_event_header switch_channel_variable_first(SWIGTYPE_p_switch_channel channel) { IntPtr cPtr = freeswitchPINVOKE.switch_channel_variable_first(SWIGTYPE_p_switch_channel.getCPtr(channel)); switch_event_header ret = (cPtr == IntPtr.Zero) ? null : new switch_event_header(cPtr, false); @@ -2955,6 +2975,12 @@ public class freeswitch { freeswitchPINVOKE.switch_buffer_zero(SWIGTYPE_p_switch_buffer.getCPtr(buffer)); } + public static SWIGTYPE_p_switch_size_t switch_buffer_slide_write(SWIGTYPE_p_switch_buffer buffer, SWIGTYPE_p_void data, SWIGTYPE_p_switch_size_t datalen) { + SWIGTYPE_p_switch_size_t ret = new SWIGTYPE_p_switch_size_t(freeswitchPINVOKE.switch_buffer_slide_write(SWIGTYPE_p_switch_buffer.getCPtr(buffer), SWIGTYPE_p_void.getCPtr(data), SWIGTYPE_p_switch_size_t.getCPtr(datalen)), true); + if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + public static void switch_buffer_destroy(SWIGTYPE_p_p_switch_buffer buffer) { freeswitchPINVOKE.switch_buffer_destroy(SWIGTYPE_p_p_switch_buffer.getCPtr(buffer)); } @@ -4389,6 +4415,7 @@ public class freeswitch { public static readonly int SWITCH_MAX_DTMF_DURATION = freeswitchPINVOKE.SWITCH_MAX_DTMF_DURATION_get(); public static readonly string SWITCH_PATH_SEPARATOR = freeswitchPINVOKE.SWITCH_PATH_SEPARATOR_get(); public static readonly string SWITCH_URL_SEPARATOR = freeswitchPINVOKE.SWITCH_URL_SEPARATOR_get(); + public static readonly string SWITCH_IGNORE_DISPLAY_UPDATES_VARIABLE = freeswitchPINVOKE.SWITCH_IGNORE_DISPLAY_UPDATES_VARIABLE_get(); public static readonly string SWITCH_AUDIO_SPOOL_PATH_VARIABLE = freeswitchPINVOKE.SWITCH_AUDIO_SPOOL_PATH_VARIABLE_get(); public static readonly string SWITCH_BRIDGE_HANGUP_CAUSE_VARIABLE = freeswitchPINVOKE.SWITCH_BRIDGE_HANGUP_CAUSE_VARIABLE_get(); public static readonly string SWITCH_READ_TERMINATOR_USED_VARIABLE = freeswitchPINVOKE.SWITCH_READ_TERMINATOR_USED_VARIABLE_get(); @@ -4402,6 +4429,9 @@ public class freeswitch { public static readonly string SWITCH_COPY_XML_CDR_VARIABLE = freeswitchPINVOKE.SWITCH_COPY_XML_CDR_VARIABLE_get(); public static readonly string SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE = freeswitchPINVOKE.SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE_get(); public static readonly string SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get(); + public static readonly string SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE_get(); + public static readonly string SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE_get(); + public static readonly string SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE_get(); public static readonly string SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE_get(); public static readonly string SWITCH_CALL_TIMEOUT_VARIABLE = freeswitchPINVOKE.SWITCH_CALL_TIMEOUT_VARIABLE_get(); public static readonly string SWITCH_HOLDING_UUID_VARIABLE = freeswitchPINVOKE.SWITCH_HOLDING_UUID_VARIABLE_get(); @@ -4874,6 +4904,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_URL_SEPARATOR_get")] public static extern string SWITCH_URL_SEPARATOR_get(); + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_IGNORE_DISPLAY_UPDATES_VARIABLE_get")] + public static extern string SWITCH_IGNORE_DISPLAY_UPDATES_VARIABLE_get(); + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_AUDIO_SPOOL_PATH_VARIABLE_get")] public static extern string SWITCH_AUDIO_SPOOL_PATH_VARIABLE_get(); @@ -4913,6 +4946,15 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get")] public static extern string SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get(); + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE_get")] + public static extern string SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE_get(); + + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE_get")] + public static extern string SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE_get(); + + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE_get")] + public static extern string SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE_get(); + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE_get")] public static extern string SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE_get(); @@ -5921,6 +5963,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_core_session_message_string_array_arg_get")] public static extern IntPtr switch_core_session_message_string_array_arg_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_session_message_delivery_time_set")] + public static extern void switch_core_session_message_delivery_time_set(HandleRef jarg1, HandleRef jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_session_message_delivery_time_get")] + public static extern IntPtr switch_core_session_message_delivery_time_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_new_switch_core_session_message")] public static extern IntPtr new_switch_core_session_message(); @@ -6794,6 +6842,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_get_addr")] public static extern string get_addr(string jarg1, HandleRef jarg2, HandleRef jarg3, HandleRef jarg4); + [DllImport("mod_managed", EntryPoint="CSharp_get_addr_int")] + public static extern int get_addr_int(HandleRef jarg1); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_cmp_addr")] + public static extern int switch_cmp_addr(HandleRef jarg1, HandleRef jarg2); + [DllImport("mod_managed", EntryPoint="CSharp_get_port")] public static extern ushort get_port(HandleRef jarg1); @@ -7385,6 +7439,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_state_handler_table_on_destroy_get")] public static extern IntPtr switch_state_handler_table_on_destroy_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_state_handler_table_flags_set")] + public static extern void switch_state_handler_table_flags_set(HandleRef jarg1, int jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_state_handler_table_flags_get")] + public static extern int switch_state_handler_table_flags_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_state_handler_table_padding_set")] public static extern void switch_state_handler_table_padding_set(HandleRef jarg1, HandleRef jarg2); @@ -9341,6 +9401,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_get_uuid")] public static extern string switch_channel_get_uuid(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_set_profile_var")] + public static extern int switch_channel_set_profile_var(HandleRef jarg1, string jarg2, string jarg3); + [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_set_variable_var_check")] public static extern int switch_channel_set_variable_var_check(HandleRef jarg1, string jarg2, string jarg3, int jarg4); @@ -9359,6 +9422,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_get_variables")] public static extern int switch_channel_get_variables(HandleRef jarg1, HandleRef jarg2); + [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_pass_callee_id")] + public static extern int switch_channel_pass_callee_id(HandleRef jarg1, HandleRef jarg2); + [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_variable_first")] public static extern IntPtr switch_channel_variable_first(HandleRef jarg1); @@ -9569,6 +9635,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_buffer_zero")] public static extern void switch_buffer_zero(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_buffer_slide_write")] + public static extern IntPtr switch_buffer_slide_write(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3); + [DllImport("mod_managed", EntryPoint="CSharp_switch_buffer_destroy")] public static extern void switch_buffer_destroy(HandleRef jarg1); @@ -18111,6 +18180,8 @@ namespace FreeSWITCH.Native { public enum switch_channel_cap_t { CC_MEDIA_ACK = 1, + CC_BYPASS_MEDIA, + CC_PROXY_MEDIA, CC_FLAG_MAX } @@ -18166,6 +18237,11 @@ public enum switch_channel_flag_t { CF_ORIGINATOR, CF_XFER_ZOMBIE, CF_MEDIA_ACK, + CF_THREAD_SLEEPING, + CF_DISABLE_RINGBACK, + CF_NOT_READY, + CF_SIGNAL_BRIDGE_TTL, + CF_MEDIA_BRIDGE_TTL, CF_FLAG_MAX } @@ -19629,6 +19705,18 @@ public class switch_core_session_message : IDisposable { } } + public SWIGTYPE_p_time_t delivery_time { + set { + freeswitchPINVOKE.switch_core_session_message_delivery_time_set(swigCPtr, SWIGTYPE_p_time_t.getCPtr(value)); + if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); + } + get { + SWIGTYPE_p_time_t ret = new SWIGTYPE_p_time_t(freeswitchPINVOKE.switch_core_session_message_delivery_time_get(swigCPtr), true); + if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + } + public switch_core_session_message() : this(freeswitchPINVOKE.new_switch_core_session_message(), true) { } @@ -19685,6 +19773,9 @@ public enum switch_core_session_message_types_t { SWITCH_MESSAGE_INDICATE_TRANSCODING_NECESSARY, SWITCH_MESSAGE_INDICATE_AUDIO_SYNC, SWITCH_MESSAGE_INDICATE_REQUEST_IMAGE_MEDIA, + SWITCH_MESSAGE_INDICATE_UUID_CHANGE, + SWITCH_MESSAGE_INDICATE_WARNING, + SWITCH_MESSAGE_INDICATE_DEBUG_AUDIO, SWITCH_MESSAGE_INVALID } @@ -23790,7 +23881,7 @@ namespace FreeSWITCH.Native { SMBF_READ_REPLACE = (1 << 3), SMBF_READ_PING = (1 << 4), SMBF_STEREO = (1 << 5), - SMBF_RECORD_ANSWER_REQ = (1 << 6), + SMBF_ANSWER_REQ = (1 << 6), SMBF_THREAD_LOCK = (1 << 7) } @@ -24104,7 +24195,9 @@ namespace FreeSWITCH.Native { SWITCH_ZRTP_FLAG_SECURE_SEND = (1 << 23), SWITCH_ZRTP_FLAG_SECURE_RECV = (1 << 24), SWITCH_ZRTP_FLAG_SECURE_MITM_SEND = (1 << 25), - SWITCH_ZRTP_FLAG_SECURE_MITM_RECV = (1 << 26) + SWITCH_ZRTP_FLAG_SECURE_MITM_RECV = (1 << 26), + SWITCH_RTP_FLAG_DEBUG_RTP_READ = (1 << 27), + SWITCH_RTP_FLAG_DEBUG_RTP_WRITE = (1 << 28) } } @@ -25306,6 +25399,21 @@ public enum switch_stack_t { namespace FreeSWITCH.Native { +public enum switch_state_handler_flag_t { + SSH_FLAG_STICKY = (1 << 0) +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 1.3.35 + * + * 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_state_handler_name_t { SWITCH_SHN_ON_INIT, SWITCH_SHN_ON_ROUTING, @@ -25495,6 +25603,16 @@ public class switch_state_handler_table : IDisposable { } } + public int flags { + set { + freeswitchPINVOKE.switch_state_handler_table_flags_set(swigCPtr, value); + } + get { + int ret = freeswitchPINVOKE.switch_state_handler_table_flags_get(swigCPtr); + return ret; + } + } + public SWIGTYPE_p_p_void padding { set { freeswitchPINVOKE.switch_state_handler_table_padding_set(swigCPtr, SWIGTYPE_p_p_void.getCPtr(value)); diff --git a/src/mod/languages/mod_perl/mod_perl_wrap.cpp b/src/mod/languages/mod_perl/mod_perl_wrap.cpp index 514b323c12..72280857f0 100644 --- a/src/mod/languages/mod_perl/mod_perl_wrap.cpp +++ b/src/mod/languages/mod_perl/mod_perl_wrap.cpp @@ -12045,17 +12045,17 @@ XS(SWIG_init) { SWIG_TypeClientData(SWIGTYPE_p_IVRMenu, (void*) "freeswitch::IVRMenu"); SWIG_TypeClientData(SWIGTYPE_p_API, (void*) "freeswitch::API"); SWIG_TypeClientData(SWIGTYPE_p_input_callback_state, (void*) "freeswitch::input_callback_state_t"); - /*@SWIG:/usr/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { + /*@SWIG:/usr/local/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "S_HUP", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_HUP))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; - /*@SWIG:/usr/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { + /*@SWIG:/usr/local/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "S_FREE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_FREE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; - /*@SWIG:/usr/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { + /*@SWIG:/usr/local/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "S_RDLOCK", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_RDLOCK))); SvREADONLY_on(sv); diff --git a/src/switch_channel.c b/src/switch_channel.c index ad088d86d2..a80c6f5cfc 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -1736,7 +1736,14 @@ SWITCH_DECLARE(void) switch_channel_clear_state_handler(switch_channel_t *channe new_handlers[channel->state_handler_index++] = channel->state_handlers[index]; } } + } else { + for (index = 0; index < i; index++) { + if (switch_test_flag(channel->state_handlers[index], SSH_FLAG_STICKY)) { + new_handlers[channel->state_handler_index++] = channel->state_handlers[index]; + } + } } + for (index = 0; index < SWITCH_MAX_STATE_HANDLERS; index++) { channel->state_handlers[index] = NULL; }