From f7e7f0629991fee30922192d6df1216037c8625e Mon Sep 17 00:00:00 2001 From: Hemlata Bhatt <hemlata.bhatt@iopsys.eu> Date: Wed, 24 Nov 2021 14:43:21 +0100 Subject: [PATCH] Fix for hangup in 3 way conference call --- channels/chan_brcm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c index 2c2d031868..8e7ffc903f 100644 --- a/channels/chan_brcm.c +++ b/channels/chan_brcm.c @@ -4391,11 +4391,13 @@ static int brcm_create_conference(struct brcm_pvt *p) // Move second call into first bridge and wait for it to finish. chanToKick[0] = second->owner; + pvt_lock(second->parent, "moving call to first bridge"); if(onholdBridge && secondBridge) res = ast_bridge_merge(onholdBridge, secondBridge, 0, chanToKick, 1); while(ast_bridge_find_by_id(second->conference_id)) sched_yield(); + pvt_unlock(second->parent); - // SIP calls need unhold sent to the bridge as well. + // SIP calls need unhold sent to the bridge as well. astFrame.frametype = AST_FRAME_CONTROL; astFrame.subclass.integer = AST_CONTROL_UNHOLD; ast_bridge_queue_everyone_else(onholdBridge, NULL, &astFrame); -- GitLab