mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-15 16:39:14 +00:00
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));
|
isdn_data = malloc(sizeof(*isdn_data));
|
||||||
assert(isdn_data != NULL);
|
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;
|
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++) {
|
for (i = 0; ftdm_parameters[i].var; i++) {
|
||||||
const char *var = ftdm_parameters[i].var;
|
const char *var = ftdm_parameters[i].var;
|
||||||
const char *val = ftdm_parameters[i].val;
|
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;
|
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 */
|
/* allocate per b-chan data */
|
||||||
if (isdn_data->mode == Q931_NT) {
|
if (isdn_data->mode == Q931_NT) {
|
||||||
ftdm_isdn_bchan_data_t *data;
|
ftdm_isdn_bchan_data_t *data;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user