Sunday, February 19, 2012

Three Openfire Plugins to Enhance Your IM Server SetupThree Openfire Plugins to Enhance Your IM Server Setup


Openfire is a great instant messaging server for enterprises that want to control the way IM is used on the corporate intranet. It’s easy to get started with Openfire, and once you’ve got the software up and running, you can experiment with the various third-party plugins to make your Openfire install even more useful. Here’s a quick rundown on three that you may find particularly handy: Email Listener, Broadcast, and Content Filter.
You install all Openfire plugins the same easy way, from the Plugins tab of the Openfire admin console. Click the link to download the available plugins list, then click the green + button by the relevant plugin to install it. Once installed, plugins disappear from the Available Plugins list, and appear instead on the Plugins list. However, you can’t set up plugin options from this list; you have to manage different plugins from different parts of the main Server console.

Email Listener

Email Listener allows you to monitor an IMAP email inbox and bounce specified emails to IM, either to one user or to many. This can be useful for shared email accounts, or for email accounts that are used for time-critical messages. You could, for example, set up a filter to bounce incoming support tickets to members of your support team.
To set up Email Listener after you’ve installed it, fire up the Openfire admin console (http://my.server.com:9090) and go to the Server -> Server Settings tab. Email Listener settings are available at the bottom of the left-hand list. The settings are pretty straightforward; just put in the details of your IMAP server and the account you want to monitor, and the Openfire IDs of the users to notify when messages come in. Note that you can choose which mail folder to check, so you could filter messages further on the IMAP server and then watch only a subset of incoming messages; for example, create a filter that copies support tickets with an URGENT tag into an Urgent folder, then set Email Listener to watch only that, rather than all the incoming support tickets.
Unfortunately, there seems to be an open bug when you use IMAP with SSL, which means that if your email requires SSL, you won’t be able to use this plugin. If you’re not using SSL to access your IMAP server, it should work fine. If you’re running both Openfire and your mail server on your local network, you should be able to set up IMAP without SSL for local access (perhaps restricted in some way to manage security).

Broadcast

The Broadcast plugin lets users send multi-user IMs, so that a single IM can go to everyone in the company, or to everyone in a particular group. You can restrict which users are allowed to use this facility under which conditions. You’ll almost certainly want to restrict who can broadcast to all users.
This plugin doesn’t have a helpful settings page; instead you have to set up its properties manually using the Server -> Server Manager -> System Properties page. Add properties as follows:
  • plugin.broadcast.serviceName: set to whatever you want the service to be called. The default is “broadcast.”
  • plugin.broadcast.groupMembersAllowed: set to true if you want all group members to be able to broadcast messages to all users in their group, and false if you want only group admins to be able to send these sorts of messages. The default is “true,” to allow all users to broadcast within their groups.
  • plugin.broadcast.disableGroupPermissions: set to true for any user anywhere to be able to broadcast messages to any group, and false for this to be restricted to only group members and admins. This will override the previous option if appropriate. The default is “false,” so only admins can broadcast to other groups, and group members can broadcast only to their own group.
  • plugin.broadcast.allowedUsers: give a comma-separated list of users who are allowed to broadcast messages to anyone on the network. Think carefully about who should be on this list!
  • plugin.broadcast.all2offline: deliver messages sent to all@serviceName.my.server to both offline and online users. The default is “false,” so only online users get all@ messages. Group messages are always sent to both online and offline users in that group.

The plugin.broadcast settings are shown here in the System Properties list.
Once you’ve tweaked the properties to your satisfaction, you can broadcast a message to everyone on Openfire by sending it to all@serviceName.my.server. To send to a specific group, send to groupname@serviceName.my.server.
If you’re using Spark, the Openfire Jabber client, you can instead use the “Broadcast message” option under Spark’s Actions menu, which gives you a tick-box list of groups you can choose to broadcast your message to.
There is also a plugin.broadcast.messagePrefix property that is supposed to prepend the specified string to the start of broadcast messages (thus identifying them as broadcast). Unfortunately, on my install it didn’t seem to work, and I found others reporting the same thing. It may be improved in future versions of Openfire or the plugin.

Content Filter

The Content Filter plugin allows an admin to filter particular IMs based on their content. You can disallow messages that contain particular words or phrases, or just be told when people use those words or phrases.
After you install it, you configure Content Filter via Server -> Server Settings -> Content Filter. Enable it in the first box to turn matching on, then add the patterns you want to match. Patterns must be comma-separated, not separated with a space or newline, so:
foo,bar
will match on both “foo” and “bar,” but
foo bar
will only match on “foo” and allow “bar” through. You can use regular expressions for pattern-matching, with Java regexp syntax. Check out this tutorial for more information if you’re not familiar with Java regexps.
Once it finds a message that matches one of your patterns, Content Filter gives you a bunch of options as to what you can do with it. You can simply reject the message, so it doesn’t get sent at all. If you do that, you can also set rejection notification options; disabling notifications means that the message will be eaten silently (the sender won’t know that it didn’t go out), or you can enable notifications and set a rejection message to go to the original sender. You can also allow packets that match a proscribed pattern, but enable a mask: a set of characters that will replace the matched pattern. These could just be stars (****) or something more entertaining or informative for the recipient.
You also have the option to have the admin (or another specified user) informed whenever there’s a match. You can even set up Content Filter to tell the admin when there’s a match, but allow the packets through regardless; so you could snoop on your users for particular words without letting them know that you’re doing that. (This might not, however, be great for privacy or morale.)

Other Plugins

These aren’t, of course, the only plugins available on Openfire; check out the Available Plugins list on the server admin console for more. In addition to this handy trio, you might be interested in MotD, which sends a message of the day to users when they log in; or in the User Import Export plugin, which allows import and export of user data. The Fastpath plugin might be useful if you have a support queue IM service, as it manages queued chat requests.
Openfire gives you a whole range of options to configure your setup the way you like it, and its plugin system means that if you have a specific requirement, you can always write your own plugin to cover it – then share it with the rest of the world to help out other people!

No comments:

Post a Comment