Revision
17419
Author
dyatsin
Date
2010-04-27 17:20:25 -0500 (Tue, 27 Apr 2010)

Log Message

Removed use of ftdmchan->flags from mod_freetdm.c as they will be hidden from user in new architecture

Modified Paths

Diff

Modified: freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c (17418 => 17419)


--- freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c	2010-04-27 21:21:57 UTC (rev 17418)
+++ freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c	2010-04-27 22:20:25 UTC (rev 17419)
@@ -1955,10 +1955,8 @@
 	case FTDM_SIGEVENT_SIGSTATUS_CHANGED:
 		{
 			ftdm_signaling_status_t *sigstatus = (ftdm_signaling_status_t*)(sigmsg->raw_data);
-			if (*((ftdm_signaling_status_t*)(sigmsg->raw_data)) == FTDM_SIG_STATE_UP) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "%d:%d signalling changed to :%s\n",
-						sigmsg->channel->span_id, sigmsg->channel->chan_id, ftdm_signaling_status2str(*sigstatus));
-			}
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "%d:%d signalling changed to :%s\n",
+					sigmsg->channel->span_id, sigmsg->channel->chan_id, ftdm_signaling_status2str(*sigstatus));
 		}
 		break;
 	default:
@@ -2994,10 +2992,12 @@
 
 void dump_chan(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stream)
 {
+	ftdm_signaling_status_t sigstatus = FTDM_SIG_STATE_DOWN;
 	if (chan_id > span->chan_count) {
 		return;
 	}
-
+	
+	ftdm_channel_get_sig_status(span->channels[chan_id], &sigstatus);
 	stream->write_function(stream,
 						   "span_id: %u\n"
 						   "chan_id: %u\n"
@@ -3023,7 +3023,7 @@
 						   span->channels[chan_id]->physical_span_id,
 						   span->channels[chan_id]->physical_chan_id,
 					  	 (span->channels[chan_id]->alarm_flags) ? "DOWN" : "UP",
-					     ftdm_test_flag(span->channels[chan_id], FTDM_CHANNEL_SIG_UP) ? "UP" : "DOWN",
+					     ftdm_signaling_status2str(sigstatus),
 						   ftdm_chan_type2str(span->channels[chan_id]->type),
 						   ftdm_channel_state2str(span->channels[chan_id]->state),
 						   ftdm_channel_state2str(span->channels[chan_id]->last_state),
@@ -3042,10 +3042,11 @@
 
 void dump_chan_xml(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stream)
 {
+	ftdm_signaling_status_t sigstatus = FTDM_SIG_STATE_DOWN;
 	if (chan_id > span->chan_count) {
 		return;
 	}
-
+	ftdm_channel_get_sig_status(span->channels[chan_id], &sigstatus);
 	stream->write_function(stream,
 						   " <channel>\n"
 						   "  <span-id>%u</span-id>\n"
@@ -3073,7 +3074,7 @@
 						   span->channels[chan_id]->physical_span_id,
 						   span->channels[chan_id]->physical_chan_id,
 						   (span->channels[chan_id]->alarm_flags) ? "DOWN" : "UP",
-					     ftdm_test_flag(span->channels[chan_id], FTDM_CHANNEL_SIG_UP) ? "UP" : "DOWN",
+					     ftdm_signaling_status2str(sigstatus),
 						   ftdm_chan_type2str(span->channels[chan_id]->type),
 						   ftdm_channel_state2str(span->channels[chan_id]->state),
 						   ftdm_channel_state2str(span->channels[chan_id]->last_state),

Modified: freeswitch/trunk/libs/freetdm/src/ftdm_io.c (17418 => 17419)


--- freeswitch/trunk/libs/freetdm/src/ftdm_io.c	2010-04-27 21:21:57 UTC (rev 17418)
+++ freeswitch/trunk/libs/freetdm/src/ftdm_io.c	2010-04-27 22:20:25 UTC (rev 17419)
@@ -2905,7 +2905,12 @@
 FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char* str, ftdm_channel_config_t *chan_config, unsigned *configured)
 {
 	int currindex = span->chan_count;
-	*configured += span->fio->configure_span(span, str, chan_config->type, chan_config->name, chan_config->number);
+	*configured = 0;
+	*configured = span->fio->configure_span(span, str, chan_config->type, chan_config->name, chan_config->number);
+	if (!*configured) {
+		ftdm_log(FTDM_LOG_ERROR, "%d:Failed to configure span", span->span_id);
+		return FTDM_FAIL;
+	}
 
 	if (ftdm_group_add_channels(span, currindex, chan_config->group_name) != FTDM_SUCCESS) {
 		ftdm_log(FTDM_LOG_ERROR, "%d:Failed to add channels to group %s\n", span->span_id, chan_config->group_name);
@@ -3043,8 +3048,11 @@
 							ftdm_analog_start_type2str(span->start_type));
 				}
 				if (span->trunk_type == FTDM_TRUNK_FXO) {
+     			unsigned chans_configured = 0;
 					chan_config.type = FTDM_CHAN_TYPE_FXO;
-					ftdm_configure_span_channels(span, val, &chan_config, &configured);
+					if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+						configured += chans_configured;
+					}
 				} else {
 					ftdm_log(FTDM_LOG_WARNING, "Cannot add FXO channels to an FXS trunk!\n");
 				}
@@ -3055,8 +3063,11 @@
 							ftdm_analog_start_type2str(span->start_type));
 				}
 				if (span->trunk_type == FTDM_TRUNK_FXS) {
+					unsigned chans_configured = 0;
 					chan_config.type = FTDM_CHAN_TYPE_FXS;
-					ftdm_configure_span_channels(span, val, &chan_config, &configured);
+					if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+						configured += chans_configured;
+					}
 				} else {
 					ftdm_log(FTDM_LOG_WARNING, "Cannot add FXS channels to an FXO trunk!\n");
 				}
