提交 7a598e8f authored 作者: David Yat Sin's avatar David Yat Sin

Added option for Dynamic TEI on BRI PTP

上级 5f0d27fd
...@@ -262,6 +262,7 @@ typedef struct sngisdn_span_data { ...@@ -262,6 +262,7 @@ typedef struct sngisdn_span_data {
uint8_t raw_trace_q921; /* TODO: combine with trace_flags */ uint8_t raw_trace_q921; /* TODO: combine with trace_flags */
uint8_t timer_t3; uint8_t timer_t3;
uint8_t restart_opt; uint8_t restart_opt;
uint8_t dynamic_tei;
uint8_t restart_timeout; uint8_t restart_timeout;
uint8_t force_sending_complete; uint8_t force_sending_complete;
char* local_numbers[SNGISDN_NUM_LOCAL_NUMBERS]; char* local_numbers[SNGISDN_NUM_LOCAL_NUMBERS];
......
...@@ -284,6 +284,7 @@ ftdm_status_t ftmod_isdn_parse_cfg(ftdm_conf_parameter_t *ftdm_parameters, ftdm_ ...@@ -284,6 +284,7 @@ ftdm_status_t ftmod_isdn_parse_cfg(ftdm_conf_parameter_t *ftdm_parameters, ftdm_
signal_data->ignore_cause_value = SNGISDN_OPT_DEFAULT; signal_data->ignore_cause_value = SNGISDN_OPT_DEFAULT;
signal_data->timer_t3 = 8; signal_data->timer_t3 = 8;
signal_data->restart_opt = SNGISDN_OPT_DEFAULT; signal_data->restart_opt = SNGISDN_OPT_DEFAULT;
signal_data->dynamic_tei = SNGISDN_OPT_DEFAULT;
signal_data->link_id = span->span_id; signal_data->link_id = span->span_id;
signal_data->transfer_timeout = 20000; signal_data->transfer_timeout = 20000;
signal_data->att_remove_dtmf = SNGISDN_OPT_DEFAULT; signal_data->att_remove_dtmf = SNGISDN_OPT_DEFAULT;
...@@ -361,7 +362,9 @@ ftdm_status_t ftmod_isdn_parse_cfg(ftdm_conf_parameter_t *ftdm_parameters, ftdm_ ...@@ -361,7 +362,9 @@ ftdm_status_t ftmod_isdn_parse_cfg(ftdm_conf_parameter_t *ftdm_parameters, ftdm_
parse_yesno(var, val, &signal_data->restart_opt); parse_yesno(var, val, &signal_data->restart_opt);
} else if (!strcasecmp(var, "channel-restart-timeout")) { } else if (!strcasecmp(var, "channel-restart-timeout")) {
signal_data->restart_timeout = atoi(val); signal_data->restart_timeout = atoi(val);
} else if (!strcasecmp(var, "local-number")) { } else if (!strcasecmp(var, "dynamic-tei")) {
parse_yesno(var, val, &signal_data->dynamic_tei);
} else if (!strcasecmp(var, "local-number")) {
if (add_local_number(val, span) != FTDM_SUCCESS) { if (add_local_number(val, span) != FTDM_SUCCESS) {
return FTDM_FAIL; return FTDM_FAIL;
} }
......
...@@ -846,7 +846,7 @@ ftdm_status_t sngisdn_stack_cfg_q931_dlsap(ftdm_span_t *span) ...@@ -846,7 +846,7 @@ ftdm_status_t sngisdn_stack_cfg_q931_dlsap(ftdm_span_t *span)
cfg.t.cfg.s.inDLSAP.dChannelNum = 0; /* Unused for BRI */ cfg.t.cfg.s.inDLSAP.dChannelNum = 0; /* Unused for BRI */
cfg.t.cfg.s.inDLSAP.nmbBearChan = NUM_BRI_CHANNELS_PER_SPAN; cfg.t.cfg.s.inDLSAP.nmbBearChan = NUM_BRI_CHANNELS_PER_SPAN;
cfg.t.cfg.s.inDLSAP.firstBChanNum = 1; cfg.t.cfg.s.inDLSAP.firstBChanNum = 1;
cfg.t.cfg.s.inDLSAP.callRefLen = 1; cfg.t.cfg.s.inDLSAP.callRefLen = 1;
cfg.t.cfg.s.inDLSAP.teiAlloc = IN_STATIC; cfg.t.cfg.s.inDLSAP.teiAlloc = IN_STATIC;
cfg.t.cfg.s.inDLSAP.intCfg = IN_INTCFG_PTPT; cfg.t.cfg.s.inDLSAP.intCfg = IN_INTCFG_PTPT;
break; break;
...@@ -863,6 +863,12 @@ ftdm_status_t sngisdn_stack_cfg_q931_dlsap(ftdm_span_t *span) ...@@ -863,6 +863,12 @@ ftdm_status_t sngisdn_stack_cfg_q931_dlsap(ftdm_span_t *span)
return FTDM_FAIL; return FTDM_FAIL;
} }
/* Override TEI teiAlloc Option if user specified it */
if (signal_data->dynamic_tei != SNGISDN_OPT_DEFAULT ) {
ftdm_log(FTDM_LOG_DEBUG, "%s: TEI allocation set to %s\n", (signal_data->dynamic_tei == SNGISDN_OPT_TRUE)? "dynamic": "static");
cfg.t.cfg.s.inDLSAP.teiAlloc = (signal_data->dynamic_tei==SNGISDN_OPT_TRUE)?IN_DYNAMIC:IN_STATIC;
}
if (sng_isdn_q931_config(&pst, &cfg)) { if (sng_isdn_q931_config(&pst, &cfg)) {
return FTDM_FAIL; return FTDM_FAIL;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论