Accio Intellectum provides a solution that enables you to send alerts from your SharePoint to any PC or mobile device around the globe.

        SharePoint Alerts.
        Done right.

 
Skip Navigation Links
Home
IMAlertsExpand IMAlerts
Screenshots
Downloads
Buy
Documentation
ArticlesExpand Articles
Privacy
Press Release
Company
Contact


Compatible with Windows Server 2008 R2
Compatible with Windows 7
Skip Navigation LinksHome : Articles : Create Your Own XMPP Network


How To Create a Corporate or Private XMPP Network Using Openfire XMPP Server with Active Directory Integration and SQL Server Backend

By Dmitriy Gorbachev, Accio Intellectum LLC
http://sharepoint-im-alerts.com

Click an icon to bookmark


Summary:

This article provides a step-by-step tutorial on how to install and setup/configure your own Jabber/XMPP network in a corporate environment.

In the tutorial, an Openfire XMPP server is installed, configured, and integrated with Active Directory and Microsoft SQL Server database as a backend.

Software developers and system administrators, as well as anyone who wants to run their own XMPP network, can also use these instructions to quickly setup a private XMPP network on their local machines for development or testing purposes.

No prior experience with XMPP, and a minimal knowledge of system and network administration, are assumed.

Table of Contents:

1. Prerequisites and planning.
2. Openfire XMPP server installation and configuration.
    - Using Microsoft SQL Server as a backend.
    - Integration with AD (Active Directory).
3. Jabber client configuration.
4. XMPP integration with Microsoft SharePoint.

1. Prerequisites and planning.

XMPP is one of the best enterprise collaboration technologies available today.

Here's just one example: the Unites States Department of Defense is using XMPP.
I think that should be enough to convince anyone.
But if you are trying to talk your CxO into using this technology, there are a few more examples for you of companies which integrated XMPP with their products: IBM, Google, Cisco, Oracle, Sun Microsystems, and Hewlett-Packard.
Those are hardware and software manufacturers that have thousands upon thousands of big-name corporate clients all over the world.
OK, that should definitely be more than enough.

So, congratulations on your decision to get started with XMPP.

Let's roll up our sleeves and create our own corporate (or private) XMPP network.

NOTE: If you are planning to install an XMPP server cluster, this article is not for you: you already [should] have a lot of hands-on experience with managing a smaller network.
Please follow the instructions in your server documentation.
I will show how to create a single-server XMPP network.

First of all, you need to decide what machine you will be installing you XMPP server on.

(a) Production environment:

The best approach is to install the server on a machine in a DMZ (delimitarized zone), with a static IP address mapped to a domain name.
In this case, users will be able to connect to it from any device (desktop PC, laptop, cell phone, BlackBerry, iPhone, etc.) from wherever they are: at work, in an airport, on the road, at home, and anywhere else, as long as they have an Internet connection.

(b) Testing or QA environment, or a private XMPP network:

If you are a software developer, you most likely do not have a luxury of choosing a server location, and you don't have a domain name or a static IP address.
Don't worry about this stuff if you are the only user, and if you will be installing the server on your local machine for testing purposes only. Proceed to the installation instructions below, and keep in mind that your XMPP domain will be your machine name.

But If you want other - external - users to be able to use your XMPP network, you have a few options:

- Use a VPS (Virtual Private Server) hosted by a third party.
As of this writing, we have had our own private network for about 2 years, with an Openfire XMPP server running on a VPS.
You can get a very decent machine - with plenty of RAM and disk space - for as low as $80/month, with a root (administrator) access to it.
Just for your private XMPP network, an account for about $30/month should probably be good enough.
Shop around (Google is your friend), there are plenty of VPS offers, for any operating system.

- Or, you can subscribe for a dynamic DNS account: http://en.wikipedia.org/wiki/Dynamic_dns.
There are companies (such as DynDNS.com) which offer you services that enable you to run your own server from almost any machine, even from your desktop at home.
Basically, you get a free domain name (such as something.dyndns.org), and you run special software on your machine which provides kind of a pseudo-static IP address.

Usually, they offer 2 types of accounts: free and commercial. Those which are free, are sufficient for your purposes. In a corporate environment, you probably have domain names and static IP addresses anyway. But for a small company, a [very affordable] commercial account could be the best solution.

WARNING: If you are planning to do this at work, talk to your system administrators first. Running a server from behind your corporate firewall can potentially create very serious security problems. WE DO NOT RECOMMEND THIS APPROACH unless all risks have been thoroughly evaluated and you have an approval from your IT department management.

Firewalls:

Depending on how you want to configure your server, at least one TCP port should be open in your firewall for the clients to be able to communicate with it.
Usually, the standard XMPP ports 5222 and 5223 are used.
Often, 443 and/or 80 are used.
Although you can create users manually, which is just fine for some quick tests, for a corporate environment you would most likely want to make sure that your XMPP network is integrated with your Active Directory or other directory services such as OpenLDAP.

In that case, right after you are done with the server configuration, your AD users will have their own Jabber IDs in a form of username@xmppdomainname, for example, john.smith@companyname.com.

So, you need to know some basic information about your Active Directory: name, location, and an administrator account and password.

NOTE: You can skip this step if you want. Integration with directory services is optional (although it certainly is convenient).

Database server:

Finally, you need to decide where all the XMPP server data will be stored.

With Openfire, you have a choice of any major DBMS: Oracle, DB2, SQL Server, PostgreSQL, or MySQL.
If you choose one of them, you need to have access to a database server and an administrator login credentials.
To make things simple, for a small network and for testing purposes you can use an embedded database, which will be created and configured for you automatically.

I will show you how to configure your Openfire to use Microsoft SQL Server.

If you are planning to use another DBMS supported by Openfire (for example, Oracle), please refer to Openfire documentation.

2. XMPP server installation and configuration.

    - Using Microsoft SQL Server as a backend.
    - Integrating with AD (Active Directory).

1. Download Openfire server installer package for your operating system from http://www.igniterealtime.org

At the time of this writing, the current version of Openfire is 3.6.4.

2. Install it. As you will see, no specific instructions are needed for this step.

3. Once the server is installed, run it.

Openfire started - Screenshot

4. When the server is started, click "Launch Admin" to open the configuration wizard.

5. The configuration wizard asks for the domain name.
By default, it suggests the local machine name.
But I am installing Openfire on one of our Test/QA virtual private networks (running on Sun xVM VirtualBox), so I enter the domain name: AI.local .

When I was installing Openfire on our Virtual Private Server (VPS), I entered our real domain name: acciointellectum.net .

You could also use a subdomain, such as xmpp.yourcompany.com .

Enter your domain name (or accept the machine name instead of domain) and click Continue.

Server settings - Screenshot

6. Now, choose a database.

The simplest (but not the best for production) solution is to use an embedded database.

I choose Microsoft SQL Server.

Make sure the "Standard Database Connection" is selected and click Continue.

Database settings - Screenshot

7. From the "Database Driver Presets" dropdown list, select "Microsoft SQLServer".

8. In the "Database URL" textbox, I enter jdbc:jtds:sqlserver://vssql;instance=sql2005dev;appName=jive

Here, VSSQL is the name of the our dedicated virtual database server (the machine name), and SQL2005DEV is the instance name.
[So that there is no misunderstanding here: when I select a SQL Server engine to connect to in SQL Server Management Studio, this one looks like "VSSQL\SQL2005DEV".]

Of course, you need to replace them with your own values.

NOTE: If you are using a default SQL Server instance (that is, an unnamed instance), delete "instance=sql2005dev;" from the URL string.

Also, enter the username and password which will be used to connect to the database server and create the database.

Click Continue.

Database connection - Screenshot

9. Select "Directory Server (LDAP)" and click Continue.

Select LDAP - Screenshot

10. Now, this is probably the most complex configuration step.

In our case, I am going to use our test Active Directory domain (AI.local) and an SPAdmin user.
The SPAdmin user is in the "Users" AD "folder", and it is both a member of Domain Administrators AD group and SharePoint administrators (SharePoint group).

