whd / stun-vm

Tools for creating and managing STUN servers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

These are script for maintaining VMs running stun servers.

Mozilla uses this to provide public STUN (RFC 5389) servers
for use with WebRTC ICE (RFC 5245) NAT traversal.

https://tools.ietf.org/html/rfc5389
https://tools.ietf.org/html/rfc5766
https://tools.ietf.org/html/rfc5245

== Build ==

Use the rpm spec file and patches to build the stun server,
and deploy it with the puppet manifest.

The RPM we build is based off the EPEL version, with the NAT
patch from here:

http://www.voip-info.org/wiki/view/Vovida.org+STUN+server

== AWS setup ==
We use circus (http://circus.readthedocs.org/en/0.8.1/) to monitor the
stun-server process. Currently this requires custom RPM packaging. You'll need
to build your own RPMs (using make build_rpm in circus) before the following
instructions will work.

To provision an instance with a single public IP (no vpc required):

1. yum install puppet
2. <install custom RPMs for stun-server, circus, and its dependencies>
3. git clone <this repo>
4. puppet apply --modulepath=<repobase>/puppet/modules <repobase>/puppet/bootstrap.pp

Make sure the security group for that the instance has:
  - inbound rules for UDP and TCP port 3478 from any source
  - optionally rules for ICMP echo requests
  - optionally a rule for ssh if you need to log in

This should leave you with a fully functioning stun server. Verify with:

4. stun-client <public-ip>

You probably want to bind an elastic IP to the instance.

About

Tools for creating and managing STUN servers


Languages

Language:Python 70.9%Language:Puppet 19.7%Language:Ruby 7.0%Language:Shell 2.5%