Relief, AD218 is posted, I can sleep...

Category
Search Score : 97%
Unlike the VMware sessions where I had no slides to start with or personal technotes, for the AD218: Working with Customers via the IBM Lotus Sametime Links Toolkit presentation I had quite a lot of resouces to call on and use in the slides. I had slides, STLinks samles I've built for demonstrations, so the issue with the STLinks was deciding what to use as it's only 50 minutes. I think I made the right choices, and the slides have been submitted.

The STLinks Sessions covers:
  • What is Lotus Sametime Links (STLinks)
  • Adding STLinks to your site
  • Building a STLinks queuing mechanism
  • Other powerful features available when using the STLinks toolkit.

Using Sametime Links(STLinks) with Mozilla Browsers.

Category
Search Score : 96%
Because of the security differences between the IE browser and Mozilla browser, there is an important step that many admins miss when setting up Sametime Links, the following is taken form the STLinks toolkit documentation.

Supporting Sametime-Enabled Pages on Separate Server with Mozilla

Mozilla JavaScript security requires that the Sametime links applet be loaded from the same host as the enabled Web page itself. This is because Mozilla security restrictions do not allow JavaScript code to communicate with an applet on a different server.

Therefore, if your Sametime-enabled pages reside on a separate application server, you must place a copy of the Sametime links runtime files (the applet and HTML dialog files) on your application server. In addition, Mozilla users must use a signed version of the Sametime links applet to allow the applet to connect to the Sametime server. The applet (stlinks.jar) is included on the Sametime server in <SERVER Directory>\Data\domino\html\sametime\stlinks\signed.
If your HTML pages are stored on a separate application server, follow these steps:

  1. Under your web server root directory, create a "sametime" folder.
  2. Put a copy of the “stlinks” folder from the Sametime server inside the "sametime" folder you just created.
  3. Replace the stlinks.jar file with the one in <SERVER Directory>\Data\domino\html\sametime\stlinks\signed.
  4. Make sure that the HTTP tunneling port specified in hostinfo.js matches the one used by the server. Note that if you modify the port at any time after copying the Sametime links files to the server, you must update hostinfo.js with the new port information. For more information about the HTTP tunneling port, see “Setting the HTTP Tunneling Address and Port” in Appendix A.

Note: If you want to put the files somewhere other than sametime\stlinks, please refer to the description of setSTLinksNSCodeBase in Chapter 6.
Note The toolkit will use the Sametime links files on the application server when using Mozilla and the Sametime links files on the Sametime server when using Internet Explorer. Therefore, when you call SetSTLinksURL, you should still point to the Sametime server.

How do you use SSO on a website to log a user into STLinks?

Category
Search Score : 95%
This is a question I get quite often and there are a few answers. The answer in the STLInks manual is to use various WQO Agents that Lotus ships in a sample database, where you pull out the LtpaToken and submit that to STLinks to login. This often creates issues for people that struggle to sign the database design etc. and for most applications within a company intranet this is overkill, as typically the page that contains STLinks has been accessed from another page where the user had authenticated to access it.

So knowing that the user is already authenticated, and you've configured your Sametime server as part of your Domino Community with Multi Server Single Sign-on, you'll know that the LtpaToken is stored in a document cookie. Then with the knowledge that writeSTLinksApplet has a parameter to specify that the login is with a token, it's pretty easy to pull out the token and pass that into the writeSTLinksApplet function. Here is the code I use for getting a user logged into STLinks on an authenticated page, if the user isn't authenticated then this page will still try and give a user access anonymously.

<html>

<head>
<LINK REL=STYLESHEET HREF="http://<<STSERVERNAME>>/sametime/stlinks/stlinks.css" TYPE="text/css">
<SCRIPT src="http://<<STSERVERNAME>>/sametime/stlinks/stlinks.js"></SCRIPT>
<SCRIPT>
setSTLinksURL("http://<<STSERVERNAME>>/sametime/stlinks");
</SCRIPT>

<SCRIPT>
function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
        } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

if (getCookie('LtpaToken') == null) {
    writeSTLinksApplet("Anonymous User","",false);
    }else {
    writeSTLinksApplet("<COMPUTED TEXT>",getCookie('LtpaToken'),true);
    }
</SCRIPT>
</head>

<body>
<SCRIPT>
writeSametimeLink("CN=Carl Tyler/OU=US/O=Instant","Carl Tyler",false);
</SCRIPT>
</body>

</html>

Where <COMPUTED TEXT> contains the formula "@UserName". If you're using LDAP you'll probably want a formula of "@ReplaceSubstring(@UserName;"/",",")"

Finally Sametime Links without a Java applet!

Category
Search Score : 95%

Many of you know that I have long thought the Sametime Links toolkit a highly misunderstood and under used toolkit.  I've even written a few white papers, technotes and given presentations at various events to explain how you can use Sametime Links in different ways.  

Following some enlightenment, customers/partners typically really like the concept of STLinks but always had an issue with STLinks requiring a Java Applet.  The STLinks Java Applet is hidden from the user, but is responsible for handling the communication back to the Sametime server, it works great, but can have issues because of it's reliance on a JVM being present, that JVM has to be a supported version, your firewall can't stop Java applets etc. you get the idea, there are potential points where STLinks can fail.

So with that in mind, think back to last week when I asked you to spot the difference, what the video contained was two parts, the first part was the Java Applet STLinks, the second part, was a Java free STLinks a.k.a EpilioLinks.  

