Game voice: reverse proxy/UDP filtering issue investigation

Edited by @deterministic_bubble to indicate new topic intent:

Relevant part from original post:

[… native voice resource …]: It is working, however, looks like it doesn’t support reverse proxy or anti-DDoS protection, either the OVH or Cloudflare. It causes some players’ mics to be randomly disabled, they have to disable and re-enable the in-game voice.

Original post

We have tried several systems:

  1. pma-voice/mumble-voip: That’s the very first system we have tried. It is working, however, looks like it doesn’t support reverse proxy or anti-DDoS protection, either the OVH or Cloudflare. It causes some players’ mics to be randomly disabled, they have to disable and re-enable the in-game voice.
  2. ■■■■■■■■: Didn’t really try to use it. It doesn’t support the proxy server as well.
  3. ■■■■■■■■■: I am currently using it, so far so good, the only issue is that TeamSpeak 3 will randomly crash for no reason.

I am still looking for some other possible voice systems and I may try other paid systems. Suggestions and discussions are welcome.

1 Like

Huh? This is the first time we’ve seen this reported with that correlation… any repro steps, client logs, or packet captures of this happening?

3 Likes

There isn’t a way to reproduce. The strangest thing is that it only happens to some specific players, and they don’t have much in common. For myself, I never have this issue with or without anti-DDoS server. You can check the thread of pma-voice: https://forum.cfx.re/t/release-voip-pma-voice-mumble-voip-alternative/ A lot of people are having this issue. Recently we have made a conclusion that the issue is probably caused by anti-DDoS protection. I would like to help you to figure out, if you tell me how I can help.

Again, client-side logs of affected clients would perhaps be a start… as well as some info on the proxy topology: how are you proxying TCP/UDP traffic? Does anything reuse or randomly change source ports anywhere?

I am using Cloudflare Spectrum, the only thing I know is that the TCP/UDP traffic of the 30120 port is proxied. When I used OVH Game Firewall, I simply turned on the firewall and open the 30120 port, and set the type of application as “mumble”.

Right. I’ll do some code auditing within the next days to perhaps come up with some variants that handle UDP source ports differently to try if this helps with this class of issue.

Thanks. I will wait for your update. I will try to gether some players’ log files meanwhile.

Same problem on my server, running behind a DDoS protected reverse proxy (Cloudflare), opened up ports for both Mumble and FiveM, voice issue still happens, the hard part is only some get this problem, and it is easily resolved by turning off and on voice chat (reconnecting)

An external voice server (not DDoS protect whatsoever) solved this issue permanently.

Server build 4172 contains these changes - there was some logic error that’d trip if two or more clients with the same IP tried to establish a session at the same time, which would indeed happen when using a reverse proxy in such a way.

Thank you. I will test it ASAP.

One of my player just had three times disconnection today. I have DM’ed you his log file.

Was this on the current server release? It also seems like console logs don’t include DPrintf calls unless client has set developer on for more verbose logs.

Yes, it’s on 4172. However, I am using Linux version, if it’s related.

Welp, might need to re-retry this with verbose logging on then.

OK, I will ask them about it.

I sent you another 2 logs from my players. I didn’t see DPrintf either.

With @S1nScripts we actually have the same problem, we have a reverse proxy and have same issues that @BradFitt, @S1nScripts may give you some details on the problem / logs

1 Like

Hi,

So, it seems that a lot of server owners behind an L7 proxy have this problem (on the github issues of pma-voice we can see that). After some investigation, we can see that the player who has difficulties to speak in-game has been disconnected somehow from the mumble (needs more digging to verify that fact). To solve this problem client-side, the player need to disable and enable again the voice system in his settings.

I’m currently asking for client-side logs to my affected players.
Will be back when i have some news.

As above, client logs are useless in this regard unless logged with developer 1 toggled in console first. Also, have you tried the newer server versions as mentioned above?

Yes i know for the logs, it’s why i didn’t put any at this time. The newer server version has not yet been deployed.