No client SDK for Skype for Business 2016
Asked Answered
S

3

6

I have updated to Skype for Business 2016 (Office 2016) and the desktop application that I am developing, that integrates with the Lync client, has started to throw an exception.

I am guessing that the SDK version 15.0.4481.100 is not compatible with the Skype for Business version 16.0.42.66.1003, but I can not find a newer SDK than Lync 2013 SDK (2014-03-17).

Is desktop client development for Skype for Business 2016 not supported as it was with 2013?

Exception:
Unable to cast COM object of type 'System.__ComObject' to interface type
'Microsoft.Office.Uc.IAudioDevice2'. This operation failed because the QueryInterface call
on the COM component for the interface with IID '{86B3E5FE-4635-4C1E-A725-C80B71D04984}'
failed due to the following error: No such interface supported
(Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

Update

LyncClient.GetClient( sideBySide ).DeviceManager.AudioDevices

The exception occurs when I iterate over the audio devices. Starting and accepting calls with an embedded (UI Supressed) S4B client works, sideByside does however not. The answer to my original question seems to be yes, but not fully!

Selfindulgent answered 20/10, 2015 at 6:12 Comment(0)
L
4

Lync Client SDK 2013 should support Skype for Business 2016. There is no new client SDK announced as yet.

Langlois answered 22/10, 2015 at 6:44 Comment(9)
OK, thanks! Can you confirm that the 2013 SDK works for you with S4B 2016?Selfindulgent
I have used Lync Client SDK with S4B (upgraded from Lync 2013) client successfully. I can check and provide you an update if it works well with S4B 2016.Langlois
I checked the compatibility of S4B 2016 with Lync Client SDK 2013 it looks to work fine. However, check if you are using Automation elements, that might not work since S4B Client UI has changed.Langlois
Thanks - I dug a little deeper and caught the exceptions. As you said, it seems to work in UI supressed mode, unless I interact with the list of audio devices.Selfindulgent
Lync 2013 SDK can not be installed when only Lync 2016 is installed. Setup says "Microsoft Lync 2013 not found".Daimon
Lync 2016? Do you mean Skype for business 2016 client?Langlois
Yes, the 2013 Client SDK continues to work with the 2016 client. It's a little irritating that you have to install Lync 2013, then the Client SDK, then upgrade the Lync/Skype client to 2015/2016. Unfortunately, this is kind of an abandonware API, by all indications, but maybe someday Microsoft will get around to updating it...Truckload
I would say the way ahead is Skype Web SDK even for authenticated clients. You can develop complex scenarios, it looks to support everything that is there in Lync client SDK.Langlois
For future readers: you can download the lync 2013 sdk from Microsoft, open the installer with 7zip, extract the desired Version (x86, x64) and install it without a Problem..Effable
S
4

You can use the ILyncClient "inner object" (from Microsoft.Office.Uc) to work around this issue

eg:

    static bool SetClientAudioDevice(LyncClient client, string name)
    {
        var innerClient = (ILyncClient)client.InnerObject;
        var deviceManager = innerClient.DeviceManager;

        Console.WriteLine("Current audio device: [{0}]", client.DeviceManager.ActiveAudioDevice.Name);
        Console.WriteLine("Lync Client Audio Devices List:");
        var ok = false;
        foreach (var device in deviceManager.AudioDevices.OfType<Microsoft.Office.Uc.AudioDevice>())
        {
            Console.WriteLine("    AudioDevice: [{0}], Active[{1}], ID[{2}], IsCertified[{3}], Priority[{4}], Type[{5}]", device.Name, device.IsActive, device.Id, device.IsCertified, device.Priority, device.Type);

            if (device.Name.IndexOf(name, StringComparison.InvariantCultureIgnoreCase) >= 0)
            {
                Console.WriteLine("        Setting active device!");
                deviceManager.ActiveAudioDevice = device;
                ok = true;
            }
        }
        return ok;
    }
Seawright answered 9/11, 2016 at 23:30 Comment(1)
We had this same error and had to resort to this method as well.Arp
D
0

Like Ankit mentioned, the 2013 SDK works with Skype for Business 2016, too.

To get around the install limitation ("Microsoft Lync 2013 not found"), use Jon Gallant's advice: http://blog.jongallant.com/2016/08/solution-lync-2013-not-found/

That is, unzip lyncsdk.exe and manually install the appropriate MSI (x86 or x64).

Dappled answered 3/2, 2017 at 13:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.