Monday, March 29, 2010

Configuring ScriptLoadList.xml and ServiceLoadList.xml




These files ship with the latest release of Instant Queue Manager V4. These files contain references to the Domino based databases which hold the Queue and Interview configurations. It allows the IQM engine to load Queue (both broadcast & Monitoring) and Interview configurations and run them.


ServiceLoadList.xml contains reference the URL which contains all the Interview definitions.

ScriptLoadList.xml contains reference the URL which contains all the Monitoring Queue definitions.

Contents of ServiceLoadList.xml look like the following snippet:

<Load>

<NodeType>ServicePath</NodeType>

<AppName/>

<LoadUrl>http://st85.instant-tech.com/iqconnect.nsf/agGenerateInterviewServiceLoad?OpenAgent&amp;Key=All</LoadUrl>

<LoadUsername>User present in database ACL</LoadUsername>

<LoadPassword>password</LoadPassword>

</Load>


Contents of ScriptLoadList.xml look like the following snippet:

<Load>

<NodeType>ServicePath</NodeType>

<AppName/>

<LoadUrl>http://st85.instant-tech.com/iqconnect.nsf/agGenerateQueueServiceLoad?OpenAgent&amp;Key=Watched</LoadUrl>

<LoadUsername>User present in database ACL</LoadUsername>

<LoadPassword>password</LoadPassword>

</Load>












Configuring Web Client availability based on local time and visitor location

At times the Administrators would want to conceal Queue link on a web page from users of a specific region (city/state) or during specific hours of the day.

To hide the Queue link from users of a specific region add the following javascript variable in the api.html (page) header:

var State_code="<< State Code Goes Here >>";

This will ensure that people of the specified region are unable to view Queue link.


To make the Queue link available to users only during your working hours add the following javascript variables in the api.html (page) header:

var clientSystemDate=calcTime('+10.5'); //specify GMT offset
var chatStartTime=setcalcTime('+10.5','9'); //specify working hours start time
var chatEndTime=setcalcTime('+10.5','18');  //specify working hours end time



Configuring Web Client for custom attributes

Web client can be configured to pass following visitor specific attributes (optional) to the Queue and Queue experts:

Customer Account Number
Customer Business Name
Customer State Code
Customer Phone Number
SessionID

Page customizations for passing through the attributes are as follows:

After the JavaScript function writeSTLinksApplet("visitor","",false); is called in api.html file add the following function calls:

    LoadDataForIAF("CustomerAccountNumber", “value”);
    LoadDataForIAF("CustomerBusinessName", “value”);
    LoadDataForIAF("CustomerStatecode",“value”);
    LoadDataForIAF("Telephonenumber",“value”);
    LoadDataForIAF("PruSessionID",“value”);

Once these functions are called value of associated attributes will be passed to IQM engine which will then pass it along to Queue experts.

Friday, March 26, 2010

Measurements and Reporting

QM4 Home

Measurements and Reporting

The Measurements and Reporting system provides managers and decision makers with information on queue load, expert activity, and a variety of other useful system snapshots.

A video of the measurements and reporting system should provide a visual display of the component.

Thursday, March 25, 2010

Queue Manager 4 - Design Notes on Bots and Sessions

QM4 Home

Overview:
Definitions of terms (good for navigating class names in the Jumpstart codebase):

“Bot”: A process which runs as a thread and fields messages for a particular Application. For-instance, an Interview Bot might be logged in under Sametime and XMPP usernames, and will field all messages for a particular instance of the Interview application (a given Navigator tree). Bots typically receive user input from the firing of their “TextReceived” method.

“Session”: A process which also runs as a thread and fields messages from a particular user in a particular application. The application logic is usually not in the bot class (except for very simple one trick pony bots.). When a bot receives a message, it will look in a table it keeps of users it has seen before, and if there is already a session for that user, it will dispatch the message to that session. If not, it will spin up a new session and start it in a new thread.

So there is a one -to-many relationship between Bots and Sessions.

Bots are very tied to the IM-style interface, in that they get their input from the firing of TextReceived, which happens when they register with one or more IM services (Sametime, Facebook, etc).


A design goal of the framework was to have applications and services be re-usable in a wide variety of contexts. One possible way Bots could have communicated with Sessions is by firing a TextReceived message in the session. TextReceived is great for the IM world, but it is limited in the data that is passed. It is not a great method for communicating between modules. For-instance, It would be nice to send an arbitrary object along with a message, containing links to conversation history, etc. To get low overhead with max flexibility, messages are dispatched from Bots to Session via the ITQueue interface. So when a Bot receives a message, it puts in on the ITQueue of the appropriate Session, or creates a new Session and associated Queue if it is a new visitor.
The run loop of the Session thread simply pulls messages off the queue. Because the Session was passed the MsgServices used by the Bot on startup, it can send responses to the user directly. When the user responds, the message will flow through the bot and back to the appropriate session.

Sessions and Bots can be mixed in matched in terms of being in Groovy or Java. A new Interview Bot could be written in Groovy, but dispatch messages to the existing Java-based InterviewSession. A queue bot could be written in Java, but dispatch to a QueueSession class written in Groovy. One of the keys to maintaining this flexibility is to have bots in either Groovy or Java extend MultiService Bot and sessions extend MultiServiceSession.

You don't “have” to adhere to the above architecture, you can write a Bot in Groovy or Java to do whatever you want, and use the Jumpstart classes as support classes.. But you will get more proven code under the hood, more monitoring and logging “for free” in the future and a more maintainable system if you follow the above approach in creating new applications.


Queue Manager 4 - Design Notes

Design Notes
This section provides some background design notes on the development of the Instant Abstraction Layer. This area is primarily focused on developers who may wish/need to integrate with, or extend, the Queue Manager application.

Topics:

Queue Manager 4 - Bots

QM4 Home
Bots
Instant Queue Manager is the first application from Instant Technologies to be developed using the Instant IM abstraction layer. This abstraction layer provides a Java based API to develop IM applications against the three most popular enterprise IM platforms: Lotus Sametime, Microsoft OCS, and XMPP based systems.
Most of the major components within Instant Queue Manager v4 have been developed using the Instant IM abstraction layer (API). This API is also exposed to Groovy and, where possible, components have been developed using Groovy.
Topics:

Queue Manager 4 - Interviews

QM4 Home
Interviews are a cornerstone of the Queue Manager V4 framework. Interviews provide a mechanism to prompt an IM user to answer a set of questions prior to moving the user to a queue, expert, or other self help tools. Interviews are IM based decision support 'trees' where each node has an available action. These actions may:
  • Move the user (seeker) to a queue
  • Move the user (seeker) to a specific person
  • Display a custom URL
  • Move the user (seeker) to another interview
  • Move the user to custom code that may ask additional questions or provide additional information
Interviews:
  • Creating an interview
  • Importing an existing interview
  • Associating an interview with an IM entry point
  • Using an interview
  • Extending an interview with custom code

Queue Manager 4 - Installation

QM4 Home

Installation Instructions

  • Requirements

Queue Manager Version 4

This FAQ will provide useful pointers to various entries on Instant Queue Manager 4.
The following are the high level areas:

QM4 - Create and Deploy an Interviewer

Create and Deploy an Interviewer

Written by James M. Blocker Jr
v1.01
Copyright © 2010 Instant Technologies

What You Will Need
A Queue Manager Account – for access to the Queue Manager

2 Lotus Sametime User Accounts –
One for the user, the other for the Interviewer's Entry PointMake sure you have the user name, password, and server information available,  These accounts will need to be created by an administrator that can register new users with Lotus Notes address book



















Go to the website where Queue Manager is located and use your account information to gain access to the website. Generally, this is the first thing the website will show you.

Step 2: Make a new Entry Point
Click on the “Admin” tab on the top menu. (Red Box)














Click on the “Entry Points” tab in the sub menu. (Red Box)










Click on the New IM Entry Point Link. (Red Box)










Input a name that will be unique to this Entry point. (Blue Box)
Optional: add a description and define a type.
Click on the “Platforms” dialog tab. (Red Box)





























Click on the “Sametime” check-box. (Blue Box)
Fill in the blanks with the Interviewer's Sametime User Account information
It is very important that this information is correct, otherwise this Entry Point will never go online.
When everything is correct, click on “Save & Close” . (Red Box)



























After the browser refreshes, go back to “Admin - Entry Points” and confirm that your new entry point (Blue Box) is present in the “Entry Points table”.












If you ever need to edit your Entry Point (Blue Box), you can select the check-box next to it and click “Edit IM Entry Point” (Green Box).
Likewise you can delete it by selecting the check-box and clicking “Delete IM Entry Point(s)” (Red Box). It is Possible to delete multiple Entry Points if multiple Entry Points are selected.

Step 3: Make a new Interview
Click on the “Interviews” tab on the top menu. (Red Box)













Click on the New Interview Link. (Red Box)
Input a name that will be unique to this Interview. (Blue Box)
Optional: add a description and define a type.
Click on the Image next to IM Entry Point text box to select an existing Entry Point (Red Box)
























Find the Entry Point(Blue Box) that was made in Step 2
Select OK (Red Box) and return the the "Edit Interview Dialog" Window


























Click on the “Definition” tab (Red Box)



















Select the “Welcome” Node Check-box (Blue Box) and click on the “Add Node” Button(Red Box)












Input a Unique Name for this Node for this Interview. (Blue Box) This name is used only to identify it in the Node Tree in the Interview Dialog Box under the “Definition” Tab
Input “My first Interview” in the Menu Text box (Green Box)
Click on the Action Type Combo Box (Red Box)























Select “Display help text” (Red Box)









Input “Hello World” in the Text to return when this item is selected field (Blue Box)
Click the “Add” button (Red Box)

















Double-check that everything is correct When everything is correct, click on “Save & Close” . (Red Box)











After the browser refreshes, go back to “Admin>Interviews” and confirm that your Interview (Blue Box) is present in the “Interviews table”












If you ever need to edit your Interview (Blue Box), you can select the check-box next to it and click “Edit Interview” (Green Box).
Likewise you can delete it by selecting the check-box and clicking “Delete Interview” (Red Box).

