Fact-checked by Grok 2 weeks ago

Jabber

Jabber, originally developed as an open-source system, is the foundational technology behind the Extensible Messaging and Presence Protocol (XMPP), a decentralized communications protocol standardized by the (IETF). XMPP enables real-time exchange of structured data, including instant messages, presence information (such as online status), and contact lists, using XML streams over connections, allowing users on different servers to federate seamlessly like systems. Launched in 1999 by developer Jeremie Miller as a free alternative to proprietary chat networks, Jabber quickly evolved into a community-driven project with the release of the first jabberd server in May 2000. The protocol's core specifications were formalized as RFC 3920 and RFC 3921 in October 2004, rebranding it from Jabber to XMPP to reflect its broader applicability beyond instant messaging. Key features include its extensibility through XML namespaces, supporting extensions for multi-user chat (MUC), voice and video calls via Jingle, file transfers, and even Internet of Things (IoT) coordination. XMPP's decentralized architecture empowers anyone to operate a server, fostering privacy and interoperability without reliance on a central authority, and it is secured with built-in mechanisms like SASL authentication and TLS encryption, with public network servers upgrading to mandatory encryption in 2014. Today, XMPP is used by millions of users worldwide across platforms, from mobile apps to enterprise tools, with ongoing maintenance by the XMPP Standards Foundation (XSF), formerly the Jabber Software Foundation, including annual summits and newsletters as of 2025.

History

Origins and Early Development

In the late 1990s, was dominated by proprietary protocols from services like and Instant Messenger, which locked users into closed ecosystems and limited . In response, software developer Jeremie Miller initiated the Jabber project in early 1998 to create an open alternative that emphasized , extensibility, and freedom of communication. Miller's vision centered on a that would enable real-time messaging and presence without reliance on centralized servers controlled by corporations. The project's technical foundations were built around an XML-based streaming protocol designed for efficient, human-readable data exchange in real-time applications. Early development focused on core components to demonstrate feasibility, including the release of initial for jabberd, the first implementation, in 1999. Complementing this, Miller developed JabberCOM, an initial client library using Microsoft's (COM) for Windows, allowing rapid prototyping of messaging applications. To foster community involvement, registered the jabber.org domain in 1999, establishing it as a central hub for development and hosting the first public Jabber server. The project was released as under the (JOSL), an OSI-approved license that permitted free redistribution, modification, and use while ensuring compatibility with broader open development efforts. This move quickly attracted contributors, laying the groundwork for a grassroots ecosystem around extensible real-time communication.

Standardization and Evolution

The standardization of Jabber began with its formal submission to the (IETF) in February 2002, when the Jabber Software Foundation (JSF) submitted an initial Internet-Draft outlining the protocol's core mechanics. In October 2002, the Internet Engineering Steering Group (IESG) approved the formation of the XMPP Working Group, prompting the renaming of the protocol from "Jabber" to Extensible Messaging and Presence Protocol (XMPP) to resolve potential conflicts, as "Jabber" was a registered held by Jabber, Inc., for related XML streaming technologies. This change allowed the protocol to proceed without licensing disputes while permitting descriptive use of "Jabber" in certain contexts. The IETF published the initial core specifications as 3920 (defining XMPP's foundational XML streaming, stream management, and resource binding) and 3921 (covering and presence extensions) in October 2004, establishing XMPP as a Proposed Standard for open, decentralized communication. The XMPP Standards Foundation (XSF), originally founded in August 2001 as the JSF to oversee protocol development and open-source projects, played a pivotal governance role throughout this process. The foundation contributed key drafts to the IETF, managed disclosures, and ensured community-driven evolution, later renaming itself to XSF in January 2007 to emphasize its focus on protocol standards rather than software. Under XSF , XMPP's design emphasized extensibility from the outset, shifting beyond initial roots toward broader real-time applications, such as request-response interactions, by the mid-2000s. Subsequent refinements addressed implementation experiences and security needs, with the IETF updating the core specifications in March 2011 via RFC 6120 (obsoleting RFC 3920 and refining stream setup, authentication via SASL, encryption with TLS, and error handling) and RFC 6121 (obsoleting RFC 3921 and enhancing presence subscriptions and message delivery semantics). These updates incorporated feedback from widespread deployments, improving robustness for federated networks while maintaining where feasible. The XSF continues to support ongoing governance, hosting RFC documents and facilitating refinements that adapt XMPP to evolving real-time communication demands.

Key Milestones and Acquisitions

The development of Jabber began with its announcement in January 1999 by Jeremie Miller as an open technology for and presence, releasing initial for the jabberd server that month, with the first stable version 1.0 released in May 2000. This marked the inception of what would evolve into the Extensible Messaging and Presence Protocol (XMPP), fostering early open-source collaboration. In 2000, Jabber, Inc. was founded in Denver, Colorado, launching jabber.com to offer commercial real-time presence and messaging solutions for enterprises, governments, and service providers, building on the open-source foundations. The company quickly expanded its offerings, including enterprise-grade implementations of the protocol. Cisco Systems announced its intent to acquire Jabber, Inc. on September 19, 2008, for an undisclosed sum, with the deal completing on November 3, 2008, integrating Jabber's technology into Cisco's collaboration portfolio to enhance unified communications capabilities such as presence, instant messaging, voice, video, and conferencing. Google incorporated XMPP federation into starting in 2006, enabling with other XMPP services until 2013, when the transition to discontinued federation support, effectively ending this era by 2015 as was phased out. Following 2020, XMPP experienced a revival through heightened open-source activity, driven by growing demand for decentralized, privacy-focused communication amid the decline of proprietary platforms and regulatory pushes for in regions like the . This resurgence included increased development of compliant clients and servers emphasizing . As of 2025, this continues with events like the XMPP Summit 27 in January and recent software releases emphasizing privacy and . In 2023, the XMPP Standards Foundation released XEP-0479, defining compliance suites for various use cases (core, web, IM, and mobile) that incorporate modern encryption standards like OMEMO to ensure secure, interoperable messaging.

Technical Overview

Core Architecture

Jabber, formally known as the Extensible Messaging and Presence Protocol (XMPP), employs a decentralized client-server architecture that enables near-real-time communication without reliance on a central authority. In this model, clients connect to a designated home server to send and receive messages, while servers can optionally federate with one another to facilitate inter-domain exchanges, allowing users on different servers to communicate seamlessly. This federation operates on a peer-to-peer basis among servers, promoting a distributed network similar to email systems where no single entity controls the infrastructure. The client-server interaction is established over connections, with clients initiating streams to their on port 5222 for , presence updates, and . Servers, in turn, connect to other servers on port 5269 to enable , verifying identities before exchanging data to ensure secure cross-domain communication. This setup supports multiple clients associating with a single user account through resource identifiers, allowing flexible device management while the server handles and delivery. At its core, XMPP uses XML as the for all communications, structured as bidirectional, long-lived that serve as containers for asynchronous exchange of XML elements called stanzas. These enable efficient, persistent connections over the network, with stanzas representing discrete units of such as messages or presence sent in near . The XML-based approach ensures that remains structured and extensible, facilitating the protocol's adaptability to various use cases. XMPP's design principles emphasize extensibility through XML namespaces, which allow for the addition of new features or data types without disrupting core functionality, while maintaining a human-readable format for easier and development. The absence of a central underscores its decentralized , enabling independent operation and open across the network. This combination of openness and flexibility has made XMPP a foundational for messaging and presence applications.

Protocol Mechanics

