switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Sending CANCEL to %s\n", switch_channel_get_name(channel));
if (!tech_pvt->got_bye) {
switch_channel_set_variable(channel, "sip_hangup_disposition", "send_cancel");
+ switch_channel_set_variable(channel, "sip_invite_failure_status", "487");
+ switch_channel_set_variable(channel, "sip_invite_failure_phrase", "CANCEL");
}
if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) {
nua_cancel(tech_pvt->nh,
if (sip && channel) {
switch_channel_set_variable(channel, "sip_hangup_disposition", "recv_cancel");
+ switch_channel_set_variable(channel, "sip_invite_failure_status", "487");
+ switch_channel_set_variable(channel, "sip_invite_failure_phrase", "CANCEL");
if (sip->sip_reason) {
char *reason_header = sip_header_as_string(nh->nh_home, (void *) sip->sip_reason);
tagi_t tags[])
{
char *call_info = NULL;
-
if (sip && session) {
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *uuid;
if (status >= 400) {
char status_str[5];
switch_snprintf(status_str, sizeof(status_str), "%d", status);
+ switch_channel_set_variable(channel, "sip_invite_failure_status", status_str);
+ switch_channel_set_variable(channel, "sip_invite_failure_phrase", phrase);
switch_channel_set_variable_partner(channel, "sip_invite_failure_status", status_str);
switch_channel_set_variable_partner(channel, "sip_invite_failure_phrase", phrase);
+ } else {
+ switch_channel_set_variable_partner(channel, "sip_invite_failure_status", NULL);
+ switch_channel_set_variable_partner(channel, "sip_invite_failure_phrase", NULL);
}
if (status >= 400 && sip->sip_reason && sip->sip_reason->re_protocol && (!strcasecmp(sip->sip_reason->re_protocol, "Q.850")