@@ -3067,30 +3078,43 @@
 							ftdm_analog_start_type2str(span->start_type));
 				}
 				if (span->trunk_type == FTDM_TRUNK_EM) {
+					unsigned chans_configured = 0;
 					chan_config.type = FTDM_CHAN_TYPE_EM;
-					ftdm_configure_span_channels(span, val, &chan_config, &configured);
+					if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+						configured += chans_configured;
+					}
 				} else {
 					ftdm_log(FTDM_LOG_WARNING, "Cannot add EM channels to a non-EM trunk!\n");
 				}
 			} else if (!strcasecmp(var, "b-channel")) {
+				unsigned chans_configured = 0;
 				chan_config.type = FTDM_CHAN_TYPE_B;
-				ftdm_configure_span_channels(span, val, &chan_config, &configured);
+				if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+					configured += chans_configured;
+				}
 			} else if (!strcasecmp(var, "d-channel")) {
 				if (d) {
 					ftdm_log(FTDM_LOG_WARNING, "ignoring extra d-channel\n");
 				} else {
+					unsigned chans_configured = 0;
 					if (!strncasecmp(val, "lapd:", 5)) {
 						chan_config.type = FTDM_CHAN_TYPE_DQ931;
 						val += 5;
 					} else {
 						chan_config.type = FTDM_CHAN_TYPE_DQ921;
 					}
-					ftdm_configure_span_channels(span, val, &chan_config, &configured);
+					if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+						configured += chans_configured;
+					}
 					d++;
 				}
 			} else if (!strcasecmp(var, "cas-channel")) {
+				unsigned chans_configured = 0;
 				chan_config.type = FTDM_CHAN_TYPE_CAS;
-				ftdm_configure_span_channels(span, val, &chan_config, &configured);
+				
+				if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+					configured += chans_configured;
+				}
 			} else if (!strcasecmp(var, "dtmf_hangup")) {
 				span->dtmf_hangup = ftdm_strdup(val);
 				span->dtmf_hangup_len = strlen(val);