The Extensible Messaging and Presence Protocol (XMPP), formerly known as Jabber, operates through bidirectional XML streams that facilitate real-time communication between entities. A stream begins when the initiating entity, such as a client, sends an opening <stream:stream> tag to the receiving entity, typically a , specifying attributes like xmlns='jabber:client', to, version, and xml:lang. The receiving entity responds with its own opening stream tag, including a unique id attribute, establishing the bidirectional channel over which all subsequent data flows. This stream structure encapsulates payloads as first-level child elements, primarily stanzas, until closure. Stream initiation incorporates security measures to ensure encrypted and authenticated communication. Following the initial stream headers, the initiating entity negotiates (TLS) by sending a <starttls> stanza with a <required/> child if encryption is mandatory; the receiving entity replies with <proceed/> to confirm, after which both parties perform the TLS handshake and restart the stream in encrypted mode. Support for TLS is required in all XMPP implementations to provide channel encryption. Subsequently, authentication occurs via the Simple Authentication and Security Layer (SASL), where the receiving entity advertises supported mechanisms (e.g., PLAIN or SCRAM-SHA-1) in a <features/> stanza, and the initiating entity responds with an <auth/> stanza selecting a mechanism, followed by challenge-response exchanges until <success/> confirms authentication. SASL negotiation is mandatory for client-to-server streams, enabling resource binding to a Jabber ID (JID). Once established, the stream carries three primary stanza types for data exchange: <message/>, <presence/>, and <iq/>. The <message/> stanza serves as a push mechanism for one-way communication, such as chat messages, requiring a to attribute and optionally a type like chat or groupchat, with content in a <body/> child. The <presence/> stanza broadcasts an entity's availability or status, often without a to attribute for server-wide distribution, supporting types such as available, unavailable, or subscribe. The <iq/> stanza enables request-response interactions for information queries or sets, mandating an id attribute for matching and a type of get, set, result, or error, with query data in a namespaced child like <query/>. These stanzas form the core payloads within the XML stream, allowing flexible, extensible communication. The XML stream concludes when either entity sends a closing </stream:stream> tag, prompting the other to reciprocate before terminating the underlying connection. Error handling ensures robust operation: -level errors, which are unrecoverable, are signaled via a <stream:[error](/page/Error)> element qualified by the urn:ietf:params:xml:ns:xmpp-streams , containing a descriptive condition like <service-unavailable/> (code 503), after which the closes. -level errors, recoverable, return the original with type='error' and an <error/> using the urn:ietf:params:xml:ns:xmpp-stanzas , including a condition such as <service-unavailable/> to indicate temporary processing inability. These standardized codes promote across implementations.

Addressing and Routing

In the Extensible Messaging and Presence Protocol (XMPP), formerly known as , addressing is handled through , which serve as the native addresses for entities on the network. A JID consists of an optional localpart (representing the user or account), a required (identifying the or domain), and an optional resourcepart (specifying a particular session or device), formatted as [localpart "@"] domainpart ["/" resourcepart]. For instance, a full JID might appear as alice@[example.com](/page/example.com)/laptop, where alice is the localpart, [example.com](/page/example.com) is the domainpart, and laptop is the resourcepart. The part enables resource binding, allowing a single account to maintain multiple simultaneous sessions across different clients or devices without conflict. Each part must be a non-empty string of 1 to 1023 encoded bytes, prepared according to the Resourceprep profile of Stringprep, and treated as an opaque identifier with no inherent semantic meaning beyond distinguishing sessions. When a client connects, it binds a specific to its during , enabling the server to route stanzas appropriately to the correct session if multiple resources are active for the same bare (localpart and domainpart without resource). Routing in XMPP occurs across federated servers, where messages destined for remote domains are forwarded via server-to-server connections established using the (DNS). To locate a remote 's hostname and , an initiating performs a DNS SRV lookup for records of the form _xmpp-server._tcp.<domain>, as defined in RFC 2782. For example, to route to example.com, the query _xmpp-server._tcp.example.com might resolve to a target such as server1.example.com on 5269, the default for XMPP server-to-server traffic. If no SRV records exist, the system falls back to A or records for the domain itself, attempting connections on 5269. Server-to-server authentication during federation relies on the Server Dialback mechanism to verify the originating server's authority over its claimed domain, helping to mitigate the risk of spoofing in a decentralized network. This protocol, defined in XEP-0220 and referenced in RFC 6120, operates by having the receiving server generate a key and request verification from the authoritative server for the sender's domain via a secondary connection. The authoritative server responds with a result indicating validity (e.g., <db:result/> for success), allowing the receiving server to authorize the stream if confirmed. Dialback provides lightweight identity assurance but does not offer confidentiality or integrity protection, often complemented by TLS for security.

Standards and Extensions

XMPP Core Specifications

The core specifications of XMPP are primarily defined in two Internet Engineering Task Force (IETF) Request for Comments (RFC) documents published in 2011: RFC 6120, which outlines the foundational protocol mechanics, and RFC 6121, which extends the core to support instant messaging (IM) and presence services. These documents establish XMPP as a decentralized, XML-based protocol for real-time communication between network entities, such as clients and servers. They emphasize extensibility through XML streams and stanzas while mandating security features like Transport Layer Security (TLS) and Simple Authentication and Security Layer (SASL) to ensure secure data exchange. RFC 6120, titled Extensible Messaging and Presence (XMPP): , defines the essential mechanisms for establishing and maintaining bidirectional communication. It specifies XML as long-lived, bidirectional channels for exchanging structured data over connections, initiated by an opening <stream:stream> tag with attributes such as to, from, version, and xml:lang, and terminated by a closing </stream:stream> tag. Within these , communication occurs via XML stanzas—first-level child elements named <message/>, <presence/>, or <iq/> (info/query)—qualified by the jabber:client or jabber:[server](/page/Server) namespaces, which serve as the basic units for pushing information, broadcasting status, or requesting responses, respectively. Basic features include stream setup and teardown, channel encryption via TLS (mandatory for servers and recommended for clients), authentication through SASL mechanisms (such as or SCRAM-SHA-1), resource binding to associate a client session with a , and standardized handling with conditions like <not-authorized/> or <bad-request/>. Stanzas must be processed in the order received to maintain reliability, and servers are required to route them appropriately between local or remote domains using Jabber IDs (JIDs) in the format <localpart@domainpart/resourcepart>. RFC 6121, titled Extensible Messaging and Presence Protocol (XMPP): and Presence, builds on the core by specifying protocols for message delivery and presence subscriptions. For messaging, it defines syntax with attributes like to (target ), type (e.g., chat for one-to-one conversations or normal for standard delivery), and child elements such as <body/> for content, enabling text exchange. Servers handle delivery by routing messages to the recipient's most available (based on presence ) or storing them offline if the user is unavailable, with rules varying by type—for instance, chat messages are delivered to all non-negative resources only if explicitly opted in, while normal messages go to one or all such resources. Presence subscriptions allow users to manage availability sharing through roster-based mechanisms, using <presence/> s with types like subscribe to request approval, subscribed to approve, or unsubscribe to revoke; subscription states include "None," "To," "From," or "Both," with servers initial presence probes to subscribed contacts and enforcing to prevent unauthorized access. An optional pre-approval feature enables automatic subscription grants, advertised via stream features. These 2011 RFCs obsolete earlier foundational specifications from 2004: 3920 (Extensible Messaging and Presence Protocol (XMPP): Core), which introduced the initial and model, and 3921 (Extensible Messaging and Presence Protocol (XMPP): and Presence), which first defined delivery and presence mechanics, though both have been superseded to address clarifications in security, addressing, and processing rules. XMPP implementations are categorized by compliance levels to ensure , with and full designations outlined in RFC 6120. compliance requires support for core elements like XML , exchange over (ports 5222 for client-to-server and 5269 for server-to-server), SASL , TLS , and , allowing minimal functional without advanced features. Full compliance mandates all requirements plus comprehensive processing (e.g., in-order delivery and error responses), proper JID validation via DNS SRV records, and server-side routing with namespace re-scoping between client and server domains; clients must avoid server namespaces, while servers enforce policies like retry limits (5-10 attempts) and prohibit unencrypted post-. These levels align with RFC 2779's abstract framework for and presence, ensuring entities conform to mandatory and behaviors for robust, decentralized operation.

Extension Protocols (XEPs)

Extension Protocols (XEPs) represent the extensible nature of the XMPP protocol, allowing the community to propose and standardize additional features beyond the core specifications. Managed by the XMPP Standards Foundation (XSF), XEPs enable developers to enhance functionality for specific use cases, such as multi-user chat or , while maintaining across implementations. These protocols are built upon the foundational stanzas of XMPP, including , , and , to extend capabilities without altering the base architecture. The development of XEPs follows a structured process overseen by the XSF's and Editor. It begins with a stage, where an initial idea is drafted as a ProtoXEP and submitted for review. Upon acceptance by majority vote of the (with possible veto), it advances to Experimental status, receiving a unique number and becoming available for implementation and feedback. From there, it may progress to (with a public for comments), Stable (as a release candidate with restricted changes), and finally Final, requiring at least six months in , two independent implementations (one open-source), and a Call For Experience before approval. If a XEP stalls for over 12 months without updates, it moves to Deferred status and is archived, though it can be revived with revisions. Other states include Deprecated, Obsolete, , or Retracted for various reasons. XEPs are categorized to reflect their status and purpose: Informational XEPs provide guidance or background without defining protocols; Historical XEPs document past practices or obsolete features; and Active XEPs encompass the current, implementable standards, including those in Final and Stable stages. As of November 2025, there are 491 XEPs in total, with 70 in Final or Stable status actively shaping XMPP extensions. Several key XEPs illustrate the breadth of extensions. XEP-0004 defines a protocol for data forms, enabling structured input and validation in workflows like service configuration, using XML elements for fields such as text, booleans, and lists. XEP-0030 specifies , allowing entities to query identities, features, and items of other XMPP nodes, facilitating dynamic network exploration. XEP-0045 establishes multi-user chat (MUC), supporting group conversations in virtual rooms with roles, affiliations, and message broadcasting among participants. A practical example of XEP application is XEP-0198, which provides stream management to mitigate network disruptions. It introduces mechanisms for acknowledging stanzas, resuming interrupted streams, and requesting unacknowledged messages, ensuring reliable delivery in mobile or unstable environments.

Interoperability Standards

Jabber, based on the Extensible Messaging and Presence Protocol (XMPP), employs gateway protocols to enable interoperability with legacy (IM) networks such as Internet Relay Chat (IRC) and Instant Messenger (). XEP-0100, titled "Gateway Interaction," outlines best practices for client-proxy gateway interactions, allowing XMPP clients to register legacy usernames and receive corresponding Jabber IDs (JIDs) for seamless communication. This standard facilitates proxy gateways that translate between XMPP and non-XMPP protocols, with examples including Biboumi for IRC channel access via XMPP multi-user chat (MUC) rooms and historical tools like JBuddy for and connectivity. Historical efforts to federate XMPP with other IM protocols include bridges to Session Initiation Protocol (SIP)-based systems, leveraging RFC 3428, which defines the SIP MESSAGE method for instant messaging extensions. This foundation supported early interworking, as detailed in subsequent IETF specifications like RFC 7247, which provides core mapping guidelines for bidirectional communication between SIP and XMPP domains, including presence and messaging translation via gateways. For HTTP-based services, XMPP gateways enable integration with web-oriented protocols, such as transporting HTTP requests over XMPP streams per XEP-0332, allowing peer-to-peer access to HTTP resources without direct web connectivity. The XMPP Standards Foundation (XSF) maintains XMPP Compliance Suites to ensure interoperability through rigorous testing and certification of implementations. These suites, documented in XEPs such as XEP-0479 (2023 edition), define protocol levels (e.g., Core, Advanced) and categories (e.g., IM, ) that software must meet for certified compliance, covering mandatory features like stream management and SASL authentication to promote consistent cross-implementation behavior. Periodic updates to these suites, starting from XEP-0270 in 2010, guide developers in aligning with evolving standards, thereby reducing fragmentation in federated environments. In modern contexts, XMPP achieves interoperability with for voice and video by incorporating DTLS-SRTP security in sessions, as specified in XEP-0320. This aligns XMPP's framework with WebRTC's media transport requirements, enabling (RTP) streams for audio and video calls across browser and native clients. Such integration supports hybrid environments where XMPP handles signaling while WebRTC manages encrypted media flows, enhancing compatibility with web-based communication tools.

Implementations

Server Software

Several prominent open-source XMPP server implementations have emerged to support the protocol's requirements for communication, each optimized for different deployment scales and environments. These servers handle core XMPP functionalities such as message routing, presence management, and federation while offering extensibility through modules or plugins. , developed by ProcessOne, is an Erlang-based XMPP server renowned for its scalability in large deployments. Originating in November 2002 from initial work by Shchepin, it leverages Erlang's fault-tolerant architecture, with benchmarks demonstrating support for up to 2 million concurrent users on a single node. Key features include multi-protocol support for XMPP alongside and , REST integration, and modular hooks for custom extensions, ensuring full compliance with XMPP standards for interoperability. Clustering and enable efficient scaling across multiple nodes. Prosody is a , Lua-based XMPP designed for ease of setup and low resource consumption, making it suitable for smaller to medium-scale operations. First released in December 2008, originally developed as lxmppd, it emphasizes modularity with a system that allows rapid development of new features and protocols. Its efficient resource usage stems from Lua's simplicity, enabling it to run on diverse platforms while supporting modern XMPP extensions for presence and messaging. Openfire, originally launched in 2004 by Software and now maintained by the Ignite community, is a -based tailored for environments. It provides scalable XMPP handling with a flexible architecture for features like group chat, file sharing, and access controls, supporting organizations of varying sizes through robust clustering options. The server's Java foundation ensures cross-platform compatibility and integration with tools, while maintaining core XMPP compliance for secure and . Among commercial offerings, Cisco's Unified Communications Manager IM and Presence Service implements an XMPP-based server for enterprise-grade instant messaging and presence, integrated with broader Cisco collaboration suites. This server supports federation over XMPP, secure TLS connections, and scalability for large user bases in corporate networks. Tigase XMPP Server, written in , focuses on high and cost-effective for massive deployments, capable of handling unlimited concurrent connections with message delivery under 0.1 seconds. It includes built-in protections against , DDoS, and brute-force attacks, along with optimizations for push notifications and fault-tolerant message queuing to prevent .

Client Applications