So, my settings on this page look as follows:
Server Type: Active Directory
Host (that's the machine name where I am installing Openfire, but it also hosts the Active Directory services): VSMAINx64
Base DN: dc=AI,dc=local
Administrator DN: cn=SPAdmin,cn=Users,dc=AI,dc=local
Password: <password for the ai\spadmin domain user>

If you are using a subdomain, such as jabber.yourcompany.com, then your Base DN will be dc=jabber,dc=yourcompany,dc=com

Click "Test Settings". Make sure the result is Success.

Click "Save & Continue".

Active Directory connection settings - Screenshot

11. For our WSS and MOSS SharePoint Web Farms, I want *all* users and groups to be XMPP "users" and have their own Jabber IDs.

So, I accept the default settings.

If you need to customize this, for example, to make sure that only individual users (but not domain groups) will have their XMPP accounts, you need to modify Advanced Settings.
Please refer to Openfire documentation for details.

You might want to select the "Store avatar in database if not provided by LDAP" checkbox.

Click "Test Settings".

If the test is OK, click "Save & Continue".

AD profile settings - Screenshot

12. Group Mapping: I accept the defaults, test, and continue.

13. On the Administrator Account page, I add SPAdmin and myself.

Be sure to click the little gear icon in the Test column (it will become visible after you've added at least one adminstrator account).

Click Continue.

Adding LDAP administrators - Screenshot

14. Click "Login to the admin console" button.

Setup complete - Screenshot

15. I enter my domain account credentials and click Login.

Login to Openfire - Screenshot

16. Take a few minutes to explore what's available on the admin site.

You will see that all of your domain users are already there.

For example, my own Jabber ID is dmitriy.gorbachev@AI.local . I didn't add it; my username was imported from Active Directory, and to make a Jabber ID, you just add "@yourXMPPdomainname" to your AD account.

Openfire users from Active Directory - Screenshot

17. Let's configure File Transfer.

Users will be able to send files to each other using their Jabber client software.

In the upper-left corner of the screen, click Server, and then select the "Server Settings" tab.

In the menu on the left, click "File Transfer Settings".

Open File Transfer Settings - Screenshot

Make sure that "Enabled" is selected.

Accept the default port number or enter the one you prefer.

Click Save Settings.

File Transfer Proxy Settings - Screenshot

Now, use your firewall management console to verify that this port in the firewall is open, and open it if it's currently closed.

18. Click Plugins.

Most likely, you will have one or no plugins yet.

Click Available Plugins.

Click Update Now hyperlink.

Installing a plugin is really easy. Just follow the instructions.

Some time ago, we used an "Import Export Plugin" before. It allows you to easily import a list of existing users. This is very helpful if you are not using AD/LDAP integration (which we did in this tutorial). With this plugin, you just create an XML file with some basic information about users, such as usernames and their desired Jabber IDs, and then you upload the file and let the Openfire do the work for you in less than a minute which otherwise might take hours (depending on how many users you want to create).
But this is not necessary if your Openfire server is integrated with Active Directory.

19. You might want to install Openfire as a Windows service or a server daemon, so that it starts automatically every time the machine starts.

On Windows, open a command prompt (Start => Run => cmd), "cd" to the Openfire "bin" folder, and run openfire-service /install command.
Then, openfire-service /start - this will start the service.

This is it. We have an XMPP server (and network) up and running. Now, let's help the users.

3. Jabber client configuration.

A Jabber client is software which is used for Jabber/XMPP communication.

There are many available Jabber clients.

Some of them are available only for a particular operating system, others are cross-platform.

Some are Web-based (run in a browser), others are installed on a user desktop (or a cell phone, etc).

There are free and commercial Jabber clients.

A large list of XMPP clients can be found in Wikipedia: http://en.wikipedia.org/wiki/List_of_XMPP_client_software

At Accio Intellectum LLC, we test our software on various operating systems and several mobile devices.

Here, I am showing to you how to configure 4 of the most popular Jabber clients: Psi, Spark, Pidgin, and Kopete.
Kopete is for Unix-like operating systems and Mac OSX; the other three are cross-platform (including Windows).
All four are free.

In case you're wondering: we are using these four clients, as well as Google Talk desktop and mobile clients.
Google clients don't work with any other XMPP network except Google Talk, although there is an XMPP feature called "gateways" which enables you to connect your own server to Google Talk, AIM, Windows Live, and other non-XMPP networks.
Many companies use this feature; we don't because we don't need it (at least, not yet).
Gateways are available for Openfire.

NOTE: "AI.local" is just not cool. The screenshots below show configuration settings for the clients connected to our *real* private XMPP network hosted on acciointellectum.net.

Spark on Windows 7 - Screenshot 1
Spark on Windows 7 - Screenshot 2

Kopete on OpenSUSE 11.2 Linux - Screenshot 1
Kopete on OpenSUSE 11.2 Linux - Screenshot 2

Pidgin on OpenSolaris - Screenshot 1
Pidgin on OpenSolaris - Screenshot 2

Psi on Windows Server 2003 - Screenshot 1
Psi on Windows Server 2003 - Screenshot 2

4. XMPP integration with Microsoft SharePoint.

If your organization is using Microsoft SharePoint - either Windows SharePoint Services v3 (WSS 3.0) or Microsoft Office SharePoint Server 2007 (MOSS 2007) - you can use IMAlerts for SharePoint.

IMAlerts provides functionality similar to that of SharePoint built-in email alerts, but it uses Jabber/XMPP instant messages instead of email to notify users of important events that occur in the SharePoint system: for example, when a new document is added, a Task is re-assigned, an image is deleted, a Wiki page is modified, etc.

Notifications can be sent via a free Google Talk instant messaging network or any other Jabber/XMPP-compatible public or private network.

IMAlerts is very easy to use. It is seamlessly integrated into your existing SharePoint websites.
Any XMPP-compatible client software can be used to receive alerts.

With IMAlerts, end users simply create subscriptions for being notified of events occurring in document libraries, Tasks lists, Issues, Wiki libraries, and virtually any other SharePoint lists and libraries.
These subscriptions are then processed by IMAlerts, and notifications are generated and sent when events happen which match those subscriptions.
Alerts are delivered to any PC or mobile device regardless of its operating system.

IMAlerts is completely independent of SharePoint built-in email alerts, and therefore can be used not only in addition to, but also instead of, email alerts.

IMAlerts is available in three editions: 100% FREE Express Edition, 30-day free Trial, and Standard Edition.
Licensed per server.
Affordable (and the Express Edition is free).

Get it now. You'll like it.

And - yes, it will work with the XMPP network you've just created.

For more information and to download IMAlerts, please visit http://sharepoint-im-alerts.com


Click an icon to bookmark

Instant Messaging (IM) alerts for SharePoint: alerts delivered to cell phone, smartphone, BlackBerry, iPhone, PDA, Pocket PC, Tablet PC, and more!
Top Top Top
Copyright @ 2008 - 2009 Accio Intellectum LLC. All rights reserved.      Privacy      Contact