From 99cd4cdfd744b1c7a00c8859d31cc11400f5631a Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Wed, 4 May 2022 19:55:08 +0200 Subject: [PATCH 01/25] openvidu-browser: refactor replaceTrack to not override last constraints --- openvidu-browser/src/OpenVidu/Publisher.ts | 57 +++++++++++-------- openvidu-browser/src/OpenVidu/Stream.ts | 12 ++-- .../src/OpenVidu/StreamManager.ts | 2 +- openvidu-browser/src/OpenVidu/Subscriber.ts | 6 +- 4 files changed, 44 insertions(+), 33 deletions(-) diff --git a/openvidu-browser/src/OpenVidu/Publisher.ts b/openvidu-browser/src/OpenVidu/Publisher.ts index 9e6c083e..3e679b1c 100644 --- a/openvidu-browser/src/OpenVidu/Publisher.ts +++ b/openvidu-browser/src/OpenVidu/Publisher.ts @@ -168,7 +168,7 @@ export class Publisher extends StreamManager { * useful if the Publisher was unpublished freeing the hardware resource, and openvidu-browser is not able to successfully re-create the video track as it was before unpublishing. In this way previous track settings will be ignored and this MediaStreamTrack * will be used instead. */ - publishVideo(enabled: T, resource?: T extends false ? boolean : MediaStreamTrack): void { + publishVideo(enabled: T, resource?: T extends false ? boolean : MediaStreamTrack): void { if (this.stream.videoActive !== enabled) { @@ -329,27 +329,7 @@ export class Publisher extends StreamManager { * @returns A Promise (to which you can optionally subscribe to) that is resolved if the track was successfully replaced and rejected with an Error object in other case */ async replaceTrack(track: MediaStreamTrack): Promise { - // Set field "enabled" of the new track to the previous value - const trackOriginalEnabledValue: boolean = track.enabled; - if (track.kind === 'video') { - track.enabled = this.stream.videoActive; - } else if (track.kind === 'audio') { - track.enabled = this.stream.audioActive; - } - try { - if (this.stream.isLocalStreamPublished) { - // Only if the Publisher has been published is necessary to call native Web API RTCRtpSender.replaceTrack - // If it has not been published yet, replacing it on the MediaStream object is enough - await this.replaceTrackInMediaStream(track); - return await this.replaceTrackInRtcRtpSender(track); - } else { - // Publisher not published. Simply replace the track on the local MediaStream - return await this.replaceTrackInMediaStream(track); - } - } catch (error) { - track.enabled = trackOriginalEnabledValue; - throw error; - } + return this.replaceTrackAux(track, true); } /* Hidden methods */ @@ -636,6 +616,33 @@ export class Publisher extends StreamManager { }); } + /** + * @hidden + */ + async replaceTrackAux(track: MediaStreamTrack, updateLastConstraints: boolean): Promise { + // Set field "enabled" of the new track to the previous value + const trackOriginalEnabledValue: boolean = track.enabled; + if (track.kind === 'video') { + track.enabled = this.stream.videoActive; + } else if (track.kind === 'audio') { + track.enabled = this.stream.audioActive; + } + try { + if (this.stream.isLocalStreamPublished) { + // Only if the Publisher has been published is necessary to call native Web API RTCRtpSender.replaceTrack + // If it has not been published yet, replacing it on the MediaStream object is enough + await this.replaceTrackInMediaStream(track, updateLastConstraints); + return await this.replaceTrackInRtcRtpSender(track); + } else { + // Publisher not published. Simply replace the track on the local MediaStream + return await this.replaceTrackInMediaStream(track, updateLastConstraints); + } + } catch (error) { + track.enabled = trackOriginalEnabledValue; + throw error; + } + } + /** * @hidden * @@ -729,12 +736,14 @@ export class Publisher extends StreamManager { /** * @hidden */ - async replaceTrackInMediaStream(track: MediaStreamTrack): Promise { + async replaceTrackInMediaStream(track: MediaStreamTrack, updateLastConstraints: boolean): Promise { const mediaStream: MediaStream = this.stream.displayMyRemote() ? this.stream.localMediaStreamWhenSubscribedToRemote! : this.stream.getMediaStream(); let removedTrack: MediaStreamTrack; if (track.kind === 'video') { removedTrack = mediaStream.getVideoTracks()[0]; - this.stream.lastVideoTrackConstraints = track.getConstraints(); + if (updateLastConstraints) { + this.stream.lastVideoTrackConstraints = track.getConstraints(); + } } else { removedTrack = mediaStream.getAudioTracks()[0]; } diff --git a/openvidu-browser/src/OpenVidu/Stream.ts b/openvidu-browser/src/OpenVidu/Stream.ts index d44fca64..464052f3 100644 --- a/openvidu-browser/src/OpenVidu/Stream.ts +++ b/openvidu-browser/src/OpenVidu/Stream.ts @@ -421,9 +421,9 @@ export class Stream { videoClone.style.display = 'none'; if (this.streamManager.remote) { - this.streamManager.replaceTrackInMediaStream((this.virtualBackgroundSinkElements.video.srcObject as MediaStream).getVideoTracks()[0]); + this.streamManager.replaceTrackInMediaStream((this.virtualBackgroundSinkElements.video.srcObject as MediaStream).getVideoTracks()[0], false); } else { - (this.streamManager as Publisher).replaceTrack((this.virtualBackgroundSinkElements.video.srcObject as MediaStream).getVideoTracks()[0]); + (this.streamManager as Publisher).replaceTrackAux((this.virtualBackgroundSinkElements.video.srcObject as MediaStream).getVideoTracks()[0], false); } resolveApplyFilter(undefined, false); @@ -541,7 +541,7 @@ export class Stream { } if (!!this.filter) { - + // There is a filter applied if (this.filter?.type.startsWith('VB:')) { @@ -553,9 +553,9 @@ export class Stream { const mediaStreamClone = this.virtualBackgroundSourceElements!.mediaStreamClone; if (!isDisposing) { if (this.streamManager.remote) { - await this.streamManager.replaceTrackInMediaStream(mediaStreamClone.getVideoTracks()[0]); + await this.streamManager.replaceTrackInMediaStream(mediaStreamClone.getVideoTracks()[0], false); } else { - await (this.streamManager as Publisher).replaceTrack(mediaStreamClone.getVideoTracks()[0]); + await (this.streamManager as Publisher).replaceTrackAux(mediaStreamClone.getVideoTracks()[0], false); } } else { mediaStreamClone.getTracks().forEach((track) => track.stop()); @@ -591,7 +591,7 @@ export class Stream { } } else { - + // There is no filter applied return reject(new OpenViduError(OpenViduErrorName.GENERIC_ERROR, "Stream " + this.streamId + " has no filter applied")); diff --git a/openvidu-browser/src/OpenVidu/StreamManager.ts b/openvidu-browser/src/OpenVidu/StreamManager.ts index e9dd81a0..dc08529e 100644 --- a/openvidu-browser/src/OpenVidu/StreamManager.ts +++ b/openvidu-browser/src/OpenVidu/StreamManager.ts @@ -529,7 +529,7 @@ export abstract class StreamManager extends EventDispatcher { /** * @hidden */ - abstract replaceTrackInMediaStream(track: MediaStreamTrack): Promise; + abstract replaceTrackInMediaStream(track: MediaStreamTrack, updateLastConstraints: boolean): Promise; /* Private methods */ diff --git a/openvidu-browser/src/OpenVidu/Subscriber.ts b/openvidu-browser/src/OpenVidu/Subscriber.ts index a8af2c2e..5039ccfd 100644 --- a/openvidu-browser/src/OpenVidu/Subscriber.ts +++ b/openvidu-browser/src/OpenVidu/Subscriber.ts @@ -78,12 +78,14 @@ export class Subscriber extends StreamManager { /** * @hidden */ - async replaceTrackInMediaStream(track: MediaStreamTrack): Promise { + async replaceTrackInMediaStream(track: MediaStreamTrack, updateLastConstraints: boolean): Promise { const mediaStream: MediaStream = this.stream.getMediaStream(); let removedTrack: MediaStreamTrack; if (track.kind === 'video') { removedTrack = mediaStream.getVideoTracks()[0]; - this.stream.lastVideoTrackConstraints = track.getConstraints(); + if (updateLastConstraints) { + this.stream.lastVideoTrackConstraints = track.getConstraints(); + } } else { removedTrack = mediaStream.getAudioTracks()[0]; } From f735819ae2a1c21adbbc60c63c6b0592732c8138 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 5 May 2022 14:01:31 +0200 Subject: [PATCH 02/25] openvidu-browser: re-apply VB filter automatically after unmute --- openvidu-browser/src/OpenVidu/Publisher.ts | 122 ++++++++++++--------- openvidu-browser/src/OpenVidu/Stream.ts | 4 + 2 files changed, 75 insertions(+), 51 deletions(-) diff --git a/openvidu-browser/src/OpenVidu/Publisher.ts b/openvidu-browser/src/OpenVidu/Publisher.ts index 3e679b1c..6a93a2eb 100644 --- a/openvidu-browser/src/OpenVidu/Publisher.ts +++ b/openvidu-browser/src/OpenVidu/Publisher.ts @@ -168,68 +168,88 @@ export class Publisher extends StreamManager { * useful if the Publisher was unpublished freeing the hardware resource, and openvidu-browser is not able to successfully re-create the video track as it was before unpublishing. In this way previous track settings will be ignored and this MediaStreamTrack * will be used instead. */ - publishVideo(enabled: T, resource?: T extends false ? boolean : MediaStreamTrack): void { + publishVideo(enabled: T, resource?: T extends false ? boolean : MediaStreamTrack): Promise { - if (this.stream.videoActive !== enabled) { + return new Promise(async (resolve, reject) => { - const affectedMediaStream: MediaStream = this.stream.displayMyRemote() ? this.stream.localMediaStreamWhenSubscribedToRemote! : this.stream.getMediaStream(); - let mustRestartMediaStream = false; - affectedMediaStream.getVideoTracks().forEach((track) => { - track.enabled = enabled; - if (!enabled && resource === true) { - track.stop(); - } else if (enabled && track.readyState === 'ended') { - // Resource was freed - mustRestartMediaStream = true; + if (this.stream.videoActive !== enabled) { + + const affectedMediaStream: MediaStream = this.stream.displayMyRemote() ? this.stream.localMediaStreamWhenSubscribedToRemote! : this.stream.getMediaStream(); + let mustRestartMediaStream = false; + affectedMediaStream.getVideoTracks().forEach((track) => { + track.enabled = enabled; + if (!enabled && resource === true) { + track.stop(); + } else if (enabled && track.readyState === 'ended') { + // Resource was freed + mustRestartMediaStream = true; + } + }); + + // There is a Virtual Background filter applied that must be removed in case the hardware must be freed + if (!enabled && resource === true && !!this.stream.filter && this.stream.filter.type.startsWith('VB:')) { + this.stream.lastVBFilter = this.stream.filter; // Save the filter to be re-applied in case of unmute + await this.stream.removeFilterAux(true); } - }); - if (mustRestartMediaStream) { - const oldVideoTrack = affectedMediaStream.getVideoTracks()[0]; - affectedMediaStream.removeTrack(oldVideoTrack); + if (mustRestartMediaStream) { + const oldVideoTrack = affectedMediaStream.getVideoTracks()[0]; + affectedMediaStream.removeTrack(oldVideoTrack); - const replaceVideoTrack = (tr: MediaStreamTrack) => { - affectedMediaStream.addTrack(tr); - if (this.stream.isLocalStreamPublished) { - this.replaceTrackInRtcRtpSender(tr); + const replaceVideoTrack = async (tr: MediaStreamTrack) => { + affectedMediaStream.addTrack(tr); + if (this.stream.isLocalStreamPublished) { + await this.replaceTrackInRtcRtpSender(tr); + } + if (!!this.stream.lastVBFilter) { + setTimeout(async () => { + let options = this.stream.lastVBFilter!.options; + const lastExecMethod = this.stream.lastVBFilter!.lastExecMethod; + if (!!lastExecMethod && lastExecMethod.method === 'update') { + options = Object.assign({}, options, lastExecMethod.params); + } + await this.stream.applyFilter(this.stream.lastVBFilter!.type, options); + delete this.stream.lastVBFilter; + }, 1); + } + } + + if (!!resource && resource instanceof MediaStreamTrack) { + await replaceVideoTrack(resource); + } else { + try { + const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: false, video: this.stream.lastVideoTrackConstraints }); + await replaceVideoTrack(mediaStream.getVideoTracks()[0]); + } catch (error) { + return reject(error); + } } } - if (!!resource && resource instanceof MediaStreamTrack) { - replaceVideoTrack(resource); - } else { - navigator.mediaDevices.getUserMedia({ audio: false, video: this.stream.lastVideoTrackConstraints }) - .then(mediaStream => { - replaceVideoTrack(mediaStream.getVideoTracks()[0]); - }) - .catch(error => { - console.error(error); + if (!!this.session && !!this.stream.streamId) { + this.session.openvidu.sendRequest( + 'streamPropertyChanged', + { + streamId: this.stream.streamId, + property: 'videoActive', + newValue: enabled, + reason: 'publishVideo' + }, + (error, response) => { + if (error) { + logger.error("Error sending 'streamPropertyChanged' event", error); + } else { + this.session.emitEvent('streamPropertyChanged', [new StreamPropertyChangedEvent(this.session, this.stream, 'videoActive', enabled, !enabled, 'publishVideo')]); + this.emitEvent('streamPropertyChanged', [new StreamPropertyChangedEvent(this, this.stream, 'videoActive', enabled, !enabled, 'publishVideo')]); + this.session.sendVideoData(this.stream.streamManager); + } }); } + this.stream.videoActive = enabled; + logger.info("'Publisher' has " + (enabled ? 'published' : 'unpublished') + ' its video stream'); + return resolve(); } - - if (!!this.session && !!this.stream.streamId) { - this.session.openvidu.sendRequest( - 'streamPropertyChanged', - { - streamId: this.stream.streamId, - property: 'videoActive', - newValue: enabled, - reason: 'publishVideo' - }, - (error, response) => { - if (error) { - logger.error("Error sending 'streamPropertyChanged' event", error); - } else { - this.session.emitEvent('streamPropertyChanged', [new StreamPropertyChangedEvent(this.session, this.stream, 'videoActive', enabled, !enabled, 'publishVideo')]); - this.emitEvent('streamPropertyChanged', [new StreamPropertyChangedEvent(this, this.stream, 'videoActive', enabled, !enabled, 'publishVideo')]); - this.session.sendVideoData(this.stream.streamManager); - } - }); - } - this.stream.videoActive = enabled; - logger.info("'Publisher' has " + (enabled ? 'published' : 'unpublished') + ' its video stream'); - } + }); } diff --git a/openvidu-browser/src/OpenVidu/Stream.ts b/openvidu-browser/src/OpenVidu/Stream.ts index 464052f3..73575f37 100644 --- a/openvidu-browser/src/OpenVidu/Stream.ts +++ b/openvidu-browser/src/OpenVidu/Stream.ts @@ -232,6 +232,10 @@ export class Stream { * @hidden */ lastVideoTrackConstraints: MediaTrackConstraints | boolean | undefined; + /** + * @hidden + */ + lastVBFilter?: Filter; /** From 7832f5a75f2599c28ff1a284d4e9e703d34bd67b Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 5 May 2022 14:03:41 +0200 Subject: [PATCH 03/25] openvidu-components-angular: multiple VB bug fixes --- .../lib/components/pre-join/pre-join.component.html | 2 +- .../lib/components/pre-join/pre-join.component.ts | 9 ++++++++- .../lib/components/toolbar/toolbar.component.html | 2 +- .../src/lib/components/toolbar/toolbar.component.ts | 7 ++++++- .../user-settings/user-settings.component.ts | 6 +++--- .../src/lib/services/openvidu/openvidu.service.ts | 10 +++++----- .../virtual-background/virtual-background.service.ts | 4 +++- .../toolbar-directive/toolbar-directive.component.ts | 12 ++++++------ .../toolbarAdditionalButtons-directive.component.ts | 10 +++++----- 9 files changed, 38 insertions(+), 24 deletions(-) diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html index 9ebae135..4000ce66 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html @@ -72,7 +72,7 @@ - - - - - - - - - - diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.spec.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.spec.ts deleted file mode 100644 index e6ac3132..00000000 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ActionService } from '../../services/action/action.service'; -import { ActionServiceMock } from '../../services/action/action.service.mock'; -import { DeviceService } from '../../services/device/device.service'; - -import { DeviceServiceMock } from '../../services/device/device.service.mock'; -import { LocalUserService } from '../../services/local-user/local-user.service'; -import { LocalUserServiceMock } from '../../services/local-user/local-user.service.mock'; -import { LoggerService } from '../../services/logger/logger.service'; -import { LoggerServiceMock } from '../../services/logger/logger.service.mock'; -import { StorageService } from '../../services/storage/storage.service'; -import { WebrtcService } from '../../services/webrtc/webrtc.service'; -import { StorageServiceMock } from '../../services/storage/storage.service.mock'; - -import { WebrtcServiceMock } from '../../services/webrtc/webrtc.service.mock'; - -import { UserSettingsComponent } from './user-settings.component'; - -describe('UserSettingsComponent', () => { - let component: UserSettingsComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ UserSettingsComponent ], - providers: [ - { provide: LoggerService, useClass: LoggerServiceMock }, - { provide: ActionService, useClass: ActionServiceMock }, - { provide: LocalUserService, useClass: LocalUserServiceMock }, - { provide: WebrtcService, useClass: WebrtcServiceMock }, - { provide: DeviceService, useClass: DeviceServiceMock }, - { provide: StorageService, useClass: StorageServiceMock } - ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(UserSettingsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts deleted file mode 100644 index e86f486f..00000000 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/user-settings/user-settings.component.ts +++ /dev/null @@ -1,321 +0,0 @@ -import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'; -import { FormControl, Validators } from '@angular/forms'; -import { Subscription } from 'rxjs'; - -import { OpenViduErrorName } from 'openvidu-browser/lib/OpenViduInternal/Enums/OpenViduError'; -import { Publisher, PublisherProperties } from 'openvidu-browser'; - -import { ILogger } from '../../models/logger.model'; -import { CustomDevice } from '../../models/device.model'; -import { ScreenType, VideoType } from '../../models/video-type.model'; - -import { NicknameMatcher } from '../../matchers/nickname.matcher'; - -import { DeviceService } from '../../services/device/device.service'; -import { LoggerService } from '../../services/logger/logger.service'; -import { StorageService } from '../../services/storage/storage.service'; -import { OpenViduService } from '../../services/openvidu/openvidu.service'; -import { ActionService } from '../../services/action/action.service'; -import { ParticipantService } from '../../services/participant/participant.service'; -import { ParticipantAbstractModel } from '../../models/participant.model'; - -/** - * @internal - */ -@Component({ - selector: 'ov-user-settings', - templateUrl: './user-settings.component.html', - styleUrls: ['./user-settings.component.css'], - // changeDetection: ChangeDetectionStrategy.OnPush -}) -export class UserSettingsComponent implements OnInit, OnDestroy { - @ViewChild('bodyCard') bodyCard: ElementRef; - - @Input() sessionId: string; - @Output() onJoinClicked = new EventEmitter(); - @Output() onCloseClicked = new EventEmitter(); - - cameras: CustomDevice[]; - microphones: CustomDevice[]; - cameraSelected: CustomDevice; - microphoneSelected: CustomDevice; - isVideoMuted: boolean; - isAudioMuted: boolean; - screenShareEnabled: boolean; - localParticipant: ParticipantAbstractModel; - columns: number; - - nicknameFormControl = new FormControl('', [Validators.maxLength(20), Validators.required]); - matcher = new NicknameMatcher(); - hasVideoDevices: boolean; - hasAudioDevices: boolean; - isLoading = true; - private log: ILogger; - private localParticipantSubscription: Subscription; - private screenShareStateSubscription: Subscription; - - constructor( - private actionService: ActionService, - private deviceSrv: DeviceService, - private loggerSrv: LoggerService, - private openviduService: OpenViduService, - private participantService: ParticipantService, - private storageSrv: StorageService - ) { - this.log = this.loggerSrv.get('UserSettingsComponent'); - } - - @HostListener('window:beforeunload') - beforeunloadHandler() { - this.close(); - } - - async ngOnInit() { - await this.deviceSrv.initializeDevices(); - - this.subscribeToLocalParticipantEvents(); - this.openviduService.initialize(); - const nickname = this.storageSrv.getNickname() || this.generateRandomNickname(); - this.nicknameFormControl.setValue(nickname); - this.columns = window.innerWidth > 900 ? 2 : 1; - this.setDevicesInfo(); - if (this.hasAudioDevices || this.hasVideoDevices) { - await this.initwebcamPublisher(); - } - this.isLoading = false; - } - - ngOnDestroy() { - if (this.localParticipantSubscription) { - this.localParticipantSubscription.unsubscribe(); - } - - if (this.screenShareStateSubscription) { - this.screenShareStateSubscription.unsubscribe(); - } - this.deviceSrv.clear(); - } - - async onCameraSelected(event: any) { - const videoSource = event?.value; - // Is New deviceId different from the old one? - if (this.deviceSrv.needUpdateVideoTrack(videoSource)) { - const mirror = this.deviceSrv.cameraNeedsMirror(videoSource); - //TODO: Uncomment this when replaceTrack issue is fixed - // const pp: PublisherProperties = { videoSource, audioSource: false, mirror }; - // await this.openviduService.replaceTrack(VideoType.CAMERA, pp); - // TODO: Remove this when replaceTrack issue is fixed - const pp: PublisherProperties = { videoSource, audioSource: this.microphoneSelected.device, mirror }; - await this.openviduService.republishTrack(pp); - - - this.cameraSelected = videoSource; - this.deviceSrv.setCameraSelected(this.cameraSelected); - } - if (this.isVideoMuted) { - // Publish Webcam video - await this.openviduService.publishVideo(this.participantService.getMyCameraPublisher(), true); - this.isVideoMuted = false; - } - } - - async onMicrophoneSelected(event: any) { - const audioSource = event?.value; - // Is New deviceId different than older? - if (this.deviceSrv.needUpdateAudioTrack(audioSource)) { - //TODO: Uncomment this when replaceTrack issue is fixed - // const pp: PublisherProperties = { audioSource, videoSource: false }; - // await this.openviduService.replaceTrack(VideoType.CAMERA, pp); - // TODO: Remove this when replaceTrack issue is fixed - const mirror = this.deviceSrv.cameraNeedsMirror(this.cameraSelected.device); - const pp: PublisherProperties = { videoSource: this.cameraSelected.device, audioSource, mirror }; - await this.openviduService.republishTrack(pp); - - this.microphoneSelected = audioSource; - this.deviceSrv.setMicSelected(this.microphoneSelected); - } - if (this.isAudioMuted) { - // Enable microphone - this.openviduService.publishAudio(this.participantService.getMyCameraPublisher(), true); - this.isAudioMuted = true; - } - } - - async toggleCam() { - - const publish = this.isVideoMuted; - await this.openviduService.publishVideo(this.participantService.getMyCameraPublisher(), publish); - - if (this.participantService.haveICameraAndScreenActive()) { - // Cam will not published, disable webcam with screensharing active - this.participantService.disableWebcamUser(); - this.openviduService.publishAudio(this.participantService.getMyScreenPublisher(), publish); - } else if (this.participantService.isOnlyMyScreenActive()) { - // Cam will be published, enable webcam - this.participantService.enableWebcamUser(); - } - - this.isVideoMuted = !this.isVideoMuted; - this.storageSrv.setVideoMuted(this.isVideoMuted); - } - - async toggleScreenShare() { - // Disabling screenShare - if (this.participantService.haveICameraAndScreenActive()) { - this.participantService.disableScreenUser(); - return; - } - - // Enabling screenShare - if (this.participantService.isOnlyMyCameraActive()) { - const willThereBeWebcam = this.participantService.isMyCameraActive() && this.participantService.hasCameraVideoActive(); - const hasAudio = willThereBeWebcam ? false : this.hasAudioDevices && this.isAudioMuted; - const properties: PublisherProperties = { - videoSource: ScreenType.SCREEN, - audioSource: this.hasAudioDevices ? undefined : null, - publishVideo: true, - publishAudio: hasAudio, - mirror: false - }; - const screenPublisher = await this.openviduService.initPublisher(undefined, properties); - - screenPublisher.on('accessAllowed', (event) => { - screenPublisher.stream - .getMediaStream() - .getVideoTracks()[0] - .addEventListener('ended', () => { - this.log.d('Clicked native stop button. Stopping screen sharing'); - this.toggleScreenShare(); - }); - this.participantService.activeMyScreenShare(screenPublisher); - if (!this.participantService.hasCameraVideoActive()) { - this.participantService.disableWebcamUser(); - } - }); - - screenPublisher.on('accessDenied', (error: any) => { - if (error && error.name === 'SCREEN_SHARING_NOT_SUPPORTED') { - this.actionService.openDialog('Error sharing screen', 'Your browser does not support screen sharing'); - } - }); - return; - } - - // Disabling screnShare and enabling webcam - this.participantService.enableWebcamUser(); - this.participantService.disableScreenUser(); - } - - toggleMic() { - const publish = this.isAudioMuted; - this.openviduService.publishAudio(this.participantService.getMyCameraPublisher(), publish); - this.isAudioMuted = !this.isAudioMuted; - this.storageSrv.setAudioMuted(this.isAudioMuted); - } - - eventKeyPress(event) { - if (event && event.keyCode === 13 && this.nicknameFormControl.valid) { - this.joinSession(); - } - } - - onResize(event) { - this.columns = event.target.innerWidth > 900 ? 2 : 1; - } - - joinSession() { - if (this.nicknameFormControl.valid) { - const nickname = this.nicknameFormControl.value; - this.participantService.setMyNickname(nickname); - this.storageSrv.setNickname(nickname); - return this.onJoinClicked.emit(); - } - this.scrollToBottom(); - } - - close() { - this.onCloseClicked.emit(); - } - - private setDevicesInfo() { - this.hasVideoDevices = this.deviceSrv.hasVideoDeviceAvailable(); - this.hasAudioDevices = this.deviceSrv.hasAudioDeviceAvailable(); - this.microphones = this.deviceSrv.getMicrophones(); - this.cameras = this.deviceSrv.getCameras(); - this.cameraSelected = this.deviceSrv.getCameraSelected(); - this.microphoneSelected = this.deviceSrv.getMicrophoneSelected(); - - this.isVideoMuted = this.deviceSrv.isVideoMuted(); - this.isAudioMuted = this.deviceSrv.isAudioMuted(); - } - - private scrollToBottom(): void { - try { - this.bodyCard.nativeElement.scrollTop = this.bodyCard.nativeElement.scrollHeight; - } catch (err) {} - } - - private subscribeToLocalParticipantEvents() { - this.localParticipantSubscription = this.participantService.localParticipantObs.subscribe((p) => { - this.localParticipant = p; - this.screenShareEnabled = p.isScreenActive(); - }); - } - - private async initwebcamPublisher() { - const publisher = await this.openviduService.initDefaultPublisher(undefined); - if (publisher) { - // this.handlePublisherSuccess(publisher); - this.handlePublisherError(publisher); - } - } - - //? After test in Chrome and Firefox, the devices always have labels. - //? It's not longer needed - // private handlePublisherSuccess(publisher: Publisher) { - // publisher.once('accessAllowed', async () => { - // if (this.deviceSrv.areEmptyLabels()) { - // await this.deviceSrv.forceUpdate(); - // if (this.hasAudioDevices) { - // const audioLabel = publisher?.stream?.getMediaStream()?.getAudioTracks()[0]?.label; - // this.deviceSrv.setMicSelected(audioLabel); - // } - - // if (this.hasVideoDevices) { - // const videoLabel = publisher?.stream?.getMediaStream()?.getVideoTracks()[0]?.label; - // this.deviceSrv.setCameraSelected(videoLabel); - // } - // this.setDevicesInfo(); - // } - // }); - // } - - private handlePublisherError(publisher: Publisher) { - publisher.once('accessDenied', (e: any) => { - let message: string; - if (e.name === OpenViduErrorName.DEVICE_ALREADY_IN_USE) { - this.log.w('Video device already in use. Disabling video device...'); - // Allow access to the room with only mic if camera device is already in use - this.hasVideoDevices = false; - this.deviceSrv.disableVideoDevices(); - return this.initwebcamPublisher(); - } - if (e.name === OpenViduErrorName.DEVICE_ACCESS_DENIED) { - message = 'Access to media devices was not allowed.'; - this.hasVideoDevices = false; - this.hasAudioDevices = false; - this.deviceSrv.disableVideoDevices(); - this.deviceSrv.disableAudioDevices(); - return this.initwebcamPublisher(); - } else if (e.name === OpenViduErrorName.NO_INPUT_SOURCE_SET) { - message = 'No video or audio devices have been found. Please, connect at least one.'; - } - this.actionService.openDialog(e.name.replace(/_/g, ' '), message, true); - this.log.e(e.message); - }); - } - - private generateRandomNickname(): string { - return 'OpenVidu_User' + Math.floor(Math.random() * 100); - } -} diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/openvidu-angular.module.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/openvidu-angular.module.ts index 28127f7f..ec6ab47c 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/openvidu-angular.module.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/openvidu-angular.module.ts @@ -27,7 +27,6 @@ import { CommonModule } from '@angular/common'; import { ModuleWithProviders, NgModule } from '@angular/core'; import { HttpClientModule } from '@angular/common/http'; -// import { UserSettingsComponent } from './components/user-settings/user-settings.component'; import { ToolbarComponent } from './components/toolbar/toolbar.component'; import { VideoComponent } from './components/video/video.component'; import { ChatPanelComponent } from './components/panel/chat-panel/chat-panel.component'; @@ -70,7 +69,6 @@ import { RecordingActivityComponent } from './components/panel/activities-panel/ @NgModule({ declarations: [ - // UserSettingsComponent, VideoComponent, ToolbarComponent, ChatPanelComponent, @@ -140,7 +138,6 @@ import { RecordingActivityComponent } from './components/panel/activities-panel/ ], exports: [ VideoconferenceComponent, - // UserSettingsComponent, ToolbarComponent, PanelComponent, ParticipantsPanelComponent, From e817c2304da5144251e7044897cd0561e2c68028 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Mon, 9 May 2022 13:28:07 +0200 Subject: [PATCH 11/25] openvidu-component: Close panel when component is destroyed --- .../src/lib/components/pre-join/pre-join.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.ts index 52e0c0b9..71895dca 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.ts @@ -103,6 +103,7 @@ export class PreJoinComponent implements OnInit, OnDestroy { if (this.screenShareStateSubscription) this.screenShareStateSubscription.unsubscribe(); if (this.backgroundEffectsButtonSub) this.backgroundEffectsButtonSub.unsubscribe(); if (this.minimalSub) this.minimalSub.unsubscribe(); + this.panelService.closePanel(); } async onCameraSelected(event: any) { From ac427c0f575d596a2fc2caac501f466e364f4c56 Mon Sep 17 00:00:00 2001 From: cruizba Date: Mon, 9 May 2022 15:01:05 +0200 Subject: [PATCH 12/25] deployment enterprise: Read all .env variables so other OpenVidu parameters can be readen by the replication manager. --- .../deployments/enterprise/master-node/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml index 4fff5559..edee3011 100644 --- a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml +++ b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml @@ -65,6 +65,8 @@ services: volumes: - ./:/opt/openvidu - /var/run/docker.sock:/var/run/docker.sock + env_file: + - .env environment: - SERVER_PORT=4443 - SERVER_SSL_ENABLED=false From a5ba5032bf5e5ad64ed6200782247834e3c695ee Mon Sep 17 00:00:00 2001 From: cruizba Date: Mon, 9 May 2022 15:38:39 +0200 Subject: [PATCH 13/25] Revert "deployment enterprise: Read all .env variables so other OpenVidu parameters can be readen by the replication manager." This reverts commit ac427c0f575d596a2fc2caac501f466e364f4c56. --- .../deployments/enterprise/master-node/docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml index edee3011..4fff5559 100644 --- a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml +++ b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml @@ -65,8 +65,6 @@ services: volumes: - ./:/opt/openvidu - /var/run/docker.sock:/var/run/docker.sock - env_file: - - .env environment: - SERVER_PORT=4443 - SERVER_SSL_ENABLED=false From ce70a4b4dbeef18ede480fff083a62db69d42446 Mon Sep 17 00:00:00 2001 From: cruizba Date: Mon, 9 May 2022 18:08:26 +0200 Subject: [PATCH 14/25] Update coturn related parameters in .env and scripts. Remove upgrade from enterprise ha --- .../deployments/enterprise/master-node/.env | 14 + ...install_openvidu_enterprise_master_node.sh | 260 +----------------- .../enterprise/master-node/openvidu | 7 +- ...penvidu-server-pro-no-market.yaml.template | 16 ++ .../docker-compose/openvidu-server-pro/.env | 13 + .../openvidu-server-pro/openvidu | 7 +- 6 files changed, 56 insertions(+), 261 deletions(-) diff --git a/openvidu-server/deployments/enterprise/master-node/.env b/openvidu-server/deployments/enterprise/master-node/.env index 498a1a0a..26971584 100644 --- a/openvidu-server/deployments/enterprise/master-node/.env +++ b/openvidu-server/deployments/enterprise/master-node/.env @@ -356,6 +356,20 @@ ELASTICSEARCH_PASSWORD= # Documentation: https://doc-kurento.readthedocs.io/en/stable/features/logging.html # KMS_DOCKER_ENV_GST_DEBUG= +# Coturn deployment in media nodes (Experimental) +# -------------------------- +# OpenVidu PRO/Enterprise includes a default TURN/STUN deployment (Coturn). +# By default, Coturn is deployed in master nodes, but if you want to deploy +# Coturn in the media nodes, you just need to set OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=true +# Default value is OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=false +# For Coturn to work, you need at least this ports open: +# For master node you need 3478 TCP/UDP open in the master node. +# For Media nodes you need 443 TCP/UDP open in media nodes. +# More info about Coturn configuration in OpenVidu PRO/ENTERPRISE: +# - https://docs.openvidu.io/en/stable/deployment/pro/on-premises/#coturn-configuration +OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=false + + # Cloudformation configuration # -------------------------- # If you're working outside AWS ignore this section diff --git a/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh b/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh index d7ef7250..dbc0a732 100755 --- a/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh +++ b/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh @@ -156,264 +156,6 @@ replace_variable_in_new_env_file() { [[ -n "${ENV_VARIABLE_VALUE}" ]] && sed -i "s|#${ENV_VARIABLE_NAME}=|${ENV_VARIABLE_NAME}=${ENV_VARIABLE_VALUE}|" "${OPENVIDU_PREVIOUS_FOLDER}/.env-${OPENVIDU_VERSION}" } -upgrade_ov() { - # Search local Openvidu installation - printf '\n' - printf '\n ============================================' - printf '\n Search Previous Installation of Openvidu' - printf '\n ============================================' - printf '\n' - - SEARCH_IN_FOLDERS=( - "${PWD}" - "/opt/${OPENVIDU_FOLDER}" - ) - - for folder in "${SEARCH_IN_FOLDERS[@]}"; do - printf "\n => Searching in '%s' folder..." "${folder}" - - if [ -f "${folder}/docker-compose.yml" ]; then - OPENVIDU_PREVIOUS_FOLDER="${folder}" - - printf "\n => Found installation in folder '%s'" "${folder}" - break - fi - done - - [ -z "${OPENVIDU_PREVIOUS_FOLDER}" ] && fatal_error "No previous Openvidu installation found" - - # Upgrade Openvidu - OPENVIDU_PREVIOUS_VERSION=$(grep 'Openvidu Version:' "${OPENVIDU_PREVIOUS_FOLDER}/docker-compose.yml" | awk '{ print $4 }') - [ -z "${OPENVIDU_PREVIOUS_VERSION}" ] && fatal_error "Can't find previous OpenVidu version" - - # In this point using the variable 'OPENVIDU_PREVIOUS_VERSION' we can verify if the upgrade is - # posible or not. If it is not posible launch a warning and stop the upgrade. - if [[ "${OPENVIDU_PREVIOUS_VERSION}" != "${OPENVIDU_UPGRADABLE_VERSION}."* ]]; then - fatal_error "You can't update from version ${OPENVIDU_PREVIOUS_VERSION} to ${OPENVIDU_VERSION}.\nNever upgrade across multiple major versions." - fi - - printf '\n' - printf '\n =======================================' - printf '\n Upgrade OpenVidu Pro %s to %s' "${OPENVIDU_PREVIOUS_VERSION}" "${OPENVIDU_VERSION}" - printf '\n =======================================' - printf '\n' - - ROLL_BACK_FOLDER="${OPENVIDU_PREVIOUS_FOLDER}/.old-${OPENVIDU_PREVIOUS_VERSION}" - TMP_FOLDER="${OPENVIDU_PREVIOUS_FOLDER}/tmp" - ACTUAL_FOLDER="${PWD}" - - printf "\n Creating rollback folder '%s'..." ".old-${OPENVIDU_PREVIOUS_VERSION}" - mkdir "${ROLL_BACK_FOLDER}" || fatal_error "Error while creating the folder '.old-${OPENVIDU_PREVIOUS_VERSION}'" - - printf "\n Creating temporal folder 'tmp'..." - mkdir "${TMP_FOLDER}" || fatal_error "Error while creating the folder 'temporal'" - - # Download necessary files - printf '\n => Downloading new OpenVidu Pro files:' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/cluster/aws/openvidu_autodiscover.sh \ - --output "${TMP_FOLDER}/openvidu_autodiscover.sh" || fatal_error "Error when downloading the file 'openvidu_autodiscover.sh'" - printf '\n - openvidu_autodiscover.sh' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/cluster/aws/openvidu_drop.sh \ - --output "${TMP_FOLDER}/openvidu_drop.sh" || fatal_error "Error when downloading the file 'openvidu_drop.sh'" - printf '\n - openvidu_drop.sh' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/cluster/aws/openvidu_launch_kms.sh \ - --output "${TMP_FOLDER}/openvidu_launch_kms.sh" || fatal_error "Error when downloading the file 'openvidu_launch_kms.sh'" - printf '\n - openvidu_launch_kms.sh' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/beats/filebeat.yml \ - --output "${TMP_FOLDER}/filebeat.yml" || fatal_error "Error when downloading the file 'filebeat.yml'" - printf '\n - filebeat.yml' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/beats/metricbeat.yml \ - --output "${TMP_FOLDER}/metricbeat.yml" || fatal_error "Error when downloading the file 'metricbeat.yml'" - printf '\n - metricbeat.yml' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/.env \ - --output "${TMP_FOLDER}/.env" || fatal_error "Error when downloading the file '.env'" - printf '\n - .env' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/docker-compose.yml \ - --output "${TMP_FOLDER}/docker-compose.yml" || fatal_error "Error when downloading the file 'docker-compose.yml'" - printf '\n - docker-compose.yml' - - curl --silent ${DOWNLOAD_URL}/openvidu-server/deployments/enterprise/master-node/openvidu \ - --output "${TMP_FOLDER}/openvidu" || fatal_error "Error when downloading the file 'openvidu'" - printf '\n - openvidu' - - # Downloading new images and stopped actual Openvidu - printf '\n => Downloading new images...' - printf '\n' - sleep 1 - - printf "\n => Moving to 'tmp' folder..." - printf '\n' - cd "${TMP_FOLDER}" || fatal_error "Error when moving to 'tmp' folder" - printf '\n' - docker-compose pull || true - - printf '\n => Stopping Openvidu...' - printf '\n' - sleep 1 - - printf "\n => Moving to 'openvidu' folder..." - printf '\n' - cd "${OPENVIDU_PREVIOUS_FOLDER}" || fatal_error "Error when moving to 'openvidu' folder" - printf '\n' - docker-compose down || true - - printf '\n' - printf '\n => Moving to working dir...' - cd "${ACTUAL_FOLDER}" || fatal_error "Error when moving to working dir" - - # Move old files to rollback folder - printf '\n => Moving previous installation files to rollback folder:' - - mv "${OPENVIDU_PREVIOUS_FOLDER}/docker-compose.yml" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous 'docker-compose.yml'" - printf '\n - docker-compose.yml' - - mv "${OPENVIDU_PREVIOUS_FOLDER}/openvidu" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous 'openvidu'" - printf '\n - openvidu' - - mv "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous 'cluster/aws'" - printf '\n - cluster/aws' - - mv "${OPENVIDU_PREVIOUS_FOLDER}/beats" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous 'beats'" - printf '\n - beats' - - cp "${OPENVIDU_PREVIOUS_FOLDER}/.env" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous '.env'" - printf '\n - .env' - - if [ -d "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-vhosts" ]; then - mv "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-vhosts" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous directory 'custom-nginx-vhosts'" - printf '\n - custom-nginx-vhosts' - fi - - if [ -d "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" ]; then - mv "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous directory 'custom-nginx-locations'" - printf '\n - custom-nginx-locations' - fi - - # Move tmp files to Openvidu - printf '\n => Updating files:' - - mv "${TMP_FOLDER}/docker-compose.yml" "${OPENVIDU_PREVIOUS_FOLDER}" || fatal_error "Error while updating 'docker-compose.yml'" - printf '\n - docker-compose.yml' - - mv "${TMP_FOLDER}/.env" "${OPENVIDU_PREVIOUS_FOLDER}/.env-${OPENVIDU_VERSION}" || fatal_error "Error while moving previous '.env'" - printf '\n - .env-%s' "${OPENVIDU_VERSION}" - - mv "${TMP_FOLDER}/openvidu" "${OPENVIDU_PREVIOUS_FOLDER}" || fatal_error "Error while updating 'openvidu'" - printf '\n - openvidu' - - mkdir "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws" || fatal_error "Error while creating the folder 'cluster/aws'" - - mkdir "${OPENVIDU_PREVIOUS_FOLDER}/beats" || fatal_error "Error while creating the folder 'beats'" - - mv "${TMP_FOLDER}/openvidu_autodiscover.sh" "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws" || fatal_error "Error while updating 'openvidu_autodiscover.sh'" - printf '\n - openvidu_autodiscover.sh' - - mv "${TMP_FOLDER}/openvidu_drop.sh" "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws" || fatal_error "Error while updating 'openvidu_drop.sh'" - printf '\n - openvidu_drop.sh' - - mv "${TMP_FOLDER}/openvidu_launch_kms.sh" "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws" || fatal_error "Error while updating 'openvidu_launch_kms.sh'" - printf '\n - openvidu_launch_kms.sh' - - mv "${TMP_FOLDER}/filebeat.yml" "${OPENVIDU_PREVIOUS_FOLDER}/beats/filebeat.yml" || fatal_error "Error while updating 'filebeat.yml'" - printf '\n - filebeat.yml' - - mv "${TMP_FOLDER}/metricbeat.yml" "${OPENVIDU_PREVIOUS_FOLDER}/beats/metricbeat.yml" || fatal_error "Error while updating 'metricbeat.yml'" - printf '\n - metricbeat.yml' - - printf "\n => Deleting 'tmp' folder" - rm -rf "${TMP_FOLDER}" || fatal_error "Error deleting 'tmp' folder" - - # Add execution permissions - printf "\n => Adding permission to 'openvidu' program..." - - chmod +x "${OPENVIDU_PREVIOUS_FOLDER}/openvidu" || fatal_error "Error while adding permission to 'openvidu' program" - printf '\n - openvidu' - - # Change recording folder with all permissions - printf "\n => Adding permission to 'recordings' folder..." - mkdir -p "${OPENVIDU_PREVIOUS_FOLDER}/recordings" - - chmod +x "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws/openvidu_autodiscover.sh" || fatal_error "Error while adding permission to 'openvidu_autodiscover.sh' program" - printf '\n - openvidu_autodiscover.sh' - - chmod +x "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws/openvidu_drop.sh" || fatal_error "Error while adding permission to 'openvidu' openvidu_drop.sh" - printf '\n - openvidu_drop.sh' - - chmod +x "${OPENVIDU_PREVIOUS_FOLDER}/cluster/aws/openvidu_launch_kms.sh" || fatal_error "Error while adding permission to 'openvidu_launch_kms.sh' program" - printf '\n - openvidu_launch_kms.sh' - - # Define old mode: On Premise or Cloud Formation - OLD_MODE=$(grep -E "Installation Mode:.*$" "${ROLL_BACK_FOLDER}/docker-compose.yml" | awk '{ print $4,$5 }') - [ -n "${OLD_MODE}" ] && sed -i -r "s/Installation Mode:.+/Installation Mode: ${OLD_MODE}/" "${OPENVIDU_PREVIOUS_FOLDER}/docker-compose.yml" - - # Update .env variables to new .env-version - AWS_REGION=$(get_previous_env_variable AWS_DEFAULT_REGION) - if [[ -n ${AWS_REGION} ]]; then - - # Get new AMI ID - NEW_AMI_ID=$(curl https://s3-eu-west-1.amazonaws.com/aws.openvidu.io/CF-OpenVidu-Pro-${OPENVIDU_VERSION//v}.yaml --silent | - sed -n -e '/KMSAMIMAP:/,/Metadata:/ p' | - grep -A 1 "${AWS_REGION}" | grep AMI | tr -d " " | cut -d":" -f2) - [[ -z ${NEW_AMI_ID} ]] && fatal_error "Error while getting new AWS_IMAGE_ID for Media Nodes" - - # Get previous values - PREV_AWS_DEFAULT_REGION=$(get_previous_env_variable AWS_DEFAULT_REGION) - PREV_AWS_INSTANCE_TYPE=$(get_previous_env_variable AWS_INSTANCE_TYPE) - PREV_AWS_INSTANCE_ID=$(get_previous_env_variable AWS_INSTANCE_ID) - PREV_AWS_KEY_NAME=$(get_previous_env_variable AWS_KEY_NAME) - PREV_AWS_SUBNET_ID=$(get_previous_env_variable AWS_SUBNET_ID) - PREV_AWS_SECURITY_GROUP=$(get_previous_env_variable AWS_SECURITY_GROUP) - PREV_AWS_STACK_ID=$(get_previous_env_variable AWS_STACK_ID) - PREV_AWS_STACK_NAME=$(get_previous_env_variable AWS_STACK_NAME) - PREV_AWS_CLI_DOCKER_TAG=$(get_previous_env_variable AWS_CLI_DOCKER_TAG) - PREV_AWS_VOLUME_SIZE=$(get_previous_env_variable AWS_VOLUME_SIZE) - - # Replace variables in new .env-version file - replace_variable_in_new_env_file "AWS_DEFAULT_REGION" "${PREV_AWS_DEFAULT_REGION}" - replace_variable_in_new_env_file "AWS_INSTANCE_TYPE" "${PREV_AWS_INSTANCE_TYPE}" - replace_variable_in_new_env_file "AWS_INSTANCE_ID" "${PREV_AWS_INSTANCE_ID}" - replace_variable_in_new_env_file "AWS_KEY_NAME" "${PREV_AWS_KEY_NAME}" - replace_variable_in_new_env_file "AWS_SUBNET_ID" "${PREV_AWS_SUBNET_ID}" - replace_variable_in_new_env_file "AWS_SECURITY_GROUP" "${PREV_AWS_SECURITY_GROUP}" - replace_variable_in_new_env_file "AWS_STACK_ID" "${PREV_AWS_STACK_ID}" - replace_variable_in_new_env_file "AWS_STACK_NAME" "${PREV_AWS_STACK_NAME}" - replace_variable_in_new_env_file "AWS_CLI_DOCKER_TAG" "${PREV_AWS_CLI_DOCKER_TAG}" - replace_variable_in_new_env_file "AWS_VOLUME_SIZE" "${PREV_AWS_VOLUME_SIZE}" - - # Replace new AMI - replace_variable_in_new_env_file "AWS_IMAGE_ID" "${NEW_AMI_ID}" - fi - - - # Ready to use - printf '\n' - printf '\n' - printf '\n ================================================' - printf "\n Openvidu successfully upgraded to version %s" "${OPENVIDU_VERSION}" - printf '\n ================================================' - printf '\n' - printf "\n 1. A new file 'docker-compose.yml' has been created with the new OpenVidu %s services" "${OPENVIDU_VERSION}" - printf '\n' - printf "\n 2. The previous file '.env' remains intact, but a new file '.env-%s' has been created." "${OPENVIDU_VERSION}" - printf "\n Transfer any configuration you wish to keep in the upgraded version from '.env' to '.env-%s'." "${OPENVIDU_VERSION}" - printf "\n When you are OK with it, rename and leave as the only '.env' file of the folder the new '.env-%s'." "${OPENVIDU_VERSION}" - printf '\n' - printf '\n 3. Start new version of Openvidu' - printf '\n $ ./openvidu start' - printf '\n' - printf "\n If you want to rollback, all the files from the previous installation have been copied to folder '.old-%s'" "${OPENVIDU_PREVIOUS_VERSION}" - printf '\n' - printf '\n' - printf '\n' -} - # Check docker and docker-compose installation if ! command -v docker > /dev/null; then echo "You don't have docker installed, please install it and re-run the command" @@ -433,7 +175,7 @@ fi # Check type of installation if [[ -n "$1" && "$1" == "upgrade" ]]; then - upgrade_ov + fatal_error "OpenVidu Enterprise HA can't be upgraded manually. Deploy the Cloudformation template of the version '${OPENVIDU_VERSION}' you want to deploy: https://docs.openvidu.io/en/${OPENVIDU_VERSION//v}/deployment/enterprise/aws/" else new_ov_installation fi diff --git a/openvidu-server/deployments/enterprise/master-node/openvidu b/openvidu-server/deployments/enterprise/master-node/openvidu index ab7a7f86..8094d0bd 100755 --- a/openvidu-server/deployments/enterprise/master-node/openvidu +++ b/openvidu-server/deployments/enterprise/master-node/openvidu @@ -207,7 +207,12 @@ is_external_url() { } start_openvidu() { - docker-compose up -d + COTURN_IN_MEDIA_NODES=$(grep -v '^#' .env | grep COTURN_IN_MEDIA_NODES | cut -d '=' -f2) + if [[ -z "${COTURN_IN_MEDIA_NODES}" ]]; then + COTURN_IN_MEDIA_NODES=false + fi + docker-compose up -d \ + $(if [ "${COTURN_IN_MEDIA_NODES}" == "false" ]; then echo '--scale coturn=0'; fi) } usage() { diff --git a/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template b/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template index 2e0f2861..4a95ea04 100644 --- a/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template +++ b/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template @@ -221,6 +221,14 @@ Parameters: - false Default: true + CoturnInMediaNodes: + Description: "Choose if you want to deploy Coturn in media nodes. (Experimental)" + Type: String + AllowedValues: + - true + - false + Default: false + #start_mappings Mappings: OVAMIMAP: @@ -278,6 +286,7 @@ Metadata: default: Other configuration Parameters: - WantToDeployDemos + - CoturnInMediaNodes ParameterLabels: # SSL certificate configuration @@ -330,6 +339,8 @@ Metadata: # Other configuration WantToDeployDemos: default: "Deploy OpenVidu Call application" + CoturnInMediaNodes: + default: "Deploy Coturn in Media Nodes. (Experimental)" Conditions: WhichCertPresent: !Not [ !Equals [!Ref WhichCert, ''] ] @@ -542,6 +553,11 @@ Resources: rm $WORKINGDIR/docker-compose.override.yml fi + # Deploy Coturn in media nodes + if [ "${CoturnInMediaNodes}" == "true" ]; then + sed -i "s/OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=false/OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=true/" $WORKINGDIR/.env + fi + # Recording Configuration if [ "${Recording}" != "disabled" ]; then sed -i "s/OPENVIDU_RECORDING=false/OPENVIDU_RECORDING=true/" $WORKINGDIR/.env diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env index eae3d8e8..670d283e 100644 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env @@ -353,6 +353,19 @@ ELASTICSEARCH_PASSWORD= # Documentation: https://doc-kurento.readthedocs.io/en/stable/features/logging.html # KMS_DOCKER_ENV_GST_DEBUG= +# Coturn deployment in media nodes (Experimental) +# -------------------------- +# OpenVidu PRO/Enterprise includes a default TURN/STUN deployment (Coturn). +# By default, Coturn is deployed in master nodes, but if you want to deploy +# Coturn in the media nodes, you just need to set OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=true +# Default value is OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=false +# For Coturn to work, you need at least this ports open: +# For master node you need 3478 TCP/UDP open in the master node. +# For Media nodes you need 443 TCP/UDP open in media nodes. +# More info about Coturn configuration in OpenVidu PRO/ENTERPRISE: +# - https://docs.openvidu.io/en/stable/deployment/pro/on-premises/#coturn-configuration +OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=false + # Cloudformation configuration # -------------------------- # If you're working outside AWS ignore this section diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu index 9fdef2eb..a0d228da 100755 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu @@ -213,8 +213,12 @@ start_openvidu() { local CONFIGURED_KIBANA_HOST CONFIGURED_ELASTICSEARCH_HOST=$(grep -v '^#' .env | grep OPENVIDU_PRO_ELASTICSEARCH_HOST | cut -d '=' -f2) CONFIGURED_KIBANA_HOST=$(grep -v '^#' .env | grep OPENVIDU_PRO_KIBANA_HOST | cut -d '=' -f2) + COTURN_IN_MEDIA_NODES=$(grep -v '^#' .env | grep COTURN_IN_MEDIA_NODES | cut -d '=' -f2) RUN_LOCAL_ES=true RUN_LOCAL_KIBANA=true + if [[ -z "${COTURN_IN_MEDIA_NODES}" ]]; then + COTURN_IN_MEDIA_NODES=false + fi if is_external_url "${CONFIGURED_ELASTICSEARCH_HOST}"; then printf "Configured external elasticsearch: %s" "${CONFIGURED_ELASTICSEARCH_HOST}" printf "\n" @@ -227,7 +231,8 @@ start_openvidu() { fi docker-compose up -d \ $(if [ "${RUN_LOCAL_ES}" == "false" ]; then echo '--scale elasticsearch=0'; fi) \ - $(if [ "${RUN_LOCAL_KIBANA}" == "false" ]; then echo '--scale kibana=0'; fi) + $(if [ "${RUN_LOCAL_KIBANA}" == "false" ]; then echo '--scale kibana=0'; fi) \ + $(if [ "${COTURN_IN_MEDIA_NODES}" == "false" ]; then echo '--scale coturn=0'; fi) } usage() { From 1fd6308ec163202aef1b420e59bd0cdc5af19e9a Mon Sep 17 00:00:00 2001 From: cruizba Date: Mon, 9 May 2022 18:14:34 +0200 Subject: [PATCH 15/25] deployment: Better description for CoturnInMediaNodes CF parameter --- .../pro/aws/cfn-openvidu-server-pro-no-market.yaml.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template b/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template index 4a95ea04..75a0f1fd 100644 --- a/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template +++ b/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template @@ -222,7 +222,7 @@ Parameters: Default: true CoturnInMediaNodes: - Description: "Choose if you want to deploy Coturn in media nodes. (Experimental)" + Description: "If true, Coturn will be deployed on media nodes. Otherwise it will be deployed in master nodes." Type: String AllowedValues: - true From 46ba13410b4d839491f1b79b6aa9a4d4b13144f3 Mon Sep 17 00:00:00 2001 From: cruizba Date: Tue, 10 May 2022 02:07:58 +0200 Subject: [PATCH 16/25] deployment: Minor fix on start --- .../deployments/enterprise/master-node/docker-compose.yml | 1 + openvidu-server/deployments/enterprise/master-node/openvidu | 2 +- .../deployments/pro/docker-compose/openvidu-server-pro/openvidu | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml index 4fff5559..64a7962f 100644 --- a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml +++ b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml @@ -82,6 +82,7 @@ services: - RM_S3_CONFIGURATION_BUCKET_REGION=${RM_S3_CONFIGURATION_BUCKET_REGION} - RM_MEDIA_NODES_AUTOSCALING_GROUP_NAME=${RM_MEDIA_NODES_AUTOSCALING_GROUP_NAME} - RM_MASTER_NODES_AUTOSCALING_GROUP_NAME=${RM_MASTER_NODES_AUTOSCALING_GROUP_NAME} + - RM_S3_CONFIG_AUTORESTART=${OPENVIDU_ENTERPRISE_S3_CONFIG_AUTORESTART:-true} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" diff --git a/openvidu-server/deployments/enterprise/master-node/openvidu b/openvidu-server/deployments/enterprise/master-node/openvidu index 8094d0bd..00ccf9cf 100755 --- a/openvidu-server/deployments/enterprise/master-node/openvidu +++ b/openvidu-server/deployments/enterprise/master-node/openvidu @@ -212,7 +212,7 @@ start_openvidu() { COTURN_IN_MEDIA_NODES=false fi docker-compose up -d \ - $(if [ "${COTURN_IN_MEDIA_NODES}" == "false" ]; then echo '--scale coturn=0'; fi) + $(if [ "${COTURN_IN_MEDIA_NODES}" == "true" ]; then echo '--scale coturn=0'; fi) } usage() { diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu index a0d228da..61efb86a 100755 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/openvidu @@ -232,7 +232,7 @@ start_openvidu() { docker-compose up -d \ $(if [ "${RUN_LOCAL_ES}" == "false" ]; then echo '--scale elasticsearch=0'; fi) \ $(if [ "${RUN_LOCAL_KIBANA}" == "false" ]; then echo '--scale kibana=0'; fi) \ - $(if [ "${COTURN_IN_MEDIA_NODES}" == "false" ]; then echo '--scale coturn=0'; fi) + $(if [ "${COTURN_IN_MEDIA_NODES}" == "true" ]; then echo '--scale coturn=0'; fi) } usage() { From a38d6b4855e9a001b1d982e05a873269f93e2a2a Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 10 May 2022 15:45:43 +0200 Subject: [PATCH 17/25] openvidu-browser: remove unused parameter in Publisher#getVideoDimensions --- openvidu-browser/src/OpenVidu/OpenVidu.ts | 2 +- openvidu-browser/src/OpenVidu/Publisher.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openvidu-browser/src/OpenVidu/OpenVidu.ts b/openvidu-browser/src/OpenVidu/OpenVidu.ts index 16a6227c..624a0ebb 100644 --- a/openvidu-browser/src/OpenVidu/OpenVidu.ts +++ b/openvidu-browser/src/OpenVidu/OpenVidu.ts @@ -635,7 +635,7 @@ export class OpenVidu { if (attempts > MAX_ATTEMPTS) { clearTimeout(repeatUntilChangeOrMaxAttempts); } - publisher.getVideoDimensions(publisher.stream.getMediaStream()).then(newDimensions => { + publisher.getVideoDimensions().then(newDimensions => { if (newDimensions.width !== oldWidth || newDimensions.height !== oldHeight) { clearTimeout(repeatUntilChangeOrMaxAttempts); this.sendVideoDimensionsChangedEvent(publisher, reason, oldWidth, oldHeight, newDimensions.width, newDimensions.height); diff --git a/openvidu-browser/src/OpenVidu/Publisher.ts b/openvidu-browser/src/OpenVidu/Publisher.ts index 6a93a2eb..f1a09875 100644 --- a/openvidu-browser/src/OpenVidu/Publisher.ts +++ b/openvidu-browser/src/OpenVidu/Publisher.ts @@ -438,7 +438,7 @@ export class Publisher extends StreamManager { if (this.stream.isSendVideo()) { // Has video track - this.getVideoDimensions(mediaStream).then(dimensions => { + this.getVideoDimensions().then(dimensions => { this.stream.videoDimensions = { width: dimensions.width, height: dimensions.height @@ -670,7 +670,7 @@ export class Publisher extends StreamManager { * and then try to use MediaStreamTrack.getSettingsMethod(). If not available, then we * use the HTMLVideoElement properties videoWidth and videoHeight */ - getVideoDimensions(mediaStream: MediaStream): Promise<{ width: number, height: number }> { + getVideoDimensions(): Promise<{ width: number, height: number }> { return new Promise((resolve, reject) => { // Ionic iOS and Safari iOS supposedly require the video element to actually exist inside the DOM @@ -770,7 +770,7 @@ export class Publisher extends StreamManager { mediaStream.removeTrack(removedTrack); removedTrack.stop(); mediaStream.addTrack(track); - if (track.kind === 'video' && this.stream.isLocalStreamPublished) { + if (track.kind === 'video' && this.stream.isLocalStreamPublished && updateLastConstraints) { this.openvidu.sendNewVideoDimensionsIfRequired(this, 'trackReplaced', 50, 30); this.session.sendVideoData(this.stream.streamManager, 5, true, 5); } From 185ea7a1fdb5c7633c07526b728acbcbea7109e6 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Tue, 10 May 2022 17:18:33 +0200 Subject: [PATCH 18/25] openvidu-components: Disabled background button with video muted --- .../src/lib/components/pre-join/pre-join.component.html | 3 ++- .../src/lib/components/toolbar/toolbar.component.html | 8 +++++++- .../src/lib/components/toolbar/toolbar.component.ts | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html index e4b4a305..5c893b8e 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/pre-join/pre-join.component.html @@ -13,7 +13,8 @@ diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts index d66f331f..46cba0b9 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts @@ -403,6 +403,9 @@ export class ToolbarComponent implements OnInit, OnDestroy { this.onCameraButtonClicked.emit(); try { const publishVideo = !this.participantService.isMyVideoActive(); + if(this.panelService.isExternalPanelOpened() && !publishVideo) { + this.panelService.togglePanel(PanelType.BACKGROUND_EFFECTS); + } await this.openviduService.publishVideo(publishVideo); } catch (error) { this.log.e('There was an error toggling camera:', error.code, error.message); From d3a755b48e2158a5f27fca26c6222857974e0fe7 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Thu, 12 May 2022 10:09:39 +0200 Subject: [PATCH 19/25] openvidu-components: Build openvidu-browser in CI job --- .../openvidu-components-angular-E2E.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/openvidu-components-angular-E2E.yml b/.github/workflows/openvidu-components-angular-E2E.yml index 09875823..d9b36427 100644 --- a/.github/workflows/openvidu-components-angular-E2E.yml +++ b/.github/workflows/openvidu-components-angular-E2E.yml @@ -1,8 +1,9 @@ -name: openvidu-angular E2E +name: openvidu-components-angular E2E on: push: paths: - 'openvidu-components-angular/**' + - 'openvidu-browser/**' pull_request: branches: - master @@ -23,6 +24,16 @@ jobs: run: docker run -d --shm-size="2g" --network host selenium/standalone-chrome:latest - name: Run openvidu-server-kms run: docker run -p 4443:4443 --rm -d -e OPENVIDU_SECRET=MY_SECRET openvidu/openvidu-server-kms:latest + - name: Build openvidu-browser + run: | + cd openvidu-browser + npm install + npm run build && npm pack + mv openvidu-browser-*.tgz ../openvidu-components-angular + - name: Install openvidu-browser + run: | + cd openvidu-components-angular + npm install openvidu-browser-*.tgz - name: Install dependencies run: npm install --prefix openvidu-components-angular - name: Build openvidu-angular @@ -31,11 +42,11 @@ jobs: run: npm run webcomponent:build --prefix openvidu-components-angular - name: Build openvidu-angular-testapp run: npm run build --prefix openvidu-components-angular - - name: Run Angular Testapp + - name: Serve openvidu-angular-testapp run: npm run start-prod --prefix openvidu-components-angular & - - name: Run Angular E2E + - name: Run openvidu-angular E2E run: npm run lib:e2e-ci --prefix openvidu-components-angular - - name: Run Webcomponent Testapp + - name: Serve Webcomponent Testapp run: npm run webcomponent:serve-testapp --prefix openvidu-components-angular & - name: Run Webcomponent E2E run: npm run webcomponent:e2e-ci --prefix openvidu-components-angular From 140449948a2477acae95cdbf8576e58efd04d457 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Thu, 12 May 2022 11:32:36 +0200 Subject: [PATCH 20/25] openvidu-components: Unified common panel styles --- .../activities-panel.component.css | 31 +------ .../activities-panel.component.html | 8 +- .../activities-panel.component.ts | 2 +- .../background-effects-panel.component.css | 43 --------- .../background-effects-panel.component.html | 8 +- .../background-effects-panel.component.ts | 2 +- .../panel/chat-panel/chat-panel.component.css | 89 ++++++------------- .../chat-panel/chat-panel.component.html | 8 +- .../panel/chat-panel/chat-panel.component.ts | 2 +- .../lib/components/panel/panel.component.css | 41 +++++++++ .../participants-panel.component.css | 34 ++----- .../participants-panel.component.html | 8 +- .../participants-panel.component.ts | 2 +- 13 files changed, 94 insertions(+), 184 deletions(-) diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.css index c9555f6b..001c8736 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.css +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.css @@ -1,28 +1,3 @@ -#activities-container { - margin: 20px; - background-color: var(--ov-panel-background); - border-radius: var(--ov-panel-radius); - max-height: calc(100% - 40px); - min-height: calc(100% - 40px); -} - -.header-container { - padding: 10px; - display: flex; -} - -.header-container h3 { - margin-left: 5px; - margin-top: auto; - margin-bottom: auto; - font-weight: bold; -} - -.header-container button { - margin-left: auto; - border-radius: var(--ov-buttons-radius); -} - .activities-body-container { display: block !important; overflow-y: auto; @@ -40,7 +15,6 @@ margin: auto; } - .activity-subtitle { font-style: italic; font-size: 11px !important; @@ -49,7 +23,7 @@ font-weight: bold !important; } -.activity-action-buttons{ +.activity-action-buttons { align-self: flex-start; margin-top: 15px; font-weight: 600; @@ -63,7 +37,8 @@ padding: 0px 10px !important; } -::ng-deep .mat-list-base .mat-list-item .mat-list-item-content, .mat-list-base .mat-list-option .mat-list-item-content { +::ng-deep .mat-list-base .mat-list-item .mat-list-item-content, +.mat-list-base .mat-list-option .mat-list-item-content { padding: 0px !important; } diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.html index 9048e1aa..bbd32233 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.html @@ -1,7 +1,7 @@ -
-
-

Activities

-
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.ts index 7a699095..89ac354c 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/activities-panel/activities-panel.component.ts @@ -5,7 +5,7 @@ import { PanelService } from '../../../services/panel/panel.service'; @Component({ selector: 'ov-activities-panel', templateUrl: './activities-panel.component.html', - styleUrls: ['./activities-panel.component.css'] + styleUrls: ['../panel.component.css','./activities-panel.component.css'] }) export class ActivitiesPanelComponent implements OnInit { constructor(private panelService: PanelService) {} diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.css index 24d720a2..2fd52769 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.css +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.css @@ -1,28 +1,3 @@ -#background-effects-container { - margin: 20px; - background-color: var(--ov-panel-background); - border-radius: var(--ov-panel-radius); - max-height: calc(100% - 40px); - min-height: calc(100% - 40px); -} - -.header-container { - padding: 10px; - display: flex; -} - -.header-container h3 { - margin-left: 5px; - margin-top: auto; - margin-bottom: auto; - font-weight: bold; -} - -.header-container button { - margin-left: auto; - border-radius: var(--ov-buttons-radius); -} - .effects-container { display: block !important; overflow-y: auto; @@ -70,21 +45,3 @@ ::ng-deep .mat-slider-vertical .mat-slider-track-wrapper { width: 10px !important; } - -::-webkit-scrollbar { - width: 8px; -} - -::-webkit-scrollbar-thumb { - background: #a7a7a7; - border-radius: 4px; -} - -::-webkit-scrollbar-thumb:hover { - background: #7c7c7c; -} - -::-webkit-scrollbar-track { - background: var(--ov-light-color); - border-radius: 4px; -} diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.html index faa30d5a..88a7b30b 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.html @@ -1,7 +1,7 @@ -
-
-

Background effects

-
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.ts index 13004682..dc5fd5c4 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/background-effects-panel/background-effects-panel.component.ts @@ -8,7 +8,7 @@ import { VirtualBackgroundService } from '../../../services/virtual-background/v @Component({ selector: 'ov-background-effects-panel', templateUrl: './background-effects-panel.component.html', - styleUrls: ['./background-effects-panel.component.css'], + styleUrls: ['../panel.component.css','./background-effects-panel.component.css'], changeDetection: ChangeDetectionStrategy.OnPush }) export class BackgroundEffectsPanelComponent implements OnInit { diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.css index b192ae0a..db507860 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.css +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.css @@ -1,28 +1,4 @@ -#chat-container { - margin: 20px; - background-color: var(--ov-panel-background); - border-radius: var(--ov-panel-radius); - max-height: calc(100% - 40px); - min-height: calc(100% - 40px); -} - -.header-container { - padding: 10px; - display: flex; -} - -.header-container h3 { - margin-left: 5px; - margin-top: auto; - margin-bottom: auto; -} - -.header-container button { - margin-left: auto; - border-radius: var(--ov-buttons-radius); -} - -.text-container{ +.text-container { /* padding: 5px; */ background-color: var(--ov-light-color); color: var(--ov-panel-text-color); @@ -33,7 +9,6 @@ .text-info { margin: 3px; - } .messages-container { @@ -65,35 +40,34 @@ resize: none; outline: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - font-family: 'Roboto','RobotoDraft',Helvetica,Arial,sans-serif; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + font-family: 'Roboto', 'RobotoDraft', Helvetica, Arial, sans-serif; } - - .message { +.message { position: relative; padding: 3px 0; - } +} - .msg-detail { +.msg-detail { width: 95%; display: inline-block; - } +} - .msg-detail p { +.msg-detail p { margin: 0; font-size: 14px; - } +} - .nickname-container p { +.nickname-container p { font-size: 13px; font-weight: bold; color: var(--ov-panel-text-color); - } +} - .msg-content { +.msg-content { position: relative; border-radius: var(--ov-panel-radius); padding: 8px; @@ -102,12 +76,11 @@ max-width: 95%; font-size: 13px; word-break: break-all; - } +} - #send-btn { +#send-btn { border-radius: var(--ov-buttons-radius); - } - +} /* Start message from other user */ @@ -119,30 +92,18 @@ float: left; } +/* End message from other user */ - /* End message from other user */ +/* Start my messages */ - /* Start my messages */ - - .message.right .msg-detail .nickname-container { +.message.right .msg-detail .nickname-container { text-align: right; - } +} - .message.right .msg-detail .msg-content { +.message.right .msg-detail .msg-content { float: right; - } +} - - /* End my messages */ - - ::-webkit-scrollbar { - width: 8px; - } - - ::-webkit-scrollbar-thumb { - background-color: #6b6b6b; - } - - ::ng-deep a:-webkit-any-link { +::ng-deep a:-webkit-any-link { color: #1a73e8; -} \ No newline at end of file +} diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.html index b7414b3e..d819a6e6 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.html @@ -1,7 +1,7 @@ -
-
-

Chat

-
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.ts index 60bdbc88..d6e89158 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/chat-panel/chat-panel.component.ts @@ -41,7 +41,7 @@ import { PanelService } from '../../../services/panel/panel.service'; @Component({ selector: 'ov-chat-panel', templateUrl: './chat-panel.component.html', - styleUrls: ['./chat-panel.component.css'], + styleUrls: ['../panel.component.css','./chat-panel.component.css'], changeDetection: ChangeDetectionStrategy.OnPush }) export class ChatPanelComponent implements OnInit, AfterViewInit { diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/panel.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/panel.component.css index e69de29b..c1abda02 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/panel.component.css +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/panel.component.css @@ -0,0 +1,41 @@ +.panel-container { + margin: 20px; + background-color: var(--ov-panel-background); + border-radius: var(--ov-panel-radius); + max-height: calc(100% - 40px); + min-height: calc(100% - 40px); +} + +.panel-header-container { + padding: 10px; + display: flex; +} + +.panel-title { + margin-left: 5px; + margin-top: auto; + margin-bottom: auto; +} + +.panel-close-button { + margin-left: auto; + border-radius: var(--ov-buttons-radius); +} + +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-thumb { + background: #a7a7a7; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #7c7c7c; +} + +::-webkit-scrollbar-track { + background: var(--ov-light-color); + border-radius: 4px; +} diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.css index 799fd34c..2da8dc56 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.css +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.css @@ -1,29 +1,6 @@ -.participants-container { - margin: 20px; - background-color: var(--ov-panel-background); - border-radius: var(--ov-panel-radius); - max-height: calc(100% - 40px); - min-height: calc(100% - 40px); -} - -.header-container { - padding: 10px; - display: flex; -} - -.header-container h3 { - margin-left: 5px; - margin-top: auto; - margin-bottom: auto; -} - -.header-container button { - margin-left: auto; - border-radius: var(--ov-buttons-radius); -} - -.local-participant-container, .remote-participants-container { - margin: 5px 10px; +.local-participant-container, +.remote-participants-container { + margin: 5px 10px; } .scrollable { @@ -32,7 +9,7 @@ overflow: auto; } -.message-container{ +.message-container { padding: 5px; background-color: var(--ov-light-color); color: var(--ov-panel-text-color); @@ -41,7 +18,6 @@ font-size: 12px; } -.message-container p{ +.message-container p { margin: 0; - } diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.html index 23d22f03..5f5d41ee 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.html @@ -1,7 +1,7 @@ -
-
-

Participants

-
diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.ts index 4dde4a85..5e593a79 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/panel/participants-panel/participants-panel/participants-panel.component.ts @@ -41,7 +41,7 @@ import { Subscription } from 'rxjs'; @Component({ selector: 'ov-participants-panel', templateUrl: './participants-panel.component.html', - styleUrls: ['./participants-panel.component.css'], + styleUrls: ['../../panel.component.css','./participants-panel.component.css'], changeDetection: ChangeDetectionStrategy.OnPush }) export class ParticipantsPanelComponent implements OnInit, OnDestroy, AfterViewInit { From 51c03383cfaf1dc13d1413942bbb9f7d0b6e0b0f Mon Sep 17 00:00:00 2001 From: jenkinsopenvidu Date: Thu, 12 May 2022 13:49:50 +0000 Subject: [PATCH 21/25] Update openvidu-node-client to version v2.22.0 --- openvidu-node-client/package-lock.json | 4 +- openvidu-node-client/package.json | 56 +++++++++++++------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/openvidu-node-client/package-lock.json b/openvidu-node-client/package-lock.json index fbc61051..2789dfe1 100644 --- a/openvidu-node-client/package-lock.json +++ b/openvidu-node-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "openvidu-node-client", - "version": "2.21.0", + "version": "2.22.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "openvidu-node-client", - "version": "2.21.0", + "version": "2.22.0", "license": "Apache-2.0", "dependencies": { "axios": "0.21.4", diff --git a/openvidu-node-client/package.json b/openvidu-node-client/package.json index 124f572b..51e5804d 100644 --- a/openvidu-node-client/package.json +++ b/openvidu-node-client/package.json @@ -1,37 +1,37 @@ { - "author": "OpenVidu", + "author": "OpenVidu", "dependencies": { - "axios": "0.21.4", + "axios": "0.21.4", "buffer": "6.0.3" - }, - "description": "OpenVidu Node Client", + }, + "description": "OpenVidu Node Client", "devDependencies": { - "@types/node": "14.14.37", - "grunt": "1.3.0", - "grunt-cli": "1.4.2", - "grunt-contrib-copy": "1.0.0", - "grunt-contrib-sass": "2.0.0", - "grunt-contrib-uglify": "5.0.1", - "grunt-contrib-watch": "1.1.0", - "grunt-postcss": "0.9.0", - "grunt-string-replace": "1.3.1", - "grunt-ts": "6.0.0-beta.22", - "ts-node": "9.1.1", - "tslint": "6.1.3", - "typedoc": "0.19.2", + "@types/node": "14.14.37", + "grunt": "1.3.0", + "grunt-cli": "1.4.2", + "grunt-contrib-copy": "1.0.0", + "grunt-contrib-sass": "2.0.0", + "grunt-contrib-uglify": "5.0.1", + "grunt-contrib-watch": "1.1.0", + "grunt-postcss": "0.9.0", + "grunt-string-replace": "1.3.1", + "grunt-ts": "6.0.0-beta.22", + "ts-node": "9.1.1", + "tslint": "6.1.3", + "typedoc": "0.19.2", "typescript": "3.8.3" - }, - "license": "Apache-2.0", - "main": "lib/index.js", - "name": "openvidu-node-client", + }, + "license": "Apache-2.0", + "main": "lib/index.js", + "name": "openvidu-node-client", "repository": { - "type": "git", + "type": "git", "url": "git://github.com/OpenVidu/openvidu" - }, + }, "scripts": { - "build": "./node_modules/typescript/bin/tsc", + "build": "./node_modules/typescript/bin/tsc", "docs": "./generate-docs.sh" - }, - "typings": "lib/index.d.ts", - "version": "2.21.0" -} + }, + "typings": "lib/index.d.ts", + "version": "2.22.0" +} \ No newline at end of file From 4e2b71bb0c574f4927fdd6bfada1aacfb2afb993 Mon Sep 17 00:00:00 2001 From: openvidu Date: Thu, 12 May 2022 14:02:07 +0000 Subject: [PATCH 22/25] Update openvidu-java-client to version v2.22.0 --- openvidu-java-client/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openvidu-java-client/pom.xml b/openvidu-java-client/pom.xml index 56c21eed..7814be84 100644 --- a/openvidu-java-client/pom.xml +++ b/openvidu-java-client/pom.xml @@ -10,7 +10,7 @@ openvidu-java-client - 2.21.1 + 2.22.0 jar OpenVidu Java Client diff --git a/pom.xml b/pom.xml index 88d976b7..222c406c 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 4.2.2 - 2.21.1 + 2.22.0 1.1.0 1.1.0 1.1.1 From 4c028e564ea174fd10af2b3808f54c3a144efb32 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 12 May 2022 16:47:24 +0200 Subject: [PATCH 23/25] Update docker-compose.yml file versions --- .../ce/docker-compose/docker-compose.override.yml | 2 +- .../deployments/ce/docker-compose/docker-compose.yml | 2 +- .../deployments/enterprise/master-node/docker-compose.yml | 2 +- .../pro/docker-compose/media-node/docker-compose.yml | 8 ++++---- .../openvidu-server-pro/docker-compose.override.yml | 2 +- .../docker-compose/openvidu-server-pro/docker-compose.yml | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/openvidu-server/deployments/ce/docker-compose/docker-compose.override.yml b/openvidu-server/deployments/ce/docker-compose/docker-compose.override.yml index ad8e400e..8cd12b61 100644 --- a/openvidu-server/deployments/ce/docker-compose/docker-compose.override.yml +++ b/openvidu-server/deployments/ce/docker-compose/docker-compose.override.yml @@ -9,7 +9,7 @@ services: # # Default Application # - # Openvidu-Call Version: 2.21.0 + # Openvidu-Call Version: 2.22.0 # # -------------------------------------------------------------- app: diff --git a/openvidu-server/deployments/ce/docker-compose/docker-compose.yml b/openvidu-server/deployments/ce/docker-compose/docker-compose.yml index 7943a654..478ebb27 100644 --- a/openvidu-server/deployments/ce/docker-compose/docker-compose.yml +++ b/openvidu-server/deployments/ce/docker-compose/docker-compose.yml @@ -11,7 +11,7 @@ # # This file will be overridden when update OpenVidu Platform # -# Openvidu Version: 2.21.0 +# Openvidu Version: 2.22.0 # # Installation Mode: On Premises # diff --git a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml index 64a7962f..666c2980 100644 --- a/openvidu-server/deployments/enterprise/master-node/docker-compose.yml +++ b/openvidu-server/deployments/enterprise/master-node/docker-compose.yml @@ -11,7 +11,7 @@ # # This file will be overridden when update OpenVidu Platform # -# Openvidu Version: 2.21.0 +# Openvidu Version: 2.22.0 # # Installation Mode: On Premises # diff --git a/openvidu-server/deployments/pro/docker-compose/media-node/docker-compose.yml b/openvidu-server/deployments/pro/docker-compose/media-node/docker-compose.yml index 2076a503..17dd3fac 100644 --- a/openvidu-server/deployments/pro/docker-compose/media-node/docker-compose.yml +++ b/openvidu-server/deployments/pro/docker-compose/media-node/docker-compose.yml @@ -6,7 +6,7 @@ # # This docker-compose file coordinates all services of OpenVidu CE Platform. # -# Openvidu Version: 2.21.0 +# Openvidu Version: 2.22.0 # # Installation Mode: On Premises # @@ -16,18 +16,18 @@ version: '3.1' services: media-node-controller: - image: openvidu/media-node-controller:6.0.0 + image: openvidu/media-node-controller:2.22.0 restart: always ulimits: core: -1 entrypoint: ['/bin/sh', '-c', '/beats/copy_config_files.sh && /usr/local/bin/entrypoint.sh'] environment: - KMS_IMAGE=kurento/kurento-media-server:6.16.0 - - MEDIASOUP_IMAGE=openvidu/mediasoup-controller:2.21.0 + - MEDIASOUP_IMAGE=openvidu/mediasoup-controller:2.22.0 - METRICBEAT_IMAGE=docker.elastic.co/beats/metricbeat-oss:7.8.0 - FILEBEAT_IMAGE=docker.elastic.co/beats/filebeat-oss:7.8.0 - OPENVIDU_RECORDING_IMAGE=openvidu/openvidu-recording:2.19.0 - - COTURN_IMAGE=openvidu/openvidu-coturn:7.0.0-dev1 + - COTURN_IMAGE=openvidu/openvidu-coturn:2.22.0 - NO_COLOR=true ports: - 3000:3000 diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.override.yml b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.override.yml index ad8e400e..8cd12b61 100644 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.override.yml +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.override.yml @@ -9,7 +9,7 @@ services: # # Default Application # - # Openvidu-Call Version: 2.21.0 + # Openvidu-Call Version: 2.22.0 # # -------------------------------------------------------------- app: diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml index 0c35e90b..22b28d03 100644 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml @@ -11,7 +11,7 @@ # # This file will be overridden when update OpenVidu Platform # -# Openvidu Version: 2.21.0 +# Openvidu Version: 2.22.0 # # Installation Mode: On Premises # From 44b7474a38935c8cb586e50fb650be253992a6ad Mon Sep 17 00:00:00 2001 From: jenkinsopenvidu Date: Thu, 12 May 2022 14:57:21 +0000 Subject: [PATCH 24/25] Update to version v2.22.0 --- openvidu-browser/package-lock.json | 4 +- openvidu-browser/package.json | 84 ++++++++--------- openvidu-server/pom.xml | 2 +- .../src/dashboard/package-lock.json | 80 ++++++++++------ openvidu-server/src/dashboard/package.json | 94 +++++++++---------- openvidu-testapp/package.json | 4 +- 6 files changed, 145 insertions(+), 123 deletions(-) diff --git a/openvidu-browser/package-lock.json b/openvidu-browser/package-lock.json index 1fa016f2..b54bb184 100644 --- a/openvidu-browser/package-lock.json +++ b/openvidu-browser/package-lock.json @@ -1,12 +1,12 @@ { "name": "openvidu-browser", - "version": "2.21.0", + "version": "2.22.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "openvidu-browser", - "version": "2.21.0", + "version": "2.22.0", "license": "Apache-2.0", "dependencies": { "events": "3.3.0", diff --git a/openvidu-browser/package.json b/openvidu-browser/package.json index b9f4f6ce..8274064a 100644 --- a/openvidu-browser/package.json +++ b/openvidu-browser/package.json @@ -1,57 +1,57 @@ { - "author": "OpenVidu", + "author": "OpenVidu", "dependencies": { - "freeice": "2.2.2", - "hark": "1.2.3", - "jsnlog": "2.30.0", - "mime": "3.0.0", - "platform": "1.3.6", - "semver": "7.3.5", - "uuid": "8.3.2", - "wolfy87-eventemitter": "5.2.9", - "events": "3.3.0", + "freeice": "2.2.2", + "hark": "1.2.3", + "jsnlog": "2.30.0", + "mime": "3.0.0", + "platform": "1.3.6", + "semver": "7.3.5", + "uuid": "8.3.2", + "wolfy87-eventemitter": "5.2.9", + "events": "3.3.0", "inherits": "2.0.4" - }, - "description": "OpenVidu Browser", + }, + "description": "OpenVidu Browser", "devDependencies": { - "@types/node": "17.0.8", - "@types/platform": "1.3.4", - "browserify": "17.0.0", - "grunt": "1.4.1", - "grunt-cli": "1.4.3", - "grunt-contrib-copy": "1.0.0", - "grunt-contrib-sass": "2.0.0", - "grunt-contrib-uglify": "5.0.1", - "grunt-contrib-watch": "1.1.0", - "grunt-postcss": "0.9.0", - "grunt-string-replace": "1.3.1", - "grunt-ts": "6.0.0-beta.22", - "terser": "5.10.0", - "tsify": "5.0.4", - "tslint": "6.1.3", - "typedoc": "0.22.10", + "@types/node": "17.0.8", + "@types/platform": "1.3.4", + "browserify": "17.0.0", + "grunt": "1.4.1", + "grunt-cli": "1.4.3", + "grunt-contrib-copy": "1.0.0", + "grunt-contrib-sass": "2.0.0", + "grunt-contrib-uglify": "5.0.1", + "grunt-contrib-watch": "1.1.0", + "grunt-postcss": "0.9.0", + "grunt-string-replace": "1.3.1", + "grunt-ts": "6.0.0-beta.22", + "terser": "5.10.0", + "tsify": "5.0.4", + "tslint": "6.1.3", + "typedoc": "0.22.10", "typescript": "4.5.4" - }, - "license": "Apache-2.0", - "main": "lib/index.js", - "name": "openvidu-browser", + }, + "license": "Apache-2.0", + "main": "lib/index.js", + "name": "openvidu-browser", "repository": { - "type": "git", + "type": "git", "url": "git://github.com/OpenVidu/openvidu" - }, + }, "scripts": { - "browserify": "VERSION=${VERSION:-dev}; mkdir -p static/js/ && cd src && ../node_modules/browserify/bin/cmd.js Main.ts -p [ tsify ] --exclude kurento-browser-extensions --debug -o ../static/js/openvidu-browser-$VERSION.js -v", - "browserify-prod": "VERSION=${VERSION:-dev}; mkdir -p static/js/ && cd src && ../node_modules/browserify/bin/cmd.js --debug Main.ts -p [ tsify ] --exclude kurento-browser-extensions | ../node_modules/terser/bin/terser --source-map content=inline --output ../static/js/openvidu-browser-$VERSION.min.js", - "build": "cd src/OpenVidu && ./../../node_modules/typescript/bin/tsc && cd ../.. && ./node_modules/typescript/bin/tsc --declaration src/index.ts --outDir ./lib --sourceMap --target es5 --lib dom,es5,es2015.promise,scripthost && rm -rf ./ts4.4 && mkdir -p ./ts4.4/lib && cp -r ./lib ./ts4.4 && find ./ts4.4/lib -type f ! -iname '*.d.ts' -delete && ./config/replace_for_ts44.sh", + "browserify": "VERSION=${VERSION:-dev}; mkdir -p static/js/ && cd src && ../node_modules/browserify/bin/cmd.js Main.ts -p [ tsify ] --exclude kurento-browser-extensions --debug -o ../static/js/openvidu-browser-$VERSION.js -v", + "browserify-prod": "VERSION=${VERSION:-dev}; mkdir -p static/js/ && cd src && ../node_modules/browserify/bin/cmd.js --debug Main.ts -p [ tsify ] --exclude kurento-browser-extensions | ../node_modules/terser/bin/terser --source-map content=inline --output ../static/js/openvidu-browser-$VERSION.min.js", + "build": "cd src/OpenVidu && ./../../node_modules/typescript/bin/tsc && cd ../.. && ./node_modules/typescript/bin/tsc --declaration src/index.ts --outDir ./lib --sourceMap --target es5 --lib dom,es5,es2015.promise,scripthost && rm -rf ./ts4.4 && mkdir -p ./ts4.4/lib && cp -r ./lib ./ts4.4 && find ./ts4.4/lib -type f ! -iname '*.d.ts' -delete && ./config/replace_for_ts44.sh", "docs": "./generate-docs.sh" - }, - "types": "lib/index.d.ts", + }, + "types": "lib/index.d.ts", "typesVersions": { "<4.4": { "*": [ "ts4.4/*" ] } - }, - "version": "2.21.0" -} + }, + "version": "2.22.0" +} \ No newline at end of file diff --git a/openvidu-server/pom.xml b/openvidu-server/pom.xml index 9f99b19c..e0aa1883 100644 --- a/openvidu-server/pom.xml +++ b/openvidu-server/pom.xml @@ -12,7 +12,7 @@ jar OpenVidu Server - 2.21.0 + 2.22.0 OpenVidu Server https://openvidu.io diff --git a/openvidu-server/src/dashboard/package-lock.json b/openvidu-server/src/dashboard/package-lock.json index d767764d..5bafa32f 100644 --- a/openvidu-server/src/dashboard/package-lock.json +++ b/openvidu-server/src/dashboard/package-lock.json @@ -23,7 +23,7 @@ "@angular/router": "13.3.0", "core-js": "3.21.1", "jquery": "3.6.0", - "openvidu-browser": "2.21.0", + "openvidu-browser": "2.22.0", "rxjs": "7.5.5", "tslib": "2.3.1", "zone.js": "0.11.5" @@ -9191,9 +9191,9 @@ } }, "node_modules/openvidu-browser": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/openvidu-browser/-/openvidu-browser-2.21.0.tgz", - "integrity": "sha512-dQZ8lsvt7zydklG/naHtaWpnhRo5ErTjEkWslmg6e2fjFVy+GmGVrJBeMJrJDM2FrOWv8aH86fRNR+P7eESB9g==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/openvidu-browser/-/openvidu-browser-2.22.0.tgz", + "integrity": "sha512-fug7V5WZPwEXCF4im6RzhWSbv9nYB4QWMXrEQBEsh7RI1VPQ5Jl2VcindiUeMtN+quLqeTjXSRUh4lfkrTlQSQ==", "dependencies": { "events": "3.3.0", "freeice": "2.2.2", @@ -14935,7 +14935,8 @@ "version": "13.3.0", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.0.tgz", "integrity": "sha512-QbTQWXK2WzYU+aKKVDG0ya7WYT+6rNAUXVt5ov9Nz1SGgDeozpiOx8ZqPWUvnToTY8EoodwWFGCVtkLHXUR+wA==", - "dev": true + "dev": true, + "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -15501,7 +15502,8 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.2.0", @@ -16234,7 +16236,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true + "dev": true, + "requires": {} }, "clean-stack": { "version": "2.2.0", @@ -16317,13 +16320,15 @@ "version": "9.0.0", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", - "dev": true + "dev": true, + "requires": {} }, "@angular/core": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", - "dev": true + "dev": true, + "requires": {} }, "rxjs": { "version": "6.6.7", @@ -16806,7 +16811,8 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true + "dev": true, + "requires": {} }, "css-select": { "version": "4.2.1", @@ -18291,7 +18297,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -19137,7 +19144,8 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true + "dev": true, + "requires": {} }, "karma-source-map-support": { "version": "1.4.0", @@ -20071,9 +20079,9 @@ } }, "openvidu-browser": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/openvidu-browser/-/openvidu-browser-2.21.0.tgz", - "integrity": "sha512-dQZ8lsvt7zydklG/naHtaWpnhRo5ErTjEkWslmg6e2fjFVy+GmGVrJBeMJrJDM2FrOWv8aH86fRNR+P7eESB9g==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/openvidu-browser/-/openvidu-browser-2.22.0.tgz", + "integrity": "sha512-fug7V5WZPwEXCF4im6RzhWSbv9nYB4QWMXrEQBEsh7RI1VPQ5Jl2VcindiUeMtN+quLqeTjXSRUh4lfkrTlQSQ==", "requires": { "events": "3.3.0", "freeice": "2.2.2", @@ -20532,7 +20540,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-custom-properties": { "version": "12.1.4", @@ -20602,13 +20611,15 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true + "dev": true, + "requires": {} }, "postcss-gap-properties": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-image-set-function": { "version": "4.0.6", @@ -20634,7 +20645,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-lab-function": { "version": "4.1.2", @@ -20661,19 +20673,22 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -20717,13 +20732,15 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-place": { "version": "7.0.4", @@ -20788,7 +20805,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-not": { "version": "5.0.0", @@ -21534,7 +21552,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -22162,7 +22181,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -22690,7 +22710,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -22987,7 +23008,8 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "dev": true, + "requires": {} }, "xml2js": { "version": "0.4.23", diff --git a/openvidu-server/src/dashboard/package.json b/openvidu-server/src/dashboard/package.json index abdc7943..2b48f992 100644 --- a/openvidu-server/src/dashboard/package.json +++ b/openvidu-server/src/dashboard/package.json @@ -1,55 +1,55 @@ { "dependencies": { - "@angular/animations": "13.3.0", - "@angular/cdk": "13.3.0", - "@angular/common": "13.3.0", - "@angular/compiler": "13.3.0", - "@angular/core": "13.3.0", - "@angular/flex-layout": "13.0.0-beta.38", - "@angular/forms": "13.3.0", - "@angular/material": "13.3.0", - "@angular/platform-browser": "13.3.0", - "@angular/platform-browser-dynamic": "13.3.0", - "@angular/router": "13.3.0", - "core-js": "3.21.1", - "jquery": "3.6.0", - "openvidu-browser": "2.21.0", - "rxjs": "7.5.5", - "tslib": "2.3.1", + "@angular/animations": "13.3.0", + "@angular/cdk": "13.3.0", + "@angular/common": "13.3.0", + "@angular/compiler": "13.3.0", + "@angular/core": "13.3.0", + "@angular/flex-layout": "13.0.0-beta.38", + "@angular/forms": "13.3.0", + "@angular/material": "13.3.0", + "@angular/platform-browser": "13.3.0", + "@angular/platform-browser-dynamic": "13.3.0", + "@angular/router": "13.3.0", + "core-js": "3.21.1", + "jquery": "3.6.0", + "openvidu-browser": "2.22.0", + "rxjs": "7.5.5", + "tslib": "2.3.1", "zone.js": "0.11.5" - }, + }, "devDependencies": { - "@angular-devkit/build-angular": "13.3.0", - "@angular/cli": "13.3.0", - "@angular/compiler-cli": "13.3.0", - "@angular/language-service": "13.3.0", - "@types/jasmine": "3.6.6", - "@types/node": "17.0.21", - "codelyzer": "6.0.2", - "jasmine-core": "4.0.1", - "jasmine-spec-reporter": "7.0.0", - "karma": "6.3.17", - "karma-chrome-launcher": "3.1.1", - "karma-coverage-istanbul-reporter": "3.0.3", - "karma-jasmine": "4.0.1", - "karma-jasmine-html-reporter": "1.7.0", - "protractor": "7.0.0", - "ts-node": "10.7.0", - "tslint": "6.1.3", + "@angular-devkit/build-angular": "13.3.0", + "@angular/cli": "13.3.0", + "@angular/compiler-cli": "13.3.0", + "@angular/language-service": "13.3.0", + "@types/jasmine": "3.6.6", + "@types/node": "17.0.21", + "codelyzer": "6.0.2", + "jasmine-core": "4.0.1", + "jasmine-spec-reporter": "7.0.0", + "karma": "6.3.17", + "karma-chrome-launcher": "3.1.1", + "karma-coverage-istanbul-reporter": "3.0.3", + "karma-jasmine": "4.0.1", + "karma-jasmine-html-reporter": "1.7.0", + "protractor": "7.0.0", + "ts-node": "10.7.0", + "tslint": "6.1.3", "typescript": "4.5.4" - }, - "license": "Apache-2.0", - "name": "frontend", - "private": true, + }, + "license": "Apache-2.0", + "name": "frontend", + "private": true, "scripts": { - "build": "./node_modules/.bin/ng build --base-href /dashboard/ --output-path ../main/resources/static/dashboard", - "build-prod": "./node_modules/.bin/ng build --configuration production --base-href /dashboard/ --output-path ../main/resources/static/dashboard", - "e2e": "ng e2e", - "lint": "ng lint", - "ng": "ng", - "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points", - "start": "ng serve", + "build": "./node_modules/.bin/ng build --base-href /dashboard/ --output-path ../main/resources/static/dashboard", + "build-prod": "./node_modules/.bin/ng build --configuration production --base-href /dashboard/ --output-path ../main/resources/static/dashboard", + "e2e": "ng e2e", + "lint": "ng lint", + "ng": "ng", + "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points", + "start": "ng serve", "test": "ng test" - }, + }, "version": "0.0.0" -} +} \ No newline at end of file diff --git a/openvidu-testapp/package.json b/openvidu-testapp/package.json index 3e90ff26..eb2d9cbc 100644 --- a/openvidu-testapp/package.json +++ b/openvidu-testapp/package.json @@ -16,7 +16,7 @@ "core-js": "3.4.7", "hammerjs": "2.0.8", "json-stringify-safe": "^5.0.1", - "openvidu-browser": "2.21.0", + "openvidu-browser": "2.22.0", "openvidu-node-client": "2.21.0", "rxjs": "6.5.3", "zone.js": "0.10.2" @@ -45,5 +45,5 @@ "start": "ng serve", "test": "ng test" }, - "version": "2.21.0" + "version": "2.22.0" } \ No newline at end of file From d85bd79da9f2aab3fb3829fdfb34f5d321daa862 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 12 May 2022 17:31:17 +0200 Subject: [PATCH 25/25] Update OPENVIDU_UPGRADABLE_VERSION to 2.22 in installation scripts --- .../deployments/ce/docker-compose/install_openvidu.sh | 2 +- .../master-node/install_openvidu_enterprise_master_node.sh | 2 +- .../pro/docker-compose/media-node/install_media_node.sh | 2 +- .../docker-compose/openvidu-server-pro/install_openvidu_pro.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh b/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh index 046d3202..691487f6 100755 --- a/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh +++ b/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh @@ -3,7 +3,7 @@ # Global variables OPENVIDU_FOLDER=openvidu OPENVIDU_VERSION=master -OPENVIDU_UPGRADABLE_VERSION="2.21" +OPENVIDU_UPGRADABLE_VERSION="2.22" DOWNLOAD_URL=https://raw.githubusercontent.com/OpenVidu/openvidu/${OPENVIDU_VERSION} # Support docker compose v1 and v2 diff --git a/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh b/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh index dbc0a732..0d5f300a 100755 --- a/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh +++ b/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh @@ -3,7 +3,7 @@ # Global variables OPENVIDU_FOLDER=openvidu OPENVIDU_VERSION=master -OPENVIDU_UPGRADABLE_VERSION="2.21" +OPENVIDU_UPGRADABLE_VERSION="2.22" AWS_SCRIPTS_FOLDER=${OPENVIDU_FOLDER}/cluster/aws ELASTICSEARCH_FOLDER=${OPENVIDU_FOLDER}/elasticsearch BEATS_FOLDER=${OPENVIDU_FOLDER}/beats diff --git a/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh b/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh index 3ce0de4a..18813280 100755 --- a/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh +++ b/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh @@ -2,7 +2,7 @@ MEDIA_NODE_FOLDER=kms MEDIA_NODE_VERSION=master -OPENVIDU_UPGRADABLE_VERSION="2.21" +OPENVIDU_UPGRADABLE_VERSION="2.22" BEATS_FOLDER=${MEDIA_NODE_FOLDER}/beats OPENVIDU_RECORDINGS_FOLDER="/opt/openvidu/recordings" DOWNLOAD_URL=https://raw.githubusercontent.com/OpenVidu/openvidu/${MEDIA_NODE_VERSION} diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh index 6d6095d7..036a4777 100755 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh @@ -3,7 +3,7 @@ # Global variables OPENVIDU_FOLDER=openvidu OPENVIDU_VERSION=master -OPENVIDU_UPGRADABLE_VERSION="2.21" +OPENVIDU_UPGRADABLE_VERSION="2.22" AWS_SCRIPTS_FOLDER=${OPENVIDU_FOLDER}/cluster/aws ELASTICSEARCH_FOLDER=${OPENVIDU_FOLDER}/elasticsearch BEATS_FOLDER=${OPENVIDU_FOLDER}/beats