Implementation

This page describes the implementation, the model employed and the peers philosophy... Peers has been developed in java, an object-oriented programming language. If you take a look at the source, you will see that the first separation in the source code is done on protocols and very high level capabilities:

  • net.sourceforge.peers.gui
  • net.sourceforge.peers.media
  • net.sourceforge.peers.nat
  • net.sourceforge.peers.sdp
  • net.sourceforge.peers.sip

For your information, nat package is not used for the moment, it was an experiment about Port Restricited Cone NAT traversal. Peers voip-related code is based on an external library: jrtp to manage RTP protocol, this is the only protocol that has not been implemented yet in Peers. SDP and SIP do not rely on any external library. The interface with this external library and sound encoding is done in "media" package. Of course, sdp and sip packages contains SDP related sources and SIP stack implementation. The only interesting package is sip. Let's see what sip is made of:

  • net.sourceforge.peers.sip.core
  • net.sourceforge.peers.sip.transactionuser
  • net.sourceforge.peers.sip.transaction
  • net.sourceforge.peers.sip.transport
  • net.sourceforge.peers.sip.syntaxencoding

As you have probably remarked, it corresponds to the RFC3261 layers. I did not reinvent the wheel. The sip package has been implemented with simplicity and extensibility in mind. The implementation is not complete for the moment, because many standard very basic features are not implemented, but it can be done (and I hope it will...). Normally, this implementation should not be obscure to a java developer that already knows SIP. I will appreciate your feedback on the source code. And of course any contribution is welcomed !