diff --git a/src/manager.cpp b/src/manager.cpp
index c784db74ccb46f70b6e8642adc81f948e4b4d0a9..3867e06e614841f10bc8007d289cb4fbbc354430 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -743,7 +743,7 @@ Manager::setAutoAnswer(bool enable)
 }
 
 void
-Manager::init(const std::string& config_file)
+Manager::init(const std::string& config_file, libjami::InitFlag flags)
 {
     // FIXME: this is no good
     initialized = true;
@@ -841,7 +841,7 @@ Manager::init(const std::string& config_file)
         }
     }
 
-    {
+    if (!(flags & libjami::LIBJAMI_FLAG_NO_LOCAL_AUDIO)) {
         std::lock_guard<std::mutex> lock(pimpl_->audioLayerMutex_);
         pimpl_->initAudioDriver();
         if (pimpl_->audiodriver_) {
diff --git a/src/manager.h b/src/manager.h
index d3de5ebbf6870a85f0e77c277698eced6bcb8452..a7fea1e11a979b106627c957f1daaceb2318c99a 100644
--- a/src/manager.h
+++ b/src/manager.h
@@ -125,7 +125,7 @@ public:
      * Initialisation of thread (sound) and map.
      * Init a new VoIPLink, audio codec and audio driver
      */
-    void init(const std::string& config_file);
+    void init(const std::string& config_file, libjami::InitFlag flags);
 
     /*
      * Terminate all threads and exit DBus loop
diff --git a/src/ring_api.cpp b/src/ring_api.cpp
index b51423c2357dd3147aa4277672b72a78ad191bdb..74a94da5fbb9c2c5cb55943b152d748aa8392abe 100644
--- a/src/ring_api.cpp
+++ b/src/ring_api.cpp
@@ -41,9 +41,12 @@
 
 namespace libjami {
 
+InitFlag initFlags = {};
+
 bool
 init(enum InitFlag flags) noexcept
 {
+    initFlags = flags;
     jami::Logger::setDebugMode(LIBJAMI_FLAG_DEBUG == (flags & LIBJAMI_FLAG_DEBUG));
 
     jami::Logger::setSysLog(true);
@@ -82,7 +85,7 @@ bool
 start(const std::string& config_file) noexcept
 {
     try {
-        jami::Manager::instance().init(config_file);
+        jami::Manager::instance().init(config_file, initFlags);
     } catch (...) {
         return false;
     }