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_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 */
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);
+ ftdmchan->caller_data.call_reference = (unsigned int)siConEvnt->callRef.callId.val;
+ } else {
+ ftdmchan->caller_data.call_reference = 0;
}
if (sngss7_info->circuit->transparent_iam) {
/* user information layer 1 protocol */
ftdm_user_layer1_prot_t bearer_layer1;
ftdm_calling_party_category_t cpc; /*!< Calling party category */
+ uint32_t call_reference;
ftdm_channel_t *fchan; /*!< FreeTDM channel associated (can be NULL) */