Setting up a TURN Server for Nextcloud Video Calls

We recently had an support inquiry from one of our Nextcloud customers at Netways Web Services. He told us that he had installed the Nextcloud Video Calls app from the Nextcloud Appstore but was not able to make any video calls. He and the person on the other end always got a black video screen when attempting to call each other.
After some research I identified the potential cause of the problem. It turned out that a TURN server was required (pardon the pun).

 

TURN – what is that?

The Nextcloud Video Calls app contains a WebRTC-based server called spreed. WebRTC uses the ICE (Interactive Connectivity Establishment) framework to overcome networking complexities (like NATs) where connecting the participating clients directly isn’t possible. But it will need at least a STUN server to accomplish that. STUN standing for “Session Traversal Utilities for NAT” will enable the clients to discover their public IP addresses and the NAT where they are behind. Note that this server is only used to initially establish the connection. Once the connection is set up the media will stream directly between the clients. The Nextcloud Video Calls app is preconfigured with “stun.nextcloud.com:443” as STUN server. But this doesn’t always work – just like our customer experienced it, for some clients a STUN server won’t be enough to establish the connection. That might be the case if one or multiple participants are behind a symmetric NAT where UDP hole punching does not work. And that’s where the TURN server comes in. “Traversal Using Relay NAT” (TURN) extends STUN capabilities to make media traversal possible even if the clients are behind symmetric NATs. But that means that the whole traffic will flow through the TURN server since it is acting as a relay. Therefore most TURN servers use credential or shared secret mechanisms to authenticate the clients. So after all you end up having two options: either you find a TURN server provider that you can trust and who is willing to grant you access to his service or you set up your own TURN server.

 

How to set up a TURN Server

We decided to set up our own TURN. Like most of the tutorials recommend we installed Coturn. Our “TURN-VM” is running Ubuntu 16.04 and has a public IP address – this is actually quite important since the TURN server needs at least one dedicated public IP address to work properly. In order to have full STUN/TURN server functionality it’s even required to have two public IP addresses.
Now let’s start – first install coturn:

apt-get install coturn

Next enable coturn as service (use the editor of your choice):

vim /etc/default/coturn

Now uncomment the last line, save and close the file:

#
# Uncomment it if you want to have the turnserver running as 
# an automatic system service daemon
#
TURNSERVER_ENABLED=1

We will have a look at the config file of Coturn. It has a lot of lines so I will only go over settings that are relevant in conjunction with Nextcloud’s spreed video calls. Open the turnserver.conf with an editor

vim /etc/turnserver.conf

and have a look at the following lines

#listening-port=3478
#tls-listening-port=5349

Those are the default listening ports coturn will use. In my case I changed them to

listening-port=80
tls-listening-port=443

because I don’t have a webserver running on the VM and I already had the ports open in the firewall. This is important – make sure that the server is reachable on these ports and no firewall is blocking them.
Note that the tls-listening-port is only relevant if you plan on using TLS-encrypted connections.

You’ll find the following line a couple of lines below the tls-listening-port:

#listening-ip=172.17.19.101

If you leave it as a comment then Coturn will listen on all the IP addresses available for this host. I uncommented it and changed it to the actual public IP address of this server

listening-ip=185.XX.XXX.XXX

Further down I did the same for the relay-ip:

relay-ip=185.XX.XXX.XXX

Now look for “fingerprint” and “lt-cred-mech” and uncomment:

fingerprint
lt-cred-mech

A couple of lines below you’ll find

#use-auth-secret

and

#static-auth-secret=north

uncomment both, then open up another shell window and generate a secret for example with

openssl rand -hex 32
751c45cae60a2839711a94c8d6bf0089e78b2149ca602fdXXXXXXXXXXXXXXXXX

copy the generated secret string and paste it into the turnserver.conf

use-auth-secret
static-auth-secret=751c45cae60a2839711a94c8d6bf0089e78b2149ca602fdXXXXXXXXXXXXXXXXX

