Saturday, July 16, 2011

CWA support for mobile devices - Lync 2010

It is Friday (half day) again and I can go back my playground. I have been waiting for Lync Mobile Client quietly for some time and today my patience ran out. I know that deploying CWA (Communicator Web Access) will not give me reach experience but, it least, some IM connectivity when away from the commuter.

Since this is greenfield Lync installation (OCS or R2 have never been present), the AD Schema was not prepped for OCS. I will do it now. My OS of choice is Windows Server 2008 R1 SP1 standard edition. Dues to the fact that “Microsoft Office Communications Server R2, Core components” and “Microsoft Office Communications Server R2, Microsoft Unified Communications Managed API 2.0 Core Redist 64-bit” will be installed, I cannot use any server where Lync bits are already installed.

Since we will ONLY have one virtual web server, I think any web server that exist in the environment could do. However, a careful evaluation of IP addresses and used ports must be done beforehand.

As first step I will download Communications Server 2007 R2 Core Components Runtime package from this link: and install it in my Domain Controller (which is also a Schema Master).

The components are now installed in “C:\Core Components Runtime Runtime Package”.

I will use “ldifde” tool to prep the schema for OCS. The command in this case will be:
ldifde -i -v -k -s DC1 -f schema.ldf -c DC=X “DC=lynclog,DC=com”.

***Note that if you are logged as different user, you must use the “-b” parameter in format:
ldifde –i –v –k –s DC1 –f schema.ldf –c DC=X “DC=contoso,DC=com” –b Administrator contoso password

More information can be found here:

In Command Prompt I will navigate to C:\Core Components Runtime Runtime Package and run the above command.

Strangely, I received an error and since couldn’t find any reference on Internet, decided to modify “schema.ldf” file where I replaced every instance of “DC=X” with “DC=lynclog,DC=com” and now my command looked like this: “ldifde -i -v -k -s DC1 -f schema.ldf”. The command ran sucessfuly this time. Go figure…

Because I must use LcsCmd.exe to proceed further, I will install sqlncli_x64.msi, vcredist_x64.exe, and ocscore.msi (in this order), located in C:\Core Components Runtime Runtime Package.

I need also .NET and so, I will run servermanagercmd -install Net-Framework Net-Framework-Core Net-Win-CFAC Net-HTTP-Activation NET-HTTP-Activation WAS WAS-Process-Model WAS-Net-Environment WAS-Config-ApIs

LcsCmd.exe is now located in C:\Program Files\Common Files\Microsoft Office Communications Server 2007 R2.

Time to run LcsCmd.exe /forest /action:forestprep and LcsCmd.exe /domain /action:domainprep

***Because I am done with the Domain Controller, it is safe to remove the core components.

It is now imperative to run Lync Server Deployment Wizard and run the Schema Prep again.

Even thou I don’t have (yet) any OCS servers in this environment, I will “Merge” the topology at this point.

Darn, I forgot to install the Backward Component Module located in the installation media.

Now “Merge” complete successfully.

Moving now to our CWA server – first the prereqs. I will run “Import-Module ServerManager” from Powershell and then “Add-WindowsFeature web-windows-auth,web-digest-auth,web-basic-auth,web-mgmt-compat,web-mgmt-console,web-common-http,web-ISAPI-ext,web-ISAPI-filter,web-request-monitor,web-http-redirect,web-http-logging” and of course – “servermanagercmd -install Net-Framework Net-Framework-Core Net-Win-CFAC Net-HTTP-Activation NET-HTTP-Activation WAS WAS-Process-Model WAS-Net-Environment WAS-Config-ApIs”

The CWA role Deployment guide can be found here:

***I already requested and imported Public Certificate from StartCom – steps which will not be described here.

I must create an account at this point…

…and of course – set it in AD to “password never expire”.

Next step – Create virtual server.

***I must be careful to select a port number that is not in use from any other application that could be already installed on this box.

Lastly – Publish the URL’s

***Install the required updates:

Now I will Merge the topology again and check if my CWA server is present.

Indeed, my server is now shown In the Legacy Trusted Application Servers list and I will publish the Topology at this point.

Next I will restart the Lync server services from Lync Management Shell:

Stop-CSWindowsService –Verbose
Start-CSWindowsService –Verbose

Time to test my CWA deployment:


