Fixes to support QSIG over T1
This commit is contained in:
parent
804fc61a6c
commit
df4a18dcba
|
@ -84,6 +84,8 @@ static ftdm_status_t parse_switchtype(const char* switch_name, ftdm_span_t *span
|
||||||
signal_data->switchtype = SNGISDN_SWITCH_4ESS;
|
signal_data->switchtype = SNGISDN_SWITCH_4ESS;
|
||||||
} else if (!strcasecmp(switch_name, "dms100")) {
|
} else if (!strcasecmp(switch_name, "dms100")) {
|
||||||
signal_data->switchtype = SNGISDN_SWITCH_DMS100;
|
signal_data->switchtype = SNGISDN_SWITCH_DMS100;
|
||||||
|
} else if (!strcasecmp(switch_name, "qsig")) {
|
||||||
|
signal_data->switchtype = SNGISDN_SWITCH_QSIG;
|
||||||
} else {
|
} else {
|
||||||
ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported switchtype %s for trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type));
|
ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported switchtype %s for trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type));
|
||||||
return FTDM_FAIL;
|
return FTDM_FAIL;
|
||||||
|
|
|
@ -667,25 +667,33 @@ ftdm_status_t sngisdn_stack_cfg_q931_dlsap(ftdm_span_t *span)
|
||||||
cfg.t.cfg.s.inDLSAP.maxBSrvCnt = 2;
|
cfg.t.cfg.s.inDLSAP.maxBSrvCnt = 2;
|
||||||
cfg.t.cfg.s.inDLSAP.maxDSrvCnt = 2;
|
cfg.t.cfg.s.inDLSAP.maxDSrvCnt = 2;
|
||||||
#endif /* ISDN_SRV */
|
#endif /* ISDN_SRV */
|
||||||
|
|
||||||
if (signal_data->signalling == SNGISDN_SIGNALING_NET) {
|
|
||||||
cfg.t.cfg.s.inDLSAP.ackOpt = TRUE;
|
|
||||||
cfg.t.cfg.s.inDLSAP.intType = NETWORK;
|
|
||||||
cfg.t.cfg.s.inDLSAP.clrGlr = FALSE; /* in case of glare, do not clear local call */
|
|
||||||
cfg.t.cfg.s.inDLSAP.statEnqOpt = TRUE;
|
|
||||||
|
|
||||||
if (signal_data->switchtype == SNGISDN_SWITCH_EUROISDN ||
|
if (signal_data->switchtype == SNGISDN_SWITCH_QSIG) {
|
||||||
signal_data->switchtype == SNGISDN_SWITCH_INSNET) {
|
cfg.t.cfg.s.inDLSAP.ackOpt = TRUE;
|
||||||
cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
|
cfg.t.cfg.s.inDLSAP.intType = SYM_USER;
|
||||||
} else {
|
|
||||||
cfg.t.cfg.s.inDLSAP.rstOpt = TRUE;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
cfg.t.cfg.s.inDLSAP.ackOpt = FALSE;
|
|
||||||
cfg.t.cfg.s.inDLSAP.intType = USER;
|
|
||||||
cfg.t.cfg.s.inDLSAP.clrGlr = TRUE; /* in case of glare, clear local call */
|
cfg.t.cfg.s.inDLSAP.clrGlr = TRUE; /* in case of glare, clear local call */
|
||||||
cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE;
|
cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE;
|
||||||
cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
|
cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
|
||||||
|
} else {
|
||||||
|
if (signal_data->signalling == SNGISDN_SIGNALING_NET) {
|
||||||
|
cfg.t.cfg.s.inDLSAP.ackOpt = TRUE;
|
||||||
|
cfg.t.cfg.s.inDLSAP.intType = NETWORK;
|
||||||
|
cfg.t.cfg.s.inDLSAP.clrGlr = FALSE; /* in case of glare, do not clear local call */
|
||||||
|
cfg.t.cfg.s.inDLSAP.statEnqOpt = TRUE;
|
||||||
|
|
||||||
|
if (signal_data->switchtype == SNGISDN_SWITCH_EUROISDN ||
|
||||||
|
signal_data->switchtype == SNGISDN_SWITCH_INSNET) {
|
||||||
|
cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
|
||||||
|
} else {
|
||||||
|
cfg.t.cfg.s.inDLSAP.rstOpt = TRUE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cfg.t.cfg.s.inDLSAP.ackOpt = FALSE;
|
||||||
|
cfg.t.cfg.s.inDLSAP.intType = USER;
|
||||||
|
cfg.t.cfg.s.inDLSAP.clrGlr = TRUE; /* in case of glare, clear local call */
|
||||||
|
cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE;
|
||||||
|
cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Override the restart options if user selected that option */
|
/* Override the restart options if user selected that option */
|
||||||
|
|
Loading…
Reference in New Issue