diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c index fadbd81769c0c3253c3178c8a5c33a6192fd5189..c0bf0462c569d12fc192db2f5f0b21ef4185079d 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)) {