diff --git a/src/switch_core_media.c b/src/switch_core_media.c index c0163f07e6..a04e1c6c90 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -8943,11 +8943,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 681bd4d173..3a02f2f441 100644 --- a/src/switch_core_media_bug.c +++ b/src/switch_core_media_bug.c @@ -854,6 +854,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; }