diff --git a/bigbluebutton-html5/client/compatibility/kurento-extension.js b/bigbluebutton-html5/client/compatibility/kurento-extension.js index af99d9c07bf9b33155e865aa68841acad46865ac..c55b99e2d164bf3c3c0fe24562825709c9a52674 100644 --- a/bigbluebutton-html5/client/compatibility/kurento-extension.js +++ b/bigbluebutton-html5/client/compatibility/kurento-extension.js @@ -95,7 +95,7 @@ KurentoManager.prototype.exitScreenShare = function () { if (typeof this.kurentoScreenshare !== 'undefined' && this.kurentoScreenshare) { if (this.kurentoScreenshare.logger !== null) { - this.kurentoScreenshare.logger.log(' [exitScreenShare] Exiting screensharing'); + this.kurentoScreenshare.logger.info(' [exitScreenShare] Exiting screensharing'); } if (this.kurentoScreenshare.ws !== null) { @@ -120,7 +120,7 @@ KurentoManager.prototype.exitVideo = function () { if (typeof this.kurentoVideo !== 'undefined' && this.kurentoVideo) { if (this.kurentoVideo.logger !== null) { - this.kurentoVideo.logger.log(' [exitScreenShare] Exiting screensharing viewing'); + this.kurentoVideo.logger.info(' [exitScreenShare] Exiting screensharing viewing'); } if (this.kurentoVideo.ws !== null) { @@ -141,7 +141,7 @@ KurentoManager.prototype.exitAudio = function () { if (typeof this.kurentoAudio !== 'undefined' && this.kurentoAudio) { if (this.kurentoAudio.logger !== null) { - this.kurentoAudio.logger.log(' [exitAudio] Exiting listen only audio'); + this.kurentoAudio.logger.info(' [exitAudio] Exiting listen only audio'); } if (this.kurentoAudio.ws !== null) { @@ -218,7 +218,7 @@ Kurento.prototype.downscaleResolution = function (oldWidth, oldHeight) { Kurento.prototype.init = function () { const self = this; if ('WebSocket' in window) { - this.logger.log('this browser supports websockets'); + this.logger.info('this browser supports websockets'); this.ws = new WebSocket(this.wsUrl); this.ws.onmessage = this.onWSMessage.bind(this); @@ -234,7 +234,7 @@ Kurento.prototype.init = function () { self.pingInterval = setInterval(self.ping.bind(self), self.PING_INTERVAL); self.mediaCallback(); }; - } else { this.logger.log('this browser does not support websockets'); } + } else { this.logger.info('this browser does not support websockets'); } }; Kurento.prototype.onWSMessage = function (message) { @@ -293,7 +293,7 @@ Kurento.prototype.onOfferPresenter = function (error, offerSdp) { const self = this; if (error) { - this.logger.log(`Kurento.prototype.onOfferPresenter Error ${error}`); + this.logger.info(`Kurento.prototype.onOfferPresenter Error ${error}`); this.onFail(error); return; } @@ -310,7 +310,7 @@ Kurento.prototype.onOfferPresenter = function (error, offerSdp) { vw: this.width, }; - this.logger.log("onOfferPresenter sending to screenshare server => ", { sdpOffer: message }); + this.logger.info("onOfferPresenter sending to screenshare server => ", { sdpOffer: message }); this.sendMessage(message); }; @@ -335,7 +335,7 @@ Kurento.prototype.startScreensharing = function () { sendSource: 'desktop', }; - this.logger.log(" Peer options =>", options); + this.logger.info(" Peer options =>", options); let resolution; this.logger.debug(`Screenshare screen dimensions are ${this.width} x ${this.height}`); @@ -350,13 +350,13 @@ Kurento.prototype.startScreensharing = function () { this.webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(options, (error) => { if (error) { - this.logger.error("WebRtcPeerSendonly constructor error:", {error: error}); + this.logger.error("WebRtcPeerSendonly constructor error:", {error}); this.onFail(error); return kurentoManager.exitScreenShare(); } this.webRtcPeer.generateOffer(this.onOfferPresenter.bind(this)); - this.logger.log("Generated peer offer w/ options:", {options: options}); + this.logger.info("Generated peer offer w/ options:", {options: options}); const localStream = this.webRtcPeer.peerConnection.getLocalStreams()[0]; localStream.getVideoTracks()[0].onended = function () { @@ -371,7 +371,7 @@ Kurento.prototype.startScreensharing = function () { Kurento.prototype.onIceCandidate = function (candidate, role) { const self = this; - this.logger.log("Local candidate:", {candidate: candidate}); + this.logger.info("Local candidate:", {candidate}); const message = { id: this.ON_ICE_CANDIDATE_MSG, @@ -421,7 +421,7 @@ Kurento.prototype.viewer = function () { Kurento.prototype.onOfferViewer = function (error, offerSdp) { const self = this; if (error) { - this.logger.log(`Kurento.prototype.onOfferViewer Error ${error}`); + this.logger.info(`Kurento.prototype.onOfferViewer Error ${error}`); return this.onFail(); } const message = { @@ -434,7 +434,7 @@ Kurento.prototype.onOfferViewer = function (error, offerSdp) { sdpOffer: offerSdp, }; - this.logger.log("onOfferViewer sending to screenshare server: ", {sdpOffer: message.sdpOffer}); + this.logger.info("onOfferViewer sending to screenshare server: ", {sdpOffer: message.sdpOffer}); this.sendMessage(message); }; @@ -477,7 +477,7 @@ Kurento.prototype.listenOnly = function () { Kurento.prototype.onListenOnlyIceCandidate = function (candidate) { let self = this; - this.logger.debug("[onListenOnlyIceCandidate]", {candidate: candidate}); + this.logger.debug("[onListenOnlyIceCandidate]", {candidate}); var message = { id : this.ON_ICE_CANDIDATE_MSG, @@ -508,7 +508,7 @@ Kurento.prototype.onOfferListenOnly = function (error, offerSdp) { internalMeetingId: self.internalMeetingId }; - this.logger.debug("[onOfferListenOnly]", {message: message}); + this.logger.debug("[onOfferListenOnly]", {message}); this.sendMessage(message); }; @@ -566,12 +566,12 @@ Kurento.prototype.ping = function () { Kurento.prototype.sendMessage = function (message) { const jsonMessage = JSON.stringify(message); - this.logger.log("Sending message:", {message: message}); + this.logger.info("Sending message:", {message}); this.ws.send(jsonMessage); }; Kurento.prototype.logger = function (obj) { - this.logger.log(obj); + this.logger.info(obj); }; Kurento.prototype.logError = function (obj) { @@ -583,7 +583,7 @@ Kurento.normalizeCallback = function (callback) { if (typeof callback === 'function') { return callback; } - this.logger.log(document.getElementById('BigBlueButton')[callback]); + this.logger.info(document.getElementById('BigBlueButton')[callback]); return function (args) { document.getElementById('BigBlueButton')[callback](args); }; diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js index f7c864f87b0760a92d2cd3c634ee4bf50cbc3bac..0eb4da4784aeda49ab372ff094f18d8e062ed1df 100644 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js @@ -2,7 +2,7 @@ import BaseAudioBridge from './base'; import Auth from '/imports/ui/services/auth'; import Users from '/imports/api/users'; import { fetchWebRTCMappedStunTurnServers } from '/imports/utils/fetchStunTurnServers'; -import { log } from '/imports/ui/services/api'; +import logger from '/imports/startup/client/logger'; const SFU_URL = Meteor.settings.public.kurento.wsUrl; const MEDIA = Meteor.settings.public.media; @@ -16,11 +16,13 @@ const logFunc = (type, message, options) => { const userId = getUserId(); const userName = getUsername(); - log(type, message, Object.assign(options, {userId, userName, topic: options.topic || 'audio'})); + const topic = options.topic || 'audio'; + + logger[type](`[${type}.${topic}] ${message}`, Object.assign(options, {userId, userName, topic})); }; -const logger = { - log: function (message, options = {}) { +const modLogger = { + info: function (message, options = {}) { logFunc('info', message, options); }, error: function (message, options = {}) { @@ -67,15 +69,15 @@ export default class KurentoAudioBridge extends BaseAudioBridge { try { iceServers = await fetchWebRTCMappedStunTurnServers(this.user.sessionToken); } catch (error) { - log('error', 'SFU audio bridge failed to fetch STUN/TURN info, using default'); + logFunc('error', 'SFU audio bridge failed to fetch STUN/TURN info, using default'); } finally { - console.log("iceServers", iceServers); + logFunc('info', "iceServers", iceServers); const options = { wsUrl: SFU_URL, userName: this.user.name, caleeName: `${GLOBAL_AUDIO_PREFIX}${this.voiceBridge}`, iceServers, - logger, + logger: modLogger, }; const onSuccess = ack => resolve(this.callback({ status: this.baseCallStates.started })); diff --git a/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js index 05f5353511822c5a16f5d316f2f09213c91453ff..84af800dd2be559cc2ff378466221a49670056f1 100755 --- a/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js +++ b/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js @@ -2,7 +2,7 @@ import Users from '/imports/api/users'; import Auth from '/imports/ui/services/auth'; import BridgeService from './service'; import { fetchWebRTCMappedStunTurnServers } from '/imports/utils/fetchStunTurnServers'; -import { log } from '/imports/ui/services/api'; +import logger from '/imports/startup/client/logger'; const SFU_CONFIG = Meteor.settings.public.kurento; const SFU_URL = SFU_CONFIG.wsUrl; @@ -26,11 +26,13 @@ const logFunc = (type, message, options) => { const userId = getUserId(); const userName = getUsername(); - log(type, message, Object.assign(options, {userId, userName, topic: options.topic || 'screenshare'})); + const topic = options.topic || 'audio'; + + logger[type](`[${type}.${topic}] ${message}`, Object.assign(options, {userId, userName, topic})); }; -const logger = { - log: function (message, options = {}) { +const modLogger = { + info: function (message, options = {}) { logFunc('info', message, options); }, error: function (message, options = {}) { @@ -39,6 +41,9 @@ const logger = { debug: function (message, options = {}) { logFunc('debug', message, options); }, + warn: (message, options = {}) => { + logFunc('warn', message, options); + }, }; export default class KurentoScreenshareBridge { @@ -53,7 +58,7 @@ export default class KurentoScreenshareBridge { const options = { wsUrl: SFU_URL, iceServers, - logger + logger: modLogger }; window.kurentoWatchVideo( @@ -85,7 +90,7 @@ export default class KurentoScreenshareBridge { chromeScreenshareSources: CHROME_SCREENSHARE_SOURCES, firefoxScreenshareSource: FIREFOX_SCREENSHARE_SOURCE, iceServers, - logger, + logger: modLogger, }; window.kurentoShareScreen( diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx index 3374647f13ba234d4db3d839ebe6c85c78f2a8c0..f4dbd086e4a54db2154b5996138d812f53dfa5f6 100755 --- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx @@ -1,6 +1,5 @@ import React, { Component } from 'react'; import { defineMessages, injectIntl } from 'react-intl'; -import { log } from '/imports/ui/services/api'; import { notify } from '/imports/ui/services/notification'; import VisibilityEvent from '/imports/utils/visibilityEvent'; import logger from '/imports/startup/client/logger'; @@ -125,9 +124,9 @@ class VideoProvider extends Component { logger(type, message, options = {}) { const {userId, userName} = this.props; + const topic = options.topic || 'video'; - log(type, message, - Object.assign(options, {userId, userName, topic: options.topic || 'video'})); + logger[type](`${type}.${topic}: ${message}`, Object.assign(options, {userId, userName, topic})); } _sendPauseStream(id, role, state) { @@ -313,7 +312,7 @@ class VideoProvider extends Component { } }); } else { - log('warn', '[startResponse] Message arrived after the peer was already thrown out, discarding it...'); + this.logger('warn', '[startResponse] Message arrived after the peer was already thrown out, discarding it...'); } } @@ -381,7 +380,7 @@ class VideoProvider extends Component { try { iceServers = await fetchWebRTCMappedStunTurnServers(sessionToken); } catch (error) { - log('error', 'Video provider failed to fetch ice servers, using default'); + this.logger('error', 'Video provider failed to fetch ice servers, using default'); } finally { const videoConstraints = { width: { @@ -542,7 +541,7 @@ class VideoProvider extends Component { attachVideoStream(id) { const video = this.videoTags[id]; if (video == null) { - log('warn', 'Peer', id, 'has not been started yet'); + this.logger('warn', 'Peer', id, 'has not been started yet'); return; } @@ -803,7 +802,7 @@ class VideoProvider extends Component { VideoService.joinedVideo(); } } else { - log('warn', '[playStart] Message arrived after the peer was already thrown out, discarding it...'); + this.logger('warn', '[playStart] Message arrived after the peer was already thrown out, discarding it...'); } } @@ -811,7 +810,7 @@ class VideoProvider extends Component { const { intl } = this.props; const { userId } = this.props; const { code, reason } = message; - log('debug', 'Received error from SFU:', code, reason, message.streamId, userId); + this.logger('debug', 'Received error from SFU:', code, reason, message.streamId, userId); if (message.streamId === userId) { this.unshareWebcam(); this.notifyError(intl.formatMessage(intlSFUErrors[code]