This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
// eslint-disable-next-line
|
||||
var config =
|
||||
{
|
||||
loginEnabled : false,
|
||||
developmentPort : 3443,
|
||||
productionPort : 443,
|
||||
multipartyServer : 'fqdn',
|
||||
turnServers : [
|
||||
{
|
||||
urls : [
|
||||
'turn:example.com:443?transport=tcp'
|
||||
],
|
||||
username : 'example',
|
||||
credential : 'example'
|
||||
}
|
||||
],
|
||||
/**
|
||||
* If defaultResolution is set, it will override user settings when joining:
|
||||
* low ~ 320x240
|
||||
* medium ~ 640x480
|
||||
* high ~ 1280x720
|
||||
* veryhigh ~ 1920x1080
|
||||
* ultra ~ 3840x2560
|
||||
**/
|
||||
defaultResolution : 'medium',
|
||||
// Enable or disable simulcast for webcam video
|
||||
simulcast : true,
|
||||
// Enable or disable simulcast for screen sharing video
|
||||
simulcastSharing : false,
|
||||
// Simulcast encoding layers and levels
|
||||
simulcastEncodings :
|
||||
[
|
||||
{ scaleResolutionDownBy: 4 },
|
||||
{ scaleResolutionDownBy: 2 },
|
||||
{ scaleResolutionDownBy: 1 }
|
||||
],
|
||||
// Socket.io request timeout
|
||||
requestTimeout : 10000,
|
||||
transportOptions :
|
||||
{
|
||||
tcp : true
|
||||
},
|
||||
lastN : 4,
|
||||
mobileLastN : 1,
|
||||
background : 'images/background.jpg',
|
||||
// Add file and uncomment for adding logo to appbar
|
||||
// logo : 'images/logo.svg',
|
||||
title : 'Multiparty meeting',
|
||||
theme :
|
||||
{
|
||||
palette :
|
||||
{
|
||||
primary :
|
||||
{
|
||||
main : '#313131'
|
||||
}
|
||||
},
|
||||
overrides :
|
||||
{
|
||||
MuiAppBar :
|
||||
{
|
||||
colorPrimary :
|
||||
{
|
||||
backgroundColor : '#313131'
|
||||
}
|
||||
},
|
||||
MuiFab :
|
||||
{
|
||||
primary :
|
||||
{
|
||||
backgroundColor : '#5F9B2D',
|
||||
'&:hover' :
|
||||
{
|
||||
backgroundColor : '#518029'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
typography :
|
||||
{
|
||||
useNextVariants : true
|
||||
}
|
||||
}
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,158 @@
|
||||
const os = require("os");
|
||||
const ifaces = os.networkInterfaces();
|
||||
|
||||
function getListenIps() {
|
||||
let listenIP = [];
|
||||
Object.keys(ifaces).forEach(function (ifname) {
|
||||
var alias = 0;
|
||||
|
||||
ifaces[ifname].forEach(function (iface) {
|
||||
if (
|
||||
(iface.family !== "IPv4" &&
|
||||
(iface.family !== "IPv6" || iface.scopeid !== 0)) ||
|
||||
iface.internal !== false
|
||||
) {
|
||||
// skip over internal (i.e. 127.0.0.1) and non-ipv4 or ipv6 non global addresses
|
||||
return;
|
||||
}
|
||||
listenIP.push({ ip: iface.address, announcedIp: null });
|
||||
|
||||
++alias;
|
||||
});
|
||||
});
|
||||
return listenIP;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
// oAuth2 conf
|
||||
/* auth :
|
||||
{
|
||||
lti :
|
||||
{
|
||||
consumerKey : '_bo2uqnwon1ym4qkte5hhd4fzlnoufvts5h3hblxzcy',
|
||||
consumerSecret : '_1xpnaa4iw36cwpnx7991e630yo0u4044so1crhvcnz'
|
||||
},
|
||||
oidc:
|
||||
{
|
||||
// The issuer URL for OpenID Connect discovery
|
||||
// The OpenID Provider Configuration Document
|
||||
// could be discovered on:
|
||||
// issuerURL + '/.well-known/openid-configuration'
|
||||
|
||||
issuerURL : 'https://example.com',
|
||||
clientOptions :
|
||||
{
|
||||
client_id : '',
|
||||
client_secret : '',
|
||||
scope : 'openid email profile',
|
||||
// where client.example.com is your multiparty meeting server
|
||||
redirect_uri : 'https://client.example.com/auth/callback'
|
||||
}
|
||||
}
|
||||
},*/
|
||||
redisOptions: {},
|
||||
// session cookie secret
|
||||
cookieSecret: "T0P-S3cR3t_cook!e",
|
||||
cookieName: "multiparty-meeting.sid",
|
||||
tls: {
|
||||
cert: `${__dirname}/../certs/cert.pem`,
|
||||
key: `${__dirname}/../certs/privkey.pem`
|
||||
},
|
||||
// Listening port for https server.
|
||||
listeningPort: 443,
|
||||
// Any http request is redirected to https.
|
||||
// Listening port for http server.
|
||||
listeningRedirectPort: 80,
|
||||
// Listens only on http, only on listeningPort
|
||||
// listeningRedirectPort disabled
|
||||
// use case: loadbalancer backend
|
||||
httpOnly: false,
|
||||
// WebServer/Express trust proxy config for httpOnly mode
|
||||
// You can find more info:
|
||||
// - https://expressjs.com/en/guide/behind-proxies.html
|
||||
// - https://www.npmjs.com/package/proxy-addr
|
||||
// use case: loadbalancer backend
|
||||
trustProxy : '',
|
||||
// If this is set to true, only signed-in users will be able
|
||||
// to join a room directly. Non-signed-in users (guests) will
|
||||
// always be put in the lobby regardless of room lock status.
|
||||
// If false, there is no difference between guests and signed-in
|
||||
// users when joining.
|
||||
requireSignInToAccess: false,
|
||||
// This flag has no effect when requireSignInToAccess is false
|
||||
// When truthy, the room will be open to all users when the first
|
||||
// authenticated user has already joined the room.
|
||||
activateOnHostJoin: false,
|
||||
// Mediasoup settings
|
||||
mediasoup: {
|
||||
numWorkers: Object.keys(os.cpus()).length,
|
||||
// mediasoup Worker settings.
|
||||
worker: {
|
||||
logLevel: "warn",
|
||||
logTags: ["info", "ice", "dtls", "rtp", "srtp", "rtcp"],
|
||||
rtcMinPort: 40000,
|
||||
rtcMaxPort: 49999
|
||||
},
|
||||
// mediasoup Router settings.
|
||||
router: {
|
||||
// Router media codecs.
|
||||
mediaCodecs: [
|
||||
{
|
||||
kind: 'audio',
|
||||
mimeType: 'audio/opus',
|
||||
clockRate: 48000,
|
||||
channels: 2
|
||||
},
|
||||
{
|
||||
kind: 'video',
|
||||
mimeType: 'video/VP8',
|
||||
clockRate: 90000,
|
||||
parameters:
|
||||
{
|
||||
'x-google-start-bitrate': 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
kind: 'video',
|
||||
mimeType: 'video/VP9',
|
||||
clockRate: 90000,
|
||||
parameters:
|
||||
{
|
||||
'profile-id': 2,
|
||||
'x-google-start-bitrate': 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
kind: 'video',
|
||||
mimeType: 'video/h264',
|
||||
clockRate: 90000,
|
||||
parameters:
|
||||
{
|
||||
'packetization-mode': 1,
|
||||
'profile-level-id': '4d0032',
|
||||
'level-asymmetry-allowed': 1,
|
||||
'x-google-start-bitrate': 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
kind: 'video',
|
||||
mimeType: 'video/h264',
|
||||
clockRate: 90000,
|
||||
parameters:
|
||||
{
|
||||
'packetization-mode': 1,
|
||||
'profile-level-id': '42e01f',
|
||||
'level-asymmetry-allowed': 1,
|
||||
'x-google-start-bitrate': 1000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// mediasoup WebRtcTransport settings.
|
||||
webRtcTransport: {
|
||||
listenIps: getListenIps(),
|
||||
maxIncomingBitrate: 1500000,
|
||||
initialAvailableOutgoingBitrate: 1000000
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user