switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-Screen", "%d", channel_caller_data->screen);
switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-Presentation", "%d", channel_caller_data->pres);
+
+ var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_opc");
+ if (!ftdm_strlen_zero(var_value)) {
+ switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-OPC", "%s", var_value);
+ }
+
+ var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_lac");
+ if (!ftdm_strlen_zero(var_value)) {
+ switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-LAC", "%s", var_value);
+ }
+
+ var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_crn");
+ if (!ftdm_strlen_zero(var_value)) {
+ switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CRN", "%s", var_value);
+ }
}
/* Add any call variable to the dial plan */
sprintf(var, "%d", sngss7_info->circuit->cic);
sngss7_add_var(sngss7_info, "ss7_cic", var);
+ 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) {
+ sprintf(var, "%u", (unsigned int)siConEvnt->callRef.callId.val);
+ sngss7_add_var(sngss7_info, "ss7_crn", var);
+ }
+
if (sngss7_info->circuit->transparent_iam) {
sngss7_save_iam(ftdmchan, siConEvnt);
}