diff --git a/third-party/pjproject/patches/0011-Fixed-race-condition-between-session-timer-and-call-disconnection.patch b/third-party/pjproject/patches/0011-Fixed-race-condition-between-session-timer-and-call-disconnection.patch new file mode 100644 index 0000000000..70bec1218a --- /dev/null +++ b/third-party/pjproject/patches/0011-Fixed-race-condition-between-session-timer-and-call-disconnection.patch @@ -0,0 +1,24 @@ +From 39f7f61c247432a6a436f792135ee0f5713272fe Mon Sep 17 00:00:00 2001 +From: sauwming +Date: Thu, 6 Apr 2023 15:44:40 +0800 +Subject: [PATCH] Fixed race condition between session timer and call + disconnection + +--- + pjsip/src/pjsip-ua/sip_inv.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c +index cd4ee021b..26c61bef8 100644 +--- a/pjsip/src/pjsip-ua/sip_inv.c ++++ b/pjsip/src/pjsip-ua/sip_inv.c +@@ -3922,6 +3922,9 @@ static void inv_respond_incoming_bye( pjsip_inv_session *inv, + status = pjsip_dlg_send_response(inv->dlg, bye_tsx, tdata); + if (status != PJ_SUCCESS) return; + ++ /* End Session Timer */ ++ pjsip_timer_end_session(inv); ++ + /* Terminate session: */ + + if (inv->state != PJSIP_INV_STATE_DISCONNECTED) {