Step 4: Deploying the New Interview







Click on the “Control Panel” link (Red Box)







Do you remember the User-name that you gave the Entry Point you created? That is what you will be looking for in this table.
Search for the Entry Point's User-name in the Application List. If it is not listed, it has not been started. Click on the “Rescan” button (Red Box) for the server to search for new Interviews. If all the information is correct, the new Interview will go online using the account defined by the Entry Point.















You may have to wait a few moments for the server to find and start everything, but it will show up if everything has been correctly input.

Alternately, you can use the Sametime Buddy List to see if the Interview is online or not. If it is online, You will see that the User is online.
Note – If you are currently logged in as the user that the Entry Point is trying to use, the Bot will never go online. You will have to use an alternate account to monitor it's online status.





























 

 

 

 

Step 5: Interacting with the new Interview

Log in to a Sametime account that runs on the same server as the account used to define the Entry Point in step 2















If you have not added the Entry Point's account to your current account's buddy list, go ahead and add them.
Start a conversation with the account the Interview should be running on and it should automatically welcome you like this
Reply to the Interview by sending it the text “1” to select that menu option




















This is what it should reply with.
Congratulations! You have just made your first interview!

Monday, March 15, 2010

Estimated size of conversations for Instant Imtegrity

Please find below the estimates for the size of conversations logged in the Instant IMtegrity database,"imtchatlog4.nsf" The estimation covers 5 typical chat usage questions.

1. What is the basic size of the DB without any data?
The size of a blank 'Instant IMtegrity 4 Chat Logs' database is 1.6 MB

IMtegrity conversations sizing estimation:



2. For a 100 line conversation, what is the size of the Notes record?
The size of a chat archive archive document that consists of around 100 lines averaging around 90 characters per line is around 25 KB

3. For 100 conversations (averaging 100 lines) what is the size?
The size of 100 chat archive documents each consisting of around 100 lines averaging around 90 characters per line is: 25KB X 100 = 2500KB i.e 2.44 MB

4. What is the basic size of the database for 6 months of data (1000 users, 10 conversations per day)?25KB X 10000 = 250000KB i.e 244MB is the size for 1000 users with 10 conversations per day











Friday, March 12, 2010

"Installation Incomplete - The installer was interrupted before could be installed. You need to restart the installer to try again".

When running the installer on Windows 2008 Server and IIS 7, you receive the following error: "Installation Incomplete - The installer was interrupted before Instant Archive Viewer could be installed. You need to restart the installer to try again"

Try adding the IIS 6 Management Compatibility Role Service and then run the installation file.

http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/6940016e-0a08-4368-8231-689e475f2d59
http://stackoverflow.com/questions/1338663/web-setup-msi-fails-on-windows-server-2008

Wednesday, March 10, 2010

Web Client link when rendered using iFrame does not turn green in Safari

This can happen if the site hosting iFrame is on a different domain then the server hosting the Instant Web Client.

For example if the web client (web application) is running on webclient.yourDomain.com then the iFrame can be successfully hosted on any sub domain (*.yourDomain.com) like: chat.yourDomain.com

However if iFrame is hosted on a different domain like: chat.otherDomain.com then it won’t work. Cause of the issue: Safari does not allow making cross domain AJAX calls.

Monday, March 1, 2010

Steps to configure Instant Archive Viewer custom tabs for the OCS R2 Communicator with IIS 7.0

1. Create a new folder on any drive with any name. For example: “CustomTab”.


2. Copy the tab.xml, tab.png and tab1.png from the“Itimarchiveviews” folder and paste in the newly created “CustomTab” folder. This folder can be found in “c:\inetpubs\wwwroot”.
3. Open the IIS and right click on Default web site:
And click on “add application”, the following window will be opened:

Type any alias name, For example: “Tabxml”. For the physical path, select the folder that you had created earlier, “CustomTab”. Give the path of this folder. Click on “connect as” and give the user name and password.


4. Now select the TabXml From IIS, and right click on it and click on “switch to feature view”, you will see the following screen:


5. Double click on authentication and enable “Anonymous Authentication”, from the right panel.

6. Open the folder “customTab” and open the tab.xml file and replace the “localhost” with the IP or domain name. Example below:

Also make sure you can access the URL the tab.xml file and the tab.png image in a browser. If so, close this file.
7. Navigate to the “ ITIMArhiveviews” folder located in the “c:\inetpubs\wwwroot” directory. 8. Right click on the file “tab.reg” and select edit:


Update the "TabURL" = "http://localhost/... and replace localhost with the domain or IP of the server hosting the application.

For example: "TabURL"=http://mydomain/tabxml/Tab.xml

Note: make sure this URL can be accessed from a browser.

8. Close this file and double click on this tab.reg file to create a registry on this machine and repeat or deploy tab.reg to all desired workstations with communicator installed.
9. Log out from the communicator and login, you will find the custom tab enabled:

Note: You may need to include the tab.xml in your trusted sites or intranet by choosing Tools> Internet options>Security within your browser settings.