[jdev] GSoC: Jingle hack

Massimiliano Mirra iolgzc102 at sneakemail.com
Wed Mar 26 18:41:23 CDT 2008

>  > Today, I'm wondering whether a simple, specialized process to which
>  > the main client forwards Jingle-related XMPP stanzas to, using a local
>  > TCP connection, is the easiest/most portable way to do it.
>  > Essentially like jinglepipe but over a socket.
>  Certainly most portable (modulo how the client and the component find
>  eachother).

I guess, since the client would be starting the sub-process, it could
invoke it with something like "jinglebot --port 1234".  Or the other
way around, the sub-process would search for a free port, bind it and
tell it to the client via stdout (like CORBA-based apps do with the

>  I have been trying to avoid having an XML parser in my C
>  code, since C plus XML doesn't sound very fun.


Every time I think of external XMPP processes/processors, I end up
thinking of embedding Lua or TinyScheme to handle XML.  Unfortunately
as far as I know neither has an XMPP library.  I'm not sure that would
be needed for Jingle, though (or at least for libjingle, see below).

On another note, that is how a local transport based on something like
bitlbee or libpurple might look like.  Bitlbee even works like that
already -- too bad it disguises itself as an IRC server instead of an
XMPP server, or we'd already have a multi-network cross-platform
cross-client local transports. :-)

>  On the other hand, extending XEP-0114 (Jabber Component Protocol) to
>  cover client plugins might be interesting ☺

Hmm, wouldn't that be a bit overkill (albeit cool)?  Usually you have:

    on('http://some-jabber-namespace', handler);

Here, "handler" would be transparently delegating the packet over the
socket and the rest of the client wouldn't have a clue.

(I'm sure there are a hundred gotchas here in the general case, I'm
just thinking about libjingle right now.)


Massimiliano Mirra

More information about the JDev mailing list