Contributor
Anna Mukharram

Server-to-Server Stream Management Support for ejabberd


Mentors
Holger Weiß
Organization
Beam Community

Reliability is essential for communication using XMPP. Although basic XMPP is not reliable in some situations. One of these situations is losing long-lived TCP connection between client and server or server and server because of network or destination failure. If this connection isn’t properly closed, sender will be unaware of the loss and connection will appear as open to server until TCP timeout is reached. All messages which will be sent by server during this time will be lost.

The goal of this project is to implement XEP-0198 for server-to-server communication in ejabberd. This extension allows to request stanza acknowledgement and quickly resume session. Any messages that were not delivered over previous connection will be retransmitted during session resumption without duplication.