No video/audio Chat unavailable

After succeed to make media soup-demo works locally, i started a visio-conferency with other peers, but i can only see my video output and not others, how can i resolve this please ?

Am also having an issue with “Chat unavailable”, is there a configuration, i missed ?

i am able to join room, change name, and changed name is reflecting on other device.

But no video/audio and chat

You are receiving black videos? You must be missing listenIps setting, you need to set listenIps.ip to your local ip and announcedIp to 0.0.0.0 on local machine. Not sure about the chat you can search the error inside project.

This is demo project, use it as guidance and create your own app.

I setup the config file with my local IP address only ,but still chat unavailable.

And the video/audio working? If noy kindly show peer connection details from chrome://webrtc-internals. Chat not working is not an issue, you will have to look into the code to find out the cause.

video/audio and chat unavailable is not working

Show the configuration. And also share screenshots from chrome://webrtc-internals

/**

  • IMPORTANT (PLEASE READ THIS):
  • This is not the “configuration file” of mediasoup. This is the configuration
  • file of the mediasoup-demo app. mediasoup itself is a server-side library, it
  • does not read any “configuration file”. Instead it exposes an API. This demo
  • application just reads settings from this file (once copied to config.js) and
  • calls the mediasoup API with those settings when appropriate.
    */

const os = require(‘os’);

module.exports =
{
// Listening hostname (just for gulp live task).
domain : process.env.DOMAIN || ‘localhost’,
// Signaling settings (protoo WebSocket server and HTTP API server).
https :
{
listenIp : ‘0.0.0.0’,
//listenIp : ‘192.168.1.8’,
// 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}/certs/fullchain.pem,
key : process.env.HTTPS_CERT_PRIVKEY || ${__dirname}/certs/privkey.pem
}
},
// mediasoup settings.
mediasoup :
{
// Number of mediasoup workers to launch.
numWorkers : Object.keys(os.cpus()).length,
// mediasoup WorkerSettings.
// See mediasoup :: API
workerSettings :
{
logLevel : ‘warn’,
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 mediasoup :: API
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 WebRtcServer options for WebRTC endpoints (mediasoup-client,
// libmediasoupclient).
// See mediasoup :: API
// NOTE: mediasoup-demo/server/lib/Room.js will increase this port for
// each mediasoup Worker since each Worker is a separate process.
webRtcServerOptions :
{
listenInfos :
[
{
protocol : ‘udp’,
ip : process.env.MEDIASOUP_LISTEN_IP || ‘0.0.0.0’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP || ‘0.0.0.0’,
port : 44444
},
{
protocol : ‘tcp’,
ip : process.env.MEDIASOUP_LISTEN_IP || ‘0.0.0.0’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP || ‘0.0.0.0’,
port : 44444
}
],
},
// mediasoup WebRtcTransport options for WebRTC endpoints (mediasoup-client,
// libmediasoupclient).
// See mediasoup :: API
webRtcTransportOptions :
{
// listenIps is not needed since webRtcServer is used.
// However passing MEDIASOUP_USE_WEBRTC_SERVER=false will change it.
listenIps :
[
{
ip : process.env.MEDIASOUP_LISTEN_IP || ‘192.168.1.8’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP || ‘0.0.0.0’
}
],
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 mediasoup :: API
plainTransportOptions :
{
listenIp :
{
ip : process.env.MEDIASOUP_LISTEN_IP || ‘0.0.0.0’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP || ‘0.0.0.0’
},
maxSctpMessageSize : 262144
}
}
};

Ok, kindly show ice candidate grid data from webrtc-internals

Its shows empty…

In both of the peer connections? Check for errors in web console and node server

C:\mediasoup-demo\app\lib\components\transitions.jsx
1:27 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
2:36 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
3:56 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
4:1 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
5:45 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
6:16 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
7:5 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
8:22 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
9:29 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
10:9 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
11:3 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
12:13 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
13:18 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
14:3 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
15:1 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
16:19 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
17:2 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
18:30 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
19:26 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
20:3 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
21:1 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style
22:19 error Expected linebreaks to be ‘LF’ but found ‘CRLF’ linebreak-style

Can you share with me the code both client/server? I can better look it.

I have solved this problem now,you should change the ip ‘0.0.0.0’ to ‘yourIP’ for webRtcServerOptions、webRtcTransportOptions and plainTransportOptions at the end of config.js. Follow is the section you should change.

webRtcServerOptions :
{
listenInfos :
[
{
protocol : ‘udp’,
ip : process.env.MEDIASOUP_LISTEN_IP || ‘0.0.0.0’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP,
port : 44444
},
{
protocol : ‘tcp’,
ip : process.env.MEDIASOUP_LISTEN_IP || ‘0.0.0.0’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP,
port : 44444
}
],
},
// mediasoup WebRtcTransport options for WebRTC endpoints (mediasoup-client,
// libmediasoupclient).
// See mediasoup :: API
webRtcTransportOptions :
{
// listenIps is not needed since webRtcServer is used.
// However passing MEDIASOUP_USE_WEBRTC_SERVER=false will change it.
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 mediasoup :: API
plainTransportOptions :
{
listenIp :
{
ip : process.env.MEDIASOUP_LISTEN_IP || ‘0.0.0.0’,
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP
},
maxSctpMessageSize : 262144
}

Came across the same problem. The reason was finally found, because the udp port was not “released” in the security group of the cloud server. You can also try adding “&forceTcp=true” to the url as follows. If it works, the reason for the problem you mentioned is that the udp port is not “released”.

https://x.x.x.x:3000/?info=true&roomId=xxx&forceTcp=true