Skip to main content link. Accesskey S
  • Help
  • IBM Logo
  • IBM Sametime wiki
  • All Wikis
  • All Forums
  • THIS WIKI IS READ-ONLY. Learn more...
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • IBM Redbooks
  • API Documentation
Search
Community Articles > Integration with other products > Meeting Rooms widget for IBM Connections
  • Share Show Menu▼
  • Subscribe Show Menu▼

About the Original Author

Click to view profileIBM contributorJason Cheung
Contribution Summary:
  • Articles authored: 1
  • Articles edited: 1
  • Comments Posted: 2

Recent articles by this author

Meeting Rooms widget for IBM Connections

The Meeting Rooms Widget The Meeting Rooms widget integrates Connections Communities and Sametime Meetings. Owners of a Community can create a meeting room, and members of the Community can view a list of available meeting rooms and join those meetings. When creating a meeting room, the widget ...
Community articleMeeting Rooms widget for IBM Connections
Added by IBM contributorJason Cheung | Edited by IBM contributorMary Jrolf on December 6, 2013 | Version 26
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: 9.0, Connections

The Meeting Rooms Widget

The Meeting Rooms widget integrates Connections Communities and Sametime Meetings. Owners of a Community can create a meeting room, and members of the Community can view a list of available meeting rooms and join those meetings. When creating a meeting room, the widget provides fields to configure the room.

How does the Meeting Rooms Widget work?

The widget sends HTTP requests to the Sametime Meetings server. The HTTP requests are handled by the Meeting Server's ReST API. The API allows the widget to retrieve and create meeting rooms from within the Community page.

Supported Versions

NameVersion
IBM WebSphere Application Server7.7.0+
IBM Connections4.0+
IBM Sametime Meeting Server8.5.2 IFR1+
Enabling Single Sign-On

The Sametime Meetings API requires authentication before releasing data, therefore, single sign-on must be enabled between Connections and the Sametime Meetings Server. Complete these procedures to enable single sign-on:
  1. Export LTPA tokens from the Sametime Meetings server.
  2. Import those LTPA tokens into the Connections server.
  3. Enable single sign-on.
  4. Configure LDAP on WebSphere.

For detailed instructions on enabling single sign-on, see this topic: Configuring single sign-on with an LTPA token on IBM WebSphere and IBM Domino platforms.

Widget Installation

Prerequisites

Install these servers prior to completing this procedure to configure the widget:

  • IBM Connections server with Communities, News, Common, WidgetContainer and Profiles applications
  • IBM Sametime Sametime Meeting Server

Unpacking the widget files

The widget files are available from the IBM Collaboration Solutions Catalog on Greenhouse. Download the widget files to the computer hosting the Connections server.

Extract the widget files.

After the widget files are downloaded and extracted, complete these steps:

  1. Place jar files, that is, the files with extension .jar, in this directory:
    /optionalLibraries/Meeting Rooms SPI.
    For example: C:/IBM/IBMConnections/WebSphere/AppServer/optionalLibraries/Meeting Rooms SPI.
  2. Place all other files in this directory:
    /profiles/installedApps//Communities.ear/comm.web.war/MeetingRoomsWidget.

Downloading the Sametime Meetings Remote Client SDK

The synchronization of Community owners to the meeting rooms owner list is handled by the MeetingRoomsMembershipSynchroniser.jar. This jar has dependencies on libraries contained within the Sametime Meetings Remote Client SDK. To include the required libraries, complete these steps:

  1. Download the Sametime Meetings Remote Client SDK from the IBM developerWorks website
  2. Extract the contents of the zip to the machine hosting the Connections server
  3. Copy the following jars from the 'lib' directory into /optionalLibraries/Meeting Rooms SPI:
commons-logging-1.1.jar
httpclient-4.0.1.jar
httpcore-nio-4.0.1.jar
httpmime-4.0.1.jar
meeting.client.core.jar

Adding the widget to the widget definition file

Instructions for modifying the widgets-config.xml file are located here: IBM - Using the widgets-config.xml file for Communities.

You must insert a definition for the Meeting Rooms widget into the widgets-config.xml file. Use this definition, but note that you need to customize some values. See the table at the end of this definition for a list of values that require customizing.



 <widgetDef defId="Meeting Rooms" primaryWidget="false" modes="view fullpage" url="/communities/MeetingRoomsWidget/MeetingRoomsWidget1.xml" 
    uniqueInstance="true" iconUrl="/communities/MeetingRoomsWidget/meetings-icon.jpg">
    
    <itemSet>
        <item name="sametimeMeetingsServerUrl" value="https://meetings.ibm.com:9444" />
        <item name="widgetFilePath" value="/communities/MeetingRoomsWidget/" />
    </itemSet>

</widgetDef> 

Customize these values to match your configuration:

ValueDescription
urlThe MeetingRoomsWidget1.xml file, including the path.
iconUrlThe meetings-icon.jpg file, including the path.
sametimeMeetingsServerUrlThe address and port number of your Sametime Meeting server.
widgetFilePathThe path to the folder where the widget files are stored.

Configuring the Ajax proxy

The Ajax proxy allows requests to be made across domains. Since the Sametime Meetings application resides on its own server, not on the Connections server, requests should be made through the Ajax proxy.

The WebSphere Application Server contains a modifiable proxy configuration file, proxy-config.tpl.


To modify the file, see this procedure: Configuring the Ajax proxy.

The proxy must allow the actions, cookies, and headers as shown.

Note: You must modify the url value according to your own configuration.



 
<proxy:mapping contextpath="/http/*"/>
<proxy:mapping contextpath="/https/*"/>

<proxy:policy url="<protocol>://<sametime_meetings_domain>:<port_number>/*" acf="none">
  <proxy:actions>
    <proxy:method>GET</proxy:method>
    <proxy:method>HEAD</proxy:method>
    <proxy:method>POST</proxy:method>
    <proxy:method>PUT</proxy:method>
    <proxy:method>DELETE</proxy:method>
  </proxy:actions>
  <proxy:cookies>
    <proxy:cookie>LtpaToken</proxy:cookie>
    <proxy:cookie>LtpaToken2</proxy:cookie>
    <proxy:cookie>JSESSIONID</proxy:cookie>
  </proxy:cookies>
  <proxy:headers>
    <proxy:header>X-ST-CSRF-Token</proxy:header> 
    <proxy:header>User-Agent</proxy:header>
    <proxy:header>Accept.*</proxy:header>
    <proxy:header>Content.*</proxy:header>
    <proxy:header>Authorization.*</proxy:header>
    <proxy:header>If-.*</proxy:header>
    <proxy:header>Pragma</proxy:header>
    <proxy:header>Cache-Control</proxy:header>
    <proxy:header>X-Update-Nonce</proxy:header>
    <proxy:header>WWW-Authenticate.*</proxy:header>
    <proxy:header>Access.*</proxy:header> 
  </proxy:headers>
</proxy:policy> 


The url value should be formatted as: protocol://sametime_meetings_domain:port_number/*
For example: http://myMeetingsServer.ibm.com:9080/*
or
https://myMeetingsServer.ibm.com:9443/*

Note: if you have set up the widget in Connections, and you receive a error message with the 403 status code, it generally means that the Ajax Proxy settings are incorrect. To troubleshoot, refer to the error code reference at the bottom of this document.

Configuring Secure Socket Layer (SSL) communication for a network deployment environment

If you wish to use SSL communication, the Sametime Meetings server must retrieve all Connections certificates. In WebSphere for the Sametime Meetings server, follow the steps in this link: Configuring Secure Socket Layer (SSL) communication for a network deployment environment.

Installing the Membership Synchronizer in WebSphere

Community owners are mapped to be managers of meeting rooms. This mapping of Community owners to meeting room managers is done by the MeetingRoomsMembershipSynchroniser.jar file. When an owner is added to, or removed from a Community, the membership synchronizer updates must be installed into WebSphere.

Creating a shared library


For instructions on how to create a shared library, see this article: Creating shared libraries.

In the Classpath field, enter the name of the jar files, including the path. The variable ${WAS_INSTALL_ROOT} is configured by default, and is equivalent to C:\IBM\WebSphere\AppServer. Each jar file must be on a new line:

${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/MeetingRoomsMembershipSynchroniser.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/commons-logging-1.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/httpclient-4.0.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/httpcore-nio-4.0.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/httpmime-4.0.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/meeting.client.core.jar

Deploying the event handler



Instructions to deploy the event handler on the Connections server are described in this article: Deploying an event handler.

Adding the shared library to the News module:
  1. Log in to the Integrated Solutions Console as the WebSphere administrator.
  2. In the navigation tree, click Applications->Application Types->WebSphere enterprise applications->News->References->Shared library references.
  3. Select News.
  4. Click Reference shared libraries.
  5. Select the shared library you created.
  6. Click the right arrow to add the shared library to the Selected field.
  7. Click OK.
  8. Click OK again.
  9. At the top of the page, click Save directly to the master configuration.

Registering the event handler with Connections:
  1. Open the events-config.xml file, usually located at: /profiles/AppSrv01/config/cells//LotusConnections-config.
  2. Find the tag .
  3. Add this code within the tag.
 <postHandler enabled="true" invoke="ASYNC" name="MeetingRoomsMembershipSynchroniser" 
    class="meetings.MeetingRoomsMembershipSynchroniser">

    <subscriptions>
        <subscription source="COMMUNITIES"  type="MEMBERSHIP" eventName="*"/>
    </subscriptions>

</postHandler> 

Supplying credentials

The membership synchronizer makes HTTP requests to the Sametime Meetings server on behalf of a user, therefore, it must use credentials. Use the Java Authentication and Authorization Service for these credentials.

Complete these steps to create a new login resource.

  1. Log in to the Integrated Solutions Console as the WebSphere administrator.
  2. In the navigation tree, click Security->Global security->Java Authentication and Authorization Service->J2C authentication data.
  3. For compatibility with earlier releases, deselect Prefix new alias names with the node name of the cell. If you are deselecting this, save the changes, synchronize the appropriate node, and restart the application server, before continuing to step 4.
  4. Click New.
  5. In the alias field, enter meetingsAdmin. This setting is case-sensitive and must be this exact value.
  6. Enter the username and password for the master user of Sametime Meetings.
  7. Click OK, resynchronize the appropriate node, and restart the application server.

Now that the master credentials have been configured, you supply the membership synchronizer with property values unique to your setup of Connections and Sametime Meetings.
Use WebSphere variables to include the properties in the membership synchronizer.
  1. Log in to the WebSphere Integrated Solutions Console as the WebSphere administrator.
  2. Click Environment->WebSphere variables.
  3. Select the appropriate scope from the drop-down list. View the page's help for more information on scope.
  4. Click New.
  5. Set the Name to MEETINGS_URL.
  6. Set the Value to the link to your Sametime Meetings server, including protocol, domain, and port number.
  7. Save the changes, resynchronize the appropriate node, and restart the application server.
​
Note: In WebSphere, the node must be fully resynchronized and the WebSphere application server must be restarted for all changes to take effect.

Using the Meeting Rooms Widget



Creating a new meeting room

As a Community owner, you can create a meeting room.
  1. Click New Meeting Room...
  2. Enter the room name.
  3. Configure the room to your preference.
  4. Click Save.

Entering a meeting room

Any member of the Community can access meeting rooms by clicking the meeting room name, or in the full page mode, by clicking the Enter Meeting Room link.

Sorting meeting rooms

Sort the list of meeting rooms in full page mode according to heading. Click the Meeting Room Name, Owner, Participants, or Last Accessed header to sort by that field.

Copying a link to a meeting room

To quickly copy the link to a meeting room, click Copy link, and then use the keyboard shortcut CTRL+C to copy the link to your computer. Click the red X to close the copy link section.

Managing meeting rooms

As a Community owner, you see the Manage Meeting Rooms button in the full page mode of the widget. Click Manage Meeting Rooms to be directed to the Meeting Room Center, where you can modify and delete chat rooms.

Installation Troubleshooting



Internet Explorer in protected mode

Using Internet Explorer in protected mode causes single sign-on to break between Connections and the Sametime Meetings Server. Members are prompted to log in when attempting to view a meeting room, and owners are not able to create a new meeting room. To resolve the problem, turn off protected mode in Internet Explorer.

Debugging the membership synchronizer

When the membership synchronizer fails, an error message is logged to the log files. View these error messages at: /profiles/AppSrv01/logs//SystemOut.log.

Limitations and Known Issues

No group support

The widget does not support group synchronization between Communities and meeting rooms.

No room owner changes

When a room is created, the creator of the room is assigned as the owner of the room. By default, a room owner cannot be changed. In Connections, if a Community owner leaves the Community, the meeting room continues to exist, and the owner can not be changed. The workaround is to ask an administrator to delete the room from the Meeting Room Center.

Error Code Reference



001
Failed to create meeting room.
Possible causes:
1. Your sametimeMeetingsServerUrl value is incorrect in widgets-config.xml.
2. Your X-ST-CSRF-Token is invalid. You may not be in the Meetings LDAP.
3. Your Sametime Meetings server is not live.
002
Failed to retrieve meeting rooms.
Possible causes:
1. Your sametimeMeetingsServerUrl value is incorrect in widgets-config.xml.
2. Your X-ST-CSRF-Token is invalid. You may not be in the Meetings LDAP.
3. Your Sametime Meetings server is not live.
003
Failed to get Community members using the Communities API.
Possible cause:
Communities API is not responding as expected.
004
You are no longer authorized to create a meeting room.
Possible causes:
  • You were previously an owner of the Community, and now you are a member.

403
Failed to send a request through the Ajax proxy.
Possible causes:
  1. The URL value in the proxy policy is incorrect.
  2. The incorrect proxy policy is being used.

Troubleshooting:
To test if the Ajax proxy is the cause of the 403 error code, move the policy in the file, so that it is the first policy. Then change the URL value to "*" - this means that it accepts all URLs for cross-domain requests. In WebSphere, the node must be fully re-synchronised and the application server must be restarted, for changes to take effect.

Solution:
Use the Meetings server URL with an asterisk at the end. Example: url="http://myMeetingsServer.ibm.com:9080/*".

412
Failure to create a meeting room.
Possible cause:
Your X-ST-CSRF-Token is invalid. Connections has set the HTTPONLY flag.
Workaround for error 412:

Caution: Only implement this workaround if you understand its effects and consequences.
  1. Log in to the Integrated Solutions Console as the WebSphere administrator. (The URL ends with: "/ibm/console").
  2. Click Servers->ServerTypes->WebSphere application servers->[your server]->Web container settings->Web container->Session management.
  3. Click Enable cookies hyperlink.
  4. Ensure that the Set session cookies to HTTPOnly to help prevent cross-site scripting attacks option is NOT selected.
  5. Click Apply.
  6. Resynchronize the nodes, and restart the WebSphere application server.
Other error codes
You may see other error codes which are standard HTTP status codes. Open the browser's developer tools to investigate these issues.
expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (30)
collapsed Versions (30)
Version Comparison     
VersionDateChanged by              Summary of changes
30May 9, 2016, 5:43:23 AMGerard Prunty  
29Feb 15, 2016, 10:50:02 AMJason Cheung  
28Dec 10, 2015, 5:24:58 AMJason Cheung  
27Dec 6, 2013, 1:28:59 PMMary Jrolf  IBM contributor
This version (26)Dec 6, 2013, 1:28:51 PMMary Jrolf  IBM contributor
25Nov 22, 2013, 10:39:16 AMJason Cheung  IBM contributor
24Nov 22, 2013, 10:38:14 AMJason Cheung  IBM contributor
23Nov 8, 2013, 4:20:06 AMJason Cheung  IBM contributor
22Nov 4, 2013, 6:46:01 PMMary Jrolf  IBM contributor
21Nov 1, 2013, 7:42:19 AMJack Downing  IBM contributor
20Oct 31, 2013, 2:19:17 PMJason Cheung  IBM contributor
19Oct 31, 2013, 2:10:59 PMJason Cheung  IBM contributor
17Oct 31, 2013, 2:00:05 PMJason Cheung  IBM contributor
17Oct 31, 2013, 2:10:39 PMJason Cheung  IBM contributor
16Oct 31, 2013, 1:48:45 PMJason Cheung  IBM contributor
15Oct 31, 2013, 1:46:30 PMJason Cheung  IBM contributor
14Oct 31, 2013, 1:45:00 PMJason Cheung  IBM contributor
12Oct 31, 2013, 11:31:08 AMMary Jrolf  IBM contributor
12Oct 31, 2013, 1:43:49 PMJason Cheung  IBM contributor
11Sep 27, 2013, 2:09:05 PMMary Jrolf  IBM contributor
9Sep 27, 2013, 2:08:39 PMMary Jrolf  IBM contributor
8Sep 27, 2013, 2:06:46 PMMary Jrolf  IBM contributor
7Sep 27, 2013, 2:04:39 PMMary Jrolf  IBM contributor
7Sep 27, 2013, 2:05:24 PMMary Jrolf  IBM contributor
5Sep 27, 2013, 2:04:32 PMMary Jrolf  IBM contributor
4Sep 27, 2013, 2:01:44 PMMary Jrolf  IBM contributor
3Sep 27, 2013, 1:57:26 PMMary Jrolf  IBM contributor
2Sep 27, 2013, 1:55:40 PMMary Jrolf  IBM contributor
1Sep 27, 2013, 1:41:41 PMMary Jrolf  IBM contributor
1Sep 27, 2013, 1:51:21 PMMary Jrolf  IBM contributor
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedHelpAbout
  • IBM Collaboration Solutions wikis
  • IBM developerWorks
  • IBM Software support
  • Twitter LinkIBMSocialBizUX on Twitter
  • FacebookIBMSocialBizUX on Facebook
  • ForumsLotus product forums
  • BlogsIBM Social Business UX blog
  • Community LinkThe Social Lounge
  • Wiki Help
  • Forgot user name/password
  • About the wiki
  • About IBM
  • Privacy
  • Accessibility
  • IBM Terms of use
  • Wiki terms of use