Mot-clé - Telepathy

Fil des billets - Fil des commentaires

lundi, juillet 30 2012

Empathy BoF at GUADEC

I'll lead an Empathy BoF session tomorrow (Tuesday) from 4 to 6 (room 2.2a) feel free to show up if you are interested about the recent redesign work we have done in Empathy and our plans for the future.

Btw, a bunch of people have asked me about two annoying Telepathy issues:

 * GTalk contacts not showing up. That's actually a telepathy-glib bug which has been fixed in 0.18.2. If you are running F17 you can upgrade by grabbing the package from updates-testing: yum --enablerepo=updates-testing update telepathy-glib
 * Not being able to chat with 'People Nearby' contacts. Turns out that's because of Fedora's stupid firewall blocking incoming connections; disabling the firewall should make you reachable with Salut.

vendredi, octobre 1 2010

What's new in Empathy 2.32.0?

GNOME 2.32 was released a few days ago. As most of the developers focused on the upcoming 3.0 it's not exactly the most exciting release ever but I'm glad to say that Empathy is one of the modules with the most user-visible changes.

  • The main one is definitely meta-contacts. Thanks to the awesome work of Travis Reitter and Philip Withnall, it is now possible to easily link contacts together. This has been achieved using Folks, our new contacts aggregator library. See Travis's post if you want to know more about Folks.

  • Another new feature I really like is the contacts list live search implemented by Felix Kaser and Xavier Claessens. It allows you to very quickly find any of your contact by typing in the contact list. I hope to see more GNOME applications using this feature in the future as it's a very efficient way to dig through a treeview. Xavier even proposed to add this feature directly to GTK+. See Felix's post if you want to see it in action.
  • Notifications bubbles now have actions buttons allowing you to quickly accept or decline incoming events such as calls, file transfers, room invitations, etc.

  • Server certificates have been improved thanks to Cosimo Cecchi. Empathy can now ask the user if he wants to accept an untrusted certificate.

  • The IRC account widget has been improved to make it easier to select your IRC network. You can easily search through the list of networks using the live search feature and you can now create IRC accounts using the accounts assistant.

  • Empathy is now able to display vCard of your contacts and allow you to edit your own.

  • The audio/video pane gained a Details page displaying technical info about the call such as the codecs used which is always nice when you want to know what's going one without digging the logs

  • Some preferences have been added, by popular request, such as the ability to disable chat logging or automatically display incoming events (without blinking in the status area).
  • Connection error messages have been improved. Hopefully it should now be easier to understand the problem when an account fails to connect.
  • Empathy is now using status icons from the theme so artists can easily tweak them to fit well with the rest of your desktop.

Once you'll update your distribution you'll probably also update your Telepathy components. These upgrades should bring you some nice new features as well:

  • GTalk compatible p2p file transfers allowing you to exchange files with users of Google's GTalk desktop client. See Youness's post for details.
  • MSN file transfers and the return of MSN audio/video calls
  • And, last but not least, proxy support! Telepathy-gabble and telepathy-butterfly should now be able to make use of your proxy settings when connecting. Once again, best to check the blog of the one who implemented the feature if you are interested in details: Nicolas

Most of this work has been sponsored by my employer Collabora. But let's not forget all the contributors who have done a great job at reporting and triaging bugs, submitting patches, writing documentation, translating, etc. Your hard work is greatly appreciated!

dimanche, avril 25 2010

Introducing "Azimuth" for Maemo

Here is a small project I've been working on in my copious spare time.

The Nokia N900 is a great device but I felt kinda frustrated not being able to publish my location to my contacts in a way that Empathy can display it. Good news is the N900 uses Telepathy so that's something that can easily be fixed.

Here comes Azimuth a small daemon publishing your location using the Telepathy Location interface. The interface is only implemented in telepathy-gabble at the moment[1]. That means that your Jabber server has to support Pubsub to be able to publish. Unfortunately, Google Talk servers don't[2]; see the Telepathy FAQ for details.

I just uploaded the first version of Azimuth to Extras-devel (thanks Bigon for the package!) so you should be able to easily install it. This is my first Maemo application so I kept it pretty simple for now. Azimuth doesn't enable the GPS itself so you have to start another application using the GPS (as OVI Maps or Map Buddy for example) to publish.

So, if you want to test it you have to:

  • Install Azimuth
  • Reboot your N900 (the package doesn't start it automatically; suggestions about how to fix that properly are welcome[3]).
  • Set your IM presence to online
  • Start an application making use of the GPS

Be aware that once installed Azimuth will always publish your location when an application is using the GPS and your IM accounts are connected!

Plans for future versions include:

  • Add UI (probably a settings widget) to easily enable/disable publishing.
  • Allow Azimuth to poke the GPS for a position every $N minutes/hours
  • Add an option to reduce location accuracy for privacy reasons.
  • Allow using the Cell to get a position?
  • If you have more artistic skills than I have, an icon would be much appreciated.

If you experience issues or have nice ideas for improvements feel free to mail me. You can also use the Garage page if you feel brave enough. :)

Empathy displaying location using libchamplain


[1] XEP-0080 if you're into XMPP

[2] Google, I hate you for this

[3] The trick is to start the daemon as user and not root

lundi, septembre 14 2009

MSN audio/video chat in Telepathy

Lots of you were waiting for it, it's finally there: you can now make MSN compatible audio/video calls using Empathy! Louis-Francis released telepathy-butterfly 0.5.1 today, bringing this long awaited feature to our users.

In order to use it you'll need:

Packages should reach Debian and our Ubuntu Telepathy PPA pretty soon.

Lot of people deserve credits for this big achievement which involve a lot of work in different Collabora projects:

  • Philippe Kalaf, Olivier Crête, Youness Alaoui and Richard Spiers for the Farsight 2 plugins.
  • Youness, Ole Andre and Louis-Francis Ratté-Boulianne for the reverse engineering of the MSN protocols and its implementation in Papyon.
  • Youness (him again!) for the NAT traversal code in libnice.
  • Louis-Francis and Jonny Lamb for the Telepathy layer in Butterfly.
  • The Empathy team and especially Jonathan Tellier who polished the audio/video GUI

Let's not forget the amsn project which was used as a base of the protocol work.

Bigon and me testing Empathy interop with the official MSN client.

So what next? As audio/video video wasn't enough to keep Louis-Francis busy during his summer internship at Collabora, he also implemented file transfer support in Butterfly! His branch should hopefully be merged soon and so Empathy will gain MSN FT support! Olivier Le Thanh Duong on his side just finished implementing offline messages support. As you can see Butterfly development is more active than ever!

mardi, avril 14 2009

Telepathy Jaunty PPA open for business

As Jaunty is now almost released, I synced the Jaunty Telepahy PPA with Debian packages. Main user visible changes include:

  • File transfer support in Gabble
  • Better Theora support in video calls
  • Support of Google relays improving connectivity when trying to establish audio/video calls using a gtalk account.

As usual, we'll try to keep the PPA as sync as possible with latest released versions. So if you are interested in bleeding edge Telepathy components just add this repo:

deb jaunty main

vendredi, avril 3 2009

Jabber file transfer support in Telepathy!

As promised, telepathy-gabble[1] finally supports file transfer! I just released telepathy-gabble 0.7.25 implementing this long awaited feature.

This is a very important step as you can now send and receive files over Internet using Telepathy (the telepathy-salut implementation being limited to inter-LAN file transfers). This is also probably the last big feature that Empathy was missing compared to its ancestor Gossip. By the way, be sure to upgrade to Empathy before starting to send files using Gabble (see this bug if you are interested in the technical details).

File transfer is implemented using XEP-0096: SI File Transfer, XEP-0065: SOCKS5 Bytestreams and XEP-0047: In-Band Bytestreams. Most of the XMPP clients implement those XEP's so interoperability should work just fine; with the notable exception of the GTalk desktop client. We also use our simple SI extension to fallback to IBB if the SOCKS5 negotiation fails. That means that file transfer between 2 Gabble should always work! In the worst case the transfer will be really slow but at least working.

