Files
xmpp-server-prosody/references/slidge-registration-client-compat.md
T
2026-09-06 13:51:11 +00:00

43 lines
2.1 KiB
Markdown

# Slidge registration — which XMPP clients can talk to a bare-domain service JID
Verified 2026-08-29 on nixg.ru (estorozhenko@nixg.ru registered via Pidgin,
Method B). Complements `slidge-registration-and-avatar-gap.md` §1.
## The problem
Bridge registration is an interaction with the COMPONENT JID `telegram.nixg.ru`
— a bare domain with no local part. Some clients refuse to start chats with
such addresses:
| Client | Bare-domain JID (`telegram.nixg.ru`) | Notes |
|---|---|---|
| Converse.js (web, chat.nixg.ru) | ❌ refuses | "Пожалуйста, введите корректный XMPP-адрес" — requires user@domain to open a chat / add a contact |
| Pidgin | ✅ works | Buddies → New Instant Message → type `telegram.nixg.ru` (no @) → chat opens → type `register` |
| Gajim | ✅ works | Method A (adhoc Register command) or chat to service JID |
| Movim / Cheogram | ✅ works | Method A supported |
| Conversations (Android) | ✅ works | can message service JIDs |
## Why Converse fails
Converse validates chat targets as full JIDs (user@domain). A domain-only JID
fails its address validation on the "new chat / add contact" path, so the
bridge (which lives at the domain) is unreachable from the web client for
registration. This is a client limitation, not a server config problem.
## Working registration recipe (Pidgin)
1. Pidgin: Buddies → New Instant Message (Ctrl+M).
2. Address: `telegram.nixg.ru` (bare domain, no @).
3. Type `register`. Bridge replies with the form.
4. Enter phone (international `+7...`). api_id/api_hash NOT asked when preset
in env (SLIDGE__SLIDGRAM_API_ID/HASH) — the form omits those fields.
5. Enter the code from SMS/TG notification; if 2FA is on, the bridge asks for
the account password.
6. Verify: `docker logs icq-slidgram | grep 'Login success'`, and
`user_account` row in `/var/lib/slidge/slidge.sqlite`.
## Registering a SECOND user
The bridge binds one TG number per XMPP user per server. A second XMPP user
must run the same `register` flow from their own client — the bridge stores
per-user sessions, it is NOT one shared account.