GSoC/GCI Archive
Google Summer of Code 2009

SIP Communicator

Web Page: http://sip-communicator.org/gsoc

Mailing List: dev@sip-communicator.dev.java.net

SIP Communicator is an audio/video Internet phone and instant messenger written in Java. It supports some of the most popular instant messaging and telephony protocols such as SIP, XMPP/Jabber (and hence GoogleTalk), AIM, ICQ, MSN, Yahoo! Messenger, IRC, Bonjour and still counting. The development of SIP Communicator started out at the University of Strasbourg, France (http://www.unistra.fr) but has grown to include members and contributors from (alphabetically) Brazil, Bulgaria, Cameroon, China, France, Estonia, India, Germany, Japan, Romania, Slovakia, Spain, UK, USA, and others. Some of these contributors have joined the project after successfully participating in the 2007 and 2008 editions of Google Summer of Code. SIP Communicator is based on the OSGi (http://osgi.org) architecture using the Felix implementation from Apache (http://felix.apache.org). This makes it very extensible, particularly developer friendly, and very useful to learn while in the university. Needless to say SIP Communicator is completely Open Source / Free Software, and is freely available under the terms of the GNU Lesser General Public License.

Projects

  • A complete Java interface for Mac OS X’s Growl Currently, SIP Communicator uses Growl's Java bindings to post notifications to Growl notification daemon. However, these bindings do not support full capabilities of Growl. This project concentrates on developing a full Growl support in SIP Communicator using Java Native Interfaces and Growl framework.
  • A filtergraph for FMJ Filter graph is used in multimedia processing. Filters take input process it and then output processed data. Filters can be either codecs or multiplexers/demultiplexers or other. The filter graph is directed graph that represents data flow between filters. Currently the filter graph builder in FMJ needs improvements because it sometimes produces not optimal graph (either it takes too long or contains unnecessary nodes). The aim of this project would be to improve filter graph builder.
  • DTMF with RTP Very interested in the implementation of DTMF with RTP. Last year of a French Engineering University: INSA-Lyon specialized in Telecommunications. I will be graduating in July 2009. My training is split in : - Network : TCP/IP, VoIP... - Signal Processing : Codec, modulation, ... - Computer Science : C and Java - Project management I hope we will work together
  • Dude, check out my photo! The Project Idea is to allow users to upload display pictures/avatars for all protocols from either their computer or from webcam. We can easily extend the project to include feature to be able to set custom status messages for all the account simultaneously.
  • Geek Communicator My proposal involves the Geek Communicator. A interface accessible directly from the console. The purpose of this console is to enable fast access for both the user and scripts to use SIP Communicator.
  • Hush-hush chats with Off The Record (OTR) messaging I think this project is exactly what I was looking for to participate in GSoC 2009, I really hope I get picked as a student and, if I have what it takes, to continue to contribute to SIP Communicator, and experiment with new ideas (file sharing for example?). Here are my thoughts about the OTR project.
  • Psychoanalysis through chat clients! The following is a proposal for one college student to have an awesome summer producing useful code for a useful open source project called SIP Communicator! I would like to contribute a sort of "Display User Chat Agent" extension for SIP Communicator. The overall goals of the project would be to produce light, simple, maintainable code that easily "plugs in" to the current SIP Communicator.
  • Storing History in an Embedded Database A HistoryService would be associated with a database containing different tables corresponding to each History. The fields(columns) present in each table would depend upon the HistoryRecordStructure for the History and each HistoryRecord would be represented by a row in the table. Records would be read, written and searched using the appropriate SQL queries. .