ftmod_isdn: Use span trunk_mode to select default mode and print warning if final modes do not match.
Same as ftmod_libpri. Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
This commit is contained in:
parent
200438d18f
commit
890ecc6d45
|
@ -2659,11 +2659,24 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(isdn_configure_span)
|
|||
|
||||
isdn_data = malloc(sizeof(*isdn_data));
|
||||
assert(isdn_data != NULL);
|
||||
memset(isdn_data, 0, sizeof(*isdn_data));
|
||||
|
||||
isdn_data->mode = Q931_TE;
|
||||
memset(isdn_data, 0, sizeof(*isdn_data));
|
||||
dialect = Q931_Dialect_Q931;
|
||||
|
||||
/* Use trunk_mode span parameter to set default */
|
||||
switch (ftdm_span_get_trunk_mode(span)) {
|
||||
case FTDM_TRUNK_MODE_NET:
|
||||
ftdm_log(FTDM_LOG_INFO, "Span '%s' [s%d] defaulting to NET mode\n",
|
||||
ftdm_span_get_name(span), ftdm_span_get_id(span));
|
||||
isdn_data->mode = Q931_NT;
|
||||
break;
|
||||
default:
|
||||
ftdm_log(FTDM_LOG_INFO, "Span '%s' [s%d] defaulting to USER mode\n",
|
||||
ftdm_span_get_name(span), ftdm_span_get_id(span));
|
||||
isdn_data->mode = Q931_TE;
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0; ftdm_parameters[i].var; i++) {
|
||||
const char *var = ftdm_parameters[i].var;
|
||||
const char *val = ftdm_parameters[i].val;
|
||||
|
@ -2727,6 +2740,16 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(isdn_configure_span)
|
|||
digit_timeout = DEFAULT_DIGIT_TIMEOUT;
|
||||
}
|
||||
|
||||
/* Check if modes match and log a message if they do not. Just to be on the safe side. */
|
||||
if (isdn_data->mode == Q931_TE && ftdm_span_get_trunk_mode(span) == FTDM_TRUNK_MODE_NET) {
|
||||
ftdm_log(FTDM_LOG_WARNING, "Span '%s' signalling set up for TE/CPE/USER mode, while port is running in NT/NET mode. You may want to check your 'trunk_mode' settings.\n",
|
||||
ftdm_span_get_name(span));
|
||||
}
|
||||
else if (isdn_data->mode == Q931_NT && ftdm_span_get_trunk_mode(span) == FTDM_TRUNK_MODE_CPE) {
|
||||
ftdm_log(FTDM_LOG_WARNING, "Span '%s' signalling set up for NT/NET mode, while port is running in TE/CPE/USER mode. You may want to check your 'trunk_mode' settings.\n",
|
||||
ftdm_span_get_name(span));
|
||||
}
|
||||
|
||||
/* allocate per b-chan data */
|
||||
if (isdn_data->mode == Q931_NT) {
|
||||
ftdm_isdn_bchan_data_t *data;
|
||||
|
|
Loading…
Reference in New Issue