Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calls Do Not Connect #54

Closed
Warnthebase opened this issue Sep 16, 2023 · 2 comments
Closed

Calls Do Not Connect #54

Warnthebase opened this issue Sep 16, 2023 · 2 comments
Labels
question Further information is requested

Comments

@Warnthebase
Copy link

Hello,

I am having an issue with my calls not connecting. TrickleIce shows everything is working correctly:

Time	Type	Foundation	Protocol	Address	Port	Priority	URL (if present)	relayProtocol (if present)
0.004	host	3431801334	udp	818f189b-183b-4e1f-9992-957a75063bc0.local	60418	126 | 30 | 255		
0.017	srflx	970610555	udp	<public ip of peer>	31585	100 | 30 | 255	stun:matrix.mydomain.com:3478	
0.091	relay	1914238475	udp	<public ip of server>	2 | 31 | 255	turn:matrix.mydomain.com:3478?transport=udp	udp
0.134	Done

As does Matrix VoIP Tester

turn:<public server IP>:3478?transport=udp
STUN & TURN
Excellent
Succeeded the relaying test.

Candidates:
<public peer IP> port 30596/udp (server-reflexive (STUN))
<public server IP> port 57140/udp (relay (TURN))

However, when I place a call (both clients using Element), the call does not connect. If I put both devices on the same LAN, the calls connect without issue.

This comes in the log every few seconds, as the client does not send any data:

Relayed 0 KiB (in 0 B / 0 packets, out 0 B / 0 packets), duration: 1 seconds [UDP, session 7eugpszr72x4, user 1621923899:@user:mydomain.com, client <public peer IP>:51650, relay <public server IP>:57326]

TURN section from homeserver.yaml from synapse:

turn_uris: [ "turn:matrix.mydomain.com:3478?transport=udp", "stun:matrix.mydomain.com:3478?transport=udp" ]
turn_shared_secret: "<secret from eternal.yml>"
turn_allow_guests: true

I can see in my firewall logs that it is trying to make a direct connection (from peer2 to peer), and not using the relay server (public server IP), which I believe should not be the case?

I feel like I am 98% of the way there to success and I am missing something minor. Any assistance on getting this and calls to work is greatly appreciated :-).

@weiss
Copy link
Member

weiss commented Sep 16, 2023

The first thing I'd double-check is whether the relay port range (all UDP ports between relay_min_port and relay_max_port) are accessible for clients. The Trickle ICE thing doesn't check this part of the setup. The Matrix VoIP tester claims to do that, but that's not trivial to do (which is why Trickle ICE and others don't), so I'm not entirely conviced they perform this check correctly (I'd be interested in the Relayed […] log line eturnal logs for the VoIP tester to verify this part).

I can see in my firewall logs that it is trying to make a direct connection (from peer2 to peer), and not using the relay server (public server IP), which I believe should not be the case?

Clients always try peer2peer before falling back to TURN relaying, so that's probably fine.

@Warnthebase
Copy link
Author

Warnthebase commented Sep 16, 2023

Not entirely sure what the root cause was, but this issue has been solved (at least for now).

Not sure if it did anything, but I removed the relay_min_port and relay_max_port settings from eturnal.yml, and moved them into my docker-compose file (the port range did not change). A quick docker compose down && docker compose up -d --remove-orphans and I suddenly had no issues.

Unfortunately do not have the log files, but if/when the issue pops up again, I will make sure to turn on log_level=debug and capture the eturnal logs.

Thanks for your help @weiss

@sando38 sando38 added the question Further information is requested label Sep 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants