Wednesday, December 7, 2011

Upgrade Instructions for Instant Measurements and Reporting Suite



Upgrading of Instant Measurements and Reporting Suite for Queue Manager involves updating the design of 2 Lotus Notes databases

Instant Measurements and Reporting (ITQMeasure.nsf)
Instant Queue Logs (ITQLogs.nsf)

Instant Measurements and Reporting

Log on to Lotus Domino Administrator with the Administrator’s ID or an ID that has rights to refresh the productive database.

Browse to the server which hosts the templates for Instant Measurements and Reporting Suite.

‘File à Open Server’ from the menu


Delete any existing older templates (ITQMeasure_Vx.xx.ntf) and download the latest template from the link provided to Lotus\domino\Data directory.

The next step is to sign the downloaded template.



Right-click on the Measurements and Reporting Suite template after finding it from the list and click ‘Sign’






The next step is to refresh the production Instant Measurements and Reporting database.

Locate the Instant Measurements and Reporting database in the workspace of the Lotus Notes client, Right-click on it, select ‘Database à Refresh Design…’



Click on ‘Yes’ on the next prompt tp proceed with the refresh of the design.




After the design refresh is complete, double click the on database icon to verify the version. It should be same as the version specified in the downloaded template file name. Alternatively you can also find out by looking at the About Database document.

After verifying the version we will proceed with the replace of config documents from the template.

Select Instant Measurements and Reporting database in the workspace of Lotus Notes client, click ‘view à Go To…’






Select ‘Chart Control Docs’ and click ‘OK’ to open the ‘Chart Control Docs’ view


 Select all documents in the view by clicking on ‘Edit à Select All’


After all the documents has been selected then click on ‘Edit à Delete’ and then press ‘F9’ to delete the documents in the view



Locate and select the latest Instant Measurements and Reporting Suite template that has been downloaded in the workspace of Lotus Notes client.


click ‘view à Go To…’




Select ‘Chart Control Docs’ and click ‘OK’ to open the ‘Chart Control Docs’ view



Select all documents in the view by clicking on ‘Edit à Select All’



Click on ‘Edit à Copy’ to copy the selected documents



Browse to opened Instant Measurements and Reporting production database and click on ‘Edit à Paste’ to paste the copied config documents from the template.




Once the documents has finished copying, click on ‘Edit Setup Profile’



Make sure the file path and the server details are pointing to the correct Instant Queue Logs database.




Click on ‘Save and Close’ to update the config documents.

This finishes updating the design of Instant Measurements and Reporting database.

Instant Queue Logs

Delete any existing older templates (ITQLogs_vx.xx.ntf) and download the latest template from the link provided to Lotus\domino\Data directory.

The next step is to sign the downloaded template.



Right-click on the Queue Logs template after finding it from the list and click ‘Sign’








The next step is to refresh the production Instant Queue Logs database.

Locate the Instant Queue Logs database in the workspace of the Lotus Notes client, Right-click on it, select ‘Database à Refresh Design…’




Click on ‘Yes’ on the next prompt tp proceed with the refresh of the design.




After the design refresh is complete, double click the on database icon to verify the version. It should be same as the version specified in the downloaded template file name. Alternatively you can also find out by looking at the About Database document.

After the design update of both the databases, browse to ‘ITQConnect.nsf’ from the browser and browse to ‘Measurements and Reporting’ section to view the latest charts.






Sunday, November 27, 2011

IQMV4 - Enable Rich Text Feature in a conversation between Seeker and Expert

IQMV4 - Enable rich text feature

To enable rich text feature in Lotus Sametime Connect Chat Window we will need to update “InterviewContext_script.xml”

This file is located at following location:

<<Apache Tomcat Install Folder>>\Tomcat 6.0\webapps\ITFramework\WEB-INF


In the file we need to set the value for “ITRichText” to “true” (as in following screenshot)










After the settings have been updated Apache Tomcat Server will need to be restarted.

IQMV4 - Enable file transfer feature

To enable send file feature we will need to update “InterviewContext_script.xml”

This file is located at following location:

<<Apache Tomcat Install Folder>>\Tomcat 6.0\webapps\ITFramework\WEB-INF

In the file we need to set the value for “ITFileTransfer” to “true” (as in following screenshot)

 










Make sure that the path specified for storing files temporarily on server is valid.

After the settings have been updated Apache Tomcat Server will need to be restarted.

Thursday, November 17, 2011

