A long time ago, when the Internet was just starting its path to ubiquity, you basically had only one way to write a personal message to another Internet user: send an email. But it worked fine – well, apart from several arcane gateway conversions across different systems, and the fact that configuring sendmail required a lot of black magic, but that was the sysadmin’s problem. Still, you could reach anyone over the Internet with a single communication system.
Sometimes, however, you really wanted to exchange messages in real time; so, people invented Unix talk, when everyone you knew was logged on to the same mainframe, and then IRC. But then, the Internet became a commercial affair, and at a time when even mobile phones and text messages were not so common yet, multiple companies realized that they could acquire immense user bases if they could provide them with inexpensive real-time messaging capability.
From then on, and notwithstanding several attempts to create open standards, the history of instant messaging – first from PCs, and then from smartphones – is a story of closed silos. Each new system after another aimed for world domination by creating a new, shiny IM application that used its own closed protocol and tried to keep any other third-party client away. In some cases, new entrants actually adopted open protocols at the start, when they needed to draw users away from other applications to build up their adoption, and then closed the doors after they felt they could live on their own.
So, while email – even with the big players’ attempts at making email delivery to their users increasingly hard – still remains the only interoperable Internet-wide messaging system, today each of us has to use at least a handful of different chat applications. WhatsApp, Telegram, Facebook Messenger, Skype… you name it; you need to have an account on each of them, so that you can reach that share of your contacts who use each respectively.
The world would be a better place if you could choose one client and use it to chat with any other Internet user, no matter which client they are using.
Everyone agrees in principle that the world would be a better place if you could choose one among several interoperable clients and use it to chat with any other Internet user, no matter which other client they are using. However, in practice each of the above applications is pretty territorial when it comes to their user base and will never let any other application interoperate (unless sooner or later regulators wake up and make that mandatory, but this has not happened yet).
At Open-Xchange, we love free software and open protocols, and so we wondered whether we could do anything about this – and we had an idea. Why not use email, the only open messaging system where everyone on the Internet has at least one account, as the transport layer for a new, open instant messaging system? This is how we came up with the concept of COI (chat-over-IMAP).
Figure 1: The logo of the COI standard
Open-Xchange’s idea: Why not use email as the transport layer for a new, open instant messaging system?
Just think of being able to chat with anyone that has an email address and a COI client (actually, it is possible to develop email clients that support both conversation modes and seamless transitions from an email thread to a chat conversation and back). You could choose the email provider that you trust and the app that you like, and still be able to chat with any of the almost 4 billion active email users in the world!
This works due to the built-in backward compatibility with standard mail providers and existing mail apps. For users that adopt a COI client, however, the whole experience transforms to a true chat experience: gone are the days of specifying subjects, messing with quoted replies, or forgetting to use “reply all” in a group conversation. The COI chat experience really is as simple as any other messaging experience – and it is based on services and protocols that are already public and widely available.
Figure 2: Welcome screen of the open source messenger app of Open-Xchange
Figure 3: Chat conversation done via email
It may look like a dream, but we think that the chat-over-IMAP (COI) is entirely possible.
It may look like a dream, but we think that this is entirely possible; it just requires a few extensions to the IMAP protocol, which of course are being released openly and freely for everyone to implement. We have already involved other interested parties and established a developer’s website – coi-dev.org – that anyone can access to join the effort.
So how does COI work? With COI, the client sends normal email messages that are formatted according to the COI client standard. To differentiate chat and normal messages, chat messages use a “Chat-Version” header, plus a specifically formatted “Message-ID” header that is used to track answers to chat messages from normal mail users. To enable avatar images, profile and group information is transported via microformats within the email messages.
When an email server is COI-compliant, clients can use a subset of IMAP “Metadata” commands to read and update configuration and other values; most notably, clients can sign up for push notifications that work like the Web Push standard. For details please refer to the COI specification drafts that are available on github.com/coi-dev.
This is a chance to increase the openness of the Internet, to the advantage of the entire ecosystem.
For the Internet industry, this is not just a matter of innovation and new user services. Sure, a seamless transition from email to a standard chat system, without the need to go through a web application, can be in itself useful in a number of situations (think for example of support and transactional emails). But fundamentally, this is a chance to increase the openness of the Internet, to the advantage of the entire ecosystem.
Especially if you provide email services to your customers, if you create messaging apps, or if you develop email client (or server!) applications, you should be interested in joining the development of the COI standard and services. The entire project is open, and we would welcome more participants. Feel free to contact us directly or through the website above.
Vittorio Bertola is Head of Policy & Innovation at Open-Xchange, a global leader in services and free software for the Internet's email and DNS infrastructure, where he takes care of research and innovation activities, leading projects to invent and develop new products; he is also responsible for the company's policy activities. Previously, he worked as a freelance consultant, as a website developer and as partner, founder or CTO in several Internet start-ups in Italy. He is also a digital rights activist, dealing with Internet policy at the national and international level for the last twenty years.
Robert Virkus has worked in the mobile industry for more than 20 years. Having been involved in a number of open source projects, and initiating one of the most successful pre-smartphone mobile app development frameworks, he tries to push the envelope based on open & permission-less standards. In his spare time he likes to draw, play with his retro computers, and spend quality time with his family. Robert has given talks at various conferences such as Droidcon, CeBIT, MobileTech Conference and more. He is currently Product Manager for email and chat apps at Open-Xchange (OX).