GSoC end – The status of KCall and instructions for trying it

On Monday, GSoC is officially over, so I thought I should make a post describing what I accomplished, what I didn’t and what’s the current status of my project, KCall.

Currently, KCall supports quite well audio/video calls over Jabber/GTalk. The fact that it supports only jabber, though, is not my fault, but it’s the fact that no other connection manager apart from telepathy-gabble (the connection manager for jabber) supports that well doing calls. In fact, there are only two connection managers that support calls, as far as I know: telepathy-gabble (for jabber) and telepathy-sofiasip (for sip). Unfortunately sofiasip does not support certain features that are needed by KCall (yet), so although it may work, there are things that you can’t do, like for example calling other people, which is a crucial feature. So, with sofiasip you can only receive calls and sometimes even this doesn’t work as expected. Streams may not get connected, you may have only one-directional audio and things like that… Don’t ask me why, I have no idea.

If you try KCall, you may notice that the quality of the UI and the general behavior of the application is not as good as possible. There are two issues that prevented me from improving it further:

  1. KCall is a telepathy client that needs to comply with the StreamedMediaChannel specification. However, this specification is not well-defined and there are many problems with it. For many things to work, some assumptions that are not part of the specification have to be made and these assumptions make it extremely difficult to implement advanced features like multi-user conference. In fact I had to assume that the channel can only have 2 participants and implement hacks on top of this… Very ugly, but required. And these assumptions limit the behavior and functionality as well. The problem though lies in the specification, so other clients and connection managers also have the same problem. Empathy works in a similar way. If you take a close look, KCall resembles empathy a lot in functionality and behavior; this is the reason why. Hopefully, the specification will be fixed and I will rewrite parts of KCall to fix it and improve it.
  2. The contact list currently looks awful. The reason I did not improve it is that in the near future the way of managing the contact list in telepathy will change. It is planned to use nepomuk to store relations between contacts, so that we can have metacontacts like in kopete and possibly associate them with the kaddressbook contacts as well. So, if I try to improve the contact list now, it will just be wasted effort, since I will have to rewrite it anyway.

So, from my point of view, KCall is as good as it can be. Sorry that it can’t be better yet.

