Add live chat to your IIS Web site

Chat services let you incorporate a variety of interactive communication solutions into your Web site: Common-interest group discussions, question-and-answer sessions, and technical support forums are just a few ways users can converse in realtime via the Internet. The Internet Chat Server (ICS), part of the new Microsoft Conference Server, provides chat services for Windows NT. (For information about Microsoft's Conference Server and Commercial Internet System--CIS, see "The Normandy Invasion," page 86.) Once you have an overview of ICS's features, you'll want to see how to install ICS, and learn how to establish a Web page that employs public and private Web-based chat. Let's start with the basics.

Chat Basics
In a typical chat session, users meet in chat rooms (sometimes called chat channels) where they type text-based messages back and forth; other users can read the messages and respond in realtime. Chat room hosts control the aspects of the chat room, such as user access privileges and subject matter.

Users can participate in private one-to-one chat sessions, as well as one-to-many or many-to-one auditorium-style chats. For example, a chat server recently hosted a conversation with Will Smith (star of the hit movie Independence Day) to let Internet users ask questions about the film. What a great way to promote a product! Microsoft regularly hosts question-and-answer chat sessions for product releases. For instance, while I was writing this article, I used the chat system for technical support about ICS and Microsoft Conference Server and received answers to my questions almost instantly.

Internet Relay Chat (IRC) is the most common type of chat system on the Internet. IRC supports chat from multiple OSs--UNIX, Macintosh, and just about anything else. You can use Microsoft ICS with any standard IRC client. (For information about Microsoft's Comic Chat client software, see "Cartoons Come to Life," page 99.)

Besides this versatility, ICS includes many features. It offers a new binary chat protocol that allows for secure chat sessions using Microsoft chat clients. ICS supports security extensions based on the NT Server challenge/response mechanism (e.g., passwords for protected chat rooms are not sent in clear text). ICS's GUI simplifies setup, configuration, and administration, and you can configure ICS from remote machines. ICS provides performance counters for monitoring and tuning, Simple Network Management Protocol (SNMP) monitoring, detailed event logging, and a command-line tool that supplies scripting support for server configuration. One really nice feature lets you incorporate chat forums seamlessly into your Web pages. This capability makes populating your chat forums easier and certainly simplifies chat system operation for users.

System Requirements
Integrating ICS into your NT environment is fairly easy, provided you meet a few minimum requirements. ICS has the same minimum requirements as NT 4.0 and Internet Information Server (IIS) 2.0 because it runs on top of these two software systems. According to Microsoft, you can run one chat server (supporting up to 2600 concurrent chat users) on a 486 with 64MB of RAM and a 1GB hard disk. However, you can determine the amount of physical memory you need with this formula: 24MB + (64KB * maximum number of connections). Similarly, to determine the amount of virtual memory you need, you can use the following formula: 128MB + (4KB * number of channels * number of users). Of course, you can reverse these formulas to see how far your current setup will take you.

If you don't have a copy of ICS, point your Web browser to http://www.ms-normandy.com and download the software and other parts of the CIS suite. You also need Microsoft's Internet Explorer (IE) 3.0 or Netscape Navigator with the ActiveX plug-in installed.

Installing the ICS Software
Let's quickly walk through how to install ICS and establish a demo Web page that incorporates Web-based chat. We'll create two persistent chat rooms: a private chat room called customer_support and a public chat room called webtalk. (The difference between public and private chat rooms is that users don't see private chat rooms in a chat room list--they must know the room's name to join the chat.)

Installing ICS, like other Microsoft software, is straightforward; installation requires almost no interaction with the administrator besides choosing components, an installation directory, and a file folder. You can install the following components:

  • Internet Service Manager (ISM) extensions: Allows chat service management through the standard Windows interface
  • Internet Conference Server service: Provides the Conference Server service
  • Internet Chat ActiveX Server components: Lets you retrieve and display Conference Server information on Web pages
  • Internet Chat ASC Sample templates: Includes sample templates for creating customized Web pages for chat topic searching and verification
  • Internet Chat documentation: Supplies complete ICS documentation
  • Internet Chat Client and OLE Custom Control (OCX): Provides the Microsoft Chat Client and OCX software needed for standalone chat and Web-based chat

For the basic installation, you need to install the ISM extensions, the Conference Server service, the documentation, and the Web-enabling OCX. For the most robust functionality, install the complete package and Microsoft's ActiveX Server. These additional components let you perform customized keyword searches for chat subject matter and assist you in developing customized Web-based chat interfaces.

You manage ICS, as you do other Internet services, with the ISM. Once you've installed the ICS software and opened ISM, simply double-click the chat server to open its property pages. You'll see these tabs: Banned Users, Classes, Channels, Channel Services, Logging, Portals, Security, Server Information, and Service. In these property pages, you'll find quite a few settings at your disposal. Rather than detail all these configuration settings, let's take a close look at what you need to know to get ICS up and running quickly with both private and public chat rooms (or channels) embedded in a Web page on your site.

To start, select the Channels tab to display the Chat Service Properties page, as shown in Screen 1. This dialog box displays all your defined persistent channels. Ordinarily, users can create new chat rooms on the fly, if you let them. Persistent channels are previously defined chat rooms that users can simply join (joining a chat room means you connect your chat client software to that particular chat room on a chat server).

To add a private chat room, click Add to display the Channel Properties dialog box, as shown in Screen 2. On this screen, you need to define a few settings. In the Name field, enter #customer_support as your private chat room name (names must start with the # or & character for IRC compatibility with non-Microsoft chat client software).

Next, specify settings for the remaining fields, as follows:

  • Keyword (a word users can enter as a shortcut to connect to the room): If you define a keyword for your chat channel, users must use the keyword instead of the channel name when they connect to the chat channel. For this example installation, leave the Keyword field blank.
  • Host Keyword (a word users can enter to connect to the room with host privileges): Leave this field blank.
  • Topic: Enter support for this field.
  • Subject (used in chat room subject searches from a Web page control): Enter support for this field.
  • Account (used to restrict or deny access to the chat room): Leave this field blank.
  • PICS (a field for content rating system parameters): Leave this field blank.
  • Maximum Members (the maximum number of users allowed to simultaneously connect to this chat room): Enter 200 (or more or less, depending on your system) for this field.

After you've set these Channel parameters, click Modes to present the Channel Modes dialog box, as shown in Screen 3. Select Private from the Channel Visibility drop-down list, and click OK to close the Channel Modes dialog box; click OK again to close the Channel Properties dialog box. Now that you've established your private chat room, follow the same steps (except set the Channel Visibility to Public in the Channel Modes dialog box) to establish your public chat room (#webtalk). After you've configured both chat rooms, stop and restart the chat service to make sure the changes take effect.

Installing and Testing the Web Chat Components
Next, you need to install the components that make the chat rooms available from your Web site. Open the NT Explorer and locate the \programfiles\ics\client directory on your installation drive. Copy the contents of this directory to a subdirectory in your Web root directory--you can name this subdirectory anything you like (e.g., chat). Remember this name because you need it to build the URL that accesses the Web-based chat interface. For example, if you name the subdirectory chat, your URL for the chat page will be http://www.company.com/chat/mschat.htm, where www.company.com is your Web server's full domain name. Also make sure the subdirectory has read/execute permissions set for the iurs_machinename account used by IIS to allow access to anonymous users.

After you copy the files to the new subdirectory, you can test the configuration. Open your Web browser and enter the URL (http://www.company.com/chat/mschat.htm in the previous paragraph's example) to display the demo Web page, as Screen 4 illustrates. Fill in the fields according to the following list of definitions:

  • Chat Path: Enter your chat server's complete domain name, prefixed with mic:\\ and suffixed with the chat room name (e.g., mic:\\chatsrvr.company.com\#webtalk).
  • Auth Pack.: Leave this field set to Anon for user validation.
  • Nick Name: Enter your chat nickname (or your first name, if your prefer). You cannot include spaces. If you need to represent a space, enter the underscore (_) or dash (-) in its place.
  • Real Name: Ordinarily, you enter your email address here, such as mark@ntshop.net. Again, you cannot use spaces.

After you complete your field entries, click Join the chat to connect to the chat room. You'll see the frame of the chat window turn orange during the attempt to connect and then turn green once a connection is successfully made, as shown in Screen 5. The Join the chat button also changes to Leave the chat, which you'll click when you're ready to disconnect from the chat channel.

Now that you're connected and ready to chat, all you need is someone to chat with. You can ask another person to pull up your Web page and connect to the chat server on the same chat channel as you just did, or you can connect to another chat server, such as Microsoft's, where you're certain to find other people to chat with.

To contact Microsoft's public chat server, enter mic:\\chat.ms-normandy.com\#Club_IE in the Chat Path field, with your nickname and real name in their associated fields. Then press Join the chat and you're on your way.

The Web-based chat client control has four basic panes, as shown in Screen 5. The top left pane is the message window where you see what each person types. The top right window lists people connected to the chat room. The bottom left window is where you enter your text messages. The small window on the bottom contains two buttons: one to send your text to everyone (if you don't want to press Enter, click this Send button instead) and one to whisper to someone. Whispering is the action of sending a private message to another chat room user. To whisper to someone, select the user's name from the list in the top-right pane before sending your text.

If you get a Visual Basic Script (VBScript) error when you test your Web page, you probably have an outdated chat control already installed. You can easily get an updated chat control by pointing your Web browser to http://www.ms-normandy.com/chat/chat.asp. Loading this page automatically updates your chat control, and the errors should disappear. (This page also demonstrates some other ways you can enhance your chat Web page with additional features.)

Keep in mind that users can connect to your Conference Server using a standard IRC client, or you can offer Microsoft's Chat Client (michat.exe) for download from your Web page. Once your basic chat Web page works correctly, you can develop some specific uses for it (e.g., customer support, moderated discussions) and permanently add it to your Web site.

Beyond the Basics
As you can see from this demonstration, adding an Internet chat server to your network and your Web server isn't hard to accomplish. However, Microsoft's ICS is incredibly robust with settings and features that include a software development kit (SDK) for customized applications, controls, and chat channel services.

If you take a good look at the configuration properties in the ISM, you'll find plenty of switch settings and options to modify and control your chat environment. Be sure to read the documentation for guidelines about these settings. Microsoft Conference Server's ICS can go a long way toward increasing the functionality and quality of your Internet information systems and service offerings--and quite possibly can win you a bit of envy and praise once folks see how you've incorporated chat into your Web site.

Microsoft Internet Chat Server
Microsoft * 206-882-8080
Web: http://www.microsoft.com
Price: Free download at http://www.ms-normandy.com