Discover XEPs

XEPs are XMPP Extension Protocols, and there are a bunch. The best way to discover them would probably be to read XEP-0001: XMPP Extension Protocols. :slight_smile:

Discover XEP-0050: Ad-Hoc Commands
Discover XEP-0053: XMPP Registrar Function
Discover XEP-0054: vcard-temp
Discover XEP-0060: Publish-Subscribe
Discover XEP-0065: SOCKS5 Bytestreams
Discover XEP-0068: Field Standardization for Data Forms
Discover XEP-0070: Verifying HTTP Requests via XMPP
Discover XEP-0072: SOAP Over XMPP
Discover XEP-0077: In-Band Registration
Discover XEP-0080: User Location
Discover XEP-0083: Nested Roster Groups
Discover XEP-0085: Chat State Notifications
Discover XEP-0092: Software Version
Discover XEP-0100: Gateway Interaction
Discover XEP-0106: JID Escaping
Discover XEP-0045: Multi-User Chat
Discover XEP-0047: In-Band Bytestreams
Discover XEP-0048: Bookmarks
Discover XEP-0049: Private XML Storage
Discover XEP-0055: Jabber Search
Discover XEP-0059: Result Set Management
Discover XEP-0066: Out of Band Data
Discover XEP-0076: Malicious Stanzas
Discover XEP-0079: Advanced Message Processing
Discover XEP-0082: XMPP Date and Time Profiles
Discover XEP-0084: User Avatar
Discover XEP-0107: User Mood
Discover XEP-0114: Jabber Component Protocol
Discover XEP-0122: Data Forms Validation
Discover XEP-0128: Service Discovery Extensions
Discover XEP-0131: Stanza Headers and Internet Metadata
Discover XEP-0108: User Activity
Discover XEP-0115: Entity Capabilities
Discover XEP-0118: User Tune
Discover XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)
Discover XEP-0127: Common Alerting Protocol (CAP) Over XMPP
Discover XEP-0132: Presence Obtained via Kinesthetic Excitation (POKE)
Discover XEP-0133: Service Administration
Discover XEP-0134: XMPP Design Guidelines
Discover XEP-0141: Data Forms Layout
Discover XEP-0143: Guidelines for Authors of XMPP Extension Protocols
Discover XEP-0147: XMPP URI Scheme Query Components
Discover XEP-0152: Reachability Addresses
Discover XEP-0163: Personal Eventing Protocol
Discover XEP-0166: Jingle
Discover XEP-0138: Stream Compression
Discover XEP-0144: Roster Item Exchange
Discover XEP-0145: Annotations
Discover XEP-0148: Instant Messaging Intelligence Quotient (IM IQ)
Discover XEP-0149: Time Periods
Discover XEP-0153: vCard-Based Avatars
Discover XEP-0155: Stanza Session Negotiation
Discover XEP-0156: Discovering Alternative XMPP Connection Methods
Discover XEP-0157: Contact Addresses for XMPP Services
Discover XEP-0158: CAPTCHA Forms
Discover XEP-0160: Best Practices for Handling Offline Messages
Discover XEP-0167: Jingle RTP Sessions
Discover XEP-0169: Twas The Night Before Christmas (Jabber Version)
Discover XEP-0170: Recommended Order of Stream Feature Negotiation
Discover XEP-0171: Language Translation
Discover XEP-0172: User Nickname
Discover XEP-0174: Serverless Messaging
Discover XEP-0176: Jingle ICE-UDP Transport Method
Discover XEP-0178: Best Practices for Use of SASL EXTERNAL with Certificates
Discover XEP-0182: Application-Specific Error Conditions
Discover XEP-0185: Dialback Key Generation and Validation
Discover XEP-0198: Stream Management
Discover XEP-0199: XMPP Ping
Discover XEP-0202: Entity Time
Discover XEP-0205: Best Practices to Discourage Denial of Service Attacks
Discover XEP-0207: XMPP Eventing via Pubsub
Discover XEP-0220: Server Dialback
Discover XEP-0221: Data Forms Media Element
Discover XEP-0222: Persistent Storage of Public Data via PubSub
Discover XEP-0224: Attention
Discover XEP-0229: Stream Compression with LZW
Discover XEP-0175: Best Practices for Use of SASL ANONYMOUS
Discover XEP-0177: Jingle Raw UDP Transport Method
Discover XEP-0183: Jingle Telepathy Transport
Discover XEP-0184: Message Delivery Receipts
Discover XEP-0191: Blocking Command
Discover XEP-0201: Best Practices for Message Threads
Discover XEP-0203: Delayed Delivery
Discover XEP-0206: XMPP Over BOSH
Discover XEP-0223: Persistent Storage of Private Data via PubSub
Discover XEP-0227: Portable Import/Export Format for XMPP-IM Servers
Discover XEP-0231: Bits of Binary
Discover XEP-0233: XMPP Server Registration for use with Kerberos V5
Discover XEP-0239: Binary XMPP
Discover XEP-0245: The /me Command
Discover XEP-0249: Direct MUC Invitations
Discover XEP-0256: Last Activity in Presence
Discover XEP-0258: Security Labels in XMPP
Discover XEP-0262: Use of ZRTP in Jingle RTP Sessions
Discover XEP-0266: Codecs for Jingle Audio
Discover XEP-0283: Moved
Discover XEP-0288: Bidirectional Server-to-Server Connections
Discover XEP-0293: Jingle RTP Feedback Negotiation
Discover XEP-0295: JSON Encodings for XMPP
Discover XEP-0300: Use of Cryptographic Hash Functions in XMPP
Discover XEP-0319: Last User Interaction in Presence
Discover XEP-0335: JSON Containers
Discover XEP-0359: Unique and Stable Stanza IDs
Discover XEP-0368: SRV records for XMPP over TLS
Discover XEP-0373: OpenPGP for XMPP
Discover XEP-0381: Internet of Things Special Interest Group (IoT SIG)
Discover XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
Discover XEP-0261: Jingle In-Band Bytestreams Transport Method
Discover XEP-0263: ECO-XMPP
Discover XEP-0280: Message Carbons
Discover XEP-0286: Mobile Considerations on LTE Networks
Discover XEP-0294: Jingle RTP Header Extensions Negotiation
Discover XEP-0297: Stanza Forwarding
Discover XEP-0301: In-Band Real Time Text
Discover XEP-0308: Last Message Correction
Discover XEP-0313: Message Archive Management
Discover XEP-0357: Push Notifications
Discover XEP-0363: HTTP File Upload
Discover XEP-0387: XMPP Compliance Suites 2018
Discover XEP-0391: Jingle Encrypted Transports
Discover XEP-0393: Message Styling
Discover XEP-0399: Client Key Support
Discover XEP-0384: OMEMO Encryption
Discover XEP-0385: Stateless Inline Media Sharing (SIMS)
Discover XEP-0392: Consistent Color Generation
Discover XEP-0397: Instant Stream Resumption
Discover XEP-0398: User Avatar to vCard-Based Avatars Conversion
Discover XEP-0401: Easy User Onboarding
Discover XEP-0404: Mediated Information eXchange (MIX): JID Hidden Channels.
Discover XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
Discover XEP-0406: Mediated Information eXchange (MIX): MIX Administration
Discover XEP-0408: Mediated Information eXchange (MIX): Co-existence with MUC
Discover XEP-0410: MUC Self-Ping (Schrödinger's Chat)
Discover XEP-0412: XMPP Compliance Suites 2019
Discover XEP-0400: Multi-Factor Authentication with TOTP
Discover XEP-0403: Mediated Information eXchange (MIX): Presence Support.
Discover XEP-0407: Mediated Information eXchange (MIX): Miscellaneous Capabilities
Discover XEP-0409: IM Routing-NG
Discover XEP-0411: Bookmarks Conversion
Discover XEP-0402: Bookmarks 2 (This Time it's Serious)
Discover XEP-0002: Special Interest Groups (SIGs)
Discover XEP-0001: XMPP Extension Protocols
Discover XEP-0004: Data Forms
Discover XEP-0009: Jabber-RPC
Discover XEP-0012: Last Activity
Discover XEP-0013: Flexible Offline Message Retrieval
Discover XEP-0019: Streamlining the SIGs
Discover XEP-0030: Service Discovery
Discover XEP-0033: Extended Stanza Addressing

I think @tim should read a few key XEPs. And I recently figured out how to spam the #quest-board, so let’s create 150 new quests! ((Because that is how many there are, counting active, draft, experimental, final, and proposed))

Okay, this one is complete! 150 new quests added, as seen at Topics tagged xeps!

I copy and pasted the table at XMPP | Specifications and used LibreCalc to move the XEP name column to the far right, since everything else was standardized. Then I removed quotes from fields, and delimited with a comma (important details).

spex.csv (10.3 KB)

I called it spex, because xeps was taken at the time…

Then I wrote xeps.sh, a little more detailed than gameon.sh:

#!/usr/bin/bash
filename="$1"
while IFS=, read -r xep type status date name; do
    curl -X POST -d title="Discover $xep: $name" -d raw="This quest to discover $xep ($name) was automagically added, to fulfill the quest at http://archive.v1.talkgroup.xyz/t/discover-xeps/1341?u=maiki. As of $date the status of this $type XEP is $status. What does that even mean?! Check it out at https://xmpp.org/extensions/${xep,,}.html ^_^" -d category="21" http://archive.v1.talkgroup.xyz/posts?api_key=XXX&api_username=maiki ; sleep 3 ;
done < "$filename"

See that ${xep,,}? Have no idea how that works! But I picked it up at How to convert a string to lower case in Bash - Stack Overflow, filed under Non-POSIX, so… not a problem for a simple little bash script. :slight_smile:

You’ll notice there are no tags. I forgot! But I did get them working with curl. Because it is an array, each tags[]= you send along is added as a tag; so you’d have something like: -d tags[]="jabber" -d tags[]="xmpp".

Because I forgot, I found that the editing features in Discourse are dope! I searched for Search results for 'discover xep-' - talkgroup, and scrolling down got the 150 results (+1 for this quest, so all good). I selected all from the top, hit the edit wrench, and it gave me all kinds of options.

I appended xeps, xmpp, and jabber to them. We’ll add more as we get to them. But for now that should make them easy to find, discuss and hack on! :slight_smile: