Lync 2010 Mobility Service Deployment –Part 1

In this two part article, I will explain the steps required to install and configure the Lync 2010 Mobility Service.

I will be using the same lab which I used for installing Lync 2010 Std Edition (covered here) and Lync 2010 Edge server (covered here).

The lab consists of a DC which is also a CA, an Exchange 2010 multi-role server, a Lync 2010 Std Edition Server, a Lync 2010 Edge Server & TMG 2010 (both in the DMZ).

Install Lync 2010 CU4 on front-end servers

The Lync Mobility Service is introduced in Cumulative update 4 for Lync 2010. Hence, first step will be to download the LyncServerUpdateInstaller.exe from here, which is part of CU4. Learn more about how to patch a Lync server here.

CUIntsaller

The CU4 needs to be run on all Front End servers. In my lab, there is only a single Lync server.

Before patching the server, stop all Lync services by running Stop-CsWindowsService from the Lync Shell. Stop all IIS services by running Net Stop w3svc.

Now that the services are stopped, run the LyncServerUpdateInstaller.exe (run as admin) on the front end server. If you have red cross mark, that means that the updates are not on the server and hence click Install Updates.

Install Updates

The Windows Installer will be run and at the end you should have green tick against all the updates. Click Close.

Updates installed

Start the Lync & IIS services by running Start-CsWindowsService and Net Start w3svc from the Lync Shell. Run the steps above on all front end servers in the pool.

Update SQL Databases

The next step is to update he backend SQL databases. This step should only be done once per pool and should be run from only one FE server per pool for each instance of the backend database.

In order to update the database, stop the Lync services first by running Stop-CsWindowsService from the Lync Shell.

Run the command Install-CsDatabase –Update –LocalDatabases (as we have a std edition server). Make sure you have exit code as success throughout the process.

Update SQL Databases

If you have enterprise edition backend server database & the databases are not collocated with other databases (like archiving or monitoring databases), run Install-CsDatabase –Update –ConfiguredDatabases –SqlServerFqdn <sql fqdn>

If you have enterprise edition backend server database & the databases are collocated with other databases (like archiving or monitoring databases), run Install-CsDatabase –Update –ConfiguredDatabases –SqlServerFqdn <sql fqdn> –ExcludeCollocatedStores

Restart all Lync services by running Start-CsWindowsService cmdlet from Lync Shell or restart the server.

Configure Listening Ports

Before installing the mobility service on the front end servers, the Lync topology must have the web service internal and external listening ports defined. Run the following commands from Lync Shell on every front-end server.

Set-CsWebServer –identity “pool fqdn” –McxSipPrimaryListeningPort 5086

Set-CsWebServer –identity “pool fqdn” –McxSipExternalListeningPort 5087

Enable-CsTopology so that the topology is published and updated.

Configure listening ports

Install IIS Pre-reqs

The mobility service utilizes dynamic content compression component of IIS. Run the following from Powershell (run as admin). No server reboot is required.

Import-Module ServerManager

Add-WindowsFeature Web-Server, Web-Dyn-Compression

Install IIS prereqs

Install Mobility & Autodiscover Service

The mobility and autodiscover services are not installed by running the msi package. Instead, the file needs to be saved to a particular location and the Lync Bootstrapper is executed, which in turn picks up the package and update the server. All front-end servers and directors (if you have one) have to be updated with this new services. The front-end servers will get the mobility & autodiscover service, while the directors get the autodiscover service alone.

Download the mobility and autodiscover service from here and save it to C:\ProgramData\Microsoft\Lync Server\Deployment\cache\4.0.7577.0\setup\ on the Lync server. Make sure to “show hidden files and folders”, as ProgramData folder is a hidden one.

McxStandalone

Now that the msi is in the required location, run the Bootstrapper.exe from C:\Program Files\Microsoft Lync Server 2010\Deployment\Bootstrapper.exe in the Lync Shell.

The commands are cd “C:\Program Files\Microsoft Lync Server 2010\Deployment” and .\BootStrapper.exe

Change location

The bootstrapper checks the pre-reqs and installs the McxStandalone.msi

Run bootstrapper

If the install went successfully, you will have Autodiscover and Mcx directories under the Lync Internal and External website in IIS manager.

