diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp
index 2ab4717bc15a31ea97cb9e637d677ebeaea8cd2e..aab58e0acfc02d02ffdf9e6cc0e81cd9a40e4d4a 100644
--- a/test/unitTest/call/conference.cpp
+++ b/test/unitTest/call/conference.cpp
@@ -24,6 +24,7 @@
 #include <string>
 
 #include "manager.h"
+#include "client/videomanager.h"
 #include "jamidht/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
@@ -465,19 +466,33 @@ ConferenceTest::testCreateParticipantsSinks()
 
     startConference();
 
-    auto infos = DRing::getConferenceInfos(aliceId, confId);
+    auto expectedNumberOfParticipants = 3;
 
-    CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&] {
-        bool sinksStatus = true;
-        for (auto& info : infos) {
-            if (info["uri"] == bobUri) {
-                sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr);
-            } else if (info["uri"] == carlaUri) {
-                sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr);
+    // Check participants number
+    CPPUNIT_ASSERT(cv.wait_for(lk, 30s, [&]{ return pInfos_.size() == expectedNumberOfParticipants; }));
+
+    if (not jami::getVideoDeviceMonitor().getDeviceList().empty()) {
+        JAMI_INFO() << "Check sinks if video device available.";
+        for (auto& info : pInfos_) {
+            auto uri = string_remove_suffix(info["uri"], '@');
+            if (uri == bobUri) {
+                CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) != nullptr; }));
+            } else if (uri == carlaUri) {
+                CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) != nullptr; }));
             }
         }
-        return sinksStatus;
-    }));
+    } else {
+        JAMI_INFO() << "Check sinks if no video device available.";
+        for (auto& info : pInfos_) {
+            auto uri = string_remove_suffix(info["uri"], '@');
+            if (uri == bobUri) {
+                CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) == nullptr; }));
+            } else if (uri == carlaUri) {
+                CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) == nullptr; }));
+            }
+        }
+    }
+
 
     hangupConference();