Enabling “use-auth-secret” and setting a “static-auth-secret” will prevent unauthorized usage of your TURN server and is highly recommended!

Head further down and look for

#realm=mycompany.org

then uncomment and change it to the FQDN of the TURN server

realm=xxxxx.netways.de

The next line to uncomment and change is

total-quota=100

then uncomment

stale-nonce

If you want to use TLS then you should get a SSL certificate and key for example via Letsencrypt and then set the following lines of the turnserver.conf to the path where those files are located, in my case:

cert=/ssl/nws.crt
pkey=/ssl/nws.pem

also set cipher-list to

cipher-list="ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5"

If you don’t plan on using this TURN server as STUN then you can uncomment

no-stun

Now some last uncommenting

no-loopback-peers
no-multicast-peers

and you should be ready to start your coturn server. Save the file and close the editor.

Start/restart coturn for example with

service coturn restart

or

/etc/init.d/coturn restart

You may want to watch the logfile to see if everthing is fine

tail -f /var/log/turn_YYYY-MM-DD.log
0: log file opened: /var/log/turn_2017-08-15.log
0: pid file created: /var/run/turnserver.pid
0: IO method (main listener thread): epoll (with changelist)
0: WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided
0: Wait for relay ports initialization...
0:   relay 185.XX.XXX.XXX initialization...
0:   relay 185.XX.XXX.XXX initialization done
0: Relay ports initialization done
0: IO method (general relay thread): epoll (with changelist)
0: IO method (general relay thread): epoll (with changelist)
0: turn server id=0 created
0: turn server id=2 created
0: IPv4. TLS/SCTP listener opened on : 185.XX.XXX.XXX:80
0: IPv4. TLS/TCP listener opened on : 185.XX.XXX.XXX:80
0: IO method (general relay thread): epoll (with changelist)
0: IPv4. TLS/SCTP listener opened on : 185.XX.XXX.XXX:443
0: IPv4. TLS/TCP listener opened on : 185.XX.XXX.XXX:443
..
.

So now we are ready to test if it is working.

 
 

How to test my TURN Server

Visit this page and see if you can get a proper response from your Coturn server.

The field for “STUN or TURN URI” should look something like this:

turn:xxxxx.netways.de:443?transport=tcp

but you can also use the IP:

turn:185.XX.XXX.XXX:443?transport=tcp

adding the part “?transport=tcp” is important as I was not able to get my TURN server to respond without TCP only.
Next click on “Gather candidates”.

What you would want as a result should look similar to this:

Time Component  Type Foundation Protocol    Address	 Port	         Priority
0.006	1	host	0	 UDP	10.0.10.144	60925	126 | 32512 | 255
0.009	1	host	1	 TCP	10.0.10.144	63376	125 | 32640 | 255
0.010	1	host	1	 TCP	10.0.10.144	9	125 | 32704 | 255
0.015	2	host	0	 UDP	10.0.10.144	47302	126 | 32512 | 254
0.016	2	host	1	 TCP	10.0.10.144	64892	125 | 32640 | 254
0.016	2	host	1	 TCP	10.0.10.144	9	125 | 32704 | 254
0.031	1	srflx	2	 TCP	XXX.XX.XX.XX	3362	 99 | 32607 | 255
0.051	2	srflx	2	 TCP	XXX.XX.XX.XX	3364	 99 | 32607 | 254
0.069	                                                                     Done

If you get a timeout with “Not reachable?” then probably a firewall is blocking the connection. Check again if the ports for the TURN server are open and if you can reach it externally via Telnet or something similar.

 
If everything works as expected you can continue and enter FQDN, port and shared secret in the video calls settings of your Nextcloud:

Also make sure that “TURN server protocols” is set to “TCP only”.
Finally test if video calls work with participants from different networks, through NAT’s and firewalls.

 
Well, that’s at least how I got it working and our NWS Nextcloud customer confirmed that he was able to make video calls without black screens as soon as he added in the TURN server details that I sent him.
Feel free to check out our Software as a Service platform NWS where you can test Nextcloud 30 days for free.

