forked from djabberd/DJabberd
-
Notifications
You must be signed in to change notification settings - Fork 0
XEP Coverage
ruff edited this page Aug 20, 2020
·
15 revisions
DJabberd targets to be a Perl Toolkit for XMPP, from which you can build a solution, including communication server. As such majority of XEPs are implemented as external plugins. If some XEP is supported natively that's ususally done either as a show-case (limited functionality, should be extended by plugins) or as being necessary for normal functionality (eg. compatibility layer unlikely to be implemented as plugin).
Implemented either in core or in external plugins
XEP | Namespace / Feature | Description | Status |
---|---|---|---|
XEP-0004 | jabber:x:data |
Data Forms - Complex data exchange | Parsing/Representation implemented in Core (0.86+ DJabberd::Form) |
XEP-0016 | jabber:iq:privacy |
Privacy Lists - Personal XMPP Firewall in server | Implemented in DJabberd::Plugin::Privacy |
XEP-0030 | http://jabber.org/protocol/caps |
Service Discovery - Capability information retrieval | Implemented in Core (DJabberd::IQ), extendable via IQ hook - each plugin injects own identity/feature and handles its processing. |
XEP-0045 | http://jabber.org/protocol/muc |
MUC - Multi User Chat | Implemented in DJabberd::MUC |
XEP-0048 | storage:bookmarks |
Bookmarks - MUC rooms bookmarks | Supported by XEP-0049 implementation (Private XML Storage), Supported by XEP-0163 (PEP) persistent-node implementation |
XEP-0049 | jabber:iq:private |
Private XML Storage - generic user storage | Implemented in DJabberd::Plugin::PrivateStorage |
XEP-0054 | vcard-temp |
vCard-temp - vCard XML over IQ | Implemented in DJabberd::Plugin::VCard (DJabberd-VCard) and similar |
XEP-0059 | http://jabber.org/protocol/rsm |
Result Set Management - paging via results | Parser implemented in DJabberd::Plugin::MAM as DJabberd::Set package, used for MAM results management. |
XEP-0065 | http://jabber.org/protocol/bytestreams |
SOCKS5 Bytestream Proxy | Implemented in DJabberd::Component::S5P |
XEP-0077 | jabber:iq:register |
Inband Registration - Create account right from client | Implemented in Core (DJabberd::IQ), extendable via RegisterJID/UnregisterJID hook chains. |
XEP-0078 | jabber:iq:auth |
IQ Authentication (Obsolete) - Non-SASL Authentication (compat) | Implemented in Core (DJabberd::IQ), extendable via GetPassword/CheckDigest/CheckCleartext hook chains. |
XEP-0090 | jabber:iq:time |
Entity Time (Obsolete) - discover entity's localtime | Implemented in DJabberd::Plugin::EntityTime (DJabberd-EntityTime) |
XEP-0114 | N/A |
Jabber Component Protocol - Extend XMPP Server with external extensions | Implemented in Core (DJabberd::Component::External, DJabberd::Connection::ComponentIn/Out) |
XEP-0115 | http://jabber.org/protocol/caps |
Entity Capabilities - improve service discovery by hashing static features | Implemented in Core (v0.86+ DJabberd::Caps), although server optimisation is not implemented, only digest generation and validation, as well as advertises own capabilities in stream features. |
XEP-0126 | jabber:iq:privacy |
Invisibility - hide own presence | Implemented as part of DJabberd::Plugin::Privacy together with XEP-0186 |
XEP-0160 | msgoffline |
Offline Messages - store messages while offline | Implemented in DJabberd::Delivery::OfflineStorage (v0.05+) |
XEP-0163 |
http://jabber.org/protocol/pubsub# + publish , auto-create , config-node , purge-nodes , delete-nodes , auto-subscribe , last-published , retrieve-items , access-presence , publish-options , presence-subscribe , presence-notifications , filtered-notifications
|
Personal Eventing Protocol (PEP) | Implemented in DJabberd::Plugin::PEP - partial implementation, no official XEP-0060 implementation hence only presence-based subscription and no (PEP-)node configuration. |
XEP-0170 | N/A |
Recommended Order of Feature Negotiation | Implemented in Core - Connection will add tls first, then anything else in specified by plugins order. SASL/Auth are ignored if tls is mandatory. |
XEP-0178 | N/A |
SASL External - best practices for TLS Certificate authentication | Implemented in Core (v0.86+ in DJabberd::SASL::Connection::External, DJabberd::SASL::AuthenSASL, DJabberd::Stanza::SASL) |
XEP-0186 |
urn:xmpp:invisible:0 urn:xmpp:invisible:1
|
Invisible Command (Deferred) - simplified XEP-0126 | Implemented in DJabberd::Plugin::Privacy |
XEP-0191 | urn:xmpp:blocking |
Blocking Command - simplified XEP-0016 | Implemented in DJabberd::Plugin::Privacy |
XEP-0198 |
urn:xmpp:sm:2 urn:xmpp:sm:3
|
Stream Management - Controllable and resumeable connection | Implemented in DJabberd::Plugin::SMX |
XEP-0199 | urn:xmpp:ping |
Ping - Connection and server availability check | Implemented in DJabberd::Plugin::Ping |
XEP-0202 | urn:xmpp:time |
Entity Time - discover entity localtime | Implemented in DJabberd::Plugin::EntityTime (DJabberd-EntityTime) |
XEP-0203 | urn:xmpp:delay |
Delayed Delivery - handle non-real-time delivery | Implemented in DJabberd::Delivery::OfflineStorage as reusable tag injection call |
XEP-0215 | urn:xmpp:extdisco:2 |
External Service Discovery - STUN/TURN information | Implemented in DJabberd::Plugin::XDisco |
XEP-0220 | jabber:server:dialback |
Server Dialback - DNS based S2S Authentication | Implemented in Core (DJabberd::DialbackParams, DJabberd::Stanza::DialbackResult/Verify, DJabberd::Connection::ServerIn/Out, etc.) |
XEP-0237 | urn:xmpp:features:rosterver |
Roster Versioning - Send Roster delta if client cached it | Implemented in Core (0.86+: DJabberd::Roster, DJabberd::RosterItem, DJabberd::RosterStorage, DJabberd::IQ) and DJabberd-RosterStorage-SQLite v1.01. |
XEP-0280 | urn:xmpp:carbons:2 |
Message Carbons - relay conversation to all connected resources | Implemented in DJabberd::Plugin::Carbons |
XEP-0288 | urn:xmpp:features:bidi |
Bidirectional Server Connection - use single TCP/TLS connection for S2S | Implemented in DJabberd::Connection::ServerBiDi extension |
XEP-0313 |
urn:xmpp:mam:0 urn:xmpp:mam:1 urn:xmpp:mam:2
|
Message Archive Management | Implemented as in-memory-only buffer in DJabberd::Plugin::MAM but extendable to support persistent storage |
XEP-0352 |
google:queue urn:xmpp:csi:0
|
Client State Indication (Deferred) - Allow server to optimize delivery | Implemented in DJabberd::Plugin::SMX together with google:queue equivalent support |
XEP-0357 | urn:xmpp:push:0 |
Push Notifications (for mobile platforms) | Implemented in DJabberd::Plugin::Push plugin as server-only implementation plugin - needs actual ''App Server'' to push to mobile OS push servers |
XEP-0359 | urn:xmpp:sid:0 |
Unique and Stable Stanza IDs | Implemented as part of DJabberd::Plugin::MAM (DJabberd::SID) to handle stanza-id element |
XEP-0363 |
eu:siacs:conversations:http:upload urn:xmpp:http:upload urn:xmpp:http:upload:0
|
HTTP File Upload | Implemented in DJabberd::Component::HTTPUpload for both component service and FCGI web-app |
XEP-0368 | N/A |
SRV records for XMPP over TLS | Implemented in the Core (0.86+) as external SSL facilitated (offloaded) TLS. SSL Offload engine needs to tackle SNI/ALPN, DJabberd will demux the stream based on stream headers/attributes. |
XEP-0398 | urn:xmpp:pep-vcard-conversion:0 |
Avatar to VCard conversion | Implemented in the DJabberd-VCard as another storage engine. Which converts posted VCard into PEP and retrieves VCard from PEP. But only PHOTO tag, anything else is discarded. |
XEP-0440 | urn:xmpp:sasl-cb:0 |
SASL Channel-Binding Type Capability | Implemented in the Core (0.86+) as part of SASL mechanism advertisement |