Comment 5 for bug 1340420

Revision history for this message
Michael Müller (mqchael) wrote :

Hi,

yesterday I came across the "Test Drive - Lync Server 2013" Downloads on the Microsoft website. These downloads contain a ready to use Microsoft Lync Environment as Virtual Machines. You get 7 VMs with all kinds of different services like a Domain Controller, an Exchange Server, a Lync Server, etc. It is sufficient to run the DC and Lync VM to get access to the Lync 2013 Webapp server, though you need 6 GB of free RAM to start them on the same machine.

Using this approach I was finally able to test the plugin. However, after the installation, I could not get the Lync website to recognize the plugin. After searching through the javascript code, I figured out what is going wrong. Instead of checking the version of the plugin by using navigator.plugins[x].version (like all other plugins) MS had the great idea to check the version by comparing the filename. The plugin is only detected properly if the filename matches exactly 'npLWAPlugin15.7.dll' which causes trouble for pipelight. We can fake all plugin information but not the filename. The filename is determined by the browser and no linux browser is going to load the plugin if the extension of the file is '.dll'. There is no way for Pipelight to get around this check and it is necessary to either alter the source code of the browser or to use some kind of browser extension to get around this problem.

Anyway, to continue testing the plugin I changed the javascript code on the IIS Server. Now the plugin failed to load because of a wine bug ( https://bugs.winehq.org/show_bug.cgi?id=14771 ) which I could solve by copying some registry keys. This made the plugin to go further and I got a dialog asking me whether I want to use Audio and Video. Clicking on yes brought up a number of new problems since the plugin is only supported on Windows 7 and above. Wine was targeting Windows XP for a long time and many developers didn't really care about functions only available in Vista and above which caused the plugin to use a lot of unimplemented functions. I fixed one of these functions, but the Lync plugin tries to use the Threadpool API which consists out of 36 functions and none of them is implemented in Wine.

At the moment, it does not make sense to add the plugin to pipelight since it obviously doesn't work with Wine. We try to implement the missing stuff, but it will be a long way and may take some time.

Michael