Searching IMtegrity Chat Logs Database


How To Search Sametime Chats between 2 users in an Instant IMtegrity Chat Logs Database


Recently, a customer requested information on chats between 2 users using Instant IMtegrity.
The following example shows how an Lotus Notes advanced search on IMTegrity chat logs database may be used to in order to perform a custom search and retrieve the desired results.
Before proceeding to perform a search we need to make sure that IMtegrity Chat Logs database is Full text indexed.
Open the IMtegrity chat logs database using Lotus Notes. Click on 'View' --> 'Search This View' which will enable search bar above the currently opened view


The green icon on the search bar indicates that the database is full text indexed. If not click on action 'Create Index' to index the database
After confirming that the database is full text indexed, click on 'More' to the right of search bar to open advance search options
For example here we will search chats between Vivek and Prashanth.
To perform this search type the text 'vivek and prashanth' in the 'Search for' text box and on click of 'Search' will retrieve the results between Vivek and Prashanth

The search performed can also be saved for future references by clicking on 'Save Search'

If the search results needs to be refined further based on date then click on 'Date' in 'Conditions' section.
Here we will refine the search results between dates '11/01/2011' and '11/16/2011'
Select the dates in the dialog box presented and click on 'Add'

After adding the date criteria click on 'Search' again to refine the search results
To take the print out of the search results, select the required documents or select all by clicking 'Edit' --> 'Select All'

After selecting the documents, click on 'File' --> 'Print' 

In the Print dialog, select PDF creatorand make sure you select 'Selected documents' under 'What to Print'
Click on 'OK' to generate the PDF out of search results

The following is a preview of the PDF generated out of the search results


Please find youtube video of the above through the link
Instant IMtegrity is flexible and can supply quick results based on your criteria.  This can be a valuable time saving technique, with the right adjustment.  Instant IMtegrity, combined with the native search and discovery tools provided by Lotus Notes, creates a powerful application to capture, search, and discover IBM Lotus Sametime based chat conversations.

Thursday, November 10, 2011

Securing Administration Section of Archive Viewer 4.0

There is a known bug with the access control of the Administration section of Archive Viewer 4.0.80.

If a user authenticates into the Administration section, and then another user, who should not have access, according to the groups allowed in the "AdminSecurity" key of the web.config, attempts to access, the credentials of the first user are used, rather than those provided by the second user.  This only appears to happen if the two logins occur within one minute of each other.

The root of this problem is that page caching is enabled on the landing page of the Admin section.  This will be addressed in our next iteration, but for now, we provide the following work-around.

This fix involves modifying the NTFS file permissions of the Admin folder of the InstantAV4 website.
  1. Log in to the server hosting InstantAV4 using an account which you will grant Admin access.
  2. Open IIS Manager, and navigate to the Admin folder of the InstantAV4 website in the side panel.  Right-click and select Edit Permissions...
  3. Click the Advanced button.  On the Advanced Settings dialog, click Change Permissions...
  4. Uncheck Include inheritable permissions from this object's parent.  When prompted with the small dialog, select Add.
  5. Add permissions for the users you want to have access to the Admin section.  Be sure to select Full Control, as this gives those users all the permissions necessary.  Be sure to give permissions to the account that you are logged into the server under!
  6. Remove permissions for other users.  Safe entries to remove include Domain Users, Administrators, Local Administrators, Local Users, etc.  
  7. Restart the webpage.
Now, when you access the Admin portal, if you provide the credentials of one of the users provisioned, you should have normal access.  Using any other account, you will be prompted for credentials, and eventually shown a HTTP 401 - Unauthorized: error page.

Monday, November 7, 2011

Archive Viewer 4 vs Built-in Lync Server Achive Viewing Capabilities

With Lync Server 2010, Microsoft has added the ability to do basic examination of archived instant messages. One might ask, then, why an extension tool like Instant Archive Viewer is still necessary.

For a tutorial on how to use Lync's built-in scripts to export conversation data, check here.

While this is a functional method of accessing chat logs, it has a number of limitations:

  • Requires use of command-line interface, running on the Lync Server machine.
  • Little ability to fine-tune results - Only able to return all conversations in a date range, or all conversations for a single user.
  • Can only export conversations as Outlook .eml files, one file per conversation, and these files have unintuitive names, increasing the difficulty of finding the desired conversation.
