Is there any open source stun/turn server which can do hole punch like numb for Ubuntu ?

Numb is a STUN/TURN server.


A STUN/TURN server is used for NAT traversal in VoIP. Whether you're at home behind a common router, at work behind an enterprise firewall, or traveling, chances are that you will be behind a NAT which must be traversed before making calls.

Our server, Numb, will help your SIP phone automatically punch holes in the NAT. As a solution of last resort, it will simply act as a relay between you and the person you're talking to when end-to-end connectivity just isn't possible.


One Ugly issue in history of networking is this NAT.

STUN and TURN are sub-parts of the broad ICE framework. STUN and TURN do not know about ICE and those protocols are just cubicles in the general ICE picture. When you are using ICE, you have to set all the components (including STUN and TURN) to work together. This TURN server has all means to set it up correctly in any environment. How to set up your particular ICE framework I have no idea and that is not my concern. If you will see that the TURN server is doing something incorrectly, then you can report it here.

For Linux we got:

1) resiprocate-turn-server - http://www.resiprocate.org/ReSIProcate_1.8_Release

  • community is deadly, like nobody is there

Ubuntu above 12.04 you should get so that you can install it as:

$ apt-get install resiprocate-turn-server
$ reTurnServer /etc/reTurnServer.config  --LogLevel=INFO
INFO |.662 | reTurnServer | RETURN | | UdpServer.cxx:29 | UdpServer started.  Listening on
INFO |.662 | reTurnServer | RETURN | | TcpServer.cxx:26 | TcpServer started.  Listening on
ERR |.663 | reTurnServer | RETURN | | TlsServer.cxx:30 | Unable to load server cert chain file: server.pem, error=22(Invalid argument)
ERR |.663 | reTurnServer | RETURN | | TlsServer.cxx:37 | Unable to load server private key file: server.pem, error=22(Invalid argument)
ERR |.663 | reTurnServer | RETURN | | TlsServer.cxx:44 | Unable to load temporary Diffie-Hellman parameters file: dh512.pem, error=22(Invalid argument)
INFO |.663 | reTurnServer | RETURN | | TlsServer.cxx:55 | TlsServer started.  Listening on

DEBUG |.552 | reTurnServer | RETURN | | TcpConnection.cxx:39 | TcpConnection started.
WARNING |.181 | reTurnServer | RETURN | | AsyncTcpSocketBase.cxx:181 | Receive buffer (2048) is not large enough to accomdate incoming framed data (27764) closing connection.
DEBUG |.181 | reTurnServer | RETURN | | TcpConnection.cxx:27 | TcpConnection destroyed.
^CDEBUG |.023 | reTurnServer | RETURN | | TlsConnection.cxx:32 | TlsConnection destroyed.
DEBUG |.024 | reTurnServer | RETURN | | TcpConnection.cxx:27 | TcpConnection destroyed.
INFO |.024 | reTurnServer | RETURN | | TurnManager.cxx:36 | Turn Manager destroyed.

Fedora 19: (optional)

$ yum install resiprocate-turn-server

2) rfc5766-turn-server: (community is active, not dead) http://code.google.com/p/rfc5766-turn-server/downloads/list

$ turnserver -u username:password

There's a restund, a relatively young and very promising project.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy