August 12, 2011

Weekend Project: Turn Thunderbird into a Groupware Client with SOGo Connector

Mozilla Thunderbird has earned its place as an email app on Linux desktops, and its cross-platform nature makes it a popular choice for Windows and OS X machines as well — particularly when you include the calendaring and task management power of the Lightning add-on. But uptake in corporate environments has never been its strong suit, largely because it does not include groupware features such as event invitations and shared address books. The SOGo Connector extension adds those features and more, turning Thunderbird into a proper groupware client suitable for business use.

The Case for Groupware

To be sure, Thunderbird and Lightning together do support an array of important calendaring and PIM data standards, such as iCalendar and vCard. The problem is that that support is incomplete in a few areas that project managers used to a Microsoft Exchange environment might expect, like the ability to schedule a meeting within the calendaring app, see the free/busy status of the invitees, and send out an invitation email to everyone involved with one click.

But Exchange is just one example. Small- to medium-size businesses are moving away from Exchange and similar proprietary systems towards cheaper, easier-to-manage groupware suites that run on Linux and Apache. But Thunderbird and Lightning's support for remote calendar protocols is centered more on historical standards like LDAP than on the newer, lightweight protocols favored by today's groupware.

Setting aside the irony of "lightweight" in the name LDAP, the popular groupware suites today emphasize the CalDAV and CardDAV protocols for calendars and contacts. They operate over HTTP, which makes them a natural fit for web-based groupware systems like Citadel, Zimbra, and DAViCal.

In addition to event organization and free/busy information, CalDAV and CardDAV make centralized management of data possible, so that employees can access their contacts and schedule from any remote client, and administrators can maintain and back-up the system.

The SOGo Extension

SOGo is one of those open source, LAMP-based groupware suites that supports the DAV-based protocol stack. If you have not heard of it, that is likely the result of its youth. SOGo does differ from many of its contemporaries in that it actively promoted Thunderbird/Lightning as its client interface, rather than offering only a web-based front end.

SOGo Remote AddressbookThe project makes two Thunderbird extensions: SOGo Connector, and SOGo Integrator. As the name implies, the Integrator extension transforms Thunderbird into a dedicated SOGo client. But the Connector extension is more flexible, adding groupware features to Thunderbird that will interoperate with any CalDAV/CardDAV based server software.

SOGo Connector is provided for Thunderbird 3.1 and 2.0. The Lightning extension is required, even if you are only interested in the CardDAV features. Make sure you install Lightning first, then download the SOGo Connector .XPI file from the downloads page. In Thunderbird, go to Tools -> Add-ons and click on the "Install..." button. Select the newly-downloaded XPI file, and restart when the installer tells you it is ready.

The extension adds four main features to Thunderbird and Lightning, although they are well-integrated with the existing application, so they do not stand out. The first is support for CardDAV remote address books. When you open the Address Book window in Thunderbird (Control-Shift-B), grab the thin vertical lines on the left-hand edge of the window, and drag them to the right. This opens up a well-hidden feature: Thunderbird's existing support for multiple address books. Normally you will have two, the default "Personal Address Book" and "Collected Addresses" where addresses from your incoming email are automatically saved.

Thunderbird will always allow you to create a new address book with File -> New -> Address Book, but with Connector installed, "Remote Address Book" will also be added to the options. Select this menu item, and you can enter the URL for your groupware server. The addresses will appear instantaneously in the list, and if your server supports read/write connections, you can edit them as well.

SOGo CalendarThe second new feature Connector adds is access to CalDAV remote calendars, with support for the full feature-set including free/busy information. You add a CalDAV calendar through the normal "New Calendar" wizard in Lightning, supplying the URL provided by your groupware server as the location. Whenever you open an event with attendee information, it is displayed in the "Attendees" section of the detail window. Tasks delivered by the iCalendar feed automatically appear in the Lightning task manager component.

The third new feature is the ability to publish free/busy information in your own calendar feed. This is done through an added option in the New Event dialog box. Open the Options menu and scroll down to "Show Time As:" to mark yourself as free or busy during the designated time slot. For non-private events, this information will be visible to other users subscribed to the groupware calendar. You can mark yourself as "free" to indicate office hours or on-call status, "busy" to indicate that you are unavailable, or leave the time slot blank if you do not know.

The fourth new feature is called "event organizing" in the documentation, but it is also commonly referred to as inviting attendees to events. When you create a new event, click on the "Invite Attendees" button on the toolbar. This opens up an invitation window, with a list of invited addresses in the left-hand column, and a free/busy calendar view on the right. You add attendees in the list, and Thunderbird automatically pulls up their free/busy data on the right. Build the list first, and you can search for a time when all (or a quorum) of your participants are available. You can also mark individual attendees as "required," "optional," "chair," or "non-participant." The latter might be important if you need to ensure that someone is staffing the front desk while others are in the meeting, for example.

With your attendee list generated, click the "Save and Close" button, and Thunderbird will prompt you to verify that you want to send out the invitation email. The email will contain an iCalendar attachment that all groupware-aware applications will recognize, allowing your recipients to place the event on their personal calendars. Each attendee can confirm (firmly or tentatively) whether or not they will attend, and you can compose follow-up messages to all recipients or just the tentative attendees by editing the event again.

What Connector Does Not Do

These features, simple though they may individually sound, make Thunderbird/Lightning a more powerful team organization tool because they enable collaboration. But the Connector extension alone is not all you need.

Your company or project will still need to set up a groupware suite (or a stand-alone CalDAV/CardDAV server), which is a decision that requires thought. SOGo seems like a choice worth looking at, but there are plenty of other open source offerings that give it strong competition.

The SOGo Connector add-on also does not handle synchronizing Thunderbird with other applications and devices, which can be important to keeping your team coordinated. Your groupware suite may offer its own device synchronization feature, but don't take that for granted. For its part, SOGo fully recommends the open source Funambol extension, which turns Thunderbird into a capable SyncML client in its own right, and allows your users to keep their phones and tablets up-to-date with calendar and contact information.

However, the vast majority of web-based groupware suites offer solid HTML interfaces, so no matter what your users carry in their pockets, they will be able to keep in touch and stay on track when they are away from their Thunderbird windows.

So Go

As nice as SOGo Connector is, it would be even better if the CardDAV and free/busy functionality was built directly into the Lightning extension itself. I experienced some quirks with the visual layout of the "Invite Attendees" window that may be due to my configuration; it is difficult to debug. But to SOGo's great credit, the project is working hand in hand with the upstream Lightning developers, maintaining a patch set and back-porting new features to its own builds of Lightning.

That may pave the way towards better CalDAV/CardDAV integration in future releases, but even if it does not, SOGo Connector is still a must-have add-on for anyone who uses Thunderbird in a team environment.

Click Here!