Thursday, November 24, 2011

Spectrum.IM oddness

Okay, it _is_ my fault that I get into these predicaments, but it's so much fun to find this stuff out... Notes will be in the wiki shortly. Just so's you know, my rig in the following discussion looks like:

 XChat2 -> Bitlbee -> Openfire or eJabberd -> Spectrum -> GTalk or IRC

I've been playing with the Spectrum.IM gateway, getting it to work with my rig. Spent most of my free time today in a futile attempt to get Spectrum to work with Openfire. It does show up in the External Connections sessions but it doesn't accept direction from Openfire (hint: if you want to see what Spectrum is doing, don't run it as a daemon. Instead, run "spectrum -n /etc/spectrum/xmpp.cfg").

Finally gave up on Openfire and switched to eJabberd. Spectrum started playing nicely with XMPP-to-XMPP traffic right away. I was able to log into GTalk and play with various bots.

Ran into trouble when playing with IRC. Took another couple hours before I realized that eJabberd has its own IRC modules. (Hint: if you want to use Spectrum's IRC capabiltities, you'll want to move mod_irc.beam and mod_irc_connection.beam out of the /usr/lib/ejabberd/ebin/ directory and restart eJabberd.)

Removing those two files from the eJabberd ebin directory cleared up the access to Spectrum but then I couldn't open the chat room in Bitlbee. I could use another client, connected directly to the IRC server, and see that Spectrum had connected. It just wasn't showing up in Bitlbee.

Here's what I was doing. In the &bitlbee command channel, I was running:

 chat add 9 geeks2
 /join #geeks2

No additional window would open, though Spectrum and the second IRC client was showing proper access. Here's where the oddness creeps in: after playing with various commands, figured out that if I join the command channel for "geeks2", the chat window for "geeks2" also opens. In other words, if I run the following in &bitlbee:

 /join &geeks2

then two windows open: one for &geeks2 and the other for #geeks2. It's probably a Bitlbee feature but it's still odd.

One nice thing is that I can then close &geeks2 and #geeks2 will stay open. (Wonder if this is scriptable in XChat2.)  Another is that Spectrum doesn't require additional windows in XChat2. I can now monitor channels on different IRC servers without having to switch server tabs in XChat2 (i.e., they're all in one tab now).

The one drawback to all this fun is: I now have to go back and configure eJabberd to provide the services that used to be provided by Openfire (presence, Asterisk interface, etc.).