Revision
15356
Author
anthm
Date
2009-11-04 15:07:18 -0600 (Wed, 04 Nov 2009)

Log Message

add flags to state_handler table

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_module_interfaces.h (15355 => 15356)


--- freeswitch/trunk/src/include/switch_module_interfaces.h	2009-11-04 19:56:05 UTC (rev 15355)
+++ freeswitch/trunk/src/include/switch_module_interfaces.h	2009-11-04 21:07:18 UTC (rev 15356)
@@ -85,6 +85,7 @@
 	switch_state_handler_t on_reporting;
 	/*! executed when the state changes to destroy */
 	switch_state_handler_t on_destroy;
+	int flags;
 	void *padding[10];
 };
 

Modified: freeswitch/trunk/src/include/switch_types.h (15355 => 15356)


--- freeswitch/trunk/src/include/switch_types.h	2009-11-04 19:56:05 UTC (rev 15355)
+++ freeswitch/trunk/src/include/switch_types.h	2009-11-04 21:07:18 UTC (rev 15356)
@@ -1409,6 +1409,10 @@
 	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;

Modified: freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx (15355 => 15356)


--- freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx	2009-11-04 19:56:05 UTC (rev 15355)
+++ freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx	2009-11-04 21:07:18 UTC (rev 15356)
@@ -938,6 +938,17 @@
 }
 
 
+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_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_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 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_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 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_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_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 ;
   

Modified: freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs (15355 => 15356)


--- freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs	2009-11-04 19:56:05 UTC (rev 15355)
+++ freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs	2009-11-04 21:07:18 UTC (rev 15356)
@@ -2226,6 +2226,16 @@
     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 @@
     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 @@
     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 @@
     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 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 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 @@
   [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 @@
   [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 @@
   [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 @@
   [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 @@
   [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 @@
   [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 @@
   [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 @@
   [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 @@
 
 public enum switch_channel_cap_t {
   CC_MEDIA_ACK = 1,
+  CC_BYPASS_MEDIA,
+  CC_PROXY_MEDIA,
   CC_FLAG_MAX
 }
 
@@ -18166,6 +18237,11 @@
   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 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 @@
   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 @@
   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 @@
   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 @@
 
 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 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));

Modified: freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp (15355 => 15356)


--- freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp	2009-11-04 19:56:05 UTC (rev 15355)
+++ freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp	2009-11-04 21:07:18 UTC (rev 15356)
@@ -12045,17 +12045,17 @@
   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);

Modified: freeswitch/trunk/src/switch_channel.c (15355 => 15356)


--- freeswitch/trunk/src/switch_channel.c	2009-11-04 19:56:05 UTC (rev 15355)
+++ freeswitch/trunk/src/switch_channel.c	2009-11-04 21:07:18 UTC (rev 15356)
@@ -1736,7 +1736,14 @@
 				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;
 	}