Revision
14647
Author
anthm
Date
2009-08-26 16:53:43 -0500 (Wed, 26 Aug 2009)

Log Message

add state change hooks for destroy

Modified Paths

Diff

Modified: freeswitch/trunk/src/switch_channel.c (14646 => 14647)


--- freeswitch/trunk/src/switch_channel.c	2009-08-26 20:50:05 UTC (rev 14646)
+++ freeswitch/trunk/src/switch_channel.c	2009-08-26 21:53:43 UTC (rev 14647)
@@ -1049,7 +1049,7 @@
 		switch_channel_presence(channel, "unknown", (const char *) state_names[state], NULL);
 	}
 
-	if (state < CS_HANGUP) {
+	if (state <= CS_DESTROY) {
 		switch_event_t *event;
 		if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_STATE) == SWITCH_STATUS_SUCCESS) {
 			if (state == CS_ROUTING) {
@@ -1285,7 +1285,7 @@
 			channel->hangup_cause = SWITCH_CAUSE_NORMAL_CLEARING;
 		}
 
-		if (state < CS_DESTROY) {
+		if (state <= CS_DESTROY) {
 			switch_core_session_signal_state_change(channel->session);
 		}
 	} else {

Modified: freeswitch/trunk/src/switch_core_state_machine.c (14646 => 14647)


--- freeswitch/trunk/src/switch_core_state_machine.c	2009-08-26 20:50:05 UTC (rev 14646)
+++ freeswitch/trunk/src/switch_core_state_machine.c	2009-08-26 21:53:43 UTC (rev 14647)
@@ -553,6 +553,7 @@
 	int index = 0;
 
 	switch_assert(session != NULL);
+	switch_channel_set_running_state(session->channel, CS_DESTROY);
 
 	session->thread_running = 1;
 	endpoint_interface = session->endpoint_interface;