Gabriel Hartmann

Autor: Gabriel Hartmann

Gabriel freut sich nun in seiner Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS endlich sein im Informatikstudium gesammeltes Wissen artgerecht anwenden zu können. Wenn er nicht gerade an Servern, PC’s und sonstigem bastelt, vertreibt sich der gebürtige Oberfranke seine Freizeit mit Radfahren, Fotografie und Snowboarden. Vor allem reizen ihn interessante Projekte und das Arbeiten an Open Source basierten Linux-Systemen.

Ausbildung Julia – Mission completed

Ende Juli war es endlich soweit. Die letzte Prüfung war vorbei und somit auch meine Ausbildung bei NETWAYS. Schade? Auf der einen Seite schon, ja!

Es war nämlich ziemlich cool und vor allem spannend und abwechslungsreich, bei NETWAYS meine Ausbildung zur Kauffrau für Büromanagement zu machen! Ich kam erst im 2. Ausbildungsjahr zu NETWAYS, wurde sofort super aufgenommen und fing vorne im Frontoffice bei Finance&Administration an. Das war ein super Einstieg, um die Firma und ihre Abläufe kennenzulernen und ich habe mich sofort pudelwohl gefühlt.

Nach vier Monaten durfte ich dann für 8 Wochen bei Sales reinschnuppern, wo bereits neue Herausforderungen auf mich warteten: Viele technische Begriffe, viel Neuland, wo es sich erst einmal reinzufuchsen galt. Hier durfte ich mich mit BAREOS auseinandersetzen und den Content für unsere Webseite zusammenstellen.  Das hat mir sehr viel Spaß gemacht und mir als kaufmännischem Azubi in einer IT-Firma extrem viel für meine weitere Zeit bei NETWAYS gebracht. Schnell waren weitere zwei Monate vorbei und ich durfte weiter zur nächsten Abteilung hüpfen!

Die nächste Station war das Events&Marketing Team, welches mich sofort sehr herzlich aufgenommen hat. Auch hier warteten wieder allerhand neue spannende Themen auf mich. Wie schreibt man eigentlich eine Pressemitteilung und auf was muss bei Textanzeigen geachtet werden? Wie plant man eine Abendveranstaltung und was genau machen die da eigentlich immer auf den ganzen Konferenzen? Auf diese und viele weitere Fragen hatten Markus, Pamela und Co. stets eine Antwort parat. Und dann stand auch schon die erste spannende Exkursion auf dem Plan. Und zwar ging’s nach Berlin zur OSDC. Meine erste NETWAYS-Konferenz – herrje war ich da aufgeregt. Das einzige was ich vorher wusste war, dass es wohl ziemlich anstrengend werden würde! 🙂 Und genauso war’s auch. Aber wenn man so viel neues kennenlernt, überwiegt die Neugierde und der Spaß und der fehlende Schlaf wird zur Nebensache! Zu diesem Zeitpunkt wusste ich: Bei Events gefällt’s mir so gut, hier würde ich saugern bleiben. Aber eigentlich war ich als Azubi für Finance&Administration vorgesehen. Doch manchmal hat man das Glück auf seiner Seite. Und so bekam ich bald die Frage gestellt, ob ich nicht ganz bei Events&Marketing bleiben möchte. Freudestrahlend bejahte ich und so hatte ich mein Team gefunden – oder das Team mich. Wie auch immer, ich war überglücklich und so verbrachte ich die letzten 1,5 Jahre meiner Ausbildung hier. Mittlerweile fühle ich mich im Marketing zuhause und bin super glücklich, Kollegen zu haben, die sich sehr darum bemüht haben, dass ich einen Aufgabenbereich bekomme, der mir viel Spaß bereitet. Einfach war ich wahrlich auch nicht immer! 😉 Dass so gut auf einen Azubi eingegangen wird, ist sicherlich nicht selbstverständlich. Darum bin ich noch glücklicher, bei NETWAYS meine Ausbildung gemacht zu haben. Ich kann es jedem nur empfehlen, es lohnt sich!

