diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 53ffead2bb..a85be9dde7 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -7857,11 +7857,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_receive_message(switch_core_se break; case SWITCH_MESSAGE_INDICATE_HARD_MUTE: - { - if (session->bugs) { + if (a_engine->rtp_session) { + if (session->bugs && msg->numeric_arg) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "%s has a media bug, hard mute not allowed.\n", switch_channel_get_name(session->channel)); - } else if (a_engine->rtp_session) { + } else { if (msg->numeric_arg) { switch_rtp_set_flag(a_engine->rtp_session, SWITCH_RTP_FLAG_MUTE); } else { diff --git a/src/switch_core_media_bug.c b/src/switch_core_media_bug.c index d6f7009097..6bcbcfe2d0 100644 --- a/src/switch_core_media_bug.c +++ b/src/switch_core_media_bug.c @@ -545,6 +545,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_bug_add(switch_core_session_t switch_event_fire(&event); } + switch_core_media_hard_mute(session, SWITCH_FALSE); + return SWITCH_STATUS_SUCCESS; }