What's New
-
Communication Between Peers
- Peer-to-peer (UDP-based) connections between peers negotiated with SIP (draft-marocco-p2psip-xpp)
-
Distributed Algorithm
- Based on CAN distributed-hashtable (draft-marocco-p2psip-xpp-pcan)
- Optimized for peers unable to receive unsolicited messages (i.e. behind NATS)
-
User Interfaces
- Textual (csipdht2)
- Graphical (gsipdht2)
-
Debug
- Graphical overlay simulator (several peers running in the same process)
-
Distributed Algorithm
- Data replication
-
Communication across NATs
- STUN support for NAT traversal (nodes work behind any NAT compliant with RFC 4787)
- Support for sip-outbound and GRUU
Work In Progress
-
GUI
- Redesign as a "distributed-proxy/p2p-pbx" system service
Install
This section provides a short description and requirement list of libraries and applications.
All of them are downloadable from the
SourceForge Download Page
and can be configured, compiled and installed using the usual command sequence:
$ ./configure
$ ./make
$ ./make install
- libxpp
-
Lightweight XPP implementation. Requires:
- libsofia-sip-ua >= 1.12.6, both library and header files
- libssl >= 0.9, both library and header files
-
On debian based systems they can be installed running the following command:
% apt-get install libsofia-sip-ua-dev libssl-dev
- libsipdht2
-
Lightweight PCAN implementation. Requires:
- libxpp >= 0.2, both library and header files
- libgmp3 >= 4.1, both library and header files
-
Unce installed libxpp, on debian based systems they can be installed running the following
command:
% apt-get install libgmp3-dev
- csipdht2
-
Command line application implementing a PCAN
node. Requires:
- libsipdht2 >= 0.1, both library and header files
- gsipdht2
-
Graphical application implementing a PCAN
node. Requires:
- libsipdht2 >= 0.1, both library and header files
- libsofia-sip-ua-glib >= 1.12.6, both library and header files
- libgnomecanvas >= 2.14, both library and header files
- libglade >= 2.6, both library and header files
-
Unce installed libsipdht2, on debian based systems they can be installed running the
following command:
% apt-get install libsofia-sip-ua-glib-dev libgnomecanvas2-dev libglade2-dev
- gsim-sipdht2
-
Graphical application simulating an overlay with an arbitrary number of
PCAN nodes. Requires:
- libsipdht2 >= 0.1, both library and header files
- libsofia-sip-ua-glib >= 1.12.6, both library and header files
- libgnomecanvas >= 2.14, both library and header files
-
Unce installed libsipdht2, on debian based systems they can be installed running the
following command:
% apt-get install libsofia-sip-ua-glib-dev libgnomecanvas2-dev
Readings
- Peer to Peer Communications over the Internet: An Open Approach (pdf) , Swapnil Dinkar Pundkar, July 2007
- Quite a detailed description of the SIPDHT2 project, written by the student from Indian Institute of Technology (Guwahati, India) who wrote most of XPP test programs.
- SIPDHT: An Open Source Project for P2PSIP (pdf), Alex Fandrianto, July 2007
- An internship report written by a student who had the bad idea to spend his summertime working on SIPDHT2. The paper, after a nice overview of the project, suggests an interesting improvements for the algorithm.
- Comunicazioni basate sull'utilizzo peer-to-peer del protocollo SIP (pdf) , Matteo Peraldo, November 2006
- A very detailed description of the first version of SIPDHT, with algorithms and perfomance analysis. An extremely interesting document which deserves an English translation (Italian only).
Screenshots
Eight peers (seven gsipdht2 and one csipdht2 instances) running on the same pc.
Ten peers executed in the simulator.
Video
The following videos show the applications in action. Needless to say, if you can, download and install both the libraries and the applications and don't waste your time here.
Short gsipdht2 demonstration.
Short gsim-sipdht2 demonstration.