Jean-Louis Segineau made a suggestion on how to put an IRC-like distribution scheme on top of the XMPP federation. He posted it on this one-way no-comment blog medium. Therefore, our comments end up here. In exchange we'll stay on the superficial and fun level.  ;)

Anyway this chat story thing is proposing to have an IRC-like network on top of XMPP. This does not have to be a completely bad idea - sure you are missing some chances to go beyond IRC, but anyhow. Unfortunately the plan sounds a bit like taking the problems of Jabber and putting the problems of IRC on top. This could be fun!!

So fippo has a proposal on how to implement this in the right way, to ensure nothing gets lost. Here it comes:


Jabber Relay Chat

We want to reuse existing protocols. Ok... let's reuse IRC. In modern terms, IRC is a publish-subscribe system, as join JOIN a channel (subscribe) and receive messages to the channel (publish). One of the problems with IRC is that its network structure is not open and it is not able to federate. But we can work around that by doing some 'political' agreements to form peerings.

Relay Bots

There have been traditionally 'relay bots' like pyn or our own gatebot which have distributed a channel to several IRC networks. This is just 'rooms joining rooms'.

Those bots are using some rather clumsy protocol, as they are not able to introduce new nicknames to the network. Ok, one can work around that by reusing CTCP. The relay bots can specify the nick of the user on the remote network using something like

:relaybot!relaybot@ircnet PRIVMSG #chan :§RELAY fippo§ what's up?

where § stands for the msa character 0x01 used in CTCP.

Discovering Relay Bots

If you want to discover relay bots, you could for example do so by sending a CTCP DISCO to the networks relay bot manager service.


CTCP does all you need

After all, if you dont want to modify existing protocols you can use IRC. Hey, using CTCP you can even transport XML over IRC. CTCP XML anyone? Or even.. CTCP XMPP?


You can do whatever you want using IRC as the underlying protocol. Yet, it does not make sense to do so and is clumsy. The same is true for XMPP. You can build overlay networks on top of XMPP. You can alternatively implement the functionality directly. Maybe both IRC and Jabber should use a new interserver protocol.