diff --git a/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.html b/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.html
index 70d303a..f8b254a 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.html
+++ b/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.html
@@ -133,6 +133,7 @@
(onParticipantLeft)="onParticipantLeft($event)"
(onRecordingStartRequested)="onRecordingStartRequested($event)"
(onRecordingStopRequested)="onRecordingStopRequested($event)"
+ (onRoomCreated)="onRoomCreated($event)"
>
@if (features().canModerateRoom) {
diff --git a/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.ts
index 9b6565b..d70503c 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.ts
+++ b/frontend/projects/shared-meet-components/src/lib/pages/video-room/video-room.component.ts
@@ -23,16 +23,27 @@ import {
SessionStorageService,
WebComponentManagerService
} from '@lib/services';
-import { ParticipantRole, WebComponentEvent, WebComponentOutboundEventMessage } from '@lib/typings/ce';
+import {
+ MeetRoomPreferences,
+ ParticipantRole,
+ WebComponentEvent,
+ WebComponentOutboundEventMessage
+} from '@lib/typings/ce';
+import { MeetSignalType } from '@lib/typings/ce/event.model';
+
import {
ApiDirectiveModule,
+ DataPacket_Kind,
OpenViduComponentsUiModule,
OpenViduService,
ParticipantLeftEvent,
ParticipantLeftReason,
ParticipantModel,
RecordingStartRequestedEvent,
- RecordingStopRequestedEvent
+ RecordingStopRequestedEvent,
+ RemoteParticipant,
+ Room,
+ RoomEvent
} from 'openvidu-components-angular';
@Component({
@@ -100,6 +111,19 @@ export class VideoRoomComponent implements OnInit, OnDestroy {
this.wcManagerService.stopCommandsListener();
}
+ onRoomCreated(room: Room) {
+ room.on(
+ RoomEvent.DataReceived,
+ (payload: Uint8Array, participant?: RemoteParticipant, _?: DataPacket_Kind, topic?: string) => {
+ const event = JSON.parse(new TextDecoder().decode(payload));
+ if (topic === MeetSignalType.MEET_ROOM_PREFERENCES_UPDATED) {
+ const roomPreferences: MeetRoomPreferences = event.preferences;
+ this.featureConfService.setRoomPreferences(roomPreferences);
+ }
+ }
+ );
+ }
+
get isAdmin(): boolean {
return this.authService.isAdmin();
}