2.1 KiB
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)
- Pidgin: Buddies → New Instant Message (Ctrl+M).
- Address:
telegram.nixg.ru(bare domain, no @). - Type
register. Bridge replies with the form. - Enter phone (international
+7...). api_id/api_hash NOT asked when preset in env (SLIDGE__SLIDGRAM_API_ID/HASH) — the form omits those fields. - Enter the code from SMS/TG notification; if 2FA is on, the bridge asks for the account password.
- Verify:
docker logs icq-slidgram | grep 'Login success', anduser_accountrow 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.