KDE Phone subsystem integration

Emmanuel Lepage emmanuel.lepage at savoirfairelinux.com
Tue May 8 20:01:38 UTC 2012


Hello,

My name is Emmanuel Lepage Vallee, I am a 22 student at ETS engineering school in Montreal (Canada). I found myself a sponsor to work 40hr/week (next week until September) on KDE at a local Linux/FLOSS consultant company. I will be working on KDE support for phones (GSM, SIP) for Active and other uses. I have a basic roadmap in place with Marco (notmart) for the Active part and, now that all the details about the sponsoring are solved, I announce the project here too. 

There is currently a software called SFLPhone (sflphone.org) developped by my employer. It is GPLv3 and offer a softphone daemon. It support most features you can think of:
-Security
-Conferences
-Multiaccount
-Transfer
-Video
-Configuration

How it look (sorry for using a AwesomeWM and not Plasma, I just wrote too much script to port that over to the new kwin-scriping engine (24k lua line of code)):
http://img152.imageshack.us/img152/9013/sflphone2.png

Here is a little video, sorry for the sound quality. I will fix it as soon as I understand what went wrong during the transcode (The noise come from kdenlive, the original file is crystal clear...)
http://www.youtube.com/watch?v=VTnPd-gRzWY&feature=youtu.be

Since 2009, there is a KDE client. I have worked on it over the years while I was a school. It always “worked”, but it was never too great, buggy and outdated most of the time. Not anymore. It is now complete and I look to move on. I support KDE4, Akonadi, Phonon, KCFG and so on. As I know I have almost 0 user, I really want to make it even better and even more integrated into KDE. As plasma active is coming to devices, I look forward to put my time integrating phone feature everywhere it make sense. I will abstract everything so it can be used with other phone system, but as I am sponsored to work with SFLPhone, I will concentrate on it for now.

I look to do something like this
-QML plasmoid (currently only basic qwidgets one, totally outdated and broken)
-GUI for desktop, tablet, panel and mobile (desktop is ready)
-Solid? abstraction for different backends (SFLPhone backend for now)
-Extend current support in KDEpim for other use cases than Microsoft Skype (TODO)
-Dataengine (already done, but incomplete, does support only SIP, need to be ported to the abstraction)
-Active application
-Android "Linkify" style support (click on a phone number in any text area to launch the phone GUI) (resurect my old dead KDE GSOC code or rewrite it following how Google did it for Android, I like how they did it)
-Possibly OwnCloud integration if I still have time, but I don't think so. 

The current design look like
-----SFLPhone daemon------
---------DBUS-------------
-------libsflphone-qt-----
-------SFLPhone KDE-------

The daemon offer two main interface, one for account/configuration and one for calls. The Qt library interact with dbus and offer signals and slot and objects managment on top of the text based dbus interface. 

The KDE layer add Akonadi contact support and host the GUI and config dialogs (.ui).

What I might do is:

-----SFLPhone daemon------
---------DBUS-------------
-------libsflphone-qt-----
+++++libsflphone-KDE++++++ <-Abstraction backend
+++++KDE abstraction++++++ <-Phone subsystem abstraction
=======SFLPhone KDE======= <-Probably rename it something else and use the abstraction

What do you think about these features? Do you have suggestion where to invest my time the can loosely fit in “Integrate SFLPhone deeper into KDE”? I mostly communicate using IRC and ML.

The code is hosted in a common git with the daemon and gnome client at sflphone.org. If possible, I would like to move closer to KDE in the comming months.


More information about the Active mailing list