提交 b1cf0d9a authored 作者: Stefan Knoblich's avatar Stefan Knoblich

ftmod_libpri: Check if a span really has a D-Channel.

Signed-off-by: 's avatarStefan Knoblich <s.knoblich@axsentis.de>
上级 ff7a6170
...@@ -1294,7 +1294,7 @@ static void *ftdm_libpri_run(ftdm_thread_t *me, void *obj) ...@@ -1294,7 +1294,7 @@ static void *ftdm_libpri_run(ftdm_thread_t *me, void *obj)
} }
} }
} }
if (!got_d) { if (!got_d || !isdn_data->dchan) {
ftdm_log(FTDM_LOG_ERROR, "Failed to get a D-channel in span %d\n", span->span_id); ftdm_log(FTDM_LOG_ERROR, "Failed to get a D-channel in span %d\n", span->span_id);
break; break;
} }
...@@ -1577,7 +1577,7 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span) ...@@ -1577,7 +1577,7 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span)
ftdm_span_set_trunk_type(span, FTDM_TRUNK_T1); ftdm_span_set_trunk_type(span, FTDM_TRUNK_T1);
} }
for(i = 1; i <= span->chan_count; i++) { for (i = 1; i <= span->chan_count; i++) {
if (span->channels[i]->type == FTDM_CHAN_TYPE_DQ921) { if (span->channels[i]->type == FTDM_CHAN_TYPE_DQ921) {
if (x > 1) { if (x > 1) {
snprintf(span->last_error, sizeof(span->last_error), "Span has more than 2 D-Channels!"); snprintf(span->last_error, sizeof(span->last_error), "Span has more than 2 D-Channels!");
...@@ -1590,16 +1590,15 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span) ...@@ -1590,16 +1590,15 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span)
x++; x++;
} }
#endif #endif
x++;
} }
} }
} }
#if 0
if (!x) { if (!x) {
snprintf(span->last_error, sizeof(span->last_error), "Span has no D-Channels!"); ftdm_log(FTDM_LOG_ERROR, "Span has no D-Channel!\n");
snprintf(span->last_error, sizeof(span->last_error), "Span has no D-Channel!");
return FTDM_FAIL; return FTDM_FAIL;
} }
#endif
isdn_data = ftdm_malloc(sizeof(*isdn_data)); isdn_data = ftdm_malloc(sizeof(*isdn_data));
assert(isdn_data != NULL); assert(isdn_data != NULL);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论