int chan_id = 0;
const char *name = NULL;
- ftdm_usrmsg_t usrmsg;
- memset(&usrmsg, 0, sizeof(ftdm_usrmsg_t));
-
-
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
case FTDM_CHAN_TYPE_CAS:
case FTDM_CHAN_TYPE_B:
{
- const char *sipvar;
+ const char *var = NULL;
ftdm_call_cause_t hcause = switch_channel_get_cause_q850(channel);
if (hcause < 1 || hcause > 127) {
hcause = FTDM_CAUSE_DESTINATION_OUT_OF_ORDER;
}
- sipvar = switch_channel_get_variable(channel, "ss7_rel_loc");
- if (sipvar) {
- ftdm_usrmsg_add_var(&usrmsg, "ss7_rel_loc", sipvar);
+ var = switch_channel_get_variable(channel, "ss7_rel_loc");
+ if (var) {
+ ftdm_usrmsg_t usrmsg;
+ memset(&usrmsg, 0, sizeof(ftdm_usrmsg_t));
+ ftdm_usrmsg_add_var(&usrmsg, "ss7_rel_loc", var);
+ ftdm_channel_call_hangup_with_cause_ex(tech_pvt->ftdmchan, hcause, &usrmsg);
+ } else {
+ ftdm_channel_call_hangup_with_cause(tech_pvt->ftdmchan, hcause);
}
- /*
- ftdm_channel_call_hangup_with_cause(tech_pvt->ftdmchan, hcause);
- */
- ftdm_channel_call_hangup_with_cause_ex(tech_pvt->ftdmchan, hcause, &usrmsg);
}
break;
default: