Did you ever wondering if it was possible to build your own Sametime Mobile application ?

Two things here :

there isn't any "mobile" SDK, like the one we provide to create sametime bots in java, or sametime connect plugins

you can not directly interact with the Sametime mobile application from another application.

So how can you build your own application ? Well, exactly like our own mobile application : by using the sametime proxy.

The Sametime Proxy

The Sametime Proxy is one of the several servers available in Sametime Communicate or Sametime Complete. Its role is to act as a proxy between a browser and the community server. Basically, it transforms HTTP methods (GET, PUT, DELETE, etc) into VP protocol, the protocol used by Sametime Community Server.

It is bundled with a Sametime Proxy Web application that customers can customize in every way they want. They can also explode it into several pieces, in order to integrate the contact list in their intranet for instance, or to add Sametime awareness to every name in their applications or intranet (this is what we used in IBM Connections for sametime integration)

In a hybrid mobile application (using IBM Worklight), we can easily imagine a webcontainer which will display the customized web application. It is obviously the most simple use case.

The REST API

The Proxy Server expose several tools for quick development, such dojo libraries. In a few lines of javascript and CSS, it is possible to include several parts of the Sametime webclient in any web application, or to create a new webclient.

But all of these dojo API are based on a lower-level API, the REST API.

Each time you connect to the server, you send a message, you set your status, you receive a message,etc. there is a HTTP dialog with the proxy server. And because most languages are able to open a socket a send HTTP command to a server, you can write a Sametime client in any language you want, including of course cocoa for iPhone/iPad or java/python for android.

All you have to do is to read the Proxy toolkit guide (included in Sametime SDK)

The basics

Because every query in Sametime is asynchronous, while the HTTP protocol is synchronous by nature, you will have to understand a few things.

1/ The first thing to do is to authenticate on Proxy Server.

POST https://<proxy_server>/stwebapi/user/connect HTTP/1.1

You will have to post your username and your password. You should receive here a sessionID (burried in the JSON response)

2/ Once you get a sessionID, you will have to get a special token called "RTC4Web-Nonce"

GET https://<proxy_server>/stwebapi/RTCServlet/<sessionID>/user?userName=<your_username>&method=put HTTP/1.1

You shoud get the RTC4Web-Nonce in the JSON response.

3/ Remember the asynchronous problem ? Now that we have our RTC4Web-Nonce, we can start a nearly infinite loop in a separate thread (otherwise the program will hang) to this url in order to be notified of incomings events. You will have to provide the RTC4Web-Nonce as a HTTP Header in each of these requests

GET https://<proxy_server>/stwebapi/RTCServlet?format=json&dojo.preventCache=<timestamp> HTTP/1.1

note: I have an error (400) in my python program when I'm not setting the dojo.preventCache parameter to a random value, while it is supposed to be optional

Two possibilies here :

a timeout occurs and we can ignore it then process to the same request again

the proxy server is responding. This occurs when something happens, such a message received, or someone who has just open a new chat window with us, someone who is typing some text, etc.

In the latest case, the JSON response contains anything we need, such the author of the message, his CN (LDAPcommon name), the message content, and so on.

As you can see, it's pretty easy to implement, but you will have many other information in the toolkit guide, in order to retrieve & manage contact list for instance, or change your status.

Also be aware that, even if the webclient provided with the proxy is able to make audio/video calls, and even if our mobile application is also able to make audio/video calls, it is NOT possible to do the same thing using pure REST APIs. And there is no documentation yet for this purpose.

Download

My python sample script is available here for download (just update SERVER, USERNAME, and PASSWORD according to your needs)

As a supplement to my previous entry regarding new IBM/Polycom integration, I've just finalized a "deployment scenario" entry in Sametime Wiki.That entry will provide you more informations and an insight of what you can easily do with a Sametime/Polycom infrastructure.

Genesys provides two
softphones : a basic one and "Interaction Workspace" - Genesys
Interaction Workspace is a smart-client application that provides
agents and knowledge workers with non-intrusive access to the
information, processes and applications they need to get their job
done more efficiently and increase customer satisfaction.

But, for an IBM/Genesys
implementation using SUT Lite seems more natural and more easy for the end-users. He can interact with telephony system, contextually...

SUT
Lite Client is a new communications option that lets you use your
Sametime
Connect Client to make and receive voice and video calls.

A video demo of SUT Lite in a video environment :

SUT
Lite Client calls can be made to (or received from) any other phone,
a/v conferencing bridge, or video device that can be reached
via a SIP Trunk connection between the Sametime Media Manager and and
a SIP infrastructure*

The implementation of SUT
Lite is very easy and quick.

SUT
Lite Features :

- Softphone : Users
can initiate and manage phone calls through their Sametime Client
embedded softphone using the computers built-in microphone and
speakers, a USB speakerphone, or a headset. Calls may be placed and
received by the softphone when properly configured with a certified
telephony, audio or video conferencing system.

- Basic
Softphone User Features : The
software includes basic call control capabilities. Users can click to
call, dial through Quickfind or Dial Pad, phonebook and view call
history. Within a call a user can raise/lower volume, start/stop
video, leave call and mute/unmute. Moderator call controls include
mute one or all participants, lock call, invite others and end call
for everyone.

You have to configure routing rules
that define inbound routes (from a third-party SIP endpoint to IBM
Sametime) and outbound routes (from Sametime to the third-party SIP
endpoint) for SIP-based calls.

This is the rules I deployed :

The Genesys Dial Plan is 66xx.