Our SOCKS5 implementation has been seriously improved too. It now supports IPv6 so p2p connections will be used if both peers are on an IPv6 network. We also implemented SOCKS5 relay, so if peers can't be connected directly (typically because they are behind a NAT), they'll try to use a proxy to relay their data. As lot of XMPP servers don't provide proxy at the moment, we hardcoded a bunch of public ones which will be used as fallback. These SOCKS5 improvements will not be used only for file transfers but also for tubes! The only exception is the relay support which has been disabled in muc stream tubes because the SOCKS5 XEP doesn't properly support muc contacts.

So, what about the futur? Jingle File Transfer is the next big beast. It will enable interoperability with the GTalk desktop client and will allow us to do crazy ICE thinsg for real NAT penetration.

But for now I'm going enjoy a nice week of holidays in the moutain so if you experience any trouble please file bugs as I won't be on IRC before next week. :)


[1] our XMPP/Jabber connection manager

samedi, janvier 24 2009

Desktop integration of the Abiword collaboration

As announced by Rob, I recently started to hack an Abicollab backend using Telepathy tubes. It's based on the existing Write backend to ensure interoperability with Sugar.

See this screencast where an Abiword document is shared to participants who are using Abiword and Write.

My code is quiet rude and still need a lot of cleaning and polishing but that's a big first step. Hopefully, the futur improvements in Telepathy and Abicollab would make possible a rocking desktop integration of the collaboration features in the near futur!

vendredi, novembre 21 2008

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

mercredi, novembre 19 2008

Collaboration at Sugarcamp

Since yesterday I'm in Boston attending to the Sugar Camp. Today was dedicated to collaboration. I made two talks. The first one was an overview of the collaboration framework, how we use Telepathy in Sugar, etc. The second one was about our plan to improve Telepathy integration into Sugar and the cool new Telepathy features we are currently working on.

Both talks went pretty well and should hopefully lead to a better collaboration experience in Sugar in the near future.

lundi, avril 14 2008

Voice and video calls with Empathy

Thanks to the hard work of the Empathy, Telepathy and Farsight teams, VoIP is finally usable with Empathy. So you can now very easily do audio/video calls using Jingle and SIP. There is still a lot of UI polishing to do but it should basically work, so feel free to test and report problems.

You'll need Empathy 0.22.1, recent versions of Farsight, telepathy-stream-engine, gstreamer, gstreamer-plugins-farsight, and a gstreamer0.10-ffmpeg with H263 encoder if you want video support.

If you're using Debian Sid you should have the right versions of the Telepathy stack but need the Debian multimedia repo for video support (which is optinnal).

On Ubuntu Hardy you have to use Telepathy PPA and Medibuntu repos if you want video support. So just add to your sources.list:

deb hardy main restricted universe multiverse
deb hardy free non-free

Happy calling!

mercredi, novembre 14 2007

Atelier d'introduction au développement GNOME ce samedi 1er décembre

Comme déjà annoncé par mail et sur LinuxFR, j'organise avec Fred et Xavier ce samedi 1er décembre un atelier d'introduction au développement GNOME. Ce sera un peu similaire à l'atelier de programmation GNOME que nous avions organisé il y a quelques mois sauf qu'ici cela se déroulera toute la journée et sera basé sur une "vraie" application, à savoir Empathy.

On commencera la journée par de courtes présentations d'introduction : les outils de développements GNOME (Fred), le framework Telepathy (Moi) et enfin Empathy (Xavier). On tentera ensuite de résoudre ensemble des bugs d'Empathy[1].

Ce sera donc ce samedi 1er décembre[2] de 10 à 18h au forum A du campus de la plaine de l'ULB. Plus d'info sur le wiki du BxLUG; il serait d'ailleurs sympa de vous inscrire si vous êtes intéressé.

Au plaisir de vous y voir !


[1] oui, il y a du boulot

[2] ATTENTION, la date du 24 novembre avait été proposée initialement mais n'a pas été retenue

mardi, octobre 23 2007

Présentation Telepathy/OLPC ce dimanche au BxLug

Dans le cadre de la Linux Copy Party/Install Party mensuelle du BxLUG je donnerai ce dimanche 28 octobre une petite conférence sur Telepathy et l'OLPC. Celle-ci se déroulera aux alentours de 15h30-16h au FIJ.

