Skip to content
shadow147 edited this page Mar 6, 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 and a set of rules 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: this will bring many benefits, one of them is clients will be easier to develop. Also it will 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 alpha. Both server and Android client source code can be found on our repositories. If you feel brave enough you may go to the Downloads page and try the latest alpha.

Clone this wiki locally