430 likes | 663 Views
Unified Communications APIs. Beck Philipp Microsoft Innovation Center Rapperswil / HSR. Agenda. UC – not just a word! APIs and their possibilities Overview DeepDive Communicator Automation API Client API DeepDive Managed API Server API Future Summary. « Disconnected » Communication.
E N D
Unified Communications APIs Beck Philipp Microsoft Innovation CenterRapperswil / HSR
Agenda • UC – not just a word! • APIs and their possibilities • Overview • DeepDive Communicator Automation API • Client API • DeepDive Managed API • Server API • Future • Summary
«Disconnected» Communication • > 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
UC – not just a word! One Identity Work Tel: (207) 555-1000 Tel: (207) 555-1000 Alex Hankin| Contoso, Ltd. Senior Director New York, NY Direct: (207) 555-1112 Direct: (207) 555-1112 Fax: (207) 555-9999 Fax: (207) 555-9999 Mobile: (775) 551-2345 Mobile: (775) 551-2345 Home (208) 555-5656 Home (208) 555-5656 Telex: 781-234 Telex: 781-234 Work E-mail: alexhankin@contoso.com Work E-mail: alexhankin@contoso.com Work IM: alexhankin@contoso.com Work IM: alexhankin@contoso.com Home E-mail: Alex@hotmail.com Home E-mail: Alex@hotmail.com Home IM: Alex@hotmail.com Home IM: Alex@hotmail.com Skype: AlexH Skype: AlexH Alex Hankin Senior DirectorContoso, Ltd. Alex Hankin Senior DirectorContoso, Ltd. Home alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com alexhankin@contoso.com
UC – not just a word! • Single Identity • Single Inbox E-Mail/Calendaring VoIP Inbox Across Devices Conferencing InstantMessaging Across Networks Team Workspaces Product Investment Areas Application Integration • Streamline Communications for End-Users Increase Operational Control Provide Software-Powered Communication Platform
UC – not just a word!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
UC – not just a word! demo How UC can fit in your day
Client Automation API • 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
Add Presence to a WPF App • XAML : • xmlns:presence="clr-namespace:Microsoft.Samples.Office.UnifiedCommunications.PresenceControls;assembly=WPFMOCPresenceControls„ • <presence:PersonaList x:Name="personaList1" • ShowContextMenu="True" • ShowDisplayName="True" • ShowAvailability="True" • ShowToolTip="True" • ShowDetailedToolTipText="True"/> • C# : • List<string> sipUris = new List<String>() • { • "pbeck@ins.hsr.ch" • }; • personaList1.SipUris = sipUris;
WPF Controls demo
Embedding Click-to-Communicate • Get your list of contacts (> 1 creates conference) • Start the conversation… • StartConversation() • CONVERSATION_TYPE • CONVERSATION_TYPE_IM • CONVERSATION_TYPE_AUDIO • CONVERSATION_TYPE_VIDEO
Start a conversation demo
Application Context Switch • 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?
Application Context Switch • Use OnIMWindowCreated() compare the hWnds • If the hWnd is not yours, incoming conversation • Get the IM conversation content • IMessengerConversationWndAdvanced::History() • Strategies for “app data” • Regular expressions to match data structure • XML schema • Hide the conversation window and show UI • IMessengerConversationWndAdvanced::Close()
Context Switching demo
UCCA • 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
UCMA • 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
UCMA • 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
Communication Server R2 UCMA Application Architecture Application Thread Pool Your Application Conversation Application Endpoint Conversation Collaboration Platform Conversation Application Endpoint OutgoingConnections UserEndpoint Conversation : IncomingConnections Your Process Microsoft.Rtc.Collaboration.dll Worker Thread Pool
UCMA 2.0 Workflow • 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
UCMA 2.0 Workflow • 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
UCMA 2.0 Workflow Communication Sequence • Provide container for Activities • Provides Scoping for Commands and Communication Events • Provides calls to Communication Activities via CallProvider
UCMA Deployment Requirements • 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
Deploying Your First UCMA App • Step 1: Create Project • Step 2: Create Local Certificate • Step 3: Provision AD Objects • Step 4: Update Project • Step 5: Update Contact (optional…)
Server API • 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
MSPL • 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>
Server API Managed Code • 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, RequestReceivedEventArgsrequestEventArgs) { }
SIP Server SDK demo
Future • Office Communicator not more needed for Application Integration • Workflow gets easier to manage • A short Demo of a Microsoft Application
Summary • ISVs are important for Microsoft • Simple und straight forward Presence and Click-to-Call integration • Powerful API for H2M / M2H communication
Resources • 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-4e0b-92a5-29d0b46009a7 • Microsoft Office Communicator 2007 R2 Trial Download • http://www.microsoft.com/downloads/details.aspx?FamilyID=535637af-d92f-41b1-bf0c-54a526a88247 • Microsoft Office Communicator Automation API • http://www.microsoft.com/downloads/details.aspx?FamilyID=ed1cce45-cc22-46e1-bd50-660fe6d2c98c&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-4721-91ea-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.)
Your MSDN resourcescheck out these websites, blogs & more! PresentationsTechDays: www.techdays.chMSDN Events: http://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspxMSDN Webcasts: http://www.microsoft.com/switzerland/msdn/de/finder/default.mspx MSDN EventsMSDN Events: http://www.microsoft.com/switzerland/msdn/de/events/default.mspxSave 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 BlogRSS: http://blogs.msdn.com/swiss_dpe_team/Default.aspx Developer User Groups & CommunitiesMobile Devices: http://www.pocketpc.ch/Microsoft Solutions User Group Switzerland: www.msugs.ch.NET Managed User Group of Switzerland: www.dotmugs.chFoxPro User Group Switzerland: www.fugs.ch
Your TechNet resourcescheck out these websites, blogs & more! PresentationsTechDays: www.techdays.ch TechNet EventsTechNet 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 BlogRSS: http://blogs.technet.com/chitpro-de/ IT Professional User Groups & CommunitiesSwissITPro User Group: www.swissitpro.chNT Anwendergruppe Schweiz: www.nt-ag.chPASS (Professional Association for SQL Server): www.sqlpass.ch
Save the date for tech·days nextyear! 7. – 8. April 2010Congress Center Basel
Premium Sponsoring Partners Classic Sponsoring Partners Media Partner