[mirotalksfu] - fix global lobby

هذا الالتزام موجود في:
Miroslav Pejic
2025-09-10 19:46:16 +02:00
الأصل 08f8229fb6
التزام 831e80ac67
6 ملفات معدلة مع 40 إضافات و9 حذوفات

عرض الملف

@@ -64,7 +64,7 @@ dev dependencies: {
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.9.59
* @version 1.9.60
*
*/
@@ -1923,7 +1923,7 @@ function startServer() {
return cb('isLocked');
}
if ((room.isLobbyEnabled() || room.isGlobalLobbyEnabled()) && !isPresenter) {
if (room.isLobbyEnabled() && !isPresenter) {
log.debug(
'The user is currently waiting to join the room because the lobby is enabled, and they are not a presenter'
);
@@ -1935,6 +1935,11 @@ function startServer() {
return cb('isLobby');
}
if (room.isGlobalLobbyEnabled() && !isPresenter) {
log.debug('The user is currently waiting to join the room because the global lobby is enabled');
return cb('isGlobalLobby');
}
if ((hostCfg.protected || hostCfg.user_auth) && isPresenter && !hostCfg.users_from_db) {
const roomAllowedForUser = isRoomAllowedForUser('[Join]', peer_name, room.id);
if (!roomAllowedForUser) {

4
package-lock.json مولّد
عرض الملف

@@ -1,12 +1,12 @@
{
"name": "mirotalksfu",
"version": "1.9.59",
"version": "1.9.60",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "mirotalksfu",
"version": "1.9.59",
"version": "1.9.60",
"license": "AGPL-3.0",
"dependencies": {
"@aws-sdk/client-s3": "^3.884.0",

عرض الملف

@@ -1,6 +1,6 @@
{
"name": "mirotalksfu",
"version": "1.9.59",
"version": "1.9.60",
"description": "WebRTC SFU browser-based video calls",
"main": "Server.js",
"scripts": {

عرض الملف

@@ -78,7 +78,7 @@ let BRAND = {
},
about: {
imageUrl: '../images/mirotalk-logo.gif',
title: '<strong>WebRTC SFU v1.9.59</strong>',
title: '<strong>WebRTC SFU v1.9.60</strong>',
html: `
<button
id="support-button"

عرض الملف

@@ -11,7 +11,7 @@ if (location.href.substr(0, 5) !== 'https') location.href = 'https' + location.h
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.9.59
* @version 1.9.60
*
*/
@@ -5585,7 +5585,7 @@ function showAbout() {
position: 'center',
imageUrl: BRAND.about?.imageUrl && BRAND.about.imageUrl.trim() !== '' ? BRAND.about.imageUrl : image.about,
customClass: { image: 'img-about' },
title: BRAND.about?.title && BRAND.about.title.trim() !== '' ? BRAND.about.title : 'WebRTC SFU v1.9.59',
title: BRAND.about?.title && BRAND.about.title.trim() !== '' ? BRAND.about.title : 'WebRTC SFU v1.9.60',
html: `
<br />
<div id="about">

عرض الملف

@@ -9,7 +9,7 @@
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.9.59
* @version 1.9.60
*
*/
@@ -517,6 +517,11 @@ class RoomClient {
return this.unlockTheRoom();
}
if (room === 'isGlobalLobby') {
console.warn('00-WARNING ----> Room GLOBAL Lobby Enabled, Try later presenter not in room');
return this.presenterNotInRoom();
}
if (room === 'isLobby') {
this.RoomIsLobby = true;
this.event(_EVENTS.lobbyOn);
@@ -8166,6 +8171,27 @@ class RoomClient {
});
}
presenterNotInRoom() {
this.sound('lobby');
Swal.fire({
allowOutsideClick: false,
allowEscapeKey: false,
showDenyButton: true,
showConfirmButton: false,
background: swalBackground,
icon: 'warning',
title: 'Lobby enabled and no presenter available',
text: 'A presenter is required to start the meeting. Please try joining again later.',
denyButtonText: `Leave room`,
showClass: { popup: 'animate__animated animate__fadeInDown' },
hideClass: { popup: 'animate__animated animate__fadeOutUp' },
timer: 6000,
timerProgressBar: true,
}).then(() => {
this.exit();
});
}
waitJoinConfirm() {
this.sound('lobby');
Swal.fire({