Soder said...


you did not clarify a single (but most important) thing clearly enough: was this CWA functionality accomplished on a separate box, or on the same box as the Lyn Front End server? It makes a huge difference I believe.

Ps. The screenshot of the prepare AD for Lync step incorrectly marks the "Install or configure Lync server" button with the red square, isntead of the Prepare active directory button.

Drago said...


Thanks for noticing the error. It has been corrected.

It is obvious that we cannot use Lync server for CWA role, because OCS R2 installer first installs “Microsoft Office Communications Server R2, Core components” and “Microsoft Office Communications Server R2, Microsoft Unified Communications Managed API 2.0 Core Redist 64-bit” and so, those cannot be installed on machine where “Microsoft Lync server 2010, Core Components are already deployed.

Soder said...


yes I know that CWA cannot be collocated with Lync FE (actually, as you said it is not the installer wizard which prevents such co-existance, but the pre-requisite components will block each other).

The reason why I put that into my comment, that there was no clear inidication that a new dedicated server will be used for this installation. That is why I prefer some kind of inventory in the beginning of an article, so I can have a quick and unambigous picture of what is happening.

Also the statement "carefully select the CWA port as Lync SIP services already use lot of TCP ports" confused me to believe: I have to carefully select the preferred CWA port, as it may be already used ON THE LYNC BOX, which runs also the CWA! If CWA is not colocated with Lync, why should I bother about ports used on Lync?

Drago said...

Yet again you are correct.

I feel lucky now that that decided to pursue a career in UC and not English literature (smile). The statement is now corrected. Thanks again!

Soder said...

No worries, my english needs polishing sometimes aswell :)

I am always trying to write technical staff as precise as possible, because I know exactly that a missing word, or not choosing the proper synonym will result in a slightly different meaning or even send the reader to the wrong way!

Drago said...

You are absolutely correct. While strictly technical manual (typically coming from the manufacturer) rarely gives “quick and dirty” how-to, community work could suffer sometimes, since we proof read our work. You input just comes to reaffirm the power of Internet collaboration. Hopefully you will find time to read the entire blog (smile).

Anonymous said...

Hi drago,

There are components that need to be installed on the DC according to your description. Does that mean we need a 64-bit DC for this to work??

Drago said...

Because this is a lab build entirely on Windows 2008 R2 SP1, natively all machines are 64 bit and furthermore, I don’t hesitate to execute some actions on/from a DC. In Production, this might be not the best practices. Here is the link to the Technet article for preparing schema for OCS R2, which includes instructions for AD prep from 32 bit DC -

Anonymous said...

OK , thanks for this link. I have a lync standard server and an edge server. But it seems from the previous comments that this will not work on the lync 2010 stadrad server and I need to add another server for running the communnicator mobile component?

If that's the case , I might just add a 64-bit server and use it both as a DC and for Communicator mobile components?

is that right?

Drago said...

While this article: does not states that installation on CWA role on Domain Controller is not supported, the fact Core Components, UCMA Core Redist and CWA bits will be installed, combined with exposing a Domain Controller on Public Internet makes it one bad, bad idea.

Anonymous said...

I think your ldifde error probably came from not enclosing DC=X in double quotes. At least that's always the syntax I use with ldifde and it's been successful.

Anonymous said...

Hi Drago,

There is one thing that is not clarified here....

The server used for installing the communicator components and CWA etc. should be a domain joined server on the lan or a workgroup computer on dmz?

Akhil Srivastava said...


Is file transfer will work after done this configuration..?? Because my file transfer is not working between lync client and CWA client.

Drago said...

File transfer will not work. If you notice, the transfer fails with message "Cannot send xxx.yyy because ...Name... is using client or device that cannot receive file transfers"

Anonymous said...

Hi Drago.

I am tried following your directions with no success :(. The Merge function errros saying it can't find a 2007 server :(

Any idea what I am doing wrong?

Drago said...

Why would you want to install CWA now that we have native support for mobile devices on Lync server?

Anonymous said...

Just curious as I don't see anyone saying followed the instruction and got successful deployment. My Lync deployment has been done before thinking we will need CWA. So, I need to try this desperately.

Anonymous said...

Any way to get this to work wish Skype for Business 2015? I followed the steps, but there is no "Merge Topology" function :(