Jigsaw-Code / outline-apps

Outline Client and Manager, developed by Jigsaw. Outline Manager makes it easy to create your own VPN server. Outline Client lets you share access to your VPN with anyone in your network, giving them access to the free and open internet.
https://getoutline.org/
Apache License 2.0
8.49k stars 1.37k forks source link

[Bug]: Voice call on many apps like discord and telegram doesn't work #1999

Open Spartan-ML opened 7 months ago

Spartan-ML commented 7 months ago

Application

Outline Client

Describe the bug

I've never been able to connect a voice call on discord or telegram while directly using the Outline client whether on my phone or desktop, it seems the problem lies within the client app since I tested outline access keys in other clients and voice call actually connects and works fine, I even indirectly tested outline client by running it on my PC and then sharing the connection over my PC's hotspot and after that connected my phone to the hotspot and voice calls worked fine.

Steps to reproduce

  1. Connect to VPN server using outline client
  2. Try to establish a voice call in Discord

What did you expect to happen?

To be able to establish a voice call

What actually happened?

voice calls never establish and loop trying to connect

Outline Version

1.13.0 (475388)

What operation system are you using?

Android, iOS, Linux, macOS, Windows

Operating System Version

No response

Screenshots and Videos

No response

cornzzy commented 7 months ago

It happens on TCP-only connection.

Spartan-ML commented 7 months ago

It happens on TCP-only connection.

That was my first thought, but then why does it work over a shared network, ultimately it has to go through the outline client. Why do the access keys work in other shadowsocks clients? The transmission is still TCP only.

cornzzy commented 7 months ago

Outline is not only shadowsocks, and different client apps have their own features and opinions. Maybe UDP over TCP is happening in your shared network if you're sure UDP is blocked on your server.

Spartan-ML commented 7 months ago

I did assume that maybe it's because of a closed port or a closed protocol at first, but then when I went ahead and opened all the ports/protocols on my server and it did nothing. I tried capturing some packets with Wireshark while using outline to establish a call in Telegram app and it seems each UDP packet was sent to a different IP address in a different location, to me it looked like it couldn't decide which location was the closest.