]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
can't win
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 21 Oct 2008 16:27:57 +0000 (16:27 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 21 Oct 2008 16:27:57 +0000 (16:27 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10090 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/mod_sofia.c

index 0d38077363ffecd508ab0ad0c71aa82727671301..46a1c3e90abfaa731838022186048a0c058f50e4 100644 (file)
@@ -230,7 +230,11 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session)
        switch_channel_t *channel = switch_core_session_get_channel(session);
        switch_call_cause_t cause = switch_channel_get_cause(channel);
        int sip_cause = hangup_cause_to_sip(cause);
-       const char *ps_cause = switch_channel_get_variable(channel, SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE);
+       const char *ps_cause = NULL, *use_my_cause;
+
+       if (!((use_my_cause = switch_channel_get_variable(channel, "sip_ignore_remote_cause")) && switch_true(use_my_cause))) {
+               ps_cause = switch_channel_get_variable(channel, SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE);
+       }
 
        if (!switch_strlen_zero(ps_cause) && (!strncasecmp(ps_cause, "sip:", 4) || !strncasecmp(ps_cause, "sips:", 5))) {
                int new_cause = atoi(sofia_glue_strip_proto(ps_cause));