Title of Presentation
Download
Report
Transcript Title of Presentation
Beck Philipp
Microsoft Innovation Center Rapperswil / HSR
UC – not just a word!
APIs and their possibilities
Overview
DeepDive Communicator Automation API
Client API
DeepDive Managed API
Server API
Future
Summary
> 60% of business calls are connected to the
voicemail system
Gartner Group Report- March 2006- Mathew Cain
67% of business IM conservations are escalated
to voice
MS study Fall 04
50% of all outbound calls the number has been
searched in Outlook
MS Study w/ Harris Interactive 2006
The Information Worker gets 51 messages on 7
different devices each day
MS Study w/ Harris Interactive 2006
One Identity
Tel: (207) 555-1000
Alex Hankin | Contoso, Ltd.
Direct: (207) 555-1112
Senior Director
Fax: (207) 555-9999
New York, NY
Mobile: (775) 551-2345
Home (208) 555-5656
Telex: 781-234
Work E-mail: [email protected]
Work IM: [email protected]
Home E-mail: [email protected]
Home IM: [email protected]
Skype: AlexH
Work
Alex Hankin
Senior Director
Contoso, Ltd.
[email protected]
Home
E-Mail/Calendaring
Across
Devices
Team
Workspaces
Across
Networks
Inbox
Instant
Messaging
Application
Integration
VoIP
Conferencing
Product Investment Areas
Streamline
Communications
for End-Users
Increase
Operational
Control
Provide
SoftwarePowered
Communication
Platform
Simplify communication
Click to Communicate innerhalb der
Applikation
Präsenzbasiert, richtige Art, richtige Zeit
Nahtloser Übergang E-Mail, IM, Voice,
und Video
Single Inbox für E-Mail/Voice Mail/Fax
durch Unified Messaging
Integration in Line of Business Apps
durch Presence Information
“Anywhere Access” Mobile Devices
Gewohnte Outlook Umgebung auf allen
Geräten (Exchange ActiveSync, OWA, OVA)
“VPN-less” Zugriff auf IM, Voice und Konf
Video/Web Konferenz
Audio/Video/Web Konferenz aus Office
Zusammenarbeit innerhalb verteilter Teams
How UC can fit in your day
ISVs
API
What you can do
Typical
Applications
What it is
Languages
Client
Automation
and WPF
Presence
Make your
Application UC ready
OC needed
Presence and
Context
integration
COM-based
API
supporting
Automation
Microsoft Visual
Basic®, C/C++, C#,
VBScript, and many
other scripting
languages.
Client API
Make your
Application UC ready
OC not needed
Complex UC
integration
New client
buildup
COM-based
Libraries
C++ Header
Files
C++ (unmanaged)
.NET
UCMA v2.0
H2M / M2H
Communication
Bot / ACD
Recording
Workflow
.Net Based
API on x64
All from .NET
Server API
Change SIP
Message
Sniffer
Router
Proxy
MSPL
Managed
Code x64
All from .NET
AJAX API
Easy Web frontend
Web Chat
Integration
AJAX Client
API
JavaScript
integration
JavaScript, C#,
Perl, C/C++, and
the Microsoft Visual
Basic®
Build Office Communicator 2007 R2
features into apps via automation
Used to provide Office Communicator 2007 R2
integration in Outlook 2007
Free download/free distributable
Requires Office Communicator 2007/2007
R2, Office Communications Server 2007
COM API
Unmanaged resources requires management
XAML :
xmlns:presence="clrnamespace:Microsoft.Samples.Office.UnifiedCommunications.P
resenceControls;assembly=WPFMOCPresenceControls„
<presence:PersonaList x:Name="personaList1"
ShowContextMenu="True"
ShowDisplayName="True"
ShowAvailability="True"
ShowToolTip="True"
ShowDetailedToolTipText="True"/>
C# :
List<string> sipUris = new List<String>()
{
"[email protected]"
};
personaList1.SipUris = sipUris;
Messenger
IMessenger
IMessenger2
IMessengerAdv
MessengerPriv
IMessengerPrivate
IMessengerAdv
IMessengerContacts
IMessengerGroups
IConversationWndAdv
AutoSignin()
_NewEnum
_NewEnum
AddContact()
SignIn()
Count
Count
Contacts
SignOut()
Item()
Item()
History
AddContact()
Remove()
Remove()
SendText()
FindContact()
GetContact()
MyContacts
MyStatus
IMessengerContactAdv
Blocked
AddContact()
FriendlyName
Contacts()
IsSelf
Name
get_PhoneNumber()
RemoveContact()
MyGroups
CreateGroup()
StartConversation()
SigninName
Status
IMessengerPriv
AddContact()
IMessengerGroup
IsTagged
PresenceProperties
MessengerClass
OnSignin()
OnSignout()
OnAppShutdown()
MyStatusChange()
OnContactStatusChange()
OnIMWindowCreated()
OnContactListAdded()
OnContactListRemoved()
Get your list of contacts
(> 1 creates conference)
Start the conversation…
StartConversation()
CONVERSATION_TYPE
CONVERSATION_TYPE_IM
CONVERSATION_TYPE_AUDIO
CONVERSATION_TYPE_VIDEO
Why do i need to tell
my workmate what my
problem is?
Context switch is a
problem if I have to
work on to much things.
Why can not the
application do so for
me?
Use OnIMWindowCreated() compare the
hWnds
If the hWnd is not yours, incoming
conversation
Get the IM conversation content
IMessengerConversationWndAdvanced::Histor
y()
Strategies for “app data”
Regular expressions to match data structure
XML schema
Hide the conversation window and show UI
IMessengerConversationWndAdvanced::Close
()
Unified Communication Client API
Implemented in C++
Interopperable with .NET
Microsoft.Office.Interop.UccApi
Used to build Attendant Console
You can build your own Communicator
Complex
Managed code platform to create
communication and collaboration enabled
services
Multi Layers of Abstraction:
SIP Abstraction (UCMA 1.0)
OCS Protocols (UCMA 2.0)
Enhanced Presence, Conferencing, Contacts and
Groups, Call Control
Multi Modal
High Performance and Scalability
Asynchronous
Multimodal & Multiparty Call Management
IM & Audio built-in this version
Extensible for custom modalities
Enhanced Presence Services
Querying, Publishing, and Subscribing
Custom categories
Conference Scheduling
Connection Management
Contact Group Services
Application Thread Pool
Your Application
Application
Endpoint
Outgoing Connections
Communication Server R2
Collaboration
Platform
Application
Endpoint
UserEndpoint
Incoming Connections
Conversation
Conversation
Conversation
Conversation
:
Your Process
Worker Thread Pool
Microsoft.Rtc.Collaboration.dll
Add communication features
to Windows Workflow
Supports IM and Speech
Communication control
Business Process
Communications
Alerts and notifications
Information Access
Query/Response
New in UC R2 Platform
Built on UCMA 2.0 Core SDK and MS
Speech
Abstracts a subset of UCMA 2.0 Core SDK
functionality
MS Speech provides TTS and ASR
Use UCMA 2.0 Core SDK via Code activity and
custom activities to extend UCMA 2.0 WA
Requires .NET 3.5 SP1
Speech Server Language Pack needed
Communication Sequence
Provide container for
Activities
Provides Scoping for
Commands and
Communication Events
Provides calls to
Communication
Activities via
CallProvider
Certificate
Local Port + Firewall
Identity
Does not need to be communications enabled
GRUU
Globally Routable User Agent URI
Created by Administrator, maps to an AD
object
SIP Address
x64 on Vista or W2K3
Step 1:
Step 2:
Step 3:
Step 4:
Step 5:
Create Project
Create Local Certificate
Provision AD Objects
Update Project
Update Contact (optional…)
Repsonsible for SIP Message handling
Consist of two Parts
Microsoft SIP Programming Language
Managed Code
Routing functions and Filter Scripts can be
done
Registers with OCS 2007 Server
Microsoft own Script Language
Is capable of looking into SIP Messages for
filtering or rerouting
Complex actions need to dispatch
MSPL
<lc:splScript><![CDATA[
if (sipRequest) {
if (sipRequest.Method == StandardMethod.Invite) {
Dispatch("NameOfInviteHandlerMethodInApplicationHere");
}
else if (sipRequest.Method == StandardMethod.Message) {
Dispatch("NameofMessageHandlerMethodInApplicationHere");
}
}
]]></lc:splScript>
Used to change SIP message more detailed
Additional Queries or Datasources possible
C#
Microsoft.Rtc.Sip Namespace
...
ServerAgent myScriptOnlyServerAgent =
newServerAgent(myAppManifest);
...
public void NameOfInviteHandlerMethodInApplicationHere(
object sender,
RequestReceivedEventArgs requestEventArgs)
{
}
Office Communicator not more needed for
Application Integration
Workflow gets easier to manage
A short Demo of a Microsoft Application
ISVs are important for Microsoft
Simple und straight forward Presence and
Click-to-Call integration
Powerful API for H2M / M2H communication
MSDN Unified Communications Developer Portal
http://msdn.microsoft.com/uc
Microsoft Office Communications Server 2007 R2 Trial Download
http://www.microsoft.com/downloads/details.aspx?FamilyID=67a3de72-7dbd-4e0b92a5-29d0b46009a7
Microsoft Office Communicator 2007 R2 Trial Download
http://www.microsoft.com/downloads/details.aspx?FamilyID=535637af-d92f-41b1-bf0c54a526a88247
Microsoft Office Communicator Automation API
http://www.microsoft.com/downloads/details.aspx?FamilyID=ed1cce45-cc22-46e1-bd50660fe6d2c98c&DisplayLang=en
WPF Presence Controls for Microsoft Office Communicator 2007 Microsoft Office Communicator 2007 SDK Sample
http://www.microsoft.com/downloads/details.aspx?FamilyID=5001d612-533a-472191ea-da990d94ff0f&DisplayLang=en
Microsoft Unified Communications Managed API 2.0 SDK (64-bit)
http://go.microsoft.com/fwlink/?LinkID=139195
Microsoft Office Communications Server 2007 R2 Resource Kit
http://www.microsoft.com/learning/en/us/Books/13113.aspx
Programming for Unified Communications
http://www.microsoft.com/learning/en/us/Books/12956.aspx
Chris Mayo’s blog
http://blogs.msdn.com/cmayo (API URLs, etc.)
check out these websites, blogs & more!
Presentations
TechDays: www.techdays.ch
MSDN Events: http://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspx
MSDN Webcasts: http://www.microsoft.com/switzerland/msdn/de/finder/default.mspx
MSDN Events
MSDN Events: http://www.microsoft.com/switzerland/msdn/de/events/default.mspx
Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin
MSDN Flash (our by weekly newsletter)
Subscribe: http://www.microsoft.com/switzerland/msdn/de/flash.mspx
MSDN Team Blog
RSS: http://blogs.msdn.com/swiss_dpe_team/Default.aspx
Developer User Groups & Communities
Mobile Devices: http://www.pocketpc.ch/
Microsoft Solutions User Group Switzerland: www.msugs.ch
.NET Managed User Group of Switzerland: www.dotmugs.ch
FoxPro User Group Switzerland: www.fugs.ch
check out these websites, blogs & more!
Presentations
TechDays: www.techdays.ch
TechNet Events
TechNet Events: http://technet.microsoft.com/de-ch/bb291010.aspx
Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin
TechNet Flash (our by weekly newsletter)
Subscribe: http://technet.microsoft.com/de-ch/bb898852.aspx
Schweizer IT Professional und TechNet Blog
RSS: http://blogs.technet.com/chitpro-de/
IT Professional User Groups & Communities
SwissITPro User Group: www.swissitpro.ch
NT Anwendergruppe Schweiz: www.nt-ag.ch
PASS (Professional Association for SQL Server): www.sqlpass.ch
7. – 8. April 2010
Congress Center Basel
Premium Sponsoring Partners
Classic Sponsoring Partners
Media Partner