diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js
index fadce7246ccc0431bc0d096010bb7a964ee505b3..bb8e613ad54fe296c22d55def76ae4763c1b8eb9 100644
--- a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js
+++ b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js
@@ -1,5 +1,8 @@
 import BaseAudioBridge from './base';
 
+const MEDIA = Meteor.settings.public.media;
+const MEDIA_TAG = MEDIA.mediaTag;
+
 export default class KurentoAudioBridge extends BaseAudioBridge {
   constructor(userData) {
     super();
@@ -20,22 +23,34 @@ export default class KurentoAudioBridge extends BaseAudioBridge {
     window.kurentoExitAudio();
   }
 
-  joinAudio({ isListenOnly }) {
-    if (!isListenOnly) {
-      return;
-    }
-
-    window.kurentoJoinAudio(
-      'remote-media',
-      this.voiceBridge,
-      "GLOBAL_AUDIO_" + this.voiceBridge,
-      this.internalMeetingID,
-      null,
-      null,
-      null,
-      this.userId,
-      this.userName,
-      null,
-    );
+  joinAudio({ isListenOnly }, callback) {
+    return new Promise((resolve, reject) => {
+      this.callback = callback;
+      if (!isListenOnly) {
+        return resolve();
+      }
+
+      window.kurentoJoinAudio(
+        "remote-media",
+        this.voiceBridge,
+        "GLOBAL_AUDIO_" + this.voiceBridge,
+        this.internalMeetingID,
+        null,
+        null,
+        null,
+        this.userId,
+        this.userName,
+        null,
+      );
+
+      resolve (this.callback({ status: this.baseCallStates.started }));
+    });
+  }
+
+  exitAudio() {
+    return new Promise((resolve, reject) => {
+      window.kurentoExitAudio();
+      return resolve (this.callback({status: this.baseCallStates.ended}));
+    });
   }
 }
diff --git a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/adapters/freeswitch/freeswitch.js b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/adapters/freeswitch/freeswitch.js
index f3a9e0b0fa21b71a451ccd4fcbef08e012d88813..74c59070fa3a1de8ea4071f1edcb145c7abde935 100644
--- a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/adapters/freeswitch/freeswitch.js
+++ b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/adapters/freeswitch/freeswitch.js
@@ -48,7 +48,7 @@ module.exports = class Freeswitch extends EventEmitter {
     try {
       let userAgent = await this._createUserAgent(type, params.name, roomId);
       this._userAgents[roomId] = userAgent;
-      return Promise.resolve(roomId); 
+      return Promise.resolve(roomId);
     }
     catch (err) {
       return Promise.reject(err);
@@ -62,7 +62,7 @@ module.exports = class Freeswitch extends EventEmitter {
     if (source) {
       return new Promise((resolve, reject) => {
         switch (type) {
-          case 'ALL': 
+          case 'ALL':
 
           case 'AUDIO':
 
@@ -80,7 +80,7 @@ module.exports = class Freeswitch extends EventEmitter {
     }
   }
 
-  stop (roomId, elementId) {
+  stop (roomId, type = {}, elementId) {
     Logger.info("[mcs-media-freeswitch] Releasing endpoint", elementId, "from room", roomId);
     let userAgent = this._userAgents[elementId];
     let rtpConverter = this._rtpConverters[elementId];
@@ -88,7 +88,7 @@ module.exports = class Freeswitch extends EventEmitter {
     if (userAgent) {
       Logger.info("[mcs-media-freeswitch] Stopping user agent", elementId);
       userAgent.stop();
-      delete this._userAgents[elementId]; 
+      delete this._userAgents[elementId];
     }
 
     if (rtpConverter) {
@@ -200,7 +200,7 @@ module.exports = class Freeswitch extends EventEmitter {
         connector: this.sipjsLogConnector
       },
       traceSip: true,
-      hackIpInContact: LOCAL_IP_ADDRESS 
+      hackIpInContact: LOCAL_IP_ADDRESS
     });
 
     Logger.info("[mcs-freeswitch-adapter] Created new user agent for endpoint " + displayName);