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?