pax_global_header00006660000000000000000000000064147673215460014531gustar00rootroot0000000000000052 comment=2a99f5d14771bf79ffe90814cc17b74e934b9b31 qxmpp-v1.10.3/000077500000000000000000000000001476732154600131465ustar00rootroot00000000000000qxmpp-v1.10.3/.appveyor.yml000066400000000000000000000006541476732154600156210ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2018 Jeremy Lainé # # SPDX-License-Identifier: CC0-1.0 platform: x64 environment: matrix: - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 GENERATOR: Visual Studio 15 2017 Win64 QTDIR: C:\Qt\5.11\msvc2017_64 build: parallel: true build_script: - mkdir build - cd build - cmake -G "%GENERATOR%" .. "-DCMAKE_PREFIX_PATH=%QTDIR%" - cmake --build . qxmpp-v1.10.3/.clang-format000066400000000000000000000016701476732154600155250ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2019 Georg Rudoy <0xd34df00d@gmail.com> # # SPDX-License-Identifier: CC0-1.0 AlignAfterOpenBracket: Align AlignTrailingComments: true BasedOnStyle: WebKit BraceWrapping: AfterClass: true AfterFunction: true AfterStruct: false SplitEmptyRecord: false BreakAfterAttributes: Always BreakBeforeBinaryOperators: None BreakBeforeBraces: Custom BreakBeforeTernaryOperators: true BreakConstructorInitializers: BeforeColon BreakStringLiterals: true DisableFormat: false FixNamespaceComments: true IncludeBlocks: Regroup IncludeCategories: - Regex: "^.QXmpp.*" Priority: 1 - Regex: "^\".*\"$" Priority: 2 - Regex: "^ tests/` qxmpp-v1.10.3/.github/pull_request_template.md.license000066400000000000000000000001321476732154600230640ustar00rootroot00000000000000SPDX-FileCopyrightText: 2021 Linus Jahn SPDX-License-Identifier: CC0-1.0 qxmpp-v1.10.3/.github/workflows/000077500000000000000000000000001476732154600165435ustar00rootroot00000000000000qxmpp-v1.10.3/.github/workflows/push-docs.yml000066400000000000000000000014431476732154600211750ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Linus Jahn # # SPDX-License-Identifier: CC0-1.0 --- name: push-docs on: push: branches: - master jobs: push-doc: runs-on: ubuntu-latest container: image: debian:stable env: PUSH_KEY_REPO_DOC_QXMPP_ORG: ${{ secrets.PUSH_KEY_REPO_DOC_QXMPP_ORG }} CONFIG: full steps: - name: Install sudo run: apt update && apt install -qq -y sudo curl - uses: actions/checkout@v3 - name: Install Qt uses: jurplel/install-qt-action@v3 - name: Install extra packages run: tests/travis/install-build-depends-debian - name: Update XEP metadata run: doc/doap-rendering/update-xeplist.sh - name: Build documentation run: tests/travis/push-documentation qxmpp-v1.10.3/.github/workflows/tests.yml000066400000000000000000000115451476732154600204360ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Jeremy Lainé # # SPDX-License-Identifier: CC0-1.0 name: tests on: [push, pull_request] jobs: linux: runs-on: ubuntu-latest env: CONFIG: ${{ matrix.config }} QT_VERSION: ${{ matrix.qt_version }} strategy: fail-fast: false matrix: config: [minimal, full, full-debug] qt_version: ['6.9.0'] include: - config: minimal qt_version: 5.15.* - config: full-debug qt_version: 5.15.* - config: full-debug qt_version: 6.1.3 steps: - uses: actions/checkout@v2 - name: Install Qt uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} modules: ${{ (startsWith(matrix.qt_version, '6.') && 'qt5compat') || '' }} setup-python: true - name: Install extra packages run: tests/travis/install-build-depends-debian - name: Run tests run: tests/travis/build-and-test - uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} macos: runs-on: macos-13 env: CONFIG: ${{ matrix.config }} QT_VERSION: ${{ matrix.qt_version }} strategy: fail-fast: false matrix: config: [minimal, full, full-debug] qt_version: ['6.8.*'] include: - config: full-debug qt_version: 5.15.* steps: - uses: actions/checkout@v2 - name: Install Qt uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} modules: ${{ matrix.qt_version[0] == '6' && 'qt5compat' || '' }} - name: Install extra packages run: tests/travis/install-build-depends-macos - name: Disable OS X firewall run: | sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off - name: Run tests run: tests/travis/build-and-test - uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} windows: runs-on: windows-latest env: QT_VERSION: ${{ matrix.qt_version }} BUILD_WITH_QT6: ${{ (startsWith(matrix.qt_version, '6.') && 'ON') || 'OFF' }} strategy: fail-fast: false matrix: qt_version: ['5.15.*', '6.8.*'] steps: - uses: actions/checkout@v3 - name: Install Qt uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} modules: ${{ (startsWith(matrix.qt_version, '6.') && 'qt5compat') || '' }} - name: Install deps run: | choco install pkgconfiglite - name: Build QCA shell: bash run: | mkdir D:/a/usr git clone https://invent.kde.org/libraries/qca cd qca cmake . -DCMAKE_INSTALL_PREFIX="D:/a/usr" -DBUILD_TESTS=OFF -DBUILD_TOOLS=OFF -DBUILD_WITH_QT6=${BUILD_WITH_QT6} cmake --build . --config Release --parallel cmake --install . --config Release cd .. - name: Build libomemo-c run: | git clone https://github.com/dino/libomemo-c cd libomemo-c git checkout v0.5.0 cmake . -DCMAKE_INSTALL_PREFIX="D:/a/usr" cmake --build . --config Release --parallel cmake --install . --config Release cd .. - name: Run tests run: | ${env:PATH} += ";D:/a/usr/bin" ${env:PATH} += ";D:/a/qxmpp/qxmpp/src/Debug" ${env:PKG_CONFIG_PATH} += ";D:/a/usr/lib/pkgconfig" cmake . -DBUILD_OMEMO=ON && cmake --build . --parallel # ctest # ctest --rerun-failed --output-on-failure doxygen: runs-on: ubuntu-latest container: image: debian:stable steps: - name: Install dependencies run: apt update && apt install -qq -y sudo git clang cmake qt6-base-dev doxygen graphviz - uses: actions/checkout@v3 - name: Build doxygen documentation run: tests/travis/build-documentation xmllint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: sudo apt update && sudo apt install -y libxml2-utils - run: xmllint --noout $(find . -type f -name *.xml) reuse: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: REUSE Compliance Check uses: fsfe/reuse-action@v1 cpp-linter: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: cpp-linter/cpp-linter-action@v2 id: linter env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: style: file version: 15 files-changed-only: false step-summary: true thread-comments: false - name: C++ Linter if: steps.linter.outputs.checks-failed > 0 run: echo "Some files failed the linting checks!" qxmpp-v1.10.3/.gitignore000066400000000000000000000002601476732154600151340ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2010 Boris Pek # # SPDX-License-Identifier: CC0-1.0 CMakeLists.txt.* .DS_Store /build* .kdev4/ *.kdev4 support-chat-avatar.png qxmpp-v1.10.3/AUTHORS000066400000000000000000000012101476732154600142100ustar00rootroot00000000000000SPDX-FileCopyrightText: 2010 Jeremy Lainé SPDX-License-Identifier: CC0-1.0 QXMPP AUTHORS ------------- Manjeet Dahiya * Initial author of QXmpp. Jeremy Lainé * Co-author of QXmpp. Linus Jahn * Current lead developer of QXmpp. Ian Reinhart Geiser * Initial author of Jabber-RPC support. Georg Rudoy <0xd34df00d@gmail.com> * Author of receipts manager, extended stanza addressing. Niels Ole Salscheider * Build system, cleanups. Oliver Goffart * Author of QXmppResultSet. qxmpp-v1.10.3/CHANGELOG.md000066400000000000000000001044161476732154600147650ustar00rootroot00000000000000 QXmpp 1.10.3 (March 21, 2025) ----------------------------- - OmemoManager: Clear complete in-memory cache on local own device reset (@melvo, !692) QXmpp 1.10.2 (March 19, 2025) ----------------------------- - RosterManager: Do not auto-accept Moved subscription requests to comply with XEP (@melvo, #691) QXmpp 1.10.1 (February 25, 2025) -------------------------------- - ColorGeneration: Fix MSVC linkage of header-only generateColor() (@lnjX, #686) - Fix comparison for checking validity of fallback markers sections (@lnjX, #678) - Stun: Include QSet to fix incomplete type with some Qt versions (@melvo, #681) QXmpp 1.10.0 (February 22, 2025) -------------------------------- - Implement XEP-0392: Consistent Color Generation (@lnjX, #672) QXmpp 1.9.4 (February 2, 2025) ------------------------------ - MixManager: Account export: Fix not finishing task when nothing to export (@pasnox, #677) QXmpp 1.9.3 (January 23, 2025) ------------------------------ - OutgoingClient: Fix ssl connection/setting invalid ssl config (@pasnox, #675) - FileEncryption: Fix wrong Cipher::ok() assert (@pasnox, #676) - OmemoManager: Fix removing old signed pre key pairs (@melvo, #674) - OmemoManager: Do not try to renew signed pre key pairs while loading (@melvo, #674) QXmpp 1.9.2 (December 07, 2024) ------------------------------- - Fix build of unit tests with MSVC (@lnjX) QXmpp 1.9.1 (November 27, 2024) ------------------------------- - MixManager: Fix update node subscriptions adds *and* removes all nodes with default parameters (@melvo, #670) QXmpp 1.9.0 (November 17, 2024) ------------------------------- - Implement XEP-0461: Message Replies parsing (@lnjX, #645) - Prevent unencrypted fallback markers are applied to encrypted body (@lnjX, #647) - Implement XEP-0283: Moved (@pasnox, #621) - AccountMigration: Implement restoring of joined MIX channels (@pasnox, #657) QXmpp 1.8.3 (October 29, 2024) ------------------------------ - MamManager: Fix some unencrypted are not parsed when end-to-end-encryption is enabled (@lnjX, #662) QXmpp 1.8.2 (October 21, 2024) ------------------------------ - StreamError: Fix parsing of stream error conditions and missing "invalid-id" condition (@lnjX) - Omemo: Fix windows/msvc build (@lnjX, #658) QXmpp 1.8.1 (August 21, 2024) ----------------------------- - Fix other DNS records are not tried if host does not exist (@lnjX) - Fix clang build (@lnjX) QXmpp 1.8.0 (July 30, 2024) --------------------------- - QXmpp now requires C++20 - Fix connection to next SRV record if connection to first address fails (@lnjX, #644) - Implement XMPP over TLS ("direct TLS" instead of STARTTLS, XEP-0368) (@lnjX, #642) - Support of protocol/server name multiplexing, ALPN and SNI extensions - New Bind 2 support (XEP-0386) (@lnjX, #614) - Client and server support of resource binding through SASL2 + Bind2 - Resource prefix can be configured in QXmppConfiguration - Setting of Client State Indication (CSI) initial state on connection - Enabling of Stream Management (through Bind 2) and stream resumption (through SASL 2) - Enabling of Message Carbons (through Bind 2) - Support FAST, token-based authentication (XEP-0484) (@lnjX, #630) - Offers single round trip authentication (but doesn't replace strong authentication methods like SCRAM+password) - FAST tokens (and other credentials) can be stored permanently via QXmppCredentials - Tokens are generated if a SASL 2 user agent is set and FAST is not disabled in the config - New QXmppUri for parsing XMPP URIs (XEP-0147) (@lnjX, #641) - New AccountMigrationManager for importing and exporting account data (@lnjX, @pasnox, #623) - Message: Parse all stanza IDs (XEP-0359) (@lnjX, #638) - CSI state is automatically restored across reconnects, also without Bind 2 or stream management (@lnjX, #622) - Use smaller stream management acks instead of ping IQs if possible (@lnjX, #625) - Moved STARTTLS handling into the core client again (was in client extension) (@lnjX, #627) - VCardManager: New task-based API (@lnjX, #623) QXmpp 1.7.1 (July 07, 2024) --------------------------- - OMEMO: Fix messages are dropped if decryption fails (@melvo, #634) - Fix build issue with MSVC: missing export of utility functions (@lnjX) QXmpp 1.7.0 (May 19, 2024) -------------------------- - Complete support of MIX groupchats and add new QXmppMixManager (@melvo, #589) - Support of new SASL 2 authentication from XEP-0388: Extensible SASL Profile (@lnjX, #607) - Update support of XEP-0428: Fallback Indication to v0.2 (@lnjX, #608) - Update support of XEP-0447: Stateless file sharing to v0.3.1 (@lnjX, #613) - ClientExtension: New onRegistered() and onUnregistered() virtual functions, called when the extension is added to or removed from a client. (@lnjX, #599) - Client: New error handling: New errorOccurred() signal with QXmppError based API (@lnjX) - New StreamError, AuthenticationError and BindError offering more details about connection errors (@lnjX) - The 'from' attribute of the <stream:stream> open is set if a JID is configured (@lnjX) - Security improvements in the internals of QXmppClient by terminating the connection when unexpected packets are received (@lnjX) **Breaking** changes: - Drop support for RFC3920 servers requiring a <session/> IQ to be sent. (@lnjX) Feel free to open an issue if this is a problem to you. - PLAIN authentication is disabled by default, but can be enabled in QXmppConfiguration again. (@lnjX, #607) QXmpp 1.6.1 (May 16, 2024) -------------------------- Fixes: - Fix handling of XMPP redirects (introduced in aaa6497) (@lnjX) - Fix compilation with Qt 6 + C++17 (not C++20) in OmemoData (@lnjX) - Fix OMEMO decryption of group chat messages (@melvo, #617) - Fix stream resumption (@lnjX)
This has been an issue since the initial implementation of stream mangement. The xmlns was missing in the <resume/> element and the stream ID was not parsed in the <enabled/> element. QXmpp 1.6.0 (Feb 6, 2024) ------------------------- QXmpp requires Qt 5.15 or 6.0+ now, the previous release was still compatible with Qt 5.9. New features: - First QXmpp logo (#528, @raghu-kamath) - Implement XEP-0215: External Service Discovery (#542, @taiBsu) - Implement XEP-0353: Jingle Message Initiation (#570, @taiBsu) - Implement XEP-0482: Call Invites (#575, @taiBsu) - Implement XEP-0191: Blocking Command (#577, @lnjX) - Client: New constructor for creating without any extensions (@lnjX) QXmpp 1.5.6 (Feb 4, 2024) ------------------------- Changes: - Behaviour change: sendIq() automatically parses stanza errors (returned as QXmppError) (@lnjX) - CMake: "QXmpp" legacy cmake package is now only installed for Qt 5 builds (@lnjX) - Fix unit test with Qt 6! (@lnjX) - EncryptedFileSharingProvider: Fix wrong cipher set in sent file share element (@lnjX) - Fix SCE parsing mode when parsing encrypted messages (@lnjX) - Fix file encryption with QCA issues (@lnjX) - Fix picking by strength of hashing algorithms (@lnjX) - Fix github ci (@lnjX) - Add unit tests for all file encryption ciphers (@lnjX) QXmpp 1.5.5 (Apr 30, 2023) -------------------------- Fixes: - Fix dependencies in generated pkg-config files (@krop) - Fix compilation with android/clang (@lnjX) QXmpp 1.5.4 (Apr 07, 2023) -------------------------- Fixes: - OMEMO fixes (@melvo) - Fix use-after-move in EntityTimeManager (@lnjX) - EME: Always send encryption name text (@melvo) - Fix interpretation of empty to/from address in the client (@lnjX) - MSVC related build fixes (@JBBgameich) Misc: - Support installing QXmpp with Qt 5 and Qt 6 in parallel (@lnjX) - Support building QXmppOmemo statically (@lnjX) QXmpp 1.5.3 (Mar 11, 2023) -------------------------- Fixes: - MAM: Fix task is never finished when none of the messages is encrypted but e2ee is enabled (@lnjX) - SaslDigestMd5: Fix undefined behaviour with Qt 6 when parsing empty property at the end of the input (@lnjX) - CarbonManagerV2: Fix enable IQ sending (@melvo) - Fix various OMEMO issues and update to libomemo-c 0.5 (@melvo) - Fix compilation (inclunding omemo module) with MSVC 2019 (@JBBgameich) - Fix library files installation directory on windows (@lnjX) Misc: - Add CMake option to manually specify Qt major version (@TheBluestBird) - Readd old PubSubIq and PubSubItem after justified complaints (@lnjX) QXmpp 1.5.2 (Feb 23, 2023) -------------------------- Fixes: - Fix undefined behaviour in OmemoManager and FileSharingManager (@lnjX) - STUN: Fix nonce attribute is not padded (@Choochmeque) QXmpp 1.5.1 (Feb 01, 2023) -------------------------- Fixes: - Fix build with clang (usage of auto in template argument) (@lnjX) QXmpp 1.5.0 (Jan 31, 2023) -------------------------- New features: - New asynchronous APIs: - New QXmppTask/Promise for asynchronous APIs (@lnjX, @JBBgameich) - Packet sending result reporting (sent, stream management acks) (@lnjX) - IQ response recognition and mapping to requests via QXmppTask (@lnjX) - Add QXmppTask-based APIs to most of the managers (@lnjX) - PubSub: - Implement XEP-0060: Publish-Subscribe (nearly complete) (@lnjX) - Implement XEP-0118: User Tune (@lnjX) - Implement XEP-0080: User Location (@lnjX, @c-cesar) - Rewrite MIX items with new PubSubItem (@lnjX) - Add specified data forms parsing utilities (@lnjX) - Encryption: - Implement XEP-0384: OMEMO Encryption (@melvo) - Implement XEP-0434: Trust Messages (TM) (@melvo) - Implement XEP-0450: Automatic Trust Management (ATM) (@melvo) - Implement XEP-0420: Stanza Content Encryption (@lnjX) - Add new Message Carbons manager capable of end-to-end-encryption (@lnjX) - Adapt QXmppClient to support end-to-end-encryptions (@lnjX) - File sharing: - Implement XEP-0446: File metadata element (@JBBgameich) - Implement XEP-0300: Use of Cryptographic Hash Functions in XMPP (@lnjX) - Implement XEP-0264: Jingle Content Thumbnails (@lnjX) - Implement XEP-0447: Stateless file sharing (@lnjX, @JBBgameich) - Implement XEP-0448: Encryption for stateless file sharing (@lnjX, @JBBgameich) - Add new HTTP File Upload Manager for slot requesting and uploading (@lnjX, @JBBgameich) - Implement stanza parsing for modern audio-video calls (@melvo) - Implement XEP-0444: Message Reactions (@melvo) - Add QXmppNonza as base for stanzas and nonzas (@lnjX) - RosterManager: Add subscription request signal with full presence (#346, @melvo) Breaking changes: - Removed old unused MIX items - Removed old unfinished PubSubIq QXmpp 1.4.0 (Mar 15, 2021) -------------------------- QXmpp now requires a C++17 compliant compiler. Qt 6 support has been added. The new compliance suites for 2021 are fulfilled without any changes being required. New features: - Qt 6 port, including many undeprecations and some refactoring (@lnjX) - Add XEP-0224: Attention manager (@lnjX) - Implement MIX-MISC XEP-0407: Invitation message extension (#329, @melvo) - New SCRAM-SHA3-512 and SCRAM-SHA-512 SASL algorithms (#320, @lnjX) - Client: Advertise stream management state (#309, @lnjX) - RosterManager: Cache roster if stream can be resumed (#309, @lnjX) - RosterManager: Enable MIX annotation for roster items (#331, @melvo) Fixes: - Bind IQ errors are now handled properly (@Bonnie080) - Fix cached stream management packets are resent with the wrong account (#335, @lnjX) QXmpp 1.3.2 (Jan 09, 2021) -------------------------- This release only contains some little bug-fixes. Fixes: - TransferManager: Fix undefined behaviour when parsing features (#322, @lichtzeichner) - OutgoingServer: Add missing 'to' and 'from' stream attributes (#324, @Kaffeine) QXmpp 1.3.1 (Jul 20, 2020) -------------------------- The most important change of this release is the fix of CVE-2017-5603. QXmpp is not vulnerable to roster push attacks (CVE-2016-9928). Fixes: - QXmppRosterIq: Set subscriptionType to NotSet correctly (#293, @melvo) - Fix `QXMPP_EXPORT` define when linking statically (#299, @leobasilio) - QXmppMessageReceiptManager: Ignore all error messages (#300, @lnjX) - QXmppCarbonManager: Fix CVE-2017-5603 (missing sender check) (#304, @lnjX) QXmpp 1.3.0 (Apr 06, 2020) -------------------------- QXmpp complys with the XMPP Compliance Suites 2020 (XEP-0423) for client development in the Core, IM and Advanced Mobile suites now. For this prupose it has been updated to RFC6120 and RFC6121. ABI compatibility was kept with this release (apart from classes marked as 'NOT FINALIZED'). New features: - Port QXmppCallManager to GStreamer (#207, @olesalscheider) - Add XEP-0245: The /me Command (#276, @lnjX) - Add XEP-0357: Push Notifications: Enable/disable IQ (#271, @jbbgameich, @zatroxde) - Add XEP-0359: Unique and Stable Stanza IDs (#256, @lnjX) - Add XEP-0428: Fallback Indication (#253, @lnjX) - Update from RFC3920 to RFC6120: * Deprecate PaymentRequired stanza error condition as it was not adopted in RFC6120 (#277, @lnjX) * Add PolicyViolation stanza error condition added in RFC6120 (#279, @lnjX) * Add redirection URI from RFC6120 for Gone and Redirect conditions (#280, @lnjX) * Add 'by' attribute to QXmppStanza::Error from RFC6120 (#283, @lnjX) - Update from RFC3921 to RFC6121: * Add pre-approved presence subscriptions (#285, @lnjX): - Add 'approved' attribute to QXmppRosterIq - Add stream feature for pre-approved presence subscriptions * Add stream feature for roster versioning (#286, @lnjX) - Use QUuid by default to generate unique stanza IDs (#255, @lnjX) - Add roster extension for MIX-PAM (XEP-0405) (#175, @lnjX) - Update MAM to v0.6 (including namespace bump to `urn:xmpp:mam:2`) (#254, #257, @lnjX) - Add not-authorized stream error condition in QXmppOutgoingClient (#191, @henry61024) - Add missing static service discovery features for supported message extensions (#287, @lnjX) - Add utility constructor to QXmppDataForm and QXmppDataForm::Field to make creation of forms easier (#273, @lnjX) Misc: - Make QXmpp work with projects using `QT_NO_KEYWORDS` (#258, @tomcucinotta) - Add hyperlinks to XEP references in the documentation (@lnjX) - Move from Travis-CI to GitHub Actions (#265, @jlaine) - Replace deprecated `qsrand()` and `qrand()` by QRandomGenerator (#267, @melvo) - Add tests for QXmppStanza::Error parsing (#279, @lnjX) Deprecations: - `QXmppStanza::Error::Condition::PaymentRequired`: The error condition was unused and not adopted in RFC6120 QXmpp 1.2.1 (Apr 01, 2020) -------------------------- This release contains some bug fixes that have been found in the last two months. Also, the coverage has slightly improved due to new unit tests for the bug fixes. Fixes: - QXmppRegistrationManager: Fix failed and succeeded signals are both emitted on success (#260, @melvo) - QXmppMessageReceiptManager: Fix receipts are sent on error messages (#269, @TheBluestBird) - QXmppVCardManager: Fix clientVCardReceived() not emitted when IQ is from the bare JID of the user (#281, @melvo, @lnjX) - QXmppRosterManager: Fix 'ask' attribute is included when renaming item (#262, @melvo, @lnjX) - QXmppRosterIq: Add missing implementation of the copy constructor (@lnjX) QXmpp 1.2.0 (Feb 06, 2020) -------------------------- QXmpp now requires Qt 5.7 or later. Unfortunately ABI compatibility was not kept this release again. Code coverage has been improved from 68.93% to 69.55%. New features: - Implement XEP-0077: In-band registration: - Add registration manager with full unit tests (#248, @lnjX) - Add `registered` and `remove` to the IQ (#240, @lnjX) - Implement XEP-0231: Bits of Binary (#230, @lnjX) - Add `QXmppClient::indexOfExtension()` (#241, @lnjX) - Add QXmppStartTlsPacket to replace fixed XML data (#236, @lnjX) - Move TLS code to private QXmppTlsManager (#236, @lnjX) - Add private QXmppInternalClientExtensions to access private part of the client (#243, @lnjX) - Add utility methods to QXmppRegisterIq to create common requests (#247, @lnjX) Fixes: - QXmppMucManager: Make it possible to handle stanzas not handled by the manager (#226, @kollix) - Only send Client State Indication (CSI) states when connected (#232, @lnjX) - Fix no documentation is generated for QXmppStanza::Error and QXmppStreamFeatures (@lnjX) - Fix some doxygen warnings and undocumented Q_PROPERTYs (@lnjX) Misc: - Replace deprecated Q_FOREACH (#210, @lnjX) - Replace deprecated Q_ENUMS with Q_ENUM (#227, @lnjX) - Replace deprecated signal/slots syntax (#237, @jbbgameich) - Switch to Ubuntu Bionic for Travis-CI builds (#210, @lnjX) - Use QSharedDataPointers for QXmppRegisterIq, QXmppPubSubIq, QXmppDiscoveryIq, QXmppMam{Query,Result}Iq, QXmppStreamFeatures (#230, #235, #252, @lnjX) - Refactor QXmppPubSubIq and add missing tests (#235, @lnjX) - Refactor QXmppPresence and add missing tests (#231, @lnjX) - Replace manual xmlns writing by writeDefaultNamespace() (#244, @lnjX) - Use QT_VERSION_CHECK to generate QXMPP_VERSION (#238, @lnjX) - Add clang-format file (#239, @0xd34df00d) QXmpp 1.1.0 (Oct 23, 2019) -------------------------- All new classes and methods in this release are marked in the documentation with *since QXmpp 1.1*. New features: - Add support for SCRAM-SHA-1 and SCRAM-SHA-256 (#183, @jlaine) - Order SASL mechanisms to prefer the most secure (#187, @jlaine) - Add XEP-0334: Message Processing Hints (v0.3.0) (#212, @lnjX, @jaragont, @sam-truscott) - Add XEP-0363: HTTP File Upload (v0.9.0) (#188, @lnjX) - Add XEP-0367: Message Attaching (v0.3.0) (#196, @lnjX) - Add XEP-0369: Mediated Information eXchange (MIX) (v0.14.2) (partially): * Add QXmppMixIq to manage/join channels (#174, @lnjX) * Add QXmppMessage and QXmppPresence extensions for MIX (#175, @lnjX) * Add channel info and participant PubSub/PEP items (#179, @lnjX) - Add XEP-0380: Explicit Message Encryption (v0.3.0) (#199, @lnjX) - Add XEP-0382: Spoiler messages (v0.2.0) (#195, @lnjX) Fixes: - Do not accept receipts from other resources of the used account (#192, lnjX) - cmake: Set minimum version before creating project() and bump to 3.3 (#205, @jbbgameich) Deprecations: - Deprecate QXmppClient extension getters (#214, @lnjX): * `QXmppClient::rosterManager()`: Use `QXmppClient::findExtension()` instead * `QXmppClient::vCardManager()`: Use `QXmppClient::findExtension()` instead * `QXmppClient::versionManager()`: Use `QXmppClient::findExtension()` instead - Refactor data form media element, deprecate `QXmppDataForm::Media` (#222, @lnjX): * `QXmppDataForm::Media`: Use a list of the new `QXmppDataForm::MediaSource` in combination with a `QSize` * `QXmppDataForm::Field::media()` / `QXmppDataForm::Field::setMedia()`: Use `QXmppDataForm::Field::mediaSources()` and `QXmppDataForm::Field::mediaSize()` Misc: - Replace deprecated `qSort()` by `std::sort()` (#206, @jbbgameich) - Do not use deprecated `QSslSocket::setCaCertificates()` (#206, @jbbgameich) - Modernize code by using `nullptr`, `override`, etc. (#204, @jbbgameich) - Move attributes into private d-pointer for future ABI compatibility: * QXmppRosterIq (#175, @lnjX) * QXmppStanza::Error (#203, @lnjX) - Use raw literals, range based loops and `auto` (#224, @jbbgameich) QXmpp 1.0.1 (Oct 14, 2019) -------------------------- - Fix potential SEGFAULT on connection error (#216, @0xd34df00d) - Fix `SO_VERSION` to 1: ABI has changed since last minor release (#185, @tehnick) - Add CMake option for internal tests (`BUILD_INTERNAL_TESTS`) (#184, @jlaine) QXmpp 1.0.0 (Jan 8, 2019) ------------------------- New features: - Add XEP-0066: Out of Band Data (partially) (#167, @lnjX) - Add XEP-0198: Stream Management (#99, @olesalscheider) - Add XEP-0237: Roster Versioning (#142, @LightZam) - Add XEP-0280: Message Carbons (#88, @fbeutel) - Add XEP-0308: Last Message Correction (#170, @lnjX) - Add XEP-0313: Message Archive Management (#120, @olesalscheider) - Add XEP-0319: Last User Interaction in Presence (#171, @lnjX) - Add XEP-0352: Client State Indication (#159, @fbeutel, @lnjX) - Auto-connect to next DNS-SRV record server on connection failure (#105, @kollix) - QXmppVersionManager: Use QSysInfo to determine default OS (#168, @lnjX) - QXmppDiscoveryManager: Default to `phone` type on mobile platforms (#168, @lnjX) - CMake based build system (#131, @olesalscheider) - Add BUILD_SHARED option (#160, @LightZam) - Use C++11 compiler standard (@jlaine) Fixes: - Do not ignore SSL errors by default (#113), if you need to deal with broken SSL configurations, set QXmppConfiguration::ignoreSslErrors to true. (@jlaine) - Disable tests that require QXMPP_AUTOTEST_EXPORT (fixes #149) (@jlaine) - Fix QXmppSslServer::incomingConnection signature (#131, @olesalscheider) - Add missed variables initialization in constructors of few classes (#122, @tehnick) Tests: - travis: Test builds with clang (@0xd34df00d) - travis: Switch to Ubuntu Xenial (#151, @tehnick) - tests: Generate coverage repot (@jlaine) - Build examples by default Deprecations: - Drop Qt4 support (#131, @olesalscheider) - Remove example_4 / GuiClient (#131, @olesalscheider) QXmpp 0.9.3 (Dec 3, 2015) ------------------------- - Add QXmppIceConnection::gatheringState property. - Improve QXmppTransferManager::sendFile's handling of QIODevice ownership. - Fix QXmppTransferManagerFix convering filename to a QUrl. QXmpp 0.9.2 (Sep 2, 2015) ------------------------- - Fix build error for debug builds. - Allow QXmppJingleIq to have multiple contents. QXmpp 0.9.1 (Aug 30, 2015) -------------------------- - Fix build error when VPX support is enabled (issue 71). QXmpp 0.9.0 (Aug 28, 2015) -------------------------- - Fix phone numbers incorrectly read from / written to vCard as "PHONE" element instead of "TEL" (issue 65). - Make QXmppClient::connectToServer(QXmppConfiguration, QXmppPresence) a slot (issue 63). - Correctly receive data immediately following a SOCKS5 message (issue 64). - Make QXmppStream handle end of incoming stream (issue 70). - Add unit tests for QXmppCallManager and QXmppTransferManager. - Improve ICE implementation to follow RFC 5245 more closely and hide implementation details from public API. QXmpp 0.8.3 (Mar 13, 2015) -------------------------- - Add a QXmppClient::sslErrors signal to report SSL errors. - Handle broken servers which send "bad-auth" instead of "not-authorized". - Fix a compilation issue with Qt 5.5 due to a missing header include. - Do not install test cases. - Remove trailing comma after last item in enums. QXmpp 0.8.2 (Jan 7, 2015) ------------------------- - The previous release was missing an update to the VERSION definition, resulting in stale pkg-config files. This release fixes this issue. - Refactor HTML documentation so that "make docs" works in out-of-source builds. - Add support for Opus audio codec. - Enable error concealment for VPX video codec. QXmpp 0.8.1 (Dec 19, 2014) -------------------------- - Use QString() instead of "" for default methods arguments, to enable building project which use QT_NO_CAST_FROM_ASCII. - Add support for legacy SSL. - Add XEP-0333: Chat Markers attributes to QXmppMessage. - Add QXmppClient::socketErrorString to retrieve socket error string. - Add equality/inequality operators for QXmppVCardIq. - Add "make check" command to run tests. QXmpp 0.8.0 (Mar 26, 2014) -------------------------- - Fix QXmppServer incoming connections with Qt5 (issue 175). - Support for QXmppMessage extensions having tag names other than 'x'. - Support for retrieving the source QDomElement that has been used to initialize a QXmppElement. - Add organizations info interface to QXmppVCardIq. - Remove deprecated QXmppPresence::Status type. QXmpp 0.7.6 (Mar 9, 2013) ------------------------- - Add QXmppClient::insertExtension to insert an extension at a given index. - Disable Facebook / Google / Facebook specific mechanisms if we do not have the corresponding credentials. QXmpp 0.7.5 (Jan 11, 2013) -------------------------- - Replace toAscii/fromAscii with toLatin1/fromLatin1 for Qt 5 compatibility. - Fix build using clang in pedantic mode. QXmpp 0.7.4 (Oct 1, 2012) ------------------------- - Add XEP-0249: Direct MUC Invitations attributes to QXmppMessage. - Add XEP-0045: Multi-User Chat attributes to QXmppPresence. - Improve GuiClient, stop using deprecated APIs. - Improve QXmppServer: * Move statistics to a counter / gauge system. * Make it possible to call listenForClients and listenForServers multiple times to supported multiple IP address / ports. - Improve QXmppTransferManager: * Change third argument of QXmppTransferManager::sendFile to a description. * Enable file transfer using IPv6. * Allow StreamHost::host to contain a host name. QXmpp 0.7.3 (Sep 7, 2012) ------------------------- - Fix QXmppMucRoom::name(), only consider discovery IQs from the room. QXmpp 0.7.2 (Sep 6, 2012) ------------------------- - Handle Error replies in QXmppDiscoveryManager so that library users can know about errors. - If building with Qt 5, use Qt's QDnsLookup instead of our backport. - Improve MUC scriptability: * Add QXmppMucRoom::ban() to ban users. * Add QXmppMucRoom::name() to get the room's human-readable name. * Add QXmppMucRoom::participantFullJid() to lookup an occupant full JID. - With Qt >= 4.8, verify peer SSL certificate against domain name as specified by RFC 3920. - Add support for X-OAUTH2 authentication for Google Talk. - Add links to RFCs in generated HTML documentation. QXmpp 0.7.1 (Sep 3, 2012) ------------------------- - Fix export of QXmppVCardPhone class. QXmpp 0.7.0 (Sep 3, 2012) ------------------------- - New XEPs: * XEP-0033: Extended Stanza Addressing - Remove deprecated APIs: * QXmppRosterManager::rosterChanged() * QXmppConfiguration::sASLAuthMechanism() - Improve vCard support: * Add support for free-form descriptive text. * Make it possible to have several addresses. * Make it possible to have several e-mail addresses. * Make it possible to have several phone numbers. - Make it possible to set the client's extended information form (XEP-0128). - Make sure QXmppDiscoveryManager only emits results. - Fix XEP-0115 verification strings (remove duplicate features, sort form values) - Fix issues: * Issue 144: QXmppBookmarkConference autojoin parsing - Add support for see-other-host server change. - Add support for X-MESSENGER-OAUTH2 authentication for Windows Live Messenger. - Make it possible to disable non-SASL authentication. - Add QXmppClient::isAuthenticated() to query whether authentication has been performed. QXmpp 0.6.3 (Jul 24, 2012) -------------------------- - Fix regression in X-FACEBOOK-PLATFORM authentication. QXmpp 0.6.2 (Jul 22, 2012) -------------------------- - New XEPs * XEP-0071: XHTML-IM - Improve SASL code test coverage. - Improve QXmppMessage test coverage. - Add a "reason" argument to QXmppRosterManager's subscription methods. - Refactor QXmppPresence: * add availableStatusType(), priority(), statusText() * deprecate QXmppPresence::Status - Remove deprecated QXmppRosterManager::removeRosterEntry(). QXmpp 0.6.1 (Jul 20, 2012) -------------------------- - New XEPs * XEP-0221: Data Forms Media Element - Fix data form title/instructions XML serialization. - Remove confusing QXmppPresence::Status::Offline status type. - Deprecate QXmppConfiguration::setSASLAuthMechanism(), replaced by the string-based QXmppConfiguration::setSaslAuthMechanism(). - Fix issues: * Issue 111: QXmppPresence::Status::getTypeStr() gives warning if type is invisible * Issue 126: Modularize SASL mechanisms QXmpp 0.5.0 (Jul 18, 2012) -------------------------- - New XEPs * XEP-0059: Result Set Management - Build a shared library by default. - Advertise support for XEP-0249: Direct MUC Invitations - Make QXmppTransferManager fully asynchronous. - Remove QXmppPacket class. - Move utility methods to a QXmppUtils class. - Remove QXmppReconnectionManager, QXmppClient handles reconnections. - Improve QXmppArchiveManager to allow paginated navigation (Olivier Goffart). - Only emit QXmppVersionManager::versionReceived() for results. - Remove deprecated QXmppClient::discoveryIqReceived() signal. - Fix issues: * Issue 64: Compile qxmpp as shared library by default * Issue 79: Export classes for Visual C++ Compiler * Issue 140: Proper XEP-0115 ver string generation with dataforms * Issue 142: qxmpp does not build in Qt5 QXmpp 0.4.0 (Apr 12, 2012) -------------------------- - New XEPs * XEP-0048: Bookmarks * XEP-0184: Message Delivery Receipts * XEP-0224: Attention - Remove deprecated "get*" getter accessors from: QXmppClient QXmppConfiguration QXmppMessage QXmppPresence QXmppIq QXmppStanza QXmppVCardIq QXmppRosterIq - Remove deprecated headers: * QXmppRoster.h * QXmppVCard.h - Add TURN support for VoIP calls to use a relay in double-NAT network topologies. - Overhaul Multi-User Chat support to make it easier and more fully featured. - Improve QXmppServer packet routing performance. - Add support for X-FACEBOOK-PLATFORM SASL method. - Improve XEP-0136 support to enable archive deletion. - Set default keep-alive timeout to 20 seconds, enables detection of broken connections. - Make install path configurable using the PREFIX variable instead of Qt's installation path. - Make it possible to build a shared library by invoking "qmake QXMPP_LIBRARY_TYPE=lib". - Fix issues: * Issue 95: Patch for several utility methods in RosterManager * Issue 103: Does not compile for Symbian^3 with NokiaQtSDK 1.1 Beta * Issue 105: Initial presence is set before the roster request * Issue 106: QXmppClient can't override Qt's set of trusted SSL CAs * Issue 109: Patch for XEP-0224 (Attention) * Issue 113: qxmpp.pc sets incorrect include path * Issue 116: sessionStarted not set for non-SASL connections * Issue 119: ICE negotiation time out after successful ICE check * Issue 120: QXmppIceComponent doesn't accept interfaces with 255.255.255.255 netmask as a local candidate * Issue 132: [FreeBSD]: build error * Issue 135: qxmpp won't reconnect when disconnected QXmpp 0.3.0 (Mar 05, 2011) ------------------------ - New XEPs * XEP-0153: vCard-Based Avatars * XEP-0202: Entity Time - New Classes * QXmppClientExtension: base class for QXmppClient extensions (managers) * QXmppServer: base class for building XMPP servers * QXmppServerExtension: base class for QXmppServer extensions * QXmppDiscoveryManager: manager class for XEP-0030: Service Discovery * QXmppVersionManager: manager class for XEP-0092: Software Version * QXmppIceConnection: class representing an Interactive Connectivity Establishment (ICE) over UDP "connection" * QXmppRtpChannel: class representing an RTP audio channel for VoIP calls - Refactor QXmppVCardManager to use QXmppClientExtension - New Examples * example_9_vCard: vCard handling example * GuiClient: Graphical chat client, test bench for QXmpp functionalities - Deprecation * QXmppVCard class name changed to QXmppVCardIq * Signal QXmppClient::discoveryIqReceived in favour of QXmppDiscoveryManager::infoReceived and QXmppDiscoveryManager::itemsReceived - Removal Extensions QXmppArchiveManager, QXmppMucManager, QXmppCallManager, QXmppTransferManager will not load by default. Therefore following functions to provide the reference have been removed. QXmppClient::transferManager() QXmppClient::archiveManager() QXmppClient::callManager() QXmppClient::mucManager() Note: Once should use QXmppClient::addExtension() and QXmppClient::findExtension() to load or enable these extensions. - Add support for DNS SRV lookups, meaning you can connect to nearly all servers using only a JID and a password. - Improve support for SASL authentication, with a verification of the second challenge message sent by the server. - Add support for the birthday and URL attributes in vCards. - Improve STUN support for VoIP calls by detecting server-reflexive address. - Add QXMPP_VERSION and QXmppVersion() for compile and run time version checks. - Improve code documentation coverage and quality. - Remove dependency on QtGui, making it easier to write console applications. - Fix MSVC 2005 and 2008 build issues. - Fix Symbian build issues, add DNS SRV support for Symbian devices. QXmpp 0.2.0 (Aug 22, 2010) -------------------------- - New XEPs * XEP-0030: Service Discovery * XEP-0045: Multi-User Chat * XEP-0047: In-Band Bytestreams * XEP-0054: vcard-temp * XEP-0065: SOCKS5 Bytestreams * XEP-0078: Non-SASL Authentication * XEP-0082: XMPP Date and Time Profiles * XEP-0085: Chat State Notifications * XEP-0091: Legacy Delayed Delivery * XEP-0092: Software Version * XEP-0095: Stream Initiation * XEP-0096: SI File Transfer * XEP-0115: Entity Capabilities * XEP-0128: Service Discovery Extensions * XEP-0166: Jingle * XEP-0167: Jingle RTP Sessions * XEP-0199: XMPP Ping * XEP-0203: Delayed Delivery * XEP-0009: Jabber-RPC * XEP-0004: Data Forms - New XEPs (Initial Support) * XEP-0136: Message Archiving * XEP-0176: Jingle ICE-UDP Transport Method [Experimental] - New authentication schemes * DIGEST-MD5 * SASL * NonSASL * Anonymous - Add doxygen documentation - Add targets in *.pro file for packaging, installing and generating documentation - Use QXmlStreamWriter while creating stanzas to be sent to the server - Clean up getter accessors from "getFoo" to "foo" - Add proper file transfer management - Add support for keep-alive pings - Report authentication errors - Automatic reconnection mechanism - Test suite for stanza parsing/serialisation - Refactor the logging code - Add proxy support - Fixed compile time warning messages - New examples - Support for attaching an extension element to messages and presences (QXmppElement) - Move parsing to the stanzas itself QXmppStanza::parse() - QXMPP_NO_GUI define to remove dependency on QtGui - Change QXmppRoster to QXmppRosterManager to have a consistent API QXmpp 0.1 (Jun 14, 2009) ------------------------ - First public release qxmpp-v1.10.3/CMakeLists.txt000066400000000000000000000103631476732154600157110ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2017 Niels Ole Salscheider # # SPDX-License-Identifier: CC0-1.0 cmake_minimum_required(VERSION 3.7) project(qxmpp VERSION 1.10.3) set(SO_VERSION 5) # C++ standard settings: set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/modules") # Qt if(NOT DEFINED QT_VERSION_MAJOR) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network Xml) endif() message("-- Choosing Qt ${QT_VERSION_MAJOR}") find_package(Qt${QT_VERSION_MAJOR} 5.15.0 REQUIRED COMPONENTS Core Network Xml) # QCA (optional) find_package(Qca-qt${QT_VERSION_MAJOR} QUIET) if(${QT_VERSION_MAJOR} EQUAL 6) find_package(Qt6Core5Compat) endif() include(GNUInstallDirs) option(BUILD_SHARED "Build shared library" ON) option(BUILD_TESTS "Build tests." ON) option(BUILD_INTERNAL_TESTS "Build internal tests." OFF) option(BUILD_DOCUMENTATION "Build API documentation." OFF) option(BUILD_EXAMPLES "Build examples." ON) option(BUILD_OMEMO "Build the OMEMO module" OFF) option(WITH_GSTREAMER "Build with GStreamer support for Jingle" OFF) option(WITH_QCA "Build with QCA for OMEMO or encrypted file sharing" ${Qca-qt${QT_VERSION_MAJOR}_FOUND}) option(ENABLE_ASAN "Build with address sanitizer" OFF) set(QXMPP_TARGET QXmppQt${QT_VERSION_MAJOR}) set(QXMPPOMEMO_TARGET QXmppOmemoQt${QT_VERSION_MAJOR}) add_definitions( -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_USE_QSTRINGBUILDER -DQT_NO_FOREACH -DQT_NO_KEYWORDS ) # Address sanitizer if(ENABLE_ASAN) add_compile_options(-fsanitize=address) add_link_options(-fsanitize=address) endif() if(BUILD_OMEMO) add_definitions(-DBUILD_OMEMO) # libomemo-c find_package(PkgConfig REQUIRED) pkg_check_modules(OmemoC REQUIRED IMPORTED_TARGET libomemo-c) # QCA if(NOT WITH_QCA) message(FATAL_ERROR "OMEMO requires QCA (Qt Cryptographic Architecture)") endif() endif() if(WITH_QCA) add_definitions(-DWITH_QCA) endif() add_subdirectory(src) if(BUILD_TESTS) enable_testing() add_subdirectory(tests) endif() if(BUILD_DOCUMENTATION) add_subdirectory(doc) endif() if(BUILD_EXAMPLES) add_subdirectory(examples) endif() include(CMakePackageConfigHelpers) # Normal QXmppQt5/6 package configure_package_config_file( QXmppConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}Config.cmake INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${QXMPP_TARGET}" ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}ConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}ConfigVersion.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${QXMPP_TARGET}" COMPONENT Devel ) # Generate QXmppQt5/6.pc configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qxmpp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}.pc @ONLY) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT Devel ) if(QT_VERSION_MAJOR EQUAL 5) # "QXmpp" cmake package for backwards-compatibility configure_package_config_file( cmake/QXmppLegacyConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfig.cmake INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/QXmpp" ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfig.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/QXmpp" COMPONENT Devel ) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/QXmppLegacyConfigVersion.cmake RENAME QXmppConfigVersion.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/QXmpp" COMPONENT Devel ) # "qxmpp.pc" for backwards-compatibility configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qxmpp_legacy.pc.in ${CMAKE_CURRENT_BINARY_DIR}/qxmpp.pc @ONLY) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/qxmpp.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT Devel ) endif() qxmpp-v1.10.3/CONTRIBUTING.md000066400000000000000000000063471476732154600154110ustar00rootroot00000000000000 # Contributing This is a guideline for contributing to QXmpp. ## Git Hooks Setup QXmpp currently just provides a hook for code formatting before commiting. You can enable it as follows: ``` cd qxmpp ./utils/setup-hooks.sh ``` This requires `git-clang-format` to be installed, though. ## Pull-requests (PRs) You can submit suggestions for changes via GitHub pull-requests. The maintainers of QXmpp will review your code. However, everybody is welcome to review the code and give feedback. You can find the current maintainers and other people involved in the project in the `AUTHORS` file. ### Guidelines for Creating PRs 1. Do not use the *master* branch of your personal fork to create PRs. It leads to confusion and makes it harder to check out your branch, making changes to it and in the end also merging your PR into the *master* branch of the main repository. 1. For fixes, target the branch of the latest release (e.g. *1.3*) instead of the *master* branch. 1. Write short commit messages starting with an upper case letter and the imperative. 1. Split your commits logically. 1. Do not mix unrelated changes in the same PR. 1. Check the tasks in the pull-request template when they are done or no changes were needed. ## Testing After building QXmpp with `-DBUILD_TESTS=ON`, you can run QXmpp's unit tests in the build directory with: ``` make test ``` ### Internal Tests There are some additional internal tests that only work with debug builds because they are using unexported symbols from the QXmpp library. You can enable those using `-DBUILD_INTERNAL_TESTS=ON`. They are also run using `make test`, along with the regular tests. ### Integration Tests There are some tests that also provide integration testing with a real XMPP server. The code of those test cases is always built, but the cases are skipped when running `make test` without further configuration. You can enable them by exporting the following environment variables: * `QXMPP_TESTS_INTEGRATION_ENABLED=1` * `QXMPP_TESTS_JID=` * `QXMPP_TESTS_PASSWORD=` Replace `` and `` with the credentials of the account for connecting to the server. ## Documentation The documentation is generated using Doxygen. You can enable it using the CMake option `-DBUILD_DOCUMENTATION=ON` and build it manually using: ``` make doc ``` The generated files are located in `doc/html/`. You can open `doc/html/index.html` for reading the documentation. To correctly view the list of supported XEPs, a local webserver is needed, see the [DOAP rendering documentation][doap-rendering] for details. ## Copyright QXmpp is [REUSE-compatible][reuse]. Thus, you need to add an appropriate copyright header to each new file. If do significant changes to a file (e.g. no search and replace, typo fixes or just adding of pure non-copyrightable data like XML namespaces), you may add yourself as a copyright holder in the copyright header. This is recommended for large changes. If the file does not allow such a header, add a `.license` file for the copyright information. [doap-rendering]: /doc/doap-rendering/README.md [reuse]: https://api.reuse.software/info/github.com/qxmpp-project/qxmpp qxmpp-v1.10.3/LICENSES/000077500000000000000000000000001476732154600143535ustar00rootroot00000000000000qxmpp-v1.10.3/LICENSES/CC-BY-SA-4.0.txt000066400000000000000000000437071476732154600165240ustar00rootroot00000000000000Creative Commons Attribution-ShareAlike 4.0 International Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. Creative Commons Attribution-ShareAlike 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Section 1 – Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. j. Licensor means the individual(s) or entity(ies) granting rights under this Public License. k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 – Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: A. reproduce and Share the Licensed Material, in whole or in part; and B. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 5. Downstream recipients. A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 – License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: A. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. 1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. Section 4 – Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 – Disclaimer of Warranties and Limitation of Liability. a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 – Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 – Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 – Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. qxmpp-v1.10.3/LICENSES/CC0-1.0.txt000066400000000000000000000156101476732154600157600ustar00rootroot00000000000000Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. qxmpp-v1.10.3/LICENSES/LGPL-2.1-or-later.txt000066400000000000000000000625571476732154600177120ustar00rootroot00000000000000GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. one line to give the library's name and an idea of what it does. Copyright (C) year name of author This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. signature of Ty Coon, 1 April 1990 Ty Coon, President of Vice That's all there is to it! qxmpp-v1.10.3/LICENSES/LicenseRef-MIT-variant.txt000066400000000000000000000024561476732154600212330ustar00rootroot00000000000000Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. qxmpp-v1.10.3/LICENSES/MIT.txt000066400000000000000000000020771476732154600155530ustar00rootroot00000000000000MIT License Copyright (c) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. qxmpp-v1.10.3/QXmppConfig.cmake.in000066400000000000000000000017331476732154600167540ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2017 Niels Ole Salscheider # # SPDX-License-Identifier: CC0-1.0 @PACKAGE_INIT@ set(_QXmpp_FIND_PARTS_REQUIRED) if(QXmppQt@QT_VERSION_MAJOR@_FIND_REQUIRED) set(_QXmpp_FIND_PARTS_REQUIRED REQUIRED) endif() set(_QXmpp_FIND_PARTS_QUIET) if(QXmppQt@QT_VERSION_MAJOR@_FIND_QUIETLY) set(_QXmpp_FIND_PARTS_QUIET QUIET) endif() include(CMakeFindDependencyMacro) find_dependency(Qt@QT_VERSION_MAJOR@Core) find_dependency(Qt@QT_VERSION_MAJOR@Network) find_dependency(Qt@QT_VERSION_MAJOR@Xml) include("${CMAKE_CURRENT_LIST_DIR}/QXmpp.cmake") foreach(module ${QXmppQt@QT_VERSION_MAJOR@_FIND_COMPONENTS}) find_package(QXmpp${module}Qt@QT_VERSION_MAJOR@ ${QXmppQt@QT_VERSION_MAJOR@_FIND_VERSION} ${_QXmpp_FIND_PARTS_REQUIRED} ${_QXmpp_FIND_PARTS_QUIET} ) set(QXmppQt@QT_VERSION_MAJOR@_${module}_FOUND ${QXmpp${module}Qt@QT_VERSION_MAJOR@_FOUND}) endforeach() check_required_components(QXmpp) qxmpp-v1.10.3/README.md000066400000000000000000000120261476732154600144260ustar00rootroot00000000000000 # QXmpp - Cross-platform C++/Qt XMPP library

QXmpp logo

XMPP:2022 Client IM Mobile+ Compliance Badge

Build Status Code Coverage Latest release Documentation Development Chat Donate using Liberapay REUSE status

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. The underlying TCP socket, the core XMPP RFCs (RFC6120 and RFC6121) and the [supported XMPP extensions][xeps] have been nicely encapsulated in classes. With QXmpp, it is possible to build XMPP clients complying with the [XMPP Compliance Suites 2022][xmpp-compliance] for IM and Advanced Mobile. It comes with full API documentation, automatic tests and examples. QXmpp uses Qt extensively. Thus, users need to have a good knowledge of C++ and Qt basics (including the concept of signals/slots and Qt's data types). Qt is the only third party library required to build QXmpp, but libraries such as GStreamer enable additional features. QXmpp is released under the terms of the GNU Lesser General Public License, version 2.1 or later. ## Building QXmpp requires **Qt 5.15** or **Qt 6.0 or higher**. You can build QXmpp with CMake: ``` mkdir build cd build cmake .. cmake --build . ``` You can pass the following arguments to CMake: Option | Default | Description ---|---|--- `BUILD_SHARED` | `ON` | Build as shared library, otherwise static `BUILD_DOCUMENTATION` | `ON` | Build documentation, requires Doxygen `BUILD_EXAMPLES` | `ON` | Build examples `BUILD_TESTS` | `ON` | Build unit tests `BUILD_INTERNAL_TESTS` | `OFF` | Build unit tests testing private parts of the API `BUILD_OMEMO` | `OFF` | Build the [OMEMO module][omemo] `WITH_GSTREAMER` | `OFF` | Enable audio/video over Jingle `QT_VERSION_MAJOR=5/6` | | to build with a specific Qt major version, prefers Qt 6 if undefined For example, to build without unit tests you could do: ``` cmake .. -DBUILD_TESTS=OFF ``` ## Installing After building QXmpp, you can install it using the following command: ``` cmake --build . --target install ``` ## Examples There are various [examples][examples] in order to quickly start using QXmpp. ### `example_0_connected` This example connects to the XMPP server and starts receiving presences from the server. You can see whether the user is online and if the user is in your roster (contact list). ### `example_1_echoClient` This is a very simple bot which echoes the message sent to it. The example helps to understand how to receive and send messages. ## Documentation There is an API documentation for the [latest stable QXmpp version][qxmpp-documentation] and one for the [master branch][qxmpp-master-documentation]. ## Supported Platforms QXmpp should work on all [platforms supported by Qt][supported-platforms]. ## Bugs If you think you have found a bug in QXmpp, we would like to hear about it. That way, we can fix it. Before [reporting a bug][issues], please check if the issue is already known at. ## Contributing If you are interested in contributing to QXmpp, please have a look at our [contribution guidelines][contributing]. [xeps]: https://doc.qxmpp.org/qxmpp-1/xep.html [contributing]: /CONTRIBUTING.md [examples]: /examples [issues]: https://github.com/qxmpp-project/qxmpp/issues [omemo]: /src/omemo/README.md [qxmpp-documentation]: https://doc.qxmpp.org [qxmpp-master-documentation]: https://doc.qxmpp.org/qxmpp-dev/ [supported-platforms]: https://doc.qt.io/qt-5/supported-platforms.html [xmpp-compliance]: https://xmpp.org/extensions/xep-0459.html qxmpp-v1.10.3/SECURITY.md000066400000000000000000000015161476732154600147420ustar00rootroot00000000000000 # Security Policy ## Supported Versions The latest 1.x stable release is supported. Fixes for relevant bugs and security issues are backported. ## Reporting a Vulnerability If you have found a security related issue, it is best to email us instead of opening a public issue. If your message is very sensitive, you may want to use PGP, but in most cases it's not needed. | Name | Email address | PGP key | | ---------- | ------------------ | --------------------------------------------------- | | Linus Jahn | lnj [AT] kaidan.im | [03C2D10DC97E5B0BEBB8F3B44663231A91A1E27B][pgp-lnj] | [pgp-lnj]: https://keys.openpgp.org/vks/v1/by-fingerprint/03C2D10DC97E5B0BEBB8F3B44663231A91A1E27B qxmpp-v1.10.3/cmake/000077500000000000000000000000001476732154600142265ustar00rootroot00000000000000qxmpp-v1.10.3/cmake/QXmppLegacyConfig.cmake.in000066400000000000000000000011071476732154600211540ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023 Linus Jahn # # SPDX-License-Identifier: CC0-1.0 @PACKAGE_INIT@ set(_QXmpp_FIND_PARTS_REQUIRED) if(QXmpp_FIND_REQUIRED) set(_QXmpp_FIND_PARTS_REQUIRED REQUIRED) endif() set(_QXmpp_FIND_PARTS_QUIET) if(QXmpp_FIND_QUIETLY) set(_QXmpp_FIND_PARTS_QUIET QUIET) endif() # Pass through arguments to QXmppQt5 include(CMakeFindDependencyMacro) find_package(QXmppQt5 ${QXmpp_FIND_VERSION} ${_QXmpp_FIND_PARTS_REQUIRED} ${_QXmpp_FIND_PARTS_QUIET} COMPONENTS ${QXmpp_FIND_COMPONENTS} ) set(QXmpp_FOUND ${QXmppQt5_FOUND}) qxmpp-v1.10.3/cmake/QXmppLegacyConfigVersion.cmake000066400000000000000000000003651476732154600221220ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023 Linus Jahn # # SPDX-License-Identifier: CC0-1.0 set(PACKAGE_VERSION "") # Allow all requested versions here, the actual check is going to be done in QXmppQt5. set(PACKAGE_VERSION_COMPATIBLE TRUE) qxmpp-v1.10.3/cmake/modules/000077500000000000000000000000001476732154600156765ustar00rootroot00000000000000qxmpp-v1.10.3/cmake/modules/FindGLIB2.cmake000066400000000000000000000070661476732154600203110ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2008 Laurent Montel # # SPDX-License-Identifier: LicenseRef-MIT-variant # - Try to find the GLIB2 libraries # Once done this will define # # GLIB2_FOUND - system has glib2 # GLIB2_INCLUDE_DIR - the glib2 include directory # GLIB2_LIBRARIES - glib2 library # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. if(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES) # Already in cache, be silent set(GLIB2_FIND_QUIETLY TRUE) endif(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES) if (NOT WIN32) find_package(PkgConfig QUIET) if(PKG_CONFIG_FOUND) pkg_check_modules(PKG_GLIB QUIET glib-2.0) endif() endif(NOT WIN32) find_path(GLIB2_MAIN_INCLUDE_DIR glib.h PATH_SUFFIXES glib-2.0 HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_INCLUDEDIR}) # search the glibconfig.h include dir under the same root where the library is found find_library(GLIB2_LIBRARIES NAMES glib-2.0 HINTS ${PKG_GLIB_LIBRARY_DIRS} ${PKG_GLIB_LIBDIR}) find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h PATH_SUFFIXES glib-2.0/include ../lib/glib-2.0/include HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_LIBRARIES} ${CMAKE_SYSTEM_LIBRARY_PATH}) set(GLIB2_INCLUDE_DIR ${GLIB2_MAIN_INCLUDE_DIR}) # not sure if this include dir is optional or required # for now it is optional if(GLIB2_INTERNAL_INCLUDE_DIR) set(GLIB2_INCLUDE_DIR ${GLIB2_INCLUDE_DIR} ${GLIB2_INTERNAL_INCLUDE_DIR}) endif(GLIB2_INTERNAL_INCLUDE_DIR) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GLIB2_MAIN_INCLUDE_DIR) mark_as_advanced(GLIB2_INCLUDE_DIR GLIB2_LIBRARIES) find_program(GLIB2_GENMARSHAL_UTIL glib-genmarshal) macro(glib2_genmarshal output_name) file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/genmarshal_tmp) foreach(_declaration ${ARGN}) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/genmarshal_tmp "${_declaration}\n") endforeach() add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.h ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.c COMMAND ${GLIB2_GENMARSHAL_UTIL} --header genmarshal_tmp > ${output_name}.h COMMAND ${GLIB2_GENMARSHAL_UTIL} --body genmarshal_tmp > ${output_name}.c WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) endmacro() qxmpp-v1.10.3/cmake/modules/FindGObject.cmake000066400000000000000000000062771476732154600210320ustar00rootroot00000000000000# SPDX-FileCopyrightText: Tim Beaulen # SPDX-FileCopyrightText: Helio Chissini de Castro # # SPDX-License-Identifier: LicenseRef-MIT-variant # - Try to find GObject # Once done this will define # # GOBJECT_FOUND - system has GObject # GOBJECT_INCLUDE_DIR - the GObject include directory # GOBJECT_LIBRARIES - the libraries needed to use GObject # GOBJECT_DEFINITIONS - Compiler switches required for using GObject # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES) # in cache already SET(GObject_FIND_QUIETLY TRUE) ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES) SET(GObject_FIND_QUIETLY FALSE) ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES) IF (NOT WIN32) FIND_PACKAGE(PkgConfig REQUIRED) # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls PKG_CHECK_MODULES(PKG_GOBJECT2 REQUIRED gobject-2.0) SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS}) ENDIF (NOT WIN32) FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h HINTS ${PKG_GOBJECT2_INCLUDE_DIRS} ${PKG_GOBJECT2_INCLUDEDIR} PATHS /usr/include/glib-2.0/ PATH_SUFFIXES glib-2.0 ) FIND_LIBRARY(_GObjectLibs NAMES gobject-2.0 HINTS ${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBDIR} ) FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0 HINTS ${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBDIR} ) FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0 HINTS ${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBDIR} ) FIND_LIBRARY(_GLibs NAMES glib-2.0 HINTS ${PKG_GOBJECT2_LIBRARY_DIRS} ${PKG_GOBJECT2_LIBDIR} ) SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs}) MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES) INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(GObject DEFAULT_MSG GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES) qxmpp-v1.10.3/cmake/modules/FindGStreamer.cmake000066400000000000000000000153651476732154600214040ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2010 Collabora Ltd., George Kiagiadakis # # SPDX-License-Identifier: LicenseRef-MIT-variant # - Try to find GStreamer # Once done this will define # # GSTREAMER_FOUND - system has GStreamer # GSTREAMER_INCLUDE_DIR - the GStreamer main include directory # GSTREAMER_INCLUDE_DIRS - the GStreamer include directories # GSTREAMER_LIBRARY - the main GStreamer library # GSTREAMER_PLUGIN_DIR - the GStreamer plugin directory # # And for all the plugin libraries specified in the COMPONENTS # of find_package, this module will define: # # GSTREAMER__LIBRARY_FOUND - system has # GSTREAMER__LIBRARY - the library # GSTREAMER__INCLUDE_DIR - the include directory # Copyright (c) 2010, Collabora Ltd. # @author George Kiagiadakis # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. if (GSTREAMER_INCLUDE_DIR AND GSTREAMER_LIBRARY) set(GStreamer_FIND_QUIETLY TRUE) else() set(GStreamer_FIND_QUIETLY FALSE) endif() set(GSTREAMER_ABI_VERSION "1.0") # Find the main library find_package(PkgConfig) if (PKG_CONFIG_FOUND) pkg_check_modules(PKG_GSTREAMER QUIET gstreamer-${GSTREAMER_ABI_VERSION}) if(PKG_GSTREAMER_FOUND) exec_program(${PKG_CONFIG_EXECUTABLE} ARGS --variable pluginsdir gstreamer-${GSTREAMER_ABI_VERSION} OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR) endif() set(GSTREAMER_DEFINITIONS ${PKG_GSTREAMER_CFLAGS}) endif() find_library(GSTREAMER_LIBRARY NAMES gstreamer-${GSTREAMER_ABI_VERSION} HINTS ${PKG_GSTREAMER_LIBRARY_DIRS} ${PKG_GSTREAMER_LIBDIR}) find_path(GSTREAMER_INCLUDE_DIR gst/gst.h HINTS ${PKG_GSTREAMER_INCLUDE_DIRS} ${PKG_GSTREAMER_INCLUDEDIR} PATH_SUFFIXES gstreamer-${GSTREAMER_ABI_VERSION}) find_path(GSTREAMER_gstconfig_INCLUDE_DIR gst/gstconfig.h HINTS ${PKG_GSTREAMER_INCLUDE_DIRS} ${PKG_GSTREAMER_INCLUDEDIR} PATH_SUFFIXES gstreamer-${GSTREAMER_ABI_VERSION}) set(GSTREAMER_INCLUDE_DIRS ${GSTREAMER_INCLUDE_DIR} ${GSTREAMER_gstconfig_INCLUDE_DIR}) list(REMOVE_DUPLICATES GSTREAMER_INCLUDE_DIRS) if (PKG_GSTREAMER_PLUGIN_DIR) set(_GSTREAMER_PLUGIN_DIR ${PKG_GSTREAMER_PLUGIN_DIR}) else() get_filename_component(_GSTREAMER_LIB_DIR ${GSTREAMER_LIBRARY} PATH) set(_GSTREAMER_PLUGIN_DIR ${_GSTREAMER_LIB_DIR}/gstreamer-${GSTREAMER_ABI_VERSION}) endif() set(GSTREAMER_PLUGIN_DIR ${_GSTREAMER_PLUGIN_DIR} CACHE PATH "The path to the gstreamer plugins installation directory") mark_as_advanced(GSTREAMER_LIBRARY GSTREAMER_INCLUDE_DIR GSTREAMER_gstconfig_INCLUDE_DIR GSTREAMER_PLUGIN_DIR) # Find additional libraries include(MacroFindGStreamerLibrary) macro(_find_gst_component _name _header) find_gstreamer_library(${_name} ${_header} ${GSTREAMER_ABI_VERSION} ${GStreamer_FIND_QUIETLY}) set(_GSTREAMER_EXTRA_VARIABLES ${_GSTREAMER_EXTRA_VARIABLES} GSTREAMER_${_name}_LIBRARY GSTREAMER_${_name}_INCLUDE_DIR) endmacro() foreach(_component ${GStreamer_FIND_COMPONENTS}) if (${_component} STREQUAL "base") _find_gst_component(BASE gstbasesink.h) elseif (${_component} STREQUAL "check") _find_gst_component(CHECK gstcheck.h) elseif (${_component} STREQUAL "controller") _find_gst_component(CONTROLLER gstargbcontrolbinding.h) elseif (${_component} STREQUAL "net") _find_gst_component(NET gstnet.h) else() message (AUTHOR_WARNING "FindGStreamerPluginsBase.cmake: Invalid component \"${_component}\" was specified") endif() endforeach() # Version check if (GStreamer_FIND_VERSION) if (PKG_GSTREAMER_FOUND) if("${PKG_GSTREAMER_VERSION}" VERSION_LESS "${GStreamer_FIND_VERSION}") if(NOT GStreamer_FIND_QUIETLY) message(STATUS "Found GStreamer version ${PKG_GSTREAMER_VERSION}, but at least version ${GStreamer_FIND_VERSION} is required") endif() set(GSTREAMER_VERSION_COMPATIBLE FALSE) else() set(GSTREAMER_VERSION_COMPATIBLE TRUE) endif() elseif(GSTREAMER_INCLUDE_DIR) include(CheckCXXSourceCompiles) set(CMAKE_REQUIRED_INCLUDES ${GSTREAMER_INCLUDE_DIR}) string(REPLACE "." "," _comma_version ${GStreamer_FIND_VERSION}) # Hack to invalidate the cached value set(GSTREAMER_VERSION_COMPATIBLE GSTREAMER_VERSION_COMPATIBLE) check_cxx_source_compiles(" #define G_BEGIN_DECLS #define G_END_DECLS #include #if GST_CHECK_VERSION(${_comma_version}) int main() { return 0; } #else # error \"GStreamer version incompatible\" #endif " GSTREAMER_VERSION_COMPATIBLE) if (NOT GSTREAMER_VERSION_COMPATIBLE AND NOT GStreamer_FIND_QUIETLY) message(STATUS "GStreamer ${GStreamer_FIND_VERSION} is required, but the version found is older") endif() else() # We didn't find gstreamer at all set(GSTREAMER_VERSION_COMPATIBLE FALSE) endif() else() # No version constrain was specified, thus we consider the version compatible set(GSTREAMER_VERSION_COMPATIBLE TRUE) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GStreamer DEFAULT_MSG GSTREAMER_LIBRARY GSTREAMER_INCLUDE_DIRS GSTREAMER_VERSION_COMPATIBLE ${_GSTREAMER_EXTRA_VARIABLES}) qxmpp-v1.10.3/cmake/modules/MacroFindGStreamerLibrary.cmake000066400000000000000000000070541476732154600237070ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2010 Collabora Ltd., George Kiagiadakis # # SPDX-License-Identifier: LicenseRef-MIT-variant # - macro find_gstreamer_library # Copyright (c) 2010, Collabora Ltd. # @author George Kiagiadakis # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. macro(find_gstreamer_library _name _header _abi_version _quiet) string(TOLOWER ${_name} _lower_name) string(TOUPPER ${_name} _upper_name) if (GSTREAMER_${_upper_name}_LIBRARY AND GSTREAMER_${_upper_name}_INCLUDE_DIR) set(_GSTREAMER_${_upper_name}_QUIET TRUE) else() set(_GSTREAMER_${_upper_name}_QUIET FALSE) endif() if (PKG_CONFIG_FOUND) pkg_check_modules(PKG_GSTREAMER_${_upper_name} QUIET gstreamer-${_lower_name}-${_abi_version}) endif() find_library(GSTREAMER_${_upper_name}_LIBRARY NAMES gst${_lower_name}-${_abi_version} HINTS ${PKG_GSTREAMER_${_upper_name}_LIBRARY_DIRS} ${PKG_GSTREAMER_${_upper_name}_LIBDIR} ) find_path(GSTREAMER_${_upper_name}_INCLUDE_DIR gst/${_lower_name}/${_header} HINTS ${PKG_GSTREAMER_${_upper_name}_INCLUDE_DIRS} ${PKG_GSTREAMER_${_upper_name}_INCLUDEDIR} PATH_SUFFIXES gstreamer-${_abi_version} ) if (GSTREAMER_${_upper_name}_LIBRARY AND GSTREAMER_${_upper_name}_INCLUDE_DIR) set(GSTREAMER_${_upper_name}_LIBRARY_FOUND TRUE) else() set(GSTREAMER_${_upper_name}_LIBRARY_FOUND FALSE) endif() if (NOT _GSTREAMER_${_upper_name}_QUIET AND NOT _quiet) if (GSTREAMER_${_upper_name}_LIBRARY) message(STATUS "Found GSTREAMER_${_upper_name}_LIBRARY: ${GSTREAMER_${_upper_name}_LIBRARY}") else() message(STATUS "Could NOT find GSTREAMER_${_upper_name}_LIBRARY") endif() if (GSTREAMER_${_upper_name}_INCLUDE_DIR) message(STATUS "Found GSTREAMER_${_upper_name}_INCLUDE_DIR: ${GSTREAMER_${_upper_name}_INCLUDE_DIR}") else() message(STATUS "Could NOT find GSTREAMER_${_upper_name}_INCLUDE_DIR") endif() endif() mark_as_advanced(GSTREAMER_${_upper_name}_LIBRARY GSTREAMER_${_upper_name}_INCLUDE_DIR) endmacro() qxmpp-v1.10.3/doc/000077500000000000000000000000001476732154600137135ustar00rootroot00000000000000qxmpp-v1.10.3/doc/CMakeLists.txt000066400000000000000000000012561476732154600164570ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2017 Niels Ole Salscheider # # SPDX-License-Identifier: CC0-1.0 find_package(Doxygen REQUIRED) if(NOT DOXYGEN_FOUND) message(FATAL_ERROR "Doxygen is needed to build the documentation.") endif() configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY ) add_custom_target( doc ALL COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generate API documentation with Doxygen" VERBATIM ) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR}) qxmpp-v1.10.3/doc/Doxyfile.in000066400000000000000000000025321476732154600160300ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2017 Niels Ole Salscheider # # SPDX-License-Identifier: CC0-1.0 PROJECT_NAME = "QXmpp" PROJECT_NUMBER = "Version: @PROJECT_VERSION@" INPUT = @PROJECT_SOURCE_DIR@/doc/index.doc \ @PROJECT_SOURCE_DIR@/doc/using.doc \ @PROJECT_SOURCE_DIR@/doc/xep.doc \ @PROJECT_SOURCE_DIR@/src HTML_EXTRA_FILES = @PROJECT_SOURCE_DIR@/doc/doap.xml \ @PROJECT_SOURCE_DIR@/doc/doap-rendering/doap.xsl \ @PROJECT_SOURCE_DIR@/doc/doap-rendering/xeplist.xml \ @PROJECT_SOURCE_DIR@/doc/doap-rendering/doap.css ALIASES = "xep{1}=XEP-\1" \ "xep{2}=XEP-\1: \2" ALPHABETICAL_INDEX = NO EXCLUDE_PATTERNS = */moc_* */mod_* */QXmppCodec.cpp */QXmppSasl.cpp FULL_PATH_NAMES = NO HIDE_UNDOC_CLASSES = YES GENERATE_LATEX = NO QUIET = YES RECURSIVE = YES ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES PREDEFINED = "QXMPP_DEPRECATED_SINCE(major, minor)=1" "QT_DEPRECATED_X(msg)=" "QXMPP_DOC" qxmpp-v1.10.3/doc/doap-rendering/000077500000000000000000000000001476732154600166115ustar00rootroot00000000000000qxmpp-v1.10.3/doc/doap-rendering/README.md000066400000000000000000000010211476732154600200620ustar00rootroot00000000000000 # DOAP rendering Run `doc/doap-rendering/update-xeplist.sh` to get the latest XEP metadata before building the documentation. You maybe need to open a local web server to display the list of supported XEPs in case your web browser prohibits the request to `doc/doap-rendering/doap.xsl`. Here is an example with Python's built-in web server and Firefox: ``` python3 -m http.server firefox http://0.0.0.0:8000/xep.html ``` qxmpp-v1.10.3/doc/doap-rendering/doap.css000066400000000000000000000124151476732154600202510ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2019 Adrien Destugues * * SPDX-License-Identifier: CC0-1.0 */ :root { /* Primary color in HSL: Change this to customize all colored elements */ --color-h: 210; --color-s: 13%; --color-l: 50%; } body { font-family: sans-serif; } img { margin-right: 1.7rem; vertical-align: middle; } a { text-decoration: none; padding: 5px; color: hsl( var(--color-h), calc(var(--color-s) + 15%), calc(var(--color-l) - 10%) ); } a:hover { text-decoration: none; filter: brightness(110%); } a.button { text-align: center; text-decoration: none; font-size: medium; color: hsl(0, 0%, 100%); background-color: hsl( var(--color-h), var(--color-s), var(--color-l) ); display: inline-block; cursor: pointer; border: none; border-radius: 4px; padding: 12px 24px; margin: 4px 12px 4px 0; } a.button:hover { filter: brightness(110%); } .header { padding: 40px; text-align: center; background: linear-gradient( 40deg, hsl( var(--color-h), var(--color-s), calc(var(--color-l) + 30%) ) 0%, hsl(0, 0%, 90%) 60% ); color: hsl(0, 0%, 27%); font-size: xx-large; margin-bottom: 15px; } .shortdesc { font-size: x-large; font-weight: 300; opacity: 0.8; } .description { font-size: medium; opacity: 0.9; } .os { margin: auto; margin-bottom: 30px; width: 75%; text-align: center; opacity: 0.7; } .chip { display: inline-block; padding: 3px 10px; margin: 3px 5px 3px 0; height: 20px; font-size: small; font-weight: 700; line-height: 20px; border-radius: 12px; color:hsl(0, 0%, 100%); background-color: hsl( var(--color-h), var(--color-s), calc(var(--color-l) - 20%) ); } /* XEP table */ table { width: 100%; border-collapse: collapse; clear: both; } th { border: 1px solid hsl( var(--color-h), var(--color-s), calc(var(--color-l) + 15%) ); background-color: hsl( var(--color-h), var(--color-s), var(--color-l) ); color: hsl(0, 0%, 100%); padding: 10px; } th:nth-child(1) { padding-left: 2.5rem; padding-right: 2.5rem; } th:nth-child(5) { text-align: left; } tr { border: 1px solid hsl(0, 0%, 91%); } tr:nth-child(odd) { background-color: hsl(0, 0%, 97%); } tr:hover { background-color: hsl(0, 0%, 94%); } td { padding: 10px; color: hsl(0, 0%, 11%); } td:nth-child(2) { text-align: end; } td:nth-child(3) { text-align: center; } td:nth-child(4) { text-align: end; } .xep-implementation-status { font-size: small; padding: 5px; } .complete { color: hsl(120, 25%, 42%); background-color: hsl(103, 46%, 90%); } .partial { color: hsl(36, 66%, 43%); background-color: hsl(56, 62%, 86%); } .planned { color: hsl(208, 41%, 39%); background-color: hsl(197, 62%, 86%); } .removed, .deprecated, .wontfix { color:hsl(0, 0%, 25%); background-color: hsl(0, 0%, 91%); } .version { font-family: monospace; margin: 1px; } .version-outdated { color: hsl(36, 66%, 43%); background-color: hsl(56, 62%, 86%); } .small { font-size: small; } .no-info { text-align: center; opacity: 0.5; margin: 20px; } @media (prefers-color-scheme: dark) { body { background-color: hsl(0, 0%, 9%); color: hsl(0, 0%, 90%); } a { color: hsl( var(--color-h), calc(var(--color-s) + 15%), calc(var(--color-l) + 15%) ); } a.button { color: hsl(0, 0%, 91%); background-color: hsl( var(--color-h), var(--color-s), calc(var(--color-l) - 20%) ); } .header { color: hsl(0, 0%, 91%); background: linear-gradient( 40deg, hsl( var(--color-h), var(--color-s), calc(var(--color-l) - 30%) ) 0%, hsl(0, 0%, 10%) 60% ); } .chip { color:hsl(0, 0%, 100%); background-color: hsl(0, 0%, 22%); } /* XEP table */ th { border: 1px solid hsl( var(--color-h), var(--color-s), calc(var(--color-l) - 20%) ); background-color: hsl( var(--color-h), var(--color-s), calc(var(--color-l) - 30%) ); color: hsl(0, 0%, 90%); } tr { border: 1px solid hsl(0, 0%, 14%); } tr:nth-child(odd) { background-color: hsl(0, 0%, 11%); } tr:hover { background-color: hsl(0, 0%, 9%); } td { color: hsl(0, 0%, 93%); } .complete { color: hsl(120, 54%, 81%); background-color: hsl(105, 23%, 17%); } .partial { color: hsl(36, 100%, 92%); background-color: hsl(55, 45%, 16%); } .planned { color: hsl(205, 80%, 76%); background-color: hsl(191, 52%, 17%); } .removed, .deprecated, .wontfix { color: hsl(0, 0%, 100%); background-color: hsl(0, 0%, 31%); } .version-outdated { color: hsl(36, 100%, 92%); background-color: hsl(55, 45%, 16%); } } qxmpp-v1.10.3/doc/doap-rendering/doap.xsl000066400000000000000000000110231476732154600202610ustar00rootroot00000000000000 <xsl:value-of select="doap:name"/> - XMPP implementation support
XMPP Extension Implemented Version Status Since Notes

No info about supported extensions available.

logo Website Download Documentation
XEP- :

latest:
qxmpp-v1.10.3/doc/doap-rendering/update-xeplist.sh000077500000000000000000000007451476732154600221260ustar00rootroot00000000000000#!/bin/bash # SPDX-FileCopyrightText: 2022 Melvin Keskin # # SPDX-License-Identifier: CC0-1.0 # # This script updates the list that contains XEP metadata used by "doap.xsl". # # It should be run before generating the Doxygen documentation. # SCRIPT_DIR=$(dirname "$(readlink -f "${0}")") # The list is generated by "https://github.com/xsf/xeps/blob/master/tools/extract-metadata.py". curl -L https://xmpp.org/extensions/xeplist.xml > "${SCRIPT_DIR}/xeplist.xml" qxmpp-v1.10.3/doc/doap-rendering/xeplist.xml000066400000000000000000014235301476732154600210330ustar00rootroot000000000000001XMPP Extension ProtocolsThis document defines the standards process followed by the XMPP Standards Foundation.ProceduralActiveBoard2024-03-111.25.0XEP Editor: dgAdd note that editorial changes do not affect Deferred stateNone2Special Interest Groups (SIGs)A definition of Special Interest Groups within the XMPP Standards Foundation.ProceduralActiveBoard2002-01-111.1psaClarified some details and added information about cut-offs for inactivity.None3Proxy Accept Socket Service (PASS)This document defines a method for relaying media via proxies on the Jabber/XMPP network.HistoricalObsoleteCouncilpass2009-06-031.4psaPer a vote of the XMPP Council, changed status to Obsolete.Standards4Data FormsThis specification defines an XMPP protocol extension for data forms that can be used in workflows such as service configuration as well as for application-specific data description and reporting. The protocol includes lightweight semantics for forms processing (such as request, response, submit, and cancel), defines several common field types (boolean, list options with single or multiple choice, text with single line or multiple lines, single or multiple JabberIDs, hidden fields, etc.), provides extensibility for future data types, and can be embedded in a wide range of applications. The protocol is not intended to provide complete forms-processing functionality as is provided in the W3C XForms technology, but instead provides a basic subset of such functionality for use by XMPP entities.Standards TrackFinalCouncilx-data2024-08-302.13.2gkAdd section on empty and absent values.Standards5Jabber Interest GroupsThis is the official list and summary information of the Jabber Interest Groups.InformationalObsoleteCouncil2002-05-081.1psaChanged Status to Obsolete per approval of XEP-0019.None6ProfilesA proposal for a more powerful and extensible protocol for the management of personal information within Jabber.SIG FormationObsoleteBoard2002-05-081.1psaChanged Status to Obsolete per approval of XEP-0019.Forms, Security7Conferencing SIGA proposal for a Jabber Interest Group that will discuss the protocol for implementing many-to-many communications.SIG ProposalObsoleteBoard2002-05-081.1psaChanged Status to Obsolete per approval of XEP-0019.Conferencing8IQ-Based AvatarsThis specification provides historical documentation of an IQ-based protocol for exchanging user avatars.HistoricalObsoleteCouncilXEP-0084XEP-01532022-03-080.3.1egp* Move from deferred to obsolete. * Add the two superseding specifications.Standards9Jabber-RPCThis specification defines an XMPP protocol extension for transporting XML-RPC encoded requests and responses between two XMPP entities. The protocol supports all syntax and semantics of XML-RPC except that it uses XMPP instead of HTTP as the underlying transport.Standards TrackFinalCounciljabber-rpc2021-03-042.2.1mwCross-document editorial adjustments for inclusive language.Standards10Whiteboarding SIGA proposal to form a SIG to develop a protocol for whiteboarding over Jabber.SIG FormationObsoleteBoard2002-05-081.1psaChanged Status to Obsolete per approval of XEP-0019.None11Jabber BrowsingThis document defines a way to describe information about Jabber entities and the relationships between entities. Note: This document is superseded by XEP-0030: Service Discovery.HistoricalObsoleteCounciliq-browseXEP-00302021-03-041.3.1mwCross-document editorial adjustments for inclusive language.Standards12Last ActivityThis specification defines an XMPP protocol extension for communicating information about the last activity associated with an XMPP entity. It is typically used by an IM client to retrieve the most recent presence information from an offline contact by sending a last activity request to the server that hosts the account controlled by the contact.Standards TrackFinalCounciliq-last2008-11-262.0psaPer a vote of the XMPP Council, advanced specification to Final; clarified a few small points in the text; added a reference to XEP-0115.Standards13Flexible Offline Message RetrievalThis specification defines an XMPP protocol extension for flexible, POP3-like handling of offline messages. The protocol enables a connecting client to retrieve its offline messages on login in a controlled fashion, without receiving a flood of messages. Messages can also be left on the server for later retrieval.Standards TrackDeprecatedCounciloffline2021-05-041.3XEP Editor (jsc)Deprecate after council vote of 2021-03-31Standards14Message ToneA proposal for including the sender's tone in messages.Standards TrackRejectedCouncil2002-01-160.2psaFirst release to CVS, including editorial changes and assignment of number.Standards15Account TransferA proposal for enabling the ability to transfer an account from one Jabber server to another.Standards TrackRejectedCouncil2002-04-180.4cwcCleaned up the open issues and concerns section.Standards16Privacy ListsThis specification defines an XMPP protocol extension for enabling or disabling communication with other entities on a network. The protocol, which was first standardized in Section 10 of RFC 3921, can be used to block communication with unknown or undesirable entities. Blocking can be based on Jabber Identifier, subscription state, or roster group. The blocked stanzas can be messages, IQs, inbound or outbound presence stanzas, or all stanzas. The protocol also enables an entity to create, modify, or delete its privacy lists, apply different lists to different connected resources, define a default list, and decline the use of any privacy list during a particular communications session.Standards TrackDeprecatedCouncilprivacyXEP-01912017-05-201.7XEP Editor: sswDeprecating by vote of the council.Standards17Naive Packet Framing ProtocolAn intermediate method for more efficient framing of the Jabber XML Stream.InformationalRejectedCouncil2002-02-190.3mflContinued improvement and specification.Standards18Invisible PresenceDocumentation of invisible presence.InformationalRejectedCouncil2003-09-260.2bsUpdated to focus solely on <presence type='invisible'/>.Standards19Streamlining the SIGsThis document proposes to streamline the existing Special Interest Groups (SIGs).ProceduralActiveBoard2022-11-031.1pepReplaced shtml link.None20Feature NegotiationThis specification defines an XMPP protocol extension that enables two entities to mutually negotiate feature options, such as parameters related to a file transfer or a communications session.Standards TrackDeprecatedCouncilfeature-neg2018-03-071.6jwi (Editor)Deprecated as per Council vote on 2018-03-07.Standards21Jabber Event Notification Service (ENS)A generic publish-and-subscribe service for Jabber.Standards TrackRetractedCouncilXEP-00602003-04-220.2psaAt the request of the author, the status of this document has been changed to Retracted since it has been superseded by XEP-0060.Standards22Message EventsThis document defines an XMPP protocol extension used to request and respond to events relating to the delivery, display, and composition of messages. Note: This specification has been obsoleted in favor of XEP-0085 and XEP-0184.HistoricalObsoleteCouncilx-eventXEP-0085XEP-01842009-05-271.4psaPer a vote of the XMPP Council, changed status to Obsolete.Standards23Message ExpirationThis specification documents an historical protocol that was used to specify expiration dates for messages; this protocol has been deprecated in favor of XEP-0079: Advanced Message Processing.HistoricalObsoleteCouncilx-expireXEP-00792009-06-031.3psaPer a vote of the XMPP Council, changed status to Obsolete.Standards24Publish/SubscribeA publish-subscribe protocol for Jabber.Standards TrackRetractedCouncilXEP-00602003-04-220.2psaAt the request of the authors, the status of this document has been changed to Retracted since it has been superseded by XEP-0060.Standards25Jabber HTTP PollingThis document defines an XMPP protocol extension that enables access to a Jabber server from behind firewalls which do not allow outgoing sockets on port 5222, via HTTP requests.HistoricalObsoleteCouncilhttppollXEP-01242009-06-031.2psaPer a vote of the XMPP Council, changed status to Obsolete.Standards26Internationalization (I18N)NOTE WELL: this document was retracted on 2003-11-05 since the topic is addressed definitively in XMPP Core. Please refer to XMPP Core for further information.Standards TrackRetractedCouncilXMPP Core2003-11-050.2psaThe status of this document has been changed to Retracted since it has been superseded by XMPP Core.Standards27Current Jabber OpenPGP UsageThis document outlines the current usage of OpenPGP for messaging and presence.HistoricalObsoleteCouncilopenpgp2014-03-141.4editor (mam)Per a vote of the XMPP Council, changed status from Active to Deprecated to Obsolete.Standards28No Such XEPThis document was removed from the XSF website and source control at the request of the author.InformationalRetractedCouncil2001-08-200.1noneNo such specification.Standards29Definition of Jabber Identifiers (JIDs)Note well: this document was superseded by RFC 3920 and RFC 6122, which in turn have been superseded by RFC 7622. This document defines the exact nature of a Jabber Identifier (JID).Standards TrackRetractedCouncilRFC 76222022-09-231.1.1gkAdd references to RFC 7622, which has superseded RFC 6122.Standards30Service DiscoveryThis specification defines an XMPP protocol extension for discovering information about other XMPP entities. Two kinds of information can be discovered: (1) the identity and capabilities of an entity, including the protocols and features it supports; and (2) the items associated with an entity, such as the list of rooms hosted at a multi-user chat service.Standards TrackFinalCouncildiscoXEP-0011XEP-00942024-04-302.5.0pepAdd note about some entities not advertising the feature.Standards31A Framework For Securing Jabber ConversationsAlthough the value and utility of contemporary instant messaging systems, like Jabber, are now indisputable, current security features to protect message data are generally inadequate for many deployments; this is particularly true in security conscious environments like large, commercial enterprises and government agencies. These current features suffer from issues of scalability, usability, and supported features. Furthermore, there is a lack of standardization. We present a protocol to allow communities of Jabber users to apply cryptographic protection to selected conversation data.Standards TrackDeferredCouncil2002-07-090.2PCL updated to reflect group consensus to incorporate XML Encryption, as well as other group comments from Draft 0.9. Standards32Jabber URI SchemeA URI scheme for Jabber communications.Standards TrackRetractedCouncilRFC 51222003-09-020.4psaRetracted the document, since it is superseded by draft-ietf-xmpp-uri, an Internet-Draft produced by the IETF's XMPP WG.Standards33Extended Stanza AddressingThis specification defines an XMPP protocol extension that enables entities to include RFC822-style address headers within XMPP stanzas in order to specify multiple recipients or sub-addresses.Standards TrackDraftCounciladdress2017-01-111.2.1cs (XEP Editor: ssw)Clarify Reply Handling, add 'ofrom' type and fix examplesStandards34SASL IntegrationNOTE WELL: this specification was retracted on 2003-11-05 since the topic is addressed definitively in XMPP Core. Please refer to XMPP Core for further information.Standards TrackRetractedCouncilXMPP Core2003-11-051.1psaThe status of this specification has been changed to Retracted since it has been superseded by XMPP Core.Standards35SSL/TLS IntegrationNOTE WELL: this specification was retracted on 2003-11-05 since the topic is addressed definitively in XMPP Core. Please refer to XMPP Core for further information.Standards TrackRetractedCouncilXMPP Core2003-11-050.2psaThe status of this specification has been changed to Retracted since it has been superseded by XMPP Core.Standards36Pub-Sub SubscriptionsA proposal for the subscribe half of a publish-subscribe protocol within Jabber.Standards TrackRetractedCouncilXEP-00602003-04-220.2psaAt the request of the authors, the status of this specification has been changed to Retracted since it has been superseded by XEP-0060.Standards37DSPS - Data Stream Proxy ServiceA proposal for proxy support in Jabber.Standards TrackRejectedCouncil2016-10-040.8.1egpMade the revision’s version element include only the actual version.Standards38Icon StylesA protocol for specifying exchangeable styles of emoticons and genicons within Jabber IM clients.Standards TrackObsoleteCouncilUnicodeXEP-02312022-03-080.5.1egpObsolete due to the omnipresence of Unicode emoji, as well as Bits of Binary stickers.Standards39Statistics GatheringA protocol to enable gathering statistics from Jabber servers and components.Standards TrackDeferredCouncil2002-11-050.6.0rkd Corrected David Sutton's JID and email. It has been pointed out to me by amoungst others Rob Norris that things such as lists of JIDs and lists in general are really the province of disco and browse and that at least one of the suggested 'core' statistics doesn't make sense for all components so removed these from the document. This namespace was starting to become a generic data gathering namespace and we already have one of those, so I've reworked yet again hopefully for the final time it should now be simpler to implement and more consistent in all cases. Standards40Jabber Robust Publish-SubscribeNote: This proposal has been superseded by XEP-0060; please refer to that document for the successor protocol.Standards TrackRetractedCouncilXEP-00602004-07-260.2psaFormally retracted this proposal in favor of XEP-0060: Publish-Subscribe.Standards41Reliable Entity LinkProtocol for linking a bytestream between two Jabber entities.Standards TrackRetractedCouncilrelXEP-00652003-09-300.2psaAt the request of the author, the status of this specification has been changed to Retracted since it has been superseded by XEP-0065.Standards42Jabber OOB Broadcast Service (JOBS)A protocol for enabling uni-directional multicast data transfers out of band.Standards TrackRetractedCouncilJOBSXEP-00652003-04-110.5psaAt the request of the author, changed status to Retracted.Standards43Jabber Database AccessExpose RDBM systems directly to the jabber networkStandards TrackRetractedCouncil2003-10-200.2psaAt the request of the author, changed status to Retracted.Standards44Full Namespace Support for XML StreamsA description of the use of namespaces within Jabber.Standards TrackDeferredCouncil2002-08-260.1rnInitial version.Standards45Multi-User ChatThis specification defines an XMPP protocol extension for multi-user text chat, whereby multiple XMPP users can exchange messages in the context of a room or channel, similar to Internet Relay Chat (IRC). In addition to standard chatroom features such as room topics and invitations, the protocol defines a strong room control model, including the ability to kick and ban users, to name room moderators and administrators, to require membership or passwords in order to join the room, etc.Standards TrackDraftCouncilmuc2024-09-171.35.1gkAdd explicit error definition when non-owners attempt to use owner-specific functionality.Standards46DTCPDirect TCP connection between two Jabber entities.Standards TrackRetractedCouncilXEP-00652003-04-110.8psaAt the request of the author, changed status to Retracted.Standards47In-Band BytestreamsThis specification defines an XMPP protocol extension that enables any two entities to establish a one-to-one bytestream between themselves, where the data is broken down into smaller chunks and transported in-band over XMPP.Standards TrackFinalCouncilibb2021-01-122.0.1swFix incorrect max sequence number in the text; it was given as one less than two to the power of 15, but in reality it is one less than two to the power of 16, which is clear from the context).Standards48BookmarksThis specification defines an XML data format for use by XMPP clients in storing bookmarks to mult-user chatrooms and web pages. The chatroom bookmarking function includes the ability to auto-join rooms on login.Standards TrackDeprecatedCouncilbookmarksXEP-04022020-08-041.2XEP Editor (jsc)Deprecate in favour of XEP-0402Standards49Private XML StorageThis specification provides canonical documentation of the 'jabber:iq:private' namespace currently in common usage.HistoricalActiveCounciliq-private2004-03-011.2psaCorrected several errors in the text; specified security considerations.Standards50Ad-Hoc CommandsThis document defines an XMPP protocol extension for advertising and executing application-specific commands, such as those related to a configuration workflow. Typically the commands contain data forms (XEP-0004) in order to structure the information exchange.Standards TrackDraftCouncilcommands2020-06-091.3.0kisClarify illegal uses of 'execute'.Standards51Connection TransferThis specification defines an XMPP protocol extension that enables a server to redirect connections from one connection manager or server node to another.Standards TrackObsoleteCouncilRFC61202022-03-080.2.1egpObsolete because this feature has been merged into XMPP core, see RFC6120 section 4.9.3.19, which describes the <see-other-host/> stream error.Standards52File TransferA protocol for transferring a file between two Jabber IDs.Standards TrackRetractedCouncilXEP-0095XEP-00962018-11-030.2.1pepFix a bunch of typos, batch-style.Standards53XMPP Registrar FunctionThis document defines the roles and processes of the XMPP Registrar function within the XMPP Standards Foundation.ProceduralActiveBoard2016-12-011.7psaModify registration status names to be consistent with IANA terminology (Provisional, Permanent, Historical).None54vcard-tempThis specification provides canonical documentation of the vCard-XML format currently in use within the Jabber community.HistoricalActiveCouncilvcard-temp2024-06-271.3.0gkUpdated error cases to be compatible with .Standards55Jabber SearchThis specification provides canonical documentation of the jabber:iq:search namespace currently in use within the Jabber community.HistoricalActiveCounciliq-search2009-09-151.3psaClarified that <first/> and <last/> elements in fact always represent given name and family name, respectively.Standards56Business Data InterchangeThis document defines a way to transmit ebXML messages, ANSI X.11, EDIFACT/UN, and SAP iDoc over Jabber/XMPP.Standards TrackDeferredCouncil2018-11-030.3.1pepFix a bunch of typos, batch-style.Standards57Extended RosterThis document defines a way to handle extended roster items.Standards TrackRetractedCouncil2003-04-280.2psaChanged the status to Retracted at the request of the author, since the proposed protocol was incompatible with XMPP and clients have begun using jabber:iq:private for this kind of functionality.Standards58Multi-User Text EditingThis document defines how several people may simultaneously edit text.Standards TrackDeferredCouncil2002-11-120.1asInitial version.Standards59Result Set ManagementThis specification defines an XMPP protocol extension that enables an entity to page through and otherwise manage the receipt of large result sets. The protocol can be used in the context of any XMPP protocol that might send large result sets (such as service discovery, multi-user chat, and publish-subscribe). While the requesting entity in such an interaction can explicitly request the use of result set management, an indication that result set management is in use can also be proactively included by the responding entity when returning a limited result set in response to a query.Standards TrackDraftCouncilrsm2006-09-201.0psaPer a vote of the Jabber Council, advanced status to Draft.Standards60Publish-SubscribeThis specification defines an XMPP protocol extension for generic publish-subscribe functionality. The protocol enables XMPP entities to create nodes (topics) at a pubsub service and publish information at those nodes; an event notification (with or without payload) is then broadcasted to all entities that have subscribed to the node. Pubsub therefore adheres to the classic Observer design pattern and can serve as the foundation for a wide variety of applications, including news feeds, content syndication, rich presence, geolocation, workflow systems, network management systems, and any other application that requires event notifications.Standards TrackDraftCouncilpubsub2023-09-071.26.0melvoAdd examples for publishing item without IDStandards61Shared NotesA simplistic mechanism for shared notes, modeled after common stickie note applications.InformationalDeferredCouncil2003-09-300.2psaAt the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational.Standards62Packet FilteringA framework for packet filtering rules.InformationalDeferredCouncil2021-03-040.2.2mwCross-document editorial adjustments for inclusive language.Standards63Basic Filtering OperationsA module that provides basic conditions and actions for packet filtering.InformationalDeferredCouncil2003-09-300.2psaAt the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational.Standards64XPath FilteringA module that provides an XPath matching condition for packet filtering.InformationalDeferredCouncil2003-09-300.2psaAt the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational.Standards65SOCKS5 BytestreamsThis document defines an XMPP protocol extension for establishing an out-of-band bytestream between any two XMPP users, mainly for the purpose of file transfer. The bytestream can be either direct (peer-to-peer) or mediated (though a special-purpose proxy server). The typical transport protocol used is TCP, although UDP can optionally be supported as well.Standards TrackDraftCouncilbytestreams2021-03-041.8.2mwCross-document editorial adjustments for inclusive language.Standards66Out of Band DataThis specification defines two XMPP protocol extensions for communicating URIs, one for use in XMPP message stanzas and the other for use in a structured request-response interaction via XMPP IQ stanzas. Among other things, this enables one entity to inform another entity about a file that is available at an HTTP URL.Standards TrackDraftCounciloob2006-08-161.5psaPer a vote of the Jabber Council, converted to Standards Track.Standards67Stock Data TransmissionThis document specifies a data format for stock data distribution in the Jabber community.Standards TrackDeferredCouncil2003-07-190.3ulsAdded transmission in messagesStandards68Field Standardization for Data FormsThis document specifies how to standardize field variables used in the context of jabber:x:data forms.InformationalActiveCouncilformtypes2020-05-051.3.0fsClarify field type handling of the FORM_TYPE field on submission forms.Standards69Compliance SIGA proposal to form a SIG devoted to issues related to protocol compliance.SIG FormationDeferredCouncil2003-01-290.1psaInitial releaseNone70Verifying HTTP Requests via XMPPThis specification defines an XMPP protocol extension that enables verification of an HTTP request via XMPP.Standards TrackDraftCouncilhttp-auth2016-12-091.0.1mp (XEP Editor: ssw)Mention a plaintext fallback.Standards71XHTML-IMThis specification defines an XHTML 1.0 Integration Set for use in exchanging instant messages that contain lightweight text markup. The protocol enables an XMPP entity to format a message using a small range of commonly-used HTML elements, attributes, and style properties that are suitable for use in instant messaging. The protocol also excludes HTML constructs that may introduce malware and other vulnerabilities (such as scripts and objects) for improved security.Standards TrackDeprecatedCouncilxhtml-im2018-03-081.5.4XEP Editor (jwi)Correction: Council voted to Deprecate, not Obsolete.Standards72SOAP Over XMPPThis specification defines methods for transporting SOAP messages over XMPP. Although the protocol supports only the request-response message exchange pattern, the protocol is formally defined as a SOAP Protocol Binding in accordance with version 1.2 of the W3C SOAP specification. In addition, a WSDL definition is defined for the purpose of advertising the availability of this protocol binding.Standards TrackDraftCouncilsoap2022-03-221.0.1glFix incorrect reference to sipub namespace.Standards73Basic IM Protocol SuiteThis document defines a recommended suite of Jabber/XMPP protocols to be supported by basic instant messaging and presence applications. Note: This protocol suite has been obsoleted by XEP-0211 and XEP-0212.Standards TrackObsoleteCouncilXEP-0242XEP-02432021-03-041.2.1mwCross-document editorial adjustments for inclusive language.Standards74Simple Access ControlA simple protocol for querying information for permissions.Standards TrackRetractedCouncilsac2003-10-200.2psaAt the request of the author, changed status to Retracted.Standards75Jabber Object Access Protocol (JOAP)The Jabber Object Access Protocol, or JOAP, defines a mechanism for creating Jabber-accessible object servers, and manipulating objects provided by those servers. It is intended for development of business applications with Jabber.Standards TrackDeferredCouncil2003-05-220.3espFor consistency, renamed hyphenated elements 'new-address' and 'return-type' to 'newAddress' and 'returnType' respectively. Added 'desc' element for human-readable descriptions to object servers and classes. Changed the 'writeable' [sic] attribute to the more correct 'writable'. Added experimental namespace recommendation in XMPP Registrar section.Standards76Malicious StanzasThis document defines an XMPP protocol extension for flagging malicious stanzas.HumorousActiveCouncilevil2019-10-091.0.1fsFix example.Standards77In-Band RegistrationThis specification defines an XMPP protocol extension for in-band registration with XMPP-based instant messaging servers and other services hosted on an XMPP network (such as groupchat rooms and gateways to non-XMPP IM services). The protocol is extensible via use of data forms, thus enabling services to gather a wide range of information during the registration process. The protocol also supports in-band password changes and cancellation of an existing registration.Standards TrackFinalCounciliq-register2012-01-252.4psaDefined service discovery support.Standards78Non-SASL AuthenticationThis document specifies a protocol for authentication with Jabber servers and services using the jabber:iq:auth namespace. Note Well: The protocol specified herein has been superseded in favor of SASL authentication as specified in RFC 3920 / RFC 6120, and is now obsolete.Standards TrackObsoleteCounciliq-authRFC 61202008-10-292.5psaPer a vote of the XMPP Council, changed status to Obsolete.Standards79Advanced Message ProcessingThis specification defines an XMPP protocol extension that enables entities to request, and servers to perform, advanced processing of XMPP message stanzas, including reliable data transport, time-sensitive delivery, and expiration of transient messages.Standards TrackDraftCouncilampXEP-00232005-11-301.2psaConsolidated and generalized security considerations.Standards80User LocationThis specification defines an XMPP protocol extension for communicating information about the current geographical or physical location of an entity.Standards TrackDraftCouncilgeoloc2015-12-011.9lsAdded <altaccuracy/> element.Standards81Jabber MIME TypeThis document specifies a MIME type for launching a Jabber client as a helper application from most modern web browsers, and for completing basic use cases once the client is launched.Standards TrackRetractedCouncilmimetype2005-07-190.5psaRetracted the proposal (again) in favor of draft-saintandre-xmpp-iri.Standards82XMPP Date and Time ProfilesThis document specifies a standardization of ISO 8601 profiles and their lexical representation for use in XMPP protocol extensions.InformationalActiveCouncil2021-08-311.1.1@YquasFix typosStandards83Nested Roster GroupsThis document defines an XMPP protocol extension that enables nested sub-groups to exist within the Jabber roster, while retaining backwards compatibility and ensuring that the roster remains usable by all clients.InformationalActiveCouncilnestedgroups2004-10-111.0psaPer a vote of the Jabber Council, advanced to a status of Active.Standards84User AvatarThis document defines an XMPP protocol extension for exchanging user avatars, which are small images or icons associated with human users. The protocol specifies payload formats for both avatar metadata and the image data itself. The payload formats are typically transported using the personal eventing profile of XMPP publish-subscribe as specified in XEP-0163.Standards TrackDraftCouncilavatarXEP-0008XEP-01532019-09-201.1.4egpUse xs:unsignedInt for bytes, the previous revision introduced xs:unsignedInteger which isn’t a valid XML Schema data type.Standards85Chat State NotificationsThis document defines an XMPP protocol extension for communicating the status of a user in a chat session, thus indicating whether a chat partner is actively engaged in the chat, composing a message, temporarily paused, inactive, or gone. The protocol can be used in the context of a one-to-one chat session or a multi-user chat room.Standards TrackFinalCouncilchatstatesXEP-00222009-09-232.1psaClarified that any state change is allowed.Standards86Error Condition MappingsA mapping to enable legacy entities to correctly handle errors from XMPP-aware entities.InformationalDeprecatedCouncil2004-02-171.0psaPer a vote of the Jabber Council, advanced status to Active.Standards87Stream InitiationA common method to initiate a stream with meta informationStandards TrackRetractedCouncilsiXEP-00952022-03-220.1.1glFix incorrect URL to SI namespace.Standards88Client WebtabsA protocol for displaying web-based tabs in clients.InformationalDeferredCouncilwebtab2004-03-140.4redAdded Terminology section and associated alterations and added clarification about what the webtabs are.Standards89Generic AlertsA protocol for generic alerts (similar to .NET Alerts service).Standards TrackDeferredCouncil2003-05-160.2redChanged element from x to alert.Standards90Legacy Entity TimeThis specification provides historical documentation of the legacy jabber:iq:time namespace, which has been deprecated in favor the urn:xmpp:time namespace defined in XEP-0202.HistoricalObsoleteCounciliq-timeXEP-02022009-05-271.2psaPer a vote of the XMPP Council, changed status to Obsolete.Standards91Legacy Delayed DeliveryThis specification provides historical documentation of the legacy jabber:x:delay namespace, which has been deprecated in favor the urn:xmpp:delay namespace defined in XEP-0203.HistoricalObsoleteCouncilx-delayXEP-02032009-05-271.4psaPer a vote of the XMPP Council, changed status to Obsolete.Standards92Software VersionThis specification defines an XMPP protocol extension for retrieving information about the software application associated with an XMPP entity. The protocol enables one entity to explicitly query another entity, where the response can include the name of the software application, the version of the software application, and the operating system on which the application is running.Standards TrackDraftCounciliq-version2007-02-151.1psaPer a vote of the XMPP Council, changed from Historical and Active to Standards Track and Draft; recommended use of Entity Capabilities instead of Software Version when presence information is available; added proviso to security considerations regarding disclosure of operating system information; added section on Service Discovery.Standards93Roster Item ExchangeThis specification provides canonical documentation of the jabber:x:roster namespace historically used within the Jabber community. NOTE WELL: This specification has been superseded by XEP-0144.HistoricalDeprecatedCouncilx-rosterXEP-01442005-08-261.2psaPer advancement of XEP-0144 by the Jabber Council, changed status to Deprecated.Standards94Agent InformationThis specification provides canonical documentation of the obsolete Agent Information namespace. Note: This document has been superseded by XEP-0030: Service Discovery.HistoricalObsoleteCounciliq-agentsXEP-00302003-10-080.3psaPer a vote of the Jabber Council, changed status to Obsolete. The protocol described herein is accurately defined but actively deprecated in favor of Service Discovery (XEP-0030).Standards95Stream InitiationThis specification defines an XMPP protocol extension for initiating a data stream between any two XMPP entities. The protocol includes the ability to include metadata about the stream and provides a pluggable framework so that various profiles of stream initiation can be defined for particular use cases (such as file transfer).Standards TrackDeprecatedCouncilsiXEP-01662017-11-291.2XEP Editor (ssw)Deprecated by vote of the council.Standards96SI File TransferThis specification defines a profile of the XMPP stream initiation extension for transferring files between two entities. The protocol provides a modular framework that enables the exchange of information about the file to be transferred as well as the negotiation of parameters such as the transport to be used.Standards TrackDeprecatedCouncilsi-filetransferXEP-02342022-03-221.3.1glFix incorrect reference to sipub namespaceStandards97iCal EnvelopeA simple mechanism to transport iCal data over the jabber protocolStandards TrackDeferredCouncilice2003-06-100.1jkInitial draft (jk).Standards98Enhanced Private XML StorageStandardizes "private" XML data storage.Standards TrackDeferredCouncilprivate-xml2003-06-250.1issInitial version.Standards99IQ Query Action ProtocolStandardizes behavior of actions for generic query behavior.Standards TrackDeferredCouncil2018-11-030.1.1pepFix a bunch of typos, batch-style.Standards100Gateway InteractionThis document specifies best practices for interactions between Jabber clients and client proxy gateways to legacy IM services.InformationalActiveCouncilgateway2005-10-051.0psaPer a vote of the Jabber Council, advanced status to Active.Standards101HTTP Authentication using Jabber TicketsThis document defines a protocol for authenticating HTTP requests using Jabber Tickets.Standards TrackDeferredCouncil2018-11-030.2.1pepFix a bunch of typos, batch-style.Standards102Security ExtensionsSecurity extensions for Jabber/XMPP.Standards TrackDeferredCouncil2003-06-250.1jlsInitial version.Standards103URL Address InformationThis document defines a structure for providing information about an Uniform Resource Locator (URL), and a protocol signaling retrieval states.Standards TrackDeferredCouncilurl-data2018-11-030.4.1pepFix a bunch of typos, batch-style.Standards104HTTP Scheme for URL DataThis document provides a schema description for detailed information about HTTP URLs.Standards TrackDeferredCouncil2020-12-300.3.1psAdd missing 'http:' prefix in example elementsStandards105Tree Transfer Stream Initiation ProfileA profile describing metadata for transferring trees of files using stream inititation.Standards TrackDeferredCouncilsi-treetransfer2018-11-030.3.1pepFix a bunch of typos, batch-style.Standards106JID EscapingThis specification defines a mechanism that enables the display in Jabber Identifiers (JIDs) of characters normally disallowed in localparts. Although these characters spaces, double quote, ampersand, single quote, forward slash, colon, less than, greater than, and at-sign cannot be included in XMPP localparts, JID Escaping provides a native XMPP escaping mechanism for these characters so that the displayed version of a Jabber Identifier can appear to include these characters. This mechanism can also be used to translate non-XMPP addreses into XMPP syntax, for example when gatewaying between XMPP and a non-XMPP communications technology such as email.Standards TrackDraftCounciljid\20escaping2016-07-081.1.1sswUpdate references to the node identifier to localpart, replace stringprep references with PRECIS, and update JID RFC references.Standards107User MoodThis specification defines a payload format for communicating information about user moods, such as whether a person is currently happy, sad, angry, or annoyed. The payload format is typically transported using the personal eventing protocol, a profile of XMPP publish-subscribe specified in XEP-0163.Standards TrackDraftCouncilmood2024-06-201.2.2XEP Editor (dg)Fixed typoStandards108User ActivityThis specification defines a payload format for communicating information about user activities, such as whether a person is currently working, travelling, or relaxing. The payload format is typically transported using the personal eventing protocol, a profile of XMPP publish-subscribe specified in XEP-0163.Standards TrackDraftCouncilactivity2008-10-291.3psaAllowed empty activity element to signify a pause in publishing; added undefined element to handle any unspecified activity; also added more activities: dancing, fishing, hiding, praying, smoking, thinking.Standards109Out-of-Office MessagesThis document defines an XMPP protocol extension for communicating out-of-office status.Standards TrackDeferredCouncilooo2022-03-220.3.2glFix not well-formed XML in example.Standards110Generic MapsA protocol for transport of generic maps (graphical displays of specific subsets of buddies).Standards TrackDeferredCouncil2003-07-280.1jkInitial version.Standards111A Transport for Initiating and Negotiating Sessions (TINS)This document defined a SIP-compatible transport for initiating and negotiating sessions using SDP over XMPP.Standards TrackRetractedCounciltinsXEP-01662005-12-210.8psa/jjhRetracted in favor of Jingle (XEP-0166).Standards112User Physical LocationThis document defines a protocol for communicating information about the current physical location of a Jabber entity. NOTE WELL: The protocol defined herein has been folded into XEP-0080.Standards TrackObsoleteCouncilphyslocXEP-00802004-10-121.0psaPer a vote of the Jabber Council, advanced status to Draft.Standards113Simple WhiteboardingA proposal for an extremely simple whiteboarding protocol over Jabber.InformationalDeferredCouncil2003-09-070.2hjiAdded optional stroke, stroke-width and id attributes to the path element; added move and delete elements; added remark on Coccinella protocol and tkabber to introduction; added explanation about text-drawing and clear-screen discussion to implementation notes.Standards114Jabber Component ProtocolThis specification documents the existing protocol used for communication between servers and "external" components over the Jabber network.HistoricalActiveCouncilcomponent2012-01-251.6psaRemoved unnecessary and unimplemented requirement to escape predefined XML entities.Standards115Entity CapabilitiesThis document defines an XMPP protocol extension for broadcasting and dynamically discovering client, device, or generic entity capabilities. In order to minimize network impact, the transport mechanism is standard XMPP presence broadcast (thus forestalling the need for polling related to service discovery data), the capabilities information can be cached either within a session or across sessions, and the format has been kept as small as possible.Standards TrackDraftCouncilcaps2022-03-081.6.0sswMention preimage attacks explicitlyStandards116Encrypted Session NegotiationThis document specifies an XMPP protocol extension for negotiating an end-to-end encrypted session.Standards TrackDeferredCouncil2007-05-300.16ipSplit pubkey field into init_pubkey and resp_pubkey fields; modified namespaces to reflect XMPP Registrar procedures regarding URN issuance.Standards117Intermediate IM Protocol SuiteThis document defines a recommended suite of Jabber/XMPP protocols to be supported by intermediate instant messaging and presence applications. Note: This protocol suite has been obsoleted by XEP-0213 and XEP-0216.Standards TrackObsoleteCouncilXEP-0213XEP-02162007-10-301.1psaPer a vote of the XMPP Council, changed status to Obsolete and referred implementors to XEP-0213 and XEP-0216.Standards118User TuneThis specification defines a payload format for communicating information about music to which a user is listening, including the title, track number, collection, performer, composer, length, and user rating. The payload format is typically transported using the personal eventing protocol, a profile of XMPP publish-subscribe specified in XEP-0163.Standards TrackDraftCounciltune2020-10-201.3.0mwbAdd further tags for non-pop musicStandards119Extended Presence Protocol SuiteThis document specifies a set of XMPP extensions that provide support for extended presence information.Standards TrackRetractedCouncilXEP-01632006-08-080.8psaRetracted: superseded by Personal Eventing via Pubsub (XEP-0163).Standards120InfobitsNOTE: This proposal was retracted by the author on 2004-02-19.Standards TrackRetractedCouncilinfobits2004-01-220.5psaClarified rationale for not using namespaces; added bundles; added dataype attribute for <bit/> elements; added Matt Miller as co-author.Standards121Dublin Core Infobits MappingNOTE: This proposal was retracted by the author on 2004-02-19.InformationalRetractedCouncil2003-12-150.6psaConfined proposal to Dublin Core only.Standards122Data Forms ValidationThis specification defines a backwards-compatible extension to the XMPP Data Forms protocol that enables applications to specify additional validation guidelines related to a form, such as validation of standard XML datatypes, application-specific datatypes, value ranges, and regular expressions.Standards TrackDraftCouncilxdata-validate2018-03-211.0.2fsRemove text about element emptiness.Standards123Entity MetadataNOTE: This proposal was retracted by the author on 2004-02-19.Standards TrackRetractedCouncil2003-12-160.3psaIncorporated infobits changes and vCard infobit mappings; metadata about relationships to be moved to forthcoming specification.Standards124Bidirectional-streams Over Synchronous HTTP (BOSH)This specification defines a transport protocol that emulates the semantics of a long-lived, bidirectional TCP connection between two entities (such as a client and a server) by efficiently using multiple synchronous HTTP request/response pairs without requiring the use of frequent polling or chunked responses.Standards TrackDraftCouncilbosh2021-05-221.11.2mwFix incorrect attribute name in text (from vs. to)Standards125vCard Infobits MappingNOTE: This proposal was retracted by the author on 2004-02-19.InformationalRetractedCouncil2003-12-150.1psaInitial version, split off from version 0.5 of XEP-0121 (with revisions to more clearly map vCard elements); further mapping and description required.Standards126InvisibilityThis specification defines best practices regarding implementation of invisible presence by means of XMPP privacy lists.InformationalDeprecatedCouncilXEP-01862005-08-191.1psaCorrected order of presence and IQ stanzas to ensure proper processing by server.Standards127Common Alerting Protocol (CAP) Over XMPPThis document specifies a method for sending Common Alerting Protocol (CAP) data over XMPP.InformationalActiveCouncil2004-12-091.0psaPer a vote of the Jabber Council, advanced status to Active.Standards128Service Discovery ExtensionsThis document specifies best practices for including extended information in Service Discovery results.InformationalActiveCouncil2019-07-301.0.1gdkRemove now-incorrect informational statement about the likelihood of multiple forms in a single disco#info reply.Standards129WebDAV File TransfersThis document specifies a method for completing file transfers between XMPP entities using WebDAV.Standards TrackDeferredCouncil2007-04-190.3psaCorrected to reflect changes to XEP-0070; incorporated WedDAV feedback.Standards130Waiting ListsThis document defines an XMPP protocol extension that enables a user to add a non-IM user to a waiting list and be informed when the contact creates an IM account.HistoricalDeprecatedCouncilwaitinglist2021-03-041.4.1mwCross-document editorial adjustments for inclusive language.Standards131Stanza Headers and Internet MetadataThis specification defines an XMPP protocol extension for representing non-address-related headers in an XML format that is appropriate for use in XMPP. While the protocol provides a flexible mechanism for representing many kinds of standard Internet metadata, a registry of values is defined to structure the possible range of headers, and the inital registration includes headers from email, HTTP, MIME, and SIP.Standards TrackDraftCouncilshim2006-07-121.2psaAdded Urgency header from registry.Standards132Presence Obtained via Kinesthetic Excitation (POKE)This document defines an XMPP protocol extension that enables probing for presence via physical rather than electronic means.HumorousActiveCouncilpoke2004-04-011.0psaApril Fools!None133Service AdministrationThis document defines recommended best practices for service-level administration of servers and components using Ad-Hoc Commands.InformationalActiveCounciladmin2024-09-011.3.1dcFixed typo in example for Get User Last Login TimeStandards134XMPP Design GuidelinesThis document defines best practices for the intelligent design of Jabber protocols and other XMPP extensions.InformationalActiveCouncil2004-12-091.1psaRevised text regarding recommended stanza sizes.Standards135File SharingThis document specifies a simple extension to existing protocols for file sharing over Jabber/XMPP.Standards TrackDeferredCouncilfiles2004-06-040.1psaInitial version.Standards136Message ArchivingThis document defines mechanisms and preferences for the server-side archiving and retrieval of XMPP messages.Standards TrackDeprecatedCouncilarchiveXEP-03132021-03-041.3.1mwCross-document editorial adjustments for inclusive language.Standards137Publishing Stream Initiation RequestsThis specification defines an XMPP protocol extension that enables an XMPP entity to advertise the fact that it is willing accept a particular Stream Initiation request. The protocol is used mainly to inform other entities that a particular file is available for transfer via the File Transfer protocol defined in XEP-0096.Standards TrackDeprecatedCouncilsipub2018-02-281.1XEP Editor (ssw)Deprecated per a vote of the XMPP Council.Standards138Stream CompressionThis document defines an XMPP protocol extension for negotiating compression of XML streams, especially in situations where standard TLS compression cannot be negotiated. The protocol provides a modular framework that can accommodate a wide range of compression algorithms; the ZLIB compression algorithm is mandatory-to-implement, but implementations may support other algorithms in addition.Standards TrackObsoleteCouncilcompress2022-02-102.1tjbObsolete due to security vulnerability.Standards139Security SIGThis document proposes the formation of a Special Interest Group devoted to the analysis of security threats related to Jabber technologies.SIG FormationRetractedCouncil2004-09-150.2psaChanged status to Retracted since it now appears unnecessary to form a SIG in order to complete this work; rather, it should be sufficient to write a XEP and solicit feedback from appropriate security experts before the Last Call. However, such a XEP should use the process described herein.None140Shared GroupsThis document defines a protocol profile for centrally defined and administered roster groups; the protocol described herein has been retracted in favor of XEP-0144: Roster Item Exchange.InformationalRetractedCouncilgroupsXEP-01442004-10-270.2psaRetracted in favor of XEP-0144.Standards141Data Forms LayoutThis specification defines a backwards-compatible extension to the XMPP Data Forms protocol that enables an application to specify form layouts, including the layout of form fields, sections within pages, and subsections within sections.Standards TrackDraftCouncilxdata-layout2005-05-121.0psaPer a vote of the Jabber Council, advanced status to Draft.Standards142Workgroup QueuesThis document defines an XMPP protocol extension that enables a user to communicate with a representative of an organization, department, or workgroup.Standards TrackDeferredCouncil2018-11-030.3.1pepFix a bunch of typos, batch-style.Standards143Guidelines for Authors of XMPP Extension ProtocolsThis document provides information intended to assist authors of XMPP Extension Protocols.ProceduralActiveCouncil2016-12-021.1.2psaReflect preference for GitHub pull requests to maintain existing XEPs; update terminology to refer to XMPP Extensions Editor team.Standards144Roster Item ExchangeThis specification defines an XMPP protocol extension for exchanging contact list items, including the ability to suggest whether the item is to be added, deleted, or modified in the contact list of the recipient, as well as the suggested roster group for the item.Standards TrackDraftCouncilrosterxXEP-00932017-11-281.1.1dtr (XEP Editor: jwi)Fix JID exampleStandards145AnnotationsThis document defines a protocol for making annotations about roster items and other entities.HistoricalActiveCouncilrosternotes2006-03-231.0psaPer a vote of the Jabber Council, advanced to Active.Standards146Remote Controlling ClientsThis document specifies recommended best practices for remote controlling clients using Ad-Hoc Commands.InformationalObsoleteCouncilrc2017-11-071.1XEP Editor (ssw)Per a vote of the XMPP Council, advanced to Obsolete.Standards147XMPP URI Scheme Query ComponentsThis document defines a registry of query components to be used in the context of XMPP IRIs/URIs and also specifies an initial submission of values to that registry.InformationalActiveCouncilquerytypes2006-09-131.2psaRemoved probe action.Standards148Instant Messaging Intelligence Quotient (IM IQ)This specification provides canonical documentation of the jabber:iq:iq namespace.HumorousActiveCounciliq-iq2022-11-031.1pepReplace shtml linkStandards149Time PeriodsThis document defines a method to specify the valid time periods for states, events, and activities communicated via Jabber/XMPP protocols.InformationalActiveCouncil2006-01-241.0psaPer a vote of the Jabber Council, advanced status to Active.Standards150Use of Entity Tags in XMPP ExtensionsThis document defines best practices for the use of Entity Tags in XMPP extensions.InformationalDeferredCouncil2005-08-090.2psaAdded security considerations.Standards151Virtual PresenceThis document proposes extensions to the Jabber groupchat protocol for virtual presence on Web pages.Standards TrackDeferredCouncil2005-07-050.2hwSimplified VPI file and rule syntax, basically omitting the rule/search/replace tags.Standards152Reachability AddressesThis document defines an XMPP protocol extension for communicating information about how an entity can be reached temporarily using methods other than the entity's normal JID.Standards TrackDraftCouncilreach2014-02-251.0XEP Editor (mm)Per a vote of the XMPP Council, advanced specification from Experimental to Draft.Standards153vCard-Based AvatarsThis document provides historical documentation of a vCard-based protocol for exchanging user avatars.HistoricalActiveCouncilvcard-avatar2024-06-101.1.1egpXEP-0054 says “Email addresses MUST be contained in a <USERID> element”.Standards154User ProfileThis document specifies how to represent and manage profile data about IM users and other XMPP entities using the XMPP Data Forms extension.Standards TrackDeferredCouncilXEP-00542021-03-040.6.1mwCross-document editorial adjustments for inclusive language.Standards155Stanza Session NegotiationThis specification defines a method for formally negotiating the exchange of XML stanzas between two XMPP entities. The method uses feature negotiation forms sent via XMPP message stanzas to enable session initiation between entities that do not share presence information or have knowledge of full JabberIDs and therefore is also suitable for use across gateways to SIP-based systems. A wide range of session parameters can be negotiated, including the use of end-to-end encryption, chat state notifications, XHTML-IM formatting, and message archiving.Standards TrackDraftCouncilssn2016-01-201.2XEP Editor (mam)Update missing 'xmppsipim' reference to RFC 7572.Standards156Discovering Alternative XMPP Connection MethodsThis document defines an XMPP Extension Protocol for discovering alternative methods of connecting to an XMPP server via Web Host Metadata Link format.Standards TrackDraftCouncilalt-connections2022-02-101.4.0tjbRemove DNS _xmppconnect method due to security vulnerability.Standards157Contact Addresses for XMPP ServicesThis document defines a method for specifying contact addresses related to an XMPP service.InformationalActiveCouncil2021-03-041.1.1mwCross-document editorial adjustments for inclusive language.Standards158CAPTCHA FormsThis document specifies an XMPP protocol extension that entities may use to discover whether the sender of an XML stanza is a human user or a robot.Standards TrackDraftCouncilcaptcha2019-11-071.0.1egp, mbUse the correct FORM_TYPE for extended IBR, and use a proper MUC join as an example. Also fix typos.Standards159Spim-Blocking ControlThis document defines an XMPP protocol extension that enables clients to control how their servers may block spim that is addressed to them. It specifies a default privacy list fall-through action.Standards TrackDeferredCouncil2006-07-110.3psaUpdated to reflect move of privacy rules to XEP-0016; modified provisional namespaces to adhere to XMPP Registrar policies; completed editorial review.Standards160Best Practices for Handling Offline MessagesThis document specifies best practices to be followed by Jabber/XMPP servers in handling messages sent to recipients who are offline.InformationalActiveCouncilmsgoffline2016-10-071.0.1egpUse the correct namespace in the Service Discovery examples; fix some formatting.Standards161Abuse ReportingThis document specifies an XMPP protocol extension for reporting abusive XMPP stanzas.Standards TrackDeferredCouncilXEP-02682007-05-060.4psaGeneralized text and protocol to handle all kinds of abuse and folded in content from XEP-0236.Standards162Best Practices for Roster and Subscription ManagementThis document specifies best practices for roster and subscription management in Jabber/XMPP clients.InformationalDeferredCouncil2020-06-250.2.1psFixed small typosStandards163Personal Eventing ProtocolThis specification defines semantics for using the XMPP publish-subscribe protocol to broadcast state change events associated with an instant messaging and presence account. This profile of pubsub therefore enables a standard XMPP user account to function as a virtual pubsub service, easing the discovery of syndicated data and event notifications associated with such an account.Standards TrackDraftCouncilpep2022-02-161.2.2melvoAdd comma and fix typoStandards JIG164vCard FilteringThis document specifies a mechanism for requesting specific sections of a vCard.Standards TrackDeferredCouncilvcard-temp-filter2005-11-160.1psaInitial version.Standards165Best Practices to Discourage JID MimickingThis document recommends best practices to discourage mimicking of Jabber IDs.InformationalDeferredCouncil2007-12-130.6psaAdded security consideration about storage of handle in the roster.Standards166JingleThis specification defines an XMPP protocol extension for initiating and managing peer-to-peer media sessions between two XMPP entities in a way that is interoperable with existing Internet standards. The protocol provides a pluggable model that enables the core session management semantics (compatible with SIP) to be used for a wide variety of application types (e.g., voice chat, video chat, file transfer) and with a wide variety of transport methods (e.g., TCP, UDP, ICE, application-specific transports).Standards TrackDraftCounciljingleXEP-00952018-09-191.1.2egpAdd missing security-info in section 5.1, forgotten in version 0.35.Standards167Jingle RTP SessionsThis specification defines a Jingle application type for negotiating one or more sessions that use the Real-time Transport Protocol (RTP) to exchange media such as voice or video. The application type includes a straightforward mapping to Session Description Protocol (SDP) for interworking with SIP media endpoints.Standards TrackDraftCounciljingle-rtp2022-09-261.2.2melvoSpecify attribute 'name' of 'mute' and 'unmute' elements as optional in schemaStandards168Resource Application PriorityThis document defines an XMPP protocol extension to indicate the presence priority of XMPP resources for applications other than standard XMPP messaging.Standards TrackDeferredCouncil2008-09-260.7psa* More clearly defined the meaning of "application type". * Modified namespaces to incorporate namespace versioning.Standards169Twas The Night Before Christmas (Jabber Version)The classic Christmas poem annotated with XMPP protocols.HumorousActiveCouncil2021-03-041.1.1mwCross-document editorial adjustments for inclusive language.Standards170Recommended Order of Stream Feature NegotiationThis document specifies a recommended order for negotiation of XMPP stream features.InformationalActiveCouncil2007-01-041.0psaPer a vote of the XMPP Council, advanced status to Active.Standards171Language TranslationThis specification defines an XMPP protocol extension for providing language translation facilities over XMPP. It supports human, machine, client-based, and server-based translations.Standards TrackDraftCouncillangtrans2015-10-151.1.1XEP Editor (mam)Corrected XML schema to note a number of constructs are optional not required (Christian Schudt).Standards172User NicknameThis specification defines a protocol for communicating user nicknames, either in XMPP presence subscription requests or in XMPP messages.Standards TrackDraftCouncilnick2012-03-211.1psaBased on implementation and deployment experience, discouraged use in Multi-User Chat; also removed text about Waiting Lists because of lack of deployment.Standards173Pubsub Subscription StorageThis document defines an XMPP protocol extension for storing subscriptions to Pubsub nodes.HistoricalDeferredCouncilpubsubs2006-02-090.1psaInitial version; changed title to Pubsub Subscription Storage; changed namespace to storage:pubsubs for consistency with other storage XEPs.Standards174Serverless MessagingThis specification defines how to communicate over local or wide-area networks using the principles of zero-configuration networking for endpoint discovery and the syntax of XML streams and XMPP messaging for real-time communication. This method uses DNS-based Service Discovery and Multicast DNS to discover entities that support the protocol, including their IP addresses and preferred ports. Any two entities can then negotiate a serverless connection using XML streams in order to exchange XMPP message and IQ stanzas.Standards TrackFinalCouncillinklocal2018-02-082.0.1csFix incorrect STARTTLS examples.Standards175Best Practices for Use of SASL ANONYMOUSThis document specifies best practices for use of the SASL ANONYMOUS mechanism in the context of client authentication with an XMPP server.InformationalActiveCouncil2009-09-301.2psaProvided more detailed recommendations regarding usage restrictions for anonymous users, including the concept of different deployment types; added note about the account/anonymous service discovery identity.Standards176Jingle ICE-UDP Transport MethodThis specification defines a Jingle transport method that results in sending media data using raw datagram associations via the User Datagram Protocol (UDP). This transport method is negotiated via the Interactive Connectivity Establishment (ICE) methodology, which provides robust NAT traversal for media traffic.Standards TrackDraftCounciljingle-ice-udp2021-03-041.1.1mwCross-document editorial adjustments for inclusive language.Standards177Jingle Raw UDP Transport MethodThis specification defines a Jingle transport method that results in sending media data using raw datagram associations via the User Datagram Protocol (UDP). This simple transport method does not provide NAT traversal, and the ICE-UDP transport method should be used if NAT traversal is required.Standards TrackDraftCounciljingle-raw-udp2020-12-101.1.1egpMade type optional in the schema (it’s a MAY in section 4.2), unlike in XEP-0176.Standards178Best Practices for Use of SASL EXTERNAL with CertificatesThis document specifies best practices for XMPP usage of the SASL EXTERNAL mechanism in the context of PKIX certificates.InformationalActiveCouncil2020-08-191.2@woj-tekAdd fallback to dialback if EXTERNAL authentication fails due to practical experience.Standards179Jingle IAX Transport MethodThis document defines a Jingle transport method that results in using the Inter-Asterisk eXchange protocol (IAX) for the final communication.Standards TrackDeferredCounciljingle-iax2006-03-230.2psaRecommended use of IAX-native methods for DTMF.Standards180Jingle Video via RTPNote: This specification has been retracted in favor of XEP-0167, which now consolidates both audio and video chat via RTP and therefore contains the content originally published in this specification; please refer to XEP-0167 for the most up-to-date definition of XMPP video chat. This specification defines a Jingle application type for negotiating a video chat or other video session. The application type uses the Real-time Transport Protocol (RTP) for the underlying media exchange and provides a straightforward mapping to Session Description Protocol (SDP) for interworking with SIP media endpoints.Standards TrackRetractedCouncilXEP-01672008-06-040.13psaRetracted in favor of XEP-0167, which now consolidates both audio and video chat via RTP and therefore contains the content originally published in this specification.Standards181Jingle DTMFThis specification defines an XML format for encapsulating Dual Tone Multi-Frequency (DTMF) events in informational messages sent within the context of Jingle audio sessions, e.g. to be used in the context of Interactive Voice Response (IVR) systems. Note well that this format is not to be used in the context of RTP sessions, where native RTP methods are to be used instead.Standards TrackDeferredCouncil2009-10-020.12psaCorrected definitions and schema to make it clear that the code attribute contains one and only one character representing a DTMF tone.Standards182Application-Specific Error ConditionsThis document defines a registry of application-specific error conditions.ProceduralActiveCouncilerrors2008-03-051.1psaChanged namespace from http://jabber.org/protocol/errors to urn:xmpp:errors.Standards183Jingle Telepathy TransportThis document defines a telepathic transport method for establishing Extra-Sensory Perception (ESP) streams.HumorousActiveCounciltelepathy2006-04-011.0psaApril Fools!Standards184Message Delivery ReceiptsThis specification defines an XMPP protocol extension for message delivery receipts, whereby the sender of a message can request notification that the message has been delivered to a client controlled by the intended recipient.Standards TrackDraftCouncilreceiptsXEP-0022 (in part)2018-08-021.4.0egpMake the 'id' attribute required, this extension makes no sense otherwise.Standards185Dialback Key Generation and ValidationThis document provides a recommended method for generating and validating the keys used in the XMPP server dialback protocol.InformationalActiveCouncil2007-02-151.0psaPer a vote of the XMPP Council, advanced specification to Active.Standards186Invisible CommandThis document specifies an XMPP protocol extension for user invisibility.Standards TrackDeferredCouncilinvisibleXEP-0018XEP-01262018-12-060.14.0XEP Editor (jsc)Defer due to lack of activity.Standards2017-12-21187Offline Encrypted SessionsThis document specifies an end-to-end encryption protocol for offline XMPP communication sessions.Standards TrackDeferredCouncil2007-05-300.5ip/psaAdded reference to Requirements for Encrypted Sessions; modified namespaces to reflect XMPP Registrar procedures regarding URN issuance.Standards188Cryptographic Design of Encrypted SessionsThis document describes the cryptographic design that underpins the XMPP protocol extensions Encrypted Session Negotiation, Offline Encrypted Sessions and Stanza Encryption.InformationalDeferredCouncil2007-05-300.6ipSIGMA-R negotiates both isPKA and isPKB fieldsStandards189Public Key PublishingThis specification defines a method by which an entity can publish its public keys over XMPP.Standards TrackDeferredCouncil2010-07-150.14psaDefined an RSA-specific child element of the pubkey element to contain the modulus, public exponent, and fingerprint directly (rather than a DER-encoded format that depends on ASN.1); specified that the public exponent should be 65537; clarified the fingerprint generation method and updated all of the fingerprint formats to enable hash agility; incremented namespaces from version 1 to version 2.Standards190Best Practice for Closing Idle StreamsThis document specifies a best practice for closing an XML stream that is perceived to be idle.InformationalObsoleteCouncilRFC 61202012-03-061.1psaChanged status to Obsolete because it is superseded by RFC 6120.Standards191Blocking CommandThis document specifies an XMPP protocol extension for communications blocking.Standards TrackDraftCouncilblockingXEP-00162015-03-121.3sswClarify that arbitrary JIDs may be blocked to match current usage of this spec in the wild.Standards192Proposed Stream Feature ImprovementsThis document proposes improvements to the XML stream features definition for inclusion in the specification that supersedes RFC 3920.Standards TrackObsoleteCouncilRFC 61202012-02-081.2psaPer a vote of the XMPP Council, changed status from Deprecated to Obsolete.Standards193Proposed Resource Binding ImprovementsThis document proposes improvements to the definition of resource binding for inclusion in the specification that supersedes RFC 3920.Standards TrackObsoleteCouncil2012-02-081.2psaPer a vote of the XMPP Council, changed status from Deprecated to Obsolete.Standards194User ChattingThis specification defines an XMPP protocol extension for communicating information about the chatrooms a user visits.Standards TrackDeferredCouncil2008-09-250.3psaModified namespace in accordance with protocol versioning policies.Standards195User BrowsingThis document defines an XMPP protocol extension for communicating information about the web pages a user visits.Standards TrackDeferredCouncil2008-09-250.3psaModified namespace in accordance with protocol versioning policies.Standards196User GamingThis document defines an XMPP protocol extension for communicating information about the games a user plays.Standards TrackDeferredCouncil2008-09-250.3psaModified namespace in accordance with protocol versioning policies.Standards197User ViewingThis document defines an XMPP protocol extension for communicating information about the television shows, movies, or other videos that a user watches.Standards TrackDeferredCouncil2008-09-250.3psaModified namespace in accordance with protocol versioning policies.Standards198Stream ManagementThis specification defines an XMPP protocol extension for active management of an XML stream between two XMPP entities, including features for stanza acknowledgements and stream resumption.Standards TrackDraftCouncilsm2024-09-241.6.2gkClarify server enabling stream management without requested resume functionality.Standards199XMPP PingThis specification defines an XMPP protocol extension for sending application-level pings over XML streams. Such pings can be sent from a client to a server, from one server to another, or end-to-end.Standards TrackFinalCouncilping2019-03-262.0.1o01egFix incorrect IQ type in example (result => error)Standards200Stanza EncryptionThis document specifies an XMPP protocol extension for session-based stanza encryption.Standards TrackDeferredCouncil2007-05-300.2ipAdded reference to Simplified Encrypted Session Negotiation; modified namespaces to reflect XMPP Registrar procedures regarding URN issuance.Standards201Best Practices for Message ThreadsThis specification defines recommended handling of XMPP message threads.InformationalActiveCouncil2010-11-291.0psaPer a vote of the XMPP Council, advanced specification to Active.Standards202Entity TimeThis specification defines an XMPP protocol extension for communicating the local time of an entity, including the time in UTC according to the entity as well as the offset from UTC. The time format itself conforms to the dateTime profile of ISO 8601 defined in XEP-0082.Standards TrackFinalCounciltimeXEP-00902009-09-112.0psaPer a vote of the XMPP Council, advanced specification from Draft to Final.Standards203Delayed DeliveryThis specification defines an XMPP protocol extension for communicating the fact that an XML stanza has been delivered with a delay, for example because a message has been stored on a server while the intended recipient was offline or because a message is contained in the history of a multi-user chat room.Standards TrackFinalCouncildelayXEP-00912009-09-152.0psaPer a vote of the XMPP Council, advanced specification from Draft to Final; also addressed a security concern about forged timestamps that was provided during the Call for Experience.Standards204Collaborative Data ObjectsThis document specifies an XMPP protocol extension that supports the exchange of structured data objects.Standards TrackDeferredCouncil2007-01-170.1psaInitial published version; modified namespaces to adhere to XSF policy.Standards205Best Practices to Discourage Denial of Service AttacksThis document recommends a number of practices that can help discourage denial of service attacks on XMPP-based networks.InformationalActiveCouncil2021-03-041.0.2mwCross-document editorial adjustments for inclusive language.Standards206XMPP Over BOSHThis specification defines how the Bidirectional-streams Over Synchronous HTTP (BOSH) technology can be used to transport XMPP stanzas. The result is an HTTP binding for XMPP communications that is useful in situations where a device or client is unable to maintain a long-lived TCP connection to an XMPP server.Standards TrackDraftCouncilxbosh2014-04-091.4ls/wtIncorporated patches from community review.Standards207XMPP Eventing via PubsubThis document specifies semantics for using the XMPP publish-subscribe protocol to handle generic XMPP events (including presence, one-to-one messaging, and groupchat).HumorousActiveCouncil2007-04-011.0psaApril Fools!Standards JIG208Bootstrapping Implementation of JingleThis document provides guidelines to XMPP client developers for bootstrapping implementation of Jingle technologies.InformationalRetractedCouncil2009-01-060.4psaRetracted because unnecessary given the wide implementation of Jingle.Standards209MetacontactsThis document specifies an XMPP protocol extension for defining metacontacts and grouping member JIDs.Standards TrackDeferredCouncil2007-04-100.1psaInitial published version.Standards JIG210Requirements for Encrypted SessionsThis document describes the requirements for an XMPP end-to-end encrypted session protocol.Standards TrackDeferredCouncil2007-05-300.2ipClarified introduction.Standards211XMPP Basic Client 2008This document defines the XMPP Basic Client 2008 compliance level.Standards TrackObsoleteCouncilXEP-02422007-07-111.0psaPer a vote of the XMPP Council, advanced to Draft.Standards212XMPP Basic Server 2008This document defines the XMPP Basic Server 2008 compliance level.Standards TrackObsoleteCouncilXEP-02432007-07-111.0psaPer a vote of the XMPP Council, advanced to Draft.Standards213XMPP Intermediate IM Client 2008This document defines the XMPP Intermediate IM Client 2008 compliance level.Standards TrackObsoleteCouncilXEP-02422007-07-111.0psaPer a vote of the XMPP Council, advanced to Draft.Standards214File Repository and SharingWhile a protocol has been described for initiating a file transfer from one user to another, there is not yet a defined way for users to designate a set of files as available for retrieval by other users of their choosing. This extension defines a common syntax for this purpose which is based on PubSub Collections.Standards TrackDeferredCouncil2022-03-220.3.1glFix incorrect reference to sipub namespace.Standards215External Service DiscoveryThis document specifies an XMPP protocol extension for discovering services external to the XMPP network.Standards TrackDraftCouncilextdisco2022-08-231.0.0XEP Editor (jsc)Accept as Stable as per Council Vote from 2022-08-03.Standards2022-07-27216XMPP Intermediate IM Server 2008This document defines the XMPP Intermedate IM Server 2008 compliance level.Standards TrackObsoleteCouncilXEP-02432007-07-111.0psaPer a vote of the XMPP Council, advanced to Draft.Standards217Simplified Encrypted Session NegotiationThis document specifies a minimal subset of the Encrypted Session Negotiation protocol sufficent for negotiating an end-to-end encrypted session.Standards TrackDeferredCouncil2007-05-300.1psaInitial published version; modified namespaces to reflect XMPP Registrar procedures regarding URN issuance.Standards218Bootstrapping Implementation of Encrypted SessionsThis document provides guidelines to client and library developers for bootstrapping implementation of the encrypted sessions technology.InformationalDeferredCouncil2007-05-300.1psaInitial published version.Standards219Hop CheckThis document defines an XMPP protocol extension that enables an entity to check the security of client-to-server and server-to-server hops between it and another entity. Note: This specification has been retracted by the author because the problem is not compelling and a real solution would be too complicated.Standards TrackRetractedCouncil2008-06-120.3psaRetracted by the author because the problem is not compelling and a real solution would be too complicated.Standards220Server DialbackThis specification defines the Server Dialback protocol, which is used between XMPP servers to provide identity verification. Server Dialback uses the Domain Name System (DNS) as the basis for verifying identity; the basic approach is that when a receiving server accepts a server-to-server connection from an initiating server, it does not process XMPP stanzas over the connection until it has verified the initiating server's identity. Additionally, the protocol is used to negotiate whether the receiving server is accepting stanzas for the target domain. Although Server Dialback does not provide strong authentication and is subject to DNS poisoning attacks, it has effectively prevented most address spoofing on the XMPP network since its development in the year 2000.Standards TrackDraftCouncildialback2015-03-121.1.1sswUpdate DNA framework reference to RFC 7712.Standards221Data Forms Media ElementThis specification defines an XMPP protocol extension for including media data in XEP-0004 data forms.Standards TrackDraftCouncilmedia-element2008-09-031.0psaPer a vote of the XMPP Council, advanced status to Draft; concurrently, the XMPP Registrar issued the urn:xmpp:media-element namespace.Standards222Persistent Storage of Public Data via PubSubThis specification defines best practices for using the XMPP publish-subscribe extension to persistently store semi-public data objects such as public keys and personal profiles.InformationalActiveCouncil2008-09-081.0psaPer a vote of the XMPP Council, advanced specification to Active.Standards JIG223Persistent Storage of Private Data via PubSubThis specification defines best practices for using the XMPP publish-subscribe extension to persistently store private information such as bookmarks and client configuration options.InformationalActiveCouncil2023-03-231.1.1kaAdd notes about checking event origin (in reaction to CVE-2023-28686).Standards JIG224AttentionThis document defines an XMPP protocol extension for getting the attention of another user.Standards TrackDraftCouncilattention2008-11-131.0psaPer a vote of the XMPP Council, advanced specification to Draft.Standards225Component ConnectionsThis document specifies a standards-track XMPP protocol extension that enables server components to connect to XMPP servers.Standards TrackDeferredCouncilcomponent2008-10-060.2psaModified namespace to incorporate namespace versioning; clarified that the value of the <hostname/> element can be either <domain> or <domain/resource>.Standards226Message Stanza ProfilesThis document specifies best practices for generating and handling extended content in XMPP message stanzas.InformationalDeferredCouncilprofiles2008-11-050.3psaFor consistency, defined Metadata Profile; specified that the registrar shall create a registry for message stanza profiles.Standards227Portable Import/Export Format for XMPP-IM ServersThis document specifies a file format for importing and exporting user data to and from XMPP-IM servers.Standards TrackDraftCouncilpie2021-06-021.1mwDiscourage use of 'password', provide a way to include SCRAM credentials, PEP nodes and message archives.Standards228Requirements for Shared EditingThis document defines requirements for the design of XMPP-based shared editing protocols.Standards TrackDeferredCouncil2007-08-220.1psaFirst draft.Standards229Stream Compression with LZWThis document specifies how to use the LZW algorithm in XML stream compression.Standards TrackObsoleteCouncil2022-02-101.1tjbObsolete due to security vulnerability.Standards230Service Discovery NotificationsThis specification defines a method for requesting and receiving notifications regarding XMPP service discovery items.Standards TrackDeferredCouncil2018-09-080.1.2fsAdd forgotten node attribute in example 2.Standards231Bits of BinaryThis specification defines an XMPP protocol extension for including or referring to small bits of binary data in an XML stanza.Standards TrackDraftCouncilbob2022-07-251.1sswMention where to get textual names of hash functions.Standards232Software InformationThis document specifies an extended data format whereby XMPP service discovery responses can include detailed information about the software application that powers a given XMPP entity for includion in service discovery responses.Standards TrackDeferredCouncil2009-02-260.3psaPer Last Call feedback, removed icons for presence states; redefined the icon field to use media element per XEP-0221.Standards233XMPP Server Registration for use with Kerberos V5This specification defines the Kerberos principal name of an XMPP server. It also details a method by which a connecting client can determine this Kerberos principal name when authenticating using the "GSSAPI" SASL mechanism.Standards TrackDraftCouncilkerberos52017-03-161.0.0XEP Editor (ssw)Move to draft by order of the XMPP Council.Standards2017-03-01234Jingle File TransferThis specification defines a Jingle application type for transferring a file from one entity to another. The protocol provides a modular framework that enables the exchange of information about the file to be transferred as well as the negotiation of parameters such as the transport to be used.Standards TrackDeferredCounciljingle-ftXEP-00962019-06-190.19.1ri0nFix use of hash elements from XEP—0300.Standards2017-12-12235OAuth Over XMPPThis specification defines an XMPP extension for delegating access to protected resources over XMPP, using the OAuth protocol.Standards TrackDeferredCouncil2009-03-240.7psaChanged protocol namespace from urn:xmpp:tmp:oauth to urn:xmpp:oauth:0 to conform to XMPP Registrar policies; clarified protocol flow and error handling; corrected examples.Standards236Abuse ReportingThis specification defines an XMPP protocol extension for reporting abusive traffic sent over an XMPP network. Note: This specification has been retracted in favor of XEP-0161, which now contains the content originally published in this specification.Standards TrackRetractedCouncil2008-05-090.2psaRetracted in favor of XEP-0161, which now contains the content originally published in this specification.Standards237Roster VersioningThis specification defines a proposed modification to the XMPP roster protocol that enables versioning of rosters such that the server will not send the roster to the client if the roster has not been modified, thus saving bandwidth during session establishment.Standards TrackObsoleteCouncilRFC 61212012-02-081.3psaPer a vote of the XMPP Council, changed status to Obsolete since roster versioning was folded into RFC 6121.Standards238XMPP Protocol Flows for Inter-Domain FederationThis specification provides detailed protocol flows for the establishment of communication between domains that provide XMPP services, including permutations for a wide variety of possible federation policies.InformationalDeferredCouncil2008-03-310.1psaInitial published version.Standards239Binary XMPPThis specification defines Binary XMPP, an obviously superior representation of the Extensible Messaging and Presence Protocol (XMPP).HumorousActiveCouncil2008-04-011.0pm/psa/ffApril Fools!Standards240Auto-Discovery of JabberIDsThis specification defines a recommended best practice for linking to JabberIDs from documents hosted on the World Wide Web.Standards TrackDeferredCouncil2008-04-300.1psaInitial published version.Standards241Encryption of Archived MessagesThis specification defines methods for encrypting messages that are archived at an XMPP server.Standards TrackDeferredCouncil2008-04-300.1psaInitial version, split off from XEP-0136 per XMPP Council consensus.Standards242XMPP Client Compliance 2009This document defines XMPP client compliance levels for 2009.Standards TrackObsoleteCouncilXEP-0211XEP-0213XEP-02702008-09-081.0psaPer a vote of the XMPP Council, advanced specification to Draft.Standards243XMPP Server Compliance 2009This document defines XMPP server compliance levels for 2009.Standards TrackObsoleteCouncilXEP-0212XEP-0216XEP-02702008-09-081.0psaPer a vote of the XMPP Council, advanced specification to Draft.Standards244IO DataThis specification defines an XMPP protocol extension for handling the input to and output from a remote entity.Standards TrackDeferredCouncil2008-06-180.1psaInitial published version.Standards245The /me CommandThis specification defines recommended handling of the /me command in XMPP instant messaging clients.InformationalActiveCouncil2009-01-211.0psaPer a vote of the XMPP Council, advanced specification to Active and changed type from Historical to Informational.Standards246End-to-End XML StreamsThis specification defines methods for communicating via end-to-end XML streams over a logical or physical connection that provides a reliable transport between two endpoints.Standards TrackDeferredCouncil2016-01-200.1.1XEP Editor (mam)Updated missing 'ice-tcp' reference to RFC 6544.Standards247Jingle XML StreamsThis specification defines a Jingle application type for establishing direct or mediated XML streams between two entities over any streaming transport. This technology thus enables two entities to establish a trusted connection for end-to-end encryption or for bypassing server limits on large volumes of XMPP traffic.Standards TrackDeferredCouncil2009-02-200.2dm/psaAdjusted text and examples to reflect Jingle-XTLS, Jingle-IBB, and Jingle-S5B; moved stream security to Jingle-XTLS; moved basic stream setup from XEP-0246 to this document; changed examples to use Jingle-IBB as the transport; clarified stream opening and closing as well as session termination.Standards248PubSub Collection NodesThis specification defines the nature and handling of collection nodes in the XMPP publish-subscribe extension.Standards TrackDeferredCouncil2021-08-030.3.0rmRevert change from version 0.2.1 which changed meta-data to metadata in wire protocol. That was an unintended breaking change which has now been reverted.Standards249Direct MUC InvitationsThis specification defines a method for inviting a contact to a multi-user chat room directly, instead of sending the invitation through the chat room.Standards TrackDraftCouncilx-conference2011-09-221.2psaAdded continue and thread attributes for feature parity with mediated invitations when converting a one-to-one chat to a groupchat.Standards250C2C Authentication Using TLSThis document describes how to negotiate TLS extensions when using TLS for end-to-end XML streams between two clients. It covers X.509 certificates with an without CA, the use of OpenPGP, Shared Remote Passwords (SRP) and how to use one extension to bootstrap a trust relationship.Standards TrackDeferredCouncil2008-09-080.2dmUse keyinfo from version 0.8 of XEP-0189.Standards251Jingle Session TransferThis specification defines an extension to XMPP Jingle for transferring a session (such as a voice call) from one person to another.Standards TrackDeferredCouncil2009-10-050.2psaUpdated examples; added reference to RFC 5359; added security considerations regarding unattended transfer.Standards252BOSH Script SyntaxThis specification provides historical documentation regarding the "alternative script syntax" first defined in Version 1.6 of XEP-0124.HistoricalDeferredCouncil2008-10-310.1psaInitial published version.Standards253PubSub ChainingThis specification defines a method for chaining pubsub nodes together, resulting in lightweight repeaters for pubsub notifications.Standards TrackDeferredCouncil2009-11-180.2psaSpecifed protocol flow for the chained subscription.Standards254PubSub QueueingThis specification defines an extension to XMPP publish-subscribe for queueing information at a node.Standards TrackDeferredCouncil2008-11-130.1psaInitial published version.Standards255Location QueryThis specification defines an XMPP protocol extension for querying a compliant server or service for information about the geographical or physical location of an entity.Standards TrackDeferredCouncil2018-11-030.6.1pepFix a bunch of typos, batch-style.Standards256Last Activity in PresenceThis specification defines a way to use the Last Activity extension in XMPP presence notifications.Standards TrackDeprecatedCouncilXEP-03192009-09-151.1psaAdded use case for initial presence.Standards257Client Certificate Management for SASL EXTERNALThis specification defines a method to manage client certificates that can be used with SASL External to allow clients to log in without a password.Standards TrackDeferredCouncil2012-07-180.3tpa* Removed the dependency on . * Placed the certificate data directly in the <append/> element. * Clarified up the usage of the certificate's name. * Increased the version to 'urn:xmpp:saslcert:1'. * Added a section on discovering support. * Added the possibility for the server to send a list of currently used certificates. * Updated the relation with to match the current version.Standards258Security Labels in XMPPThis document describes the use of security labels in XMPP. The document specifies how security label metadata is carried in XMPP, when this metadata should or should not be provided, and how the metadata is to be processed.Standards TrackDraftCouncilsec-label2018-11-031.1.1pepFix a bunch of typos, batch-style.Standards259Message Mine-ingIn servers that deliver messages intended for the bare JID to all resources, the resource that claims a conversation notifies all of the other resources of that claim.Standards TrackDeferredCouncilmine2009-01-210.1psaInitial published version.Standards260Jingle SOCKS5 Bytestreams Transport MethodThis specification defines a Jingle transport method that results in sending data via the SOCKS5 Bytestreams (S5B) protocol defined in XEP-0065. Essentially this transport method reuses XEP-0065 semantics for sending the data and defines native Jingle methods for starting and ending an S5B session.Standards TrackDraftCounciljingle-s5b2018-05-151.0.3fsReplace broken link using archive.orgStandards261Jingle In-Band Bytestreams Transport MethodThis specification defines a Jingle transport method that results in sending data via the In-Band Bytestreams (IBB) protocol defined in XEP-0047. Essentially this transport method reuses XEP-0047 semantics for sending the data and defines native Jingle methods for starting and ending an IBB session.Standards TrackDraftCounciljingle-ibb2011-09-231.0psaPer a vote of the XMPP Council, advanced specification from Experimental to Draft.Standards262Use of ZRTP in Jingle RTP SessionsThis specification defines how to use ZRTP (RFC 6189) in the Jingle application type for the Real-time Transport Protocol (RTP) as a way to negotiate media path key agreement for secure RTP in one-to-one media sessions.Standards TrackDraftCounciljingle-zrtp2011-06-151.0psaPer a vote of the XMPP Council, advanced specification to Draft.Standards263ECO-XMPPThis specification defines best practices and protocol modifications that will reduce the energy consumption of XMPP systems and thereby help to save the planet.HumorousActiveCouncileco-xmpp2009-04-011.0psa/ffApril Fools!Standards264Jingle Content ThumbnailsThis specification defines a way for a client to supply a preview image for Jingle content.Standards TrackExperimentalCouncilthumbs2024-07-240.4.2egpRestrict 'width' and 'height' to the 0..65535 range, instead of being unbounded integers. This is in accordance to XEP-0084 and XEP-0221 for instance.Standards265Out-of-Band Stream DataThis specification defines how to send parts of an XML stream over a direct connection between peers. This allows to send large stanzas or binary data without blocking the XML stream for other stanzas.Standards TrackDeferredCouncil2009-04-020.1psaInitial published version.Standards266Codecs for Jingle AudioThis document describes implementation considerations related to audio codecs for use in Jingle RTP sessions.Standards TrackDraftCouncil2013-03-011.1.0-rc.1psaUpdated to reflect standardization of the Opus codec; changed client conformance to also recommend (but not require) support for Opus.Standards267Server BuddiesThis specification defines a convention for presence subscriptions between XMPP servers.Standards TrackDeferredCouncil2012-05-290.5psaCorrected several examples and points in the text.Standards268Incident HandlingThis specification defines methods for incident reporting among XMPP server deployments using the IODEF format produced by the IETF's INCH Working Group.Standards TrackDeferredCouncil2012-05-290.6psaAligned document with the IETF guidelines for defining extensions to IODEF; defined several more IODEF NodeRole categories; added schema for the JID element; noted that the JID element might be moved to a separate specification.Standards269Jingle Early MediaThis specification describes methods for exchanging early media in the context of Jingle RTP sessions.Standards TrackDeferredCouncil2009-05-190.1dc/psaInitial version, copied from XEP-0167.Standards270XMPP Compliance Suites 2010This document defines XMPP protocol compliance levels for 2010.Standards TrackObsoleteCouncilXEP-0242XEP-0243XEP-03022017-01-281.1sswPer a vote of the XMPP Council, move specification from Draft to Obsolete.Standards271XMPP NodesThis specification more clearly defines the nature of nodes as used in the Service Discovery and Publish-Subscribe extensions to the Extensible Messaging and Presence Protocol (XMPP).InformationalDeferredCouncil2009-06-260.1psaInitial published version; per Council discussion changed local to localpart.Standards272Multiparty Jingle (Muji)This specification defines an XMPP protocol extension for initiating and managing multiparty voice and video conferences within an XMPP MUCStandards TrackExperimentalCouncilmuji2024-08-210.2.0lmw* Send Jingle IQs to real JID * Define how to use with XEP-0482 * Adjust namespaceStandards273Stanza Interception and Filtering Technology (SIFT)This specification defines an XMPP protocol extension that enables a client to exercise control over the XML stanzas it will receive from the server by instructing the server to intercept and filter inbound stanzas.Standards TrackDeferredCouncilsift2011-06-270.4psaMade it clear that presence means presence notifications; added support for subscription-related presence stanzas; described payload matching in greater detail; added use case for allowing only core XMPP child elements; increased protocol version number from 1 to 2.Standards274Design Considerations for Digital Signatures in XMPPThis document discusses considerations for the design of Digital Signatures in XMPP, including use cases and requirements. The document also discusses various ways XML Digital Signatures could be used in XMPP.InformationalDeferredCouncil2018-11-030.4.1pepFix a bunch of typos, batch-style.Standards275Entity ReputationThis specification defines an XMPP protocol extension for communicating the reputation of any entity on the network.Standards TrackDeferredCouncilreputation2021-03-040.2.1mwCross-document editorial adjustments for inclusive language.Standards276Presence DecloakingThis specification defines an XMPP protocol extension that enables a user to send directed presence with a request for the target to also share presence information for the duration of a communications session.Standards TrackDeferredCouncil2012-07-130.3psaTweaked the security considerations.None277Microblogging over XMPPThis specification defines a method for microblogging over XMPP.Standards TrackDeferredCouncilmicroblog2022-02-150.6.5gh/@Yuubi-sanFix incorrect double-escaping of entities in examplesNone278Jingle Relay NodesThis documents specifies how Jingle Clients can interact with Jingle Relay Nodes Services and how XMPP entities can provide, search and list available Jingle Relay Nodes.Standards TrackDeferredCounciljinglenodes2021-03-040.4.1mwCross-document editorial adjustments for inclusive language.Standards279Server IP CheckThis specification defines a simple XMPP extension that enables a client to discover its external IP address.Standards TrackDeferredCouncilsic2013-04-170.2psaModified XML format so server can return port as well as IP address; incremented protocol version from 0 to 1.Standards280Message CarbonsIn order to keep all IM clients for a user engaged in a conversation, outbound messages are carbon-copied to all interested resources.Standards TrackDraftCouncilcarbonsXEP-02592021-12-261.0.1egpFix indentation in examples.Standards2021-04-06281DMUC1: Distributed Multi-User ChatThis document defines methods for distributing Multi-User Chat (MUC) rooms across multiple chat services.Standards TrackRetractedCouncilXEP-02892010-07-200.2psaAdded protocol flows for finding and joining shadow rooms, thus removing dependency on communication with firsthost; changed examples to mimic XEP-0045.Standards282DMUC2: Distributed MUCMulti-User Chats, distributed over several nodes in the XMPP network, using a primary/replica architectureStandards TrackDeferredCouncil2021-03-040.1.1mwCross-document editorial adjustments for inclusive language.Standards283MovedThis document defines an XMPP protocol extension that enables a user to inform its contacts about a change in JID.Standards TrackExperimentalCouncilmoved2021-07-200.2.0mwRe-write the flow with a more focused approach.Standards284Shared XML EditingThis specification defines a protocol that enables two or more endpoints to collaboratively edit an XML object. The protocol is intended for use mainly over the Extensible Messaging and Presence Protocol (XMPP), either by existing instant messaging clients or by specialized editing clients. However, the protocol could also be used over a direct TCP connection rather than over XMPP.Standards TrackDeferredCouncil2021-03-040.1.3mwCross-document editorial adjustments for inclusive language.Standards285Encapsulating Digital Signatures in XMPPThis document provides a technical specification for Encapsulating Digital Signatures in the Extensible Messaging and Presence Protocol (XMPP).Standards TrackDeferredCouncil2011-01-120.3kdzChange title, and clarify in text, that this is an encapulating digital signature approach, an alternative to the encapulated digitial signatures proposal.Standards286Mobile Considerations on LTE NetworksThis document provides background information for XMPP implementors concerned with mobile devices operating on an LTE cellular network.InformationalActiveCouncil2018-01-251.0.0XEP Editor (jwi)Advance to Active as per Council vote on 2018-01-10.Standards2017-11-15287Spim Markers and ReportsThis document defines an XMPP protocol extension that enables XMPP entities to interact with spim filters by marking unsolicited or suspicious XMPP stanzas.Standards TrackDeferredCouncil2010-10-040.1psaInitial published version.Standards288Bidirectional Server-to-Server ConnectionsThis specification defines a protocol for using server-to-server connections in a bidirectional way such that stanzas are sent and received on the same TCP connection.Standards TrackDraftCouncilbidi2016-10-171.0.1sswFix syntax highlighting and tweak example formatting.Standards289Federated MUC for Constrained EnvironmentsThis document provides a protocol for federating MUC rooms together in order to reduce the effects of constrained network (e.g. unreliability, severely limited bandwidth) on the room occupants.Standards TrackDeferredCouncilFMUCXEP-02812021-03-040.2.1mwCross-document editorial adjustments for inclusive language.Standards290Encapsulated Digital Signatures in XMPPThis document provides a technical specification for Encapsulated Digital Signatures in the Extensible Messaging and Presence Protocol (XMPP).Standards TrackDeferredCouncil2011-01-280.2kdzMerge manifest and schema-desc objects.Standards291Service DelegationThis specification defines an approach for users to delegate certain services (e.g. pubsub) to alternative JIDs.Standards TrackDeferredCouncil2011-01-260.1psaInitial published version.Standards292vCard4 Over XMPPThis document specifies an XMPP extension for use of the vCard4 XML format in XMPP systems, with the intent of obsoleting the vcard-temp format.Standards TrackExperimentalCouncilXEP-00542023-03-140.12.0spwRemoves raw-IQ mode and specifies the reuse of PEPStandards2019-02-19293Jingle RTP Feedback NegotiationThis specification defines an XMPP extension to negotiate the use of the Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF) with Jingle RTP sessionsStandards TrackDraftCouncil2022-08-261.0.2melvoFix attribute name of 'parameter' element as specified by XML schemaStandards294Jingle RTP Header Extensions NegotiationThis specification defines an XMPP extension to negotiate the use of the use of RTP Header Extension as defined by RFC 8285 with Jingle RTP sessionsStandards TrackDraftCouncil2022-08-271.1.2melvoFix example description and attribute name of 'parameter' element as specified by XML schemaStandards295JSON Encodings for XMPPThis specification defines an alternative JSON encoding for XMPP stanzas and other elements.HumorousActiveCouncilXEP-03352011-04-011.0ks, mwApril Fools!Standards296Best Practices for Resource LockingThis document specifies best practices to be followed by Jabber/XMPP clients about when to lock into, and unlock away from, resources.InformationalDeferredCouncil2011-08-180.2mamExpanded intro with a short problem description; moved chat states considerations to their own section; tightened requirement regarding a message from different resource from MAY to SHOULD; loosened requirement regarding a message with 'gone' from MUST to SHOULD; added missing but required sectionsStandards2011-08-05297Stanza ForwardingThis document defines a protocol to forward a stanza from one entity to another.Standards TrackDraftCouncilforward2013-10-021.0psaPer a vote of the XMPP Council, advanced status to Draft.Standards298Delivering Conference Information to Jingle Participants (Coin)This specification defines an XMPP extension for tightly coupled conference calls. It allows users who participate in multiparty Jingle calls via a focus agent (mixer) to retrieve information and receive notifications about the state of the call and the other participants. This extension is also meant to provide a straightforward way of connecting SIP and XMPP clients to the same conference room.Standards TrackDeferredCouncilcoin2015-07-020.2sicCorrecting errors in grammar and examples; aligning closer to dependent specifications.Standards299Codecs for Jingle VideoThis document describes implementation considerations related to video codecs for use in Jingle RTP sessions.Standards TrackDeferredCouncil2011-06-120.1psaInitial published version, split from XEP-0266.Standards300Use of Cryptographic Hash Functions in XMPPThis document provides a common wire format for the transport of cryptographic hash function references and hash function values in XMPP protocol extensions.Standards TrackDraftCouncilhashes2019-11-131.0.0mbAdvance to Draft as per 2019-09-19 Council voteStandards301In-Band Real Time TextThis is a specification for real-time text transmitted in-band over an XMPP session. Real-time text is text transmitted instantly while it is being typed or created.Standards TrackDraftCouncilrtt2013-10-081.0psaPer a vote of the XMPP Council, advanced status to Draft.Standards302XMPP Compliance Suites 2012This document defines XMPP protocol compliance levels for 2012.Standards TrackObsoleteCouncilXEP-0270XEP-03752011-07-210.1psaInitial published version.Standards303CommentingThis specification defines a method for commenting.Standards TrackDeferredCouncil2011-07-280.1psaInitial published version.Standards304Whitespace Keepalive NegotiationThis specification defines a method for negotiating how to send keepalives in XMPP.Standards TrackDeferredCouncil2011-08-180.1psaInitial published version.Standards305XMPP QuickstartThis document defines methods for speeding the process of connecting or reconnecting to an XMPP server.Standards TrackDeferredCouncil2013-03-010.3psaClarified the text in several places.Standards306Extensible Status Conditions for Multi-User ChatThis document defines an extensible format for status conditions in Multi-User Chat, similar to the error format used in the core of XMPP.Standards TrackDeferredCouncil2016-06-070.2.1mp (XEP Editor: ssw)Fix broken example XML.Standards307Unique Room Names for Multi-User ChatThis specification defines an XMPP protocol extension for requesting a unique room ID from a multi-user chat service.Standards TrackDeferredCouncilmuc-unique2011-11-100.1psaInitial published version.Standards308Last Message CorrectionThis specification defines a method for indicating that a message is a correction of the last sent message.Standards TrackDraftCouncilmessage-correct2022-05-171.2.1gh/deuillFix disco#info example to use correct addresses.Standards309Service DirectoriesThis specification shows how to combine and extend a number of existing XMPP protocols for improved sharing of information about XMPP servers.Standards TrackDeferredCouncil2012-05-290.3psaCorrected a number of details in the text, examples, and XMPP Registrar considerations; removed an extraneous section that is better contained in XEP-0267.Standards310Presence State AnnotationsThis document provides a protocol using which a server is able to provide information to clients indicating that previously received presence data may be stale.Standards TrackDeferredCouncilPSA2012-01-100.1psaInitial published version.Standards311MUC Fast ReconnectThis document provides a protocol that can be used for limiting the amount of presence history needed when rejoining a MUC room.Standards TrackDeferredCouncilMFR2012-01-250.1psaVersion approved for publication by the XMPP Council.Standards312PubSub SinceThis specification defines a publish-subscribe feature that enables a subscriber to automatically receive pubsub and PEP notifications since the last logout time of a specific resource.Standards TrackDeferredCouncil2012-05-290.3psaCorrected namespace to use namespace versioning; tweaked some of the delivery rules.Standards313Message Archive ManagementThis document defines a protocol to query and control an archive of messages stored on a server.Standards TrackDraftCouncilmamXEP-01362024-09-181.1.2egp* Fix JID and affiliation of the first two witches in the MUC example. * Fix duplicated 'id' in MUC example. * Fix indentation in examples.Standards2021-03-30314Security Labels in PubSubThis specification defines an extension to XEP-0258 (Security Labels) to allow for the use of security labels in XEP-0060 (Publish-Subscribe). This document describes how security label metadata can be applied to the various elements within Publish-Subscribe, including nodes and items.Standards TrackDeferredCouncil2012-07-270.1psaInitial published version.Standards315Data Forms XML ElementThis specification defines an XMPP protocol extension for including XML-data in XEP-0004 data forms.Standards TrackDeferredCouncilxml-element2019-06-190.1.1fsFix shortname and section heading to avoid collision with XEP-0221Standards316MUC Eventing ProtocolThis specification defines semantics for using the XMPP publish-subscribe protocol to broadcast state change events associated with a Multi-User Chat (MUC) room. This profile of pubsub therefore enables a chatroom to function as a virtual pubsub service, easing the discovery of syndicated data and event notifications associated with such a room.Standards TrackDeferredCouncilmep2013-01-030.1psaInitial published version approved for publication by the XMPP Council.Standards JIG317HatsThis specification defines a more extensible model for roles and affiliations in Multi-User Chat rooms.Standards TrackExperimentalCouncil2023-06-280.2.0mwSelect a syntax for hats.Standards318Best Practices for Client Initiated Presence ProbesThis specification defines a way to determine the time when a XMPP entity has last changed its presence. Using client initiated presence probes the current presence of subscribed XMPP users can be requested. In addition a protocol to request the uptime of servers and components is defined herein.InformationalDeferredCouncillast-presenceXEP-00122013-08-060.2tobiasFix issues raised in XMPP Council meeting.Standards319Last User Interaction in PresenceThis specification defines a way to communicate time of last user interaction with her system using XMPP presence notifications.Standards TrackDraftCouncilidleXEP-02562017-07-171.0.2egpMake the schema more precise about a date being a xs:dateTime.Standards320Use of DTLS-SRTP in Jingle SessionsThis specification defines how to use DTLS-SRTP (RFC 5763) in the Jingle application type for the Real-time Transport Protocol (RTP) as a way to negotiate media path key agreement for secure RTP in one-to-one media sessions.Standards TrackDraftCouncil2020-05-261.0.0XEP Editor (jsc)Move to Draft as per Council vote from 2020-05-20.Standards2020-05-19321Remote Roster ManagementThis document defines a way remote entities may manage user's roster to provide a simple way to keep rosters in sync.Standards TrackDeferredCouncil2018-11-030.1.1pepFix a bunch of typos, batch-style.Standards322Efficient XML Interchange (EXI) FormatThis specification describes how EXI compression can be used in XMPP networks.Standards TrackDeferredCouncilexi2018-01-250.6.0XEP Editor (jwi)Defer due to lack of activity.Standards323Internet of Things - Sensor DataNote: This specification has been retracted by the author; new implementations are not recommended. This specification provides the common framework for sensor data interchange over XMPP networks.Standards TrackRetractedCouncilsensor-data2017-05-200.6XEP Editor: sswMark XEP as retracted by the author.Standards324Internet of Things - ProvisioningNote: This specification has been retracted by the author; new implementations are not recommended. This specification describes an architecture for efficient provisioning of services, access rights and user privileges in for the Internet of Things, where communication between Things is done using the XMPP protocol.Standards TrackRetractedCouncilsensor-network-provisioning2021-03-040.5.1mwCross-document editorial adjustments for inclusive language.Standards325Internet of Things - ControlNote: This specification has been retracted by the author; new implementations are not recommended. This specification describes how to control devices or actuators in an XMPP-based sensor network.Standards TrackRetractedCouncilsensor-network-control2021-03-040.5.1mwCross-document editorial adjustments for inclusive language.Standards326Internet of Things - ConcentratorsNote: This specification has been retracted by the author; new implementations are not recommended. This specification describes how to manage and get information from concentrators of devices over XMPP networks.Standards TrackRetractedCouncilsensor-network-concentrators2017-05-200.4XEP Editor: sswMark XEP as retracted by the author.Standards327RayoThis specification defines an XMPP protocol extension for the third-party control of telephone calls and other similar media sessions. The protocol includes support for session management/signaling, as well as advanced media resources such as speech recognizers, speech synthesizers and audio/video recorders. The protocol serves a different purpose from that of first-party protocols such as Jingle or SIP, and is compatible with those protocols.Standards TrackDeferredCouncil2018-11-030.8.1pepFix a bunch of typos, batch-style.Standards328JID Preparation and Validation ServiceThis specification defines a way for an XMPP entity to request another entity to prepare and validate a given JID.Standards TrackDeferredCounciljid-prep2019-12-160.2.1nvTypographical fix.Standards329File Information SharingThis document specifies a simple extension to existing protocols that allows an entity to request information about files.Standards TrackDeferredCouncilfisXEP-01352020-06-140.4.1fsFix example 7, remove superfluous 'node' attributeStandards330Pubsub SubscriptionThis specification describe a method that allow a user to share a list of nodes on which it is Pubsub registeredStandards TrackDeferredCouncil2013-06-110.1psaInitial published version approved by the XMPP Council.Standards331Data Forms - Color Field TypesThis specification defines how to publish fields in data forms that take color values. Color values are best edited using a color picker dialog, rather than manual input.Standards TrackDeferredCouncilcolor-parameter2015-11-090.3pwUpdated contact information. Updated example JIDs to example.orgStandards332HTTP over XMPP transportThis specification defines how XMPP can be used to transport HTTP communication over peer-to-peer networks.Standards TrackDeferredCouncil2020-03-310.5.1@sonnypFix spelling errorStandards2014-10-21333Displayed MarkersThis specification introduces a method to let the sender, or multiple participants in a group chat, know that a client has displayed messages up to a certain point.Standards TrackDraftCouncil2024-04-171.0.0XEP Editor (dg)Accept as Stable as per Council Vote from 2024-04-17.Standards2024-04-08334Message Processing HintsThis document defines a way to include hints to entities routing or receiving a message.Standards TrackDraftCouncilhints2024-04-171.0.0XEP Editor (dg)Accept as Stable as per Council Vote from 2024-04-17Standards2024-04-08335JSON ContainersThis specification defines an element to be used for encapsulating JSON data in XMPP.Standards TrackDeferredCouncil2018-09-260.1.1pepFix XEP number in schema descriptionStandards2019-02-19336Data Forms - Dynamic FormsThis specification provides extensions to the data forms model defined in previous XEPs that permit enhanced end-user interaction and a better user experience. These extensions permit forms to react on user input by permitting the addition, updating or removal of fields in the form and server-side validation of fields. The extension also defines new states making it possible to display disabled controls, controls with undefined values or error messages, while still being backwards compatible with the existing data form model with available extensions.Standards TrackDeferredCouncildynamic-forms2015-11-090.2pwUpdated contact information. Updated example JIDs to example.orgStandards337Event Logging over XMPPThis specification provides a common framework for sending events to event logs over XMPP networks.Standards TrackDeferredCouncileventlogging2017-09-110.3XEP Editor (jwi)Defer due to lack of activity.Standards338Jingle Grouping FrameworkThis specification provides an XML mapping for translating the RFC 5888 SDP Grouping Framework to JingleStandards TrackDraftCouncil2020-07-211.0.0XEP Editor (jsc)Advance to Draft as per Council vote from 2020-07-01Standards2020-06-30339Source-Specific Media Attributes in JingleThis specification provides an XML mapping for translating the RFC 5766 Source-Specific Media Attributes from SDP to JingleStandards TrackDraftCouncil2021-10-231.0.1egpAdd a XML Schema, and fix an example lacking a namespace.Standards2020-05-19340COnferences with LIghtweight BRIdging (COLIBRI)This specification defines an XMPP extension that allows real-time communications clients to discover and interact with conference bridges that provide conference mixing or relaying capabilities.Standards TrackDeferredCouncilcolibri2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards341Rayo CPAThis specification defines an extension to the Rayo protocol (XEP-0327) to provide provision for performing Call Progress Analysis on a call under the control of a Rayo client.Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards342Rayo FaxThis specification defines an extension to the Rayo protocol (XEP-0327) to provide provision for sending and receiving faxcimilies via a call under the control of a Rayo client.Standards TrackDeferredCouncil2018-11-030.3.1pepFix a bunch of typos, batch-style.Standards343Signaling WebRTC datachannels in JingleThis specification defines how to use the ICE-UDP Jingle transport method to send media data using WebRTC DataChannels, so technically uses DTLS/SCTP on top of the Interactive Connectivity Establishment (ICE) methodology, which provides robust NAT traversal for media traffic.Standards TrackDeferredCounciljingle-webrtc-datachannels2020-03-200.3.1ri0nFix attribute name (xmlns) in exampleStandards344Impact of TLS and DNSSEC on DialbackThis specification provides documentation how Server Dialback is used together with Transport Layer Security, and discusses how the security considerations of Dialback are changed by the introduction of TLS and/or DNSSEC.Standards TrackDeferredCouncil2017-09-110.4XEP Editor (jwi)Defer due to lack of activity.Standards345Form of Membership ApplicationsThis specification outlines the form and mandatory content of membership applications.ProceduralActiveBoard2020-02-181.0.0XEP Editor (jsc)Voted to Active by Board on 2019-03-07. Sorry for the delay in the editor queue.None2018-01-27346Form Discovery and PublishingThis specification describes a series of conventions that allow the management of form templates and publishing of completed forms.Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards347Internet of Things - DiscoveryThis specification describes an architecture based on the XMPP protocol whereby Things can be installed and safely discovered by their owners and connected into networks of Things.Standards TrackDeferredCounciliot-discovery2018-11-030.5.1pepFix a bunch of typos, batch-style.Standards348Signing FormsThis specification describes a method whereby a client can sign a form using credentials not related to the current connection.Standards TrackDeferredCouncilsigning-forms2017-09-110.3XEP Editor (jwi)Defer due to lack of activity.Standards349Rayo ClusteringThis specification describes an extension to the Rayo protocol to support clustering of Rayo servers and their presentation as a unified service.Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards350Data Forms Geolocation ElementThis specification defines an XMPP protocol extension for including geolocation data in XEP-0004 data forms.Standards TrackDeferredCouncilgeolocation-element2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards351Recipient Server Side Notifications FilteringThis specification defines a modern efficient way to deliver PubSub notifications.Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards352Client State IndicationThis document defines a way for the client to indicate its active/inactive state.Standards TrackDraftCouncilcsi2020-10-141.0.0XEP Editor (jsc)Accepted as Draft as per Council vote from 2020-08-26.Standards2020-08-18353Jingle Message InitiationThis specification provides a way for the initiator of a Jingle session to propose sending an invitation in an XMPP message stanza, thus taking advantage of message delivery semantics instead of sending IQ stanzas to all of the responder's online resources or choosing a particular online resource.Standards TrackExperimentalCounciljingle-message2022-01-290.6.0tm Port version 0.5 to :0 namespace and improve tie-breaking section Standards2019-08-13354Customizable Message RoutingThis specification specifies customizable behavior of RFC 6121 section 8.5.2.1.1 to allow various message routing algorithms (e.g., for load balancing).Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards355Namespace DelegationThis specification provides a way for XMPP server to delegate treatments for a namespace to an other entityStandards TrackExperimentalCouncil2021-10-150.5jp* delegation of * delegation of * about disco requests * namespace bump * typosStandards356Privileged EntityThis specification provides a way for XMPP entities to have a privileged access to some other entities dataStandards TrackExperimentalCouncil2023-04-240.4.1gh/@bodqhrohroFixed some typosStandards357Push NotificationsThis specification defines a way for an XMPP servers to deliver information for use in push notifications to mobile and other devices.Standards TrackDeferredCouncilpush2020-02-110.4.1@sonnypFix document-internal linkStandards2020-04-15358Publishing Available Jingle SessionsThis specification defines an XMPP protocol extension that enables an XMPP entity to advertise the fact that it is willing accept a particular Jingle session request. The protocol is used mainly to inform other entities that a particular file is available for transfer via the Jingle File Transfer protocol defined in XEP-0234.Standards TrackDeferredCounciljinglepub2017-09-110.4XEP Editor (jwi)Defer due to lack of activity.Standards359Unique and Stable Stanza IDsThis specification describes unique and stable IDs for messages.Standards TrackExperimentalCouncilstanza-id2023-02-200.7.0fsAdd security consideration regarding spoofability and reference exampleStandards2018-11-03360Nonzas (are not Stanzas)This specification defines the term "Nonza", describing every top level stream element that is not a Stanza.Standards TrackRejectedCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards2024-03-25361Zero Handshake Server to Server ProtocolThis specification defines an approach for a pair of servers to eliminate initial handshakes and associated data transfer when using the XMPP S2S Protocol. This approach may only be used with a priori agreement and configuration of the two servers involved. This is of significant benefit in high latency environments.InformationalDeferredCouncilX2X2017-09-110.3XEP Editor (jwi)Defer due to lack of activity.Standards362Raft over XMPPThis specification provides a means for transporting messages from the Raft consensus algorithm over XMPP.Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards363HTTP File UploadThis specification defines a protocol to request permissions from another entity to upload a file to a specific path on an HTTP server and at the same time receive a URL from which that file can later be downloaded again.Standards TrackDraftCouncil2022-01-041.1.0egp, mb* Filename size in bytes. * Headers MUST be included in the PUT request. * Headers considered opaque. * Servers may want to sign headers, in security implications. * Allow header case insensitivity, multiple times the same header, and preserve the order in the HTTP request.Standards2020-01-28364Current Off-the-Record Messaging UsageThis document outlines the current usage of Off-the-Record messaging in XMPP, its drawbacks, its strengths, and recommendations for improving the end user experience.InformationalDeferredCouncil2019-08-200.3.2jublahFix broken link to Daniels articleStandards365Server to Server communication over STANAG 5066 ARQThis specification defines operation over XMPP over the NATO STANAG 5066 data link service for point to point links (ARQ). This enables optimized XMPP performance over HF Radio (which STANAG 5066 was designed for) and over other data links using STANAG 5066.Standards TrackExperimentalCouncilS50662022-03-280.3sekMake use of SLEP Streaming service, which was not available for 0.1. This provides a better service mapping than direct use of 5066 and provides compression.Standards366Entity VersioningA method by which lists of items may be versioned so that servers will not need to send the entire list if it has not been modified, saving bandwidth and time with minimal state being stored by the server and client.Standards TrackDeferredCouncilEV2016-12-210.1.2sswSpelling, tone, and grammar.Standards367Message AttachingThis specification defines a method for indicating that a message contains content which describes an earlier message in the conversation and should be grouped with the earlier message.Standards TrackDeferredCouncilmessage-attaching2018-08-180.3mwUpdate to use unique stanza ids.Standards368SRV records for XMPP over TLSThis specification defines a procedure to look up xmpps-client/xmpps-server SRV records (for direct TLS connections) in addition to xmpp-client/xmpp-server and mix weights/priorities.Standards TrackDraftCouncil2019-08-201.1.0jscDescribe how to fall back if _xmpps-server/_xmpps-client records cannot be found.Standards2017-02-22369Mediated Information eXchange (MIX)This document defines Mediated Information eXchange (MIX), an XMPP protocol extension for the exchange of information among multiple users through a mediating service. The protocol can be used to provide human group communication and communication between non-human entities using channels, although with greater flexibility and extensibility than existing groupchat technologies such as Multi-User Chat (MUC). MIX uses Publish-Subscribe to provide flexible access and publication, and uses Message Archive Management (MAM) to provide storage and archiving.Standards TrackExperimentalCouncilMIX-CORE2020-12-010.14.6gh/@mathieuiFix minor typoStandards370Jingle HTTP Transport MethodThis specification defines two Jingle transport methods for establishing HTTP connections for either uploading or downloading data.Standards TrackDeferredCouncil2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards371Jingle ICE Transport MethodThis specification defines a Jingle transport method that results in sending media data using datagram associations via the User Datagram Protocol (UDP) or using end-to-end connections via the Transport Control Protocol (TCP). This transport method is negotiated via the Interactive Connectivity Establishment (ICE) methodology (which provides robust NAT traversal for media traffic) and also supports the ability to exchange candidates throughout the life of the session, consistent with so-called "Trickle ICE" (draft-ietf-ice-trickle).Standards TrackDeferredCounciljingle-iceXEP-01762021-03-040.3.1mwCross-document editorial adjustments for inclusive language.Standards372ReferencesThis document defines a method for one XMPP stanza to provide references to another entity, such as mentioning users, HTTP resources, or other XMPP resources.Standards TrackExperimentalCouncilRefs2020-12-090.5.0kisSpecify counting should be of code points.Standards373OpenPGP for XMPPSpecifies end-to-end encryption and authentication of data with the help of OpenPGP, announcement, discovery and retrieval of public keys and a mechanism to synchronize secret keys over multiple devices.Standards TrackExperimentalCouncilox2021-05-040.7.0psRecommend PubSub access model 'open' for public key data node and metadata node.Standards374OpenPGP for XMPP Instant MessagingSpecifies a OpenPGP for XMPP (XEP-0373) profile for the Instant Messaging (IM) use case.Standards TrackDeferredCounciloxim2018-01-250.2.0XEP Editor (jwi)Defer due to lack of activity.Standards375XMPP Compliance Suites 2016This document defines XMPP protocol compliance levels for 2016.Standards TrackRetractedCouncilCS2016XEP-0302XEP-03872016-07-200.3sswDon't require both BOSH and Websockets.Standards376Pubsub Account ManagementThis specification describes a new model for handling remote pubsub services and a protocol for doing so.Standards TrackDeferredCouncilpam2017-09-110.2XEP Editor (jwi)Defer due to lack of activity.Standards377Spam ReportingThis document specifies a mechanism by which users can report spam and other abuse to a server operator or other spam service.Standards TrackExperimentalCouncil2023-04-030.3.1egpAdd XML Schema.Standards378OTR DiscoveryThis document provides a mechanism by which OTR encryption support can be discovered in XMPP, without relying on OTRs protocol agnostic discovery mechanism.Standards TrackDeferredCouncilOTR-DISCO2017-09-110.1XEP Editor (jwi)Defer due to lack of activity.Standards379Pre-Authenticated Roster SubscriptionThis document defines a protocol and URI scheme for pre-authenticated roster links that allow a third party to automatically obtain the user's presence subscription. The goal of this is to make onboarding of new XMPP IM contacts as easy as possible.Standards TrackProposedCouncilpars2021-03-040.3.3mwCross-document editorial adjustments for inclusive language.Standards2021-10-20380Explicit Message EncryptionThis specification provides a way to mark encrypted messages so the recipient can discover how to decrypt it.Standards TrackDeferredCouncilEME2021-11-180.4.0melvoAdd new OMEMO namespaces: * Add 'urn:xmpp:omemo:1' for OMEMO versions since 0.4.0 * Add 'urn:xmpp:omemo:2' for OMEMO versions since 0.8.0Standards381Internet of Things Special Interest Group (IoT SIG)This document proposes the formation of a Special Interest Group SIG) within the XSF devoted to the application of XMPP technologies to the Internet of Things (IoT).ProceduralActiveCouncil2021-07-271.0.0XEP Editor: jscAccepted by CouncilNone2020-12-15382Spoiler messagesThis specification defines an XMPP protocol extension that provides a method for indicating a message is a spoiler and should be displayed as such.Standards TrackDeferredCouncilspoilers2018-01-250.2.0XEP Editor (jwi)Defer due to lack of activity.Standards383Burner JIDsA mechanism by which users may request anonymous, ephemeral "burner" JIDs.Standards TrackExperimentalCouncilburner2021-07-100.2.0sswImprove security considerations and add listing JIDs.Standards384OMEMO EncryptionThis specification defines a protocol for end-to-end encryption in one-to-one chats, as well as group chats where each participant may have multiple clients per account.Standards TrackExperimentalCouncilOMEMO2022-01-180.8.3gh/@6k27fFix broken linksStandards385Stateless Inline Media Sharing (SIMS)This specification describes a protocol for stateless asynchronous media sharing with integrity and transport flexibility. It allows clients to provide a good interoperable user experience in combination with Carbons and MAM.Standards TrackDeferredCouncilsims2018-01-250.2.1vvFix reference to XEP-0234.Standards386Bind 2This specification provides a single-request replacement for several activities an XMPP client needs to do at startup.Standards TrackDraftCouncilbind22024-07-021.0.1egpAdd an XML Schema.Standards2024-04-01387XMPP Compliance Suites 2018This document defines XMPP protocol compliance levels.Standards TrackObsoleteCouncilCS2018XEP-0375XEP-04122018-01-251.0.0XEP Editor (jwi)Move to Draft as per Council vote on 2018-01-24.Standards2017-12-21388Extensible SASL ProfileThis document describes a replacement for the SASL profile documented in RFC 6120 which allows for greater extensibility.Standards TrackDraftCouncilsasl22024-08-061.0.2egp* Fix various invalid examples. * Fix the XML Schema to match examples.Standards2024-04-01389Extensible In-Band RegistrationThis specification defines an XMPP protocol extension for in-band registration with instant messaging servers and other services with which an XMPP entity may initiate a stream. It aims to improve upon the state of the art and replace XEP-0077: In-Band Registration by allowing multi-factor registration mechanisms, and account recovery.Standards TrackExperimentalCouncilibr2XEP-00772020-11-170.6.0sswError out if a client selects an invalid flowStandards390Entity Capabilities 2.0This document overhauls the XMPP protocol extension Entity Capabilities (XEP-0115). It defines an XMPP protocol extension for broadcasting and dynamically discovering client, device, or generic entity capabilities. In order to minimize network impact, the transport mechanism is standard XMPP presence broadcast (thus forestalling the need for polling related to service discovery data), the capabilities information can be cached either within a session or across sessions, and the format has been kept as small as possible.Standards TrackDeferredCouncilecaps2XEP-01152018-03-050.3.2fsExplain that ASCII Seperators are only invalid in XML 1.0, but not in XML 1.1.Standards391Jingle Encrypted TransportsThis specification defines a method that allows to use established encryption schemes for end-to-end encryption of Jingle transports.Standards TrackDeferredCounciljet2018-07-310.1.2vvReplace TI with IVStandards392Consistent Color GenerationThis specification provides a set of algorithms to consistently generate colors given a string. The string can be a nickname, a JID or any other piece of information. All entities adhering to this specification generate the same color for the same string, which provides a consistent user experience across platforms.Standards TrackDraftCouncilcolors2024-03-271.0.0XEP Editor (dg)Accept as Stable as per Council Vote from 2024-03-27.Standards2024-03-25393Message StylingThis specification defines a formatted text syntax for use in instant messages with simple text styling.Standards TrackDraftCouncilstylingXEP-00712021-04-041.1.1ssw General readability changes: Copy part of span definition from glossary to business rules and remove parenthesis for marking spans and blocks which was used inconsistently. Also merge two lists of examples. Standards2020-05-26394Message MarkupThis specification provides an alternative to XHTML-IM with rigid separation of content and markup information, improving the resilience against spoofing and injection attacks.Standards TrackExperimentalCouncilmarkup2024-07-130.3.0lmwAdd support for strong emphasis, declaring langauge on code blocks and making lists ordered.Standards395Atomically Compare-And-Publish PubSub ItemsThis specification provides a mechanism to atomically Compare-And-Publish items to a PubSub node.Standards TrackDeferredCouncilcap2018-12-060.2.0XEP Editor (jsc)Defer due to lack of activity.Standards396Jingle Encrypted Transports - OMEMOExtension for JET introducing OMEMO End-to-End Encrypted Jingle Transports.Standards TrackDeferredCounciljet-omemo2018-12-060.2.0XEP Editor (jsc)Defer due to lack of activity.Standards397Instant Stream ResumptionThis specification introduces a mechanism for instant stream resumption, based on Stream Management (XEP-0198), allowing XMPP entities to instantaneously resume an XMPP stream.Standards TrackDeferredCouncilisr2018-11-030.1.1fsMinor fixes and clarificationsStandards398User Avatar to vCard-Based Avatars ConversionThis specification describes a method for using PEP based avatars and vCard based avatars in parallel by having the user’s server do a conversion between the two.Standards TrackDraftCouncilpep-vcard-conversion2024-05-061.0.0XEP Editor (dg)Accept as Stable as per Council Vote from 2024-04-30.Standards2024-04-14399Client Key SupportThis specification defines an XMPP binding of the supporting functions for the CLIENT-KEY SASL mechanism.Standards TrackDeferredCouncilclient-key2018-01-250.1.0XEP Editor (jwi)Accepted by vote of Council on 2018-01-10.Standards400Multi-Factor Authentication with TOTPThis specification defines support for multi-factor authentication in terms of SASL2 Tasks based around the Time-based One Time Password mechanism.Standards TrackDeferredCouncilmfa2018-01-250.1.0XEP Editor (jwi)Accepted by vote of Council on 2018-01-10.Standards401Ad-hoc Account Invitation GenerationThis document defines a protocol and URI scheme for user invitation in order to allow a third party to register on a server. The goal of this is to make onboarding for XMPP IM newcomers as easy as possible.Standards TrackProposedCouncil2021-10-060.5.0glFactor out XEP-0445Standards2021-10-20402PEP Native BookmarksThis specification defines a syntax and storage profile for keeping a list of chatroom bookmarks on the server.Standards TrackDraftCouncilbookmarks2XEP-04112024-08-151.2.0myeEncourage clients to immediately leave the room if they receive a bookmark notification with autojoin set to falseStandards2020-03-03403Mediated Information eXchange (MIX): Presence Support.This document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369 to provide presence information for MIX clients to MIX channel participants. It also specifies relay of IQ stanzas through a MIX channel.Standards TrackDeferredCouncilMIX-PRESENCE2020-12-010.3.2gh/@mathieuiFix incorrect namespacesStandards404Mediated Information eXchange (MIX): JID Hidden Channels.This document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369. This specification extends MIX to provide a number of privacy control options and in particular JID Hidden Channels.Standards TrackDeferredCouncilMIX-ANON2020-12-010.3.1gh/@mathieuiVarious XML example cleanup and fixesStandards405Mediated Information eXchange (MIX): Participant Server RequirementsThis document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369. It specifies behaviour of an XMPP server to which MIX Clients connect in order to enable correct operation of these clients in conjunction with a MIX server.Standards TrackExperimentalCouncilMIX-PAM2022-07-150.5.3lnjClarify that later roster requests reset the state of the annotation settingStandards406Mediated Information eXchange (MIX): MIX AdministrationThis document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369. This specification defines a framework for MIX administration and administration operations.Standards TrackDeferredCouncilMIX-ADMIN2022-03-220.3.1glFix reference to PubSub namespaceStandards407Mediated Information eXchange (MIX): Miscellaneous CapabilitiesThis document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369. It specifies a number of independent optional capabilities that MAY be used with MIX.Standards TrackDeferredCouncilMIX-MISC2020-11-030.1.2gh/@melvoFix various typosStandards408Mediated Information eXchange (MIX): Co-existence with MUCThis document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369. It specifies how MIX and MUC can be operated together.Standards TrackDeferredCouncilMIX-MUC2021-03-090.2.0@mathieuiFix reference to MIX-CORE namespacesStandards409IM Routing-NGThis specification provides a new set of routing rules for modern instant messaging.Standards TrackDeferredCouncilIM-NG2018-06-050.1.0XEP Editor (jwi)Accepted by vote of Council on 2018-04-11.Standards410MUC Self-Ping (Schrödinger's Chat)This protocol extension for XEP-0045 Multi User Chat allows clients to check whether they are still joined to a chatroom.Standards TrackDraftCouncilmuc-selfping2019-09-251.1.0jscTreat remote-server-not-found and remote-server-timeout like timeout errors (i.e. undecided).Standards2019-01-22411Bookmarks ConversionThis specification describes a method to migrate to PEP based bookmarks without loosing compatibility with client that still use Private XML.Standards TrackDeprecatedCouncilbookmarks-conversionXEP-04022021-10-191.1.0XEP Editor (jsc)Deprecated by vote of Council on 2021-10-06.Standards2020-10-14412XMPP Compliance Suites 2019This document defines XMPP protocol compliance levels.Standards TrackObsoleteCouncilCS2019XEP-0387XEP-04232020-01-281.0.1XEP Editor (jsc)Deprecate and Obsolete per Council vote on 2020-01-22Standards2019-02-29413Order-ByThis specification allows to change order of items retrieval in a Pubsub or MAM queryStandards TrackExperimentalCouncil2021-07-210.2jpAdd a way to discover on which protocols Order-By applies Remove references to SQL (except in implementation notes) Specify that order-by operate on the whole item set and inside a RSM result set Explicitly says that creation and modification dates are set by Pubsub service itself Specify that Clark notation should be used for extensions Add a full example with Pubsub and RSM Add hint for SQL based implementations removed XEP-0060 and XEP-0313 as dependencies, they are mentioned as use cases, but are not mandatory better wording following feedback Namespace bumpStandards414Cryptographic Hash Function Recommendations for XMPPThis document provides recommendations for the use of cryptographic hash functions in XMPP protocol extensions.InformationalDeferredCouncilhashrecs2020-05-230.4.0rionMake Blake2b-256 SHOULD and Blake2b 512 MUSTStandards415XMPP Over RELOAD (XOR)This specification defines an XMPP Usage of REsource LOcation And Discovery (RELOAD). The XMPP usage provides an ability for XMPP clients to discover other peers' location through the peer-to-peer overlay. Once a peer location is determined, the RELOAD AppAttach method is used to establish a direct connection between peers through which XMPP streams are exchanged.Standards TrackDeferredCouncil2019-03-060.1.0XEP Editor (jsc)Accepted by vote of Council on 2019-02-27.Standards416E2E Authentication in XMPPThis specification describes how X.509 certificates can be used for end-to-end authentication in XMPP.Standards TrackDeferredCouncil2019-03-060.1.0XEP Editor (jsc)Accepted by vote of Council on 2019-02-27.Standards417E2E Authentication in XMPP: Certificate Issuance and RevocationThis specification defines a way for a certificate authority to serve certificate signing requests via XMPP in order to issue X.509 certificates for the use in end-to-end and c2s SASL EXTERNAL authentication.Standards TrackDeferredCouncil2019-03-290.1.0XEP Editor (jsc)Accepted by vote of Council on 2019-03-13.Standards418DNS Queries over XMPP (DoX)This specification defines an XMPP protocol extension for sending DNS queries and getting DNS responses over XML streams. Each DNS query-response pair is mapped into an IQ exchange.Standards TrackDeferredCouncildox2019-03-290.1.0XEP Editor (jsc)Accepted by vote of Council on 2019-03-13.Standards419Improving Baseline Security in XMPPThis document describes a number of concrete and effective mechanisms for offering significant security enhancements to XMPP, with broad applicability.HumorousActiveEditorsecurity-theatre2019-04-011.0.0XEP Editor (jsc)Acceptance as XEP-0419; Light editing.Standards420Stanza Content EncryptionThe Stanza Content Encryption (SCE) protocol is intended as a way to allow clients to securely exchange arbitrary extension elements using different end-to-end encryption schemes.Standards TrackExperimentalCouncilSCE2021-11-180.4.1melvoClarify bare JID usage and improve sentences: * Clarify usage of bare JIDs for affix elements * Improve and correct sentences about affix elementsStandards421Occupant identifiers for semi-anonymous MUCsThis specification defines a method that allows clients to identify a MUC participant across reconnects and renames. It thus prevents impersonification of semi-anonymous users.Standards TrackDraftCounciloccupant-id2025-01-151.0.0XEP Editor (dg)Accept as Stable as per Council Vote from 2025-01-14.Standards2025-01-06422Message FasteningThis specification defines a way for payloads on a message to be marked as being logically fastened to a previous message.Standards TrackDeferredCouncilfasten2019-12-300.2.0ks/dwdPreparation for extending MAMStandards423XMPP Compliance Suites 2020This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackObsoleteCouncilCS2020XEP-0412XEP-04432022-02-151.0.1glAdd supersededbyStandards424Message RetractionThis specification defines a method for indicating that a message should be retracted.Standards TrackProposedCouncilmessage-retract2025-01-180.4.2jcb* Use a XEP-0425 /me command in the fallback body * State that a tombstone's <retracted/> element's 'id' attribute should match the retraction message's 'id'. * Specify XEP-0359 as a dependency and require that the stanza 'id' be used instead of the origin-id. * Update the "Security Considerations" to mention the risk of non-unique message IDs.Standards2025-01-06425Moderated Message RetractionThis specification defines a method for groupchat moderators to retract messages of other users.Standards TrackExperimentalCouncilmessage-moderation2023-03-020.3.0jcb* Remove the dependency on XEP-0422 Message Fastening * Rename to 'Moderated Message Retraction' and focus only on the retraction use-case * Ensure compatibility with clients that only implement XEP-0424 * Clarify the purpose of the <reason/> elementStandards2022-01-04426Character counting in message bodiesThis document describes how to correctly count characters in message bodies. This is required when referencing a position in the body.InformationalExperimentalCouncilcharcount2022-12-270.3.0lmwAdded section about subsequences.Standards427MAM Fastening CollationThis specification proposes a mechanism by which MAM results containing fastenings can be collated effectively.Standards TrackDeferredCouncilmamfc2020-01-280.1.0XEP Editor (jsc)Accepted by vote of Council on 2020-01-02.Standards428Fallback IndicationThis specification proposes a mechanism by which message bodies or parts thereof can be marked as being for fallback purposes, and therefore to be ignored by anything that understands the original intent of the message.Standards TrackExperimentalCouncilfallback2024-03-200.2.1lnjChange integer type of region start and end attributes in schema to xs:unsignedInt.Standards429Special Interests Group End to End EncryptionThis document proposes the formation of a Special Interest Group (SIG) within the XSF devoted to the development of end-to-end encryption within the context of XMPP.ProceduralActiveCouncilSIG-E2EE2021-08-101.1.0mwAdd discussion venue after creation by the Infrastructure Team.None2020-12-15430InboxThis specification proposes a mechanism by which clients can find a list of ongoing conversations and their state.Standards TrackDeferredCouncilinbox2020-02-030.2.0Standards431Full Text Search in MAMThis specification proposes a field in the MAM form for full text searching.Standards TrackDeferredCouncilfulltextmam2020-01-290.2.0dwd* No More Beer * Quasi-normative language around syntactic implementationStandards432Simple JSON MessagingThis specification proposes a simple mechanism by which applications can transfer data safely, without needing additional protocol design work. It is intended to provide a protocol that is trivial to implement and can be driven with a simple API.Standards TrackDeferredCounciludt2022-04-120.1.1fsDeclare missing dependency on XEP-0335.Standards433Extended Channel SearchThis specification provides a standardised protocol to search for public group chats. In contrast to XEP-0030 (Service Discovery), it works across multiple domains and in contrast to XEP-0055 (Jabber Search) it more clearly handles extensibility.Standards TrackDeferredCouncilECS2020-02-270.1.0XEP Editor (jsc)Accepted by vote of Council on 2020-02-26.Standards434Trust Messages (TM)This document specifies a way to communicate the trust in public long-term keys used by end-to-end encryption protocols from one endpoint to another.Standards TrackExperimentalCouncilTM2021-10-040.6.0melvoSpecify key identifier encoding, improve glossary and update to XEP-0384 version 0.8.0: * Specify usage of Base64 encoding for key identifiers within trust messages * Specify usage of Base16 encoding for key identifiers within Trust Message URIs * Use Base64-encoded key identifiers in examples * Add 'hash value' as example of key identifier * Update OMEMO's namespace to 'urn:xmpp:omemo:2' * Update namespace to 'urn:xmpp:tm:1'Standards435RemindersThis specification provides a way to set up reminders.Standards TrackDeferredCouncil2020-03-310.1.0XEP Editor (jsc)Accepted by vote of Council on 2020-03-04.Standards436MUC presence versioningThis specification defines a versioning mechanism which reduces the amount of presence traffic in a XEP-0045 MUCStandards TrackDeferredCouncilomnipresent-muc-affiliates2020-05-100.2.0jcbIncorporate feedback from the standards list * Create a separate tag for sending the version number. * Include a reset token. * Remove the "Additional measures" section and merge parts into "Requirements". * Mandate that presences are always sent for affiliated users.Standards437Room Activity IndicatorsThis specification describes a lightweight mechanism for activity notifications in MUCsStandards TrackDeferredCouncil2020-05-050.2.0XEP Editor (jsc)Assign urn:xmpp namespace instead of xmpp:prosody.im namespace (this was missed during acceptance)Standards438Best practices for password hashing and storageThis document outlines best practices for handling user passwords on the public Jabber network for both clients and servers.InformationalExperimentalCouncilpasswords2020-10-300.2.0sswUpdate to match draft-ietf-kitten-password-storage-01.Standards439Quick ResponseQuickly respond to automated messages.Standards TrackDeferredCouncil2020-05-050.1.0XEP Editor (jsc)Accepted by vote of Council on 2020-04-22.Standards440SASL Channel-Binding Type CapabilityThis specification allows servers to annouce their supported SASL channel-binding types to clients.Standards TrackExperimentalCouncilsasl-cb-types2024-07-020.4.2egp* Add an XML schema. * Mention that this specification does add a new namespace that should go to the registrar. * Fix indentation, typos, misuse of '' vs. </> for elements, etc.Standards2024-05-20441Message Archive Management PreferencesThis document defines a protocol to control a user's archiving preferences.Standards TrackExperimentalCouncilmamprefs2020-08-250.2.0XEP Editor (jsc)Accepted by vote of Council on 2020-08-19.Standards442Pubsub Message Archive ManagementThis document defines a protocol to query and control a pubsub node's message archive.Standards TrackExperimentalCouncilpubsub-mam2020-08-250.2.0XEP Editor (jsc)Accepted by vote of Council on 2020-08-19.Standards443XMPP Compliance Suites 2021This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackObsoleteCouncilCS2021XEP-0423XEP-04592020-11-241.0.0XEP Editor (jsc)Accept as Draft as per Council vote from 2020-11-11.Standards2020-11-03444Message ReactionsThis specification defines a way for adding reactions to a message.Standards TrackExperimentalCouncilreactions2024-04-150.2.1wbfix grammar and spellingStandards445Pre-Authenticated In-Band RegistrationThis document extends the In-Band-Registration protocol to use invitation tokens, e.g. for registering accounts on non-public servers.Standards TrackProposedCouncilibr-token2020-11-240.2.0XEP Editor (jsc)Accepted by vote of Council on 2020-11-04.Standards2021-10-20446File metadata elementThis specification defines a generic file metadata element to be used in other specifications.Standards TrackExperimentalCouncilfile-metadata2022-07-170.2.0lmwUse height/width instead of dimensionsStandards447Stateless file sharingThis specification describes a protocol for stateless asynchronous file sharing with integrity and transport flexibility. It allows clients to provide a good interoperable user experience in combination with Carbons and MAM.Standards TrackExperimentalCouncilsfs2024-01-010.3.1lmwFix example for multiple files.Standards448Encryption for stateless file sharingThis specification provides a protocol for sharing encrypted files using the stateless file sharing protocol (XEP-0447).Standards TrackExperimentalCouncilesfs2022-07-170.2.0lmw* Replace the ProtoXEP reference with a reference to the published XEP. * Add urn:xmpp:ciphers:aes-256-cbc-pkcs7:0 (same as used in XEP-0384).Standards449StickersThis specification provides a protocol to send stickers and to create and share sticker packs.Standards TrackExperimentalCouncilstickers2022-02-100.1.1egp* Replace ProtoXEP references with actual XEP references. * Use XEP-0446’s instead of the typo’d .Standards450Automatic Trust Management (ATM)This document specifies a way to automatically manage the trust in public long-term keys used by end-to-end encryption protocols.Standards TrackExperimentalCouncilATM2021-10-040.4.0melvoUpdate to XEP-0434 version 0.6.0 and XEP-0384 version 0.8.0: * Use Base64-encoded key identifiers in examples * Update TM's namespace to 'urn:xmpp:tm:1' * Update OMEMO's namespace to 'urn:xmpp:omemo:2'Standards451Stanza MultiplexingThis spec provides a mechanism for multiplexing multiple virtual hosts over a single XMPP session.Standards TrackExperimentalCouncilmuxXEP-02202021-01-190.1.0XEP Editor (jsc)Accepted by vote of Council on 2020-12-09.Standards452MUC Mention NotificationsThis specification documents how a user may be informed when they're mentioned in a MUC which they're not currently joined to.Standards TrackExperimentalCouncil2022-01-110.2.2gh/@xnamedFix addresses in exampleStandards453DOAP usage in XMPPThis specification defines how XMPP projects can provide a machine-readable description of their abilities, and how external entities can interact with it.InformationalExperimentalCouncil2023-07-040.1.2spwFix XMLNS typoStandards454OMEMO Media sharingAn informal way of sharing media files despite limitations in the OMEMO encryptionHistoricalExperimentalCouncil2021-01-260.1.0XEP Editor (jsc)Accepted by vote of Council on 2021-01-13.Standards455Service Outage StatusThis document defines an XMPP protocol extension that enables server administrators to communicate issues with the server to all users in a semantic manner.Standards TrackExperimentalCouncil2021-02-090.2.0Evolve the standard: Editorial restructuring, add business rules and security considerations and clarify some wording.Standards456Content Rating LabelsThis specification provides a wire format in the form of a Service Discovery extension to allow services of various kinds to publish information about the kind of content they allow and/or endorse on their platform.Standards TrackExperimentalCouncilcrl2021-03-280.2.0jscDescribe the conversion algorithm.Standards457Message FancyingThis specification defines a Unicode-formatted fancy text syntax for use in instant messages.HumorousActiveEditorfancyingXEP-0071XEP-0393XEP-03942021-04-011.0.0XEP Editor (jsc)Initial published version.None458Community Code of ConductThis document describes the XMPP Standard Foundation's Code of Conduct.ProceduralActiveBoard2024-01-151.0.0psaChanged status to Active per Board vote on 2024-01-05.None459XMPP Compliance Suites 2022This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackObsoleteCouncilCS2022XEP-0443XEP-04792021-12-011.1.0egpReplace deprecated XEP-0411 with XEP-0402 in Advanced Group Chat.Standards2021-09-21460Pubsub Caching HintsThis specification provides a way to get caching information from a Pubsub nodeStandards TrackExperimentalCouncilpubsub-caching2021-08-100.1.0XEP Editor (jsc)Accepted by vote of Council on 2021-07-21.Standards461Message RepliesThis document defines a way to indicate that a message is a reply to a previous message.Standards TrackExperimentalCouncilreply2022-12-090.2.0ncFix example character counting. Add disco feature. Relax the 'to' attribute constraints.Standards462PubSub Type FilteringThis specification provides a way to filter PubSub nodes in a disco query.Standards TrackExperimentalCouncil2022-04-220.1.1pepWording, typos.Standards463MUC Affiliations VersioningThis specification provides a way to reduce the amount of queries necessary to stay up-to-date with affiliations in a MUC room.Standards TrackExperimentalCouncil2022-03-080.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-02-16.Standards464CookiesThis document defines an XMPP protocol extension for setting and sending cookies.HumorousActiveCouncilcookies2022-04-011.0tjbPublish initial version via fast track (XEP Editor: jsc).Standards465Pubsub Public SubscriptionsThis specification provides a way to make subscriptions to a node publicStandards TrackExperimentalCouncilpps2022-07-250.1.1Jérôme Poisson (jp)Update Security Considerations according to council feedback.Standards466Ephemeral MessagesThis specification encourages a shift in privacy settings wrt. logging policies.Standards TrackExperimentalCouncil2022-05-170.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-05-03.Standards467XMPP over QUICThis specification defines a procedure to make both c2s and s2s XMPP connections over the QUIC protocol instead of TCP+TLS.Standards TrackExperimentalCouncil2022-07-130.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-06-22.Standards468WebSocket S2SThis specification defines a procedure to make s2s XMPP connections over WebSocket.Standards TrackExperimentalCouncil2022-07-130.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-06-22.Standards469Bookmark PinningThis document defines an XMPP protocol extension to allow users to pin PEP Native Bookmarks.Standards TrackExperimentalCouncilbookmarkspinning2022-08-230.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-07-27.Standards470Pubsub AttachmentsThis specification provides a way to attach elements to a pubsub item.Standards TrackExperimentalCouncilpubsub-attachments2022-08-250.2.0jp* Update reactions to be similar to * Namespace bump Standards471EventsThis specification describe how to handle events with XMPP.Standards TrackExperimentalCouncilevents2022-12-130.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-09-28.Standards472Pubsub Social FeedThis specification defines a way of publishing social content over XMPP.Standards TrackExperimentalCouncilpsfXEP-02772023-04-030.2.0tj* Change the pubsub#type to be consistent with other XEPs * Add a Discovery sectionStandards473OpenPGP for XMPP PubsubSpecifies an OpenPGP for XMPP (XEP-0373) profile for the pubsub use case.Standards TrackExperimentalCounciloxps2022-12-130.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-10-19.Standards474SASL SCRAM Downgrade ProtectionThis specification provides a way to secure the SASL and SASL2 handshakes against method and channel-binding downgrades.Standards TrackExperimentalCouncilSSDP2025-01-240.4.0tm* Use better value delimiterStandards475Pubsub SigningSpecifies a mechanism to sign pubsub itemsStandards TrackExperimentalCouncilpubsub-signing2022-12-200.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-11-30.Standards476Pubsub Signing: OpenPGP ProfileSpecifies a pubsub signing profile for OpenPGPStandards TrackExperimentalCouncilpss-ox2022-12-200.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-11-30.Standards477Pubsub Targeted EncryptionSpecifies a way to encrypt pubsub items for a restricted set of entitiesStandards TrackExperimentalCouncilpte2022-12-200.1.0XEP Editor (jsc)Accepted by vote of Council on 2022-11-30.Standards478Stream Limits AdvertisementThis specification defines a way for an XMPP entity to announce the limits it will enforce for data received on a stream.Standards TrackExperimentalCouncilsla2024-08-020.2.0egp* Add the XML Schema. * Clarify that both children can be optional. * Fix indentation and one typo.Standards479XMPP Compliance Suites 2023This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackExperimentalCouncilCS2023XEP-04592023-05-040.1.0XEP Editor: ksPromote to Experimental.Standards480SASL Upgrade TasksThis specification provides a way to upgrade to newer SASL mechanisms using SASL2 tasks.Standards TrackExperimentalCouncilsut2024-12-010.2.0tmFix SCRAM upgrade description and XML schema.Standards481Content Types in MessagesThis specification describes a generic method whereby content in messages can be tagged as having a specific Internet Content Type. It also provides a method for sending the same content using different content types, as a fall-back mechanism when communicating between clients having different content type support.Standards TrackExperimentalCouncilcontent2023-05-040.1.0XEP Editor: ksPromoting to Experimental.Standards482Call InvitesThis document defines how to invite someone to a call and how to respond to the invite.Standards TrackExperimentalCouncilcall-invites2023-05-040.1.0XEP Editor: ksPromoting to Experimental.Standards483HTTP Online MeetingsThis specification defines a protocol extension to request URLs from an external HTTP entity usable to initiate and invite participants to an online meeting.Standards TrackExperimentalCouncilhttp_online-meetings2023-12-120.2.0do* Use XEP-0482 to send the meeting link to another partyStandards484Fast Authentication Streamlining TokensThis specification defines a token-based method to streamline authentication in XMPP, allowing fully authenticated stream establishment within a single round-trip.Standards TrackProposedCouncilfast2024-06-300.2.0egp* Added an XML Schema. * Fixed text where 'count' was assumed to be an element, not an attribute. * Fixed indentation in a few examples.Standards2025-01-27485PubSub Server InformationThis document defines a data format whereby basic information of an XMPP domain can be expressed and exposed over pub-sub.Standards TrackExperimentalCouncilserverinfo2024-03-100.1.0dg* Promoted to Experimental.Standards486MUC AvatarsThis specification describes how to publish and retrieve avatars in rooms.HistoricalExperimentalCouncil2024-03-100.1.0XEP Editor: dg* Promoted to ExperimentalStandards487Host Meta 2 - One Method To Rule Them AllThis document defines an XMPP Extension Protocol for extending XEP-0156 by modifying the JSON Web Host Metadata Link format to support discovering all possible XMPP connection methods, for c2s and s2sStandards TrackExperimentalCouncilconnections-v2XEP-0156RFC 77112024-03-100.1.0XEP Editor: dg* Promoted to ExperimentalStandards488MUC Token InviteThis specification provides a way to generate tokens to invite users to a MUC room.Standards TrackExperimentalCouncilmuc-token-invitemuctokeninvite2024-03-110.1.0XEP Editor: dg* Promoted to ExperimentalStandards489Reporting Account AffiliationsThis specification documents a way for an XMPP server to report to other entities the relationship it has with a user on its domain.Standards TrackExperimentalCouncilraa2024-03-110.1.0XEP Editor: dg* Promoted to ExperimentalStandards490Message Displayed SynchronizationThis specification allows multiple clients of the same user to synchronize the displayed state of their chats.Standards TrackDraftCouncilmds2024-11-201.0.1egp* Fix some examples, and their indentation. * Add the XML Schema.Standards2024-10-31491WebXDCThis document defines an XMPP protocol extension to communicate WebXDC widgets and their state updates.Standards TrackExperimentalCouncilwebxdc2024-10-170.1.3spw* Clarifications and wording * Better references for WebXDC specStandards492Chat notification settingsThis document defines an XMPP protocol extension to synchronise per-chat notification settings across different clients.Standards TrackExperimentalCouncilnotification-settings2024-07-010.1.0XEP Editor: dg* Promoted to ExperimentalStandards493OAuth Client LoginThis specification details how a third-party can be securely granted access to an XMPP account without exposing the account credentials, using OAuth.InformationalExperimentalCounciltsa2024-09-170.1.0XEP Editor: dg* Promoted to ExperimentalStandards494Client Access ManagementThis specification details how an XMPP account owner can view and control which applications and services have access to their account.Standards TrackExperimentalCouncilcam2024-09-170.1.0XEP Editor: dg* Promoted to ExperimentalStandards495Happy EyeballsWhen a server's IPv4 path and protocol are working, but the server's IPv6 path and protocol are not working, a dual-stack application that initiates a connect experiences significant connection delay compared to an IPv4-only application. This is undesirable because it causes the dual-stack initiating entity to have a worse user experience. This XEP defines how IETF's 'Happy Eyeballs' algorithm requirements that reduce this user-visible delay are applied to XMPP.Standards TrackExperimentalCouncil2024-10-170.1.0XEP Editor: dg* Promoted to ExperimentalStandards496Pubsub Node RelationshipsThis specification describes how to establish links between pubsub nodes, allowing for optional hierarchical organization.Standards TrackExperimentalCouncilpubsub-relationships2024-11-200.1.0XEP Editor: dgPromoted to ExperimentalStandards497Pubsub Extended SubscriptionsThis specification extends the XMPP PubSub protocol by introducing mechanisms for users to subscribe to an entire node hierarchy or to receive notifications on node metadata updates.Standards TrackExperimentalCouncilpubsub-ext-sub2024-11-200.1.0XEP Editor: dgPromoted to ExperimentalStandards498Pubsub File SharingThis specification explains how to share files and optionally include directory structures similar to filesystems over XMPP Pubsub. It leverages XMPP Pubsub to enable notifications about file changes and manage permissions, providing users with real-time updates and control mechanisms. An optional mechanism is also specified for managing uploaded files.Standards TrackExperimentalCouncilpubsub-relationships2024-11-200.1.0XEP Editor: dgPromoted to ExperimentalStandards499Pubsub Extended DiscoveryThis specification extends the discovery requests used with the XMPP PubSub protocol by introducing mechanisms to discover linked nodes, descendants, or metadata.Standards TrackExperimentalCouncilpubsub-ext-disco2024-11-200.1.0XEP Editor: dgPromoted to ExperimentalStandards500MUC Slow ModeThis specification describes a way to rate limit messages a single user can send to a MUC room. It includes room configuration option, and how servers and clients can handle such a feature.Standards TrackExperimentalCouncilmuc-slow-modemucslow mode2024-12-030.1.1jlInclude first feedbacksStandards501Pubsub StoriesThis specification defines a way of publishing Stories over XMPP.Standards TrackExperimentalCouncilps2024-12-200.2.0tjAdd pubsub#item_expire in the node configurationStandards502MUC Activity IndicatorThis specification provides querying entities an approximate indication of the level of activity in a given XEP-0045 Multi-User Chat room.Standards TrackExperimentalCouncilmuc-activity2024-12-230.1.0XEP Editor: dgPromoted to ExperimentalStandards503Server-side spacesThis document defines an XMPP protocol to cluster several groupchat rooms together.Standards TrackExperimentalCouncilspaces2025-03-110.1.0XEP Editor: dgPromoted to Experimental StandardsxxxxAccount ManagementThis specification provides a collection of stream features meant to manage one's account, in particular for account registration, deletion and change of password.Standards TrackProtoXEPCouncilXEP-00772011-07-170.0.1jpFirst draft.Standardsaccount-managementxxxxAuthorization TokensThis document defines an XMPP protocol extension for issuing authentication tokens to client applications and provides methods for managing сlient connections.Standards TrackProtoXEPCouncilxabber-tokens2019-09-110.0.1ag/anFirst draft.Standardsauth-tokensxxxxAutomatic Trust Management (ATM)This document specifies a way to automatically manage the trust in public long-term keys used by end-to-end encryption protocols.Standards TrackProtoXEPCouncilATM2020-11-050.0.1melvoFirst draft.Standardsautomatic-trust-managementxxxxAutomatic Trust Transfer (ATT)ATT specifies an automatic transfer of trust in public identity keys used by the end-to-end encryption protocol OMEMO.Standards TrackProtoXEPCouncil2019-03-220.0.1mkFirst draft.Standardsautomatic-trust-transferxxxxJingle Audio/Video ConferencesThis specification defines a way to hold multiparty conferences with an SFU via Jingle.Standards TrackProtoXEPCouncilav-conferences2024-07-290.0.1jpFirst draft.Standardsav_conferencesxxxxImproving Baseline Security in XMPPThis document describes a number of concrete and effective mechanisms for offering significant security enhancements to XMPP, with broad applicability.HumorousProtoXEPEditorsecurity-theatre2019-04-010.0.1cd/lg* Initial RevisionStandardsbaseline-securityxxxxBidirectional Server-to-Server ConnectionsThis specification defines a protocol for using server-to-server connections in a bidirectional way such that stanzas are sent and received on the same TCP connection.Standards TrackProtoXEPCouncil2010-09-130.0.2dwdbelated run-over pre-publication Added notes on authenticationStandardsbidixxxxBody Markup HintsThis document specifies hints about the markup language used in elements.Standards TrackProtoXEPCouncilbmh2017-10-140.0.1fsFirst draft.StandardsbmhxxxxBookmark PinningThis document defines an XMPP protocol extension to allow users to pin PEP Native Bookmarks.Standards TrackProtoXEPCouncilbookmarkspinning2020-05-170.0.1amInitial version.Standardsbookmark-pinningxxxxBookmarks ConversionThis specification describes a method to migrate to PEP based bookmarks without loosing compatibility with client that still use Private XML.Standards TrackProtoXEPCouncilbookmarks-conversion2018-09-180.1.0dgFirst draft.Standardsbookmarks-conversionxxxxBuddycloud ChannelsThis document describes a profile and conventions for usage of the PubSub protocol in the context of a new type of communication.Standards TrackProtoXEPCouncil2014-04-290.0.2sdtFirst draft.Standardsbuddycloud-channelsxxxxSimple ButtonsThis specification provides a way to send simple buttons.Standards TrackProtoXEPCouncil2018-09-300.0.2kaPolishing preparing for submissionStandardsbuttonsxxxxCalendaring Extensions to Publish-SubscribeThis specification defines calendaring extensions to Publish-Subscribe for the purposes of group calendaring and scheduling between "Calendar Users" (CUs), accessing, managing, and sharing calendaring and scheduling information on a Calendar Server, and a mechanism for alarm notifications.Standards TrackProtoXEPCouncil2009-02-140.0.3.1khAdded XML schema; fixed a number of minor issues.StandardscalendaringxxxxCall InvitesThis document defines how to invite someone to a call and how to respond to the invite.Standards TrackProtoXEPCouncilcall-invites2022-01-010.0.1nw/mwFirst draft.Standardscall-invitesxxxxAtomically Compare-And-Publish PubSub ItemsThis specification provides a mechanism to atomically Compare-And-Publish items to a PubSub node.Standards TrackProtoXEPCouncilcap2017-10-060.0.3fsUse a custom item value (CAP-V).StandardscapxxxxMessage CarbonsIn order to keep all IM clients for a user engaged in a conversation, outbound messages are carbon-copied to all interested resources.Standards TrackProtoXEPCouncilcarbonsXEP-02592010-02-250.0.1jjhFirst draft.StandardscarbonsxxxxChannel Binding PseudomechanismsA method for advertising and negotiating types of channel binding supported by SCRAM based SASL mechanisms.Standards TrackProtoXEPCouncilpseudomechanisms2020-05-010.0.1sswFirst draft.Standardscb-pseudomechanismsxxxxClient Key SupportThis specification defines an XMPP binding of the supporting functions for the CLIENT-KEY SASL mechanism.Standards TrackProtoXEPCouncilclient-key2018-01-080.0.1dwdFirst draftStandardsclient-keyxxxxClient State IndicationThis document defines a way for the client to indicate its active/inactive state.Standards TrackProtoXEPCouncil2014-08-140.0.1mwFirst draft.Standardsclient-state-notificationxxxxCustomizable Message RoutingThis specification specifies customizable behavior of RFC 6121 section 8.5.2.1.1 to allow various message routing algorithms (e.g. for load balancing).Standards TrackProtoXEPCouncil2014-09-220.0.1fsFirst draft.StandardscmrxxxxCompatibility FallbacksThis document defines a way to indicate that a specific part of the body only serves as fallback and which specification the fallback is for.Standards TrackProtoXEPCouncilcompat2022-01-010.0.1nw/mwFirst draft.Standardscompatibility-fallbackxxxxContent Rating LabelsThis specification provides a wire format in the form of a Service Discovery extension to allow services of various kinds to publish information about the kind of content they allow and/or endorse on their platform.Standards TrackProtoXEPCouncilcrl2021-03-030.0.1jscFirst draft.Standardscontent-ratingsxxxxContent Types in MessagesThis specification describes a generic method whereby content in messages can be tagged as having a specific Internet Content Type. It also provides a method for sending the same content using different content types, as a fall-back mechanism when communicating between clients having different content type support.Standards TrackProtoXEPCouncilcontent2016-01-150.0.1pwFirst draft.Standardscontent-typesxxxxXMPP Compliance Suites 2019This document defines XMPP protocol compliance levels.Standards TrackProtoXEPCouncilCS2019XEP-03782018-12-080.0.1jscFirst draft based on XEP-0378.Standardscs-2019xxxxXMPP Compliance Suites 2020This document defines XMPP protocol compliance levels.Standards TrackProtoXEPCouncilCS2020XEP-04122018-12-080.0.1jscFirst draft based on XEP-0412. Non-editorial Changes: * Added "Future Development" sectionStandardscs-2020xxxxXMPP Compliance Suites 2021This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackProtoXEPCouncilCS2021XEP-04232020-09-020.0.1glFirst draft based on XEP-0423.Standardscs-2021xxxxXMPP Compliance Suites 2022This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackProtoXEPCouncilCS2022XEP-04432021-02-030.0.1spFirst draft based on XEP-0443.Standardscs-2022xxxxXMPP Compliance Suites 2023This document defines XMPP application categories for different use cases (Core, Web, IM, and Mobile), and specifies the required XEPs that client and server software needs to implement for compliance with the use cases.Standards TrackProtoXEPCouncilCS2023XEP-04592023-01-250.0.1glFirst draft based on XEP-0459.Standardscs-2023xxxxPresence DecloakingThis specification defines an XMPP protocol extension that enables a user to send directed presence with a request for the target to reciprocate.Standards trackProtoXEPCouncil2010-01-170.0.2psaRewrote the introduction, clarified the security considerations, requested issuance of an appropriate URN from the XMPP Registrar.NonedecloakxxxxDisco Feature AttachmentThis specification provides a way to indicate that a feature is implemented for a specific namespaceStandards TrackProtoXEPCouncildfa2021-07-220.0.1jpFirst draft.Standardsdisco-feature-attachmentxxxxDistributed Multi-User ChatThis document defines methods for distributing Multi-User Chat (MUC) rooms across multiple services.Standards TrackProtoXEPCouncildmuc2010-02-050.0.2psaSimplified the protocol to use a master-slave approach; modified terminology.StandardsdistributedmucxxxxDMUC3: Distributed MUCThis document provides a protocol for reducing the bandwidth cost of local users contributing to a remote MUC over a constrained link through a local mirror of the MUC room.Standards TrackProtoXEPCouncilDMUC2011-01-250.0.1wafFirst draft.Standardsdmuc3xxxxDomain Name AssertionsAn application-level approach to asserting and proving the delegated ownership of a domain name for server-to-server XMPP federation.Standards TrackProtoXEPCouncildnaXEP-0220XEP-02382009-07-270.0.1jjhFirst draft.StandardsdnaxxxxDOAP usage in XMPPThis specification defines how XMPP projects can provide a machine-readable description of their abilities, and how external entities can interact with it.InformationalProtoXEPCouncil2021-01-100.0.1egpFirst draft.Standardsdoap-usage-in-xmppxxxxDNS Queries over XMPP (DoX)This specification defines an XMPP protocol extension for sending DNS queries and getting DNS responses over XML streams. Each DNS query-response pair is mapped into an IQ exchange.Standards TrackProtoXEPCouncildox2019-03-110.0.1tjbFirst draft.StandardsdoxxxxxDesign Considerations for Digital Signatures in XMPPThis document discusses considerations for the design of Digital Signatures in XMPP, including use cases and requirements. The document also discusses various ways XML Digital Signatures could be used in XMPP.InformationalProtoXEPCouncilxmpp-dsig-design2009-08-200.0.090820kdzProto-XEP draft.Standardsdsig-designxxxxDigital Signatures in XMPPThis document provides a technical specification for Digital Signatures in the Extensible Messaging and Presence Protocol (XMPP).Technical SpecificationProtoCouncil2010-03-100.0kdzProto-XEP draft.StandardsdsigxxxxE2E Authentication in XMPP: CA RequirementsThis specification defines requirements for certificate authorities issuing X.509 certificates for e2e authentication in XMPP.ProceduralProtoXEPBoard2019-02-080.0.1evkFirst draft.Standardseax-carxxxxE2E Authentication in XMPP: Certificate Issuance and RevocationThis specification defines a way for a certificate authority to serve certificate signing requests via XMPP in order to issue X.509 certificates for the use in end-to-end and c2s SASL EXTERNAL authentication.Standards TrackProtoXEPCouncil2019-03-110.0.1evkFirst draft.Standardseax-cirxxxxE2E Authentication in XMPPThis specification describes how X.509 certificates can be used for end-to-end authentication in XMPP.Standards TrackProtoXEPCouncil2019-02-080.0.1evkFirst draft.StandardseaxxxxxEphemeral MessagesThis specification encourages a shift in privacy settings wrt. logging policies.Standards TrackProtoXEPCouncil2022-04-160.0.2pepResubmit with some changes.Standardsephemeral-messages-v2xxxxEncryption for stateless file sharingThis specification provides a protocol for sharing encrypted files using the stateless file sharing protocol (XEP-xxxx).Standards TrackProtoXEPCouncilesfs2020-11-100.0.1lmwFirst draft.StandardsesfsxxxxEventsThis specification describe how to handle events with XMPP.Standards TrackProtoXEPCouncilevents2022-09-080.0.1jpFirst draft.StandardseventsxxxxExtended Channel SearchThis specification provides a standardised protocol to search for public group chats. In contrast to XEP-0030 (Service Discovery), it works across multiple domains and in contrast to XEP-0055 (Jabber Search) it more clearly handles extensibility.Standards TrackProtoXEPCouncilECS2020-02-190.0.1jscFirst draft.Standardsextended-channel-searchxxxxFallback IndicationThis specification proposes a mechanism by which message bodies can be marked as being purely for fallback purposes, and therefore to be ignored by intermediaries and anything that understands the remainder of the message.Standards TrackProtoXEPCouncilfallback2019-12-300.0.1dwd* Initial RevisionStandardsfallbackxxxxMessage FasteningThis specification defines a way for payloads on a message to be marked as being logically fastened to a previous message.Standards TrackProtoXEPCouncilfasten2019-09-040.0.1ksFirst draft.StandardsfastenxxxxFile metadata elementThis specification defines a generic file metadata element to be used in other specifications.Standards TrackProtoXEPCouncilfile-metadata2020-11-030.0.1lmwFirst draft.Standardsfile-metadataxxxxFederated MUC for constrained environmentsThis document provides a protocol for reducing the bandwidth cost of local users contributing to a remote MUC over a constrained link through local proxying of the MUC room.Standards TrackProtoXEPCouncilFMUC2010-05-240.0.1kisFirst draft.StandardsfmucxxxxStanza ForwardingThis specification defines best practices for delivery of XMPP stanzas that are forwarded from one address to another.Standards TrackProtoXEPCouncilforwarding2009-04-100.0.5psaChanged service discovery feature to urn:xmpp:forwarding:0 in compliance with XMPP Registrar processes.Standardsforwarding-deliveryxxxxFile Sharing NotificationsThis specification provides a notification protocol for information about ongoing file uploads and media creation by the user.Standards TrackProtoXEPCouncil2018-08-210.0.4lnjAdd upload-finished state, minor improvements.StandardsfsnxxxxFile Transfer MetadataAn extension to XEP-0096 and XEP-0234 to design a way of adding arbitrary data to file transfer offers.Standards TrackProtoXEPCouncil2011-11-110.0.1jlInitial version.Standardsft-metadataxxxxFull Text Search in MAMThis specification proposes a field in the MAM form for full text searching.Standards TrackProtoXEPCouncilfulltextmam2020-01-210.0.1dwd* Initial RevisionStandardsfulltextxxxxGateway Relayed EncryptionThis specification describes a mechanism for end-to-end encryption with gateways that is compatible with third-party networks.Standards TrackProtoXEPCouncilgregree2ee2025-01-120.0.1jpFirst draft.Standardsgateway-relayed-encryptionxxxxBest practices for GDPR compliant deployment of XMPPThis informational XEP provides information on deploying XMPP in way that is compliant with the General Data Protection Regulation (GDPR) of the European Union.InformationalProtoXEPCouncil2018-05-220.0.1wtFirst draft.StandardsgdprxxxxGRE Encrypter: OpenPGPThis GRE Encrypter uses OpenPGP to encrypt payload.Standards TrackProtoXEPCouncilgre-encrypter-openpgpgreencrypter2025-01-120.0.1jpFirst draft.Standardsgre-encrypter-openpgpxxxxGRE Formatter: MIMEThis GRE Formatter uses Multipurpose Internet Mail Extensions (MIME) to format payload.Standards TrackProtoXEPCouncilgre-formatter-mimegreformatter2025-01-120.0.1jpFirst draft.Standardsgre-formatter-mimexxxxXMPP Connections across HTTPS (HACX)This specification defines a procedure to look up various connection methods for an XMPP server over HTTPS, with a focus on censorship resistance.Standards TrackProtoXEPCouncil2018-05-160.0.2tjbFix requirements, editing, add alternatives.StandardshacxxxxxCryptographic Hash Function Recommendations for XMPPThis document provides recommendations for the use of cryptographic hash functions in XMPP protocol extensions.InformationalProtoXEPCouncilhashrecs2019-01-130.0.1psaSplit from XEP-0300.Standardshash-recommendationsxxxxHost Meta 2 - One Method To Rule Them AllThis document defines an XMPP Extension Protocol for extending XEP-0156 by modifying the JSON Web Host Metadata Link format to support discovering all possible XMPP connection methods, for c2s and s2sStandards TrackProtoXEPCouncilconnections-v2XEP-0156RFC 77112023-11-190.0.1tjbFirst draft.Standardshost-meta-2xxxxPre-Authenticated In-Band RegistrationThis document extends the In-Band-Registration protocol to use invitation tokens, e.g. for registering accounts on non-public servers.Standards TrackProtoXEPCouncilibr-token2020-10-280.1.0glFirst version based on XEP-0401.Standardsibr-tokenxxxxIM Routing-NGThis specification provides a new set of routing rules for modern instant messaging.Standards TrackProtoXEPCouncilIM-NG2018-03-290.0.2kisFix various slips, mention reflection.Standardsim-ngxxxxInboxThis specification proposes a mechanism by which clients can find a list of ongoing conversations and their state.Standards TrackProtoXEPCouncilinbox2019-12-300.0.1dwd* Initial RevisionStandardsinboxxxxxIncident ReportingThis specification defines methods for incident reporting among XMPP server deployments.Standards TrackProtoXEPCouncil2009-04-300.0.3psaPer Council feedback, moved server rosters to a separate specification.Standardsincident-reportingxxxxInstant GamingThis document defines an XMPP protocol extension for serverless instant gaming in a one-to-one context.Standards TrackProtoXEPCouncil2009-03-140.0.1tgFirst draft.Standardsinstant-gamingxxxxInternet of Things - EventsThis specification describes an architecture based on the XMPP protocol whereby Things can subscribe to events from other Things based on sensor data available.Standards TrackProtoXEPCounciliot-events2014-08-130.0.1pwFirst draft.Standardsiot-eventsxxxxInstant Stream ResumptionThis specification introduces a mechanism for instant stream resumption, based on Stream Management (XEP-0198), allowing XMPP entities to instantaneously resume an XMPP stream.Standards TrackProtoXEPCouncilisr2017-11-300.0.5fsMinor changesStandardsisr-sasl2xxxxInstant Stream ResumptionThis specification introduces a mechanism for instant stream resumption, based on Stream Management (XEP-0198), allowing XMPP entities to instantaneously resume an XMPP stream.Standards TrackProtoXEPCouncilisr2016-03-110.0.2fsSecond draft.StandardsisrxxxxJID MentionThis specification provides a way for an entity to mention a jidStandards TrackProtoXEPCouncil2016-01-160.0.1jpFirst draft.Standardsjid-mentionxxxxJingle In-Band Bytestreams TransportThis specification defines a Jingle transport method that results in sending data via the In-Band Bytestreams (IBB) protocol defined in XEP-0047. Essentially this transport method reuses XEP-0047 semantics for sending the data and defines native Jingle methods for starting and ending an IBB session.Standards TrackProtoXEPCounciljingle-ibb2009-02-100.0.1psaRough draft.Standardsjingle-ibbxxxxJingle Relay NodesThis documents specifies how Jingle Clients can interact with Jingle Relay Nodes Services and how XMPP entities can provide, search and list available Jingle Relay Nodes.Standards TrackProtoXEPCouncilJingle Nodes2009-12-170.0.1psaFirst draft.Standardsjingle-nodesxxxxCodecs for Jingle RTP SessionsThis document describes implementation considerations related to voice and video codecs for use in Jingle RTP sessions.InformationalProtoXEPCouncil2009-04-040.0.4psaClarified status of H.264.Standardsjingle-rtp-codecsxxxxMandatory-to-Implement Technologies for Jingle RTP SessionsThis specification defines mandatory-to-implement technologies for Jingle RTP sessions, in particular codecs for voice and video chat.Standards TrackProtoXEPCouncil2009-03-040.0.2psaAdded more information about video codecs.Standardsjingle-rtp-mtixxxxJingle SOCKS5 Bytestreams Transport MethodThis specification defines a Jingle transport method that results in sending data via the SOCKS5 Bytestreams (S5B) protocol defined in XEP-0065. Essentially this transport method reuses XEP-0065 semantics for sending the data and defines native Jingle methods for starting and ending an S5B session.Standards TrackProtoXEPCounciljingle-s5b2009-02-180.0.3psaClarified order of events to be consistent with raw-udp and ice-udp.Standardsjingle-s5bxxxxJingle SDP ContentThis specification defines a Jingle application type for transport the Session Description Protocol (SDP) over Jingle.Standards TrackProtoXEPCounciljingle-sdp2013-09-050.0.1phFirst draft.Standardsjingle-sdpxxxxXMPP Transport Layer SecurityThis document specifies the XMPP Transport Layer Security (XTLS) protocol. XTLS, which provides communications privacy for the Extensible Messaging and Presence Protocol (XMPP), enables XMPP applications to communicate in a way that is designed to prevent eavesdropping, tampering, and forgery of XML stanzas. XTLS is based on Transport Layer Security (TLS) and integrated as security layer into Jingle. The protocol can be used for secure end-to-end messages as well as any other Jingle application like file file transfer.Standards TrackProtoXEPCouncil2009-02-210.0.4dmImproved the documentation about exchanging passwords and certificates.Standardsjingle-xtlsxxxxUse of ZRTP in Jingle RTP SessionsThis specification defines a Jingle application type for negotiating one or more sessions that use the Real-time Transport Protocol (RTP) to exchange media such as voice or video. The application type includes a straightforward mapping to Session Description Protocol (SDP) for interworking with SIP media endpoints.Standards TrackProtoXEPCouncil2009-02-240.0.2psaDefined dedicated namespace for the zrtp-hash element to improve service discovery and handling of session-info message; clarified protocol flow and security considerations.Standardsjingle-zrtpxxxxJSON Content Type supportThis specification defines JavaScript Object Notation (JSON) use in XMPP service.Standards TrackProtoXEPCouncil2010-05-070.0.1MiHFirst draft.StandardsjsonxxxxLinked Process ProtocolLinked Process is a protocol for distributed computing that facilitates the creation of an Internet-scale, general-purpose compute cloud. Any computing device with an Internet connection can consume and/or provide computing resources in a Linked Process cloud. Resource consumption occurs when a device migrates arbitrary code to another device for execution. Linked Process is applicable where it is necessary for a resource consumer to define the means by which a provider's resources are utilized.Standards TrackProtoXEPCouncil2009-09-180.0.1psaFirst draft.StandardslopxxxxMAM Fastening CollationThis specification proposes a mechanism by which MAM results containing fastenings can be collated effectively.Standards TrackProtoXEPCouncilmamfc2019-12-190.0.1dwd* Initial RevisionStandardsmamfcxxxxMediated Information eXchange (MIX)This document defines Mediated Information eXchange (MIX), an XMPP protocol extension for the exchange of information among multiple participants through a mediating service. The protocol can be used to model group communication applications such as chatrooms, although with greater flexibility and extensibility than existing groupchat technologies such as Multi-User Chat (MUC). Although MIX supports standard groupchat features such as discussion topics and invitations, and also defines a strong access control model similar to that of MUC, it enables users to participate without sharing presence, allows communication of any structured data (not only textual messages), reuses Publish-Subscribe so that users can receive only the information formats in which they are interested, and reuses Message Archive Management (MAM) to provide more robust storage and archiving.Standards TrackProtoXEPCouncilMIX2015-10-120.0.1kis/psaFirst draft.StandardsmixxxxxXMPP on Mobile DevicesThis document provides background information for XMPP implementors concerned with mobile devices operating in a cellular network such as 3G.InformationalProtoXEPCouncil2010-07-130.0.1dwdFirst draft. Also John's birthday.StandardsmobilexxxxMovedThis document defines an XMPP protocol extension that enables a user to inform its contacts about a change in JID.Standards TrackProtoXEPCouncilmoved2010-06-090.0.7tpModified syntax to use 'old' and 'new' attributes.StandardsmovedxxxxMoved 2.0This specification details a way for a user to notify their contacts about an account move.Standards TrackProtoXEPCouncil2021-06-050.0.1mwFirst draft.Standardsmoved2xxxxMUC Activity IndicatorThis specification provides querying entities an approximate indication of the level of activity in a given XEP-0045 Multi-User Chat room.Standards TrackProtoXEPCouncil2024-11-290.0.1jscInitial submission.Standardsmuc-activityxxxxMulti-User Chat AdministrationThis specification defines how to administer Multi-User Chat rooms and services using Ad-Hoc Commands.Standards TrackProtoXEPCouncil2012-09-250.0.1psaFirst draft.Standardsmuc-adminxxxxMUC Affiliations VersioningThis specification provides a way to reduce the amount of queries necessary to stay up-to-date with affiliations in a MUC room.Standards TrackProtoXEPCouncil2022-02-120.0.1pepFirst draft.Standardsmuc-affiliations-versioningxxxxMUC AvatarsThis specification describes how to publish and retrieve avatars in rooms.HistoricalProtoXEPCouncil2023-02-150.0.3egpRestore to the first revision, and republish to the Historical track.Standardsmuc-avatarsxxxxMulti-User Chat LightThis specification provides a presence-less standard for Multi-User Chats. Its feature set is a response to mobile XMPP applications needs and specific environment.Standards TrackProtoXEPCouncil2015-10-290.0.1PNFirst full version.Standardsmuc-lightxxxxMUC Mention NotificationsThis specification documents how a user may be informed when they're mentioned in a MUC which they're not currently joined to.Standards TrackProtoXEPCouncil2020-12-170.0.1jcbFirst draft.Standardsmuc-mention-notificationsxxxxMUC presence versioningThis specification defines a versioning mechanism which reduces the amount of presence traffic in a XEP-0045 MUCStandards TrackProtoXEPCouncilomnipresent-muc-affiliates2020-03-300.0.1jcbFirst draftStandardsmuc-presence-versioningxxxxMUC Self-Ping (Schrödinger's Chat)This protocol extension for XEP-0045 Multi User Chat allows clients to check whether they are still joined to a chatroom.Standards TrackProtoXEPCouncilmuc-selfping2018-08-060.0.2glAdd handling for another corner case, change title to Council’s likingStandardsmuc-selfpingxxxxMUC Token InviteThis specification provides a way to generate tokens to invite users to a MUC room.Standards TrackProtoXEPCouncilmuctokeninvite2023-08-150.0.1pepFirst draft.Standardsmuc-token-invitexxxxMujiThis specification defines an XMPP protocol extension for initiating and managing multiparty voice and video conferences within an XMPP MUCExtensionProtoXepTelepathy projectmuji2009-06-090.0.0.2sjoerdSecond rough draft.StandardsmujixxxxMulti-User GamingThis document defines an XMPP protocol extension for multi-user gaming.Standards TrackProtoXEPCouncilmug2009-04-200.0.3gnAdded sections about entering non-anonymous, semi-anonymous and fully-anonymous rooms.Standardsmulti-user_gamingxxxxMulti-stage IBRThis specification defines an augmentation of In-Band Registration to allow for multiple stages of user input.Standards TrackProtoXEPCouncil2016-02-030.0.1spwFirst draft.Standardsmultistage-ibrxxxxStanza MultiplexingThis spec provides a mechanism for multiplexing multiple virtual hosts over a single XMPP session.Standards TrackProtoXEPCouncilmuxXEP-02202020-12-030.0.1sswFirst draft.StandardsmuxxxxxChat notification settingsThis document defines an XMPP protocol extension to synchronise per-chat notification settings across different clients.Standards TrackProtoXEPCouncilnotification-settings2024-02-080.0.2ncUpdate after discussions on the standards@ mailing list.Standardsnotification-filterxxxxNotification InboxThis document defines a protocol to manage a notification inbox for pending events.Standards TrackProtoXEPCouncilinbox2015-12-090.0.2XEP Editor (mam)Updated contact information for Valerian Saliou.Standardsnotification-inboxxxxxNamespace Versioning in urn:xmppThis document describes the common practise of namespace versioning for the urn:xmpp URN namespace, and how this affects (and does not affect) the protocols which have such namespaces.InformationalExperimentalCouncilnamespace2015-04-070.0.2dcNoticed two conversations in two weeks. Must be time to reify this one. Added two new misconceptions; the author vs registrar one was mine.StandardsnsverxxxxAnonymous unique occupant identifiers for MUCsThis specification defines a method that allows clients to identify a MUC participant across reconnects and renames. It thus prevents impersonification of anonymous users.Standards TrackProtoXEPCounciloccupant-id2019-07-130.0.1mwFirst draft.Standardsoccupant-idxxxxOMEMO Encrypted Jingle File TransferThis specification defines a Jingle application for transfering encrypted files from one entity to another. The protocol is based on the regular Jingle File Transfer specification and diverges from that only in the description of the file.Standards TrackProtoXEPCouncil2015-09-020.0.1dgFirst draft.Standardsomemo-filetransferxxxxOMEMO Media sharingAn informal way of sharing media files despite limitations in the OMEMO encryptionHistoricalProtoXEPCouncil2021-01-100.0.2egp* Resubmitted on the Historical track. * Added a section on IANA considerations.Standardsomemo-media-sharingxxxxOrder-ByThis specification allows to change order of items retrieval in a Pubsub or MAM queryStandards TrackProtoXEPCouncil2019-01-050.0.1jpFirst draft.Standardsorder-byxxxxOut-of-Band Stream DataThis specification defines how to send parts of an XML stream over a direct connection between peers. This allows to send large stanzas or binary data without blocking the XML stream for other stanzas.Standards TrackProtoXEPCouncil2009-03-300.0.2dmSimplify Example; Restrict Usage; Add abortStandardsoutofbandxxxxBest practices for password hashing and storageThis document outlines best practices for handling user passwords on the public Jabber network for both clients and servers.InformationalProtoXEPCouncilpasswords2020-04-190.0.1sswFirst draft.Standardspassword-storagexxxxUser Avatar to vCard-Based Avatars ConversionThis specification describes a method for using PEP based avatars and vCard based avatars in parallel by having the user’s server do a conversion between the two.Standards TrackProtoXEPCouncilpep-vcard-conversion2017-12-180.1.0dgFirst draft.Standardspep-vcard-conversionxxxxUser Time ZoneThis specification defines a payload format for communicating information about a user's time zone. The payload format is typically transported using the personal eventing protocol, a profile of XMPP publish-subscribe specified in XEP-0163.Standards TrackProtoXEPCouncil2013-10-280.1lanceInitial version.StandardspeptzoxxxxPre-auth Registration Key Generation and ValidationThis specification updates XEP-0401 and XEP-0445 by specifying a shared format for the pre-authenticated registration token.Standards TrackProtoXEPCouncilpreauth-token2021-06-060.0.1sswFirst draft.Standardspreauth-ibrxxxxProblem ReportingThis specification defines methods for reporting of network problems between XMPP server deployments.Standards TrackProtoXEPCouncil2009-04-130.0.1psaFirst draft.Standardsproblem-reportingxxxxPubsub AttachmentsThis specification provides a way to attach elements to a pubsub item.Standards TrackProtoXEPCouncilpubsub-attachments2022-07-110.0.1jpFirst draft.Standardspubsub-attachmentsxxxxPubsub Caching HintsThis specification provides a way to get caching information from a Pubsub nodeStandards TrackProtoXEPCouncilpubsub-caching2021-07-190.0.1jpFirst draft.Standardspubsub-caching-hintsxxxxOpenPGP for XMPP PubsubSpecifies an OpenPGP for XMPP (XEP-0373) profile for the pubsub use case.Standards TrackProtoXEPCounciloxps2022-10-120.0.6jp* add forgotten "jid" and "node" attribute to <revoke/> * clarify that <openpgp/> wrapper is usedStandardspubsub-encryptionxxxxPubsub Extended DiscoveryThis specification extends the discovery requests used with the XMPP PubSub protocol by introducing mechanisms to discover linked nodes, descendants, or metadata.Standards TrackProtoXEPCouncilpubsub-ext-disco2024-10-170.0.1jpFirst draft.Standardspubsub-extended-discoveryxxxxPubsub Extended SubscriptionsThis specification extends the XMPP PubSub protocol by introducing mechanisms for users to subscribe to an entire node hierarchy or to receive notifications on node metadata updates.Standards TrackProtoXEPCouncilpubsub-ext-sub2024-10-150.0.1jpFirst draft.Standardspubsub-extended-subscriptionxxxxPubsub File SharingThis specification explains how to share files and optionally include directory structures similar to filesystems over XMPP Pubsub. It leverages XMPP Pubsub to enable notifications about file changes and manage permissions, providing users with real-time updates and control mechanisms. An optional mechanism is also specified for managing uploaded files.Standards TrackProtoXEPCouncilpubsub-relationships2024-10-190.0.1jpFirst draft.Standardspubsub-file-sharingxxxxPubSub Type FilteringThis specification provides a way to filter PubSub nodes in a disco query.Standards TrackProtoXEPCouncil2022-02-010.0.1edhelas, pepFirst draft.Standardspubsub-filterxxxxPubsub Node RelationshipsThis specification describes how to establish links between pubsub nodes, allowing for optional hierarchical organization.Standards TrackProtoXEPCouncilpubsub-relationships2024-10-090.0.1jpFirst draft.Standardspubsub-node-relationshipsxxxxPubSub NamespacesThis extension defines a new PubSub node attribute to specify the type of payload.Standards TrackProtoXEPCouncilpubsub-ns2021-12-250.0.1mbFirst draft.Standardspubsub-nsxxxxPubsub Public SubscriptionsThis specification provides a way to make subscriptions to a node publicStandards TrackProtoXEPCouncilpps2022-03-300.0.1jpFirst draft.Standardspubsub-public-subscriptionsxxxxPubSub Server InformationThis document defines a data format whereby basic information of an XMPP domain can be expressed and exposed over pub-sub.Standards TrackProtoXEPCouncilserverinfo2023-12-190.0.1gdk* Initial version.Standardspubsub-server-infoxxxxPubsub Signing: OpenPGP ProfileSpecifies a pubsub signing profile for OpenPGPStandards TrackProtoXEPCouncilpss-ox2022-10-290.0.1jpFirst draft.Standardspubsub-signing-openpgpxxxxPubsub SigningSpecifies a mechanism to sign pubsub itemsStandards TrackProtoXEPCouncilpubsub-signing2022-10-200.0.2jp* replaced "signatory" term with the more commonly used "signer" * added <to/> and <time/> elements (similar to XEP-0373)Standardspubsub-signingxxxxPubSub SinceThis specification defines a publish-subscribe feature that enables a subscriber to automatically receive pubsub and PEP notifications since its last logout time.Standards TrackProtoXEPCouncil2012-02-290.0.2psaAddressed some feedback from the XMPP Council.Standardspubsub-sincexxxxPubSub Social FeedThis specification defines a way of publishing social content over XMPP.Standards TrackProtoXEPCouncilpsfXEP-02772022-09-260.0.1tjInitial version.Standardspubsub-social-feedxxxxPubsub Targeted EncryptionSpecifies a way to encrypt pubsub items for a restricted set of entitiesStandards TrackProtoXEPCouncilpte2022-10-310.0.1jpFirst draft.Standardspubsub-targeted-encryptionxxxxThe 'xmpp.pubsub' URI SchemeThis document defines the format of Uniform Resource Identifiers (URIs) to identify nodes in the context of Publish-Subscribe services as well as items within the scope of such nodes.Standards TrackProtoXEPCouncil2012-01-140.0.1khInitial draft.Standardspubsub-urixxxxQuality of ServiceThis specification describes a generic method whereby messages can be sent between clients using a predefined Quality of Service level.Standards TrackProtoXEPCouncilqos2015-11-120.0.1pwFirst draft.StandardsqosxxxxQuick ResponseQuickly respond to automated messages.Standards TrackProtoXEPCouncil2020-04-200.0.1thInitial versionStandardsquick-responsexxxxMessage ReactionsThis specification defines a way for adding reactions to a message.Standards TrackProtoXEPCouncilreactions2019-07-140.0.1nw/mwFirst draft.StandardsreactionsxxxxRemindersThis specification provides a way to set up reminders.Standards TrackProtoXEPCouncil2020-02-170.0.1mdvpInitial versionStandardsremindersxxxxJingle Remote ControlThis specification defines a way to remotely control a device using local peripheral inputs.Standards TrackProtoXEPCouncilremote-control2024-05-110.0.1jpFirst draft.Standardsremote-controlxxxxMessage RepliesThis document defines a way to indicate that a message is a reply to a previous message.Standards TrackProtoXEPCouncilreply2022-01-010.0.1nw/mwFirst draft.StandardsrepliesxxxxEntity ReputationThis specification defines an XMPP protocol extension for communicating the reputation of any entity on the network.Standards TrackProtoXEPCouncil2010-01-110.0.1psaFirst draft.StandardsreputationxxxxREST with XMPPThis specification defines how the Representational State Transfer (REST) architectural style can be applied to an XMPP overlay network. It specifies an XMPP protocol extension for accessing resources and transporting resource metadata and XML-REST encoded requests and responses between two XMPP entities.Standards TrackProtoXEPCouncil2015-05-110.0.1asFirst draft.StandardsrestxxxxRoom Activity IndicatorsThis specification describes a lightweight mechanism for activity notifications in MUCsStandards TrackProtoXEPCouncil2020-04-130.0.1mwFirst draft.Standardsroom-activity-indicatorsxxxxRecipient Server Side Notifications FilteringThis specification defines a modern efficient way to deliver PubSub notifications.Standards TrackProtoXEPCouncil2014-07-200.0.2sdUpdated based on Council feedback.StandardsrsfxxxxS2S ComponentsThis document describes a modernized method of connecting 'components' to a server, expressed as a profile of the existing standard server-to-server protocol.Standards TrackProtoXEPCouncilcomp-s2sXEP-0114XEP-02252015-01-200.0.1dwd* Initial RevisionStandardss2s-componentsxxxxExtensible SASL ProfileThis document describes a replacement for the SASL profile documented in RFC 6120 which allows for greater extensibility.Standards TrackProtoXEPCouncilsasl22017-02-070.0.1dwd* Initial RevisionStandardssasl2xxxxSensor-Over-XMPPThis specification defines a payload format for communicating sensor and actuation information. The payload format is transported using the publish-subscribe mechanism described in XEP-0060.Standards TrackProtoXEPCouncilsox2011-04-080.0.18cssAdd data element to enclose transducerValue and transducerSetValue.StandardssensorsxxxxServer RostersThis specification defines a convention for trust between XMPP server deployments.Standards TrackProtoXEPCouncil2009-04-300.0.1ah/fj/psa/mr/mwFirst draft, split from the incident reporting proposal.Standardsserver-rostersxxxxService Outage StatusThis document defines an XMPP protocol extension that enables a server to communicate issues with the server to all users in a semantic manner.Standards TrackProtoXEPCouncil2021-01-180.0.1mpFirst draft.Standardsservice-outage-statusxxxxStateless file sharingThis specification describes a protocol for stateless asynchronous file sharing with integrity and transport flexibility. It allows clients to provide a good interoperable user experience in combination with Carbons and MAM.Standards TrackProtoXEPCouncilsfs2020-11-100.0.1lmwFirst draft.StandardssfsxxxxShared BOSHThis specification defines an extension to BOSH that allows multiple clients to share the same underlying XMPP connection.Standards TrackProtoXEPCouncil2009-05-130.0.1JackFirst draft.Standardsshared-boshxxxxServer IP CheckThis specification defines a simple XMPP extension that enables a client to discover its external IP address.Standards TrackProtoXEPCouncilsic2009-03-100.0.2psaRemoved client inclusion of its IP address; added IPv6 example.StandardssicxxxxStanza Interception and Filtering TechnologyThis specification defines an XMPP protocol extension that enables a client to exercise control over the XML stanzas it will receive from the server by instructing the server to intercept and filter inbound stanzas.Standards TrackProtoXEPCouncil2009-08-140.0.8psaClarified service and feature discovery processes, error flows, and other small matters in the text.StandardssiftxxxxSpecial Interests Group End to End EncryptionThis document proposes the formation of a Special Interest Group (SIG) within the XSF devoted to the development of end-to-end encryption within the context of XMPP.ProceduralProtoXEPCouncilSIG-E2EE2019-12-300.0.1psInitial published version.Nonesige2eexxxxSIP/SDP Over XMPP (SoX)This specification defines an XMPP protocol extension for communicating Session Description Protocol (SDP) data, along with relevant Session Initiation Protocol (SIP) headers. The SoX protocol is designed for use by XMPP-only endpoints that need to communicate raw SDP information (e.g., in WebRTC scenarios), not as a general-purpose replacement for the XMPP Jingle extensions.Standards TrackProtoXEPCouncil2013-12-020.0.2psaClarified scope and intent of the protocol.StandardssoxxxxxServer-side spacesThis document defines an XMPP protocol to cluster several groupchat rooms together.Standards TrackProtoXEPCouncilspaces2025-02-230.0.1ncInitial version. StandardsspacesxxxxSpim Markers and ReportsThis document defines an XMPP protocol extension that enables XMPP entities to interact with spim filters by marking unsolicited or suspicious XMPP stanzas.Standards TrackProtoXEPCouncil2010-09-130.1evkInitial version.StandardsspimxxxxStickersThis specification provides a protocol to send stickers and to create and share sticker packs.Standards TrackProtoXEPCouncilstickers2020-11-030.0.1lmwFirst draft.StandardsstickersxxxxPubsub StoriesThis specification defines a way of publishing Stories over XMPP.Standards TrackProtoXEPCouncilps2024-12-030.0.1tjInitial version.StandardsstoriesxxxxShared XML EditingThis specification defines a protocol that enables two or more endpoints to collaboratively edit an XML object. The protocol is intended for use mainly over the Extensible Messaging and Presence Protocol (XMPP), either by existing instant messaging clients or by specialized editing clients. However, the protocol could also be used over a direct TCP connection rather than over XMPP.Standards TrackProtoXEPCouncil2010-06-080.0.10tp/psaUpdated Jingle namespaces, transport definitions, reason codes, and other syntax; improved feature discovery and session advertisement; updated namespace to be urn:xmpp:sxe:0 for future-compatibility.StandardssxexxxxFile Transfer ThumbnailsThis specification defines a way for a client supply a preview image for a file transfer.Standards TrackProtoXEPCouncilthumbs2009-03-100.0.3mlSplit use-case section into "Introduction", "Requirements", and "Use case".StandardsthumbsxxxxServer-based Tic-tac-toeThis document defines how to play a Tic-tac-toe game over XMPPStandards TrackProtoXEPCouncil2009-03-140.0.1akFirst Draft.Standardstictactoe-mugxxxxTic-tac-toeThis document defines how to play a Tic-tac-toe game over XMPPStandards TrackProtoXEPCouncil2009-03-140.0.1tgFirst Draft.StandardstictactoexxxxToken-based reconnectionThis specification defines a token-based session authentication mechanism.Standards TrackProtoXEPCouncil2016-02-160.0.2mpRemoved mention of OAuth from Abstract; removed mention of DIGEST-MD5.Standardstoken-reconnectionxxxxTerms of ServicesThis specification provides an in-band, unauthenticated way to request the Terms of Service of an XMPP service.Standards TrackProtoXEPCouncilTOS2018-05-220.0.1jwiFirst draft.StandardstosxxxxMulti-Factor Authentication with TOTPThis specification defines support for multi-factor authentication in terms of SASL2 Tasks based around the Time-based One Time Password mechanism.Standards TrackProtoXEPCouncilmfa2018-01-080.0.2dwdSo ABNF isn't well-formed XML, of course...Standardstotp-2faxxxxTrust MessagesThis document specifies a way to communicate the trust in public long-term keys used by end-to-end encryption protocols from one endpoint to another.Standards TrackProtoXEPCouncil2020-02-150.0.1mkFirst draft.Standardstrust-messagesxxxxSimple JSON MessagingThis specification proposes a simple mechanism by which applications can transfer data safely, without needing additional protocol design work. It is intended to provide a protocol that is trivial to implement and can be driven with a simple API.Standards TrackProtoXEPCounciludt2020-02-130.0.2dwdHave another crack at getting this through Council. * Rename to a more obvious name * Remove IQ * Remove API, instead describe API requirementsStandardsudtxxxxTwo-factor user authentication with a shared secretThis document specifies a two-factor authentication mechanism to check if a XMPP account exists and if it is trying to use or access services or resources of certain device, application or service. Authentication mechanism is based on transmitting a password using Ad-Hoc Commands. Password is calculated from shared secret.Standards StrackProtoXEPCouncil2013-12-190.0.1tuvFirst draft.Standardsuser-authxxxxUser RatingThis specification provides for the rating element.Standards TrackProtoXEPCouncil2016-05-210.0.1dswFirst draft.StandardsuserratingxxxxWebSocket S2SThis specification defines a procedure to make s2s XMPP connections over WebSocket.Standards TrackProtoXEPCouncil2022-06-130.0.1tjbFirst draft.Standardswebsocket-s2sxxxxWebXDCThis document defines an XMPP protocol extension to communicate WebXDC widgets and their state updates.Standards TrackProtoXEPCouncilwebxdc2024-06-050.0.1spwInitial version.StandardswebxdcxxxxCommunicate & Ask to AIThis document defines a protocol for asking questions to an artificial intelligence or requesting it to make predictions.Standards TrackProtoXEPCounciltemplate2023-03-130.0.1aeFirst draft.Standardsxep-aixxxxClient Access ManagementThis specification details how an XMPP account owner can view and control which applications and services have access to their account.Standards TrackProtoXEPCouncilcam2024-08-200.0.1mjw Standardsxep-client-access-managementxxxxSASL SCRAM Downgrade ProtectionThis specification provides a way to secure the SASL and SASL2 handshakes against method and channel-binding downgrades.Standards TrackProtoXEPCouncilSSDP2022-10-110.0.1tmInitial version.Standardsxep-downgrade-preventionxxxxFast Authentication Streamlining TokensThis specification defines a token-based method to streamline authentication in XMPP, allowing fully authenticated stream establishment within a single round-trip.Standards TrackProtoXEPCouncilfast2022-10-190.0.1mwFirst draft.Standardsxep-fastxxxxHappy EyeballsWhen a server's IPv4 path and protocol are working, but the server's IPv6 path and protocol are not working, a dual-stack application that initiates a connect experiences significant connection delay compared to an IPv4-only application. This is undesirable because it causes the dual-stack initiating entity to have a worse user experience. This XEP defines how IETF's 'Happy Eyeballs' algorithm requirements that reduce this user-visible delay are applied to XMPP.Standards TrackProtoXEPCouncil2024-09-191.0.0gkFirst draft.Standardsxep-happy-eyeballsxxxxHTTP Online MeetingsThis specification defines a protocol extension to request URLs from an external HTTP entity usable to initiate and invite participants to an online meeting.Standards TrackProtoXEPCouncilhttp_online-meetings2023-09-120.0.3gdk* Modified wording of abstract. * Specified distribution of URL / add meeting invitation * Differentiate between Meeting service providers that are integrated with XMPP server, and those that are not. * Differentiate between URL to create and join meeting * Replaced textual references with XML entities * Introduced distinct namespaces for create and invite, retaining type-specific namespaces for feature discovery * Introduced Meeting Service type registry * Removed CORS-related implementation note * Meeting ID in request now optional * Add optional 'desc' in the meeting request. * Moved IQ child elements into a wrapper, renamed 'create' element to 'initiate' * Add fall-back body element to invite message stanza. * Removed dependency on XEP-0066.Standardsxep-http_online_meetingsxxxxImplicit XMPP WebSocket EndpointsThis document specifies implicit connection endpoints for XMPP over WebSocket (RFC 7395).Standards TrackProtoXEPCounciliwe2020-01-280.0.1fsFirst draft.Standardsxep-iwexxxxMessage Displayed SynchronizationThis specification allows multiple clients of the same user to synchronize the displayed state of their chats.Standards TrackProtoXEPCouncilmds2024-04-260.0.3dgSplit Business Rules into Server and Client sections.Standardsxep-mdsxxxxOAuth Client LoginThis specification details how a third-party can be securely granted access to an XMPP account without exposing the account credentials, using OAuth.InformationalProtoXEPCounciltsa2024-08-200.0.1mjw Standardsxep-oauth-client-loginxxxxReporting Account AffiliationsThis specification documents a way for an XMPP server to report to other entities the relationship it has with a user on its domain.Standards TrackProtoXEPCouncilraa2023-06-280.0.1mjw Standardsxep-reporting-account-affiliationsxxxxSASL Channel-Binding Type CapabilityThis specification allows servers to annouce their supported SASL channel-binding types to clients.Standards TrackProtoXEPCouncilsasl-cb-types2020-05-200.0.1fsFirst draft.Standardsxep-sasl-cb-typesxxxxStanza Content EncryptionThe Stanza Content Encryption (SCE) protocol is intended as a way to allow clients to securely exchange arbitrary extension elements using different end-to-end encryption schemes.Standards TrackProtoXEPCouncilSCE2019-06-030.0.1psFirst draft.Standardsxep-scexxxxSASL Upgrade TasksThis specification provides a way to upgrade to newer SASL mechanisms using SASL2 tasks.Standards TrackProtoXEPCouncilsut2022-12-300.0.2tmMove SASL upgrade tasks from XEP-0388.Standardsxep-scram-upgradexxxxStream Limits AdvertisementThis specification defines a way for an XMPP entity to announce the limits it will enforce for data received on a stream.Standards TrackProtoXEPCouncilsla2022-10-200.0.1ka, mwFirst draft.Standardsxep-slaxxxxMUC Slow ModeThis specification describes a way to rate limit messages a single user can send to a MUC room. It includes room configuration option, and how servers and clients can handle such a feature.Standards TrackProtoXEPCouncilmucslow mode2024-02-280.0.1psaFirst draft.Standardsxep-slow-modexxxxXMPP over QUICThis specification defines a procedure to make both c2s and s2s XMPP connections over the QUIC protocol instead of TCP+TLS.Standards TrackProtoXEPCouncil2022-06-130.0.1tjbFirst draft.Standardsxmpp-over-quicxxxxXMPP Over RELOAD (XOR)This specification defines an XMPP Usage of REsource LOcation And Discovery (RELOAD). The XMPP usage provides an ability for XMPP clients to discover other peers' location through the peer-to-peer overlay. Once a peer location is determined, the RELOAD AppAttach method is used to establish a direct connection between peers through which XMPP streams are exchanged.Standards TrackProtoXEPCouncil2019-02-080.0.1evkFirst draft.StandardsxorxxxxXMPP Transport Layer SecurityThis document specifies the XMPP Transport Layer Security (XTLS) protocol. XTLS, which provides communications privacy for the Extensible Messaging and Presence Protocol (XMPP), enables XMPP applications to communicate in a way that is designed to prevent eavesdropping, tampering, and forgery of XMPP stanzas. XTLS is based on Transport Layer Security (TLS) and provides equivalent security guarantees. The protocol sends standard TLS handshake and application data encoded as Base64, similar to the XMPP In-Band Bytestreams (IBB) extension but qualified by a dedicated namespace.Standards TrackProtoXEPCouncil2008-12-110.0.5dm/psa* By popular demand, resurrected the proposal. * Removed IBB dependency and replaced it with a similar method in the XTLS namespace. * Added explicit proceed and closed elements in the IQ-result stanzas. * Removed seq attribute. * Moved offer semantics from XEP-0250 to this specification.Standardsxtlsqxmpp-v1.10.3/doc/doap-rendering/xeplist.xml.license000066400000000000000000000001311476732154600224370ustar00rootroot00000000000000SPDX-FileCopyrightText: 2004 XMPP Standards Foundation SPDX-License-Identifier: CC0-1.0 qxmpp-v1.10.3/doc/doap.xml000066400000000000000000001211101476732154600153540ustar00rootroot00000000000000 QXmpp 2008-12-01 Cross-platform C++ / Qt XMPP client and server library QXmpp is a cross-platform XMPP client and server library written in C++ and using the Qt framework. en C++ Android Linux macOS Windows complete 2.9 0.2 partial 2.2 0.2 API not finalized yet complete 2.4 0.2 Manager since 0.3 complete 1.1 0.7 complete 1.25 0.2 complete 1.2 0.2 complete 1.0 0.4 complete 1.2 0.2 complete 1.0 0.5 partial 1.24 1.5 complete 1.7 0.2 complete 1.5 1.0 complete 1.4 0.6.2 complete 2.4 0.6 Manager since 1.2 complete 2.5 0.2 complete 1.9 1.5 Missing some attributes of the PEP items complete 1.1.1 0.2 complete 2.1 0.2 complete 1.4 0.2 complete 1.1 0.2 complete 1.2 0.2 complete 1.3.1 0.2 complete 1.6.0 0.2 complete 1.3.0 1.4 complete 1.0.1 0.2 complete 1.3.1 0.2 complete 1.2 1.8 complete 1.0 0.3 complete 1.2.2 1.5 complete 1.1.2 0.2 complete 1.2.2 0.2 Multiplexing, encryption via SRTP, informational messages for session states 'active', 'hold', 'unhold', 'mute', 'unmute' since 1.5 complete 1.0 0.2 complete 1.4.0 0.4 complete 1.3 1.6 complete 1.5 1.0 complete 2.0.1 0.2 complete 2.0 0.3 complete 2.0 0.4 complete 1.0.0 1.6 complete 1.0 0.6 complete 1.0 0.4 complete 1.0 1.2 partial 1.3 1.0 complete 1.0 1.3 complete 1.2 0.5 complete 0.4.1 1.5 complete 0.2.0 1.5 complete 0.10 1.0 complete 0.2.0 1.8 partial 1.0.2 1.5 Manager functionality missing complete 1.1.2 1.5 Manager functionality missing complete 1.0.0 1.5 complete 1.2.1 1.0 complete 0.5 1.0 complete 1.0.2 1.0 complete 0.4.1 0.8.1 complete 0.4.0 1.1 complete 1.0.0 1.0 complete 0.6.0 1.6 complete 0.4.1 1.3 complete 0.7.0 1.3 complete 1.0.0 1.1 complete 0.3 1.1 complete 1.1.0 1.8 complete 0.14.6 1.1 IQ stanzas for participants and channel information since 1.5; Manager since 1.7 complete 0.4.0 1.1 complete 0.2.0 1.1 complete 0.8.3 1.5 complete 1.0.1 1.8 complete 1.0.2 1.7 complete 1.0.0 1.10 complete 0.5.3 1.3 Manager since 1.7 complete 0.3.1 1.7 partial 0.1.2 1.4 Only invitations implemented; Manager since 1.7 complete 0.4.1 1.5 complete 0.2.1 1.3 complete 0.6.0 1.5 complete 0.1.1 1.5 complete 0.2.0 1.5 complete 0.3.1 1.5 complete 0.2.0 1.5 complete 0.4.0 1.5 complete 0.1.2 1.5 complete 0.2.0 1.9 complete 0.1.0 1.6 complete 0.2.0 1.8 1.10.3 2025-03-21 1.10.2 2025-03-19 1.10.1 2025-02-25 1.10.0 2025-02-22 1.9.4 2025-02-01 1.9.3 2025-01-23 1.9.2 2024-12-07 1.9.1 2024-11-27 1.9.0 2024-11-17 1.8.3 2024-10-29 1.8.2 2024-10-24 1.8.1 2024-08-21 1.8.0 2024-07-30 1.7.1 2024-07-07 1.7.0 2024-05-19 1.6.1 2024-05-16 1.6.0 2024-02-06 1.5.6 2024-02-04 1.5.5 2023-04-30 1.5.4 2023-04-07 1.5.3 2023-03-11 1.5.2 2023-02-23 1.5.1 2023-02-01 1.5.0 2023-01-31 1.4.0 2021-03-15 1.3.2 2021-01-09 1.3.1 2020-07-20 1.3.0 2020-04-06 1.2.1 2020-04-01 1.2.0 2020-02-06 1.1.0 2019-10-23 1.0.1 2019-10-14 1.0.0 2019-01-08 0.9.3 2015-12-03 0.9.2 2015-09-02 0.9.1 2015-08-30 0.9.0 2015-08-28 0.8.3 2015-03-13 0.8.2 2015-01-07 0.8.1 2014-12-19 0.8.0 2014-03-26 0.7.6 2013-03-09 0.7.5 2013-01-11 0.7.4 2012-10-01 0.7.3 2012-09-07 0.7.2 2012-09-06 0.7.1 2012-09-03 0.7.0 2012-09-03 0.6.3 2012-07-24 0.6.2 2012-07-22 0.6.1 2012-07-20 0.6.0 2012-07-20 0.5.0 2012-07-18 0.4.0 2012-04-24 0.3.0 2012-04-24 0.2.0 2012-04-24 qxmpp-v1.10.3/doc/index.doc000066400000000000000000000025211476732154600155110ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2014 Jeremy Lainé // // SPDX-License-Identifier: CC0-1.0 /*! \mainpage QXmpp is a cross-platform C++ XMPP client library based on the Qt framework. It tries to use Qt's programming conventions in order to ease the learning curve for new programmers. QXmpp based clients are built using QXmppClient instances which handle the establishment of the XMPP connection and provide a number of high-level "managers" to perform specific tasks. You can write your own managers to extend QXmpp by subclassing QXmppClientExtension. Main Class: - QXmppClient Managers to perform specific tasks: - QXmppRosterManager - QXmppVCardManager - QXmppTransferManager - QXmppMamManager - QXmppMucManager - QXmppCallManager - QXmppArchiveManager - QXmppVersionManager - QXmppDiscoveryManager - QXmppEntityTimeManager - QXmppUploadRequestManager - QXmppRegistrationManager - QXmppAttentionManager - QXmppPubSubManager - QXmppOmemoManager - QXmppBlockingManager XMPP stanzas: If you are interested in a more low-level API, you can refer to these classes. - QXmppIq - QXmppMessage - QXmppPresence Project Details: - Project Page: https://github.com/qxmpp-project/qxmpp - Report Issues: https://github.com/qxmpp-project/qxmpp/issues - New Releases: https://github.com/qxmpp-project/qxmpp/releases */ qxmpp-v1.10.3/doc/using.doc000066400000000000000000000060061476732154600155310ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2014 Jeremy Lainé // // SPDX-License-Identifier: CC0-1.0 /*! \page using Using QXmpp

Example: example_0_connected

This example just connects to the xmpp server. And starts receiving presences (updates) from the server. After running this example, you can see this user online, if it's added in your roster (friends list). Logging type has been set to stdout. You can see the progress on the command line. This example is also available with the source code in the example directory. \code #include #include "QXmppClient.h" #include "QXmppLogger.h" int main(int argc, char *argv[]) { // create a Qt application QCoreApplication a(argc, argv); // setting the logging type to stdout QXmppLogger::getLogger()->setLoggingType(QXmppLogger::StdoutLogging); // creating the object of the client class QXmppClient // and then calling the connectToServer function to connect to gtalk server QXmppClient client; client.connectToServer("qxmpp.test1@gmail.com", "qxmpp123"); // run the application main loop return a.exec(); } \endcode

Example: example_1_echoClient

This is a very simple bot which echoes the message sent to it. Run this example, send it a message from a friend of this bot. You will receive the message back. This example shows how to receive and send messages. This example is also available with the source code in the example directory. \code // subclass the QXmppClient and create a new class echoClient // in the constructor the signal QXmppClient::messageReceived(const QXmppMessage&) // is connected to the slot echoClient::messageReceived(const QXmppMessage&) // in the slot one can process the message received #include "QXmppClient.h" class echoClient : public QXmppClient { Q_OBJECT public: echoClient(QObject *parent = 0); ~echoClient(); public slots: void messageReceived(const QXmppMessage&); }; }}} \endcode \code #include "echoClient.h" #include "QXmppMessage.h" echoClient::echoClient(QObject *parent) : QXmppClient(parent) { bool check = connect(this, SIGNAL(messageReceived(const QXmppMessage&)), SLOT(messageReceived(const QXmppMessage&))); Q_ASSERT(check); } echoClient::~echoClient() { } // slot where message sent to this client is received // here getFrom() gives the sender and getBody() gives the message // using the function sendPacket message is sent back to the sender void echoClient::messageReceived(const QXmppMessage& message) { QString from = message.getFrom(); QString msg = message.getBody(); sendPacket(QXmppMessage("", from, "Your message: " + msg)); } }}} \endcode \code #include #include "echoClient.h" #include "QXmppLogger.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QXmppLogger::getLogger()->setLoggingType(QXmppLogger::StdoutLogging); echoClient client; client.connectToServer("qxmpp.test1@gmail.com", "qxmpp123"); return a.exec(); } \endcode */ qxmpp-v1.10.3/doc/xep.doc000066400000000000000000000012441476732154600151770ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2014 Jeremy Lainé // // SPDX-License-Identifier: CC0-1.0 /*! \page xep XMPP Extension Protocols This document lists the XMPP Extension Protocols (XEPs) supported by QXmpp. \htmlonly