GNOME Bugzilla – Bug 414397
Voip/Video Support for gossip-telepathy
Last modified: 2007-05-30 18:59:08 UTC
I will attach to this bug the patches for gossip SVN head to enable voip/video support. The working branch can be downloaded with darcs get http://www.gnome.org/~rslinckx/darcs/gossip-telepathy-voip
Created attachment 83850 [details] [review] gossip-telepathy-voip-protocols.diff The patch against the protocols/ subdir, affecting only the telepathy backend. Implement in the gossip-telepathy the gossip-voip-provider functions, and delegates the calls to gossip-telepathy-voip.c
Created attachment 83851 [details] gossip-telepathy-voip-protocols.tar.gz The new files that go with the voip-protocols.diff patch. The libgossip definition of voip-provider and the implementation in protocols/telepathy/gossip-telepathy-voip.c
Created attachment 83853 [details] [review] gossip-telepathy-voip-ui.diff Patches the UI part of gossip to be able to display the voip icon beside the names in the contact list, and the voip-window to show the calls
Created attachment 83854 [details] gossip-telepathy-voip-ui.tar.gz The new files for the voip-ui.diff patch. The cell renderer for the activatable talk button and the implementation of the logic behind the voip-window.c
The patches above require the telepathy-stream-engine being availble on the machine as well as a connection manager supporting the media signalling spec (currently only gabble, allowing a jabber-jabber or jabber-gtalk voice/video conversation). The capabilities of each contact is requested (can it accept voice or video or both) then the icon is showed accordingly in the buddy list. A menu item is also available to call a person when in chat view. Once a call is started the voip window pops up and shows the preview and video window (if it is a video call) and various meters and sliders to control the volume (some of them are unused yet because there is no way to know the volume in stream-engine) Ideally this should use the gossip's event manager code and behave like an incoming chat. Only one gossip-voip window can ever exist at a time, if an existing call is in progress any new calls are rejected but there is no notification of this in the UI. Comments are welcome. The patch basically works, you can receive and emit calls, but i guess it requires more work to be really polished and integrate well with the rest of gossip. I beleive this is an important step since this will be the first real video-capable client well integrated for gnome (excluding sip/ekiga). Also another addition when a SIP connection manager will exist, is to add a way to call someone by typing a phone number (there is no buddy list in SIP) for example by adding a dialpad or something like that and fetching phone numbers from evolution.
You forgot the patch for libgossip/ I think, GossipContactCapabilities is not defined in GossipContact.
Created attachment 83896 [details] [review] gossip-telepathy-voip-libgossip.diff This is the part i forgot to attach, to be applied along with the backend part of the patch (protocols.diff)
TODO: Add a check for stream-engine using ListActivatableServices and emit the caps correspondingly
Created attachment 83920 [details] [review] first review Here is a big patch with everything needed to add voip capability to gossip HEAD. I reviewed everything but gossip-voip-window.[ch]. Mainly changed code style to match gossip's coding style. I can call my N800 or another gossip contact but when I accept the incoming call tp-se takes 98% cpu and the voip session never begin. Don't know what's happening.
Martyn > you can skip the 1562 first lines of the patch if you review, that's the telepathy backend part.
If I set video input in gstreamer-properties to "test input" tp-se seems happy, but it does works better, when I accept a call, the caller stay in "connecting" state ...
I'll try to see what happens here. Maybe things broke during the merge, but i suspect it's related to your setup. the whole stream-engine business isn't very clean..
This doesn't implement file transfers at the same time right? :| any idea if that is planned in a similar way, Raf? I'm hopelessly looking for a jabber client that would support file transfers (and voip). Gaim is dead, Gajim is not moving in telepathy's direction at the moment, so I'm pretty much hoping gossip could use telepathy/tapioca/jingle/WhateverItIsNamedNowadays to make things "just work".
Jeff > A bug report is not the place to ask question about the project, please keep on topic. For a short answer, VoIP has nothing to do with filetransfer, but there is a draft spec for FT in telepathy and it will be implemented in gossip when the spec is finalised. Raphael > Did you tried with my patch, does it work for you ? Maybe I added a bug when reviewing (it won't be the first time, shame on me). If it's a configuration problem please tell what to do to make it work. Thanks :)
I tried (using Xavier's patch) to call a friend using google talk. Connection was established but we heard nothing. :\
Jeff: For more information on file transfer, follow bug #141569. Guillaume: I too have this problem, no audio, just video, and only MY video I should add (testing with the n800 and Gossip). Ralphael: Are you doing any more on this patch? I had to fix it up a bit, but I think it is almost commit-worthy! Good work, it needs some cleaning up on the dialog side of things, but that aside, I think it might be quite nice to have in Gossip.
The lack of video from N800->PC is a known issue, but not one we've gotten around to diagnosing. Our best guess is that the encoder used on the device is somehow incompatible with ffmpeg's decoder.
Dafydd, thanks a lot, that really helps, I wasn't sure if it was something in the patch - but that is really good news.
Created attachment 86930 [details] [review] Updated patch against svn trunk Hei :). I played with telepathy today and found that this didn't apply anymore so I humbly tried to update it. It worked/works for me. Hope it's useful.
Ah btw, I tested calling between n800 and PC. Results: - Audio: N800 -> PC: Works! PC -> N800: Haven't tried - Video: N800 -> PC: Works! PC -> N800: A black display with an interference band on top I'm willing to help on this!
Your updated patch doesn't include new files. Maybe it would be easier to add them in it.
Hmm, sorry I don't get you. Or maybe I didn't explain myself correctly... the patch is the result of applying attachment #83920 [details] to a fresh svn copy, being one month old it doesn't apply cleanly so I just applied some parts manually. After applying the patch in "semi-automatic" mode I did a svn di which, as far as I understand, produced a equivalent patch to the one I applied just that this one /applies cleanly/ to trunk. In one line: I updated the patch to apply cleanly to trunk. I didn't add anything new.
What Guillaume said is my patch adds new files, so you have to add them to svn before generating the patch, using svn add <files>.
doh! Sorry didn't get it! I´ll update it.
Created attachment 87114 [details] [review] Updated, includes missing files Doh!
Thanks for the new patch Diego, I will try so see if it works correctly without tp-se cpu eating problem. Thanks to all for your work !
Previous releases of farsight didn't work with latest gstreamer. That's now fixed. I did some tests and it seems to work really better now (I was able to call one of my friend who is using Google talk). So if you're using gstreamer 0.11 or older, I suggest you upgrade your telepathy-stream-engine, farsight and gstreamer-plugins-farsight to use latest releases. Debian Sid packages are up-to-date and I rebuild them for Feisty (use latest libjingle packages could be a good idea too): http://projects.collabora.co.uk/~cassidy/packages/feisty/
Thanks for the bug report. As announced [1] yesterday we have decided to remove the Telepathy backend and go back to our initial goal of becoming a Jabber/XMPP client. As this bug is related to the Telepathy backend we will close it as obsolete as the code will no longer live in our code repository. If you want to continue to use a Telepathy client we suggest you take a look at the Gossip fork Empathy [2]. [1] http://lists.imendio.com/pipermail/gossip-dev/2007-May/009222.html [2] http://live.gnome.org/Empathy