Today I am pleased to announce that we are accepting applications for the EpilioLinks beta program.  EpilioLinks will allow you to replace IBM Sametime Links (STLinks) on your web sites with a 100% fidelity AJAX based replacement.  EpilioLinks offers the same powerful features of Sametime Links and the Sametime Links API without the Java Applet headaches. Did I mention you don't need to find another server to run this?  That's right, you can even run this on your existing Domino or Sametime server, no need to hire someone with Websphere or DB2 skills.  Now if you really want to, you can run it on a Websphere server too.

What you can do using EpilioLinks:
* Use EpilioLinks where you use Sametime Links today, with the same level of functionality.
* Use EpilioLinks within Domino Web Access(DWA/iNotes), Quickr, Websphere Portal sites in place of Sametime Links.
* Continue to use the same STLinks API you already have on webpages, there is 100% fidelity, you even use the same Javascript code and includes to put Sametime awareness within your page, no new toolkits or languages to learn.
* Sametime place access

For our initial release, we chose to use the existing Sametime Links User Interface, we are not tied to this interface in anyway, in fact our APIs that allow us to provide the Sametime Links functionality can have a totally different UI, we chose to use the existing UI so that EpilioLinks can be deployed and users won't need to be educated on a new look or feel.  Plus if you've modified the Sametime Links UI, you can make the same modifications to the EpilioLinks UI.

Epilio are looking for customer sites that are willing to be pro-active EpilioLinks beta customers, we will contact you regularly to check the status of your beta, and will work closely with you to resolve any issues that may arise during your beta testing.    If you wish to take part and believe you could benefit from using this product then sign up now and we'll get in touch to get you started!

EpilioLinks Beta SignUp Page.

Java Applet Security Warning

Category
Search Score : 95%
Some of you may have recently visited this blog or the Instant Technologies website and received a Java Applet security warning. If you;re using Internet Explorer then you never received this message so didn't get aggravated by it. If you use, Firefox as your browser, then basically it would become an irritation if you didn't choose to trust Instant Technologies. Why was this happening?

Basically I had updated STLinks on this site and I updated the Instant Technologies website to support STLInks in the FireFox browser. FireFox has a different security model to IE, and to work with STLinks it requires a signed applet. IE doesn't so IE works much better from the end users perspective. Obviously in a controlled corporate environment you would just trust the applet signer, but in the World Wide Web people wont do this.

So if you want to chat with me via STLinks, use IE on this page...

Blogging may become a bit quiet over the next few days...

Category
Search Score : 94%
As I will be celebrating my brothers 30th birthday (yes about 3 weeks late) at Indianapolis with him. We will take my machine with me, and we'll try and take some cool photos of pit babes and post them, maybe I can get some pictures as good as the ones Volker posts...

Just so I can leave you with something useful, a customer wanted a quick and dirty way to have STLinks on a webpage prompt for a users name when they click on a link, so that it didn't say something like you are chatting with anonymous1232/Instant. The following is the easiest and quickest way I could come up with to do it very easily. This is not necessarily the best approach, but it's a good one to get started with as it requires no modifications to STLinks source directories.
<html>

<head>
   <LINK REL=STYLESHEET HREF="http://sametime.acme.com/sametime/stlinks/stlinks.css" TYPE="text/css">
   <SCRIPT src="http://sametime.acme.com/sametime/stlinks/stlinks.js"></SCRIPT>
   <SCRIPT>
      //Track if the STLink was clicked so that we do not start a chat when the applet is logged in for the first time
      STLinkClickedResult = false;
      startchatwith = "";
      setSTLinksURL("http://sametime.acme.com/sametime/stlinks");
   </SCRIPT>
   <SCRIPT>
      //Login to website as anonymous ST Links User
      writeSTLinksApplet("Anonymous Visitor","",false);
   </SCRIPT>
   <SCRIPT>
      //Override STLinksLoggedIn function and if logged in clicked, start chat with selected person
      function STLinksLoggedIn(myUserId, myUserName) {
         //alert("STLinkClickedResult =" + STLinkClickedResult);
         //alert("startchatwith =" + startchatwith);
         if (STLinkClickedResult == true) {
            STLinkClickedResult = false;
            STLinksCreateIM(startchatwith);
         }
      }
   </SCRIPT>
</head>

<body>
<SCRIPT>
function STLinkClicked(userName, displayName, status, evt){
   STLinkClickedResult = true;
   startchatwith = userName;
   STLinksLogout();
   var visitorName = prompt ("Please enter your name","");
   STLinksLogin(visitorName,"",false);
}
</script>
   <SCRIPT>
      //Person to display awareness for on page
      writeSametimeLink("Carl Tyler","Carl Tyler",false);
   </SCRIPT>

</body>

</html>
If you're a talented DIV/Layer type person you could popup a fake window that prompts for this info rather than using an ugly javascript prompt.

A Sametime Links hint and tip.

Category
Search Score : 93%
My understanding of Javascript isn't great enough to understand this, but it's a nice one that can cause hours of frustration if it gets you. Let's look at the following code:
<html>
<head>
<LINK REL=STYLESHEET HREF="CODEBASE/stlinks.css" TYPE="text/css">
<SCRIPT src="CODEBASE/stlinks.js"></SCRIPT>
<SCRIPT>
    setSTLinksURL("CODEBASE");
</SCRIPT>
<SCRIPT>
    writeSTLinksApplet("Anonymous User","",false);
</SCRIPT>

