Revision
17435
Author
moy
Date
2010-04-28 17:17:50 -0500 (Wed, 28 Apr 2010)

Log Message

freetdm: fix dchan libpri

Modified Paths

Diff

Modified: freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c (17434 => 17435)


--- freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c	2010-04-28 22:17:49 UTC (rev 17434)
+++ freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c	2010-04-28 22:17:50 UTC (rev 17435)
@@ -950,7 +950,8 @@
 	ftdm_channel_t *ftdmchan;
 
 	ftdm_log(FTDM_LOG_NOTICE, "-- Restarting %d:%d\n", spri->span->span_id, pevent->restart.channel);
-
+	
+	spri->dchan->state = FTDM_CHANNEL_STATE_UP;
 	ftdmchan = span->channels[pevent->restart.channel];
 
 	if (!ftdmchan) {
@@ -1132,6 +1133,7 @@
 		}
 
 		ftdm_log(FTDM_LOG_CRIT, "PRI down on span %d\n", isdn_data->spri.span->span_id);
+		isdn_data->spri.dchan->state = FTDM_CHANNEL_STATE_DOWN;
 
 		if (!down) {
 			ftdm_set_state_all(span, FTDM_CHANNEL_STATE_RESTART);

Modified: freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c (17434 => 17435)


--- freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c	2010-04-28 22:17:49 UTC (rev 17434)
+++ freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c	2010-04-28 22:17:50 UTC (rev 17435)
@@ -950,23 +950,15 @@
 	}
 
 	if (alarms & WAN_TE_BIT_ALARM_AIS) {
-		ftdmchan->alarm_flags |= FTDM_ALARM_AIS;
 		ftdmchan->alarm_flags |= FTDM_ALARM_BLUE;
 		alarms &= ~WAN_TE_BIT_ALARM_AIS;
 	}
 
 	if (alarms & WAN_TE_BIT_ALARM_RAI) {
-		ftdmchan->alarm_flags |= FTDM_ALARM_RAI;
 		ftdmchan->alarm_flags |= FTDM_ALARM_YELLOW;
 		alarms &= ~WAN_TE_BIT_ALARM_RAI;
 	}
 
-	/* still missing to map:
-	 * FTDM_ALARM_RECOVER
-	 * FTDM_ALARM_LOOPBACK
-	 * FTDM_ALARM_NOTOPEN
-	 * */
-
 	/* if we still have alarms that we did not map, set the general alarm */
 	if (alarms) {
 		ftdm_log(FTDM_LOG_DEBUG, "Unmapped wanpipe alarms: %d\n", alarms);

Modified: freeswitch/trunk/libs/freetdm/src/include/freetdm.h (17434 => 17435)


--- freeswitch/trunk/libs/freetdm/src/include/freetdm.h	2010-04-28 22:17:49 UTC (rev 17434)
+++ freeswitch/trunk/libs/freetdm/src/include/freetdm.h	2010-04-28 22:17:50 UTC (rev 17435)
@@ -175,6 +175,7 @@
 FTDM_STR2ENUM_P(ftdm_str2ftdm_chan_type, ftdm_chan_type2str, ftdm_chan_type_t)
 
 #define FTDM_IS_VOICE_CHANNEL(ftdm_chan) ((ftdm_chan)->type != FTDM_CHAN_TYPE_DQ921 && (ftdm_chan)->type != FTDM_CHAN_TYPE_DQ931)
+#define FTDM_IS_DCHAN(ftdm_chan) ((ftdm_chan)->type == FTDM_CHAN_TYPE_DQ921 || (ftdm_chan)->type == FTDM_CHAN_TYPE_DQ931)
 
 typedef void (*ftdm_logger_t)(const char *file, const char *func, int line, int level, const char *fmt, ...);
 

Modified: freeswitch/trunk/libs/freetdm/src/include/private/ftdm_core.h (17434 => 17435)


--- freeswitch/trunk/libs/freetdm/src/include/private/ftdm_core.h	2010-04-28 22:17:49 UTC (rev 17434)
+++ freeswitch/trunk/libs/freetdm/src/include/private/ftdm_core.h	2010-04-28 22:17:50 UTC (rev 17435)
@@ -647,7 +647,9 @@
 	uint32_t j;
 	ftdm_mutex_lock(span->mutex);
 	for(j = 1; j <= span->chan_count; j++) {
-		ftdm_set_state_locked((span->channels[j]), state);
+		if (!FTDM_IS_DCHAN(span->channels[j])) {
+			ftdm_set_state_locked((span->channels[j]), state);
+		}
 	}
 	ftdm_mutex_unlock(span->mutex);
 }