From: Ken Date: Tue, 7 Jun 2022 16:56:54 +0000 (-0500) Subject: [mod_sofia] on call term optionally ignore Q.850 Reason X-Git-Tag: v1.10.8^2~55^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04df9c12f7e1a786875a6f3299dc766c314b73c1;p=thirdparty%2Ffreeswitch.git [mod_sofia] on call term optionally ignore Q.850 Reason Currently SIP termination messages with Q.850 override the SIP reason. Add chanvar ignore_q850_reason to ignore the Q.850 reason and keep the SIP Reason Code. Using the chan var avoids unexpected changes in behavior. Co-authored-by: Brian West --- diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 5066a13ef8..09d877527a 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -8718,7 +8718,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, sofia_clear_flag_locked(tech_pvt, TFLAG_NOHUP); } else if (switch_channel_up(channel)) { int cause; - if (tech_pvt->q850_cause) { + if (tech_pvt->q850_cause && !switch_channel_var_true(channel, "ignore_q850_reason")) { cause = tech_pvt->q850_cause; } else { cause = sofia_glue_sip_cause_to_freeswitch(status);