diff --git a/src/conference.cpp b/src/conference.cpp index 982624117151e57693bc5ba0e0fddb3cbbd3e079..df14909432cb962efbaaeb7b409f8994790169ea 100644 --- a/src/conference.cpp +++ b/src/conference.cpp @@ -184,6 +184,14 @@ void Conference::add(const std::string& participant_id) { if (participants_.insert(participant_id).second) { + // Check if participant was muted before conference + if (auto call = Manager::instance().callFactory.getCall<SIPCall>(participant_id)) { + if (call->isPeerMuted()) { + auto uri = call->getPeerNumber(); + uri = string_remove_suffix(uri, '@'); + participantsMuted_.emplace(uri); + } + } #ifdef ENABLE_VIDEO if (auto call = Manager::instance().callFactory.getCall<SIPCall>(participant_id)) { call->getVideoRtp().enterConference(this);