User Tools

Site Tools


community:xmpp

XMPP

XMPP, formerly Jabber, is a messaging protocol standard that is highly extensible. It is federated meaning there is not one central server but different servers can all communicate with each other, similar to how email works across multiple domains and email providers.

DevDungeon XMPP Server

DevDungeon runs an XMPP server as part of the DevDungeon infrastructure. The general@conference.devdungeon.com chat room is open to the public and anyone can join. If you a member of the DevDungeon Virtual Hackerspace, you get your own account you@devdungeon.com.

general@conference.devdungeon.com

Clients

For a longer list of available clients, check out https://new.xmpp.org/software/clients.html.

Profanity

Profanity is a terminal client that supports HTTP file uploads and OTR/PGP/OMEMO encryption. It's a great client. I have a dedicated page: Profanity - Terminal XMPP client

Converse.js

Converse.js is a web-based and cross-platform client for XMPP that supports OMEMO encryption and HTTP file uploads. You can use their hosted web client to login to any server (including the DevDungeon one). You can use their hosted full-page version or the DevDungeon hosted web client at https://xmpp.devdungeon.com:7443/inverse/ or you can download their desktop version. If you're using the desktop version, the HTTP bind URL for DevDungeon server is https://xmpp.devdungeon.com:7443/http-bind/.

Psi+

Psi+ is a desktop client that supports PGP encryption and direct file transfer.

Pidgin

Pidgin is a desktop client that supports direct file transfer and OTR encryption (with a 3rd party plugin).

Gajim

Gajim is a desktop client that is cross-platform. It supports HTTP file uploads and OMEMO encryption.

Spark

Spark is a desktop client written in Java. It supports direct file transfer, has built-in translation features, and a screenshot feature.

Thunderbird

The Thunderbird email client also supports XMPP chat although not with a ton of features. It does support OTR encryption.

Servers

Openfire

OpenFire is an XMPP written in Java. It has a feature-rich web interface. The project also has a Java library for XMPP named Smack and a Java desktop client for XMPP chat named Spark. Together, they provide a complete suite for XMPP. There are also a number of Openfire plugins that extend the server.

For instructions on setting up Openfire XMPP server, see: Openfire XMPP Server Setup.

Prosody IM

https://prosody.im/ “Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.

Prosody is open-source software under the permissive MIT/X11 license.”

ejabberd

https://www.ejabberd.im/ “Robust, Scalable and Extensible Realtime Platform XMPP Server + MQTT Broker + SIP Service”

DNS Entries

You could simply use one A record for your server, like xmpp.devdungeon.com. However, you might not want your account to be someone@xmpp.devdungeon.com and instead be someone@devdungeon.com, but the host running your XMPP server may not correspond to the top level domain.

To allow the use of @devdungeon.com even though the XMPP server may be xmpp.devdungeon.com, you can use SRV records in DNS. You can read more at https://wiki.xmpp.org/web/SRV_Records.

Here are some examples showing the two records you'd need for a client and one for s2s.

_xmpp-client._tcp.devdungeon.com. 18000 IN SRV 0 5 5222 xmpp.devdungeon.com
_xmpp-server._tcp.devdungeon.com. 18000 IN SRV 0 5 5269 xmpp.devdungeon.com

# For conference rooms
_xmpp-server._tcp.conference.devdungeon.com. 18000 IN SRV 0 5 5269 xmpp.devdungeon.com.
  • Service: xmpp-client
  • Protocol: tcp
  • Port: 5222
  • Domain: devdungeon.com
  • Target: xmpp.devdungeon.com (host providing XMPP)
  • Service: xmpp-server
  • Protocol: tcp
  • Port: 5269
  • Domain: devdungeon.com
  • Target: xmpp.devdungeon.com (host providing XMPP)
  • Service: xmpp-server
  • Protocol: tcp
  • Port: 5269
  • Domain: conference.devdungeon.com
  • Target: xmpp.devdungeon.com (host providing conference)

You can use dig to check a domain's records:

dig SRV _xmpp-client._tcp.devdungeon.com
dig SRV _xmpp-server._tcp.devdungeon.com
community/xmpp.txt · Last modified: 2021/06/05 22:35 by nanodano