]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-4048 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 27 Mar 2012 15:18:08 +0000 (10:18 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 27 Mar 2012 15:18:08 +0000 (10:18 -0500)
src/mod/endpoints/mod_sofia/sofia.c

index fbb767adeebdbeec5fe0e654d1e4f7b4f04db322..6ddfbe50b4a95b90fab0c57a61b4ab111fd0270f 100644 (file)
@@ -4774,6 +4774,13 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status
                        return;
                }
 
+                if (status >= 500 && sip->sip_reason && sip->sip_reason->re_protocol && (!strcasecmp(sip->sip_reason->re_protocol, "Q.850")
+                               || !strcasecmp(sip->sip_reason->re_protocol, "FreeSWITCH")
+                               || !strcasecmp(sip->sip_reason->re_protocol, profile->username)) && sip->sip_reason->re_cause) {
+                       tech_pvt->q850_cause = atoi(sip->sip_reason->re_cause);
+                       switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Remote Reason: %d\n", tech_pvt->q850_cause);
+               } 
+
                sofia_glue_get_addr(de->data->e_msg, network_ip, sizeof(network_ip), &network_port);
 
                switch_channel_set_variable_printf(channel, "sip_local_network_addr", "%s", profile->extsipip ? profile->extsipip : profile->sipip);