diff --git a/src/manager.cpp b/src/manager.cpp index 81f03376ee9cbcafcccab7e66fef206e8593f0db..4eeebe8e0d301dbb1ad0f3bb33d596bd48babe1d 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -1431,7 +1431,10 @@ Manager::joinParticipant(const std::string& accountId, return false; } - auto conf = std::make_shared<Conference>(account); + auto mediaAttr = call1->getMediaAttributeList(); + if (mediaAttr.empty()) + mediaAttr = call2->getMediaAttributeList(); + auto conf = std::make_shared<Conference>(account, "", true, mediaAttr); account->attach(conf); emitSignal<libjami::CallSignal::ConferenceCreated>(account->getAccountID(), conf->getConfId()); diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp index 178d87a8fdfd390228f8d249e15e7ec1598ae7ae..46e3aeb3f5fd78c4990308dfeff8833b22e3a98f 100644 --- a/test/unitTest/call/conference.cpp +++ b/test/unitTest/call/conference.cpp @@ -859,9 +859,25 @@ void ConferenceTest::testAudioConferenceConfInfo() { registerSignalHandlers(); + auto aliceAccount = Manager::instance().getAccount<JamiAccount>(aliceId); + auto aliceUri = aliceAccount->getUsername(); startConference(true); + // Check that alice's video is muted + auto aliceVideoMuted = [&]() { + int result = 0; + std::lock_guard<std::mutex> lock(pInfosMtx_); + for (auto i = 0u; i < pInfos_.size(); ++i) { + if (pInfos_[i]["uri"].find(aliceUri) != std::string::npos + && pInfos_[i]["videoMuted"] == "true" + && pInfos_[i]["sinkId"] == "host_video_0") + result += 1; + } + return result; + }; + CPPUNIT_ASSERT(cv.wait_for(lk, 10s, [&] { return aliceVideoMuted() == 1; })); + libjami::unregisterSignalHandlers(); }