117 lines
4.1 KiB
JavaScript
117 lines
4.1 KiB
JavaScript
/* eslint-disable no-unused-vars, no-var */
|
||
|
||
var config = {};
|
||
|
||
config.hosts = {
|
||
domain: 'meet.jitsi',
|
||
muc: 'muc.meet.jitsi',
|
||
};
|
||
|
||
// ВАЖНО: Переопределяем настройки из основного config.js
|
||
// Используем HTTP (ws://) вместо HTTPS (wss://) для локальной разработки
|
||
// Это соответствует настройкам в docker-compose.yml: PUBLIC_URL_PROTOCOL=http, DISABLE_HTTPS=1
|
||
// Используем 127.0.0.1 вместо localhost, чтобы избежать проблем с кешированием браузера
|
||
config.bosh = 'http://127.0.0.1:8443/http-bind';
|
||
config.websocket = 'ws://127.0.0.1:8443/xmpp-websocket';
|
||
|
||
// Переопределяем hosts для правильной работы
|
||
if (typeof config.hosts === 'undefined') {
|
||
config.hosts = {};
|
||
}
|
||
config.hosts.domain = 'meet.jitsi';
|
||
config.hosts.muc = 'muc.meet.jitsi';
|
||
|
||
// Язык по умолчанию
|
||
config.defaultLanguage = 'ru';
|
||
|
||
// Отключить prejoin страницу
|
||
config.prejoinPageEnabled = false;
|
||
|
||
// Не начинать с выключенным аудио/видео
|
||
config.startWithAudioMuted = false;
|
||
config.startWithVideoMuted = false;
|
||
|
||
// Отключить deep linking
|
||
config.disableDeepLinking = true;
|
||
|
||
// Отключить welcome/close страницы
|
||
config.enableWelcomePage = false;
|
||
config.enableClosePage = false;
|
||
|
||
// Отключить сторонние запросы
|
||
config.disableThirdPartyRequests = true;
|
||
|
||
// Разрешение видео: минимум 720P, рекомендация 1080P
|
||
config.resolution = 1080;
|
||
|
||
config.constraints = {
|
||
video: {
|
||
height: {
|
||
ideal: 1080,
|
||
max: 1080,
|
||
min: 720
|
||
},
|
||
width: {
|
||
ideal: 1920,
|
||
max: 1920,
|
||
min: 1280
|
||
}
|
||
}
|
||
};
|
||
|
||
// Включить обнаружение шумного микрофона
|
||
config.enableNoisyMicDetection = true;
|
||
|
||
// Отключить статистику и метрики
|
||
config.disableStats = true;
|
||
config.analytics = {
|
||
disabled: true
|
||
};
|
||
|
||
// Отключить запись
|
||
config.disableLocalRecording = true;
|
||
|
||
// КРИТИЧНО: Переопределяем bosh и websocket с защитой от перезаписи
|
||
// Используем Object.defineProperty для защиты от перезаписи основным config.js
|
||
(function() {
|
||
var boshUrl = 'http://127.0.0.1:8443/http-bind';
|
||
var websocketUrl = 'ws://127.0.0.1:8443/xmpp-websocket';
|
||
|
||
// Устанавливаем значения сразу
|
||
config.bosh = boshUrl;
|
||
config.websocket = websocketUrl;
|
||
|
||
// Защищаем от перезаписи через Object.defineProperty
|
||
try {
|
||
Object.defineProperty(config, 'bosh', {
|
||
get: function() { return boshUrl; },
|
||
set: function(value) {
|
||
console.warn('[Jitsi Custom Config] Попытка изменить config.bosh на', value, '- игнорируется');
|
||
},
|
||
configurable: false,
|
||
enumerable: true
|
||
});
|
||
|
||
Object.defineProperty(config, 'websocket', {
|
||
get: function() { return websocketUrl; },
|
||
set: function(value) {
|
||
console.warn('[Jitsi Custom Config] Попытка изменить config.websocket на', value, '- игнорируется');
|
||
},
|
||
configurable: false,
|
||
enumerable: true
|
||
});
|
||
} catch (e) {
|
||
// Если не удалось установить защиту, используем периодическую проверку
|
||
setInterval(function() {
|
||
if (config.bosh !== boshUrl) {
|
||
config.bosh = boshUrl;
|
||
console.log('[Jitsi Custom Config] Восстановлен config.bosh');
|
||
}
|
||
if (config.websocket !== websocketUrl) {
|
||
config.websocket = websocketUrl;
|
||
console.log('[Jitsi Custom Config] Восстановлен config.websocket');
|
||
}
|
||
}, 100);
|
||
}
|
||
})();
|