Contents

Introduction

Real time Communication has traditionally been a detached feature of Desktop Computing, provided via stand-alone Instant Messaging clients with poor integration into the desktop experience. One of the primary goals of the KDE 4 series is to tighten integration between different components of the environment. The Realtime Communication and Collaboration (RTCC) project aims to tackle just this.

Our aims are:

To integrate Real Time Communication deeply into the KDE Workspaces and Applications

To provide a infrastructure to aid development of Collaborative features for KDE applications.

If you find these goals appealing, why not consider getting involved. C++ programming is *not* a necessity.

Technical Information

We should try and reuse code from Kopete/other already existing code wherever possibly. However, this should be balanced with the need to refactor/rewrite where appropriate to keep the new code true to Telepathy idioms.

Frequently Asked Questions

You can find a list of answers to frequently asked questions here: FAQ.

The Plan

1) Build components equivalent to a traditional IM application, using Kopete code as much as possible, and integrating with other Pillars of KDE where appropriate.

2) Add advanced Telepathy features such as voice/video.

3) Build components and Convenience classes to enable real-time communication and collaboration features in any KDE SC app that wants them.

The Work

What we need to get done. This is divided into two sections:

Phase 1 contains the tasks which *must* be completed in order for us to make a first preview release.

Phase 2 contains other speculative major features that we will probably implement once Phase 1 is complete.

Phase 1

These are the essential tasks which must be completed before we can make a first release. Adding or removing tasks from this list requires a consensus on the kde-telepathy mailing list first. Click on a task title for further information about that task.

Workflow

If you want to work on a feature, clone the git repository on the server side and then clone your personal clone on your local machine. Make a new git branch and start working there. Try to keep commits small and meaningful. Once you are finished, push the branch on your server-side clone and ask someone of the team to review it. Once it is reviewed, you can merge it on the master repository (or ask someone else to merge it).