http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol <== XMPP
The Internet Engineering Task Force has formalized XMPP as an approved instant messaging and presence technology under the name of XMPP. the latest specifications are
RFC 6120, RFC 6121 and RFC 6122
No royalties are required to implement support of these specifications and their development is not tied to a single vendor.
http://www.ejabberd.im/ <== ejabberd is a Jabber/XMPP instant messaging server
licensed under GPLv2 (Free and Open Source), written in Erlang/OTP. Among other features, ejabberd is cross-platform, fault-tolerant, clusterable and modular.
https://git.process-one.net/ejabberd/mainline/blobs/raw/v2.1.11/doc/guide.html <== ejabberd 2.1.11 Installation and Operation Guide
http://www.ejabberd.im/tutorials
http://ceit.uq.edu.au/content/installing-ejabberd-under-centos
http://www.ejabberd.im/book <== 2004-ish
In-band binary data transfer is inefficient. Because XMPP is not yet encoded as Efficient XML Interchange but as a long-lived XML stream, binary data must be first base64 encoded before it can be transmitted in-band. Therefore any significant amount of binary data (e.g., file transfers) is best transmitted out-of-band, using in-band messages to coordinate. The best example of this is the
Jingle XMPP Extension Protocol, XEP-0166 http://xmpp.org/extensions/xep-0166.html
XMPP came out of Jabber
https://spaces.at.internet2.edu/display/Grouper/Grouper+XMPP+notifications