Instant Messaging Polling

I found this after 2 days of digging through the web to address an issue.

This is from www.microsoft.com.

 

 

 

Instant Message Polling and Fixed Port Callback Delivery


White Paper

Published: August 2001

For the latest information, please see http://www.microsoft.com/exchange/

Introduction

Instant Message Polling and Fixed Port callback delivery are new connection features available in Microsoft® Exchange 2000 Server Service Pack 1 (SP1). These features allow connections between the Microsoft Exchange 2000 Instant Messaging server and the Exchange Instant Messenger client, even if the Instant Messaging server or the Instant Messenger client is protected by a firewall.

In Instant Message Polling, the Instant Messenger client polls the Instant Messaging server at regular intervals to check for pending notifications. When a connection is established with the Instant Messaging server, the notifications are delivered.

In Fixed Port callback delivery, a single port or range of ports is designated for outbound connections from the Instant Messaging server to the Instant Messager client.

Important   This paper contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to restore the registry, view the "Restore the Registry" Help topic in Regedit.exe or Regedt32.exe.

Background

Previous versions of Exchange did not support polling. The Instant Messenger client sent connection requests to the Instant Messaging server through port 80. The Instant Messaging server then sent notifications to the Instant Messenger client using a random port greater than or equal to 1024. For example, Woodgrove Bank establishes a business partnership with Humongous Insurance to process the insurance needs of Woodgrove Bank’s customers. Both Woodgrove Bank and Humongous Insurance install Exchange 2000 (before the SP1 release). Kari Hensien, who works for Woodgrove Bank, attempts to log on to Humongous Insurance’s Exchange Instant Messaging server. The Exchange Instant Messenger client at Kari’s workstation sends a connection request through port 80 to the Instant Messaging server at Humongous Insurance. However, the Instant Messaging server at Humongous Insurance cannot establish a connection with Kari’s Instant Messenger client because Woodgrove Bank’s firewall blocks communication.

Figure 1 illustrates the failed delivery notification between Kari Hensien’s Exchange Instant Messenger client at Woodgrove Bank and the Exchange Instant Messaging server at Humongous Insurance.

Figure 1   Failed delivery notification

Instant Message Polling and Fixed Port Callback Delivery

The new Instant Message Polling and Fixed Port callback delivery features resolve failed message delivery issues by ensuring that the Exchange Instant Messaging server can communicate with the Exchange Instant Messenger client, even if a firewall separates the two.

Instant Message Polling

In Instant Message Polling, the Instant Messenger client polls the Instant Messaging server at regular intervals to check for pending notifications. The Instant Messenger client attempts to keep an open connection with the Instant Messaging server from which a notification is sent. For example, Woodgrove Bank and Humongous Insurance upgrade their Exchange installations to Exchange 2000 SP1. Kari Hensien, who works for Woodgrove Bank, tries to connect to the Instant Messaging server at Humongous Insurance. The Instant Message Polling feature on Kari’s Instant Messenger client establishes a connection at regular intervals with the Humongous Insurance’s Instant Messaging server. When the Instant Messaging server receives the notifications, they are delivered to Kari’s Instant Messenger client through the open connection.

Figure 2 illustrates Instant Message Polling between Kari Hensien’s Instant Messenger client at Woodgrove Bank and the Exchange Instant Messaging server at Humongous Insurance.

Figure 2   Instant Message Polling between an Instant Messenger client and an Instant Messaging server

In most instances, these connections have a limited time span or can be ended by firewalls, proxies, or hardware routers. The Instant Messenger client is responsible for re-establishing new connections by periodically polling the Instant Messaging server. The Instant Messaging server must also ensure that any pending notifications get queued and sent to the Instant Messenger client when a new polled connection is made. The connection is automatically done without the user’s intervention.

Fixed Port Callback Delivery

In Fixed Port callback delivery, the Instant Messenger client callback port is limited to a single port specified by a limited range. Fixed Port callback delivery is a restrictive delivery mechanism. In Fixed Port callback delivery, the port values can range from 1025 to 65535.

Note   Although the user interface for the Fixed Port(s) option allows you to type value ranges from 1 to 65535, the actual permissible range is 1025 to 65535. If you select port ranges below 1025, the Instant Messenger client defaults to random port selection. For more information about the Fixed Port(s) option, see “Connection Configuration Settings” later in this document.

You can select a single port or a range of ports across a firewall for outbound connections from an Instant Messaging server to an Instant Messenger client. This port number is read from a registry key. This registry key is located in the client policy settings that are deployed by the organization’s network administrators. For example, the administrator of Humongous Insurance sets a port across the firewall for instant messaging capabilities. Opening the port across the firewall allows Kari Hensien’s Instant Messenger client to communicate with Humongous Insurance’s Instant Messaging server through the assigned port.

Figure 3 illustrates Fixed Port callback delivery between Kari Hensien’s Instant Messenger client at Woodgrove Bank and the Instant Messaging server at Humongous Insurance.

Figure 3   Fixed port callback delivery from an Instant Messaging server to an Instant Messenger client

Registry Settings

The registry is a centralized, system-defined database in which applications and Microsoft Windows® operating system components store configuration data. The registry contains vital information about a computer’s configuration, such as profiles on the computer, what hardware exists on the system, and which ports are being used. Registry settings exist within Registry Editor. Registry Editor is an advanced tool for changing the settings in your system registry. To start Registry Editor, click Start, click Run, type regedit in the command line, and then click OK.

Warning   Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use the Registry Editor at your own risk. For information about how to edit the registry, view the "Change Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Information" Help topics in Regedt32.exe.

Note   You should back up the registry before you edit it. If you are running Microsoft Windows NT® or Windows 2000, you should also update your Emergency Repair Disk (ERD).

Server Registry Settings

The following server registry settings control the Instant Message Polling configuration on the Instant Messaging server. The administrator of the Instant Messaging server configures these server registry settings (for example, the administrator at Humongous Insurance). The administrator must use Registry Editor to add the Instant Messaging value. The registry values exist in the following directory:

\\HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\InstantMessaging

Important:   The following server registry settings must be configured first for Instant Message Polling and Fixed Port callback delivery to function properly.

 

For more information about Registry Editor, see the Microsoft TechNet Web site at http://go.microsoft.com/fwlink/?LinkId=6492.

 

Poll Support

The PollSupport values determine whether the server supports polling.

PollSupport set to 0

Polling not supported

PollSupport set to 1

Polling supported

Poll Life Time

The PollLifeTime values denote the length of time, in seconds, that the polling request can be buffered on the server.

PollLifeTimeDefault

300 seconds (60 seconds × 5 = 5 minutes)

PollLifeTimeMinimum

60 seconds (1 minute)

PollLifeTimeMaximum

600 seconds (10 × 60 seconds = 10 minutes)

The following registry keys override defaults. All three values must be updated or they are not valid.

PollLifeTimeDefault

57600 seconds (60 minutes × 60 seconds X 4 = 4 hours)

PollLifeTimeMinimum

57600 seconds (60 minutes × 60 seconds × 4 = 4 hours)

PollLifeTimeMaximum

57600 seconds (60 minutes × 60 seconds × 4 = 4 hours)

Poll Message Life Time

The PollMsgLifeTime values denote the length of time, in seconds, that the message can be buffered on the server.

PollMsgLifeTimeDefault

1800 seconds (30 × 60 seconds = 30 minutes)

PollMsgLifeTimeMinimum

0 seconds

PollMsgLifeTimeMaximum

3600 seconds (60 × 60 seconds = 1 hour)

The following registry keys override defaults. All three values must be updated or they are not valid. The time conversion must be represented in seconds.

PollMsgLifeTimeDefault

24 hours × 60 minutes × 60 seconds × 10 = 10 days)

PollMsgLifeTimeMinimum

864000 seconds (24 hours × 60 minutes × 60 seconds × 10 = 10 days)

PollMsgLifeTimeMaximum

864000 seconds (24hours × 60 minutes × 60 seconds × 10 = 10 days)