In comparison, Instant Archive Viewer is a much more powerful application.  In addition to the basic functionality that Lync Server provides, Archive Viewer features:
  • Graphical Web interface that is accessible from anywhere.
  • Many options to narrow your searches of your IM logs
    • Ability to search for conversations including arbitrary lists of users
    • Ability to search conversations between specific users
    • Ability to search for conversations featuring specific message text.
    • Ability to search for conversations within a specified timespan, down to the minute, rather than just by date.
    • Ability to filter search by conversation length
    • Ability to specify maximum number of results.
  • Results are are viewable in-browser, and can be printed or saved in PDF and plain text formats.  
  • Queries can be saved, and even scheduled to run on a recurring basis, with results sent by email.
  • Customizable access levels.  It is desirable to limit access to the full database for privacy reasons, but also useful, for example, for a user to view their own chat history, or for a supervisor to have access to his subordinates.  Archive Viewer provides this flexibility through customizable Access Control Lists.
So, in summary, while Lync 2010 provides some limited ability to search chat history out-of-the-box, Archive Viewer gives you more powerful searches, a more convenient interface, and more options for exporting your data.

Friday, November 4, 2011

Instant OCS RealTime MessageSending Service Dies Unexpectedly on Servers with FIPSAlgorithmPolicy Enabled

When deploying Instant OCS RealTime recently for a customer, we encountered an interesting bug.  Installation progressed smoothly, aside from some AD/SQL Server configuration issues.  However, when we attempted to start the services, while the MessageCapture service worked fine, the MessageSending service would silently die after a few seconds.  Examining the log files provided no insight, as there were no logged exceptions.  At the time, there was no global exception handler when the service is run as a service,

