FreeTDM: fixing redirect information outgoing call bug
This commit is contained in:
parent
8eeb37a81b
commit
5ac80d3939
|
@ -252,8 +252,19 @@ ftdm_status_t handle_con_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circ
|
||||||
sprintf(var, "%d", sngss7_info->circuit->cic);
|
sprintf(var, "%d", sngss7_info->circuit->cic);
|
||||||
sngss7_add_var(sngss7_info, "ss7_cic", var);
|
sngss7_add_var(sngss7_info, "ss7_cic", var);
|
||||||
|
|
||||||
|
|
||||||
|
if (siConEvnt->orgPteCde.eh.pres) {
|
||||||
|
sprintf(var, "%d",(uint32_t)siConEvnt->orgPteCde.sigPointCode.val);
|
||||||
|
sngss7_add_var(sngss7_info, "ss7_opc", var);
|
||||||
|
SS7_DEBUG_CHAN(ftdmchan, " OPC = d%\n", (uint32_t)siConEvnt->orgPteCde.sigPointCode.val);
|
||||||
|
} else {
|
||||||
|
SS7_DEBUG_CHAN(ftdmchan, "No OPC information in IAM%s\n", " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* original code, should be removed after review.
|
||||||
sprintf(var, "%d", g_ftdm_sngss7_data.cfg.isupIntf[sngss7_info->circuit->infId].spc );
|
sprintf(var, "%d", g_ftdm_sngss7_data.cfg.isupIntf[sngss7_info->circuit->infId].spc );
|
||||||
sngss7_add_var(sngss7_info, "ss7_opc", var);
|
sngss7_add_var(sngss7_info, "ss7_opc", var);
|
||||||
|
*/
|
||||||
|
|
||||||
if (siConEvnt->callRef.callId.pres) {
|
if (siConEvnt->callRef.callId.pres) {
|
||||||
/* %x expect an unsigned int so as callId is a U32, casting to uint32_t
|
/* %x expect an unsigned int so as callId is a U32, casting to uint32_t
|
||||||
|
|
|
@ -585,6 +585,7 @@ ftdm_status_t copy_redirgInfo_to_sngss7(ftdm_channel_t *ftdmchan, SiRedirInfo *r
|
||||||
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_indicator");
|
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_indicator");
|
||||||
if (!ftdm_strlen_zero(val)) {
|
if (!ftdm_strlen_zero(val)) {
|
||||||
redirInfo->redirInd.val = atoi(val);
|
redirInfo->redirInd.val = atoi(val);
|
||||||
|
redirInfo->redirInd.pres = 1;
|
||||||
bProceed = 1;
|
bProceed = 1;
|
||||||
} else {
|
} else {
|
||||||
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Indicator\n");
|
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Indicator\n");
|
||||||
|
@ -593,6 +594,7 @@ ftdm_status_t copy_redirgInfo_to_sngss7(ftdm_channel_t *ftdmchan, SiRedirInfo *r
|
||||||
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_orig");
|
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_orig");
|
||||||
if (!ftdm_strlen_zero(val)) {
|
if (!ftdm_strlen_zero(val)) {
|
||||||
redirInfo->origRedirReas.val = atoi(val);
|
redirInfo->origRedirReas.val = atoi(val);
|
||||||
|
redirInfo->origRedirReas.pres = 1;
|
||||||
bProceed = 1;
|
bProceed = 1;
|
||||||
} else {
|
} else {
|
||||||
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Original Reasons\n");
|
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Original Reasons\n");
|
||||||
|
@ -601,6 +603,7 @@ ftdm_status_t copy_redirgInfo_to_sngss7(ftdm_channel_t *ftdmchan, SiRedirInfo *r
|
||||||
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_count");
|
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_count");
|
||||||
if (!ftdm_strlen_zero(val)) {
|
if (!ftdm_strlen_zero(val)) {
|
||||||
redirInfo->redirCnt.val = atoi(val);
|
redirInfo->redirCnt.val = atoi(val);
|
||||||
|
redirInfo->redirCnt.pres= 1;
|
||||||
bProceed = 1;
|
bProceed = 1;
|
||||||
} else {
|
} else {
|
||||||
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Count\n");
|
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Count\n");
|
||||||
|
@ -609,6 +612,7 @@ ftdm_status_t copy_redirgInfo_to_sngss7(ftdm_channel_t *ftdmchan, SiRedirInfo *r
|
||||||
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_reason");
|
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_reason");
|
||||||
if (!ftdm_strlen_zero(val)) {
|
if (!ftdm_strlen_zero(val)) {
|
||||||
redirInfo->redirReas.val = atoi(val);
|
redirInfo->redirReas.val = atoi(val);
|
||||||
|
redirInfo->redirReas.pres = 1;
|
||||||
bProceed = 1;
|
bProceed = 1;
|
||||||
} else {
|
} else {
|
||||||
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Reasons\n");
|
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Reasons\n");
|
||||||
|
|
Loading…
Reference in New Issue