Polycom Cx700 Firmware Upgrade Lync

The Polycom CX700 phone ships with version 7577.4100 of the Lync Phone Edition operating system. It’s an older version, from OCS days.

You can still use this phone with Lync Server 2010 and 2013, by installing the latest version of Lync Phone Edition.

However, attempting to upgrade it via the direct route fails. Turns out there’s an error in its upgrade path.

In order to utilize Lync integration a one-time update process must first be used to upgrade devices running 3.x to 4.x. This process can be used on any of the Polycom SIP Phones which support 4.x software today (SoundPoint IP, SoundStation IP, VVX, and SpectraLink models). Updating Firmware. There is a workaround to manually install your DC CA using the usb port on the phone. However, once connected to Lync Server 2010/2013, you will find that the OCS beta firmware is just too old for Lync Server to acknowledge and push out firmware upgrades.

We encountered this error, and after some online research plus talking to Microsoft, came to the solution. Here it is, for your future reference!

The Problem: CX700 Won’t Allow Upgrades OR Login

Like all Polycom phones, the CX700’s OS is upgradeable. We found out about the latest version of Lync Phone Edition, Cumulative Update 7 (CU7). Hey, new version! Let’s upgrade!

Except we couldn’t. We tried logging into the phone for upgrading…and failed. The phone stalled, eventually giving us a Certificate Authentication Error.

Why would the phone resist upgrading? Were we missing a setting? Did we have the wrong process?

Polycom Cx700 Firmware Upgrade Lynchburg

Cx700

Time to find out. To the Internet!

The Solution: CX700 Requires CU5 Before CU7

Thanks to a call to Microsoft and one of Jeff Schertz’s excellent blog posts, we discovered the problem. It’s an error between version upgrades of Lync Phone Edition. Microsoft has not listed this error on their websites, but they will confirm the error exists if asked.

In order to upgrade to CU7, you must first install a prior update, Cumulative Update (CU5). Once CU5 is installed, the CX700 will recognize CU7 as a valid upgrade path for its OS, and the install will go through.

Jeff Schertz, a Lync Server MVP and blogger at http://Blog.Schertz.Name, has posted an explanation and workaround for the CU5-to-CU7 upgrade issue:
Lync Phone Edition CU6 Upgrade Issues – Jeff Schertz’s Blog

(His post discusses upgrading to CU6. The same process can be used for CU7.)

You must manually install CU5 to the phone, and verify its certificate, before attempting to install CU7. The steps for doing are listed in “Workaround” on the above-linked blog post.

(Using this process, you can even skip upgrading to CU6 and use CU7 instead.)

CU5 Not Available for Download at Microsoft; Download the Update File Below

Lync Phone Edition CU7 is available from Microsoft Support. However, Microsoft does not have CU5 posted on their Downloads site anymore! If you search for it, you will find a CU5 KB page. But clicking Download will give you a copy of CU7 instead.

Unfortunately, this is standard Microsoft practice. But it leaves all of us in the lurch on these phones!

Polycom Cx700 Firmware Upgrade Lynchings

Jeff Schertz again came to the rescue. He posted the CU5 download file (in .cab format) on his blog. In order to continue the goodwill, we’re offering the same file for download here:
UCUpdates_tanjay_CU5.cab

EDIT:Â FILE DEPRECATED

So there you have it. Download Lync Phone Edition CU5, install it on your CX700s following the Schertz procedure, and THEN you can upgrade the phones to CU7. It’s a workaround, yes. But for now, it does accomplish the goal.

Have you upgraded your Lync-enabled phones? How’d it go?

Upgrading the Polycom CX700 Phone to Lync Phone Edition CU7

I noticed today that a large shipment of Polycom phones we were going to deploy were using the RTM version of Lync Phone Edition and were outdated compared to Microsoft’s latest version. That being said, here is a guide on how to update the firmware for your phones.

At the time of this writing, it appears there are only a few different manufacturers that distribute the Microsoft Lync Phone Edition phones. For reference, here are the Microsoft URLs for each of those phone types:

Firmware Upgrade Ipod

  • Microsoft Lync Phone Edition for Aastra 6721ip and Aastra 6725ip
  • Microsoft Lync Phone Edition for Polycom CX700 and LG-Nortel IP Phone 8540
  • Microsoft Lync Phone Edition for Polycom CX500, Polycom CX600 and Polycom CX3000
  • Microsoft Lync Phone Edition for HP 4110 and HP 4120

