diff --git a/labs/bbb-webrtc-sfu/lib/audio/audio.js b/labs/bbb-webrtc-sfu/lib/audio/audio.js index 3f877245b6b1f468fcf84ff046c283da97d8fd64..f1b8e059fae84e31971c857bac44ff61e5abe3bc 100644 --- a/labs/bbb-webrtc-sfu/lib/audio/audio.js +++ b/labs/bbb-webrtc-sfu/lib/audio/audio.js @@ -313,17 +313,4 @@ module.exports = class Audio extends BaseProvider { }), C.FROM_AUDIO); this.removeUser(connectionId); }; - - serverState (event) { - const { eventTag: { code } } = { ...event }; - switch (code) { - case C.MEDIA_SERVER_OFFLINE: - Logger.error(LOG_PREFIX, "Provider received MEDIA_SERVER_OFFLINE event"); - this.emit(C.MEDIA_SERVER_OFFLINE, event); - break; - - default: - Logger.warn(LOG_PREFIX, "Unknown server state", event); - } - } }; diff --git a/labs/bbb-webrtc-sfu/lib/base/BaseProvider.js b/labs/bbb-webrtc-sfu/lib/base/BaseProvider.js index 0d7bf23b3a102587fafab99a11fab4c2278e8fba..eb1897fefed436fc79e154c217fcdf5f44c78448 100644 --- a/labs/bbb-webrtc-sfu/lib/base/BaseProvider.js +++ b/labs/bbb-webrtc-sfu/lib/base/BaseProvider.js @@ -5,6 +5,7 @@ const Logger = require('../utils/Logger'); const EventEmitter = require('events').EventEmitter; const errors = require('../base/errors'); const config = require('config'); +const LOG_PREFIX = '[base-provider]'; module.exports = class BaseProvider extends EventEmitter { constructor () { @@ -12,6 +13,25 @@ module.exports = class BaseProvider extends EventEmitter { this.sfuApp = "base"; } + serverState (event) { + let code = null; + const { eventTag } = { ...event }; + if (eventTag && eventTag.code) { + code = eventTag.code; + } + + switch (code) { + case C.MEDIA_SERVER_OFFLINE: + Logger.error(LOG_PREFIX, "Provider received MEDIA_SERVER_OFFLINE event"); + this.emit(C.MEDIA_SERVER_OFFLINE, event); + break; + + default: + Logger.warn(LOG_PREFIX, "Unknown server state", event); + } + } + + _handleError (logPrefix, error, role, streamId) { if (this._validateErrorMessage(error)) { return error; diff --git a/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js b/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js index bfb22a0208b2a70f2527fc128ea13ee4e59d1b7f..1c970224ee2b16c6450329d57966b2440cf38a3c 100644 --- a/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js +++ b/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js @@ -174,18 +174,6 @@ module.exports = class Screenshare extends BaseProvider { } } - serverState (event) { - switch (event && event.eventTag) { - case C.MEDIA_SERVER_OFFLINE: - this._handleError(LOG_PREFIX, err); - Logger.error(LOG_PREFIX, "Screenshare provider received MEDIA_SERVER_OFFLINE event"); - this.emit(C.MEDIA_SERVER_OFFLINE, event); - break; - default: - Logger.warn(LOG_PREFIX, "Unknown server state", event); - } - } - recordingState(event) { const msEvent = event.event; Logger.info('[Recording]', msEvent.type, '[', msEvent.state, ']', 'for recording session', event.id, 'for screenshare', this.streamName); diff --git a/labs/bbb-webrtc-sfu/lib/video/video.js b/labs/bbb-webrtc-sfu/lib/video/video.js index 41e2f7ccbb34eecdaba18e1a2f2208345e24dd61..81be7b83e160d0ba82c73d009e21cd4c58ba29d1 100644 --- a/labs/bbb-webrtc-sfu/lib/video/video.js +++ b/labs/bbb-webrtc-sfu/lib/video/video.js @@ -86,20 +86,6 @@ module.exports = class Video extends BaseProvider { }); } - serverState (event) { - const { eventTag: { code } } = { ...event }; - switch (code) { - case C.MEDIA_SERVER_OFFLINE: - Logger.error(LOG_PREFIX, "Video provider received MEDIA_SERVER_OFFLINE event"); - this.emit(C.MEDIA_SERVER_OFFLINE, event); - break; - - default: - Logger.warn(LOG_PREFIX, "Unknown server state", event); - } - } - - mediaState (event) { let msEvent = event.event;