GTalk-compatible file transfers in telepathy-gabble!

Update: This is now available in telepathy-gabble 0.9.13!

Hi all,

As some of you might know, I’ve worked for a while on telepathy-gabble and I had the task of adding GoogleTalk-compatible file transfers to it. I’m proud to announce that my changes have been merged into telepathy-gabble and you will be able to enjoy my (awesome) code in the next release of telepathy-gabble.

This means that anyone using Empathy or any other telepathy-enabled IM client will be able to enjoy the feature and transfer files with friends connected on Google Talk. This is also great news because even if you are not using GTalk, but you are using a @gmail.com account you will also be able to transfer your files using the new feature between you and another telepathy user. What this feature brings you is the ability to use libnice and do proper NAT traversal techniques in order to enjoy high speed file transfers instead of relying on the SOCKS proxies that jabber servers provide for people behind a NAT.

This was not a simple task to achieve though, I’ve had to reverse engineer the protocol, learn telepathy-gabble, and implement all that stuff. The biggest achievement that came from this is the new ability to have reliable streams in libnice as previously announced on my blog. Indeed, that feature was added in libnice mainly for the purpose of having reliable file transfers with GTalk.

Also, as announced by Google a while ago, their iGoogle service now also supports file transfers. However, the protocol it uses is slightly different (Gtalk dialect 3 instead of dialect 4). I’ve spent some time trying to see if my code was compatible with it, and I did some reverse engineering, and tried to make it work, but because of lack of time, I wasn’t able to make my code work in compatibility with iGoogle. However, fear not, as it should be fairly simple to implement, given enough time and motivation. Google also said that they would add file transfers support into the chat features of GMail, when that happens, I’ll have another go at this and try to make telepathy-gabble compatible with iGoogle and GMail file transfers.

I’ll let you know when telepathy-gabble gets released with the feature, in the meantime, you can go grab the latest git version of tp-gabble and enjoy the new high speed file transfers with your GTalk friends!

Telepathy gabble 0.9.13 has just been releeased with the feature, so go grab it and enjoy high speed file transfers with your GTalk friends!

Special thanks goes to Intel for sponsoring this work as a part of MeeGo Netbook 1.0.

Enjoy,

KaKaRoTo

4 thoughts on “GTalk-compatible file transfers in telepathy-gabble!

  1. This is great news, thank you! Something I don’t understand though : “I’ve had to reverse engineer the protocol, learn telepathy-gabble, and implement all that stuff”. Google/GTalk uses the Jabber/XMPP protocol which is open, isn’t it? Where did you had to reverse engineer ?

  2. Thanks,
    The reverse engineering part is for the GTalk file transfers, yes GTalk uses the XMPP protocol which is open, but the file transfers they had are not a XEP or any open specification, it’s very GTalk specific, it uses jingle to do the filetransfer and uses their own HTTP over TCP over UDP stack for doing the file transfers. That’s what I’ve been reverse engineering. The signaling part as well as the data transfer part.

  3. Pingback: Biweekly Links – 08-09-2010 « God, Your Book Is Great !!

  4. Working in the Android OS, I naively tried to send a file through GTalk using the SmackX file transfer API. The server immediately kicks back a 501 error “feature-not-implemented”. Could you recommend an android-ready package that provides a GTalk file transfer API? Thanks for having a look.

Comments are closed.