No client SDK for Skype for Business 2016

感情迁移 提交于 2019-12-04 03:28:38

问题


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!


回答1:


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




回答2:


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;
    }



回答3:


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).



来源:https://stackoverflow.com/questions/33229251/no-client-sdk-for-skype-for-business-2016

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!