Unified Communications & CollaborationSametime 8.5 Development
IBM Deutschland [email protected] | SW IT Architect for Lotus
2
Agenda● Übersicht - Sametime 8.5
● Eclipsbasierte RichClient-Technologie
● Sametime 8.5 Webclient
● Sametime 8.5 Meetings Web Client
● Audio & Video in Sametime
03/10/103
Lotus Sametime. Die Kommunikationsplattform
offenoffen erweiterbarerweiterbar Multi-PlattformMulti-Plattform skalierbarskalierbar sichersicher
03/10/104
Lotus Sametime 8.5. Die System Architektur
SametimeGateway
CommunityServiceMedia
ServiceUnifiedTelephony
AdvancedService
MeetingService
SametimeProxy
Sametime Clients
Externe IM Communitie
s
Enterprise Telefonanlagen
Embedded Anwendungen, Web Client,
Portalanwendungen und Sametime Mobile
PartnerA/V
Bridges
SIP, RTP
SIP, RTP
VP
VP VP
VP VP
VP VP
HTTP HTTP
HTTP
SIP, XMPP
SIP, TCSPI
SIP
Die Server Rollen werden dargestellt – diese können je nach Lastverteilung kombiniert werden
03/10/105
Sametime 8.5 Connect Client in Notes & StandaloneIn Lotus Notes 8.5.1 via Upgrade In Lotus Notes 8.5.1 via Upgrade
InstallationInstallationStandalone Rich ClientStandalone Rich Client
03/10/106
Sametime 8.5 Classic Meeting
● Domino basierte Anwendung● Browser basiert
03/10/107
Lotus Sametime 8.5.
IBM Lotus Sametime Connect 8.5 Client (Rich Client)
Neue Ansichtsmöglichkeiten in der Kontaktliste
Browser-basierter Instant Messaging Client (Thin Client)
Ideal für Browser VerteilungsstrategienSichere Alternative zu öffentlichen IM, z.B. für ein
Partner-Extranet
LeistungsmerkmaleKein Herunterladen von AnwendungenAJAX basierter Client (keine JRE notwendig)Teilfunktionen vom Rich ClientZugriff über den Sametime Web Proxy ServerWeb APIs zur Nutzung von Funktionen aus Web Client
03/10/108
Anpassbarkeit des Sametime 8.5 Web Clients
03/10/109
Lotus Sametime 8.5 Meetings
● Webkonferenzen ganz anders ... und viel einfacher▬ Mit einem Klick einen Konferenzraum eröffnen und ihm per Sametime Connect 8.5 Rich
Client oder Browser beitreten.▬ Teilnehmer einladen indem man ihren Namen aus der Sametime Kontaktliste per Drag &
Drop in den Meetingraum zieht▬ Inhalte bleiben auf Wunsch im Meeting-Raum für Folgemeetings erhalten
→ Dauerhafte „virtuelle“ Meeting-Räume▬ Aufnahme von Webkonferenzen als MPEG Video▬ Verbesserte Zuverlässigkeit und Erreichbarkeit der Meetingserver▬ Audio & Video per SIP im Rich Client
Im Rich Client Im Browser
03/10/1010
Meeting leader or approved user can record meeting – both the shared content and the meeting
audio. Save to standard .MOV file format
Room tools give you access to meeting room settings. Also use to create reports, showing attendance, action items, meeting minutes, and
what was shared.
Lotus Sametime installed client
Additional tools
Click to start/stop video. Video starts after joining
the audio call. Video ‘canvas’ area contains a
single composite embedded video stream.
Call and video controls
List of participants shows connection status
03/10/1011
Communication Enabled Business Processes.Integration mit neuen Web APIs
Verfügbarkeitsanzeige
Anzeige von prozessrelevanten
Personen
03/10/1012
Sametime Unified Telephony. Die Architektur
Telephony Control Server
Telephony Application ServerSametime RPC
REST / JavaTM
Presence Adapter Comm Adapter
AbstractCall ModelMedia ServerSIP
Proxy/Registrar
SIP Back-to-Back User Agent (B2BUA)
Service Implementations
SIP-basedCall Control
CorporatePhoneSystem
Sametime(Presence and IM)
Sametime Clients
TelephonyGateway
SIP
DeskPhones
Device/Rules Presence Call Control
VP
PSTN
SIP
VP
03/10/1013
Sametime Unified Telephony
Kombinierte Verfügbarkeitsanzeige Verwaltung von eingehenden TelefonatenIntegriertes SoftphoneAnschluss an Telefonanlagen
unterschiedlicher Anbieter
03/10/1014
Eingehende Anrufe
Welches Telefon soll Sametime für
eingehende Anrufe benutzen?
Anrufer will die Person erreichen und nicht das
Telefon
03/10/1015
Benachrichtigung über eingehende Anrufe
03/10/1016
Sametime Unified Telephony
03/10/1017
Regeln für eingehende Anrufe
Blackberryjederzeitalleunterwegsunterwegs
MobilephonejederzeitalleFrankfurtnicht am PC
Computer (VoIP)jederzeitalleFrankfurtverfügbar
Büro ErfurtjederzeitChefErfurtnicht stören
Mailbox19:00-08:00alle-offline
Mobilephone08:00-19:00alle-offline
SekretariatjederzeitalleFrankfurtnicht stören
MailboxjederzeitalleErfurtin Meeting
MailboxjederzeitalleErfurtnicht stören
Büro ErfurtjederzeitalleErfurtverfügbar
ApparatDatum/ZeitAnruferLokationIM-Status
Blackberryjederzeitalleunterwegsunterwegs
MobilephonejederzeitalleFrankfurtnicht am PC
Computer (VoIP)jederzeitalleFrankfurtverfügbar
Büro ErfurtjederzeitChefErfurtnicht stören
Mailbox19:00-08:00alle-offline
Mobilephone08:00-19:00alle-offline
SekretariatjederzeitalleFrankfurtnicht stören
MailboxjederzeitalleErfurtin Meeting
MailboxjederzeitalleErfurtnicht stören
Büro ErfurtjederzeitalleErfurtverfügbar
ApparatDatum/ZeitAnruferLokationIM-Status
03/10/1018
Sametime 8.5 - SDK
Sametime Monitoring and StatisticsToolkit
Browser IM Toolkit
Sametime Community Server Toolkit
Sametime Links Toolkit
Sametime Connect Web API Toolkit
Sametime Helper Toolkit
Sametime Java Toolkit
Sametime Directory and DatabaseAccess toolkit
Sametime Connect Toolkit
Sametime Gateway ToolkitMeeting Toolkit
Telephony Toolkit
Sametime Client Toolkit's
Client Telephony APIs Toolkit
Telephony Conferencing Service Provider Interface (TCSPI) Toolkit
Sametime Server Toolkit's
19
Agenda● Übersicht - Sametime 8.5
● Eclipsbasierte RichClient-Technologie
● Sametime 8.5 Webclient
● Sametime 8.5 Meetings Web Client
● Audio & Video in Sametime
03/10/1020
Sametime 8.5 Connect Client in Notes & Standalone
Beispiel: PlugIns
21
Agenda● Übersicht - Sametime 8.5
● Eclipsbasierte RichClient-Technologie
● Sametime 8.5 Webclient
● Sametime 8.5 Meetings Web Client
● Audio & Video in Sametime
03/10/1022
Verschiedene Entwicklungsebenen. Die API Layers
REST APIsKomplex, Verkettung von REST Anfragen
Base ComponentsJavaScript Framework unabhängigNutzt REST Anfragen aus REST API EbeneOhne BenutzeroberflächeNicht-Dojo basiertes UI kann mit Hilfe der Base Components entwickelt werden
Model LayerLive-Name Model um User Data Updates abzurufenChat Model für das Empfangen und Senden von Chat Nachrichten
Dojo UI LayerNutzt Base Component und Model Layer EbeneStellt Client UI Funktionen zur VerfügungCSS anpassbare und erweiterbare Widgets
23
Fully functional Browser IM Client
24
Fully functional Browser IM Client
25
Loading Base Components
<html><head> <script type='text/javascript'> var stproxyConfig = { server: 'http://stproxyServer.domain.com', //properties below are optional cssUrl: 'http://myServer.domain.com/pathToCSS/myCustom.css', jsUrl: 'http://myServer.domain.com/pathToJS/myCustom.js', plugins: { 'lnmpRemove': false } } </script> <script type='text/javascript' src='http://stproxyServer.domain.com/stbaseapi/baseComps.js'></script> ...</head>...</html>
26
Base JavaScript Components● Base Component controller object 'stproxy' to access Sametime Proxy
functionality● 'stproxy' contains one object for each functionality area, e.g. login,
buddylist, status, watchlist, location, chat, etc.● All objects in 'stproxy' provide functions to pass a callback and error
callback to handle JSON responses and errors, e.g.
● All error messages are localized
<script type='text/javascript'> function handleLogin(userDetails) {...}; function handleLoginError(errorCode, errorMessage){...}; stproxy.login.loginByPassword(user, password, status, statusMessage, handleLogin, handleLoginError);</script>
27
Login Types● Login by password● Anonymous login● Login by token
▬ Use in single sign-on (SSO) environments
28
Live Name Model● Live name model object to build (non-Dojo) UI on top of it
● Add custom data with 'stproxy.watchlist.onUpdate({userId: 'userId', myCustomKey: 'myCustomValue'})'
<script type='text/javascript'> var liveNameUI = myCreateLiveName(userId); //custom UI for livename var liveNameModel = stproxy.getLiveNameModel(userId);
/*model properties --> { userId: '...', displayName: '...', status: '', onUpdate: function(){}, ... }*/
liveNameModel.onUpdate = function() { liveNameUI.setStatus(liveNameModel.status); liveNameUI.setDisplayName(liveNameModel.displayName); ... } </script>
29
Chat/Group Chat Model● Easily build own chat UI on top of chat/group chat model object
<script type='text/javascript'> var chatUI = myCreateChat(userId); //custom UI for chat var charModel = stproxy.getChatModel(userId);
/*model properties --> { userId: '...', partnerId: '...', onMessage: function(message) {}, sendMessage: function(message){...}, ... }*/
chatModel.onMessage = function(message) { chatUI.displayMessage(message); ... } </script>
30
Loading UI Layer
<html><head> <script type='text/javascript'> var stproxyConfig = { server: 'http://stproxyServer.domain.com', //properties below are optional cssUrl: 'http://myServer.domain.com/pathToCSS/myCustom.css', jsUrl: 'http://myServer.domain.com/pathToJS/myCustom.js', plugins: { 'lnmpRemove': false } }
var djConfig = { parseOnLoad: true, locale: 'en' //dynamic, set in JSP, PHP, etc. }; </script>...
31
Loading UI Layer
... <link rel='stylesheet' type='text/css' href='http://stproxyServer.domain.com/dojo_1.2.3/sametime/ themes/WebClientAll.css' /> <link rel='stylesheet' type='text/css' href='http://myServer.domain.com/pathToCSS/myCustom.css' /> <script type='text/javascript' src='http://myServer.domain.com/pathToDojo/dojo/dojo.js'></script>
<script type='text/javascript' src='http://stproxyServer.domain.com/stbaseapi/baseComps.js'></script> <script type='text/javascript' src='http://stproxyServer.domain.com/stwebclient/widgetsLight.js'></script> <!-- load livenameLight.js instead of widgetsLight.js if only live name is integrated --> <script type='text/javascript' src='http://myServer.domain.com/pathToJS/myCustom.js'></script> ...</head><body class='tundra'>...</body></html>
32
UI Widgets for Integration<div dojoType='sametime.WebClient'></div>
<div dojoType='sametime.LiveName'></div>
33
UI Widgets for Integration
<div dojoType='sametime.UserInfo'></div>
<div dojoType='sametime.QuickFind'></div>
<div dojoType='sametime.Awareness'></div>
03/10/1034
Nutzung von UI Widgets.Eine einfache Integration in Webanwendungen
<div dojoType='sametime.WebClient'></div><div dojoType='sametime.LiveName'></div>
<div dojoType='sametime.UserInfo'></div>
<div dojoType='sametime.QuickFind'></div>
35
Using Sametime Widgets● Widgets can be created declaratively or programmatically● Programmatical creation of live name
▬ Creates live name with full Sametime capability (start chat, call, view business card, etc.● Declarative integration of web client
● All widget attributes documented in SDK documentation
<script type='text/javascript'> ... var liveName = new sametime.LiveName({userId: '[email protected]'}, liveNameContainer);</script>
<html> <head> ... </head> <body> <div dojoType='sametime.WebClient'></div> </body></html>
36
Plugins to add new Menu Entries● Add new menu entries to web client, chat and live name
● Disable plugins with 'stproxyConfig.plugins'▬ stproxy.plugins = {'lnmpRemove': false, 'mmpNewContact': false}
stproxy.uiControl.addChatMenuPlugin(...) stproxy.uiControl.addMainMenuPlugin(...) stproxy.uiControl.addLiveNameMenuPlugin(...)
37
Plugins to add new Menu Entries<script type='text/javascript'> stproxy.uiControl.addMainMenuPlugin({ id: 'myMenuId', label: 'My Label', menuId: 'myLabel_id' });
stproxy.uiControl.addMainMenuPlugin({ id: 'mySubMenuId', label: 'My Action', menuId: 'myLabel_id', onClick: function(mainWindow) { var myContent = stproxy.uiControl.getSlideIn(myCallback, 'myGlobalWidgetName', 'myWidgets.Widget', mainWindow.domNode, 'onBeforeOk', 'onOk', 'onCancel', 'onOkError', 'Custom Error Message'); } });
function myCallback(slider) { slider.slideIn(); }</script>
38
Customized Styling
39
Customized Styling● Apply own styling by overriding specific style properties
stproxy_toolbarButtonstproxy_toolbarMenu
stproxy_toolbarChat
stproxy_userInfostproxy_userInfoPic
stproxy_chatIsTypingBar
stproxy_toolbarButtonText
.stproxy_userInfoText
stproxy_chatDisplayNameText
stproxy_chatMessageText
stproxy_chatMessageTimeText
stproxy_editorIconItalicstproxy_editorIconUnderline
stproxy_editorIconEmoticonstproxy_editorIconCreateLink
stproxy_editorIconForeColor
stproxy_editorBackground
stproxy_transcriptBackground
stproxy_editorIconBold
40
Customized Styling
.stproxy_toolbarMenu { background-image: url(images/myBgStripe.png) !important;}
.stproxy_toolbarChat, .stproxy_chatIsTypingBar { background-image: none !important; background-color: #4d4d4d !important;}
.stproxy_editorIconBold, .stproxy_editorIconBoldDisable { background-image:url(images/myIconBold.png) !important;}
...
41
Agenda● Übersicht - Sametime 8.5
● Eclipsbasierte RichClient-Technologie
● Sametime 8.5 Webclient
● Sametime 8.5 Meetings Web Client
● Audio & Video in Sametime
03/10/1042
Sametime 8.5 Classic Meeting
● Domino basierte Anwendung● Browser basiert
Beispiel: stcenter.nsf
43
Sametime 8.5 Meeting Rooms
create [HTTP POST]Create a new meeting on the Sametime server.
get [HTTP GET]Retrieves meeting properties for a specific meeting from Sametime server.
delete [HTTP DELETE]Remove a meeting from Sametime server.
update [HTTP PUT]Updates meeting information. Only information that needs to be changed should be sent.
Signatures
44
Levels of Integration● REST APIs● Toolkit● UI
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.
45
REST APIs – Room Management● Requires authentication via
POST or existing LTPA token● CRUD (Create, Read, Update,
Delete)
● Room Information▬ Title▬ Owner▬ Managers▬ Is it password-protected?▬ etc.
● List of rooms based on ownership, name, etc.
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.
46
Extension Points● New views in the Participants List● New actions on Library items● New types of content viewers in the
Projector● New types of Discussion entries● etc.
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.
47
Styling of the UI & Tools● CSS● Dojo theme
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.
03/10/1048
Lotus Sametime Web Clients
Lotus Sametime Lotus Notes
Clients
Lotus Sametime 8.5 Meeting Extranet Deployment
Präsenz &Instant Messaging
Meetings 1
Lotus Sametime Servers
Meetings 2
Extern
Intern
Lotus Sametime Web Clients
Lotus Sametime Lotus Notes
Clients
03/10/1049
Lotus Sametime 8.5 Meeting Cluster
Lotus SametimeLotus Notes
oder Web Clients
Lotus SametimeMeeting Servers
Meetings 2
Meetings 1
WebSphere Application
Server Proxy
Cluster
Geclusterte Server nutzen die Web Services für High Availability und
Failover
Einzelne Meetings existieren auf einem einzigen Knoten im
Cluster
Proxy Server cached Daten für die einzelnen Knoten;
Routing des HTTP Traffic zum korrekten Knoten
50
Agenda● Übersicht - Sametime 8.5
● Eclipsbasierte RichClient-Technologie
● Sametime 8.5 Webclient
● Sametime 8.5 Meetings Web Client
● Audio & Video in Sametime
51
Gruppenchat
Awareness
WhiteboardDokumente
Multipoint Video*
gemeinsameDesktopnutzung
Abstimmung
Audio und Video im ST Classic Meeting
03/10/1052
Audio & Video Funktionen in Sametime 8.5
Lotus Sametime 8.5 Client Unterstützung für Chat, VoIP Audio/Video Chats &
Online MeetingsMultipoint Audio und P2P Video VerbindungenUmschaltung aktiver SprecherUnterstütze Codec Standards für A/V Streams
H.263, H.264G.711, G.722.1, iSAC
SIP based A/V Client
Lotus Sametime 8.5 Media Manager Server
SIP Proxy Registrar SIP based Conference FocusMedia Router (Packet Switcher)
Third-party Integration
Lotus Lotus Sametime 8.5Sametime 8.5
MeetingsMeetings
Audio & Video ChatsAudio & Video Chats
03/10/1053
Die unterstützten PlattformenClients
Microsoft® Windows® XP® (SP2) und Windows Vista® – 32 und 64 bit (Lotus Sametime Connect 8.5 oder Lotus Notes 8.5.1 Upgrade)
BrowserMicrosoft Internet Explorer® 6.x, 7.x, 8.0 (Microsoft Windows)Firefox® 2.x und 3.0.x (Microsoft Windows, Mac®, Linux®)Safari® 3.2 und 4.0.x (Mac)
ServersMicrosoft Windows Server 2003/2008 - 32 und 64 bitLinux (RHEL, SLES) - 32 und 64 bitAIX® 5.3/6.1i5/OS® 5.4, 6.1SolarisTM 10
SonstigesLotus Domino 8.0.x / 8.5 für Community Server / “Classic” MeetingsIBM WebSphere Application Server 7 für neue Server und GatewaysIBM DB2 Universal Database 9.5 für neue Server und Gateways
03/10/1054
Lotus Sametime 8.5. Das Komplettpaket
Präsenz &Instant Messaging
MediaManager
Lotus Sametime Servers
Domino® Server
IBM WebSphere® Application Server / IBM DB2® Universal
Database
Meetings
Lotus SametimeProxy
Lotus Sametime Web Clients
Lotus Sametime Lotus Notes
Clients
03/10/1055
Thank You!ibm.com/lotus/uc2