However, when running in TEST mode, we do have a global uncaught exception handler registered.  Running the service via the Debug UI enabled us to see the exception which was killing the service, both in our logs and in a MessageBox.
System.TypeInitializationException: The type initializer for 'Microsoft.Rtc.Collaboration.Presence.PresenceCategory' threw an exception. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
   at System.Security.Cryptography.MD5CryptoServiceProvider..ctor()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args)
   at System.Security.Cryptography.MD5.Create()
   at Microsoft.Rtc.Collaboration.Presence.PresenceCategory..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.Rtc.Collaboration.Presence.PresenceCategory..ctor(String name)
   at Microsoft.Rtc.Collaboration.Presence.CustomPresenceCategory..ctor(String categoryName, String dataXml)
   at Microsoft.Rtc.Collaboration.Presence.PresenceCategoryWithMetaData.InitializeMetaDataProperties(CategoryType category)
   at Microsoft.Rtc.Collaboration.Presence.PresenceCategoryWithMetaData.ParseCategoriesXml(XmlReader reader, String& uri)
   at Microsoft.Rtc.Collaboration.Presence.PresenceBatchSubscription.ParseNotificationData(Byte[] buffer, Int32 offset, Int32 count, SourceNetwork messageSource)
   at Microsoft.Rtc.Collaboration.Presence.PresenceBatchSubscription.ProcessNotification(SipMessageData message)
   at Microsoft.Rtc.Collaboration.Presence.PublishSubscribeSession.SipSubscriptionProcessor.ProcessNotification(SipMessageData message)
   at Microsoft.Rtc.Signaling.SipSubscription.InvokeProcessNotification(SipMessageData messageData)
   at Microsoft.Rtc.Signaling.ISubscriptionProcesorWorkitem`1.Microsoft.Rtc.Signaling.IWorkitem.Process()
   at Microsoft.Rtc.Signaling.WorkitemQueue.ProcessItems()
   at Microsoft.Rtc.Signaling.SerializationQueue`1.ResumeProcessing()
   at Microsoft.Rtc.Signaling.SerializationQueue`1.ResumeProcessingCallback(Object state)
   at Microsoft.Rtc.Signaling.QueueWorkItemState.ExecuteWrappedMethod(WaitCallback method, Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
After some searching, we discovered that this is usually the result of having FIPS compliance checking enabled on the server.  See here.  And indeed, when we enabled FIPS checking in our test environment, we experienced the same behavior.

Fortunately, our customer was  not required to have FIPS checking enabled, so it was a simple matter to disable it.

  1. Open regedit on the machine RealTime is installed to.
  2. Navigate to HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/FipsAlgorithmPolicy
  3. Edit the Enabled key, and set it to 0.
  4. Close regedit
After disabling FIPS checking, the MessageSending service executed as expected.


Unfortunately, we do not yet have a solution to this problem if FIPS must be enabled.  We are investigating the option of using an updated version of the Unified Communications SDK, in the hopes that Microsoft has addressed this issue.  

Monday, October 31, 2011

Archive Viewer Installation Error on IIS 7

A customer recently experienced an issue installing Instant Archive Viewer 4.0.82.  When clicking the button on the install launcher to install Archive Viewer, the installer will appear to hang for a few seconds, before reporting that the installer was interrupted.


To pinpoint the error, we had to enable logging in the MSI.  Since the installer msi requires administrator rights, we need to run cmd as an administrator.  The easiest way to do this is to enter cmd.exe into the start search box, and then press CTRL+SHIFT+ENTER.

This will bring you to the trusty command prompt.  You'll need to navigate to the directory to which you have downloaded the installer package for Instant Archive Viewer.  Once there, type:
cd "Instant Archive Viewer for OCS"
msiexec /i  InstantAV4.msi /lv log.txt
 The installer will once more fail to run, but this time it will generate a log of all the actions it undertook before failing.  Open log.txt in notepad or your text-editor of choice.  It will look something like this:

 The file should end in something similar to the following (There may be more or less detail).
Action start 13:14:57: WEBCA_SetTARGETSITE.
INFO   : [10/31/2011 13:14:57:873] [SetTARGETSITE                           ]: Custom Action is starting...
INFO   : [10/31/2011 13:14:57:874] [SetTARGETSITE                           ]: CoInitializeEx - COM initialization Apartment Threaded...
ERROR  : [10/31/2011 13:15:27:943] [SetTARGETSITE                           ]: FAILED: -2146959355
ERROR  : [10/31/2011 13:15:27:945] [SetTARGETSITE                           ]: Custom Action failed with code: '5'
INFO   : [10/31/2011 13:15:27:946] [SetTARGETSITE                           ]: Custom Action completed with return code: '5'
CustomAction WEBCA_SetTARGETSITE returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 13:15:27: WEBCA_SetTARGETSITE. Return value 3.
Action 13:15:27: FatalErrorForm. 
Action start 13:15:27: FatalErrorForm.
 What Does This Mean?


This error message, cryptic though it may be, reveals that IIS compatibility services for IIS6 in IIS 7 are either not installed, or are not working correctly.  Instant Archive Viewer relies on these compatibility services to run.   Fortunately, it is simple enough to install these services.

Go to Control Panel -> Programs and Features and select Turn Windows features on and off.


On Server 2008, this will open Server Manager.  Expand Roles, then right-click on Web Server (IIS) and select Add Role Services.



Locate Management Tools, and check IIS 6 Management Compatibility.  Click install.  You may now proceed to installing Instant Archive Viewer.

Wait, That's Already Installed...

If these services are already installed, but you cannot install Archive viewer, then you'll need to check that all IIS services are running, particularly IIS Admin Service.

Open Control Panel -> Services, and locate IIS Admin Service.  Right-click and select Start.  If the service started correctly, you should now be able to install Archive Viewer.

Service Won't Start...


You're going to have to open Event Viewer.
Select Windows Logs -> System in the sidepane, and look for the last error caused by Service Control Manager.

If you see this error code, then it means that IIS has a corrupted metabase file.  It is unclear what could cause the metabase file to be corrupted, but, as it acts as a central store of configuration information in IIS 6, it is essential in order to run IIS Admin Service.  Fortunately, it is relatively easy to repair.

Open Windows Explorer.  Navigate to C:\Windows\System32\inetsrv


Locate MetaBase.xml and MBSchema.xml.  There may also be a file called MBSchema.bin.00000000h.

There should be a folder called History.  This folder contains backups of MetaBase.xml and MBSchema.  Select one of each, with matching revision numbers (For instance, MBSchema_0000000021_00000000.xml and MetaBase_0000000021_00000000.xml), and rename them to MetaBase.xml and MBSchema.xml.

Copy these two files to C:\Windows\System32\inetsrv, overwriting the existing files.  If the MBSchema.bin file exists, delete it.

Open cmd and enter the following to restart IIS:
iisreset
You should see:
C:\>iisreset
Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted
C:\>
 You should now be able to install Instant Archive Viewer.

Thursday, October 27, 2011

Locate License Key and Debug Info for Buddy List Administrator

Instant's Buddy List Administrator is managed using a Lotus Notes database.  The database provides the UI to manage typical Lotus Sametime buddy list management functions (renaming users, deleting users, pushing contacts to a user's buddy list, etc..)

View License:

In certain cases, you may need to review or update the license key.  The license key is available by
  1. Opening the database using a Lotus Notes client
  2. Clicking the 'Settings' option on the left navigator
  3. This will display a view of server configurations
  4. At the top of the view (in the actions bar) the 'Update License' button will display the current license information




View Debug Logs

In order to help troubleshoot certain types of issues, it may be useful to send Instant certain log files - typically if an activity does not process correctly.

The Activity Logs area will provide a list of all of the activities that have been processed by the system.

Click on Activity Logs
Select Activity Logs By Date
Select a log document
Open the log document
Click on the 2nd tab and either mail instant the debug document or copy the debug text and mail the debug text to Instant





Here is a debug page - showing status for the activity



Here is the debug page - after selecting the 2nd tab


Enable Server Console Output


In order to see all of the output from the console out, you can enable the console output in the server configuration settings document.









Thursday, October 20, 2011

Automatically Create Sametime Rename Request

Instant's Buddy List Administrator is a Lotus Domino based application that manages Sametime contact lists at a server level.  The Buddy List Administrator has the ability to perform a variety of functions against any contact list on the Sametime server.  For example, the application can:
  • Rename a user within Sametime and automatically update all contacts list that reference the user
  • Delete a user across all Sametime contact lists
  • Add a public or private group to a user's contact list
All of the configuration and activity records for the Buddy List Administrator (BLA) are maintained as unique Lotus Notes documents within the BLA activity database.

Some customer have created systems to automatically populate activity records in order to integrate the BLA with their internal environment.  For instance, to automatically create activity requests to pro-populate a Sametime buddy list whenever a new employee is provisioned with Sametime. 

Instant has also developed integration with AdminP in order to automatically create certain Sametime buddy list activities based on requests with AdminP (i.e. rename requests or user deletion requests)

It is possible to automatically create these BLA activity records (i.e. a Lotus Sametime user rename request) by creating a new document and populating document fields.

 ' The client UI agent will create a new activity document with a type ‘Rename a User’
 Set newDoc = g_db.CreateDocument
 Set item = newDoc.AppendItemValue("mapping_ActivityType", "6") ' 6 = "Rename a user
 newDoc.appendItemValue "Form", "ConversionMapping"

 ' let's give the document a name
 newdoc.AppendItemValue "mapping_DocumentName", "Rename a ST user  " + STUserName + " to LCS " + LCSUserURI

 newDoc.AppendItemValue "mapping_Comments", "Created by automated remapping facility"
 newDoc.AppendItemValue "Mapping_rename_OldName", STUserName
 newDoc.AppendItemValue  "Mapping_rename_NewName", LCSUserURI

 ' Make this newly renamed user as an external user
 newDoc.AppendItemValue "Mapping_Rename_IsMarkAsExternal", "1"

 ' Specify that we should search the buddy lists index database
 If Len(searchFieldString) <1 Then
  newDoc.AppendItemValue "Mapping_SearchFilter_Custom", STUserName
 Else
  newDoc.AppendItemValue "Mapping_SearchFilter_Custom", searchFieldString
 End If

 newDoc.AppendItemValue "mapping_userTypeSelection", "6"

 ' write out the activity as string value so we can tell from various views the type of activity
 newDoc.AppendItemValue "mapping_ActivityAsString", "Rename a user"

 Call newDoc.ComputeWithForm(False,False)
 Call newDoc.save(False,False)


Tuesday, September 27, 2011

How To Search Sametime Chats by Date and User Using IMtegrity

Recently, a customer requested information on how to search the IBM Lotus Sametime chat repository using Instant IMtegrity and the Lotus Notes advanced search options. The following example shows how an advanced search may be used to in order to perform a custom search of the Sametime chat repository.  

Here is an example below searching by Date and User.


Locate the "More" tab to open up the functionality.




Within this tab, there are a number of search conditions to choose from:





These choices allow for many different scenarios. 



Search criteria are then listed for review: 




Results are returned in a standard format:






Instant IMtegrity is flexible and can supply quick results based on your criteria.  This can be a valuable time saving technique, with the right adjustment.  Instant IMtegrity, combined with the native search and discovery tools provided by Lotus Notes, creates a powerful application to capture, search, and discover IBM Lotus Sametime based chat conversations.