Revision
17418
Author
dyatsin
Date
2010-04-27 16:21:57 -0500 (Tue, 27 Apr 2010)

Log Message

freetdm: moved type inside ftdm_configure_span_channels

Modified Paths

Diff

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


--- freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c	2010-04-27 20:12:22 UTC (rev 17417)
+++ freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c	2010-04-27 21:21:57 UTC (rev 17418)
@@ -1954,10 +1954,10 @@
 		break;
 	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) {
-				ftdm_set_flag(sigmsg->channel, FTDM_CHANNEL_SIG_UP);
-			} else {
-				ftdm_clear_flag(sigmsg->channel, FTDM_CHANNEL_SIG_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));
 			}
 		}
 		break;

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


--- freeswitch/trunk/libs/freetdm/src/ftdm_io.c	2010-04-27 20:12:22 UTC (rev 17417)
+++ freeswitch/trunk/libs/freetdm/src/ftdm_io.c	2010-04-27 21:21:57 UTC (rev 17418)
@@ -2902,10 +2902,10 @@
 }
 
 
-FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char* str, ftdm_channel_config_t *chan_config, ftdm_chan_type_t type, unsigned *configured)
+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, type, chan_config->name, chan_config->number);
+	*configured += span->fio->configure_span(span, str, chan_config->type, chan_config->name, chan_config->number);
 
 	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,7 +3043,8 @@
 							ftdm_analog_start_type2str(span->start_type));
 				}
 				if (span->trunk_type == FTDM_TRUNK_FXO) {
-					ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_FXO, &configured);
+					chan_config.type = FTDM_CHAN_TYPE_FXO;
+					ftdm_configure_span_channels(span, val, &chan_config, &configured);
 				} else {
 					ftdm_log(FTDM_LOG_WARNING, "Cannot add FXO channels to an FXS trunk!\n");
 				}
@@ -3054,7 +3055,8 @@
 							ftdm_analog_start_type2str(span->start_type));
 				}
 				if (span->trunk_type == FTDM_TRUNK_FXS) {
-					ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_FXS, &configured);
+					chan_config.type = FTDM_CHAN_TYPE_FXS;
+					ftdm_configure_span_channels(span, val, &chan_config, &configured);
 				} else {
 					ftdm_log(FTDM_LOG_WARNING, "Cannot add FXS channels to an FXO trunk!\n");
 				}
@@ -3065,28 +3067,30 @@
 							ftdm_analog_start_type2str(span->start_type));
 				}
 				if (span->trunk_type == FTDM_TRUNK_EM) {
-					ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_EM, &configured);
+					chan_config.type = FTDM_CHAN_TYPE_EM;
+					ftdm_configure_span_channels(span, val, &chan_config, &configured);
 				} else {
 					ftdm_log(FTDM_LOG_WARNING, "Cannot add EM channels to a non-EM trunk!\n");
 				}
 			} else if (!strcasecmp(var, "b-channel")) {
-				ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_B, &configured);
+				chan_config.type = FTDM_CHAN_TYPE_B;
+				ftdm_configure_span_channels(span, val, &chan_config, &configured);
 			} else if (!strcasecmp(var, "d-channel")) {
 				if (d) {
 					ftdm_log(FTDM_LOG_WARNING, "ignoring extra d-channel\n");
 				} else {
-					ftdm_chan_type_t qtype;
 					if (!strncasecmp(val, "lapd:", 5)) {
-						qtype = FTDM_CHAN_TYPE_DQ931;
+						chan_config.type = FTDM_CHAN_TYPE_DQ931;
 						val += 5;
 					} else {
-						qtype = FTDM_CHAN_TYPE_DQ921;
+						chan_config.type = FTDM_CHAN_TYPE_DQ921;
 					}
-					ftdm_configure_span_channels(span, val, &chan_config, qtype, &configured);
+					ftdm_configure_span_channels(span, val, &chan_config, &configured);
 					d++;
 				}
 			} else if (!strcasecmp(var, "cas-channel")) {
-				ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_CAS, &configured);
+				chan_config.type = FTDM_CHAN_TYPE_CAS;
+				ftdm_configure_span_channels(span, val, &chan_config, &configured);
 			} else if (!strcasecmp(var, "dtmf_hangup")) {
 				span->dtmf_hangup = ftdm_strdup(val);
 				span->dtmf_hangup_len = strlen(val);
@@ -3674,19 +3678,24 @@
 FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t *sigmsg)
 {
 	ftdm_status_t status = FTDM_FAIL;
+	if (sigmsg->channel) {
+		ftdm_mutex_lock(sigmsg->channel->mutex);
+	}
 
+	if (sigmsg->event_id == FTDM_SIGEVENT_SIGSTATUS_CHANGED) {
+		if (*((ftdm_signaling_status_t*)(sigmsg->raw_data)) == FTDM_SIG_STATE_UP) {
+			ftdm_set_flag(sigmsg->channel, FTDM_CHANNEL_SIG_UP);
+		} else {
+			ftdm_clear_flag(sigmsg->channel, FTDM_CHANNEL_SIG_UP);
+		}
+	}
 	if (span->signal_cb) {
-		if (sigmsg->channel) {
-			ftdm_mutex_lock(sigmsg->channel->mutex);
-		}
-
 		status = span->signal_cb(sigmsg);
+	}
 
-		if (sigmsg->channel) {
-			ftdm_mutex_unlock(sigmsg->channel->mutex);
-		}
+	if (sigmsg->channel) {
+		ftdm_mutex_unlock(sigmsg->channel->mutex);
 	}
-
 	return status;
 }
 

Modified: freeswitch/trunk/libs/freetdm/src/include/freetdm.h (17417 => 17418)


--- freeswitch/trunk/libs/freetdm/src/include/freetdm.h	2010-04-27 20:12:22 UTC (rev 17417)
+++ freeswitch/trunk/libs/freetdm/src/include/freetdm.h	2010-04-27 21:21:57 UTC (rev 17418)
@@ -614,10 +614,11 @@
 	float txgain;
 };
 
-struct ftdm_channel_config {
+struct ftdm_channel_config {	
 	char name[FTDM_MAX_NAME_STR_SZ];
 	char number[FTDM_MAX_NUMBER_STR_SZ];
 	char group_name[FTDM_MAX_NAME_STR_SZ];
+	ftdm_chan_type_t type;
 	float rxgain;
 	float txgain;
 };
@@ -843,7 +844,7 @@
 FT_DECLARE(ftdm_status_t) ftdm_conf_node_destroy(ftdm_conf_node_t *node);
 
 
-FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char *str, ftdm_channel_config_t *chan_config, ftdm_chan_type_t type, unsigned *configured);
+FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char *str, ftdm_channel_config_t *chan_config, unsigned *configured);
 
 FIO_CODEC_FUNCTION(fio_slin2ulaw);
 FIO_CODEC_FUNCTION(fio_ulaw2slin);