[jdev] about GSOC idea on psi( Jingle RTP Encryption)
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
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