Skip to content
daniele-athome edited this page Sep 3, 2014 · 5 revisions

What is XMPP?

The Extensible Messaging and Presence Protocol (XMPP) is an open technology for real-time communication, which powers a wide range of applications including instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.

Shortly, XMPP is a protocol for routing XML messages. It's extensible, it's standard, and it's widely supported by the community and industry.

Why XMPP?

Mainly because it's a standard and easily extensible: this will bring many benefits, one of them is clients will be easier to develop. It will also be possible to chat with other Jabber users (e.g. GTalk).

Not 100% compliant

Because of the nature of the Kontalk network, our implementation will be slightly out of standard - however still 100% compatible with all XMPP clients. Some glue will be implemented in order to make the protocol more secure, more reliable and really distributed (more like clustered).

We are developing some extensions to the XMPP protocol that we needed for Kontalk. We really need help for those, even just improvement ideas.

Although we are trying to be as much compliant as possible on the client side, on the server side (between Kontalk nodes) things are quite more complex.

Clusterization

The idea behind Kontalk has always been simple: one user account, many servers to connect to. This implies collaboration between all servers, including information exchange. Kontalk might be thought as a mix of XMPP and IRC.

Security

Many XMPP extensions are defined for various aspects of chat security: message encryption, encrypted channels, and so on. All of them requires client-side setup by the user and some prior information exchange between clients in order to work. Our XMPP extensions define some simple methods, safe enough for messaging.

How soon?

Kontalk 3.0 (XMPP) is currently beta. Both server and Android client source code can be found on our repositories. Beta versions are available on our mirrors, on Google Play beta channel and F-Droid.

Clone this wiki locally