</head>
<body>
<SCRIPT>
    writeSametimeLink("CN=Carl Tyler/OU=US/O=Instant","Carl Tyler",false);
</SCRIPT>
</body>
</html>

Some fools (like me) might try and reduce this to the following:
<html>
<head>
<LINK REL=STYLESHEET HREF="CODEBASE/stlinks.css" TYPE="text/css">
<SCRIPT src="CODEBASE/stlinks.js"></SCRIPT>
<SCRIPT>
    setSTLinksURL("CODEBASE");
    writeSTLinksApplet("Anonymous User","",false);
</SCRIPT>

</head>
<body>
<SCRIPT>
    writeSametimeLink("CN=Carl Tyler/OU=US/O=Instant","Carl Tyler",false);
</SCRIPT>
</body>
</html>

See how:
</SCRIPT>
<SCRIPT>
was removed, well that simple removal process means that Sametime Links on this page will never login, I have no idea why, as I don't know the inner workings of JavaScript within a browser, but it is something to keep an eye out for if your ST Links page loads the applet but never logs in.

Nice touch from Rob Novak in the LDD forums..

Category
Search Score : 93%
with his signature (aka resume) having STLinks awareness, this obviously now means I will have to out do him

A nice discovery during Collaboration University

Category
Search Score : 92%
At Collaboration University in London managed to spend a few minutes with Paul Mooney and his shiny, relatively new Mac. What was the nice discovery? Well we found that STLinks, now runs on the Macintosh version of FireFox. We visited a few of my test sites and it appeared to work great. So good news for people running intranet sites with people awareness.

I got a request today from somebody for my STLinks code

Category
Search Score : 92%
for the page that gets launched when a user clicks to chat with me from the link on the left.

Being the kind person I am, here it is

<html>

<head>


<style type="text/css">
.stHideLink{display:none}
.HideSupportLink{display:none}
.ShowSupportLink{display:inline;color:blue;text-decoration:none;cursor:hand}
</style>

<LINK REL=STYLESHEET HREF="http://stserverdnsname/sametime/stlinks/stlinks.css" TYPE="text/css">
<SCRIPT src="http://stserverdnsname/sametime/stlinks/stlinks.js"></SCRIPT>


<SCRIPT LANGUAGE="JavaScript">
function getParm(string,parm) {
// returns value of parm from string
var startPos = string.indexOf(parm + "=");
if (startPos > -1) {
startPos = startPos + parm.length + 1;
var endPos = string.indexOf("&",startPos);
if (endPos == -1)
endPos = string.length;
return unescape(string.substring(startPos,endPos));
}
return '';
}
</SCRIPT>


<SCRIPT>
var passed = location.search.substring(1);
var UsertoIM = getParm(passed,'UsertoIM');
setSTLinksURL("http://stserverdnsname/sametime/stlinks");
</SCRIPT>

<SCRIPT>
writeSTLinksApplet("Anonymous User","",false);
</SCRIPT>

<SCRIPT>
function STLinksAppletStarted(){
// alert("ST Links Applet Started successfully");
}
function STLinksLoggedIn(myUserId, myUserName){
// alert("ST Links Applet Logged in with UserID " + myUserId + " and the display name " + myUserName);

}
function STLinksUserStatusChanged(userId, displayName, status, statusMessage){
//Function is called by STLinks whenever a user whose presence is on the page changes
// alert(userId);
if (userId == UsertoIM) STLinksCreateIM(UsertoIM);
}
</SCRIPT>

</head>

<body>
<SCRIPT>
prepareSametimeLink(UsertoIM,"User to IM",false,"icon:no;onlineStyle:stHideLink;offlineStyle:stHideLink");
</SCRIPT>
<font face=verdana>If you are presented with a security warning, please accept it to continue into the chat.</font><br><br>
<DIV id="PopupTest" valign="center">
<font color="red" face=verdana><br>This machine has a popup blocker running, this <b>WILL</b> stop the chat window from appearing.</font>
</DIV>

