Problem with the plug-in for voice calls and screen sharing

Hello! I’m experiencing an issue with the calls plugin. Mattermost version 10.6.1 is installed on Ubuntu 22.04. Nginx is not used; instead, a custom Mattermost web server is configured. HTTPS is also set up. Access is available from the web version, desktop app, and mobile app. Port 8443 is open for calls. The plugin version is 1.6.0. The call is made, and the call notification occurs, but the sound only goes one way. One participant can hear, while the other cannot. There are no issues with microphones and speakers; the necessary devices are configured and work well, for example, in Teams. Additionally, screen sharing does not work. The person sharing sees their screen, but the other participant only sees an empty window. The only thing that raises concerns is attached to the question in the log; everything else is informational messages. Please help; are there any ideas?

Mar 18 11:15:39 4394833-cf27084 mattermost[51992]: {“timestamp”:“2025-03-18 11:15:39.661 +03:00”,“level”:“warn”,“msg”:“Failed to accept RTP stream is already closed”,“caller”:“app/plugin_api.go:1014”,“plugin_id”:“com.mattermost.calls”,“origin”:“main.(*logger).Warn log.go:108”,“origin”:“webrtc/v4.(*PeerConnection).undeclaredRTPMediaProcessor github.com/pion/webrtc/v4@v4.0.7/peerconnection.go:1708”}
Mar 18 11:15:39 4394833-cf27084 mattermost[51992]: {“timestamp”:“2025-03-18 11:15:39.661 +03:00”,“level”:“warn”,“msg”:“Failed to accept RTCP stream is already closed”,“caller”:“app/plugin_api.go:1014”,“plugin_id”:“com.mattermost.calls”,“origin”:“main.(logger).Warn log.go:108",“origin”:"webrtc/v4.(PeerConnection).undeclaredRTCPMediaProcessor github.com/pion/webrtc/v4@v4.0.7/peerconnection.go:1767"}
Mar 18 11:15:39 4394833-cf27084 mattermost[51992]: {“timestamp”:“2025-03-18 11:15:39.661 +03:00”,“level”:“warn”,“msg”:“Failed to read from candidate tcp4 host 127.0.0.1:8443 (resolved: 127.0.0.1:8443): io: read/write on closed pipe”,“caller”:“app/plugin_api.go:1014”,“plugin_id”:“com.mattermost.calls”,“origin”:"main.(logger).Warn log.go:108",“origin”:"ice/v4.(candidateBase).recvLoop github.com/pion/ice/v4@v4.0.3/candidate_base.go:244"}
Mar 18 11:15:39 4394833-cf27084 mattermost[51992]: {“timestamp”:“2025-03-18 11:15:39.661 +03:00”,“level”:“warn”,“msg”:"Failed to read from candidate tcp4 host ..
.:8443 (resolved: ...


:8443): io: read/write on closed pipe”,“caller”:“app/plugin_api.go:1014”,“plugin_id”:“com.mattermost.calls”,“origin”:“main.(*logger).Warn log.go:108”,“origin”:“ice/v4.(*candidateBase).recvLoop github.com/pion/ice/v4@v4.0.3/candidate_base.go:244”}

Read through Calls self-hosted deployment - Mattermost documentation especially Calls self-hosted deployment - Mattermost documentation My first guess is you’re allowing 8443/UDP one way but not the other.

1 Like

This is a very strange situation. The one who is not heard from Russia. If you turn on the VPN, then everything works. But what does it mean? The server is located in the Netherlands. What does the location of users have to do with calls? Are there any other addresses used during calls other than the server where Mattermost is located?All alerts are working, and messages are being forwarded.

Posts and files go over 443/TCP Calls uses 8443/UDP by default. It will fall back to TCP if UDP isn’t available, and it’s possible either or both are blocked by a firewall.

If the problem is accessing 8443 over UDP, then why does enabling the VPN service on the client fix the problem?

I’d guess the VPN is tunneling past the device that isn’t allowing 8443/UDP

I tried opening port 8443 for UDP on the client computers. I have created rules in the firewall for incoming and outgoing connections. Both the client and the server have a fixed IP address. I ran the command from another separate computer
nc -z -u -v -n [ip] [port].
This returned succeeded for all three computers. For a server and for two clients. But still, the sound is heard only on one of the clients, and the screen sharing does not work in both directions.

What do the client logs say?

Browser - Option + ⌘ + J (on macOS), or Shift + CTRL + J (on Windows/Linux)

Mattermost app - “kebab” (three dots in upper left corner", Help, Show Logs

I’m not sure if I understood you correctly. Here is the log from the browser console.


What does this mean? You have 401s which means whatever is handling the requests is saying the clients aren’t authorized.

I meant that nginx or any other proxy is not used. We only configured the “web server” tab in the system console. Both users have administrator rules.

What’s the hostname or IP of the Mattermost server?

The site URL field in the web server tab?
Should I show you some part of config.json?

The URL a user would use to connect to. I just want to check a couple of things (no, nothing intrusive, I have no special back door or anything!)

This is not a very big secret :slight_smile:
I am ready to provide as much information as possible that will help.
Since the problem is the same regardless of the server location, we removed the experimental server in the Netherlands.

If you can access a Linux or Mac host with the issue, what does nmap -p8443 geosteam.k3soft.ru say? I can see it open from my laptop, but it’s very possible that their network is filtering that traffic. The fact that it works over a VPN supports that hypothesis.

This is the result of the nmap -p8443 geosteam.k3soft.ru command

And what about the reverse, from the Mattermost server to the client?

Please look at the results.
As an ip, I entered the static ip of the computer on which the mattermost client application is installed. The firewall has created a rule for incoming and outgoing requests on port 8443 udp.


That “filtered” response indicates that client may be behind another firewall other than the OS one.