XMPP client applications enable users to connect to federated servers for , presence, and related services across desktop, , web, and enterprise environments. These clients implement the core XMPP protocol along with extensions for features like and , allowing seamless interaction in decentralized networks. Popular open-source options prioritize cross-platform compatibility and , while enterprise solutions integrate advanced tools. Desktop clients include , a free and open-source multi-protocol instant messaging application that supports XMPP alongside other protocols such as IRC and , enabling users to manage multiple accounts in a single interface. offers features like multi-user chat rooms, service discovery, and configurable connections for services like via XMPP. Another prominent desktop client is Gajim, a full-featured XMPP application built with and the toolkit, supporting , group chats, , voice messages, and across devices. Gajim emphasizes with various XMPP providers and includes advanced capabilities like reactions and status updates for enhanced user experience. For mobile platforms, Conversations serves as a leading XMPP client optimized for battery efficiency and security, featuring via OMEMO, image and , and support for group conferences. It implements key XMPP extensions such as Stream Management and Message Archive Management to ensure reliable messaging on 5.0 and later. On iOS, provides a native XMPP client for , , and macOS, supporting multiple accounts, privacy-focused push notifications, and decentralized communication without data tracking. adheres to XMPP standards for features like private and group messaging, making it suitable for users seeking a sovereign, open-source alternative. Web-based clients like Converse.js offer a JavaScript library for embedding XMPP functionality directly into websites or applications, supporting direct messages, group chats, and with OMEMO. This pluggable framework allows customization for full-page apps or widgets, with compatibility across major XMPP servers and multilingual support in over 30 languages. In enterprise settings, stands out as a client that leverages XMPP for and presence, extended with voice and video calling, desktop sharing, conferencing, and voice messaging. Originally developed from technology acquired by from Jabber Inc. in , it integrates seamlessly with Cisco's ecosystem for cross-device collaboration on Windows, macOS, , and .

Libraries and Frameworks

Several programming libraries and frameworks facilitate the integration of Jabber (XMPP) into applications, providing for handling features such as message exchange, presence updates, and roster management. These tools abstract the complexities of XML stanzas and stream management, enabling developers to build custom clients, bots, or components across various platforms and languages. They often support compliance with XMPP RFCs (6120 and 6121) and selected extensions, allowing for extensible implementations without requiring low-level handling. Smack is a mature, open-source XMPP client library written in , designed for both desktop and environments. It offers modular architecture with support for features like multi-user chat (XEP-0045), file transfers (XEP-0234), and (XEP-0030), making it suitable for embedding real-time communication in Java-based applications. Smack emphasizes reliability through robust connection management, including automatic reconnection and stream error handling, and is widely used in projects requiring cross-platform compatibility. Its API provides high-level abstractions, such as the XMPPTCPConnection class for establishing sessions and Message objects for stanza construction. Stanza.js is a JavaScript and TypeScript library tailored for Node.js server-side and browser-based applications, presenting XMPP interactions through a JSON API to simplify development in web environments. It supports modern XMPP extensions like direct TLS (XEP-0368) and stream management (XEP-0198) for efficient, resumable connections, and handles asynchronous operations natively via Promises. Developers can use it to create web clients or backend services, with classes like Client for connection setup and event emitters for stanza processing. The library's design avoids direct XML manipulation, focusing instead on intuitive object-oriented interfaces. SleekXMPP is an asynchronous library for XMPP, leveraging to handle concurrent operations in server or client contexts. It implements a plugin-based system for extending functionality, covering essentials like (via SASL) and , and is compatible with 2.6+ and 3.x versions. The library's ClientXMPP base class allows for custom event handlers, such as registering callbacks for incoming messages or presence probes, promoting flexible bot and . Note that SleekXMPP has been succeeded by Slixmpp, a optimized for 3.7+ with asyncio integration for improved performance in modern applications. Beyond these, XMPP bindings exist for additional languages, enabling broader ecosystem integration. In C++, the provides a Qt-based framework for cross-platform development, supporting audio/video calls (via , XEP-0166/0167) and (OMEMO, XEP-0384). For Go, the xmpp-go library offers a client implementation with goroutine-safe concurrency, ideal for networked services. In , xmpp-rs delivers a type-safe emphasizing and , with modules for stanzas and managing async streams using . These bindings prioritize core protocol adherence while accommodating language-specific idioms, such as memory safety in or concurrency primitives in Go.

Adoption and Applications

Instant Messaging and Presence

Jabber, through the Extensible Messaging and Presence Protocol (XMPP), serves as a foundational technology for and presence , enabling decentralized communication across servers. At its core, XMPP facilitates the exchange of structured XML stanzas for messages and presence updates, allowing users to maintain awareness of each other's availability while sending text-based communications in near . This design emphasizes , where users on different servers can interact seamlessly, distinguishing it from systems. The presence model in XMPP defines how entities share availability status through subscriptions and notifications. Users establish bidirectional or unidirectional subscriptions via roster entries, with states including "to" (entity receives presence from subscriber), "from" (subscriber receives presence from entity), "both" (mutual), or "none" (no subscription). These subscriptions are managed using presence stanzas, such as <presence type='subscribe'/> to request access and <presence type='subscribed'/> to approve. Availability is further indicated by show states in presence stanzas: "away" for temporary unavailability, "dnd" for do-not-disturb, "xa" for extended away, "chat" for willing to chat, or no show element for /available. Capabilities exchange enhances this model by embedding entity features—such as supported extensions—in presence broadcasts using a hashed string in the <c/> element, as defined in XEP-0115, reducing the need for repeated queries. Messaging in XMPP supports chats via direct message stanzas sent between entities, with types like "chat" for conversations or "normal" for standard delivery. For group interactions, Multi-User Chat (MUC) via XEP-0045 enables persistent or temporary rooms where participants join by directing presence to a room JID (e.g., [email protected]), exchange groupchat messages, and manage roles like moderator or participant, along with affiliations such as member or owner for access control. To synchronize conversations across multiple devices, Message Carbons (XEP-0280) forwards copies of incoming and outgoing messages to all connected resources of a , ensuring consistency without requiring direct delivery, provided the feature is enabled via an IQ . As of 2025, XMPP powers for millions of users worldwide, particularly through versatile clients like , which integrates XMPP support for cross-protocol compatibility and remains a staple for personal and community use.

Enterprise and VoIP Integration

Cisco Jabber is a application that leverages the Extensible Messaging and Presence Protocol (XMPP) to deliver enterprise-grade , presence information, voice, and video capabilities across multiple devices. It integrates seamlessly with Cisco's broader ecosystem, including Webex for meetings and for interoperability in hybrid environments, enabling users to initiate calls, share screens, and manage presence from a single interface. This suite supports on-premises, cloud, or hybrid deployments, making it suitable for large-scale business operations. A key enabler for voice and video in Jabber and other XMPP-based systems is the protocol, defined in XEP-0166 and XEP-0167. Jingle provides a framework for negotiating and establishing multimedia sessions, such as audio and video calls, directly over XMPP signaling channels, while using RTP for media transport. This approach avoids proprietary protocols, promoting interoperability and allowing seamless integration of VoIP features into enterprise messaging workflows without requiring separate signaling stacks. Enterprise deployments of Jabber and XMPP emphasize robust , including recording and directory federation. features route instant messages and call to third-party servers for archiving and auditing, ensuring adherence to regulatory requirements like eDiscovery in sectors with strict policies. Federation with LDAP and allows synchronization of user directories, enabling secure authentication, contact searches, and group management across organizational boundaries. Adoption of Jabber and XMPP in enterprise settings is prominent in regulated industries such as government and finance, where secure internal messaging is critical. In finance, Cisco Jabber supports compliance-driven communications, with integrations like for message retention helping institutions meet sector-specific mandates. These implementations highlight XMPP's role in providing scalable, federated secure communications for high-stakes environments.

Emerging Uses in IoT and Federation

