The first thing you need to do, before deploying an IM server, is to make a list of all of the IM services available, and consider how you want to distribute them between users. This can be an exhaustive task. I'll list some of the more essential services here:
1. Identify global services. These are services available to all users. For sure, you'd want everyone to be able to exchange IMs with each other. But what are the add-ons and conveniences you'd want them to be able to use? Some of the things you'd probably want everyone to do would include searching for other users on the network, editing their profile, and changing their password.
2. Identify restricted services. These are services that will only be available to a select few, in addition to the global services. The ability to broadcast is one such service. You also wouldn't want every user to be able to connect to external IM services via the gateway extension. Neither would you want everyone to have the right to create a persistent chat room.
3. Identify the override method. There will be times when you'll have to give people access to restricted services. You can prepare for such a situation by identifying the override authority for each restricted service. There will be some services that a user could request directly from you, while others would require approval from a user's supervisor. You'll also need to take into account a user's role when deciding their override methods. For example, if you are a newspaper, a journalist can directly request a gateway access, while an accountant's request might require a supervisor's approval.
4. Identify key users. Typically, you'd want to delegate or share your admin powers with other admins as well, unless you are a one-man team. Then, there are some services that have their own hierarchy of users. One such service is multi-user chat rooms. You'll need to determine which users own which rooms, and which users have administrator privileges for those rooms. Additionally, the IM system also has the ability to notify certain users of various events such as policy violations. These will also have to be identified.
Once you have the list of services and their distribution across the various categories of users in your organization, you might want to run this plan past the management, and if possible get input from the various department heads as well.
In addition to identifying the various components of an IM system, it's advisable to have a rough outline of the deployment process. This will help you estimate the time required for the process, as well as serve as a checklist while you are busy deploying the server. Here's an overview of a typical IM service deployment process:
1. Plan the infrastructure and determine the server locations. If you have a large organization, you'll need to introduce redundancy and setup servers at multiple locations to distribute loads. Also, determine if you'll be running the IM server on a dedicated server, or on a shared one. If you want to deploy multiple services on one server, you should understand that a heavily-utilized chat service requires significant server resources, in terms of memory, CPU, and network throughput, to meet customer response-time expectations.
2. Name your chat servers in line with the naming standards already in use for other servers on the network or in your organization.
3. Install the server and hook it up with the external services. This would include:
Hooking up with an external database for storing IM-related data
Connecting with a directory server for adding users
4. Pre-populate rosters.
5. Create the required Domain Name System (DNS) resource records (typically, a host record) for the chat server.
6. Configure Network Address Translation (NAT) and Firewalls. Verify that the proper service records have been entered in all internal DNS servers, and in case of server-to-server communication, in external DNS servers as well. Make sure that all required ports are open and forwarding traffic to the correct addresses.
7. Make the IM client software available to users. Upload the clients on the server, and send a pre-drafted notice about the new IM service, with (a link to) adequate end-user documentation to all users.