[jdev] about GSOC idea on psi( Jingle RTP Encryption)

Justin Karneges justin-keyword-jabber.093179 at affinix.com
Wed Mar 31 13:56:05 CDT 2010


On Wednesday 31 March 2010 00:49:15 yu xue wrote:
> Currently my understanding about this project is just to implement in SRTP
> in Psi, either in avcall module or in a lower module according to the
> relationship that SPTP needs with the RTP session.Could some developers
> please give me some detailed or instructions on how to better understand
> and prepare this project or suggestions on writing proposal.Thank you!

Psi's Jingle voice calling support spans three modules:

  psimedia: Small wrapper to the GStreamer library.  It handles multimedia 
device access and device selection, codecs, and RTP processing.  It does not 
directly access the network.  It is the application's responsibility to 
obtain RTP packets from the network and feed them to psimedia.  Likewise, RTP 
packets produced by psimedia must be sent over the network by the 

  iris: This library provides XMPP and ICE functionality.

  avcall: This is part of Psi itself and contains two subparts:

    jinglertp: Implements XEP-0166 (Jingle), XEP-0167 (Jingle RTP), and 
XEP-0176 (Jingle ICE-UDP) all at once.  It uses the XMPP and ICE facilities 
of iris.  Long term we'll want to break this code up so that we can support 
more Jingle things than just voice calls, like file transfer.  But, for now, 
this all-in-one blob is what we have, and it offers a simple API: connect to 
a JID, and you are given an abstract packet pipe that you can read/write RTP 
packets with.

    main avcall code: bridges the jinglertp and psimedia parts together and 
offers a user interface.

  Also of note is the qca library, which we use for our security needs and 
contains most of the common cryptographic primitives.  Probably SRTP can be 
implemented using qca functions.

Where SRTP fits into this stack depends on what kind of knowledge it needs 
about the RTP session state.  So you must first read the SRTP specification 
and fully understand its requirements.  Further, make sure you know how SRTP 
may be used with sessions involving more than 2 participants (group 
multimedia conferencing), since that's an area we'd like to explore someday.

If it turns out that SRTP can process arbitrary RTP packets, then probably it 
can be kept out of the psimedia layer.  SRTP encryption could be applied to 
packets after they come out of psimedia, and incoming packets from the 
network could be SRTP decrypted before being fed into psimedia.

Let me know if you have further questions or need more explanation.


More information about the JDev mailing list