diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c index 19eecd8476504ec5d19433a606d8655aa78c7273..8b48af415750c8414cd7f9b3dfc447523b11ad37 100644 --- a/channels/chan_brcm.c +++ b/channels/chan_brcm.c @@ -574,11 +574,8 @@ static int brcm_indicate(struct ast_channel *ast, int condition, const void *dat //ast_mutex_lock(&sub->parent->lock); switch(condition) { case AST_CONTROL_UNHOLD: - //Asterisk (adaptive) jitter buffer causes one way audio - //This is a workaround until jitter buffer is handled by DSP. res = 0; //We still want asterisk core to play tone brcm_stop_dialtone(sub->parent); - ast_jb_destroy(ast); // Play a beep when unholding. ast_channel_lock(ast); @@ -599,7 +596,6 @@ static int brcm_indicate(struct ast_channel *ast, int condition, const void *dat case AST_CONTROL_UPDATE_RTP_PEER: case AST_CONTROL_SRCUPDATE: case AST_CONTROL_SRCCHANGE: - ast_jb_destroy(ast); break; case AST_CONTROL_RINGING: brcm_subchannel_set_state(sub, RINGBACK); @@ -743,10 +739,6 @@ static int brcm_finish_transfer(struct ast_channel *owner, struct brcm_subchanne //Do nothing. Let calls be up as they were before R4 was attempted (first call on hold, second call active) ast_log(LOG_NOTICE, "Remote transfer failed\n"); brcm_subchannel_set_state(p, INCALL); - - //Asterisk jitter buffer causes one way audio when going from unhold. - //This is a workaround until jitter buffer is handled by DSP. - ast_jb_destroy(owner); } } else { @@ -1721,11 +1713,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p /* Pick up old */ if (peer_owner) { brcm_unmute_connection(sub_peer); - - //Asterisk jitter buffer causes one way audio when going from unhold. - //This is a workaround until jitter buffer is handled by DSP. - ast_jb_destroy(peer_owner); - ast_queue_unhold(peer_owner); brcm_subchannel_set_state(sub_peer, INCALL); } @@ -1747,11 +1734,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p /* Pick up old */ if (peer_owner) { brcm_unmute_connection(sub_peer); - - //Asterisk jitter buffer causes one way audio when going from unhold. - //This is a workaround until jitter buffer is handled by DSP. - ast_jb_destroy(peer_owner); - ast_queue_unhold(peer_owner); brcm_subchannel_set_state(sub_peer, INCALL); } @@ -1824,11 +1806,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p /* Unhold inactive subchannel */ if (peer_owner) { brcm_unmute_connection(sub_peer); - - //Asterisk jitter buffer causes one way audio when going from unhold. - //This is a workaround until jitter buffer is handled by DSP. - ast_jb_destroy(peer_owner); - ast_queue_unhold(peer_owner); brcm_subchannel_set_state(sub_peer, INCALL); } @@ -1872,11 +1849,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p /* Unhold inactive subchannel */ if (peer_owner) { brcm_unmute_connection(sub_peer); - - //Asterisk jitter buffer causes one way audio when going from unhold. - //This is a workaround until jitter buffer is handled by DSP. - ast_jb_destroy(peer_owner); - ast_queue_unhold(peer_owner); brcm_subchannel_set_state(sub_peer, INCALL); } @@ -2103,14 +2075,6 @@ void send_outgoing_dtmf(struct brcm_subchannel *sub, struct ast_channel *owner, if (owner) { if (!drop_frame && (ast_channel_state(owner) == AST_STATE_UP || ast_channel_state(owner) == AST_STATE_RING)) { - if (fr.frametype == AST_FRAME_DTMF_BEGIN || fr.frametype == AST_FRAME_DTMF_END) { - //Asterisk jitter buffer causes one way audio when sending DTMF - //This is a workaround until jitter buffer is handled by DSP - ast_channel_lock(owner); - ast_jb_destroy(owner); - ast_channel_unlock(owner); - } - //if (fr.frametype == AST_FRAME_DTMF_BEGIN && fr.len > 0) { // /* BEGIN frames doesn't have duration in Asterisk, but they do in // the broadcom world. Since brcm by default sends the begin with @@ -2269,13 +2233,6 @@ static void audio_packet_handler(pe_packet_t *p) { if (owner) { if (!drop_frame && (ast_channel_state(owner) == AST_STATE_UP || ast_channel_state(owner) == AST_STATE_RING)) { struct ast_frame *cfr = NULL; - /* if (fr.frametype == AST_FRAME_DTMF_BEGIN || fr.frametype == AST_FRAME_DTMF_END) { */ - /* //Asterisk jitter buffer causes one way audio when sending DTMF */ - /* //This is a workaround until jitter buffer is handled by DSP */ - /* ast_channel_lock(owner); */ - /* ast_jb_destroy(owner); */ - /* ast_channel_unlock(owner); */ - /* } */ ast_queue_frame(owner, &fr); if (cfr) { ast_queue_frame(owner, cfr); @@ -2400,10 +2357,6 @@ static void *brcm_process_event(struct endpt_event *ev) { ast_debug(3, "Error deleting timer\n"); sub_peer->onhold_hangup_timer_id = -1; - //Asterisk jitter buffer causes one way audio when going from unhold. - //This is a workaround until jitter buffer is handled by DSP. - ast_jb_destroy(peer_owner); - brcm_subchannel_set_state(sub, CALLENDED); brcm_subchannel_set_state(sub_peer, INCALL); ast_queue_control(peer_owner, AST_CONTROL_ANSWER);