Video calls in KDE-Telepathy

Well, I think I owed you this one 😉 Remember back in 2009 when I was working on KCall as part of the GSoC program? Well, it may have taken 2.5 years more, but I’m now pleased to announce that it’s finally in a ready-to-use state \o/ Don’t expect it to be perfect, of course. It still has a long way to go.

Here is the obligatory screenshot. Me on my desktop, calling myself on my laptop 🙂

Screenshot of ktp-call-ui
The KDE-Telepathy call-ui in action

A little bit of history

When my GSoC finished in 2009, there were 2 main problems with KCall. The first one was that the bits of the telepathy specification for doing calls (i.e. the “StreamedMedia” channel type) were problematic, not to mention that the API of the telepathy-farsight library, which was the only way to use StreamedMedia, was also weird and it took me too many tries to finally understand it (in late 2010…), which in simple words means that KCall was very unstable beacause it used the API in the wrong way (if there really was a right way to use it…). The second problem was that there was no telepathy integration in the KDE desktop, so KCall would need to have a proper contact list, account manager and other stuff that it shouldn’t have to implement.

In late 2010, the KDE-Telepathy project started evolving and we finally managed to make a first release last summer with the necessary components to use telepathy on the KDE desktop. At about the same time, work began on a new API for doing calls in telepathy, the so-called “Call” channel type, plus telepathy-farstream, the new and enhanced version of telepathy-farsight. It took a little longer than expected, but finally a few weeks ago, thanks to the awesome work of my colleagues at Collabora who engineered the whole thing, the “Call” API and telepathy-farstream were finished and released. Fortunately, last year I had already worked on porting the call-ui to the draft Call API, using the draft telepathy-qt Call bindings that used to be in the telepathy-qt4-yell module. So, now I only had to first update the telepathy-qt bindings to the latest and greatest API specification and then do the same with the call-ui, plus fix a bit the UI, which was way too ugly. And so I did.

The present and the future

The UI is far from perfect at the moment, but the engine seems to work reliably. I have many additions and improvements in mind. However, since I suck at UI design, I’d love having mockups of ideas from people that can actually design UIs. And I’d also love having other people to implement those ideas, since I’m a lazy man… 😛 (ok, I don’t really mean that). So, if you feel like helping (either way), this is your chance to get involved 😉

The current UI will be included in the next KDE-Telepathy release, 0.4, which is scheduled for next month. Be prepared.

Try it

So, if you can’t wait for the next KDE-Telepathy release and want to try this now, what you need is the latest ktp-call-ui from git master with all of its dependencies. To make a call, simply right click one of your contacts in the contact list and click “audio call” or “video call”. Alternatively, you can do this directly from the text-ui or the contact plasmoid. Note that older versions of those components also have audio/video call buttons, but they will try to start StreamedMedia calls instead, which will fail. Also note that calls require XMPP (jabber, google talk) at the moment, but SIP support is also on its way upstream.

