File Transfer in Telepathy and Empathy!

After months of waiting, the file transfer support in Telepathy is finally there!

The spec was merged as a draft last week and the Salut and Empathy branches followed this afternoon. This means that this long-awaited feature will be available in the next releases of Empathy and Salut.

Lot of persons have been involved and worked very hard to make this happen. File Transfer was first started by Marco Barisione as a SOC in 2007. Unfortunately his work wasn't merged directly because we were not completely happy with the specification and wanted to use the not-ready-yet Requests API. This summer, Jonny Lamb resurrected Marco's work, ported it to the new FileTransfer API and polished the Salut and Empathy implementation. I finally gave the last shot these last days by finalizing the spec, porting implementations to use the Requestotron and fixing last bugs. Xavier polished a bit the Empathy implementation and made it ready for merging.

Releases should be out shortly. So, with the future Empathy 0.25.1 and telepathy-salut 0.3.6 you'll be able to send and receive files on your local network using Link-Local XMPP. Our implementation is fully compatible with Apple's iChat but not yet with Pidgin as libpurple doesn't implement the OOB protocol.

Next step will be to implement the File Transfer API in telepathy-gabble in order to be able to send and receive files over Jabber. If people are interested to contribute to Telepathy, implementing FileTransfer in telepathy-butterfly (MSN) or telepathy-idle (IRC) would very valuable contributions. We are also working on the resurrection of the nautilus-sendto plugin too, so we'll be able to easily send files directly from Nautilus!

Thanks to Collabora and Google to have sponsored this work.

File sending in Empathy

Commentaires

1. Le vendredi, novembre 21 2008, 19:19 par Livio

D'oh, I'm probably stupid if I hope for native Gadu-Gadu support in Empathy (with all features) but it would be great, since a library already exists and there's no need for buggy libpurple...

2. Le vendredi, novembre 21 2008, 21:31 par Mats Taraldsvik

Nice! I'm really interested in it's performance, and how it deals with NAT, firewalls etc.

I recall reading about something(api/framework) that would deal with this (NAT, firewalls etc.) automatically, for Telepathy/Empathy. This would be very handy for file transfers, but also for (support via) remote desktop, games, collaborating in e.g inkscape, gedit.

3. Le samedi, novembre 22 2008, 15:18 par MaX

Is it compatible with gtalk (windows) too?

4. Le dimanche, novembre 23 2008, 21:32 par Guillaume

Livio: We'll be happy to help any contributor interested in writing a Gadu-Gadu connection manager. Get involved! :)

Mats: We don't have to deal about NAT/Firewall in Salut as all peers are suppose to be on the same network. We'll have this problem in Gabble thought. Our plan is to implement nat penetration, as well for FT and tubes, using libnice.

MaX: File transfer is not implemented in Gabble (our XMPP connection manager) yet. Of course, we plan to interop with gtalk.

5. Le dimanche, novembre 23 2008, 22:22 par Mats Taraldsvik

Yeah. If I remember correctly - it happens from time to time - I was referring to 'tubes'.

Aha, so this is specific: file transfer for clients on xmpp protocol on the same LAN.

Will this tubes/NAT-penetration thing make file transfers, games and remote connections work by magic (well, for users, anyway :) ), though?

6. Le lundi, novembre 24 2008, 15:58 par Samaelh

Je n''en ai pas l'impression au vu du screenshot, mais est-il prévu d'intégrer le transfert de fichier via empathy à l'interface de transfert de fichier de Gnome ? (celle qui apparait en transfert de fichier local/ftp/ssh...)

7. Le lundi, novembre 24 2008, 23:15 par Guillaume

Mats: yep, the whole point is to make all that magic just works :)

Samaelh: oui oui, ça va être intégré dans nautilus via nautilus-sendto. Cfr http://blog.barisione.org/2007-08/e...

8. Le mercredi, novembre 26 2008, 22:40 par Mats Taraldsvik

Ah, automagic - less work, more joy! :)