Connect spreed.me to someone outside local network

Iā€™m so sad, I tried spreed.me, and spreed, no one works. Inside the LAN, both of them work, but when I try to call someone outside my home, nothing work. The mate comes by the link, he have to accept camera sharing, but after it s a black screen for both the callersā€¦Same problem for the two apps, I also tried with my cellphone in 4G, same problem, black screenā€¦ Anyone has a suggestion ? I tried with window last firefox, last chrome and ubuntu last firefox and chromeā€¦

To answer it fast here: You most likely need a turn server to route the traffic through your router/firewall setup. You will find several topics about that here in the forum. The solution is basically the same for both apps, spreed.me with seperate server and spreed video calls with integrated server.

There you find some guide about setting up an own turn server.

Ok, thanks for the answer, it works now, even with 3g and several LAN. I will post my conf files in the thread you mentionned for helping someone :wink:

EDIT : Done at https://help.nextcloud.com/t/complete-nc-installation-on-debian-with-spreed-me-and-turn-step-by-step/2436/38

Spreed app canā€™t connect to my TURN server, I tried : https://mynextcloud.net:8443, ip:8443, mynextcloud.net:8443, and several ways, but it doesnā€™t workā€¦

Hah, first it worked well an suddenly not anymore? I guess you were already looking for changes in between?

My spreed server.conf looks like this:
turnURIs = turn:xxx.yyy.org:8443?transport=udp
So without ā€œhttps://ā€ just the udp port, no tcp. I donā€™t know if adding two ports the way you did with space in between works, but I guess the speed server would show some syntax error if not.
Coturn listens to udp and tcp thatā€™s true, but I understand it the way, that you can configure your video call to use EITHER the one or the other, not necessarily AND ;). The guide and my setup prove that it at least works to use only udp.

Your hint with the turnadmin is interesting. Is useful to be able to watch and configure coturn via browser :slight_smile: . I just wonder, that the turn services and admin panel are accessible by same address and port? Might there be some problem for turn service access? Also you mentioned that you are able to add the shared secret there. I guess, if you did adjust it there, you also did accordingly in the spreed server config?
To your question there if this is necessary: As the guide and also my setup do not contain the quite interesting admin panel, no adjustment there is necessary. The shared secret generation there should adjust the ā€œstatic-auth-secretā€ in the turnserver.conf and therefore if you change it, adjustment of ā€œturnSecretā€ inside webrtc.conf/server.conf is necessary.

No no, everything work always perfectly, I spoke about the new official spreed app, not the spreed.me !
When I ran turn server and spreed.me correctly, I tried to use it with the new spreed app, for testing. In the admin panel, I used several syntaxes to fill the parameters, TURN server and TURN server shared secret.

But, the connection doesnā€™t work, because my calls hang out, and no new session appear in the admin panel of coturn, so, the syntax isnā€™t good I guessā€¦

For the server.conf, I added the second protocol because I saw it in a page of the official site (canā€™t find it againā€¦), and it allows coturn to use both protocols, wich he did in some sessions, and sometimes at the same momentā€¦I think it depends, but itā€™s better it can do thisā€¦
Admin panel and service are in the same port, same adress, it makes sense because, in every case, itā€™s a browser who reach this portā€¦Ok for shared secret, I think too itā€™s not necessary :slight_smile:

Ah, okay I understand. I also asked myself about udp or tcp or both is the better way to go. As the whole video traffic is going through the turn server, I actually would expect tcp to be the better way, because Itā€™s about keeping the connection up. For stun server, which just gives the internal ip information to enable p2p, I would e.g. expect udp as the right protocol. But as the guide uses udp also for turn and this also works, I just leave it there for the moment.

I also canā€™t get the spreed app running, because there is some error when I try to adjust the TURN server protocols: Spreed app issue with setting "turnServerProtocols"
There seems to be a problem with writing the setting to the database. Did you check if all the values you give in nc admin panel (for spreed app) remain there after page reload? For me (at least for the protocols) this does not work, even that is says ā€œsavedā€ after I change. Maybe the problems are related.

Yes, I had noticed this issue too. But my server coturn runs in both protocol, so it was not a big deal for me to canā€™t change the protocol ;). Most of the time, coturn sessions use UDP, but sometimes, it activates TCP without problemā€¦So the problem is not here I thinkā€¦

As the app is also not running for me, I guess there is a connection between that and the error mentioned. If the setting is not set at all, this might be a reason for the app to break. But of course I am not sure about that, because I get no explicit error while running the app. The error in nc log does only show up, when opening the advanced config panel and dev tools in browser show different errors (about video/audio switch buttons) as far as I understand.

My coturn also listens to both udp and tcp, so there also should not be a problem, if spreed is configured to use both and itā€™s just not possible to chance that config.

Your nc log or browser site inspection doesnā€™t show a related error (while try video call or open admin panel/advanced settings)?

Youā€™re right, error Undefined index: turnServerProtocols at /var/www/nextcloud/apps/spreed/templates/settings-admin.php#41 occur, for the three parameters (udp tcp, or both), in admin panel. Nothing to do, but to wait fix, I thinkā€¦Not a problem, spreed.me work fine !

1 Like

Thanks for opening this issue on github. I donā€™t have an account there so far, maybe I should create one :slight_smile: .