35 thoughts on “Video calls in KDE-Telepathy

  1. Congratulations for reaching this milestone!!

    > Also note that calls require XMPP (jabber, google talk) at the moment, but SIP support is also on its way upstream.

    Does this mean that you can have a video chat with people using gmail, or the other end has to have KCall (or maybe another desktop client) as well?

  2. I would love to try this out with PSI (on Windows) and my XMPP Account on Nokia N9…anyone wants to test with me?

  3. Why XMPP is supported and SIP not?
    Telepathy should provide abstract interface for any protocol. Is it problem with some internals, like codec, media format or something else? Does it means that adding new protocol will require changes in kde-telepathy?

    1. Telepathy is abstract, the problem is that the SIP connection manager (telepathy-rakia) has not been ported yet to use the new Call API. This is work in progress. And no, adding a new protocol will not require any changes in kde-telepathy.

    1. That’s not quite so straightforward to do, different distros already have some of the required components, so there’s no point recompiling them (and it would be bad to do so), but if we don’t have all those dependencies then the call-ui won’t compile. Call ui is already on the list, you just have to uncomment it.

      Error checking would be good, patches welcome!

    1. I think it isn’t, but I have to check. It used to be possible in the past, but then microsoft decided to change the way the server-side works and it stopped working. Nowadays microsoft exports the windows live protocol with an xmpp interface, and this is the first and only interface that they support for 3rd-party clients. If they decide (or have decided already) to also support calls over this xmpp interface, then it will probably work, but this is something that depends totally on them.

      1. Yes, i know this. Thanx a lot!
        If i remember correctly, WLM via xmpp do not support video/audio chat.
        The Butterfly and Haze telepathy components do not have any video/audio features on WLM?
        Thanx for your wonderfull work!

  4. >However, since I suck at UI design, I’d love having mockups of ideas from people that can actually design UIs.

    Is there any requirement specification? IMHO, the UI should fit the intended functionality. E.g., if you plan to implement multi video chat you have to add some kind of thumbnails, a contact list, and so on. If the application supports only one to one communication all this stuff would be dispensable. Additionally, the UI needs to be consistent with other Telepathy modules. I don’t know if there is any basic style guide.
    But an interesting project anyway, and I would like to support you.

    1. Both use cases are valid. A call can either be between 2 persons, with or without video, or between more than 2 persons, again with or without video. Calls can also be promoted or demoted from one state to another (i.e. a 3rd person may join later or leave later). Of course we could have 2 different UIs and switch between them dynamically.

      1. Okay, the first requirement is “no limits” 😉

        AFAIK, the contact list is managed by another module. I guess the person you want to call should be in that list. Thus, for which module(s) of Telepathy do you want to improve usability?
        I tried kde-telepathy recently and was a little bit confused. Due to modularization, I guess, the user is prompted with a lot of different executables and forms. Disregarding a possible configuration issue made by myself this pattern is not recommendable to unexperienced users.
        Where should we start?

        1. Yes, the contacts are in another application, but that shouldn’t be of concern to the call-ui. The call-ui opens when there is a call in progress and my main concern atm is how to display things during the call. In any case, if you are interested in helping, I suggest that you subscribe to the mailing list and start a discussion there, so that all the team can participate.

  5. I have a build error.

    Is there a KDE Telepathy irc channel where I can discretely ask for pointers?

  6. Hallo, I’m a Chakra KDE 4.9 – Claire(2) 09/2012 user. Now I use KDE-telepathy. But I can’t do any VideoCall nor Voice calls with Yahoo account. My buttons are all grey. I haven’t found any explanation. So, do I need to install extra codecs? In kopete I can see my cam in Yahoo-Settings, but not when I start a Video session.And why, does telepathy not install the needed packages (dependencies)?
    I love KDE, but always the same (deja vue) troubles in many KDE-versions, that really sucks (sorry).

      1. Thank you… but, why can I choose yahoo in telepathy menu?
        And why is audio/video call implemented (as jasper?) in kopete (e.g. in kubuntu) to make v/a calls for yahoo also and why can’t easily use that same modules in telepathy, that kopete is using? No need to invent the same thing a second time.
        There are many bugs to solve, so let’s use the fixed parts, that already work.
        I’d rather like to install gyachi, but there’s no way for me to understand, how to install the tar.gz file from sourceforge :(. I on’t understand the errors…
        I assume I will change to linux mint with kde 4.9.1 (ppa) and kernel 3.5 from debian main…
        What a pity, I gave Chakra a big trust before, because I want to prevent installing unnecessary gnome packages..
        In my eyes, the documentation (howto) for finding and installing the correct Chakra-packages, which are not standard, is hard or better, not to understand.
        I need to know, where is the package. How to install the package. Clear easy and always with examples!
        Btw, couldn’t you use jasper for telepathy?

        1. It’s way more complicated than you may think it is. Reusing parts of kopete is not possible. And I’m not sure what jasper is. You can select Yahoo in the telepathy accounts simply because you can still use the yahoo protocol for text chats. Telepathy is not only about video calls.

          1. Thank you again…
            I always preferred Yahoo Messenger to MSN, because MSN sucked (not only) in a/v calls due to it’s protocol. I’ve got Yahoo working with a/v in kopete in kde 4.8 (with jasper module).
            You know, that YM is rather most used messenger in the world?
            So, I can’t use kopete and also telepathy without a/v. This is step back.
            And I can’t install gyachi anymore due to unresolved dependencies in Chakra.
            In times of multimedia, a/v (at least video!) is a must.
            Then it would be better, not to offer an IM service (Yahoo or ICQ or any else, that usually works with video, but not in kopete or telepathy…

  7. Thank you so much for your work.
    Just a question. Do you have any plans to implement settings for audio-video calls? It would be great to have a possibility not just to select audio input and camera (which is must have), but also to be able to pick desired picture resolution and adjust various v4l options for the camera (brightness, contrast, etc) on the fly during the call.
    I am just wondering, why it is nothing out there like the video-capable IM software with this feature of adjustable video resolution. Is it video call extensions of XMPP protocol forcing developers to the predefined (standard?) video resolution?

    1. Yes, I’d like to implement such features. There is no limitation by any protocol and it’s not very difficult to implement them either. I just haven’t been to it yet.

  8. interesting, but in my PC i installed the most recent version of telepathy but video call in Gtalk are disabled, i need this to talk with my family , i click on contact avatar with right button but the “video call” option are disabled.
    The last option is install the oficial gtalk plugin and try it again.
    Opensuse 12.2(x64) kde 4.8.5
    telepathy 0.5.60

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s