sprintf(var, "%d", sngss7_info->circuit->cic);
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 );
sngss7_add_var(sngss7_info, "ss7_opc", var);
+ */
if (siConEvnt->callRef.callId.pres) {
/* %x expect an unsigned int so as callId is a U32, casting to uint32_t
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_indicator");
if (!ftdm_strlen_zero(val)) {
redirInfo->redirInd.val = atoi(val);
+ redirInfo->redirInd.pres = 1;
bProceed = 1;
} else {
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Indicator\n");
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_orig");
if (!ftdm_strlen_zero(val)) {
redirInfo->origRedirReas.val = atoi(val);
+ redirInfo->origRedirReas.pres = 1;
bProceed = 1;
} else {
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Original Reasons\n");
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_count");
if (!ftdm_strlen_zero(val)) {
redirInfo->redirCnt.val = atoi(val);
+ redirInfo->redirCnt.pres= 1;
bProceed = 1;
} else {
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Count\n");
val = ftdm_usrmsg_get_var(ftdmchan->usrmsg, "ss7_rdinfo_reason");
if (!ftdm_strlen_zero(val)) {
redirInfo->redirReas.val = atoi(val);
+ redirInfo->redirReas.pres = 1;
bProceed = 1;
} else {
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "No user supplied Redirection Information on Redirection Reasons\n");