Disable deep linking to fix mobile browser video chat
Mobile users were being redirected to a "download the app" page instead of loading the web conference. Setting disableDeepLinking=true keeps mobile browsers in the web UI. Also added mobile codec preference order. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dc612be8ee
commit
fb104ed8bb
|
|
@ -0,0 +1,99 @@
|
||||||
|
// Jeffsi Meet Custom Config - High Quality Video Settings
|
||||||
|
// This file is appended to config.js to override default settings
|
||||||
|
|
||||||
|
// Higher bitrate limits for better video quality
|
||||||
|
config.videoQuality.vp9 = {
|
||||||
|
maxBitratesVideo: {
|
||||||
|
low: 200000,
|
||||||
|
standard: 700000,
|
||||||
|
high: 2500000
|
||||||
|
},
|
||||||
|
scalabilityModeEnabled: true
|
||||||
|
};
|
||||||
|
|
||||||
|
config.videoQuality.vp8 = {
|
||||||
|
maxBitratesVideo: {
|
||||||
|
low: 200000,
|
||||||
|
standard: 500000,
|
||||||
|
high: 2000000
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
config.videoQuality.h264 = {
|
||||||
|
maxBitratesVideo: {
|
||||||
|
low: 200000,
|
||||||
|
standard: 500000,
|
||||||
|
high: 2000000
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Quality level thresholds
|
||||||
|
config.videoQuality.minHeightForQualityLvl = {
|
||||||
|
180: 'low',
|
||||||
|
360: 'standard',
|
||||||
|
720: 'high'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Higher resolution constraints
|
||||||
|
config.constraints = {
|
||||||
|
video: {
|
||||||
|
height: { ideal: 720, max: 1080, min: 180 },
|
||||||
|
width: { ideal: 1280, max: 1920, min: 320 },
|
||||||
|
frameRate: { ideal: 30, max: 30, min: 15 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// STUN + TURN servers for NAT traversal (critical for mobile)
|
||||||
|
config.p2p.stunServers = [
|
||||||
|
{ urls: 'stun:159.195.32.209:3478' },
|
||||||
|
{ urls: 'stun:stun.l.google.com:19302' },
|
||||||
|
{ urls: 'stun:stun1.l.google.com:19302' }
|
||||||
|
];
|
||||||
|
|
||||||
|
// P2P ICE transport policy - use 'all' to allow both relay and direct
|
||||||
|
config.p2p.iceTransportPolicy = 'all';
|
||||||
|
|
||||||
|
// TURN servers for P2P (relay fallback for symmetric NAT / mobile)
|
||||||
|
config.p2p.iceServers = [
|
||||||
|
{
|
||||||
|
urls: ['turn:159.195.32.209:3478?transport=udp', 'turn:159.195.32.209:3478?transport=tcp'],
|
||||||
|
username: 'turnuser',
|
||||||
|
credential: 'jeffsi-turn-secret-2025'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// Increase last N (max participants with video showing)
|
||||||
|
config.channelLastN = 25;
|
||||||
|
|
||||||
|
// Enable layer suspension for bandwidth adaptation
|
||||||
|
config.enableLayerSuspension = true;
|
||||||
|
|
||||||
|
// Start in tile/gallery view by default (show all participants)
|
||||||
|
config.startInTileView = true;
|
||||||
|
|
||||||
|
// Disable auto-pinning of screen shares and dominant speaker
|
||||||
|
config.disableSelfView = false;
|
||||||
|
config.disableSelfViewSettings = false;
|
||||||
|
|
||||||
|
// Enable "End meeting for all" button
|
||||||
|
config.disableRemoteMute = false;
|
||||||
|
config.remoteVideoMenu = {
|
||||||
|
disableKick: false,
|
||||||
|
disableGrantModerator: false
|
||||||
|
};
|
||||||
|
|
||||||
|
// Security UI options
|
||||||
|
config.securityUi = {
|
||||||
|
disableLobbyPassword: false,
|
||||||
|
hideLobbyButton: false
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable close page after meeting ends
|
||||||
|
config.enableClosePage = true;
|
||||||
|
|
||||||
|
// Disable deep linking - keep mobile users in the web browser
|
||||||
|
// instead of redirecting to the native Jitsi Meet app
|
||||||
|
config.disableDeepLinking = true;
|
||||||
|
|
||||||
|
// Mobile-friendly: prefer VP8 (better hardware decode support on mobile)
|
||||||
|
config.videoQuality.mobileCodecPreferenceOrder = ["VP8", "H264", "VP9", "AV1"];
|
||||||
Loading…
Reference in New Issue