Redbooks Paper Heiko Mueller William Tworek Connecting Communities Using the Lotus Instant Messaging SIP Gateway In this Redpaper, we show you how to connect your Sametime® infrastructure to another Sametime community or SIP-enabled community using the Session Initiation Protocol (SIP) for easy and secure exchange of instant messages. The topics in this paper include: What is the Session Initiation Protocol (SIP) Sametime SIP components Setting up the SIP Gateway and Connector Enabling Transport Layer Security (TLS) Using client certificate authentication The end-user experience Example scenarios © Copyright IBM Corp. 2004. All rights reserved. ibm.com/redbooks 1 What is the Session Initiation Protocol (SIP) The Session Initiation Protocol (SIP) is a standard protocol defined by the Internet Engineering Task Force (IETF). SIP is an application-layer signaling protocol that handles interactive, multimedia sessions, including presence and instant messaging. It uses existing transport protocols like TCP to initiate, modify or terminate a session. SIP is fully bidirectional, and it enables clients and servers to initiate requests and responses. It is a control protocol that does not care about content. SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) is an emerging standard based on the Session Initiation Protocol. SIMPLE is an extension of SIP that enables awareness and instant messaging. The Sametime SIP Gateway supports SIMPLE, and if other vendors support SIMPLE, you will be able to connect to third-party SIP-enabled communities. Detailed discussions about SIP and SIMPLE are beyond the scope of this Redpaper. For more information about these protocols, refer to the following Internet Engineering Task Force (IETF) documents: IP - IETF RFC 3261 SIMPLE - draft-ietf-simple-im-01; draft-ietf-simple-presence-06 CPIM (Common presence and Instant Messaging) draft-ietf-impp-cpim-msgfmt-06; draft-ietf-cpim-pidf-03 These documents are available at the following site: http://www.ietf.org Sametime SIP components In order to connect your Sametime community to another Sametime or SIP-enabled community, you need the Sametime SIP Gateway (part of your Sametime server), as well as the SIP Connector. If you are connecting to another Sametime community, it will need such components too. If you have more than one Sametime server in your community and you want to be able to connect from “everywhere” in your community to other communities, then you have to configure the Sametime Gateway on every Sametime server in your community. Otherwise, you can use the installation of SIP capabilities to separate users that are allowed to communicate to external users. 2 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Sametime SIP Gateway The Sametime SIP Gateway was introduced in Sametime 3.0 as part of Sametime Service Pack 1. Since the release of Sametime 3.1, it is now part of the core Sametime Server (that is, no additional install is needed). The Sametime SIP Gateway acts as a server application on the Sametime server. The SIP Gateway processes messages and is responsible for the translation between the SIP network and the Sametime community. The configuration of the Gateway component is performed through documents in the Sametime Configuration Database “stconfig.nsf”. SIP Gateway functionality The SIP gateway technology is what ultimately supports the following key capabilities: Adding users from other SIP-enabled (external) communities You can add users from other communities to your buddy list by using the Internet mail address of the person. SIP generally defines users or entities of other (external) communities by e-mail address. Awareness of online/offline status You can see the presence awareness of people in the other community, and people in the other community can the see the awareness of users in your community. Instant messaging or instant audio/video sessions You can initiate an instant messaging or audio/video session with a person in an external community. Only one-to-one sessions are supported; sessions involving more than two users (that is, n-way sessions) are not supported. An instant messaging session cannot include audio/video as an additional meeting activity, or vice versa. Privacy features You can use the privacy features of Sametime Connect to prevent users in other communities from seeing your online status. Restriction: Privacy is not “symmetrical” between communities, as it is in a single Sametime community. This means that when you use the privacy features from Sametime, you are still able to see the status of external users. Similarly, if external users hide their online status, they are still able to detect your status. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 3 Transport encryption Instant messages can be sent encrypted between different communities using Transport Layer Security (TLS). However, audio/video streams are not encrypted. Sametime SIP Connector The SIP Connector is a separate component from the SIP Gateway, and it must be installed on a separate machine. The Connector communicates with the SIP Gateway through a single SIP connection to the Sametime server that will be specified during installation of the SIP Connector. While the SIP Gateway is installed on every Sametime server for which you want to give users the capability to communicate via SIP, the SIP Connector is installed on one main “connecting” server only. A single SIP Connector can support multiple external SIP communities and Sametime servers. However, you can also set up multiple SIP Connectors in your community for failover and load balancing. SIP Connector functionality The SIP Connector performs the following tasks: It receives outbound SIP data from the local SIP Gateway. It constructs outbound SIP messages. It creates connections to an SIP-enabled component (like another Sametime community or a third-party SIP proxy server). It receives connection from an SIP-enabled component in another community. It parses inbound SIP messages. It forwards inbound messages to the SIP Gateway on the Sametime server. Sametime SIP Proxy The Sametime SIP Proxy is not a “component” of the Sametime solution, but rather a combination of the Sametime SIP Gateway and the SIP Connector. Product documentation related to SIP will sometimes refer to this SIP proxy concept. The SIP Proxy is responsible for routing and delivering all calls to an SIP-enabled community. The concept of an “SIP Proxy” is part of the SIP standard, and it is a term regularly used in the industry around the SIP protocol; 4 Connecting Communities Using the Lotus Instant Messaging SIP Gateway thus, it is important for readers to understand how Sametime implements this concept. Setting up the SIP Gateway and Connector In order to connect Sametime communities, or to connect your infrastructure to another SIP-enabled instant messaging environment, your community must contain at least one SIP Gateway and one SIP Connector. If you have more than one Sametime server in your community, you must configure the SIP Gateway on each Sametime server that will participate in the SIP network. Planning your infrastructure When you plan to connect only to other communities within your corporate network, you can install the SIP Connector on any intranet machine that has network access to the Sametime SIP Gateway of your community. The SIP Connector must simply be able to connect to the Sametime server in the community on TCP/IP port 1516, and connect to the other communities on the default SIP port of 5060. However, when you plan to connect to other external instant messaging networks over the Internet, your SIP Connector must be available beyond your company’s firewall via the SIP port (5060), and also be able to establish connections to your Sametime server inside the firewall on port 1516. This will often be implemented by placing the SIP connector within the DMZ layer of your organization’s firewall. Other options affecting your architecture are traffic, availability and failover. When these are taken into consideration, you are left with several possible deployment combinations of connectors and gateways. We discuss these in the following sections. One SIP Gateway, one SIP Connector One SIP Gateway and one SIP Connector is the basic installation to enable your Sametime community to communicate externally. Several SIP Gateways, one SIP Connector Several SIP Gateways and one SIP Connector are used if you have more than one Sametime server in your community. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 5 Several SIP Gateways, several SIP Connectors When you use more than one SIP Connector, you can configure each connector to serve an another external community, or you can set up each connector to equally service all external SIP communities, to support heavy traffic and failover. Enabling audio/video session over SIP When a user in your community invites another user to an instant audio/video meeting, the meeting is created on a Sametime server in your community. The call control and signaling aspect of this connection is handled by SIP. If both communities are configured to support SIP, as described earlier in this chapter, the user from the other community should be able to participate in the audio/video meeting. Note, however, that the audio/video streams for the meeting are sourced from the Multimedia Processor (MMP) on the Sametime server that is hosting the meeting. This aspect of audio/video connectivity functions as follows: The Audio/Video streams are transmitted using UDP The Sametime server Audio/Video Services dynamically select the UDP ports on which to transmit the audio and video streams. These ports are chosen from the “Interactive Audio/Video Network - Multimedia Processor (MMP) UDP port numbers start/end at” settings in the Sametime Administration Tool on the Sametime server. Blocked UDP connections through network restrictions If any network between the client and the server blocks UDP traffic, the audio/video streams cannot be transmitted to the client in the other community. In this case, the audio and video streams can be tunneled over a single TCP/IP port. The administrator can specify the TCP port over which the streams will be tunneled in the “Interactive Audio/Video Network-TCP tunneling port” (default 8084) setting in the Sametime Administration Tool on the Sametime server. The port specified as the “TCP tunneling port” must be open through all networks between the client and the server in order for the client to transmit and receive TCP-tunneled audio and video streams. Restriction: If the audio/video streams must be routed through an HTTP or SOCKS proxy server on any network between the user in the external community and the Sametime server in your community, the user cannot participate in an instant audio/video meeting with a user in your community. 6 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Installing the Sametime SIP Connector The Sametime SIP Connector is available for the Windows® NT/Windows 2000 Server and the IBM® iSeries™ system. This Redpaper covers installation to the Windows infrastructure only. You can find the software on the Sametime 3.1 Components Disk (CD2) in the folder: SIP Connector. Attention: Do not install the SIP Connector on an existing Sametime server, because installation will overwrite Sametime server settings. Ultimately, in such a case neither the SIP Connector nor the Sametime server will work. System requirements The system requirements for the SIP Connector are similar to those of a Sametime server. You need at least the following: Windows NT® 4 SP6a or Windows 200 Server/Adv. Server SP 2 Pentium® II 400 Mhz minimum 512 MB Ram minimum; 1 GB recommended 500 MB free disk space 64 MB disk swap space TCP/IP network software installed Installing the SIP Connector After you start the setup program, choose your install language and accept the IBM Licence Agreement. Also choose the drive and directory where you want to install the software, and then press Next. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 7 Figure 1 Sametime server address The window shown in Figure 1 will appear; here you enter the name of the Sametime server that the SIP Connector will connect to. The Sametime must have a Sametime SIP Gateway configured and must be reachable from the Sametime SIP Connector on TCP port 1516. Click Next>. 8 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Figure 2 Name of the Sametime SIP Connector The window shown in Figure 2 will appear; here you enter the name of the Sametime SIP Connector. You can choose whatever name you want, but normally the DNS hostname is used. Keep this name in mind, because you will need it again when you configure the Sametime SIP Gateway. Click Next>. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 9 Figure 3 Summary of install parameters The window shown in Figure 3 will appear, which contains a summary of the installation parameters. Review this information for accuracy, then click Next. The installation process will copy the necessary files to the disk drive. Click Finish on the window that appears next. At this point, installation of the Sametime SIP Connector is complete. After the installation you will find two new Windows services installed: ST Community Launcher, and ST SIP Connector; refer to Figure 4. Figure 4 Installed Sametime Services 10 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Tip: To troubleshoot the install, check the files sametime.log and sametime.ini in the destination location folder. Verifying install Immediately after installing, the SIP Connector is not able to run because you have to configure the Sametime SIP Gateway to allow the SIP Connector to talk to the Gateway. You can check this on your Sametime server in the Sametime.log file. After install, you will find three important files in the installation folder: Sametime.ini, Sametime.log, and Service.ini. We describe these files in the following section: Sametime.ini This file contains the configuration data you entered during install. If needed, you can change the parameters here and restart the SIP Connector: [ExternalCommunity] ConnectorName=itsost4 [Connectivity] VPS_HOST=itso1.cam.itso.ibm.com Sametime.log This file contains information about connection to the Sametime SIP Gateway. If the SIP Connector cannot establish a session to the defined SIP Gateway running on your Sametime server, it logs that event here, and tries again every minute. Services.ini This file contains information about the installed services: [Services] service101=ST Community Launch service102=ST SIP Connector Configuring the SIP Gateway In order to configure the Sametime SIP Gateway on your Sametime server, you have to create or edit documents in the Sametime Configuration Database; see Figure 5 on page 12. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 11 Note: These configuration steps assume that you are utilizing a Sametime 3.1 infrastructure, or a Sametime 3.0 infrastructure with server pack 1.a installed. By default, Sametime 3.0 (without the service pack) does not have the SIP gateway logic included) Figure 5 Sametime Configuration Database Open the Sametime Configuration Database stconfig.nsf with your Notes client; you will reach the screen shown in Figure 6. (You cannot perform this configuration by using the Sametime Web Administration User Interface.) Figure 6 Documents responsible for the SIP Gateway and Connector configuration 12 Connecting Communities Using the Lotus Instant Messaging SIP Gateway During the configuration, you have to create or edit the following documents: Community Gateway Extern Community Community Connector Community Connectivity We explain these documents in more detail in the following sections. The Community Gateway document Open the Community Gateway document by double-clicking it. If this document does not exist, create one by clicking Create-CommunityGateway from the menu bar. With this document, you can switch on or off the communication to external communities for the current Sametime server. To enable the SIP Gateway on this server, you have to set the field Support of external communities to True. The field Convert ID means that your Sametime SIP Gateway converts your internal user ID to your Internet e-mail address when communicating with external communities. This field must be set to True because SIP identifies users by their e-mail address; see Figure 7. Important: You must enable e-mail address translation on every Sametime server in your community, so repeat the preceding steps on every Sametime server in the community. Figure 7 Configuring the Community Gateway document The Extern Community document The Extern Community document describes the communication parameters to an external community and security information. There must be one of these documents for each external SIP community you want to connect to. Open the Extern Community document you want to edit, or create an additional one if necessary by clicking Create-Other-ExternCommunity from the menu bar. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 13 Figure 8 Configuring the Extern Community document As shown in Figure 8, the document contains the following fields: Community Name The Descriptive name for the external community (for example, the name of the organization you want to connect to). Domains One or more domain names associated with the external community. DNS The fully-qualified DNS name of the SIP proxy of the external community. If this field is empty, the SIP Connector performs a DNS lookup and tries to connect to the specified domains. Port The default port for SIP Connections is 5060. Encryption (optional) Data can be sent encrypted to the other community using Transport Layer Security (TLS). This is discussed later in this Redpaper. Certificate distinguish name (optional) You can set up client certificate authentication for connections between the SIP Connectors. This is also discussed later in this paper. The Community Connector document The Community Connector document contains information about the SIP Connector within your community, and configuration parameters of each connector. There must be one of these documents for each SIP Connector in your community. Open the Community Connector document you want to edit, or create an additional one if necessary by clicking Create-CommunityConnector from the menu bar; see Figure 9 on page 15. 14 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Figure 9 Configuration of the Community Connector This document contains the following fields: Connector Name Enter the name for the connector. It must be the name you gave the SIP Connector during the installation. For more information, refer to “Installing the SIP Connector” on page 7. IP The SIP Connector listens on this IP address for the SIP Connection, or on all addresses assigned if this field is empty. Port This is thee port where the SIP Connector listens for SIP connections. The standard for SIP connection is port 5060. TLS IP (optional) This is the IP address that the SIP Connector uses for TLS-encrypted connections.This is discussed later in this paper. TLS Port This is the port where the SIP Connector listens for TLS-encrypted Connections. This is discussed later in this paper. Supported Communities Name(s) of the external communities supported by this SIP Connector. These communities must be defined by the ExternCommunities documents, as described in “The Extern Community document” on page 13. The Community Connectivity document The Community Connectivity document is not only a configuration document for the Sametime SIP Gateway—it also contains information and configuration data regarding community services on the Sametime server. For security reasons, a Sametime server only allows connections from other server applications (like a SIP Connector, WebSphere® Portal Server, or Sametime Everyplace®) if the IP address is known by Sametime. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 15 You tell the Sametime server what other IP addresses it should trust by using the field Community Trusted IPS. Enter the IP addresses of the SIP Connector(s) in your environment in this field to allow them to interact with the Sametime server; see Figure 10. Figure 10 Configuration of Community connectivity After you perform all of these steps, your Sametime environment is SIP-enabled and you will be able to communicate with other users in SIP-enabled communities, or in Sametime communities that have also set up SIP communication. Disabling SIP Gateway functionality To prevent a user from communicating with users in different communities, you can disable SIP Gateway functionality. The easiest way to do this is to prevent the SIP Gateway from making or receiving connections from other communities by editing the Communication Gateway document on the Sametime server. Open the Sametime Configuration database stconfig.nsf with your Notes client. Open the Community Gateway document by double-clicking it. To disable your Gateway, set the field Support of external communities to False. Save the document. Enabling Transport Layer Security (TLS) Exchanging data with partners and customers is very important today. With SIP you extend your connectivity with real-time capabilities like instant messaging or audio/video sessions. Because instant messages can contain very sensitive information (for example, chat text, e-mail addresses), security is very important 16 Connecting Communities Using the Lotus Instant Messaging SIP Gateway especially when you connect your Sametime infrastructure over the Internet with other SIP-enabled communities. To secure your SIP Connections, you can set up Transport Layer Security (TLS) and Client Certificate Authentication for your connections. Important: All procedures in this section must be performed in both your community and the external community to ensure secured encrypted data transmission in both directions. Encrypting SIP traffic Encrypting the traffic between communities with Transport Layer Security (TLS) is the highest level of security you can set up on your Sametime SIP Gateway. All instant messages except audio/video sessions will be encrypted. To enable your infrastructure to send and receive encrypted messages, you have to change the configuration of your SIP Gateways and manage and install the certificates used for the encryption. Managing certificates Transport Layer Security uses certificates for authentication and encryption like the Secure Sockets Layer (SSL) protocol.The certificate management and the certificates have to be installed and configured to enable the SIP Connector to secure the connections. Because every community can establish connections, the SIP Connector is either server or client and needs access to the certificates in order to operate as client or server in TLS connections. Configuring the SIP Gateway for TLS To enable your Sametime SIP Gateway to handle encrypted connections, you must specify the following: The host name and port for encrypted connections The TLS port must be defined in two places. One is in the Community Connector document, where you define on which port your SIP connector will listen for incoming TLS connections. The other is in the “extern” document, where you define on which port the external SIP community is listening, and thus where the SIP connector should attempt to establish a secure connection on. Both sides must be enabled for full two-way encryption. The encryption mode As described earlier, you must configure your Sametime SIP Gateway by editing the Sametime Configuration database “stconfig.nsf” with a Lotus® Notes® client. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 17 Open the Community Connector document. To enable encryption, you have to fill out the fields TLS IP and TLS Port; refer to Figure 11. Figure 11 Setting Host name and port for TLS connections TLS IP This specifies the port on which the SIP Connector listens for encrypted connections from other communities. TLS Port This is the port for encrypted connections. The default port is 5061. Note: If TLS IP and TLS Port are configured, an encrypted connection can be requested by an external SIPConnector even you do not have enabled encryption in your “External Community” document. In other words, if your configuration does not say to communicate via TLS, but the other end requests TLS, and TLS has been configured on your server, then the communication will take place encrypted. After saving this document, open the ExternCommunity document and change the port to the number where the external community connector listens for TLS encrypted connections. The default port is 5061; refer to Figure 12. . Figure 12 Setting the encryption mode for the Gateway 18 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Finally, you have to set the encryption mode of your Gateway; this defines how important encryption is to your gateway. You can choose from three options: Enabled In enabled mode, the SIP Connector first tries to connect to the other communities on the TLS port specified in the CommunityConnector document. If it is not possible to connect on this port, the Connector tries to establish an unencrypted connection on the port configured for that. Mandatory In mandatory mode, the SIP Connector also tries first to connect to the other communities on the TLS port specified in the CommunityConnector document. However, if the encrypted connection fails, there is no fallback to attempt an unencrypted connection. Therefore, no connection is established. Disabled In disabled mode, the Sametime SIP Connector attempts unencrypted connection to the external communities on the port specified during setup of the gateway. The default port is 5060. Installing IBM Key Manager IKeyMAN After the appropriate SIP components have been enabled to utilize TSL encryption, the TLS encryption keys and so forth must then be configured and installed on the server so that encryption can actually take place. In this Redpaper, we describe the usage and configuration of the IBM tools required to set up TLS in a Microsoft® Windows environment. In order to manage certificates you first have to install the IBM Key Manager known as IKeyMan on your SIP Connector machine. Because the Sametime SIP Connector does not come with an IBM-JRE environment, you first have to make some configuration changes on your Sametime server and then copy the IBM-JRE from the Sametime server machine to the SIP Connector machine. The changes we made can also be used for SSL-enabled LDAP connections on your Sametime server. Adding provider to the file java.security On your Sametime server, open the file java.security in the directory <Sametime server install directory>\ibm-jre\jre\lib\security. Add the line security.provider.5=com.ibm.spi.IBMCMSProvider to the file, as shown in Example 1 on page 20. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 19 Example 1 Adding provider to java.security file # List of providers and their preference orders (see above): security.provider.1=com.ibm.jsse.IBMJSSEProvider security.provider.2=com.ibm.crypto.provider.IBMJCE security.provider.3=com.ibm.spi.IBMCMSProvider security.provider.4=com.ibm.security.jgss.IBMJGSSProvider security.provider.5=com.ibm.security.cert.IBMCertPath Copy directory IBM-JRE from Sametime server to SIP Connector Copy the directory IBM-JRE and all subdirectories from <Sametime server install directory>\ibm-jre\ to your SIP Connector machine in the folder where you installed the SIP Connector, like c:\sip; refer to Figure 13 on page 20. Delete gskikm.jar from the folder <SIP install directory>\ibm-jre\jre\lib\ext\gskikm.jar. Figure 13 Copied IBM-JRE on SIP Connector Install GSkit Create a directory GSKit on the SIP Connector machine. Copy the content from the GSKit directory from Sametime 3.1 Server CD 2 to the directory GSKit on your SIP Connector. Open an command window, switch to the GSKit folder, and then type: setup.exe GSKit c:\sip - s -f1setup.iss. This performs a silent installation of the GSKit into the SIP install directory, in this case c:\sip. To verify the installation, check the following: Registry entry HKLM\Software\IBM\GSK6 has been created The directory GSK6 exists in c:\sip\ibm\ Setting the Java™ environment variable Open System Properties by right-clicking My System on the desktop. Create a new System Variable under Advanced - Environment Variables. Add JAVA_HOME with the value c:\<SIP Install PATH>\ibm-jre\jre; refer to Figure 14 on page 21. 20 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Figure 14 Adding System variables Creating the key database The database is used to store the trusted root and server certificates required for the TLS handshake on your Connector. Start the IKeyMan program “gsk6ikm.exe” on your machine from <SIP Install Path>\ibm\gsk6\bin. From the menu bar, select Key Database File - New. As shown in Figure 15 on page 22, complete the fields as follows: Key database type Scroll down and select CMS. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 21 File Name: Enter the file name; it must be key.kdb. Location: You must enter the installation folder of the SIP Connector; in our case, it is C:\SIP. Figure 15 Creating Key database After that, you have to fill out a form. Type in your password twice and select the check box Stash the password in a file, then confirm by pressing OK. You will receive the confirmation shown in Example 16. Figure 16 Password encryption confirmation The password is needed if you add or remove certificates, or create certificate requests. Choose trusted root certificate Next, you need to identify the signer certificate you will use as the trusted root certificate. The database created before contains several signer certificates, by default. If you prefer to use a different one, you can request another signer certificate from the Certificate Authority (CA). Follow the instructions given on the CA’s Web site about how to request and obtain a signer certificate. Then add the signer certificate to your key database by using the Import feature of the IBM Key Manager. Figure 17 on page 23 shows an example of included trusted roots. 22 Connecting Communities Using the Lotus Instant Messaging SIP Gateway In our testing, we used an internal Domino™ as the Certificate Authority. Refer to the Domino product documentation for details about how to set up Domino as a Certificate Authority and create signer certificates. Figure 17 Example of included trusted roots Request a server certificate To obtain a certificate from your chosen signer, you have to create a server certificate request and submit this to the CA. To create a request, switch the Key database content drop down list to Personal Certificate Requests and click New. Fill out the form Create New Key and Certificate Request, as shown in Figure 18 on page 24. You must complete the following fields: Key Label Enter a name that will identify the certificate inside the IBM Key Manager. Key Size Switch to 1024 for highest level of encryption Common Name This must be the fully-qualified DNS name of the machine where your SIP Connector is installed. Organization Enter the name of your organization. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 23 County Enter the county in which the server is located. Figure 18 Server certificate request form Specify a directory path and file name, and then click OK to save the certificate request as a text file. As shown in Figure 19, the open request will be shown in the list of Personal Certificates Requests. Figure 19 List of open certificate requests After creating the request, you have to submit the certificate to the CA. This can be done by sending the files to the CA or by pasting the content of the request file to a field on the Web site of the CA. Follow the instructions given by your 24 Connecting Communities Using the Lotus Instant Messaging SIP Gateway provider regarding how to submit the request and how to retrieve the certificate after signing. As mentioned in “Choose trusted root certificate” on page 22, Domino can also act as a CA. Therefore you can create you own certificates, especially for internal use, and thereby avoid paying the fee that commercial CAs charge for certificates. Refer to Domino documentation for details about how to sign certificate requests with the Domino CA. Import server certificate into key database After receiving the signed certificate from the CA, you must import the file into your key database on your SIP Connector machine. If not already done, switch the Key database content drop down list to Personal Certificates, and then click Receive.... Fill out the following fields in the window shown in Figure 20: Data type Use the default Base64-encoded ASCII data. Certificate file name: Enter the name of the file that contains your signed certificate. Location Enter the drive and directory where your certificate is located; in our case, it is C:\SIP\. Figure 20 Import a signed server certificate After importing the certificate, you can see this and all other installed signed server certificates in the view “Personal Certificates” of your key database, as Connecting Communities Using the Lotus Instant Messaging SIP Gateway 25 shown in Figure 21. Figure 21 List of installed server certificates Click View/edit to see the certificate details; see Figure 22. Figure 22 Server certificate details After the certificate has been imported, your SIP Connector can act as server in a TLS handshake. If your organization or company has more than one SIP Connector, you need to repeat all these steps for every connector. 26 Connecting Communities Using the Lotus Instant Messaging SIP Gateway SIP Connector operates as a client in a TLS handshake In order for your SIP Connector to establish an encrypted connection to another SIP-enabled instant messaging environment, the connector operates as a client in a TLS handshake. The SIP “connector” from the other community sends its SSL server certificate to your connector. The SSL certificate is needed to negotiate encryption levels and ensure the encryption of the exchanged data. The server certificate can only be used if your key database contains a “trusted root” certificate signed by the same CA as the SSL certificate sent to your connector—or a copy of the signed server certificate sent is by the other community. Normally the key databases on both sides will have the necessary trusted root certificates installed, and therefore no further action needs to be taken. However, when this is not the case (for example, when Domino is used as the CA), then you must import a copy of the server certificate of the other community. The Key Management of the community has to export the server certificate from their key database and sent it in a secure way (for example, on a floppy disk and using registered mail) to you. After the import, an encrypted connection can be established between these two communities. Using client certificate authentication Client certificate authentication is an optional procedure that requires an SIP Connector to authenticate when connecting to another community. Client certificate authentication verifies the identity of the connecting system through certificates stored in the key database. As mentioned, client certificate authentication is optional; note the following: If you choose to receive client certificates from external communities that connect to your system, you can configure your SIP Connector to request them. If client certificates are requested by other communities, then you must configure your SIP Connector to send one out. Client certificate required by other community In order for the SIP Connector to send out a client certificate for authentication, the connector must have access to a signed certificate. This certificate is the same certificate already generated in earlier procedures for use as a “server” certificate. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 27 Note: There is no difference between the server certificates previously described and the client certificates described in this section—it is simply a matter of at which point the TLS handshake is utilized. Requiring client certificate from another community You can set up your SIP Connector to ask for a client certificate when an external community tries to connect. Client certificate authentication can be configured on the connection level. That means you can decide, for every external community, whether client certificate authority is necessary or not. To enable this functionality, you have to: Edit the Extern Community document Check access to the certificates The Extern Community document Open the Sametime Configuration database stconfig.nsf with your Notes client; refer to Figure 23. Figure 23 Sametime Configuration Database Open the Extern Community document that you want to edit. In the field Certificate distinguish Name, enter the name associated with the client certificate used by the other community. The name must be entered in canonical format, like “cn=servername, ou= organizational unit, o=organization”; refer to Figure 24. If you do not know the name of the certificate, contact the administrator of the other community. 28 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Figure 24 Configuring the Extern Community document Note: If you have connections to more than one external community, you have to do this for every community where you want to enable client certificate authority. Check access to the necessary certificates To authenticate external SIP Connectors, you must have a trusted root certificate signed by the same CA as the client certificate, or a copy of the client certificate imported in your key database. Refer to “Enabling Transport Layer Security (TLS)” on page 16 for more information. The end-user experience In this section, we describe the overall user experience for users communicating via SIP Connector. In this environment, Sametime users can communicate with external users through instant messages and audio/video sessions. However, other Sametime functionality (for example, sending files) is not supported. To add external users to your buddy list, you must enter the external e-mail address of the other person. Functionality supported with external user Add and remove external users. Privacy settings. Event-based alerts for external users. Send and receive instant messages. Start audio and audio/video session or receive invitations from external. Functionality not supported with external user External users cannot attend Sametime meetings. No announcements. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 29 Full range of online/offline statuses are only supported with external Sametime communities. For other SIP-enabled communities, only the online/offline status of a user is supported. No directory services to search for external users. No file transfer. Only one-to-one chat or audio/video session supported. You cannot invite another to a chat or audio/video session with external user. Audio/video session with external users do not include chat. Adding an external user to a buddy list To add an external user, select People - Add in your connect client. In the new dialog window, switch from Sametime to External and enter the e-mail address and a nickname, if desired. Select the group you want add the user to and click Add; refer to Figure 25 on page 30. . Figure 25 Adding an external user 30 Connecting Communities Using the Lotus Instant Messaging SIP Gateway The external user and the user’s online status will appear in the group you selected. External users are marked with a special symbol (the normal icon and a globe) for presence awareness inside the Sametime Connect client. The special presence awareness statuses such as “I Am Away” or “Do Not Disturb Me” will only be exchanged and displayed between two connected Sametime communities interacting via SIP. If non-Sametime environments are involved, only the general online or offline status will be displayed; refer to Figure 26 on page 31. Figure 26 Buddy list with external participants Connecting Communities Using the Lotus Instant Messaging SIP Gateway 31 Chat with an external user To initiate a chat with an external user, follow the same steps as for a Sametime user. Double-click the user’s name and the chat window appears; refer to Figure 27 on page 32. Figure 27 Chat with an external user As shown in Figure 27, when you exchange instant messages with external users a globe appears in the left lower corner, indicating that your communication partner is an external user. Important: A chat with external users appears unsecured in the chat UI (note the unlock symbol in the lower right corner), even when you use encryption with TLS. This is because Sametime does not know whether the external community encrypts the traffic internally on its end. Therefore, the unsecured symbol is always been shown. Example scenarios In this section, we describe the environment that we developed to demonstrate SIP connections in a test lab, and what our test infrastructure looked like. We define three setup scenarios, starting with two SIP communities connected, then adding another server to this two-community setup, and ending with three SIP communities connected. For each scenario, we explain what each setup is used 32 Connecting Communities Using the Lotus Instant Messaging SIP Gateway for, describe who can connect to whom, and tell you how you can extend your setup and control it. Important: Our setups only involved Sametime communities. In cases where other SIP-enabled instant messaging environments are involved, then other tasks may have to be performed in order to get everything up and running. To start, we set up three Sametime communities, as follows: Community A - ITSO-A A Sametime community with two Sametime servers using Domino Name and Address book for authenticating users and directory services (although in our first scenario, we will only use one of the servers in this community). Community B - ITSO-B A community with only one Sametime server. The server uses LDAP provided by an IBM Directory Server 4.1 for authentication and directory services. Community C - ITSO-C A single server community with Domino directory services like Community A. Connecting two Sametime communities Connecting two Sametime communities is the easiest way to expand your community. As described earlier, you need a Sametime SIP Connector and a configured Sametime SIP Gateway in each community. Figure 28 illustrates this two-community architecture. Community A "ITSO-A" Client A Port Port 1533 1516 Sametime 3.1 Server & SIP-Gateway Community B "ITSO-B" Internet SIP Connector Port 5060 TLS encryption optional (Port 5061) Port Port 1516 1533 SIP Connector Sametime 3.1 Server & SIP-Gateway Client A* Figure 28 Basic infrastructure to connect two Sametime communities Connecting Communities Using the Lotus Instant Messaging SIP Gateway 33 After connecting, users from Community A, such as Client A, can exchange instant messages and establish audio/video sessions with users in Community B, such as Client A*, even if they have different directory services (such as Domino and LDAP, used in this example setup). Adding a second Sametime server to your community In many cases your Sametime community will contain more than one Sametime server (because of having a huge number of users, or having locations with slow network connections between them, or in order to separate community services from meeting services). When you add a Sametime server to your infrastructure with an SIP connection as described in the previous scenario, there are impacts for users in both communities, as described here: User on Client A in Community A This user can see presence awareness from users on other servers in the user’s community (like users using Client B), and can also see the user using Client A* from the external Community B (via SIP). User on Client B in Community A This user can see presence awareness from users on other servers in the user’s community (like users using Client A). However, this user cannot see any external users from any other community, because this user’s Sametime server has no configured Sametime SIP Gateway. User on Client A* in Community B This user can see the users on both Client A and Client B from the other community. Thus, this user could send Client B a message, but client B would be unable to respond. 34 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Community A "ITSO-A" Community B "ITSO-B" Sametime 3.1 Server & SIP-Gateway Port Port 1533 1516 Client A Port 1516 Port Internet SIP Connector Port 5060 TLS encryption optional (Port 5061) Port Port 1516 1533 SIP Connector Sametime 3.1 Server & SIP-Gateway Client A* 1533 Client B Sametime 3.1 Server Figure 29 Sametime community with more than one server To resolve these issues, you have to create/edit the Communication Gateway document on the new Sametime server to enable its SIP Gateway. To do so, open the Sametime Configuration database stconfig.nsf with your Lotus Notes client; refer to Figure 30. Figure 30 Sametime Configuration database Open the Community Gateway document by double-clicking it. If a document does not yet exist, you can create one by clicking Create-CommunityGateway from the menu bar. Set the fields Support external communities and Convert ID to True, and then save the document; refer to Figure 31. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 35 Figure 31 Configuring the Community Gateway document Connecting your infrastructure to a second external community If you open your community services for external communication to partners or customers, you will often have more than one external community connected. In our case, this scenario involves expanding our SIP environment to support another external community. However, it is important to note that you could use a separate SIP Connector for this new connection, instead of extending the roles/duties of the existing SIP connector. Community A "ITSO-A" Client A Port Port 1533 1516 Sametime 3.1 Server & SIP-Gateway Community B "ITSO-B" Port 5060 TLS encryption optional (Port 5061) Internet SIP Connector Port Port 1533 1516 Sametime 3.1 Server & SIP-Gateway SIP Connector Figure 32 Connecting three communities 36 Port 1533 SIP Connector Community C "ITSO-C" Client A** Port 1516 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Sametime 3.1 Server & SIP-Gateway Client A* In this infrastructure, shown in Figure 32, a user on Client A from Community A can send instant messages to a user on Client A* in Community B and to a user on Client A** in Community C. To connect to the Community C over SIP, you have to create/edit the following documents on your Sametime SIP Gateway. Extern Community document Create an Extern Community document for the new community; refer to Figure 33 on page 37. Figure 33 Configuring the Extern Community document Community Connector document Open the Community Connector document in the database and add the community you want to connect to the field Supported Communities; refer to Figure 34. Figure 34 Add a community to the Community Connector Save the document. After restarting your Sametime server, you will have connections to two external SIP-enabled communities: ITSO-A and ITSO-C. Connecting Communities Using the Lotus Instant Messaging SIP Gateway 37 Summary In this Redpaper, we introduced the SIP capabilities of Lotus Sametime. We discussed various deployment options and installation/configuration and general usage aspects, and provided several sample scenarios for using SIP capabilities. This paper should help you begin to leverage SIP to extend and connect your Sametime infrastructure(s). For details on the latest Lotus Instant Messaging products and capabilities, visit: http://www-306.ibm.com/software/lotus/collaboration/ To read a Lotus Developer Domain article that covers Sametime SIP capabilities, visit: http://www-10.lotus.com/ldd/today.nsf/lookup/SIP To read the latest Sametime product documentation (including SIP details), visit: http://www-10.lotus.com/ldd/notesua.nsf/find/sametime For other IBM Redbooks™ that cover Lotus Instant Messaging technologies, visit: http://publib-b.boulder.ibm.com/redbooks.nsf/portals/Lotus The team that wrote this Redpaper This Redpaper was produced by a team of specialists from around the world working at the International Technical Support Organization, Cambridge Massachusetts. Heiko Mueller is an IBM PreSales IT Specialist working for IBM Germany. His expertise is in Lotus collaborative technologies, and he is the Lotus mobile & wireless technology specialist for the IBM Europe central region sales organization. William Tworek is a Project Leader with the International Technical Support Organization, working out of Westford, Massachusetts. He provides management and technical leadership for projects that produce IBM Redbooks on various topics involving IBM and Lotus Software technologies. 38 Connecting Communities Using the Lotus Instant Messaging SIP Gateway Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces. © Copyright IBM Corp. 2004. All rights reserved. 39 Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Domino™ Everyplace® IBM® iSeries™ Lotus Notes® Lotus® Notes® Redbooks™ Redbooks (logo) Sametime® WebSphere® ™ The following terms are trademarks of other companies: Intel, Intel Inside (logos), and Pentium are trademarks of Intel Corporation in the United States, other countries, or both. Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Other company, product, and service names may be trademarks or service marks of others. 40 Connecting Communities Using the Lotus Instant Messaging SIP Gateway