XMPP has found significant application in (IoT) ecosystems through extensions like XEP-0322, which defines the Efficient XML Interchange (EXI) format to optimize bandwidth and processing for resource-constrained devices. This enables efficient communication in sensor networks by compressing XML payloads, reducing overhead in scenarios such as remote device monitoring and control. For instance, the smart home platform integrates XMPP for sending notifications, including text, images, and files, from IoT devices to users via Jabber accounts, facilitating seamless alerts from automated systems. Complementing these capabilities, XEP-0060 provides a publish-subscribe mechanism that supports topic-based messaging, ideal for disseminating sensor data and alerts in IoT deployments. In this model, devices publish updates to nodes, and subscribers receive notifications only for relevant topics, enabling scalable event-driven architectures for applications like or smart building controls. Research on XMPP-based IoT network management highlights its use in agile sensor networks, where pub-sub ensures timely propagation of changes without constant polling. In federated environments, XMPP's native allows across disparate systems, extending to modern social networks through bridges that connect XMPP to ActivityPub-based platforms like . Tools such as the XMPP-AP-Bridge enable direct message relaying between XMPP users and instances, promoting cross- communication in decentralized social ecosystems. Similarly, in multiplayer , XMPP handles real-time synchronization for presence, , and signaling, supporting scalable interactions in online games by leveraging its for coordination across servers. The 2020s have seen renewed interest in XMPP for the , driven by privacy regulations like the GDPR, which emphasize user control over data in federated networks. This has spurred deployments compliant with GDPR principles, such as self-hosted servers that minimize , contributing to XMPP's role in -focused, distributed applications.

Security and Privacy

Built-in Security Mechanisms

Jabber, also known as XMPP, incorporates (TLS) as a core mechanism to encrypt XML , ensuring confidentiality and integrity of communications between clients and or among . According to RFC 6120, TLS support is mandatory for all XMPP implementations, with negotiation occurring via the STARTTLS command after initial setup but before . This process requires clients to initiate with a , prompting the to respond with if successful, after which the restarts in an encrypted state. Implementations must validate certificates, including identity checks against the 's domain, to mitigate man-in-the-middle attacks. While TLS 1.0 was historically supported, RFC 6120 aligns with RFC 5246 for TLS 1.2 as the baseline, and modern deployments recommend TLS 1.3 for enhanced security features like improved and . Authentication in Jabber relies on the (SASL), which provides a framework for verifying user identities over the encrypted stream. RFC 6120 mandates SASL negotiation following TLS, using the namespace urn:ietf:params:xml:ns:xmpp-sasl, where clients select from advertised mechanisms via an element. Key mechanisms include DIGEST-MD5 for , which uses a challenge-response based on shared secrets without transmitting s in cleartext, though it is now deprecated in favor of stronger options. SCRAM-SHA-1 has emerged as the mandatory-to-implement mechanism for client-to-server , employing salted password hashing with HMAC-SHA-1 to resist offline attacks and support when paired with TLS. The SCRAM-SHA-1-PLUS variant further integrates TLS channel binding for additional protection against active attackers. Successful authentication results in a response, applying a security layer and restarting the stream for resource . For beyond transport-level protections, Jabber supports OMEMO as defined in XEP-0384, enabling multi-device message synchronization with . OMEMO adapts the Signal protocol's , which combines symmetric key ratcheting with Diffie-Hellman exchanges to generate ephemeral keys for each message, ensuring that compromised long-term keys do not expose past or future communications. Key bundles, including identity and signed prekeys, are published via XEP-0060 (PubSub) for initial key agreement using X3DH, allowing recipients to decrypt messages securely without server involvement. This mechanism protects one-to-one and group chats against server-side , though it does not conceal such as participant lists. In federated environments, dialback serves as a built-in safeguard against spoofing during server-to-server interactions. As outlined in XEP-0220 and referenced in 6120, dialback enables an originating to request verification from the authoritative for a target via a db:result/ or db:verify/ exchange over a direct . This out-of-band validation confirms the initiator's authority to send on behalf of its , using DNS to establish the verifying and preventing unauthorized from impersonating others. While providing only weak without TLS, dialback is typically combined with stream to bolster , and it remains a fallback when mutual TLS certificates are unavailable.

Common Vulnerabilities and Mitigations

In the early 2000s, XMPP implementations were susceptible to XML parsing attacks, particularly the "Billion Laughs" denial-of-service (DoS) vulnerability, which exploits recursive entity expansion in XML parsers to consume excessive memory and CPU resources. This attack, known since 2002, affected multiple Jabber servers including ejabberd (CVE-2009-1955) and could cause servers to hang without requiring authentication. Mitigations involved implementing limits on entity expansion depth and count in XML parsers, as well as restricting overall stanza sizes to prevent resource exhaustion. Federation in XMPP introduces risks such as , where attackers could redirect server-to-server connections to malicious hosts by manipulating DNS records. This is addressed through (DANE) using TLSA records secured by DNSSEC, combined with TLS certificate pinning to validate server identities during federation. The protocol defined in 7712 establishes strong associations between domain names and services, ensuring secure resolution of SRV records and preventing spoofed connections. In the 2020s, implementation-specific bugs have persisted, such as in Zyxel CloudCNM SecuManager versions 3.1.0 and 3.1.1, which uses ejabberd, where a hardcoded Erlang cookie enabled unauthorized replication access (CVE-2020-15325), potentially exposing sensitive configuration data. This was fixed in subsequent updates by randomizing the cookie and enforcing secure distribution. Similarly, vulnerabilities involving uncontrolled resource consumption from highly compressed XMPP stanzas have been reported, allowing DoS via inflated decompression, mitigated by limiting compression ratios and stanza payloads in server configurations. Best practices for mitigating XMPP vulnerabilities include following XSF advisories through XEPs like XEP-0205, which recommends , connection limits per , and XML validation to discourage attempts. Additionally, deployments should use modern TLS ciphers as outlined in RFC 7590, prioritizing suites like TLS_AES_128_GCM_SHA256 while disabling weak ones such as those with or 3DES to enhance strength. Regular software updates and monitoring XSF security notices ensure ongoing protection against emerging threats.

Privacy Considerations in Federated Networks

In federated XMPP networks, where multiple independent servers interconnect to enable communication across domains, privacy concerns arise primarily from the inherent visibility of certain data during message routing and presence sharing. Unlike centralized systems, federation allows users on different servers to interact seamlessly, but this decentralization can expose metadata and presence information to intermediary servers, potentially compromising user anonymity if not properly managed. One significant issue is metadata leakage, as XMPP servers typically log Jabber IDs (JIDs), timestamps, and connection details to facilitate routing and debugging, which can reveal communication patterns and user activity over time. Research has demonstrated that such server-side metadata can be analyzed to infer social graphs and interaction frequencies, even without accessing message contents. To mitigate this, operators can deploy XMPP servers as Tor hidden services, which obscure IP addresses and reduce traceability by routing traffic through the Tor network; for example, the Calyx Institute's public XMPP server operates exclusively via a .onion address to enhance user privacy. Additionally, using VPNs in conjunction with XMPP clients can further mask endpoint IPs, though this does not eliminate server logs. Federation introduces risks where third-party servers, during message and presence , may access presence data such as online and for users on remote domains, particularly if subscriptions are not tightly controlled. In XMPP, presence stanzas are broadcast to subscribed contacts across federated boundaries, allowing intervening servers to observe this information transiently. To address this, users can implement strict subscription controls through roster management, where presence sharing is limited to approved contacts, and leverage privacy lists defined in XEP-0016 to block or filter presence notifications based on JIDs, groups, or subscription types, thereby restricting data exposure to untrusted federated entities. XMPP deployments can align with privacy regulations like the EU's GDPR and California's CCPA through data minimization principles, which emphasize collecting and retaining only essential data for core functions such as message delivery. The informational XEP on GDPR-compliant XMPP deployments recommends configuring servers to minimize logging of JIDs and timestamps, disabling unnecessary Message Archive Management (MAM) retention beyond user consent, and avoiding behavioral analytics that could process excessively. These practices ensure by limiting to what is strictly necessary for federated communication, with operators required to provide clear privacy policies detailing data handling in cross-server interactions. Users can enhance privacy via tools supporting anonymous or ephemeral JIDs, which allow temporary identifiers without linking to persistent accounts. XEP-0383 defines "burner JIDs" as short-lived, non-authenticating identifiers generated from an existing session, enabling interactions while permitting server-side to prevent abuse. Clients like Conversations implement support for such extensions alongside features like optional read markers and roster privacy, facilitating ephemeral sessions for one-off communications without long-term metadata accumulation.

