From c4912820440da7932a9af0d86a0a2fa57256dfde Mon Sep 17 00:00:00 2001
From: Hemlata Bhatt <hemlata.bhatt@iopsys.eu>
Date: Fri, 28 May 2021 10:20:36 +0200
Subject: [PATCH] Issue 5216 : Line get meesy if missed a call

---
 channels/chan_brcm.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c
index fadbd81769..c0bf0462c5 100644
--- a/channels/chan_brcm.c
+++ b/channels/chan_brcm.c
@@ -901,8 +901,13 @@ static int brcm_hangup(struct ast_channel *ast)
 	 * isn't called again when going on-hook
 	 */
 	if(p->dialtone != DIALTONE_HOWLER && sub->channel_state != ONHOOK) {
-		sub->channel_state = CALLENDED;
-		ast_debug(6, "Setting channel state to %s\n", state2str(sub->channel_state));
+	        ast_debug(6, "Setting channel state to %s\n", state2str(sub->channel_state));
+               /*In case the call ends before connecting ,move the party to ONHOOK state Since its already on ONHOOK ,
+                we never get on ONHOOK event again*/
+               if (sub->channel_state == RINGING)
+                    sub->channel_state = ONHOOK;
+               else
+		    sub->channel_state = CALLENDED;
 	}
 
 	if ( sub->conference_initiator && brcm_in_conference(p)) {
-- 
GitLab