[Freeswitch-svn] [commit] r10179 - freeswitch/trunk/src

Freeswitch SVN anthm at freeswitch.org
Tue Oct 28 12:01:16 EDT 2008


Author: anthm
Date: Tue Oct 28 12:01:15 2008
New Revision: 10179

Modified:
   freeswitch/trunk/src/switch_core_state_machine.c

Log:
tweak

Modified: freeswitch/trunk/src/switch_core_state_machine.c
==============================================================================
--- freeswitch/trunk/src/switch_core_state_machine.c	(original)
+++ freeswitch/trunk/src/switch_core_state_machine.c	Tue Oct 28 12:01:15 2008
@@ -78,7 +78,7 @@
 				for (x = 0; x < argc; x++) {
 					char *dpname = dp[x];
 					char *dparg = NULL;
-
+					
 					if (dpname) {
 						if ((dparg = strchr(dpname, ':'))) {
 							*dparg++ = '\0';
@@ -89,7 +89,7 @@
 					if (!(dialplan_interface = switch_loadable_module_get_dialplan_interface(dpname))) {
 						continue;
 					}
-
+					
 					count++;
 
 					if ((extension = dialplan_interface->hunt_function(session, dparg, NULL)) != 0) {
@@ -103,8 +103,13 @@
 
 		if (!count) {
 			if (switch_channel_test_flag(session->channel, CF_OUTBOUND)) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No Dialplan, changing state to HOLD\n");
-				switch_channel_set_state(session->channel, CS_CONSUME_MEDIA);
+				if (switch_channel_test_flag(session->channel, CF_ANSWERED)) {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "No Dialplan on answered channel, changing state to HANGUP\n");
+					switch_channel_hangup(session->channel, SWITCH_CAUSE_NO_ROUTE_DESTINATION);
+				} else {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "No Dialplan, changing state to CONSUME_MEDIA\n");
+					switch_channel_set_state(session->channel, CS_CONSUME_MEDIA);
+				}
 				goto end;
 			}
 		}



More information about the Freeswitch-svn mailing list