References

  1. [1]
    An Overview of XMPP | XMPP - The universal messaging standard
    XMPP was originally developed in the Jabber open-source community to provide an open, decentralized alternative to the closed instant messaging services at that ...Jingle · Multi-User-Chat (muc) · Pubsub
  2. [2]
    History of XMPP | XMPP - The universal messaging standard
    XMPP began as Jabber in 1999, became XMPP in 2002, with core functionality defined in 2004, and the Jabber Software Foundation became XMPP Standards Foundation ...
  3. [3]
    Instant Messaging | XMPP - The universal messaging standard
    When Jeremie Miller invented Jabber/XMPP technologies in 1998, he did so in large measure to provide a free and open alternative to the proprietary instant ...
  4. [4]
    Talking Jabber - Linux Journal
    May 9, 2000 · Jeremie Miller: Yeah. Basically. I don't know if it's really unique, but it's turning out unique. It started back in early 1998. I worked in an ...
  5. [5]
  6. [6]
    draft-miller-jabber-00 - IETF Datatracker
    This informational document describes the Jabber protocols, a set of open, XML-based protocols developed over a number of years mainly to provide instant ...
  7. [7]
    JabberCOM download | SourceForge.net
    Mar 22, 2013 · Download JabberCOM for free. A Win32 COM (Component Object Model) component which allows developers quick and easy implementation of a ...
  8. [8]
    Jabber Open Source License
    This Jabber Open Source License (the “License”) applies to Jabber Server ... Portions Copyright (c) 1998-1999 Jeremie Miller. Acknowledgements. Special ...
  9. [9]
    jabbersf-ipr-xmpp-wg.txt
    In accordance with Section 10 of RFC 2026, Jabber, Inc. and the Jabber ... JABBER(R) is a registered trademark of Jabber, Inc., and was acquired from ...
  10. [10]
    RFC 3920 - Extensible Messaging and Presence Protocol (XMPP)
    The Extensible Messaging and Presence Protocol (XMPP) is an open Extensible Markup Language [XML] protocol for near-real-time messaging, presence, and request- ...Missing: renaming trademark
  11. [11]
    RFC 3921 - Extensible Messaging and Presence Protocol (XMPP)
    The Extensible Messaging and Presence Protocol (XMPP) is a protocol for streaming XML [XML] elements in order to exchange messages and presence information in ...Missing: renaming trademark
  12. [12]
    RFC 6120 - Extensible Messaging and Presence Protocol (XMPP)
    This document defines XMPP's core protocol methods: setup and teardown of XML streams, channel encryption, authentication, error handling, and communication ...
  13. [13]
    XMPP RFCs | XMPP - The universal messaging standard
    This RFC is obsoleted by RFC 6120. RFC 3920. The XSF hosts this document: HTML TXT File XML Source. RFC 3921: Extensible Messaging and Presence Protocol (XMPP): ...Missing: trademark | Show results with:trademark
  14. [14]
    Jabber - Crunchbase Company Profile & Funding
    Jabber, Inc. develops and markets commercial real-time presence and messaging solutions for the enterprise, government, communications/service providers.
  15. [15]
    Cisco Announces Definitive Agreement to Acquire Jabber
    SAN JOSE, Calif. - Sept. 19, 2008 - Cisco today announced its intent to acquire privately held Jabber, Inc., a provider of presence and messaging software.
  16. [16]
    Cisco Completes Acquisition of Jabber - Cisco Newsroom
    Nov 3, 2008 · SAN JOSE, Calif. - November 3, 2008 - Cisco today announced that it has completed its purchase of Jabber Inc., a provider of presence and ...
  17. [17]
    Google Abandons Open Standards for Instant Messaging
    May 22, 2013 · These changes are the result of Google dropping a particular subset of the XMPP standard—namely server-to-server federation. But for now, Google ...Missing: 2010-2015 | Show results with:2010-2015
  18. [18]
    Google Talk, from 2005, will shut down for good later this week
    Jun 13, 2022 · Part of the XMPP support began to shut down in 2017, disabling the ability for chats to be federated across messaging providers, but 1:1 chat ...
  19. [19]
    XMPP: When a 25-Year-Old Protocol Becomes Strategic Again
    Jul 24, 2025 · And now, XMPP is more relevant than ever: its resurgence is driven by European digital sovereignty efforts, renewed focus on interoperability, ...Missing: revival 2020
  20. [20]
    XEP-0479: XMPP Compliance Suites 2023
    May 4, 2023 · This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that ...2. Compliance Categories · 2.3 Im Compliance Suite · Appendix G: NotesMissing: modern | Show results with:modern
  21. [21]
  22. [22]
  23. [23]
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]
    XEP-0220: Server Dialback - XMPP
    Mar 12, 2015 · Abstract: This specification defines the Server Dialback protocol, which is used between XMPP servers to provide identity verification.
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
  36. [36]
  37. [37]
  38. [38]
  39. [39]
  40. [40]
  41. [41]
  42. [42]
  43. [43]
  44. [44]
  45. [45]
  46. [46]
  47. [47]
  48. [48]
    Standards Process | XMPP - The universal messaging standard
    XMPP extensions use XEPs, developed through a process where anyone can propose, and the XSF's XMPP Council makes decisions. The process is open to all.
  49. [49]
    XEP-0001: XMPP Extension Protocols
    This document formally defines the nature of XMPP Extension Protocols and the mechanisms for managing and advancing them within the XSF's standards process.
  50. [50]
    Specifications | XMPP - The universal messaging standard
    The whole list. The XMPP Standards Foundation develops extensions to XMPP in its XEP series. This page lists Stable and Final XEPs as well as experimental ...
  51. [51]
    XEP-0004: Data Forms - XMPP
    Aug 30, 2024 · Abstract: This specification defines an XMPP protocol extension for data forms that can be used in workflows such as service configuration ...Protocol · Data Validation · XMPP Registrar Considerations · XML Schema
  52. [52]
    XEP-0030: Service Discovery - XMPP
    Apr 30, 2024 · This specification defines an XMPP protocol extension for discovering information about other XMPP entities.Introduction · Error Conditions · XMPP Registrar Considerations · XML Schemas
  53. [53]
    XEP-0198: Stream Management - XMPP
    Jul 28, 2025 · XEP-0198 defines an XMPP protocol for active XML stream management, including stanza acknowledgements and stream resumption, using commands ...
  54. [54]
    XEP-0100: Gateway Interaction - XMPP
    Oct 5, 2005 · It enables a client to send a legacy username to the gateway and receive a properly-formatted JID in return. To do so, the client sends the ...
  55. [55]
    poezio/biboumi: XMPP to IRC gateway - Codeberg.org
    Biboumi is an XMPP gateway that connects to IRC servers and translates between the two protocols. It can be used to access IRC channels using any XMPP client.Missing: XEP- 0100
  56. [56]
    Instant Messaging Transports : JBuddy XMPP Gateway - Zion Software
    An XMPP gateway connects to legacy IM services. JBuddy XMPP Gateway uses JBuddy SDK to support AIM, ICQ, MSN, Yahoo, and other enterprise networks.
  57. [57]
    RFC 3428 - Session Initiation Protocol (SIP) Extension for Instant ...
    This document proposes the MESSAGE method, an extension to the Session Initiation Protocol (SIP) that allows the transfer of Instant Messages.Missing: XMPP | Show results with:XMPP
  58. [58]
    XEP-0332: HTTP over XMPP transport
    XEP-0332 defines how XMPP transports HTTP communication over peer-to-peer networks, building an HTTP tunnel over an existing XMPP connection.
  59. [59]
    XEP-0412: XMPP Compliance Suites 2019
    Jan 28, 2020 · This document specifies compliance levels for XMPP clients and servers; it is hoped that this document will advance the state of the art.
  60. [60]
    Compliance Suites | XMPP - The universal messaging standard
    Compliance Suites define XMPP application Categories based on typical use cases (Core, Web, IM, Mobile) and Levels (Core, Advanced) based on functionality in ...
  61. [61]
    XEP-0320: Use of DTLS-SRTP in Jingle Sessions - XMPP
    May 26, 2020 · Abstract: This specification defines how to use DTLS-SRTP (RFC 5763) in the Jingle application type for the Real-time Transport Protocol ...Protocol · XMPP Registrar Considerations · XML Schemas · Appendices
  62. [62]
    XMPP Software | XMPP - The universal messaging standard
    An XMPP server provides basic messaging, presence, and XML routing features. This page lists Jabber/XMPP server software that you can use to run your own XMPP ...Missing: revival | Show results with:revival
  63. [63]
    Ejabberd - XMPP WIKI
    Oct 5, 2011 · ejabberd is an XMPP application server, written mainly in the Erlang programming language. It can run under Microsoft Windows and several Unix-like operating ...
  64. [64]
    ejabberd XMPP Server with MQTT Broker & SIP Service
    ejabberd is an XMPP server (Jabber server), MQTT broker and SIP gateway built to create awesome realtime services like massive chat, instant communication, ...
  65. [65]
    ejabberd Docs: Home
    ejabberd is an open-source, robust, scalable and extensible realtime platform built using Erlang/OTP, that includes XMPP Server, MQTT Broker and SIP Service.Overview · Configure · API · Advanced
  66. [66]
    Prosody IM: Welcome
    Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources.XMPP · Documentation · Downloading and Installing... · Server-to-server XMPP
  67. [67]
    XMPP - Prosody IM
    XMPP is an open technology for real-time communication, which powers a wide range of applications including instant messaging, presence, multi-party chat, ...
  68. [68]
    Openfire Server - Ignite Realtime
    Openfire offers a scalable XMPP server with a flexible plugin system, while Smack, a modular Java library for building clients on Android, desktop, or other ...Documentation · Openfire Plugins · Downloads · Connection Manager Module
  69. [69]
    Configuration and Administration of the IM and Presence Service ...
    Nov 27, 2024 · For SIP to XMPP instant messaging, the following services must be running on IM and Presence Service: Cisco SIP Proxy. Cisco Presence Engine.
  70. [70]
    Tigase XMPP Server
    Tigase XMPP Server is software for building low-cost, large-scale communication systems, handling unlimited connections and enabling communication between ...
  71. [71]
    Pidgin :: Pidgin, the universal chat client
    Looking to reach us via XMPP? Check out the new PidginChat service! navigation. Pidgin is a chat program which lets you log into accounts on multiple chat ...Install · Pidgin, the universal chat client · About · XMPP (Jabber)
  72. [72]
    XMPP (Jabber) :: Pidgin, the universal chat client
    Jabber and XMPP are the same protocol. The only difference is that Jabber is a trademarked name and XMPP is the official name of the protocol.<|control11|><|separator|>
  73. [73]
    Gajim
    Free and fully featured chat app for XMPP. Install Chat freely. Take your chats where you want. Use a provider of your choice and synchronize chats.Gajim 2.0.0 · Install · Gajim / gajim · GitLab · Gajim 2.0.4
  74. [74]
    Conversations: the very last word in instant messaging
    Conversations is a Jabber/XMPP client for Android 5.0+ smartphones that has been optimized to provide a unique mobile experience. Buy now on google play.
  75. [75]
    OMEMO Multi-End Message and Object Encryption - Conversations.im
    OMEMO is an XMPP Extension Protocol (XEP) for secure multi-client end-to-end encryption. It is an open standard based on a Double Ratchet and PEP.
  76. [76]
    Monal
    Monal is an XMPP instant messaging client for macOS and iOS which strives to be the go-to client for these platforms just like the app Conversations IM is for ...
  77. [77]
    Converse.js
    A powerful, open-source and web-based XMPP chat client. Pluggable and customizable with end-to-end encryption, DMs, group chats, and 30+ language support.Converse · Anonymous login demo · Converse Documentation
  78. [78]
    Cisco Jabber - Unified Communications
    Cisco Jabber delivers instant messaging, voice and video calls, voice messaging, desktop sharing, conferencing, and presence.Missing: XMPP | Show results with:XMPP
  79. [79]
    Cisco Jabber Takes Unified Communications and Collaboration to ...
    Mar 1, 2011 · Cisco Jabber is based on Jabber Inc. technology and expands the solution to incorporate voice, video and conferencing. Cisco acquired Jabber Inc ...
  80. [80]
    igniterealtime/Smack: A modular and portable open source XMPP ...
    Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android.
  81. [81]
    Smack API - Ignite Realtime
    Smack is an Open Source XMPP client library for instant messaging and presence. A pure Java library, it can be embedded into your applications.
  82. [82]
    legastero/stanza: Modern XMPP, with a JSON API - GitHub
    StanzaJS is a JavaScript/TypeScript library for using modern XMPP, and it does that by exposing everything as JSON.
  83. [83]
    GitHub | Cross-platform C++ XMPP client and server library - GitHub
    Mar 20, 2025 · QXmpp is a cross-platform C++ XMPP client and server library. It is written in C++ and uses the Qt framework. QXmpp strives to be as easy to use as possible.Missing: bindings | Show results with:bindings
  84. [84]
    xmppo/go-xmpp - GitHub
    Go XMPP Library (From Yasuhiro Matsumoto and based on the code from Russ Cox). golang.org/. License. BSD-3-Clause license.
  85. [85]
    xmpp.rs
    xmpp.rs is a Rust crate for building clients and servers for the Jabber/XMPP federated network.
  86. [86]
    Extensible Messaging and Presence Protocol (XMPP)
    This document defines extensions to core features of the Extensible Messaging and Presence Protocol (XMPP) that provide basic instant messaging (IM) and ...
  87. [87]
    XEP-0115: Entity Capabilities - XMPP
    Mar 8, 2022 · This document defines a more robust and scalable solution: namely, a presence-based mechanism [8] for exchanging information about entity capabilities.
  88. [88]
    XEP-0045: Multi-User Chat - XMPP
    Sep 30, 2025 · Abstract: This specification defines an XMPP protocol extension for multi-user text chat, whereby multiple XMPP users can exchange messages ...
  89. [89]
    XEP-0280: Message Carbons - XMPP
    Dec 26, 2021 · This XEP defines an approach for ensuring that all of my devices get both sides of all conversations in order to avoid user confusion.Missing: 0045 | Show results with:0045
  90. [90]
    Cisco Jabber for Windows and Mac: Enterprise Collaboration Made ...
    The Cisco Jabber client is a unified communications application that lets you be more productive from anywhere on a broad array of devices.
  91. [91]
    Set Up Interoperability for Webex App and Jabber
    Sep 19, 2024 · When your users are in Webex App and also in Cisco Jabber, you can use the interoperability setting to allow people in both apps to communicate with each other.
  92. [92]
    XEP-0166: Jingle - XMPP
    Sep 19, 2018 · The purpose of Jingle is to enable one-to-one, peer-to-peer media sessions between XMPP entities, where the negotiation occurs over the XMPP signalling channel.
  93. [93]
    XEP-0167: Jingle RTP Sessions - XMPP
    Jul 4, 2025 · This document specifies an application format for negotiating Jingle media sessions, where the media is exchanged over the Realtime Transport Protocol (RTP).Missing: VoIP | Show results with:VoIP
  94. [94]
    Google: 'The Future is Jingle' - XMPP
    Jun 23, 2011 · Jingle (XEP-0166 and XEP-0167) is the voice and media signalling ... Google's original VOIP protocol, as used in Google Talk, was an ...
  95. [95]
    Instant Messaging Compliance for the IM and Presence Service
    Oct 1, 2024 · With this solution, IM and Presence Service integrates with one or more third-party compliance servers for compliance logging or ethical wall functionality.
  96. [96]
    [PDF] DoD Open Government Plan
    Aug 31, 2012 · Adobe Connect is the Web conferencing application and Jabber is the XMPP secure chat service and client. Service and Command Centric Platforms.
  97. [97]
    Smarsh Partners with Cisco for Jabber, Webex Teams Compliance
    Aug 21, 2018 · This is good news for Cisco customers in heavily regulated industries including financial services, which must meet compliance requirements ...
  98. [98]
    How Jabber Fits into Cisco's Unified Communications Plan - eWeek
    Sep 19, 2008 · Jabber: A quiet but effective messaging pioneer. Jabber was one of the first IM providers, having started up in 2000. It has been selling its ...Missing: Inc | Show results with:Inc
  99. [99]
    Tech pages/IoT XepsExplained - XMPP WIKI
    Jan 8, 2014 · Provides the underlying architecture, basic operations and data structures for sensor data communication over XMPP networks. It includes a ...
  100. [100]
    Jabber (XMPP) - Home Assistant
    The Jabber (XMPP) integration delivers notifications from Home Assistant to a Jabber account, allowing text, images, and files to be sent.Configuration · Jabber text message · Jabber image message · Jabber file message
  101. [101]
    XEP-0060: Publish-Subscribe - XMPP
    Presence Access Model: A node access model under which any entity that is subscribed to the owner's presence with a subscription of type "from" or "both ...
  102. [102]
    [PDF] Smart Building Control with XMPP for IoT
    This server also offers services like caching messages if a receiver is not available at the moment or provides a Publish-Subscribe (XEP-0060. [MSM]) interface.
  103. [103]
    [PDF] XMPP-based Network Management Infrastructure for Agile IoT ...
    The. XEP-0060 (Publish-Subscribe) [23] that allows to subscribe to an information node and, then, to receive a notification, only when an entity publishes an ...
  104. [104]
    Detailed technical briefing: The Case for XMPP – Why Meta Must ...
    Mar 27, 2025 · Despite XMPP's success, technical advantages, and suitability for messaging interoperability, its adoption slowed as the messaging landscape ...
  105. [105]
    Mastodon DM bridge - JoinJabber
    One option to bridge direct messages from XMPP to Mastodon (or compatible) is the XMPP-AP-Bridge. It utilized a bot on both sides of the bridge to relay direct ...
  106. [106]
    Online Gaming | XMPP - The universal messaging standard
    XMPP provides a scalable platform for real-time signaling, chat and online status (presence). This is used by an increasing number of online games.
  107. [107]
    XEP-xxxx: Best practices for GDPR compliant deployment of XMPP
    May 22, 2018 · This informational XEP provides information on deploying XMPP in way that is compliant with the General Data Protection Regulation (GDPR) of the ...Missing: decentralized post- 2020s
  108. [108]
    XMPP: The secure communication protocol that respects privacy
    Jan 10, 2022 · Thanks to its extensibility and the PubSub XMPP standard (see https://xmpp.org/extensions/xep-0060.html) you can easily build social-network ...Missing: GDPR 2020s
  109. [109]
  110. [110]
    XEP-0384: OMEMO Encryption - XMPP
    Apr 7, 2025 · This XEP defines a protocol that leverages the Double Ratchet encryption scheme to provide multi-end to multi-end encryption, allowing messages to be ...
  111. [111]
    Jabber/XMPP DoS and more - Wouter Coekaerts
    Jun 14, 2011 · The Billion laughs attack is a type of denial-of-service vulnerability in XML parsers, known since at least 2002. There have already been ...
  112. [112]
    XEP-0205: Best Practices to Discourage Denial of Service Attacks
    Mar 4, 2021 · This document specifies a set of best practices that server implementations and deployments can follow in order to reduce the likelihood of denial of service ...Missing: advisories modern ciphers
  113. [113]
    RFC 7712 - Domain Name Associations (DNA) in the Extensible ...
    Nov 19, 2015 · This document improves the security of the Extensible Messaging and Presence Protocol (XMPP) in two ways. First, it specifies how to establish a strong ...
  114. [114]
    CVE-2020-15325 Detail - NVD
    Description. Zyxel CloudCNM SecuManager 3.1.0 and 3.1.1 has a hardcoded Erlang cookie for ejabberd replication. Metrics. CVSS ...
  115. [115]
    Uncontrolled Resource Consumption with Highly Compressed ...
    This vulnerability can be remotely exploited by attackers to mount Denial-of-Service attacks by sending highly-compressed XML elements over XMPP streams.<|separator|>
  116. [116]
    RFC 7590 - Use of Transport Layer Security (TLS) in the Extensible ...
    Oct 14, 2015 · This document provides recommendations for the use of Transport Layer Security (TLS) in the Extensible Messaging and Presence Protocol (XMPP).Missing: advisories | Show results with:advisories
  117. [117]
    (PDF) Spying on Instant Messaging Servers: Potential Privacy Leaks ...
    Aug 9, 2025 · In this context, we show that accessing metadata on a messaging server can leak information that could be concealed by ORAM systems. More ...
  118. [118]
    Calyx Public Jabber/XMPP Server
    Tor Hidden Service - So that users can access the server more anonymously, it is also available as a Tor hidden service at the address: ijeeynrc6x2uy5ob. onion ...
  119. [119]
    XEP-0016: Privacy Lists - XMPP
    May 20, 2017 · Server-side privacy lists enable a user to block all stanzas from and to other entities based on the entity's JID, roster group, or subscription ...
  120. [120]
    Data Minimization – EPIC – Electronic Privacy Information Center
    Data minimization means only collecting, using, and transferring personal data that is reasonably necessary and proportionate to provide a requested service.<|separator|>
  121. [121]
    XEP-0383: Burner JIDs - XMPP
    Jul 10, 2021 · As a server operator I want to allow users to act anonymously, but also want a way to rate limit the creation of ephemeral identities ...Missing: Conversations | Show results with:Conversations