signal_data->overlap_dial = SNGISDN_OPT_DEFAULT;
signal_data->setup_arb = SNGISDN_OPT_DEFAULT;
signal_data->timer_t3 = 8;
+ signal_data->restart_opt = SNGISDN_OPT_DEFAULT;
signal_data->link_id = span->span_id;
span->default_caller_data.bearer_capability = IN_ITC_SPEECH;
ftdm_span_set_bearer_capability(val, &span->default_caller_data.bearer_capability);
} else if (!strcasecmp(var, "outbound-bearer_layer1")) {
ftdm_span_set_bearer_layer1(val, &span->default_caller_data.bearer_layer1);
+ } else if (!strcasecmp(var, "channel-restart-on-link-up")) {
+ if (!strcasecmp(val, "yes")) {
+ signal_data->restart_opt = SNGISDN_OPT_TRUE;
+ } else if (!strcasecmp(val, "no")) {
+ signal_data->restart_opt = SNGISDN_OPT_FALSE;
+ } else {
+ ftdm_log(FTDM_LOG_ERROR, "Invalid value for parameter:%s:%s\n", var, val);
+ }
+
} else if (!strcasecmp(var, "local-number")) {
if (add_local_number(val, span) != FTDM_SUCCESS) {
return FTDM_FAIL;
cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE;
cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
}
-
+
+ /* Override the restart options if user selected that option */
+ if (signal_data->restart_opt != SNGISDN_OPT_DEFAULT) {
+ if (signal_data->restart_opt == SNGISDN_OPT_TRUE) {
+ cfg.t.cfg.s.inDLSAP.rstOpt = TRUE;
+ } else {
+ cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
+ }
+ }
+
for (i = 0; i < IN_MAXBCHNL; i++)
{
cfg.t.cfg.s.inDLSAP.bProf[i].profNmb = 0;