diff --git a/packages/ui-voip/src/v2/MediaCallLogger.ts b/packages/ui-voip/src/v2/MediaCallLogger.ts new file mode 100644 index 0000000000000..e842355b11440 --- /dev/null +++ b/packages/ui-voip/src/v2/MediaCallLogger.ts @@ -0,0 +1,26 @@ +import { IMediaSignalLogger } from '@rocket.chat/media-signaling'; + +export class MediaCallLogger implements IMediaSignalLogger { + private isDebug: boolean; + + constructor() { + const searchParams = new URLSearchParams(window.location.search); + this.isDebug = Boolean(searchParams.get('debug') || searchParams.get('debug-voip')); + } + + log(...what: any[]): void { + this.isDebug && console.log(...what); + } + + debug(...what: any[]): void { + this.isDebug && console.debug(...what); + } + + error(...what: any[]): void { + console.error(...what); + } + + warn(...what: any[]): void { + console.warn(...what); + } +} diff --git a/packages/ui-voip/src/v2/useMediaSessionInstance.ts b/packages/ui-voip/src/v2/useMediaSessionInstance.ts index 3b140b6e7dc72..db55bcfafb181 100644 --- a/packages/ui-voip/src/v2/useMediaSessionInstance.ts +++ b/packages/ui-voip/src/v2/useMediaSessionInstance.ts @@ -4,8 +4,9 @@ import type { MediaSignalTransport, ClientMediaSignal, ServerMediaSignal, WebRTC import { useSetting, useStream, useWriteStream } from '@rocket.chat/ui-contexts'; import { useEffect, useSyncExternalStore, useCallback } from 'react'; -import { useIceServers } from '../hooks/useIceServers'; import type { ConnectionState, PeerInfo, State } from './MediaCallContext'; +import { MediaCallLogger } from './MediaCallLogger'; +import { useIceServers } from '../hooks/useIceServers'; interface BaseSession { state: State; @@ -112,6 +113,7 @@ class MediaSessionStore extends Emitter<{ change: void }> { mediaStreamFactory: (...args) => navigator.mediaDevices.getUserMedia(...args), randomStringFactory, oldSessionId: this.getOldSessionId(userId), + logger: new MediaCallLogger(), }); if (window.sessionStorage) {