If you want to try KCall, you can check it out from svn (svn:// and follow the instructions in the README file that I wrote a few days ago. Note that it still has some important bugs and I don’t think it is ready for general purpose usage, however, I would like it to get some testing. Unfortunately, it has a lot of ugly dependencies.😦 Most of them can be found in packages, except perhaps telepathy-qt4 that is not a stable library yet. You can find it here (check the URL field there to get the git url). This is the master branch, which builds with autotools, but there is also a cmake branch in this repo (Just note that the cmake branch has to be built with -j1 and it may not be up-to-date always). I won’t go much into details, I expect you to know how to use git already:) Note that some distributions may be shipping a library called telepathy-qt, but note that this may be the (too) old telepathy-qt library from kdesupport, which is now completely rewritten.

PS: If you are a debian/ubuntu user familiar with debian packaging, you might be interested in this repo.

PS2: I may make an unofficial debian/ubuntu kcall package later this week… I’ll think about it…

PS3: I will write this, but don’t flame me… Just FYI: Storing passwords in the telepathy account manager is not safe, as the passwords are later exported on dbus. I would recommend you to use a dummy password for your jabber account, or even make a new testing account with a dummy password, or at least don’t use the same password for your root and/or regular system users and for your jabber account. And kill mission-control-5 when you don’t need it. Also note that the console log of kcall also prints the password in plain text somewhere… (telepathy-qt4 is to blame…). So, don’t put the log in pastebins without removing the password! I am going to email the right persons about this, as it is totally unacceptable imho. Just watch out until it is fixed.

23 thoughts on “GSoC end – The status of KCall and instructions for trying it

  1. Hey George,

    Don’t be sorry that KCall isn’t as good as you want it to be – it never will😉

    We all have higher standards than we can ever accomplish, it’s what keeps us going, right? I think you’ve been doing great work, and I’m sure you can keep KCall going. In time it’ll be an integral part of KDE!

    Thanks for the work.

  2. Odd that SIP works so bad. On my 810, I use SIP a lot and never had any problems with dialing out. This is what’s installed:
    dpkg -l |grep sip
    ii libsofia-sip-ua-glib3 1.12.8-0osso7 Sofia-SIP library glib/gobject interfaces ru
    ii libsofia-sip-ua0 1.12.8-0osso7 Sofia-SIP library runtime
    ii osso-accounts-plugin-sip 3.71-1 SIP plugin for the Accounts applet
    ii telepathy-sofiasip 0.5.4-0osso10 SIP connection manager for Telepathy

  3. Despite your instructions, I’ll flame you anyway.😀 It doesn’t make sense to worry about passwords going ‘in the clear’ over DBus. Unless you don’t trust DBus, in which case we’re screwed with Telepathy and most KDE programs since we expose so much functionality via DBus.

    So really passwords being unencrypted over DBus is about as safe as they are just stored in memory (which of course they have to be at some point).:)

    1. Well, maybe we are screwed😛
      But I think the passwords are more important to protect. Imagine that there is a malicious application that has access to dbus (this may be difficult on linux, but on windows it sounds perfectly possible). If it has access to functions exported by applications, it can make apps misbehave (and possibly crash). That’s what viruses do, there is nothing we can do about it. However, if it has access to passwords, there are more dangerous things it can do. For many accounts (gmail, msn, yahoo), the account login information is usually the same with your webmail login information. So, it has access to your important mail! In addition, in case you happen to use the same password everywhere (quite common I guess), it has access to anything else that uses a password, like your user and root accounts and many more…

      There is nothing else that exposes passwords like that. kwallet and gnome-keyring that also store passwords have protection mechanisms that ask the user for permission and possibly a password to unlock the wallet.

  4. It makes me sad that telepathy still sucks so much that it is not even usable for something as straight forward as having a simple voice chat.

    I had hoped the situation was better with streaming media than with the normal text chats. But it looks like text chat as well as voice media only even works with the gabble CM. Other CMs differ so widely in behavior and features that it is basically impossible to use them without intimate knowledge of the actual CM used… at which point it makes little sense to have a common interface in the first place.

    1. No, it makes sense to have a common interface. However, not all the connection managers are feature-complete yet. It takes time for that to happen…

    1. All jabber clients that support audio/video chat are supported. The ones I know right now are: kcall, empathy and google’s web client (on gmail, using windows & internet explorer). And there must be other clients as well…

  5. Hi.:)

    “PS2: I may make an unofficial debian/ubuntu kcall package later this week… I’ll think about it…”

    Do you have a packages ready for Debian? I would be very happy, to test KCall.

    Sorry for my english.;)

    1. No, sorry, there is no such package. After thinking more about it, I concluded that creating a package may actually do more harm than good, as it is alpha quality software, not intended to be released to the public. You may compile it if you want, it’s not very hard.

  6. a really good voip client is so needed for kde (xmmp only is great – who in the free world really needs msn,aim or something like this) thx for your great work – will you (or someone else) continue working on it ? is there some hope that there will be at some point no need for skype on kde anymore?

    1. Yes, I plan to continue working on it really soon. There are other things that must be finished first though. My current plan is to work on QtGstreamer and perhaps the kde-telepathy stack until something is ready and then use the existing kcall code (ported to the new QtGstreamer) to provide audio/video on top of it.

  7. The current package of KCall from KDE:Backports doesn’t work – none of the menus needed to configure a SIP or XMPP account exist. Doesn’t appear to have a command line interface or config file.

  8. The link for the svn is dead, could you provide another link im interested in work you did with gstreamer and telepathy-glib … thanks

  9. Hmm it seems like your web site ate my first comment (it was super long) thus I guess I’ll just add it up what I wrote and say, I’m totally enjoying your blog. I too am an aspiring blog blogger but I’m still new to everything. Do you’ve got any useful hints for rookie blog writers? I’d genuinely appreciate it.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s