From ZeXtras Suite Wiki
|Language:||English • español • português|
|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.
- One-on-one Insant Messaging.
- XMPP Proxying on multistore infrastructures.
- Many-to-many Instant Messaging (groups).
- Server-to-server interop.
Ports and Settings
The default ports used by the XMPP are:
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.
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.
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
_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.
_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.