Le contenu exact n'est pas encore défini mais cela devrait parler de l'architecture de Telepathy, des logiciels existants, des tubes, de comment on utilise cela dans le cadre de l'OLPC ainsi que de l'intégration dans GNOME (Empathy). Je devrais également faire une petite démo à l'aide de deux XO.

Au plaisir de vous y voir.

dimanche, octobre 21 2007

GTetrinet through tubes

During the GNOME Summit, I started to hack GTetrinet (based on the initial work of Alban) and Empathy to try to offer a better user experience using stream tubes. I finally found some time this afternoon to finish this work and I am now able to play GTetrinet through tubes!

GTetrinet was patched to add a new dialog. It uses libempathy and libempathy-gtk to display user's contact list. When you have chosen a contact, it launches tetrinet-server into another process and exports its socket through a stream tubes.

The rest of the work is done by Empathy which was modified to display incoming tubes and launch GTetrinet if the user accepts it.

Alban's diagram showing GTetrinet using tubes

Screencast showing GTetrinet initates the tubes with a contact

The other side where Empathy receives the tube and launchs GTetrinet

These 2 patches still need lots of polishing before being ready for merging and we still have to design how tubes will be integrated properly into Empathy and Mission Control but I think they are a good demonstration of how tubes will revolutionize the collaboration in GNOME.

samedi, octobre 6 2007

Inet socket support in stream tubes

While Rob is finishing to review the Gabble tubes mega branch, I implemented inet4 and inet6 sockets support for stream tubes.

That means we are now able to export any (ip, port) socket to a tube and create an inet socket binded to the localhost interface to connect to it. So, any network application can easily be exported through a stream tubes to your contacts or to a muc a room.

For example, if you export your socket (, 22) to muc foo, each participant of this muc who accepted your tube will have a new socket (, port) created on their box. They'll just have to connect to it[1] and they'll be automagically connected to your ssh server!

Next step now is to integrate all these cool stuffs to Empathy and GNOME will gain a rocking Collaboration framework!


[1] ssh localhost -p port

jeudi, septembre 20 2007

Telepathy Ubuntu Personal Package Archive

Thanks to Bigon, the Ubuntu Telepathy team have now its own Personal Package Archives. We'll use it to store packages of the latest upstream version of the Telepathy stack (connection managers, Empathy, Farsight, Soylent, ...) that can't be included in Gutsy due to freeze.

So, if you want to be sure to have latest releases, you just have to add these 2 lines in your /etc/apt/sources.list :

deb gutsy main restricted universe multiverse
deb-src gutsy main restricted universe multiverse

mardi, juin 5 2007

Stream tubes, a new generation of tubes

A few weeks ago Daf and Rob announced D-Bus tube, a new Telepathy technology allowing applications to use D-Bus facilities for their network communications.

We have now a new type of tube called Stream Tube. With these tubes you'll be able to easily establish TCP connections with your contacts or with the participants of a multi-users chatroom. Let's take a look on Daf's amazing ASCII art to see how that works.

 |TP client|--|listening socket| B
 '---------'         ^
     C               |
                | Manager  | A
                __/     \___
            ___/            \n           /                 \____
          |                       \n          \__                     /
             \    Internets      /
             /                   \n            /                     \n           |             ___      /
           \____/\      /   \____/
             F  | Manager  |-|listening socket| E
                '----------'        ^
                               |TP client| D

Alice wants to share a, say, local Unix socket (B) with Fernand. She exports that socket in a stream tube and offers it to Fernand. He accepts it and so its Connection Manager creates a local socket (E) on his system. Now, each time Fernand will connect an application (D) to this new socket, Alice's CM will make a new connection to the socket B and a new bytestream will be established between Alice and Fernand to transport data of this connection. So, applications C and D can now communicate together without caring about the network between them and without any code modifications, they just have to support unix socket (more socket type will be supported soon).

So, now imagine C is, for example, a VNC server and D a VNC client and we have... VNC over jabber!

RealVNC doesn't support Unix socket yet, but this patch add this feature. Thanks to the help of its author, I was able to build it with RealVNC 4.1 and so play with a remote GNOME mine. :)


GNOME mine over VNC over stream tubes over jabber

Currently only local unix socket support is implemented but we should support other socket type soon. We're still using XML bytestream (IBB) but real P2P bytestreams (with NAT penetration support) are planned too.