If you want to provide a secure instant messaging capability to your remote workers, enabling them to exchange messages in real time from their mobile devices to office-based staff on their desktop PCs, then here is one solution.
OpenFire, developed by Ignite Realtime (http://www.igniterealtime.org/projects/openfire/index.jsp) is a free, opensource instant messaging platform based on the XMPP (or Jabber) protocol. The server software is available for Windows, Mac and Linux platforms and there is a wide variety of clients available for all platforms, including Windows Mobile and Symbian.
Users can establish chat sessions with individuals, or chat rooms can be created for team collaboration.
The server can be configured to use SSL encryption for all client-server communications, and can be further configured to only accept client registration requests from a specific IP address range or subnet.
Integration with LDAP or Active Directory is also possible.
Server Installation
The OpenFire server can be installed on Windows, Linux and MacOS. In this post I shall look at how to install it on the free Linux distribution, Centos (http://www.centos.org).
In order to install OpenFire on Linux, install a base configuration of the operating system including the web server role.
OpenFire requires a back-end database to store configuration information. The installation package includes its own embedded database which is suitable for smaller installations. Should you want to use an external database, the MySQL and Oracle platforms are supported and databases should be created and configured prior to running the OpenFire installer.
The OpenFire installer can be downloaded from http://www.igniterealtime.org/projects/openfire/index.jsp
The package is available in RPM format and can be installed using the command:
rpm -i openfire-x.x.x.rpm
That's it!
The rest of the installation is done via a web browser.
Ensure that the web server service is running on the server with the following command:
service httpd start
To ensure that the web service loads automatically when the server is powered on, issue the following command:
chkconfig httpd on
Start the OpenFire service with the following command:
service openfire start
Similarly, ensure that the OpenFire service loads automatically when the server is powered on with the following command:
chkconfig openfire on
To complete the installation, enter the following address into a web browser:
http://(openfire_server):9090
The following window will be displayed:

Select your desired language package and click Continue:

Specify the address of the server and select which ports you which to use to administer the server from your web browser, the default value is 9090 for http connections. Click Continue:

Specify your desired database settings. I would recommend using the embedded database while evaluating the application. Should you wish to use an external database select the option and complete the required fields. For the rest of this post I will be using the Embedded database. Click Continue:

Here you can specify an optional directory source for the creation of user accounts. Selecting the Default option will store manually created user account information in the Embedded database. Click Continue:

Enter the details of the default administrative account for the application. Click Continue, setup is now complete:

To launch the admin console, click on the button. From now on, browsing to http://(openfire_server):9090 (depending on what port you specified earlier during the installation), the following window will be displayed:

Enter the administrator username and password you specified earlier, the main administrative dashboard appears as shown below:

To create a user account, browse to Users/Groups --> Create New User:

Configuration
The server's functionality and operation can now be configured. Most of the options are defined within Server --> Server Settings. SSL certificates can be defined, message auditing policies can be configured, etc. For detailed information on the capabilities of the OpenFire platform view the documentation on the web site.
To enable remote connectivity to the server, ideally an external DNS entry for the server should be configured, along the lines of 'openfire.domain.com' and TCP port 5222 will need to be opened on any firewalls between the OpenFire server and the Internet. This port can be configured both on the server and on the client if desired.
Client Configuration
MacOS
Any client application that supports the XMPP, or Jabber, protocol can be used with OpenFire. On the Mac I would recommend the excellent open source IM client, Adium (http://www.adiumx.com/)
By default, the OpenFire server will automatically create user accounts when a user first connects. Should you prefer to create accounts yourself so that the same naming convention is used, and only those users you want to use the system are able to, disable this option on the server.
To configure the Adium client, browse to Preferences --> Accounts --> Add --> Jabber:

Although when creating users on the OpenFire server itself the username need only be an alias, when entering the username on the client you may find you need to enter 'alias@openfire.domain.com' as shown above.
On the Options tab, enter the IP address of the OpenFire Server and specify the desired port to use:

(NOTE - again, if you are using a hostname instead of an IP address, an entry for the server will need to be created on the internal and external DNS server)
Windows
On Windows, Pidgin is an excellent Jabber client (http://www.pidgin.im/)
To create an account, select Accounts --> Manage. Add a new account:

Select XMPP as the protocol. Set the Domain to the name of the OpenFire server. Click on the Advanced tab:

Set the Connect Server to the name or IP address of the OpenFire server.
Symbian
There are a number of IM clients available for the Symbian platform that support commercial services, but only a handful that I have found that allow you to configure services manually.
My preferred client to date is the Talkonaut application (http://www.talkonaut.com/)
Add a new Jabber account service and enter the username and password. In this case the username must be entered in form 'user@openfire.domain.com'

Open the Connection Settings menu and enter the server name or IP address as well as the desired port details:

The Talkonaut client also provides support for smiley's, copy and paste as well as direct file transfer:

Windows Mobile
The same Talkonaut client is also available for the Windows Mobile platform:

You're now ready to open fire with instant messages!

