What’s New in the Lync Client SDK 9/8/2018 8:15 AM © 2007 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.
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
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
Building Blocks Lync Controls Automation Lync Managed API WPF Silverlight Automation Lync Managed API
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
Developing with 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, ConversationManagerEventArgs e) { … }
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
Application Sharing and Collaboration What’s New APIs to support missing modalities from Lync 2010 New Sharing namespace 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); } …
Application Sharing and Collaboration
Agenda Overview Lync Client SDK Application Sharing Content Sharing What’s New in the Lync Client SDK
Content Sharing
Content Sharing What’s New Development experience APIs to support content sharing modalities for PowerPoint presentations, native files, and whiteboard. New Sharing namespace 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) => { .EndConnect(ar); }, null);
Creating Shareable Content The ShareableContentType enum 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 (ShareableContent content 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
thank you
© 2011 Microsoft Corporation. All rights reserved © 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.