Skip to content

BillTheBest/xmppserver

 
 

Repository files navigation

Name: kontalk-xmppserver
Description: XMPP-based Kontalk server using Twisted Words and Wokkel.

Overview
========================================
Kontalk XMPP server will be a fully compatible XMPP server integrated with the
Jabber federation, being also a big clustered system where every user will be
under the network domain (e.g. kontalk.net).


Components
========================================
* Router: stanza router
* Resolver: network JID lookup
* C2S: accept client connections
* SM: manage client connections
* Net: inter-server communication with Kontalk servers in the same network
* S2S: inter-server communication with other servers

Router
========================================
Router will be a standard XMPP router. Router will also be capable of receving
routing requests via inter-component protocol, for example from S2S.

Resolver
========================================
Resolver takes care of resolving network JIDs (user@kontalk.net) into server
JIDs (user@prime.kontalk.net). Resolution is achieved by requesting presence
probes to the Kontalk network.
Stanza are then modified with the resolved JID and sent back to the router.
Resolver component should bind to the network route (e.g. kontalk.net)

C2S
========================================
C2S will listen on XMPP client ports (5222, etc.) and accept client
connections. Obviously only Kontalk users will be allowed and special
extensions to the protocol will be added to fit the Kontalk protocol needs,
using existing XEPs if possible.
C2S component should bind to the host route (e.g. prime.kontalk.net)

SM
========================================
Session manager handles sessions opened by C2S with clients. Features:
* message exchange between users
* message and file storage
SM is actually part of C2S, let's say it's a C2S plugin.
SM can send stanzas for some JID/domain to the router, then:
1. a local route is found - stanza is bounced back to C2S, which will
   internally route it to the assigned SM instance
2. a remote route is found - stanza is sent to S2S, which will forward it to
   the server that hosts the JID the stanza is for
3. a route is not found - stanza is refused and bounced back, SM will act
   accordingly (e.g. store the message for future send, discard it, etc.)

Net
========================================
Net will listen on a special s2s port and accept connections from Kontalk
servers.
Net component should bind to every host name in the Kontalk network, but the
local server name (e.g. prime.kontalk.net).

S2S
========================================
S2S will listen on XMPP s2s ports and accept connections from non-Kontalk
servers.
S2S component should bind to the default route, because all unknown routes (e.g.
jabber.org, gmail.com, ...) are handled by interserver communication.

About

Kontalk XMPP server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published