diff --git a/bin/dbus/dbusconfigurationmanager.cpp b/bin/dbus/dbusconfigurationmanager.cpp
index e2620acc4c5d4d3e6478bf62365aab54d0849902..a8c511c1841e01fd9cf3b155debec3505321da23 100644
--- a/bin/dbus/dbusconfigurationmanager.cpp
+++ b/bin/dbus/dbusconfigurationmanager.cpp
@@ -18,16 +18,10 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
 #include "dbusconfigurationmanager.h"
 #include "configurationmanager_interface.h"
 #include "datatransfer_interface.h"
 
-#include "media/audio/audiolayer.h"
-
 DBusConfigurationManager::DBusConfigurationManager(DBus::Connection& connection)
     : DBus::ObjectAdaptor(connection, "/cx/ring/Ring/ConfigurationManager")
 {}
@@ -403,20 +397,10 @@ DBusConfigurationManager::setAudioManager(const std::string& api) -> decltype(DR
     return DRing::setAudioManager(api);
 }
 
-std::vector<std::string>
-DBusConfigurationManager::getSupportedAudioManagers()
-{
-    return {
-#if HAVE_ALSA
-        ALSA_API_STR,
-#endif
-#if HAVE_PULSE
-        PULSEAUDIO_API_STR,
-#endif
-#if HAVE_JACK
-        JACK_API_STR,
-#endif
-    };
+auto
+DBusConfigurationManager::getSupportedAudioManagers() -> decltype(DRing::getSupportedAudioManagers())
+{
+    return DRing::getSupportedAudioManagers();
 }
 
 auto
diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp
index 0aeb3479cff0f06e471b87cada05296f44e9737e..7216dde8b2779150fb1bcecf47e4bcc2937d2be6 100644
--- a/src/client/configurationmanager.cpp
+++ b/src/client/configurationmanager.cpp
@@ -780,6 +780,12 @@ setRingingTimeout(int32_t timeout)
     jami::Manager::instance().setRingingTimeout(timeout);
 }
 
+std::vector<std::string>
+getSupportedAudioManagers()
+{
+    return jami::AudioPreference::getSupportedAudioManagers();
+}
+
 bool
 setAudioManager(const std::string& api)
 {
diff --git a/src/dring/configurationmanager_interface.h b/src/dring/configurationmanager_interface.h
index 6674b77902bd1ca90ef91440be4a80cb412c97b8..1a2000b9ef231ac4ab08130199380058817a720a 100644
--- a/src/dring/configurationmanager_interface.h
+++ b/src/dring/configurationmanager_interface.h
@@ -123,6 +123,7 @@ DRING_PUBLIC void mutePlayback(bool mute);
 DRING_PUBLIC bool isRingtoneMuted();
 DRING_PUBLIC void muteRingtone(bool mute);
 
+DRING_PUBLIC std::vector<std::string> getSupportedAudioManagers();
 DRING_PUBLIC std::string getAudioManager();
 DRING_PUBLIC bool setAudioManager(const std::string& api);
 
diff --git a/src/media/audio/audiolayer.h b/src/media/audio/audiolayer.h
index 00b8525a0317f2dc5211a78bcb68f5a57c60155b..da04018eb0583a2c9b3375cb39b6d4bfaab26230 100644
--- a/src/media/audio/audiolayer.h
+++ b/src/media/audio/audiolayer.h
@@ -44,6 +44,7 @@ typedef struct SpeexEchoState_ SpeexEchoState;
  */
 
 // Define the audio api
+#define OPENSL_API_STR              "opensl"
 #define PULSEAUDIO_API_STR          "pulseaudio"
 #define ALSA_API_STR                "alsa"
 #define JACK_API_STR                "jack"
diff --git a/src/preferences.cpp b/src/preferences.cpp
index c7782099515dc786bbadcddef0e315f52171b5f0..2d53b68dd5837780518dfdb76d36801324570546 100644
--- a/src/preferences.cpp
+++ b/src/preferences.cpp
@@ -438,6 +438,31 @@ AudioPreference::createAudioLayer()
     return nullptr;
 }
 
+std::vector<std::string>
+AudioPreference::getSupportedAudioManagers()
+{
+    return {
+#if HAVE_OPENSL
+        OPENSL_API_STR,
+#endif
+#if HAVE_ALSA
+        ALSA_API_STR,
+#endif
+#if HAVE_PULSE
+        PULSEAUDIO_API_STR,
+#endif
+#if HAVE_JACK
+        JACK_API_STR,
+#endif
+#if HAVE_COREAUDIO
+        COREAUDIO_API_STR,
+#endif
+#if HAVE_PORTAUDIO
+        PORTAUDIO_API_STR,
+#endif
+    };
+}
+
 void AudioPreference::serialize(YAML::Emitter &out) const
 {
     out << YAML::Key << CONFIG_LABEL << YAML::Value << YAML::BeginMap;
diff --git a/src/preferences.h b/src/preferences.h
index a1dffdfcc737f470039e8f29d1f31b3aa04835ad..f954d5f60a7e67ad034c0ea837f3e1078b398921 100644
--- a/src/preferences.h
+++ b/src/preferences.h
@@ -238,6 +238,8 @@ class AudioPreference : public Serializable {
         AudioLayer *createAudioLayer();
         AudioLayer *switchAndCreateAudioLayer();
 
+        static std::vector<std::string> getSupportedAudioManagers();
+
         std::string getAudioApi() const {
             return audioApi_;
         }