External Site

Internal Site

You will also have two new application pools – CSExtMcxAppPool and CSIntMcxAppPool.

New App Pools

Modify the Lync Internal Certificate

In most cases, the internal Lync cert will be from the internal CA and hence updating is easy enough. The certificate should be modified to include the autodiscover fqdn – Lyncdiscoverinternal.<sipdomain> and Lyncdiscover.<sipdomain>. In my case, the cert will be modified to include Lyncdiscoverinternal.exchangemaster.me and Lyncdiscover.exchangemaster.me.

Run the Lync Deployment Wizard and click on Install or Update Lync Server System.

Install or update

Click on the Run button against step 3.

Run Certificates Wizard

Click on the Request button.

Request button

Click Next on the welcome screen.

Certificate Request Window

Select the first option and click Next.

Send request to online CA

Select the internal CA and click Next.

HEW CA

Click Next on the certificate authority account wizard page.

CA Account

Click Next on the Specify Alternate Certificate Template page.

Alternate CA Template

Enter a friendly name and click Next.

Friendly cert name

Organization and geographical info are optional.

The subject alternate names for autodiscover will be filled in by the wizard.

Modified Cert

Select your sip domain and click Next.

SIP Domain

Click Next on the Configure additional SAN (unless you have an additional one).

Additional Urls

Verify the cert summary and click Next.

Cert Summary

Request-CsCertificate cmdlet will be run. Click Next when the process completes successfully.

Request Cert

Make sure that the assign this certificate to Lync server option is checked and click Finish.

Assign Certificate

Click Next on the Certificate Assignment page.

Certificate Assignment

Click Next in the Cert Summary. The Set-CsCertificate cmdlet will be run and click Finish when the task completes successfully.

Assign Cert

This completes the certificate update process.

Configure DNS records for Autodiscover

The internal DNS server needs to have A or CNAME records for lyncdiscoverinternal.<sipdomain> and lyncdiscover.<sipdomain>. CNAME records will be better if you have more than one FE server, as we can point it to the front end pool rather than a server. I only have a single server and hence my server fqdn is the same as the pool fqdn.

Lyncdiscoverinternal

An A or CNAME record needs to be created in the public DNS for lyndiscover.<sipdomain> pointing to the reverse proxy, TMG 2010 in my case.

This concludes part one of the series. in part two, we will publish the autodiscover service using TMG 2010, configure push notification and mobility policies.

12 thoughts on “Lync 2010 Mobility Service Deployment –Part 1”

  1. I love these deployment articles from you here at HowExchangeWorks – precise and to the point!

    Awesome work Rajith. Your blog is one of my favorite Exchange/Lync places on the web.

    Reply
  2. You should note that the Mobility Service can be updated by the LyncServerUpdateInstaller.exe (currently CU5) bringing the Mobility Services binaries from 7577.183 to 7577.197 upon installing it, but maybe that’s in part 2 of this article series? :)

    Or just go ahead and get the .197 version right away from the CU5 list here:
    http://www.microsoft.com/en-us/download/details.aspx?id=11551

    The file is: McxStandalone.msp

    I haven’t tried to use the .197 version directly (not using the upgrade path), but I’m certain it would work too.

    -Jonas

    Reply
    • Yes Jonas. I was down with flu and hence couldn’t moderate.
      That explains the lack of posts in the last 4 days ;)

      Reply
  3. Regarding to the public DNS is that mean that i should ask from my internet service provider to create a record in they system, or I’ve to create it in our internal DNS server and what i should point it to?
    shall I make it an A record to point to public IP in our organization
    and if no what is the solution because i’ve miss understanding about this point, I read a huge of article and even microsoft guide but i didn’t find more simble as you did you make it very easy to me i just stopped in 2 point the public dns record and my firewall is fortigate and i need to pass the mobility service throw it as i mentioned in other comment

    Please Help me as much as you can
    Appreciate your effort

    Regards

    Ibrahim

    Reply
    • You need the record to be created in the public DNS. Either tell your external DNS provider to create one for you or do it yourself.
      Some providers give you portal access and you can configure the DNS records on your own, like GoDaddy.

      Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.