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: alexhankin@contoso.com Work IM: alexhankin@contoso.com Home E-mail: Alex@hotmail.com Home IM: Alex@hotmail.com Skype: AlexH Work Alex Hankin Senior Director Contoso, Ltd. alexhankin@contoso.com 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>() { "pbeck@ins.hsr.ch" }; 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