An extremely brief survey of Link-Local XMPP
If you want to communicate on a LAN with your friends/coworkers, there's no need to use a server: a possible solution to the Serverless Messaging problem is Link-Local XMPP.
- Zeroconf is used to discover nodes on the LAN, and services they provide.
- XMPP is used for the actual (end-to-end) communication.
As the communication is handled by XMPP all the cool stuff on top of it could work flawlessly: I am thinking of file transfers, audio and video calls via Jingle, whiteboarding, end-to-end encryption to protect us from LAN-peeping-toms (OTR is a possible way to go, for instance); while this is true in principle we need to verify what the status of software support for these features is.
Let's test out some XMPP clients to see how they implement Link-Local XMPP:
- libpurple (Pidgin, Adium)
- Just add an account using the “Bonjour” protocol, you'll get messages and file transfers, but no audio/video yet, as the “Bonjour” module in libpurple does not share the XMPP implementation with the more complete “Jabber” module. Plus no encryption is used by default in Pidgin, but you can use the pidgin-otr plugin.
- Telepathy (Empathy)
- Same as in libpurple, for now Telepathy duplicates the XMPP implementation in telepathy-salut (the Link-Local XMPP connection manager) and telepathy-gabble (the plain Jabber/XMPP connection manager) and so Link-Local XMPP does not get all the features of the plain XMPP module. However this is going to change thanks to the Wocky library. Telepathy does not seem to offer any encryption service yet, but they are working on it as reported in the FAQ.
- Gajim supports Link-Local XMPP if you install the python-avahi package, it has chat and file transfer support (even though the latter seems to have problems in a dual stack IPv4/IPv6 environment, but I haven't investigated much the causes). It supports encryption natively using OpenPGP and there is also some OTR support.
I only tested the above on GNU/Linux as I haven't got any other system, if you know how things are on Windows or OSX, please let me know.
Unfortunately none of these clients have whiteboard sharing support, not even over plain XMPP; that's probably because there isn't a final XEP specification for Whiteboarding yet. There are Coccinella and PSI which support some form of whiteboarding, but they don't have Link-Local XMPP implemented; Inkscape also used to have a “remote inkboard” functionality but it was removed in latest versions and it didn't support Link-Local XMPP anyways, maybe they could re-implement that on top of Telepathy or Wocky when it's ready.
A bright future for XMPP?
Now that Facebook chat supports XMPP (even if it lacks Federation) I expect software support to mature even more quickly. Hopefully with properly designed implementations all the goodies will be automatically available in Link-Local messaging too.