How to build own TURN server for Windows

This article suits more for a blog, but I've decided to share this information in our articles section.

I have not found any good article on this topic, or maybe I just can't search properly :(

We, MyChat developers, are using the TURN server for Windows that I built back in 2015 when we started to develop calls in the chat. Now I want to update it. But I've faced the struggle with the repeated building of the TURN server. I did it before, but I completely forgot how.

After some googling, I found a general guide for building coturn in the blog of Muaz Khan. But I saw a typical Linux-like picture: several points with no details.

Let's try another, a Windows-one-mouse-click way.


Firstly, download the Linux console emulator Cygwin. I took a 38-bit variant as our server must work in all systems including the old ones: https://cygwin.com/setup-x86.exe


Secondly, take coturn source files


I've made mirror copies on our hosting just in case:

Cygwin — https://nsoft-s.com/files/turn/cygwin-x86.exe

Coturn — https://nsoft-s.com/files/turn/coturn.zip

Let's install Cygwin.

Choose the Internet as a download source for packages:

Installing Cygwin

Next, choose the folder location with Cygwin and place it for downloading packages before installation. You can delete them later after the installation process.

I chose the first file source, but you can choose any other if you want. Just make sure that it has the packages you need:

Installing Cygwin, choosing the download source

Press next, and you will see this window:

Installing Cygwin, preparing files

In a drop-down list "view" select "full" and search the packages you need. For each package, in the column "new" in the list, mark the latest version from all available (except text ones):

Installing Cygwin, choosing packages version

A list of packages that I installed (you can skip packages with "64" in the title as you do not need them for a 32-bit system):

Installing Cygwin, a list of download packages

Find one-by-one all specified packages and select the installation version. Press "Next" and watch the exciting installation process:

Installing Cygwin, copying files

When the installation is complete, open the folder in the Explorer with installed Cygwin -> home -> (your user name), and unzip the Coturn files here. You will see the following:

folder with installed Cygwin

Now, launch the emulator Cygwin.bat.

As I got used to normal navigation for disk structure, I launched mc (Midnight Commander).

Launching Midnight Commander

It immediately opens a user home folder with the folder "coturn-master". Enter this folder and run "configure" to make a build script.

Preparing makefile

Makefile is ready, let's make a build. Write the command "make", run it, and wait for the result:

Building turn

And the final step, write and run the command "make install":

Installing turn

That's all folks, your turn server is ready to work.

We need a minimum functionality for calls over the server.

I mercilessly cut the content of the turn server to avoid useless files. I won't describe the whole cleaning process, it is better to show the result:

turn server files

That is all you need for the turn server's regular work. The folder "etc" has a file with the configuration "turnserver.conf". You can configure this file and enjoy the work of your own TURN server for Windows (the file "turnserver.conf.default" has a description for configuration).

Download TURN for Windows

Discuss on the forum



Служба поддержки