<SCRIPT>
testpopupwindow = window.open('','testpopupwindow','width=15,height=15,toolbars=false');
if (testpopupwindow != null) {
testpopupwindow.document.open();
testpopupwindow.document.write('<head><title>Test Popup Window</title></head>');
testpopupwindow.document.write('<FONT SIZE=2>Popup test window, you may close this window</FONT>');
testpopupwindow.document.write('<scrip' + 't>');
testpopupwindow.document.write('window.opener.document.getElementById("PopupTest").innerHTML = "<font face=verdana>Please wait whilst you are connected...<\/font>";');
testpopupwindow.document.write(' testpopupwindow.document.close();
testpopupwindow.close();
}
</SCRIPT>
</body>

</html>


So what is this code doing? Well a couple of things, first the page loads looks at the parameters that were passed to the page to work out who the user wants to chat with, for the link on this blog that's
http://stserverdnsname/teststlinks.nsf/root/immediatechat.htm?opendocument&UsertoIM=CN=Carl Tyler/OU=US/O=Instant
Where the parameter UsertoIM contains the fully qualified name of the person to chat with.

Then the window loads an empty popup window to check that popups are allowed, if popups aren't allowed then the Sametime links window won't appear, so it's important I let the user know if that is the case, otherwise they will sit there for a long time...

Obviously stserverdnsname should be replaced with your sametime server name.

Have you ever wanted to put a Stlinks place awareness list on a page?

Category
Search Score : 91%
Only to realize when you do that the STLinks place awareness code is loaded in it's own popup window, and if you try putting it in an iframe you get a bunch of JavaScript error messages as the applet is talking directly to the place awareness list with the expectation that it's in it's own popup window? Well I have, and it's been a pain I can tell you. Recently LotusUserGroup.org came to me asking them to help add Sametime awareness to their website. So I decided it was time to figure out an easy way around this STLinks out of the box limitation.

At first I just tried to tweak the STLinks JavaScript code to get rid of the Javascript errors, but this proved to be a real pain in the arse, then a bright light came before me and I had an idea, why not build my own awareness list using the functions

STLinksEnterPlace - Enters the user in a specified place
STLinksUserEnteredPlace - The event when a person enters a place
STLinksUserLeftPlace - The event called when a user leaves a place

An important part of being able to do this is knowing that the eventSTLinksUserEnteredPlace is called for every user in a place, even for the ones that were there before you got there. The thing that's nice about this solution is that it requires no changes to the stlinks server code. SO no hacking JavaScript etc. it just uses the plain out of the box STLinks code.

So knowing that you get an alert for every person in a place when you enter it, it is easy to build up an array that contains the information for all the users in a place. The array used for tracking the local list of users in a place is users and users are added/removed from it through the addUser and userLeft JavaScript functions.

The user in a place is written a DIV, in this case a DIV called stplacelist by the function refreshDIVList which is called every time a user enters or leaves the place.

Click on Read More to see the code and download the htm file if you want it.

It's come back to me...

Category
Search Score : 90%
OK I didn't remember, but when I received an email telling me the titles of my sessions I was able to cross reference to my journal to get their details. They are:

In the Best Practises track:
BP102 It's a Virtual World: Effectively using VMWare in Your Environment
Have you ever thought there must be a better way to test your new replication layouts, Sametime Connectivity, without stacking up machines in your cube? Maybe you want to see if your applications work with later server versions without having touch production servers? Perhaps you want to demonstrate a Lotus product running on a new OS? This session will give you an introduction to VMware, some hints and tips on how to use it to help save time testing and deploying Lotus applications.

and in the Application Development track:
AD218 Working with Customers via the IBM Lotus Sametime Links toolkit.
Come and learn how you can get more out of Sametime Links than simple Instant Messaging. STLinks is a powerful toolkit that comes with Lotus Sametime, used in innovative ways, STLinks can help you provide professional quality support and services to your customers. In this session we’ll explain how you can add Sametime Links to your site, how you can build a simple queuing mechanism, and the other powerful features available through Sametime Links.

I don't think the sessions I submitted on SIP, a customer example of using Sametime with SMS or the general one on the explaining the value of realtime communications got accepted.

Two sessions isn't bad at all and I think both are interesting and extremely useful topics.

Microsoft finishes the Web based version of Office Communicator.

Category
Search Score : 89%
Microsoft wraps up Web IM for the office - This is one of those things I got to see a couple of weeks ago in Seattle. I have to say they did a nice job, the thing I really like is that it doesn't use ActiveX or any Java applets, which means they have a really broad support of different browsers, and it looks almost identical to the full client version. Technically it's done with AJAX (although it doesn't use the XML bit). I often wish STLinks was using AJAX versus the hidden Java applet.

Sametime awareness without Java??

Category
Search Score : 89%
For a while now (ooh a few years) I've been wanting one of our developers to write a servlet for me that can return an image of the status of a Sametime user. Why would I want to do this? Well a key reason is that whilst I really like the way STLinks can provide awareness on a web page, if you're running something like Firefox then most people don't load the signed applet on the page as it's a pain. So it would be nice to have the initial awareness without requiring Java, and then only showing the Java applet security warning when the person chooses to chat. The other thing that I get as a benefit of using a servlet for creating the image, is that I can use the image as an awareness indicator in my mail signature, now as it turns out, I can do that for Outlook, Outlook Express, Yahoo, Thunderbird etc. but not Notes mail, so a bit of a pain that really. Anyway, We haven't fully tested it yet, but I figure it won't be bad for the servlet to get some action, so here they are for a number of our bots. What's nice is that I've made it so that the status of these bots will still update, with no manual page refresh being needed.

I'd be interested to know what people think about this approach to awareness versus the embedded applet approach, you should notice this is much quicker to give status than the STLinks on the left, which you can only see if you're using IE anyway.
Carl Tyler Instant Sales Zipcode Details Telephone Areacode Lookup Domino Designer Help US Weather Stock Details


Do you have a Sametime SIP connector setup and would like to show the users presence on a web page

Category
Search Score : 88%
or chat with them through Sametime Links? It came to me in a flash at the weekend, that this should be possible if the name can be resolved OK. Even though this is not documented anywhere I got it working. Here's what you have to do.

First, you must be an authenticated STLinks user, this does not work for anonymous users. Second you need to have a writeSametimeLinks function call in the right format which is:

writeSametimeLink("@E carltyler@lcs.impeople.com","Carl Tyler on LCS box",false);

Notice the sip address preceded by the "@E " (note the space). By doing this you can get the awareness for the user on the other system and chat with them.

stlinkssip.jpg

How can you figure out the name format for STLinks so that it doesn't need to call the resolver

Category
Search Score : 87%
With Sametime Links there is a command that displays the awareness state for users, the command is typically something like this:

writeSametimeLink("CN=Carl Tyler/OU=US/O=Instant","Carl Tyler",false)

The first parameter is the UserId for the person, the second parameter is the display name you want used for the person, and the last option is if you want the name to be resolved by Sametime.
Basically you want to avoid using the resolve option of true, as this puts a burden on the Sametime Server (which is already struggling with the Notes 6.5 and later awareness calls) so try and leave the resolver alone. By not calling the resolver, you'll have less impact on the server and the awareness state for the user will also display quicker on the page. Typically the STUserID is the canonical name of the user, so for example, Carl Tyler/US/Instant is CN=Carl Tyler/OU=US/O=Instant, seems easy enough, but what if you're using LDAP? Well then the name format typically changes to something like CN=Carl Tyler,OU=US,O=Instant.

But let's say you're still having problems, and you're not sure what format your Sametime server is seeing (as this can be tweaked in the Sametime config). The easiest way is to get a page working where you login to Sametime Links, and adding an additional function to the page that shows you your logged in STUserID, then form this you should be able to work out what the other user name formats are. Here is the function to add to your STLinks page:

function STLinksLoggedIn(myUserId, myUserName){
    alert("ST Links Applet Logged in with UserID " + myUserId + " and the display name " + myUserName);
}

Sametime performance impacted by Windows Server 2003 Service Pack 2

Category
Search Score : 86%

An important technote if you're using Windows 2003 Server as your chosen Operating System for your Sametime servers.

Domino and Sametime performance issues traced to Windows Server 2003 Scalable Networking Pack (#1295167)
The following are some examples of how this issue has impacted IBM® Sametime® customers. Keep in mind that the following list is not complete and that symptoms are intermittent. The issue impacts random users periodically. End users may experience one or more of the following problems:

* Sametime client log-ins (Sametime Connect client, Sametime meeting room client, STLinks applications) are intermittently taking up to ten minutes to complete.

* Sametime chat windows are opening slowly when attempting to chat with another user.

* Meeting components are slow (can be refreshing pages or whiteboard).

* In the sametime.log, Stmux reports that it is full.

* Application sharing and screen sharing appear slow or appear to hang.

* Web pages are loading slowly.

Microsoft Unified Communications API roadmap

Category
Search Score : 86%

Microsoft Unified Communications API roadmap, It covers the following APIs and documentation:
  • Microsoft Office Communications Server 2007 Server SDK
  • Communications Server 2007 Speech Server Documentation
  • Microsoft Office Communicator Automation API
  • Live Meeting 2007 API Reference Guide
  • Microsoft Office Live Meeting Service Portal API Documentation
  • Unified Communications Managed API V1.0 SDK
  • Microsoft Unified Communications Client 1.0 SDK
  • Microsoft Unified Communications AJAX SDK

I would love to see a roadmap from Lotus on the Sametime/UC APIs as there are lots of outstanding questions, is TCSPI going to be around in the future, will it be migrated to Simens APIs, what's happeing with APIs around Unyte, can I take Sametime TCSPI apps and use them with Unyte, what about the C++ and COM toolkits, are they dead, what about the Java and STLinks toolkits, are they being enhanced? What about lotusscript support for Sametime in Domino agents? Is the Sametime Community Server API going to be enhanced, are all future Sametime apps expected to be plugins?

I am often asked

Category
Search Score : 86%



as I'm sure many other partners are, how companies are using our products within their organizations.  Well one of the most recent additions to our product family is Instant Queue Manager which allows a group of people to appear as a single entity, HR Helpdesk, IT Helpdesk etc.  Well using Queue Manager it is very easy to add a link to a queue on your website using STLinks, and to your regular Buddylist.  But where it can become really valuable is when you can give access to a queue when people most need it, filling in that expense form, updating your 401k, you get the idea.

A great way of getting this in place help is using the new IM support within the notes 6.5.x client, whilst you could put the link within a form, or in place within a view, you can also add it to an action toolbar using @Command( [SendInstantMessage] ; names).  It would be great if there was an @function to check if you were logged onto IM and if you weren't hide the button, but that isn't there yet.

By doing this can you can provide access to the Queue from within Forms and Views, as can be seen here.
A picture named M2

When building new Notes/Domino applications poll results.

Category
Search Score : 85%

Good to see, and I thought somewhat suprising to see that no one is using Notes/Domino just for e-mail.

When building new Notes/Domino applications are they:
A mix of Notes and Web apps - 58.33% - 56 Votes.
A mix of Notes and Web apps:
votes (56)
All Notes apps - 17.71% -  17 Votes.
All Notes apps: votes (17)
All Web apps - 15.62% - 15 Votes.
All Web apps: votes (15)
Neither we purely use Notes for e-mail - 0% - 0 Votes.
Neither we purely use Notes
for e-mail: votes (0)
We don't use Notes or Domino 8.33% -  8 Votes.
We don't use Notes or Domino:
votes (8)


A new poll has been started "Does your company use STLinks?"

Sametime 8.0.1 Connect Web API Toolkit Hint and Tip.

Category
Search Score : 83%

Sametime 8.0.1 now includes the Connect Web API Toolkit.  This allows you to put Sametime Awareness on a web page using the Sametime 8.0.1 client as the engine to resolve users and do the chat etc. What's actually happening is that the Sametime 8.0.1 client is loading a mini web server, which in turn is loading a servlet (stwebapi), which is then communicating with the Sametime Connect Client. So something like this.

ST ConnectWebAPI
The webpage, loads the stylesheet and the JavaScript file from the mini Sametime web server from port 59449.  Which returns information and events, and receives requests from the web page.

I have to be honest here, I am a little disturbed that 3rd party webpages now have the opportunity to interact with my Sametime connect client, for example, I could have code on this page that tries to communicate with your Sametime Connect WEB Api servlet, and I won't get any authentication request etc.  I really hope no buffer overrun type things are discovered here.  I am worried that this is potentially a huge hole in the Sametime client, and into your organization.  So for me personally, I'm wary of using it in environments where users can access external websites (which is almost everywhere).

You can be logged in on a web page as Fred Smith, and the Sametime Client could be logged in as Joanne Blogs, and when Fred clicks on a user to chat in the web page, the chat window that appears will be for user Joanne chatting with the other person.  So different to the behaviour you may be use to from Sametime Links and something to be aware of.

If you do have a firewall installed on your machine, you're also likely to receive a firewall warning when you hit a page which is trying to hit your Sametime Client, so you will have to accept that to see the awareness in a page.

Anyway back on to my hint/tip.  Using the Connect client for awareness is all well and good, but what if you're on a webpage in an internet cafe, or you're on a machine that has an old Sametime Connect client.  Well if you're using the Connect Web API toolkit, then you'll get nothing, no awareness.  So what you really want is someway of identifying that Connect Web API is available, and if it isn't use STLinks instead.  I couldn't find an example that shows how to do this, and I'm not sure IBM have thought about it too much.

Anyway this is what I came up with.

These few lines are the standard lines to load/initialize the ConnectWebAPI :

<!-- Step #1: Import the ST Connect Web API Stylesheet -->
<link rel="stylesheet" href="http://localhost:59449/stwebapi/main.css" type="text/css" />

<!-- Step #2: Import the ST Connect Web API getStatus JavaScript include file -->
<script type="text/javascript" src="http://localhost:59449/stwebapi/getStatus.js"></script>

So now before we decide if we want to use Sametime Links or the Connect Web API, we need to check to see if  ConnectWebAPI is available.  We do this by checking for a variable that is declared in the getStatus.js file. I make that easier to reference by wrapping it in a Javascritp function.

<Script>
function IsWebConnectAvailable(){
    if (self.getstatus) {
        //The Sametime Connect Client is available
        return  true;
    } else {
        //The Sametime Connect Client is available
        return false;
    }
}
</script>

We can now reference that function when we want to see if we want to use STLinks code or ConnectWebAPI code.

<script>
if ( IsWebConnectAvailable()) {
    //Use the ConnectWeb API code here as it's available
    alert('Connect Web API is available');
} else {
    //Use STLinks code here as Connect Web API is not available
    alert('Connect Web API is available');
}
</script>

So if you want to intelligently use the right client that should get you started.

I noticed yesterday that IBM's API documentation now includes this great paragraph.
This information contains sample application programs in source language, which illustrate 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.

Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows: © (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. © Copyright IBM Corp. _enter the year or years_. All rights reserved.


So I should now include, the following:
© Epilio 2008. Portions of this code are derived from IBM Corp. Sample Programs. © Copyright IBM Corp. 2008. All rights reserved.

I would also like to include the following, if IBM uses any of my sample code, please do the following:
Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows: © (your company name) (year). Portions of this code are derived from Epilio. Sample Programs. © Copyright Epilio _enter the year or years_. All rights reserved.

This only applies to IBM, other companies and individuals can use my sample code without this copyright notice.

Some excellent new features in Sametime 8.0.1!

Category
Search Score : 83%

It's great to see IBM doing things with Sametime again, and it's refreshing to see that these additions in 8.0.1 don't require an additional WAS or DB2 server, yeah!

Adam Gartenberg has posted a list on his blog the new features in Sametime 8.0.1

The stand out features for me are:
1. AdminP integration for name changes, long overdue and great that this is now part of Domino administration and not some separate command line utility.
2. After 10 years, they finally saw fit to update the audio codecs used in Sametime Web Conferences!
3. Sametime connect web api.  What this means is that if you have a Sametime Connect Client (probably 8.0.1) installed, you can have awareness which is retrieved from that client displayed in a webpage, and initiate a chat within the Sametime Connect Client from a browser. I think this is restricted to Windows machines.  This is the same approach Microsoft has taken and for intranet sites it can be great, for support on websites or areas where you can't control if user has a Sametime Client installed you can still use STlinks.
4. The ability for a meeting moderator to throw someone out.

I did post a few questions for Adam in his comments:
When you remove a user from a meeting, can they rejoin?
Does 8.0.1 record meetings in an alternative format to Rap files?
Does 8.0.1 support Internet site documents?  This is a serious restriction currently, and lack of support means additional hardware must be purcahsed if you want to support multiple SSL certificates and domains for example. It also means Traveler cannot be run on the same server as Sametime

Sametime 7.5 emoticon hint and tip...

Category
Search Score : 83%
One of the nice new features in the upcoming Sametime 7.5 is the addition of emoticons (finally I hear you say)
st75emoticons.jpg
These look great in the new Sametime client, but if you're chatting with someone that may be on Sametime Links, you still get the text representation. It's really not very difficult to allow your Sametime links client to support the Sametime 7.5 emoticons, here's what you have to do:
  1. Locate the Sametime 7.5 emoticons
    After you install the Sametime 7.5 client, you can get the Sametime emoticons from the following directory:
    C:\Documents and Settings\username\Application Data\Sametime\.metadata\.plugins\com.ibm.collaboration.realtime.palettes\palettes\Smileys
  2. Create a new folder on your Sametime server called "emoticons" location:
    \Lotus\Domino\Data\domino\html\sametime\stlinks\img\emoticons
  3. Copy all the Sametime 7.5 emoticons into this new folder
  4. We need to update the Javascript contained in the file "chatApplet.html" to support the new emoticons. There is a chatApplet.html in each stlinks subdirectory example, en, fr, de etc. If you support multiple languages, you will need to update this file in each sub directory.

    Within the chatApplet.html file find the function function parse(msg) the function ends with:

    return msg;
    }


    Change those two lines to be:
    //Code to allow for the Sametime 7.5 Emoticons
    msg = msg.replace(/P|:\P/g, "<img src=..\\img\\emoticons\\EmoticonTongue.gif>");
    msg = msg.replace(/\/:\)|\/:\)/g, "<img src=..\\img\\emoticons\\EmoticonEyebrow.gif>");
    msg = msg.replace(/0)|0:\)/g, "<img src=..\\img\\emoticons\\EmoticonAngel.gif>");
    msg = msg.replace(/:\'\(/g, "<img src=..\\img\\emoticons\\EmoticonCrying.gif>");
    msg = msg.replace(/0|o|O|:\0|:\o|:\O/g, "<img src=..\\img\\emoticons\\EmoticonSurprised.gif>");
    msg = msg.replace(/)|:\)/g, "<img src=..\\img\\emoticons\\EmoticonHappy.gif>");
    msg = msg.replace(/lol/g, "<img src=..\\img\\emoticons\\EmoticonLaugh.gif>");
    msg = msg.replace(/\;-\)|\;\)/g, "<img src=..\\img\\emoticons\\EmoticonWink.gif>");
    msg = msg.replace(/|:D/g, "<img src=..\\img\\emoticons\\EmoticonBigSmile.gif>");
    msg = msg.replace(/8-\)|8\)/g, "<img src=..\\img\\emoticons\\EmoticonCool.gif>");
    msg = msg.replace(/@|:\@/g, "<img src=..\\img\\emoticons\\EmoticonAngry.gif>");
    msg = msg.replace(//|:\//g, "<img src=..\\img\\emoticons\\EmoticonConfused.gif>");
    msg = msg.replace(/(|:\(/g, "<img src=..\\img\\emoticons\\EmoticonSad.gif>");
    msg = msg.replace(/$|:\$/g, "<img src=..\\img\\emoticons\\EmoticonShy.gif>");
    msg = msg.replace(/S|:\S/g, "<img src=..\\img\\emoticons\\EmoticonGoofy.gif>");
    msg = msg.replace(/\(\i\)/g, "<img src=..\\img\\emoticons\\EmoticonLightbulb.gif>");
    msg = msg.replace(/\(y\)/g, "<img src=..\\img\\emoticons\\EmoticonThumbsUp.gif>");
    msg = msg.replace(/\(n\)/g, "<img src=..\\img\\emoticons\\EmoticonThumbsDown.gif>");
    msg = msg.replace(/rofl/g, "<img src=..\\img\\emoticons\\EmoticonHysterical.gif>");
    return msg;
    }

    Hmm, the blog is automatically adding smilies for text, I don't know how to stop that so this emoticoncode.txt file contains the code. Use right mouse button on the link and select save target as...
  5. Save the modifed chatApplet.html file

By the way, this same code allows you to add emoticon support to prior versions of Sametime Links too. So if someone sends : - ) they receive smile.jpg etc.

I'm sure someone that understands regular expressions better than me could have done a better job with my replace strings, but this works, it's free code, so I don't care

Back from Lotusphere 2006!

Category
Search Score : 83%
I have returned safely from Lotusphere 2006! Sorry for not blogging during the show, things were so busy at the booth that I never got a chance there and my hotel did not have an internet connection, so I just decided to take a break. So how was it? Was it a hit? In my opinion YES, Lotusphere 2006 was a hit. The biggest news from the show wasn't hannover, it wasn't Notes 10, it wasn't the fact hat Lotus re-announced a multi year commitment to Lotusphere like in years past, but the big news was the IBM that was sleeping at the wheel, hit the rumble strips to be woken up abruptly to see a juggernaut coming at them, rather than let the juggernaut just run them over they decided to do something, and they showed they have put investment back into Sametime and announced the upcoming Sametime 7.5!

Sametime 7.5 will go a long way to stop some companies that were considering jumping ship to Microsoft to wait around to see if they really have a need to switch now. I have to wonder why they waited so long to get it, but then maybe the lack of movement of customers to the Workplace IM product helped them see $$s were coming from one product and not another. I'd like to think that people like myself getting a bad rap for beating them up all the time over an aging product with a very dated UI also helped, either way, they're doing something about it, so better late than never. The other big news from Lotusphere for Sametime was the public IM connectivity with AOL, Yahoo and Google. This along with the fact that the gateway will be free to customers on active maintenance etc. is a good thing. and actually gives IBM a benefit over Microsoft for customers around cost.

The announcements did create a lot of new questions, which don't yet have answers, hopefully they will be answered before the product ships sometime in the summer.

I had two Sessions and a Birds of a Feather (BOF) at Lotusphere. The BOF had 46 people in a small hotel suite so it was standing room only, James Mermott from Ernst and Young did a great job summarizing his experiences with the Sametime SIP gateway, and we were very lucky to have the IBMers that run the IBM SIP gateways come along and answer many questions that only they could know. As I expected many people had set up a Sametime SIP server in the past, but then once setup didn't know who they could connect to, so I was pleased to let them know that trustedSIP.com will shortly be available to allow the exchange of SIP server details between trusted and verified companies. Register to get the announcement when it goes live at trustedSIP.com

My next session was on Sametime Links, and some of the things you can do with it. I was given a huge room for this one and I didn't count how many people attended, it's safe to say I had room for a few hundred more though. My voice was shot by this point so I think the presentation went well, but it sounded like a dalek was presenting. I had some good questions after the session and I was able to get rid of some of my old Lotus shit. I don't really have any fun anecdotes around STLinks so the presentation was a little dryer than I would typically like. It will be interesting to see the evals.

The VMWare Sessions was a sell out, with people watching in an overflow room. I guess that should help settle the doubts of those people that didn't think it would have any relevance to a Lotus audience. This sessions went well, there was room for a few digs at Microsoft and all the demos worked and everyone seemed to like the Star Wars reference.

My Lotusphere slides and STLinks database have been posted and can be found here: http://www.instant-tech.com/instant.nsf/root/ls2006slides.htm

I had a few good nights of partying (hence the voice) and managed to catch up with some people I hadn't seen in a long time. I would go through them all here, but just like the Oscars I would probably forget someone and I'd feel bad, so I'll just say it was great to see everyone! Now to go through all these leads, and send out all the information we promised everyone.

I think Show n Tell Thursdays are a great idea, but it just doesn't work for me when it comes to writing them

Category
Search Score : 76%
Sure I could write little tidbits like this, and then set the publish date to Thursday, but what's the point? If I've written it I might as well push them out. Show 'n' Tell is so American too, so along the lines of what comes to mind when I hear Show 'n' Tell, welcome to "Everyday is Doctors and Nurses day", not sure Americans will get the joke, but I know Brits will.

Anyway, today's item to show is the importance of presence, and how companies should really start to think about how they can benefit from it. Presence can be used pretty much in any application, and presence can be more than just the presence state of an individual. You'll hear many terms used to describe what you can have presence for, be it Role Agents, Bots, Queues or whatever, the key thing is you can display presence for more than just a person. So now that we know we can display presence for more than just users, where should we user presence awareness, well obviously anywhere there is a persons name should be made presence aware and in Notes 6.5x and later that is pretty easy to do, but what about other entities, help desk queues? Well the places it make sense to add presence for help desks is where you get many of your current support calls today.

One example, is a customer who recently came to us looking to make help more obvious within the Sametime meeting center. They were finding many people enter a Sametime Meeting, and then have no idea how to share screens, show the whiteboad etc. So the customer wanted to post links to FAQs etc. in a very obvious spot on the page. We came up with an expandable and collapsible section at the bottom of the page that really calls out the fact that help is available (the colours, content etc. here are all customizable and is purely for demonstration purposes). This customer is also someone that uses our Instant Queue Manager product so we extended the example to include a link to their support folks. So here you can see the customized meeting center, with links to some FAQs but also to live help through STlinks. If no agents are available then the click for help graphic automatically disappears.

MeetingCenter.gif

So think of this and where people need help, and where elsoe does someone need help? Well there's a good chance if someone has pressed F1, they need help, so a really easy place to add live help using the new features in Notes 6.5x and later is in the Notes help system. It's pretty easy to do and takes jsut 5 minutes to setup.

  1. First, make sure you have designer rights to the help database. Next open up help database in designer and open the form "Topic1"
  2. What I did was just add a table, fitted to margins, with 2 columns, hid the lines, cut and pasted the 'Subject' field into the left column
  3. Then I created a new Computed for Display field, of type Names into the right cell called 'HelpAgent', set the property to show name awareness and gave it a formula of the person/queue etc. I wanted to show awareness for.
  4. Then I saved the form


  5. noteshelpdesign.gif

    So now when someone presses F1 for help in Notes, they see the following:

    noteshelp.gif

    So if someone is still struggling to understand what the help means, they can click to speak to a real person for assistance.

    So think about all the places people need help, get stuck, or are unsure what to do and think about adding presence awareness as another tool to help them focus on their job rather than the tools that they use.

    In conclusion, this is a great way to have end users loving the IT department (and a way to make new enemies in the support center). If you haven't yet realised it, this is a great way to help the grey haired folks that think IM is for teenagers to suddenly get it, show them how they can suddenly be chatting with a real person when they're struggling with something and they typically get the aha moment, IM really is more than just chat...

    What funky places are you using awareness? Feel free to share?

Sametime Awareness not working in Quickplace

Category
Search Score : 69%

Or as IBM likes to say it "IBM Lotus Instant Messaging and Web Conferencing awareness not working in IBM Lotus Team Workplace", anyway here's a situation you may come across and this might save you a few hours trying to figure out the solution. 

 

Imagine the following setup, Server "ST" running Sametime, Server "QP" running QuickPlace and Server "LDAP" running LDAP.  ST and QP are both using the LDAP directory on LDAP, and QP has been setup with Sametime awareness with server ST.  You login to Quickplace as John Doe and you see your name, but it has the not logged on icon.  Someone else logs onto Sametime and they can John Doe logged on.  They double click on the name and send a message, it appears on your desktop in a STLinks IM window and you can respond and chat with them.  Hhhm, how can that be when John Doe supposedly is not logged on? 

 

It turns out the issue was a duplicate name for John Doe in the LDAP directory, removing the duplicate name, correctly showed John Doe as online in Quickplace