Adium

This project was developed in the Google Summer of Code program. During this time, I have been working with two different teams:

  • I worked with Jivesoftware, working on the Smack library, where I implemented the Jingle extension, in Java. This extension provided payloads negotiation and transport methods for alternative communication channels and, in particular, multimedia channels (ie, audio). In this way, a Jingle-enabled XMPP session could include multimedia chats between the endparts.
  • I also worked with the Adium team, integrating the Smack/Jingle extension. I created a general framework for videoconferencing in the Objective-C domain, where media protocols can be registered and used by other compenents of Adium. Jingle handled all the aspects of the negotiation, and a new QuickTime plugin I developed would be responsible for handling RTP channels. For doing this, I implemented a RTP streaming and reception system using the QuickTime RTP components, so that any of the payloads currently supported by QuickTime could be used in our program.

At the end of the project, Adium got some basic infrastructure for becoming an audio client for the Google Talk network. After that, it could be easy to extend the system and get a working video client too…

This project started in June’06 and finished in September’06.