These instructions show you how to install the P2PNS implementation for Linux. Compiling for Windows is currently not supported. 1. Download and install [http://www.oversim.org/ OverSim] according to the these [http://www.oversim.org/wiki/OverSimInstall install instructions]. 2. Download the modified OpenSER SIP proxy [/chrome/site/openser-1.3.1-p2psip-20080926.tgz openser-1.3.1-p2psip-20080926.tgz] and extract in next to your !OverSim installation: {{{ cd ~/sim tar xzf /tmp/openser-1.3.1-p2psip-20080926.tgz }}} 3. Compile and install OpenSER: {{{ cd ~/sim/openser-1.3.1-p2psip make prefix=`pwd/install` install }}} 4. Edit openser-1.3.1-p2psip/install/etc/openser/openser.cfg and change the following parameters: {{{ listen: change this to the local IP mpath: change this to the module path of your OpenSER installation (e.g. /home/user/sim/open-1.3.1-p2psip/install/lib/openser/modules/) }}} 5. Edit !OverSim-20090320/simulations/realworld/realdhtapp.ini and remove the bootstrap IP (since this is the first node in the overlay): {{{ bootstrapIP: replace the "10.6.0.1" by "" }}} 6. Start !OverSim and click on the "FAST" button: {{{ cd ~/sim/OverSim-20090320/simulations/realworld ../../src/OverSim -f realdhtapp.ini }}} 7. Start OpenSER (in a new terminal): {{{ cd ~/sim/openser-1.3.1-p2psip install/sbin/openser -f install/etc/openser/openser.cfg }}} 8. Start and configure a SIP UA of your choice (e.g. [http://www.ekiga.org/ Ekiga]): {{{ - Set the outgoing proxy to ''localIP'':5061 (With Ekiga: ''Edit->Preferences->SIP Settings->Outbound Proxy'' - Create a new SIP account with an arbitrary username and the domain ''p2p'' (e.g. alice@p2p) (With Ekiga: ''Edit->Accounts->Add'': Account Name and User ''alice'' and Registrar ''p2p'') - Register the account at the local SIP proxy (With Ekiga: ''Edit->Accounts'': Click the checkbox next to the account, if it's not already registered) }}} Congratulations - now you should have a running P2PNS installation. With this setup you could connect a second SIP UA to the same local proxy and start a call between the two UAs. Of course a peer-to-peer network with a single node is not very interesting ;-) You have two alternatives to add additional overlay nodes: === Emulation of additional nodes by using the tun interface (needs root privileges) === 5a. If you removed the bootstrapIP paramter from realdhtapp.ini earlier in step 5 restore the old "10.6.0.1" setting. 6a. Start !OverSim, enter your password and click on the "FAST" button on both !OverSim processes: {{{ cd ~/sim/OverSim-20090320/simulations/realworld ./setup-realdht }}} With this configuration there is a second !OverSim process emulating 10 additional overlay nodes. === Adding additional overlay nodes (you need multiple machines for this) === 9. Install !OverSim and OpenSER on a second machine. If you simply want to copy the !OverSim binary, please mind you also need to copy all NED and ini files maintaining the directory structure and use static OMNeT++ libraries (unfortunately you can't make a static OpenSER binary): {{{ - Set SHARED_LIBS=no in omnetpp-4.0/configure.user - Rebuild OMNeT++, INET, and OverSim (run ./configure and make) }}} 10. Now adapt realdhtapp.ini on the second machine: {{{ - Replace the seed-set by a unique number for each node (Otherwise all nodes will have the same nodeID!) - Set bootstrapIP to the IP of the first machine }}} 11. Start !OverSim and OpenSER on the second machine (see steps 6 and 7).