From ZeXtras Suite Wiki

Jump to: navigation, search
Language: English  • español • português
Warning.png Warning!

This wiki is outdated and not maintained anymore, please refer to the new Zextras Documentation Hub at https://docs.zextras.com

ZxChat logo box.png
This documentation is outdated.
Please refer to https://docs.zextras.com

The XMPP Protocol

The "Extensible Messaging and Presence Protocol" (XMPP for short) is one of the most widespread Instant Messaging/Presence protocols. Among its basic implementations it allows for for both "one on one" and "multiuser" instant messaging with presence and buddy list management, but being a very ductile transport protocol based on XML it has been adapted to many different uses.

Available Features

  • One-on-one Insant Messaging.
  • VideoChat
  • XMPP Proxying on multistore infrastructures.

Planned Features

  • Many-to-many Instant Messaging (groups).
  • Server-to-server interop.

Ports and Settings


The default ports used by the XMPP are:

  • 5222
  • 5223

Port 5222 is the RFC standard for XMPP. By default only TLS connections are accepted, but unencrypted password login can be enabled through both the ZeXtras Administration Zimlet and the ZeXtras CLI (see below).

Port 5223 is for legacy SSL support. While enabled by default, this is not an RFC-compliant feature and should only be used if no other options are available.

NB. In a multiserver-environment consider that XMPP clients should be able to connect directly to one of the mailstore servers.

XMPP-specific properties

Two XMPP-specific properties are available in ZeXtras Chat:

  • Use Legacy SSL port (ZxChat_UseLegacySSLPort)
  • Allow Unencrypted passwords (ZxChat_AllowUnencryptedPassword)

Both can be changed through the ZeXtras Administration Zimlet ("ZxChat" tab, "Security Settings" feature) and via the ZeXtras CLI ("ZxChat_AllowUnencryptedPassword" and "ZxChat_UseLegacySSLPort" module properties).

XMPP SRV Records

SRV Records are used in the Domain Name System in order to define informations about one or more services, including XMPP.

The following extract from the XMPP.org Wiki shows how to properly set up an SRV record to provide informations related to the XMPP service such as the server's name/FQDN and ports.

Record format

An SRV record has the form:

_service._proto.name TTL class SRV priority weight port target

service: the symbolic name of the desired service.

proto: the transport protocol of the desired service; this is usually either TCP or UDP.

name: the domain name for which this record is valid.

TTL: standard DNS time to live field.

class: standard DNS class field (this is always IN).

priority: the priority of the target host, lower value means more preferred.

weight: A relative weight for records with the same priority.

port: the TCP or UDP port on which the service is to be found.

target: the canonical hostname of the machine providing the service.


_xmpp-client._tcp.example.net. TTL IN SRV priority weight port target _xmpp-server._tcp.example.net. TTL IN SRV priority weight port target

Example 1

_xmpp-client._tcp.example.net. 86400 IN SRV 5 0 5222 example.net.

The XMPP domain is example.net and the server is example.net.

Example 2

_xmpp-client._tcp.example.net. 86400 IN SRV 5 0 5222 server.example.net.

The XMPP domain is example.net and the server is server.example.net.

Personal tools