Jabber/XMPP

The problem

Instant Messaging over the Internet has become total chaos nowadays. We have the “hey, download Whatsapp so we can talk”, the “no, get Line, it rox moar“, and the “Spotbros FTW dude!”… tomorrow’s song will be “those are history already, get VeryCoolChat”. And next day, YourUltraNiceChat.

Don’t you think it’s about time we stopped installing every single chat app out there, just because this or that contact likes this or that program? Specially considering that “this program” is only available for smartphones, or even only some specific smartphone models, with all kinds of restrictions and zero privacy. And let’s not forget, also, that there are new apps of this kind appearing constantly, all of them incompatible with the rest.

This situation is ridiculous. When someone has a mobile phone, they know they can call any other mobile phone, or a land line, and it doesn’t matter if their contact has a Motorola, a Nokia or a Samsung, or if their line provider is AT&T, Verizon, T-Mobile, Vodafone, or any other. When someone has an e-mail account, they know they can send e-mail to anyone, and it doesn’t matter the kind of computer or phone their contact is using, and it doesn’t matter if the addressee is johndoe@gmail.com, johndoe@verizon.com or johndoe@hiscompany.com.

This should be natural. In these two areas, it’s been this way for decades.

Why don’t we have those same conditions in instant messaging or “social networks”? Because of the interests of a few big companies, interested in having everyone controlled in one place, in their datacenter, and also because the general population tolerates that, for several reasons. The main reason being the “network effect”, also known as “everybody uses that so I must use it too”.

Imagine trying to call from a Verizon phone to an AT&T phone, and hearing a message like “The phone you’re trying to reach is from a different provider, so the call cannot be completed. Please tell your friend to switch to Verizon”. Would anyone expect that, and find it normal? It sounds ridiculous, doesn’t it?

The solution already exists. Using it depends on us, and it’s free of charge.

xmppFor years we’ve had a network supporting IM, chat, videoconference, file transfer (of any file type), groupchats, etc, which solves all those problems, known as Jabber or, in more formal terms, XMPP.

Este es un ejemplo del funcionamiento de la red XMPP (anteriormente llamada Jabber) entre 3 servidores de los miles que existen alrededor del mundo.

This is an example of how the Jabber/XMPP network works, using 3 of the hundreds of public servers available worldwide.

The main point of Jabber/XMPP is not ground-breaking. In fact, it’s exactly the same as what makes e-mail or standard telephony systems great and useful: it’s a decentralized, or federated, network.

What does “federated” mean? Basically, it means that john@hishome.com can talk to jane@gmail.com, or with neal@somecompany.net. John will use program A on his mobile phone (Xabber, JTalk, ChatSecure, Beem…), Jane will use program B on her PC (Swift, Psi, Gajim…), Neal will use program C on his tablet… and nobody cares what program the other person is using, since it’s not necessary to know it, or to use the same program to talk to each other. Each person would use the program they like the most.

For instance, Google Talk, which comes preinstalled in all Android phones and tablets, and therefore, a lot of people already have, is part of the Jabber network. Nowadays, the future of this is unclear, due to the migration that Google is doing towards Hangouts, incompatible with the XMPP standard, and which doesn’t talk to the global Jabber network. Proof, once again, that we shouldn’t leave our means of communication in the hands of the big companies.

You can be part of the solution

Start changing this situation is a difficult task, but it’s in the hands of all of us, and the result would be much better options for everyone, less complications, less control by a few big companies, and more control and choice for all of us. It’s about time we put an end to the lack of concern of “well, this kinda works for me” and the ridiculous situation where everyone uses their favorite network, incompatible with those used by others, insisting they switch to ours. It will be a hard transition, but together we can do it.

You could say that we’re insisting on using “our option”, but what we’re encouraging to use here is a standard, something that will allow for a future where no one will have to tell their contacts “use this program or that program”, just like no one tells their contacts what e-mail program they should use, or what e-mail service, or what phone they should but to call them.

Lots of functionality

XMPP is a protocol with which you can do everything you’re used to see in other programs, due to the fact that it’s extensible.

  • Connecting from several programs at once.
  • Offline messages: if you send a message to a contact who is currently offline, they’ll see your message then they log in.
  • Chatrooms, just like IRC or any web-based chat.
  • Sending files of any kind.
  • Videoconferencing.
  • Sharing your computer screen.

It all depends on the functionality provided by the program you’re using. Some applications are very basic (allowing only basic text messaging), and some are very complex, letting you do all the things listed above, and more.

Serviers

There are a lot of public servers worldwide where you can sign up for an account. As we’ve seen, it doesn’t matter where you create your account, since you’ll be able to talk to everyone anyway.

There is a great list of servers atΒ XMPP.net, but if you don’t know where to begin, here are some servers you could use to sign up for your account:

Remember, you might already have an account in some service which already provides a Jabber/XMPP service, like the WordPress.com blog service or the GMX.com mail service. We’ll post about this in the future, but in the meantime, here’s the post from our spanish counterpart.

Clients (programs and mobile apps)

There are plenty of programs and applications you can use to connect via Jabber, since on Jabber/XMPP, it doesn’t matter if you connect from your smartphone, your tablet, or your computer.

At XMPP.org you can finde a very comprehensive list of applications (there are even some for older devices), but if you don’t know where to begin, here are some recommendations for today’s most common systems:

For the computer:

  • Swift. If you’re new, it’s the best option. It’s very easy to use.
  • Jitsi. A very complete client. Supports video calls.
  • Gajim. Specially if you use GNU/Linux. It also supports video calls, and has advanced features.
  • Psi. Advanced client. Very customizable, while still being quite simple.
  • Pidgin. Multi-protocol client (you can add accounts from other services, not only XMPP-based).

For Android:

  • Xabber. Recommended. Supports chatrooms and encrypted messages.
  • ChatSecure. Centered around encrypted messaging.
  • JTalk. Supports file transfer and chatrooms.
  • Yaxim. More basic, but promising.

For iOS:

For the browser:

MORE INFORMATION:

11 thoughts on “Jabber/XMPP

  1. Btw, for enterprise solutions, Cisco has Cisco Unified Communications Manager, with the Cisco Jabber client, which is of course, XMPP compliant. They also have a cloud based offering for those that dont want to host their own solution. So for enterprises that want their Unified Comms solution to be open and standards based, this is the better path compared to MS Lync, which is totally proprietary. IBM Sametime is also XMPP compliant.

    • AFAIK, you just need to open the S2S (server to server) port, and as long as your server DNS records and SSL/TLS certificates are valid, it will work.

      (sorry for the late reply!)

  2. No problem, much appreciated. I’m still having issues with SSL/TLS that I haven’t figured out yet, I have real valid Komodo certs but can’t seem to get them to work with Prosody even though they work fine for Apache, Imap, SMTP, etc.

  3. Hi,

    if you are interested in XMPP, you may want to have a look on http://salut-a-toi.org/ (on which I am working) or on http://www.movim.eu (a friend project): we are trying to explore new fields in XMPP (like (micro)blogging), and both projects are really advanced.

    There are many things happening in XMPP world these days, and not only about instant messaging…

Leave a reply to hates-lync Cancel reply