<< March 2007 | Home | May 2007 >>

Using Maven to build Openfire Plugins

Preview of the maven-openfire-plugin

I've build a small Maven plugin to build Openfire Plugins. It's a mix of the maven-war-plugin and the Jetty JSPC plugin. Usage is quite simple, just add the plugin to your POM and set packaging to "openfire-plugin".

Usage and installations instructions for 1.0.0 are available on its homepage.

Ajax based Webmail

The RoundCube Webmail Project

RoundCube Screenshot

My main email client is Thunderbird which is available for Linux and Windows so I can use it on my workstation and my notebook. My emails are stored on the server and accessed through IMAP. This works quite well but sometimes I have to look at my emails from places where I don't carry my notebook with me simply using a browser. Up to now I've used SquirrelMail with some custom patches installed on my server. SquirrelMail works well, has a whole bunch of options to configure but at the code level it's rather hacked and it looks not too pretty.

Now I found RoundCube, a very nice Ajax and PHP based webmail program released under the GPL. In contrast to many open source PHP applications its code looks well designed, setting it up was done in 5 minutes and its visual appearence is just great. You immediately notice that it has been created by Mac users :)

RoundCube offers very few options compared to SquirrelMail but everything I wanted has been in place:

  • Integration with dovecot without any special configuration
  • Integration with my public LDAP based address book
  • Support for multiple identities and signatures
  • Searching for messages
  • Notification of new messages in the title of the browser
  • Automatically saving draft messages so they don't get lost if your connection goes down
Highly recommended stuff!

Tags :

XEP-0136: Message Archiving

Storing the Jabber History on the Server

Like many other people I tend to use instant messaging on a lot of different workstations: At home, at work, on my notebook and sometimes from abroad using Jeti Applet. Even on my own workstation I use different Jabber clients like Psi and Spark which seems to be the only client with full support for Asterisk-IM right now.

This all works very well with one major drawback: The history of my chats is spread around different machines and whenever I need to look up something it's more often than not not available on the machine I am currently working on. This situation remembers me of the old days before I switched my email store to a central IMAP server and used POP3 for email download. With Instant Messaging becoming more and more important I feel the need for a similar central archive for my IM chats.

For Openfire, the Jabber server of my choice, there are some archiving features available in the enterprise edition and a few external open source plugins with similar goals like SmilingJ's Netlog. They are logging messages as they pass the server and provide a web interface for message retrieval.
This is all very nice but still a bit off the solution I am dreaming of. I would really like to have the message archive integrated within my Jabber client just like they are now with the only difference being that the messages are retrieved from the server instead of the local filesystem.

It turns out that I am not alone with that vision. There is XEP-0136: Message Archiving a proposed XMPP (Jabber) extension for server side message archiving. The XEP supports configuration of which messages to archive, encryption and basic searching. It is not yet approved but may turn out to be exactly what I am looking for.

Tags :

BRIstuff for Asterisk 1.4

First test version available from Junghanns

BRIstuff is a set of patches for Asterisk. It provides support for cheap ISDN BRI cards (based on the HFC-S chipset) which are quite popular in Europe.

The 0.3 branch of BRIstuff (for Asterisk 1.2) suffered from a serious lack of available letters. Version 0.3.0-PRE-1y was followed by 0.3.0-PRE-1y-a to 0.3.0-PRE-1y-e.

Finally the PRE era of BRIstuff has come to an end and the test era has begun: Today Junghanns silently released the first version of BRIstuff 0.4.0 for Asterisk 1.4: bristuff-0.4.0-test1.

It may be a bit late given the fact that a press release from March already announced its availability before CeBIT but nevertheless we are very happy to see this release finally happen.

Tags :

Asterisk-IM Beta

First beta of Asterisk-IM for Openfire 3.3.0

After a few hours of coding today we have released a first Beta of Asterisk-IM for Openfire 3.3.0-beta.

The most annoying bug, staying "on the phone" when the call has already ended, should be fixed now and presence will work again.

Have a look at the new version, test it and report back.

Spark on 64bit Linux

Compiling JDIC on Ubunu edgy x64 (64 bit) for Spark 2.5.0

Spark RTC Client Spark is Jive Software's Java based, Open Source XMPP (Jabber) client. It accompanies Openfire supports Asterisk-IM but also works with any other XMPP server - and it looks quite nice. It's available for Windows, Mac OS X and Linux.

Well for Linux at least if you are running 32bit as recent versions of Spark are using native JDIC (JDesktop Integration Components) that are only available in binary for 32bit Linux.

You can grab their latest version from CVS and compile it on a 64bit Linux machine which works fine. Copy the shared libraries and jdic.jar to Spark's linux library directory and it just works.

Or you can just grab my JDIC binaries and put jdic.jar, libjdic.so and libtray.so into ~/Spark/lib/linux.

Working on Asterisk-IM

Today I started working on Asterisk-IM, a plugin for the Openfire XMPP (Jabber) server. Matt Tucker from Jive Software asked me to take the lead on Asterisk-IM as the Jive guys are too time-constrained to keep the plugin up to date.

The most important feature of Asterisk-IM is to manage your presence when you are on the phone. If you are using a client, that supports the corresponding XMPP extensions, you can also use Asterisk-IM to call your buddies and receive notifications on incoming calls.

Currently i am focused on fixing some outstanding presence bugs. I hope this will be pretty straight forward, leveraging the new Live API in Asterisk-Java.