From 99c17919d0c7c9392ffeb975bb82f66fbedb9d63 Mon Sep 17 00:00:00 2001 From: Ronny Nilsson <ronny.nilsson@iopsys.eu> Date: Thu, 2 May 2019 15:27:31 +0200 Subject: [PATCH] Send AST_FRAME_DTMF_BEGIN only to an active remote call. Ignore when user presses the R-button to switch back and forth between multiple parallel calls. --- channels/chan_brcm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c index d54a7720..19eecd84 100644 --- a/channels/chan_brcm.c +++ b/channels/chan_brcm.c @@ -1950,7 +1950,7 @@ void handle_dtmf(enum LINE_EVENT event, if (p->dtmf_first < 0) { p->dtmf_first = dtmf_button; ast_debug(9,"Pressed DTMF %s\n", dtmfMap->name); - if (owner && sub->channel_state == INCALL) { + if (owner && sub->channel_state == INCALL && !p->hf_detected) { // INCALL send_outgoing_dtmf(sub, owner, dtmf_button, AST_FRAME_DTMF_BEGIN); } @@ -1964,11 +1964,11 @@ void handle_dtmf(enum LINE_EVENT event, if (p->hf_detected) { ast_debug(2, "DTMF after HF\n"); p->hf_detected = 0; - /* HF while not in a call doesn't make sense */ if (sub->channel_state == INCALL && (brcm_in_callwaiting(p) || brcm_in_onhold(p) || brcm_in_conference(p))) { handle_hookflash(sub, sub_peer, owner, peer_owner); } else { + /* HF while not in a call doesn't make sense */ ast_debug(2, "DTMF after HF while not in call. \ state: %d, \ callwaiting: %d, \ -- GitLab