370 likes | 830 Views
What’s New in the Lync Client SDK. Session Objectives. Recap Lync Client SDK functionality Overview of new Application Sharing Modalities Future functionality. Agenda. Overview. Lync Client SDK. Application Sharing. Content Sharing. What’s New in the Lync Client SDK. Overview.
E N D
What’s New in the Lync Client SDK
Session Objectives • Recap Lync Client SDK functionality • Overview of new Application Sharing Modalities • Future functionality
Agenda Overview Lync Client SDK Application Sharing Content Sharing What’s New in the Lync Client SDK
The Lync Client SDK • Introduced with Lync 2010 • Managed .NET API • Lync controls for WPF and Silverlight • Automate Lync client functionality • Extend Lync client • Develop Persistent Chat applications
Automation Lync Managed API Building Blocks Lync Controls WPF Silverlight
Development Experience • WPF and Silverlight • Silverlight • No out-of-browser support • Internet Explorer only • Hosting site must be a trusted site • Requires Lync client to be running on the machine • Reuses endpoint as a connection to Lync server infrastructure
Agenda Overview Lync Client SDK Application Sharing Content Sharing What’s New in the Lync Client SDK
Lync Controls Drag and drop Lync feature integration • Presence • Contact information • Contact list • Contact search • IM and audio click-to-communicate
Lync Controls • XAML: • <lync:PresenceIndicator Source="sip:chrisa@contoso.com" /> • <lync:PresenceIndicator Source="{Binding SipUri}" /> • C#: • presenceIndicator.Source = "sip:chrisa@contoso.com"; • var contacts = new List<string>() • { • "sip:chrisa@contoso.com", • "sip:peterb@contoso.com" • }; • accountManagers.ItemsSource = contacts;
Lync Managed API • Managed API for building communications applications • Productivity of IMessenger, but with more features • Power of UCC API, but less complex • Requires Lync client to be running
Lync Managed API – Signing In • // Get handle to running instance of Lync client • _lyncClient = Microsoft.Lync.Model.LyncClient.GetClient(); • // Sign in to the Lync client • _lyncClient.BeginSignIn( • userUri, • domainAndUserName, • password, • signInResult => • { • _lyncClient.EndSignIn(signInResult); • }, • "Local user signing in" as object);
Lync Managed API – Conversations • // Conversation Manager • Microsoft.Lync.Model.Conversation.ConversationManager • _conversationManager = _lyncClient.ConversationManager; • // Conversation Events • _conversationManager.ConversationAdded += new EventHandler<ConversationManagerEventArgs> (Conversations_ConversationAdded); • void Conversations_ConversationAdded(object sender, • ConversationManagerEventArgse) • { … }
Contextual Conversations Launch Link Context • Launch applications from Lync conversations • Conversation contains a “launch link” • Startup parameters are embedded in the context • User clicks launch link to open application • Application processes startup parameters • Application can receive additional context
Contextual Conversations Extensibility Window Context • Host Silverlight applications in Lync conversation window • Scenarios • Call center agent dashboard • Conversation translator • Can run multiple extensibility applications • Can be combined with Launch Link context
Contextual Conversations UI Suppression • Hide the Lync client UI • Build your own custom communication client • Developer is responsible for handling everything
Agenda Overview Lync Client SDK Application Sharing Content Sharing What’s New in the Lync Client SDK
Application Sharing and Collaboration What’s New • APIs to support missing modalities from Lync 2010 • New Sharingnamespace in Microsoft.Lync.Model.Conversation Development experience • Select applications to share • Start/stop sharing • Take/grant control
Lync Managed API – Application Sharing • // Acquire the user’s sharing modality • _localModality = (ApplicationSharingModality) • _conversation.Modalities[ModalityTypes.ApplicationSharing]; • // Acquire the remote participant’s sharing modality • foreach(Participant p in _conversation.Participants) • { • if (!p.IsSelf) • { • _remoteModality = (ApplicationSharingModality) • p.Modalities[ModalityTypes.ApplicationSharing]; • break; • } • }
Lync Managed API – Sharing • // Access shareable resources • _localModality.ShareableResources • // Share a resource • if (_localModality.CanInvoke(ModalityAction.Connect)) • { • _localModality.BeginShareResources(new List<SharingResource>() { resource }, (ar) => • { • try • { • _localModality.EndShareResources(ar); • } • … • } • }
Agenda Overview Lync Client SDK Application Sharing Content Sharing What’s New in the Lync Client SDK
Content Sharing What’s New • APIs to support content sharing modalities for PowerPoint presentations, native files, and whiteboard. • New Sharingnamespace in Microsoft.Lync.Model.Conversation Development experience • Connect to Content Sharing modality • Create shareable content • Add to content bin • Interact with shareable content • Interact with Content sharing modality
Connect to the Content Sharing Modality • Check if you can connect to the Content Sharing modality • Connect to the modality • if (((Modality)_conversation.Modalities[ModalityTypes.ContentSharing]) .CanInvoke(ModalityAction.Connect)) • ((Modality)_conversation.Modalities[ModalityTypes.ContentSharing]) • .BeginConnect((ar) => { • ((Modality)_conversation.Modalities[ModalityTypes.ContentSharing]) • .EndConnect(ar); • },null);
Creating Shareable Content • The ShareableContentTypeenum defines types of content that can be shared with users in a conversation: • PowerPoint • NativeFile • Whiteboard • Content Sharing modality exposes methods to create shareable content: • BeginCreateContent • BeginCreateContentFromFile
Create PowerPoint Shareable Content • Check if action is available • Create shareable content • if (((ContentSharingModality)_conversation.Modalities • [ModalityTypes.ContentSharing]) • .CanInvoke(ModalityAction.CreateShareablePowerPointContent)) • conversationSharingModality.BeginCreateContentFromFile( • ShareableContentType.PowerPoint, • contentTile, • powerPointDeckName, • false, // include native file • callback, • conversationSharingModality);
Content Bin • Content is automatically added to “Content Bin” • Iterate through content • Take action on content • ActiveContent represents content currently being shared • foreach (ShareableContentcontent in • ((ContentSharingModality)_conversation.Modalities • [ModalityTypes.ContentSharing]).ContentCollection) • { • // take action on shareable content • }
Take Action on Content in the Content Bin • Invoke a ShareableContentAction • Remove • Present • StopPresenting • SyncWithPresenter • DownloadFile • TakeOverAsPresenter • SaveAnnotation • ClearAllAnnotations • Add
Interact with Content • PowerPoint shareable content type exposes methods to interact with deck: • GoForward • GoBackwards • SyncWithPresenter • IsInSyncWithPresenter • Users can make annotations to shareable content • ClearAllAnnotations • SaveAnnotation
Interact with the Content Sharing Modality • Share control of shareable content • Handle requests for control • Accept • Decline • Grant control • Take back control
Agenda Overview Lync Client SDK Application Sharing Content Sharing What’s New in the Lync Client SDK
Key takeaways • Most APIs remain intact • New application sharing and collaboration functionality • New content sharing functionality
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.