So, in that case, I can call directly a Genesys Call Center agent by typing sip:66xx@ibm.com

A new killer feature is available within LotusLive : IBM Sametime Web Chat.

Via a simple Web browser, you can chat with any LotusLive user through an AJAX based Sametime Client.You don't need to download and install a standalone Sametime client or you don't need install a browser plugin... Nothing is required except IE, Firefox...Awesome, isn't it !!

A few months ago, I wrote a little framework
making easy to write a bot for Sametime using the Python language syntax
instead of Java.

The
framework has continue to grow up, and this new version is now more
stable than the previous. Bots can now detect when the user close his
chat window, and they can also receive files.

This
framework can be very handy when you have to demonstrate Sametime in a
different way that you used to do, and for those who were at
TechSoftware 2011 (Bois-Colombes), it's the framework I used during my
demo.

We currently have
several bots running under PyBot on our Sametime 8.5.2 demo platform at the IBM Collaboration Solution
Center (Montpellier) and some of them can have a "real"
conversation, can tell you who is Romain Lienard (using IBM Connections Profiles
Integration), what is the link for OTR -our internal travel reservation tool- using IBM Connections Bookmarks Integration,
where is Bois-Colombes (using Google Maps integration), or convert a PPT
file into an ODP file simply by sending your ppt file to the bot. I have even sent a tweet using a bot a few
days ago !

If
you want to have an idea of how I wrote the sample demo bot that you
can see on top of this entry without download the zipfile, below is the
sample demo script :

Genesys UC Connect facilitates the integration of Genesys Customer
Interaction Management (CIM) software platform with Lotus Sametime. The
integration helps bring knowledge workers from diverse departments and
the back office together into the contact center process flow on a
part-time basis without formally becoming a customer service agent. It
does this by intelligently routing calls based on presence, dynamic
location awareness (provided by Lotus Sametime), plus a host of
intelligent routing controls the Genesys software provides.

Genesys UC Connect for IBM Sametime “subscribes” to presence provided by
IBM Sametime to determine the availability or location of experts, and
back office and branch office workers. Genesys UC Connect for IBM
Sametime enables contact centers to leverage universal employee access —
the ability to extend the resource pool to encompass any agent or
expert — to enable branch employees, back office employees, and expert
agents, regardless of their location, to efficiently manage their time
and resources.

Genesys Product Team has created a community on Lotus Greenhouse. The focus of this community is on business objectives, methods and
technical means for extending customer service beyond the traditional
contact center. Utilizing Unified Communications and Social Enterprise along with
bleeding edge Contact Center solutions allows anyone in a company to
become part of the customer experience.

IBM Sametime PoT 11 & 12 October, 22 & 23 november :In this Proof of Technology you will learn how to communicate the business and technical value of deploying Lotus® Sametime® software in the enterprise.This session addresses both infrastructure and development topics and covers the capabilities and value of the Lotus Sametime family offerings.Participants will utilize hands-on exercises designed to reinforce key solution capabilities.

ObjectiveAfter attending this Proof of Technology workshop, you should be able to:• Identify important organizational drivers for unified communications and real-time collaboration• Explain key characteristics of Sametime Web Conferencing and Instant Messaging• Understand Sametime’s integration capabilities with your applications• Identify technologies which can be readily integrated with Sametime• List some IBM Business Partners who have Sametime offerings• Describe how to make Sametime meetings highly-available• Summarize the ability to customize Sametime with plug-ins and branding• Define how to securely connect Sametime to other instant messaging systems• Understand the value of Sametime and how it can benefit your organization as the foundation for unified communications and collaboration (UC²)

Lotus Domino 8.5 4 & 5 october, 15 & 16 november :

This Proof of Technology (PoT) describes and demonstrates the valuable new features in IBM Lotus Notes® Domino® 8.5. Topics range from Features and Functions, Licensing, Administration, Security, Upgrading, Mobility and Application development. The contents of this PoT includes 14 presentations, 6 labs, a .wmv video demonstration and instructor guide. The image is hosted on Demonet for remote access, with setup and access instructions contained in the instructor guide. The entire PoT is expected and recommended to take 2 full days to cover all material, however, each presentation and lab is independent and the PoT can be customized for delivery based on customer specific and expressed interests.

ObjectiveThis PoT is intended for customers who are are on previous versions of Notes Domino, and an opportunity for new customers to experience the power of Notes Domino. The presentations will provide extensive coverage of the product's features and functions and the companion hands-on labs will re-enforce how Notes Domino delivers the end-user experience with efficiency and increased developer productivity that drive business value.

WebSphere Portal TBD :

This Proof of Technology (PoT) offering is designed to demonstrate the exceptional user experience provided by WebSphere Portal software with afocus on business value and solutions, and the exciting new web 2.0 features it enables and leverages, Additional focus areas includeadministration, infrastructure and development topics. Participants will receive a hands-on experience of the WebSphere Portal product as well asthe integration capabilities found in the WebSphere Product Family. This offering also shows how WebSphere Portal can be used to implement aresponsive and easy-to-use portal that has rich function delivered from the secure and scalable infrastructure of WebSphere Application Server.

ObjectiveThe objective of this session is to demonstrate how IBM WebSphere Portal allows you to customize your work environment to the needs of yourbusiness and present content and applications in a consistent fashion. Portal gives you the ability to easily provide a highly personalized userexperience based upon the end user’s previous interactions with your portal, their personal preferences, as well as attributes from their user profileor any other source.