Pages Menu
TwitterRssFacebook

Posted by on Jun 11, 2015 in Learn Skype Web SDK, Skype for Business® (Lync®)

Skype Web SDK New Version Released (v0.2.3)

Skype Web SDK New Version Released (v0.2.3)

Yesterday, Microsoft released an update to the Skype Web SDK – the new REST-like interface for Skype for Business that’s currently in public preview. The release fixes the following issues:

  • When a P2P video conversation is escalated to an online meeting, the video cannot be displayed properly.
  • In a video meeting, if remote participant’s video is displayed before it has started, the video might not render properly in the application

Known Issues

  • The current release of Skype Web SDK is   not supported in IE compatible mode.
  • ‘Notified’ event for selfParticipant.audio.state is not  raised on an incoming audio meeting invite.
  • When participant.video.state is equal to ‘Connected’, the  remote participant may not have started to stream his own video.

Breaking Changes

There’s an important breaking change to be aware of – even more so with the automatic nature of delivery (see below).

Version 0.2.3 introduces a change which is backward-incompatible with previous versions.  The change improves the creation of 1:1 conversations and multiparty conversations:

ConversationsManager.createConversation() now always creates a multiparty conversation (meeting). If the intention of the following code was to create a 1:1 conversation:

var   conv = conversationsManager.createConversation() ;
var   participant = conv.createParticipant(person);
conversationsManager.conversations.add(conv);
conv.participants.add(participant);
conv.chatService.start();   // or start any other service

it should be replaced by

var   conv = conversationsManager.getConversation(person) ; // this is a shortcut   for the first 4 lines above
conv.chatService.start();   // or start any other service

Automatic Updates

As far as I can tell, because of the way that the Skype Web SDK is consumed (by referencing a link that’s actually a bootstrapper which loads the actual JS), you don’t have to make any changes to your code, the new version will be loaded when your page loads. The advantages of this for developers and users are that no changes to published code needs to be made, the latest version (with all its bug fixes and performance improvements) will be automatically loaded.

The disadvantage of this method however, comes with breaking changes. Developers need to be aware that overnight their published code may stop working, or work in a different way, because of changes to code.

As far as I can tell there is no clear way of knowing when the API has been updated, or what version is being delivered. What I (and I think other developers) would find really useful would be a method that returns the version number of the delivered file. That way we would know if the code we’re testing against is the new version or the old version. We could also build in checks to make sure we know each time the code changes. Right now, it’s hard to know when to start retesting applications: has the new code been released yet? Has it propagated the CDN globally? Has it invalidated my cache correctly?

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.