From ce19c70ec7ca6cd6a7a12347a5acc0a282432c50 Mon Sep 17 00:00:00 2001 From: Razvan Crainea Date: Wed, 23 Oct 2024 16:47:10 +0300 Subject: [PATCH] b2b_logic: do not discard a recognized cross-BYE --- modules/b2b_logic/bridging.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/b2b_logic/bridging.c b/modules/b2b_logic/bridging.c index c2cdae0443e..94de42fef92 100644 --- a/modules/b2b_logic/bridging.c +++ b/modules/b2b_logic/bridging.c @@ -386,6 +386,8 @@ int process_bridge_bye(struct sip_msg* msg, b2bl_tuple_t* tuple, entity && tuple->bridge_initiator == entity) { entity_no = 3; // Bridge initiator + } else if (entity && entity->disconnected) { + entity_no = -1; // Probably a cross-bye - reply and don't do anything } else { entity_no = bridge_get_entityno(tuple, entity); if(entity_no < 0) @@ -404,7 +406,8 @@ int process_bridge_bye(struct sip_msg* msg, b2bl_tuple_t* tuple, rpl_data.text =&ok; b2b_api.send_reply(&rpl_data); - return process_bridge_dialog_end(tuple, hash_index, entity_no, entity); + return (entity_no < 0 ? 0: + process_bridge_dialog_end(tuple, hash_index, entity_no, entity)); } int process_bridge_negreply(b2bl_tuple_t* tuple,