Aber auf der anderen Seite bin ich natürlich auch überglücklich, dass die Ausbildung nun vorbei ist, ich ENDLICH nicht mehr zur Berufsschule muss, mehr Verantwortung übernehmen und auch weiterhin ein Teil von NETWAYS sein darf.

Und jetzt bleibt nur noch eins zu sagen: Danke für diese zwei wundervollen und lehrreichen Jahre als NETWAYS-Azubi! Das war spitze!

Und wenn auch DU Lust auf eine erstklassige Ausbildung hast und dich in einem jungen, sympathischen Team wohl und zuhause fühlst, solltest du dir mal unsere freien Stellen ansehen! Vielleicht ist ja genau das Richtige für dich dabei! Auf unserem Blog und in unserer Bildergalerie könnt ihr außerdem einen Eindruck davon bekommen, wie toll es bei uns ist und was wir neben der Arbeit alles für tolle Sachen machen! 🙂

 

 

Julia Hackbarth

Autor: Julia Hackbarth

Julia hat 2017 ihre Ausbildung zum Office Manager bei NETWAYS absolviert und währenddessen das Events&Marketing Team kennen und lieben gelernt. Besondere Freude bereiten ihr bei NETWAYS die tolle Teamarbeit und vielseitige Herausforderungen. Privat nutzt Julia ihre freie Zeit, um so oft wie möglich über's Handballfeld zu flitzen und sich auszutoben. In ihrer neuen Rolle als Marketing Managerin freut sie sich auf spannende Aufgaben und hofft, dass ihr die Ideen für kreative Texte nicht so schnell ausgehen.

Open Source Monitoring Conference 2017 – Stay tuned!

OSMC 2017 | The worldwide leading conference on open source monitoring solutions
November 21 to 24 | Nuremberg

In 10 parts of this series, we will give you some valuable information about the conference as well as some impressions of the last years.

What is the OSMC about?
The bilingual conference focuses on the latest trends and developments on open source monitoring solutions and offers a unique opportunity to meet the open source community
and to gain valuable expertise. The thematic focus is broadly diversified and equally suited for beginners and advanced users.

What makes the OSMC unique?
The conference offers Interesting talks with a real benefit for the attendees, as well as hands-on workshops to expand your knowledge and monitoring know- how.
Due to the great success in the past two years, we are again offering a hackathon, which is bookable as an add-on.

We’re very excited and would be happy to welcome you to Nuremberg in November!

And now, have a look at this high class talk of the Icinga Team!

 

Julia Hackbarth

Autor: Julia Hackbarth

Julia hat 2017 ihre Ausbildung zum Office Manager bei NETWAYS absolviert und währenddessen das Events&Marketing Team kennen und lieben gelernt. Besondere Freude bereiten ihr bei NETWAYS die tolle Teamarbeit und vielseitige Herausforderungen. Privat nutzt Julia ihre freie Zeit, um so oft wie möglich über's Handballfeld zu flitzen und sich auszutoben. In ihrer neuen Rolle als Marketing Managerin freut sie sich auf spannende Aufgaben und hofft, dass ihr die Ideen für kreative Texte nicht so schnell ausgehen.

ConiuGo Modem: SMS Versand einfach gemacht!

Unser Portfolio an Alarmierungs-Hardware, die den SMS-Versand in Icinga und Nagios realisieren kann, ist groß. Am oberen Ende stehen API-basierte Netzwerklösungen wie der SMSEagle und das Braintower SMS Gateway und für den kleinen Geldbeutel haben wir eine USB-basierte Lösung in Form des MultiTech MTD-H5-2.0 USB-powered im Programm.

Für sehr lange Zeit stand  zwischen diesen beiden Welten das Multitech Multimodem, das zwar via Netzwerk angesprochen werden konnte, aber durch die fehlende API, genau wie beim MultiTech MTD-H5-2.0 USB-powered, auf die SMS Server Tools angewiesen war. Mit einer robusten Hardware bestückt war das Multimodem eine sehr beliebte Ware in unserem Online Shop.