Polycom Cx700 Firmware Upgrade Lynching

  1. Download the latest firmware for the Lync Phone Edition device.
    1. In my case, I want to push out the latest firmware for the Polycom CX600s, which can be found here (links to the firmware of other phones can be found above in this same article): http://www.microsoft.com/en-us/download/details.aspx?id=23866
  2. Double click on the downloaded file (UCUpdates.exe), and run through the wizard.
    1. Select your language:
    2. Accept the EULA
    3. On this step, extract the files to a folder you can recognize. All firmware downloads are called UCUpdates.exe and ucupdates.cab, so I highly recommend you sort out each firmware to a corresponding folder.
    4. Click the “Click this link to open folder in Windows Explorer.” and verify you see the ucupdates.cab file.
    5. Here we see the ucupdates.cab file.
  3. Copy the ucupdates.cab file over to your Lync Front End Server if you didn’t in the first step.
  4. Execute the following powershell command (where the WebServer is the Front End Pool or Front End Server in a standalone instance):
    1. Import-CsDeviceUpdate -Identity service:WebServer:lync.mydomain.local -FileName “C:Polycom CX600ucupdates.cab” -Verbose
      1. Note: I added the optional -Verbose parameter to show the output of what the PowerShell command is doing behind the scenes. Some people have mentioned this step taking awhile to complete, this will at least give you some comfort if things are moving forward or not.
  5. Once the command has completed successfully, head over to the Lync Server Control Panel (LSCP) (Web GUI), and navigate to Clients > Device Update. Here you should see the firmware for your device and you should notice that the version shows up under the “Pending Version” column. This means that the firmware will NOT be pushed until we manually approve it.
  6. Now we will push out the firmware to one device to ensure the firmware actually works. Inside of the Lync Server Control Panel, click on the Test Device tab.
    1. Click the New… button and then select Global test device
    2. For Device Name, type in something like Polycom CX600 to identify what will be pushed to it, and then enter in the MAC address of the phone in the Unique identifier field.
      1. Note: if you use the MAC address as the Unique identifier, make sure you leave out any special characters, it should be only the hex address.
    3. Here is a screenshot below of my test device:
  7. At this point, all you need to do is wait until the phone reboots and applies the update automatically (you don’t need to approve the firmware or anything like that, it just starts to deploy to the test device).
    1. If you want to check what is going on, if you login to your front end server and navigate to C:inetpublogsLogFiles<randomID>, you can see the process of the phone trying to pull the update files and then reconnecting with the updates. In my case, I could see the phone boot, pull the new firmware files, and then reboot and make new requests with the latest version in the headers.
    2. 2013-05-16 15:43:13 192.168.1.21 POST /locationinformation/liservice.svc/mex – 443 – 192.168.2.2 OCPhone/4.0.7577.4066+(Microsoft+Lync+2010+Phone+Edition) – 200 0 0 114
      2013-05-16 15:43:13 192.168.1.21 POST /RequestHandler/ucdevice.upx – 443 – 192.168.2.2 Microsoft+UCPhone+Device+(lcs_se_w14_main:1077577:2012/02/18:16:44:15) – 200 0 0 219
      2013-05-16 15:43:13 192.168.1.21 GET /RequestHandler/Files/UCPhone/POLYCOM/CX600/Rev-5/ENU/4.0.7577.4387/CPE/CPE.nbt – 80 – 192.168.2.2 Microsoft+UCPhone+Device+(lcs_se_w14_main:1077577:2012/02/18:16:44:15) – 200 0 995 240
      2013-05-16 15:43:13 192.168.1.21 POST /groupexpansion/service.svc/mex – 443 – 192.168.2.2 OCPhone/4.0.7577.4066+(Microsoft+Lync+2010+Phone+Edition) – 200 0 0 30
      2013-05-16 15:43:15 192.168.1.21 POST /WebTicket/WebTicketService.svc/mex – 443 – 192.168.2.2 OCPhone/4.0.7577.4066+(Microsoft+Lync+2010+Phone+Edition) – 200 0 0 129
      2013-05-16 15:43:17 192.168.1.21 POST /WebTicket/WebTicketService.svc/cert – 443 – 192.168.2.2 OCPhone/4.0.7577.4066+(Microsoft+Lync+2010+Phone+Edition) – 200 0 0 68
      2013-05-16 15:43:17 192.168.1.21 POST /locationinformation/liservice.svc/WebTicket_Bearer – 443 – 192.168.2.2 OCPhone/4.0.7577.4066+(Microsoft+Lync+2010+Phone+Edition) – 200 0 0 197
      ……….Some random logs here……….
      2013-05-16 15:44:16 192.168.1.21 GET /RequestHandler/Files/UCPhone/POLYCOM/CX600/Rev-5/ENU/4.0.7577.4387/CPE/CPE.nbt – 80 – 192.168.2.2 Microsoft+UCPhone+Device+(lcs_se_w14_main:1077577:2012/02/18:16:44:15) – 200 0 0 61951
      2013-05-16 15:44:16 192.168.1.21 GET /RequestHandler/Files/UCPhone/POLYCOM/CX600/Rev-5/ENU/4.0.7577.4387/CPE/CPE.cat – 80 – 192.168.2.2 Microsoft+UCPhone+Device+(lcs_se_w14_main:1077577:2012/02/18:16:44:15) – 200 0 0 44
      2013-05-16 15:44:16 192.168.1.21 GET /RequestHandler/Files/UCPhone/POLYCOM/CX600/Rev-5/ENU/4.0.7577.4387/CPE/CPE.cat – 80 – 192.168.2.2 Microsoft+UCPhone+Device+(lcs_se_w14_main:1077577:2012/02/18:16:44:15) – 200 0 0 10
      ……….Some random logs here……….
      2013-05-16 15:51:55 192.168.1.21 POST /groupexpansion/service.svc/mex – 443 – 192.168.2.2 OCPhone/4.0.7577.4387+(Microsoft+Lync+Phone+Edition) – 200 0 0 11
      2013-05-16 15:51:55 192.168.1.21 POST /locationinformation/liservice.svc/mex – 443 – 192.168.2.2 OCPhone/4.0.7577.4387+(Microsoft+Lync+Phone+Edition) – 200 0 0 8
      2013-05-16 15:51:56 192.168.1.21 POST /WebTicket/WebTicketService.svc/mex – 443 – 192.168.2.2 OCPhone/4.0.7577.4387+(Microsoft+Lync+Phone+Edition) – 200 0 0 10
  8. Once the firmware has been applied to your test device and all is well, we need to approve the firmware for all phones in the organization. To do so, follow the steps below.
    1. Navigate to Clients -> Device Update
    2. Click Edit,Select all
    3. Click Action, Approve