Poll Message Limit

The PolMsgLimit values denote the maximum number of messages that can be buffered on the server.

PolMsgLimitDefault

100 messages

PolMsgLimit set to 0

Message buffering disabled

The following registry key overrides defaults.

PollMsgLimit

0xFFFFFFFF

Note   0xFFFFFFFF represents unlimited message buffering.

Poll Message Kilobytes Limit

The PollMsgKByteLimit values denote the maximum number of kilobytes that can be buffered for all messages in a subscription. A subscription is the status information about a contact that an Instant Messenger client receives from that contact’s home server.

PollMsgKByteLimitDefault

100 KB

PollMsgKByteLimit set to 0

Message buffering disabled

The following registry key overrides defaults.

PollMsgKByteLimit

0xFFFFFFFF

Note   0xFFFFFFFF represents unlimited message buffering.

Poll Dropped Message Life Time

The PollDropMsgLifeTime value denotes the length of time, in seconds, that the messages are maintained on the server. The timer starts as soon as the first message is submitted.

PollDropMsgLifeTimeDefault

57600 seconds (60 minutes × 60 seconds × 4 = 4 hours)

The following registry key overrides defaults.

PollDropMsgLifeTime

864000 seconds (24 hours × 60 minutes × 60 seconds × 10 = 10 days)

 

Client Registry Settings

The following client registry settings control the Instant Message Polling configuration on the Instant Messenger client. The administrator of the Instant Messenger client configures these client registry settings (for example, the administrator at Woodgrove Bank). The registry values exist in the following directory:

\\HKEY_CURRENT_USER\Software\Microsoft\Exchange\
Messenger\Profiles

Important   If the user (for example, Kari Hensien at Woodgrove Bank) previously configured the connection settings at her workstation, the following client registry settings will override those connection settings. For more information about how the user configures connection settings, see “Connection Configuration Settings” later in this document.

Polling Flag (REG_DWORD)

The PollingFlag values determine the type of connection to use when receiving Instant Messaging server notifications.

PollingFlag set to 0

Polling disabled

PollingFlag set to 1

Polling enabled

PollingFlag set to 2

Fixed Port(s) enabled

Polling Period (REG_DWORD)

The PollingPeriod values specify the length of time the Instant Messenger client waits before sending another polling request. 

Default PollingPeriod

10 minutes

Maximum permissible PollingPeriod

15 minutes

Ports (REG_SZ)

The Ports value refers to Fixed Port callback delivery configuration. You can set the Ports value to a single port or range of ports. Selecting a range of ports allows the Instant Messenger client to cycle through the ports until a connection is made. The ports can range from 1025 to 65535. After you select the ports, the Instant Messenger client polls the Instant Messaging server across the specified port or range of ports.

Connection Configuration Settings

Using the Connection Configuration dialog box, you can select the method of notification you want to set for the Instant Messenger client. The user configures these notifications. For example, Kari Hensien at Woodgrove Bank would perform the following procedure on her Instant Messenger client.

Important   If the administrator of the Instant Messenger client previously configured the client registry settings, the following connection configuration settings will override those client registry settings.

To configure notifications

1.      Click Start, and then click Exchange Instant Messenger.

2.      On the Tools menu, click Options, click Accounts, and then click Advanced (Figure 4).

Figure 4   Advanced button on the Accounts tab in the Options dialog box

3.      In Connection Configuration, click Default, Polling, or Fixed Port(s) (Figure 5). 

Figure 5   The Connection Configuration dialog box

·         Click Default to receive your contact’s online status and instant messages through a random port.

·         Click Polling to activate the Instant Message Polling feature.The How often should polling occur (in minutes) text box has a default value of 10 minutes. The maximum permissible time is 15 minutes. If you enter an invalid value (values smaller than 1 or larger than 15), and then click OK, an error message prompts you to enter a value between 1 and 15 minutes.

·         Click Fixed Port(s) to activate the Fixed Port callback delivery feature. In the Please specify the range of ports to be used text boxes, values can range from 1025 to 65535. If you enter an invalid port range (values smaller than 1025 or larger than 65535), and then click OK, an error message prompts you to enter a value in the permissible range.

Note   Although the user interface for the Fixed Port(s) option allows you to input value ranges from 1 to 65535, the actual permissible range is 1025 to 65535. If you select port ranges below 1025, the Instant Messaging server defaults to random port selection.

4.      After you click Default, Polling, or Fixed Port(s) and enter valid values in the appropriate text boxes, click OK. The registry is then updated with the new setting, and you are returned to the Options dialog box. The message box notification: The changes you made to your connection configuration won’t take effect until the next time you sign in is displayed. The new settings take effect only when you log out and sign back in to the Instant Messenger client. If you click Cancel, the registry is not affected, and you are returned to the Options dialog box.

Best Practices

This section provides helpful information to ensure proper functionality of Instant Message Polling and Fixed Port callback delivery:

·         Upgrade to Exchange Instant Messenger provided with Exchange 2000 Server SP1. Versions earlier than Exchange 2000 Server SP1 do not support Instant Message Polling.

·         The Instant Message Polling feature on the Instant Messaging server is not configured by default. It must be configured by the server administrator using regedit. To start Registry Editor, click Start, click Run, type regedit in the command line, and then click OK.

Note   This is a different procedure than configuring Instant Message Polling on the Instant Messenger client. For information about configuring Instant Message Polling on the Instant Messenger client, see “Connection Configuration Settings” earlier in this document.

·         Digest authentication must be enabled by the administrator for proper Instant Message Polling functionality. Digest authentication is an Internet standard that allows clients to authenticate using a sequence of challenges and responses carried over HTTP. For more information about digest authentication, see Exchange 2000 SP1 online documentation.

To enable digest authentication

1.      Click Start, point to Programs, point to Microsoft Exchange, and then click Active Directory Users and Computers.

2.      Right-click the server you want, and then click Properties.

3.      Click the Group Policy tab, and then click Edit to edit the default policy setting (Figure 6).

Figure 6   The Edit button on the Group Policy tab in the server Properties dialog box

4.      In Group Policy, in the console tree, expand Window Settings, expand Security Settings, expand Account Policies, and then click Password Policy.

5.      In the details pane, right-click Store password using reversible encryption for all users in the domain, and then click Security.

6.      In Security Policy Setting, select the Define this policy setting check box, click Enabled, and then click OK (Figure 7).

Figure 7   The Group Policy and Security Policy Setting dialog boxes

Important   Password reset configuration is mandatory for proxy or digest encryption.

·         Higher polling frequency uses greater bandwidth on the Instant Messaging server. As a result, an increase in polling frequency on the Instant Messenger client can cause congestion on the Instant Messaging server. For example, if your Instant Messaging server connections are repeatedly shutting down and not permitting a connection, consider decreasing polling frequency on the Instant Messenger client. A decrease in polling time ensures higher accuracy. It is important to estimate the needs of your customers when setting the polling frequency. For information about setting polling frequency on the Instant Messenger client, see “Connection Configuration Settings” earlier in this document.

·         Use the following diagnostic tools for examining Instant Message Polling and Fixed Port callback delivery:

o        Use Network Monitor to monitor the traffic and behavior of your network components. Network Monitor exclusively monitors network activity. You can run the netmon command from the command prompt to monitor Instant Message Polling and Fixed Port callback delivery activity. To run netmon, click Start, click Run, type netmon in the command line, and then click OK.

o        Windows 2000 and Exchange 2000 contain performance counters. The Performance Logs and Alerts snap-ins for MMC allow you to record system activity over a period of time to analyze at a later time. In addition, you can configure alerts so activity that crosses defined thresholds generates events, such as adding an entry to the application event log, sending a message to a Windows 2000 console, starting a performance data log, or starting a program. You can run the perfmon command from the command prompt to examine the CPU load and network bandwidth in use. To run perfmon, click Start, click Run, type perfmon in the command line, and then click OK.

 

 

 

For more information: http://www.microsoft.com/exchange/