Leider fehlte ihm aber die 3G Unterstützung und konnte so zum Schluss bereits in einigen Ländern nicht mehr eingesetzt werden. Deswegen mussten wir einen adäquaten Nachfolger finden und sind im ConiuGo GPRS GSM Quadband Modem LAN  fündig geworden:

Das ConiuGo GPRS GSM Quadband Modem LAN:

GPRS_Quadband_Modem_LAN ConiuGo GPRS GSM Quadband Modem LAN Bundle

  • Ethernet- Schnittstelle (LAN)
  • Datenrate EDGE multi slot class 10 (4 Down, 2 Up, 5 Total, max. BW 85.6 Kpbs)
  • Energieversorgung 9-35 V DC
  • Abmessung 62 x 59 x 20mm (L x B x H) / 49 g
  • Antennenanschluss SMA

Im Bundle geliefert mit Netzteil und Magnetfußantenne, kann dieses Produkt sehr schnell eingesetzt werden. Wir sind begeistert von der einfachen Handhabung und Konfiguration und ein Plugin zur Integration in Icinga und Nagios steht selbstverständlich bereit.

Für einen schnellen Start haben wir für eine Kurzanleitung  verfasst, die bequem über unseren Online-Store herunterladen werden kann. Hier gehen wir auch näher auf die Einrichtung SMS Server Tools 3 unter Linux ein. Die Anleitung ist aber auch immer im Lieferumfang des ConiuGo GPRS GSM Quadband Modem LAN Bundles enthalten.

PS.: Bis zum 16.08.2017 gilt unsere Sommeraktion: Einfach bei Ihrer Bestellung im Online Shop den Gutscheincode “welovesummer” eingeben und 10% sparen!

Isabel Salampasidis

Autor: Isabel Salampasidis

Isabel ist seit Februar zurück bei NETWAYS. Bis 2009 war sie unsere Office Managerin und verstärkt nun ab sofort das Sales Team. Hier ist sie für alle Belange des Online Stores verantwortlich. Der Ein- und Verkauf der Monitoring Hardware sowie die Weiterentwicklung des Shops und seines Portfolios wird sie mit ihrem bekannten Tatendrang gehörig vorantreiben. Privat verbringt die halbgriechische Ruhrpott-Fränkin sehr gerne so viel Zeit wie möglich mit ihren bald 4-jährigen Patensöhnen oder schreit sich für den Club - als stolze Dauerkartenbesitzerin! - die Seele aus dem Leib.

Open Source Backup Conference – 7 reasons | part 2

Today, we go ahead with blog series for the Open Source Backup Conference 2017 and present you the second talk of last year’s conference! 

The conference will be held from September 25 to 26, 2017 at the Steigenberger Hotel in Cologne.

What awaits you: Core theme of the Open Source Backup Conference is the development and application of open source sofware solutions for data backup. The conference agenda covers the latest developments, conveys strategic knowledge and presents empirical reports as well as best practices, case studies and technical background. Apart from that, three hands-on workshops on September 25 are offered!

Have a look at this great talk from Philipp Storz and Maik Aussendorf  about the Bareos Release 16.2 and the Roadmap 2017

Julia Hackbarth

Autor: Julia Hackbarth

Julia hat 2017 ihre Ausbildung zum Office Manager bei NETWAYS absolviert und währenddessen das Events&Marketing Team kennen und lieben gelernt. Besondere Freude bereiten ihr bei NETWAYS die tolle Teamarbeit und vielseitige Herausforderungen. Privat nutzt Julia ihre freie Zeit, um so oft wie möglich über's Handballfeld zu flitzen und sich auszutoben. In ihrer neuen Rolle als Marketing Managerin freut sie sich auf spannende Aufgaben und hofft, dass ihr die Ideen für kreative Texte nicht so schnell ausgehen.