Here is my config file:
const os = require('os');
module.exports =
{
// Listening hostname (just for `gulp live` task).
domain: process.env.DOMAIN || 'devmedia1.domain.io',
// Signaling settings (protoo WebSocket server and HTTP API server).
https:
{
listenIp: '0.0.0.0',
// NOTE: Don't change listenPort (client app assumes 4443).
listenPort: process.env.PROTOO_LISTEN_PORT || 4443,
// NOTE: Set your own valid certificate files.
tls:
{
cert: process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/../data/letsencrypt/live/devmedia1.domain.io/fullchain.pem`,
key: process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/../data/letsencrypt/live/devmedia1.domain.io/privkey.pem`,
}
},
// mediasoup settings.
mediasoup:
{
// Number of mediasoup workers to launch.
numWorkers: Object.keys(os.cpus()).length,
// mediasoup WorkerSettings.
// See https://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
workerSettings:
{
logLevel: 'debug',
logTags:
[
'info',
'ice',
'dtls',
'rtp',
'srtp',
'rtcp',
'rtx',
'bwe',
'score',
'simulcast',
'svc',
'sctp'
],
rtcMinPort: process.env.MEDIASOUP_MIN_PORT || 40000,
rtcMaxPort: process.env.MEDIASOUP_MAX_PORT || 49999
},
// mediasoup Router options.
// See https://mediasoup.org/documentation/v3/mediasoup/api/#RouterOptions
routerOptions:
{
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 options for WebRTC endpoints (mediasoup-client,
// libmediasoupclient).
// See https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransportOptions
webRtcTransportOptions:
{
listenIps:
[
{
ip: process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP
}
],
initialAvailableOutgoingBitrate: 1000000,
minimumAvailableOutgoingBitrate: 600000,
maxSctpMessageSize: 262144,
// Additional options that are not part of WebRtcTransportOptions.
maxIncomingBitrate: 1500000
},
// mediasoup PlainTransport options for legacy RTP endpoints (FFmpeg,
// GStreamer).
// See https://mediasoup.org/documentation/v3/mediasoup/api/#PlainTransportOptions
plainTransportOptions:
{
listenIp:
{
// ip : process.env.MEDIASOUP_LISTEN_IP || '1.2.3.4',
ip: process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP
},
maxSctpMessageSize: 262144
}
}
};
The listening port and the tls certificates seem to be fine, since I could access the app via https and join a room. The problem is that remote video/audio streams don’t show up. Any idea why?
I’m also wondering where to put the turn server urls?
Thanks in advance.