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) {
}
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);
}
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);
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, ...);
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);
}