P2P-holepunch NAT traversal toolkit with UDP holepunching

What is P2P-holepunch?

p2p-holepunch is a toolkit for developing your own NAT traversal product with a plug and play functionality for contacting servers running behind NAT devices. This is typically used in peer to peer applications like file sharing, VoIP or dishing out RTP streams from a surveillance camera.

This project has 3 parts to it. The mediator daemon runs on a public IP address and it manages multiple simultaneous P2P sessions. Each session is established between a server and a client each behind a separate NAT device like a router, firewall or MODEM. Once a client decides to contact a server either for initiating a SIP call or to stream video from a surveillance camera.

Why should you use UDP holepunching?

UDP holepunching is the most reliable way of getting across most NAT devices on the Internet. It may not work in every case especially in the case of symmetric NAT devices but in most cases your customer will be really glad if you give a plug and play service or product. Configuring NAT devices for port forwarding can be a real pain. This project aims to avoid that configuration completely but with a great deal more engineering complexity in design. This is alright since customers are spared of a major hassle.

Code

 $ cvs -d:pserver:anonymous@p2p-holepunch.cvs.sourceforge.net:/cvsroot/p2p-holepunch login 
(Press enter)

 $ cvs -z3 -d:pserver:anonymous@p2p-holepunch.cvs.sourceforge.net:/cvsroot/p2p-holepunch \
   co -P RendezvousServer