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);
- switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CallReference", "%d", channel_caller_data->call_reference);
+
+ var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_callref");
+ if (!ftdm_strlen_zero(var_value)) {
+ switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CallReference", "%s", var_value);
+ }
var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_opc");
if (!ftdm_strlen_zero(var_value)) {
sngss7_add_var(sngss7_info, "ss7_opc", var);
if (siConEvnt->callRef.callId.pres) {
- ftdmchan->caller_data.call_reference = (unsigned int)siConEvnt->callRef.callId.val;
- } else {
- ftdmchan->caller_data.call_reference = 0;
- }
+ sprintf(var, "%x", siConEvnt->callRef.callId.val);
+ sngss7_add_var(sngss7_info, "ss7_callref", var);
+ }
if (sngss7_info->circuit->transparent_iam) {
sngss7_save_iam(ftdmchan, siConEvnt);