The SIP Communicator Google Summer of Code 2008 Projects List

Applications for Google Summer of Code 2008 are now closed!

In case you still have any questions feel free to drop us a note on the gsoc-mentors SIP Communicator mailing list (gsoc@sip-communicator.dev.java.net)

  1. Your idea here … - You like SIP Communicator and would like to contribute by implementing features that are not on this page? Please, do let us know! If we like your proposition and you convince us that you are prepared to go all the way implementing it we will support your GSoC application!

  2. Call transfer - Implement the possibility of transferring calls (i.e., connecting your correspondent to someone else) in SIP Communicator.

  3. Support for Facebook - Create a new protocol allowing users to chat using Facebook messages.

  4. Display remote party’s user agent? - You may have seen Mozilla Thunderbird’s “Display Mail User Agent” extension, that allows you to see the Mail application used by your correspondents. Well, we would like to have the same in SIP Communicator. Wouldn’t you agree that it would be nice to see a small icon in your chat window that would let you know something more about the people you are chatting with? ;)

  5. Message translation in Google Translate or Altavista Babelfish - The idea is to implement a plugin for SIP Communicator that would use one (or more) of the translation tools offered by Google Translate or Altavista Babelfish or any other and would offer translation in one click directly in the client.

  6. Extending and integrating the FMJ framework in SIP Communicator - SIP Communicator defines a media service that it uses for audio/video capture and RTP Streaming. The default media service implementation uses the JMF library for these tasks. We would like to have an alterante implementation of the media service that instead of JMF uses its open source alternative - FMJ.

  7. Support for LDAP - Implement an OSGi service for SIP Communicator that would allow other plugins to lookup phone URIs in an online LDAP directory. The project also includes writing a simple GUI plugin that would allow users to use the LDAP services.

  8. Implement NAT traversal with ICE on top of Stun4J - NAT traversal is probably one of the hottest topics in VoIP today. There has been a lot of work on the issue but the one that seems to be most widely accepted is the IETF protocol for Interactive Connectivity Establishment (ICE). The project would consist in implementing support for this protocol, using the stun4j project.

  9. File transfer for MSN, Yahoo! Messenger, and Jabber - Provide file transfer support in SIP Communicator for protocols that currently provide this functionality.

  10. Implement support for MSRP (file transfer for SIP) - In addition to VoIP the Session Initiation Protocol is becoming ever more popular for instant messaging. SIP Communicator supports SIMPLE (SIP’s IM and Presence extensions, implemented in SC by one of our GSoC 2007 students) but there is currently no way for SIMPLE users to exchange files. The IETF has defined the MSRP protocol as well as the extensions that are necessary to announce MSRP sessions in SDP. You task would be to implement support for this solution in SC, so that SIP protocol users could exchange files.

  11. Performance profiling and optimizations - Java is slow … right! Well, no, Java is not slow but programs written in Java (just as any other language) could feel laggy and unresponsive if not properly written. During the past several years SIP Communicator has been growing as we have been adding more and more features to it. We have now reached a point where a performance is becoming critical and time is ripe for a good deal of profiling to take place. This project would consist in performing a number of profiling tests on SIP Communicator and optimizing its code so that it would perform faster and feel more snappy to the users

  12. Group chat for MSN, ICQ and Yahoo - Implement a multi user chat functionality for the MSN, ICQ and Yahoo protocols.

  13. Manage block/ignore lists in all protocols - The purpose of this project would be to implement a set of utilities that would allow SIP Communicator users to define lists of contacts that they would like to block or ignore, and contacts that they would like to always be visible to (even when in an invisible presence status).

  14. Support for the IAX protocol? - Add support for the Inter-Asterisk eXchange protocol (IAX2) for SIP Communicator. Support for this protocol would represent a new implementation of our Protocol Provider Service and would have to be based on an existing open source implementation that would also have to be selected during the project.

  15. Spelling Checker - Develop a SIP Communicator plugin that would have to scan outgoing messages for spelling errors the same way that most word processors like OpenOffice and Microsoft Word handle this. Once an error is detected, the user should be alerted (e.g. by underlining the word) and a right click on the wrong word should open suggestions with the right spelling. The project includes a research for existing dictionaries in various langages.

  16. Implementation of encryption key sharing algorithms - Integrate an existing or implement a new key management protocol for SIP Communicator, that would be used in conjunction with the SRTP implementation.

  17. Auto merge contacts - Merging different addresses for the same person into the same meta contact is something which is very useful. However, actually defining the relationships between the different contacts could be a long and painstaking experience, and this considering that user is actually aware of this possibility. The purpose of this project would be for you to do some research, and propose algorithms on how SIP Communicator could detect such relationships by itself and automatically propose to the user a list of contact mergers.

  18. Audio Video Mailbox 2 - One of our GSoC 2007 students has started work on an Audio Video Mailbox plugin. The plugin had to pick up unanswered calls on SIP Communicator, play a prerecorded audio/video message and record incoming audio/video streams. We would now like continue work on the subject and finalize the feature. You would have to develop user interface that would allow the configuration of the plugin, playback, and management of stored message, as well as the possibility to record our welcome audio video message.

  19. Automatic Updates - The Felix OSGI implementation (used as the core of the SIP Communicator) supports retrieving plugins (OSGI bundles) from an online repository. In other words, it should be possible for a user running the SIP Communicator to download, install, configure, and start a plugin by simply hitting a button. We would like to create a User interface that would allow users to access this functionality of the OSGI core. We would also like to have an online OSGI repository that we could use for uploading and storing plugins for the SIP Communicator.

  20. Multiparty shared whiteboarding - Extend the current implementation of whiteboards for multiple users.

  21. Profile manager for SIP Communicator - Create a SIP Communicator extension that would allow users to create, manage, and load profiles. A profile is a user specific environment that contains custom settings such as user history, protocol accounts, and meta contact list.

  22. Support for MySpaceIM - Add a new protocol to SIP Communicator to allow users to communicate using the MySpaceIM protocol.

  23. Intelligent message reading - Create a new plugin that would automatically recognize specific data strings in IM conversations, such as addresses, contacts, etc. and allow users to perform various actions with the detected information.

  24. Extended chat history search - Extend the existing chat history feature to allow users to customize history behavior and include a more advanced search engine.

  25. Secure communication with Off The Record (OTR) messaging? - Implement support for secure, Off The Record messaging in SIP Communicator.

  26. Support for HTTP/SOCKS proxies - This project is your prize for reaching the end of our ideas page . Proxies are very widely used today in enterprise environments such as company LANs. In order for people to use SIP Communicator in such environments, they would have to be able to configure it to connect to the internet through a Internet proxy. Your task would be to determine which of the protocol stacks that we currently use could eventually support proxies and then develop the tools that would allow us to configure them.