http://blog.schertz.name/2013/10/updating-polycom-vvx-phones/

Updating Polycom VVX Phones

With the recent release of UCS 5.0 for Polycom VVX Phones automatic firmware updates are now supported directly from the Lync Device Update service. This is the same functionality which Lync Phone Edition devices have always used for firmware updates and now eliminates the need for a separate Provisioning server in most Lync environments leveraging VVX Phones.

Although the 5.0.0 release added the ability to leverage the Device Update service it was not yet possible to actually leverage the feature until a new update was published. Now that the 5.0.1 maintenance release is available then this and all future releases can be handled natively by the Lync server.

The update behavior of the VVX phones is very similar to that of Lync Phone Edition, yet is even more flexible. For LPE devices the update service is queried immediately after the initial registration and then again after a hard-coded period of time. If a new update is available LPE devices will wait for a certain period of inactivity on the phone and then automatically download, waiting again for more idle time before rebooting itself to complete the process. VVX devices operate in the same way but also offer two important improvements: (1) the inactivity timeout is configurable and (2) when a new update is available the device will prompt the user to install it immediately if desired, or defer if not. In LPE it is not possible to control the update behavior in this manner and it is all automatic.

Note that this article is quite lengthy as the entire process is described in detail, accompanied by various log entries and other examples. Yet in practice using the Lync Device Update service for VVX phone updates is identical to the process used by LPE devices. So when working with a Lync Server already setup for LPE updates then adding VVX updates is as simple as importing and approving the new packages. The experienced Lync administrator can skip to the last section entitled “Lync Pro Guide” for the abbreviated steps.

Firmware Versions

The following table lists Lync-qualified UCS releases which support native device updates and will continue to be updated as future releases are posted online. Earlier 4.x versions are not referenced here as they were not available as compatible device files (.cab) and only released in the traditional UCS format (.sip.ld)

Version Date Details Links
5.0.0.6874 9/6/2013 Initial release with support for Lync Device Update services in both Lync Server 2010 and Lync Server 2013. Also includes support for the following new features: * Boss/Admin (Shared Line Appearances) – Phase 1
* Better Together Over Ethernet (BToE) – Phase 1
* Lync Address Book Web Query (ABWQ)
* Call Park and Retrieval
* Peer-to-Peer Video Calling (Lync 2010 only) Release Notes
Firmware
5.0.1.4068 10/21/2013 Maintenance release including hotfixes and the following feature enhancements: * BToE Improvements (e.g. Automatic Pairing)
* Shared Line Appearance Improvements Release Notes
Firmware Preparation

In order to successfully download the UCS firmware package from the Lync Server to a VVX phone the device must first be running at least version 5.0.0.6874 which was the first officially released version to support the Lync Device Update service. The phone must also be successfully registered to a Lync Server in order for this capability to function.

The example used in the remainder of this article is a Polycom VVX 410 phone running 5.0.0.6874 firmware, registered externally via an Edge Server to a Lync Server 2013 environment.

The following preparation steps do not need to be performed on any devices but are included to illustrate key behavior in the process as well as verify a functional device update service.

* On the phone browse to Settings > Status > Diagnostics > Lync Device Update to view the latest status.

[image]

As this example environment does not yet have any device update packages for VVX phones imported into the Lync Server then the phone should report that there is currently no update available.

If there were any problems connecting to the device update service on the Lync Server (internally or externally) then this status window would report a connection failure. To further validate that this device was successfully connected to the update service the server’s device log can be checked for any entries associated with the device.

* On the phone browse to the Settings > Status > Network > Ethernet menu to identify the Media Access Control (MAC) address of the device (e.g. 00:04:F2:81:0E:93), or just look at the sticker on the bottom of the phone.

[image]

* On the Lync Front End server browse to the device update server log directory and open the most recent log file with the current date in the name (e.g. RequestHandlerAuditLog_blync_10162013.log)

\\LyncShare\1-WebServices-1\DeviceUpdateLogs\Server\Audit\imageUpdates\

[image]

* Search for the most recent entry which contains the same MAC address of the phone. Note that the timestamp should coincide with the Contacted At time as reported on the phone itself. There is a one hour time zone difference between the Lync Server and the phone in this example (8:57:48 and 9:57:48).

10/16/2013 08:57:48,,192.168.1.153,3PIP,10/16/2013 9:57:46 AM,”0004F2810E93″, “0004F2810E93″,”POLYCOM”,”VVX410″,”Rev-2″,”ENU”,cpe.nbt;5.0.0.6874;8/22/2013 2:56:00 AM,

The entry above shows that the device queried the update service but the server does not have any newer updates currently approved, thus no download information was passed to the device. Also note the revision that was reported in the entry (e.g. Rev-2) as that information is important when approving any pending updates.

Import Updates

This part is nearly identical to how Lync Phone Edition updates are imported and approved in Lync Server, as documented in this previous article. The only differences are how the updates are packaged and where they are stored on the server.

Prepare Restore Version

As important as upgrading the firmware is, having a way to reverse the update is just as imperative. It is always possible that a new firmware version does not operate as expected in some environments so if an issue is discovered soon after upgrading to a new version then being able to roll-back the devices to the previous release is critical.

Existing phones would have been updated to the 5.0.0 release using some means other than device update service so if the 5.0.0 version is not loaded into the Lync Server prior to approving the 5.0.1 version then it will not be possible to roll-back firmware by using the Restore feature. Instead the older updates would need to be manually imported and approved using this same process.

* Download the 5.0.0 UC Software release in [CAB File] format (ignore any link for [Combined] or [Split] as those are used with the traditional Polycom SIP Phone firmware upgrade process).
* Open the downloaded file (e.g. Polycom_UC_Software_5_0_0_Lync_CAB_file_release sig.zip) and extract any or all of the individual CAB files for the desired phones. In this example only the firmware file for the VVX 410 is needed (PLCM_Update_VVX410.cab).

[image]

* Copy the extracted file to any directory on the Lync Front End server (e.g. C:\Temp) and then using the Lync Server Management Shell run the following cmdlet to import the package, supplying the name of the Lync Server as the target service. Repeat this cmdlet for each CAB file which is required. (To easily import all packages see the Lync Pro Guide section at the end of this article).

Import-CsDeviceUpdate -Identity service:webserver:lync.schertz.name -FileName C:\Temp\PLCM_Update_VVX410.cab

Upon successful completion of the cmdlet the firmware files contained within will have been automatically copied by the server into various directories in the Lync Server share. The parent folder (DeviceUpdateStore) is the same as where other device updates are stored, but instead of being placed under the UCPhone subdirectory these packages as well as device updates from other qualified devices like Snom are stored under the 3PIP sub-directory. (‘3PIP’ is an acronym for Microsoft’s 3rd Party Interoperability Program for qualified Lync phones).

\\LyncShare\1-WebServices-1\DeviceUpdateStore\3PIP\POLYCOM\VVX410\Rev-2\ENU\5.0.0.6874\CPE\

[image]

Although the package is now installed on the Lync Server it is not yet available for applicable devices to utilize. A quick check of the device updates status on the phone at this point would show that there is still no available update.

* Using the Lync Server Control Panel browse to Clients > Device Update and verify that the newly added device appears in the list. As there are multiple hardware revisions of the same phone model there may be more than one line item per device model. Also note that the firmware version is listed as the Pending version.

[image]

It is important to understand what the three version fields represent in the device update configuration. The Pending Version is the version of files which were last imported into the server using the Import-CsDeviceUpdate cmdlet. That cmdlet basically puts the software into a staging area which does nothing until an administrator either approves or cancels the pending update. The Approved Version is exactly as it sounds: the version of software which the administrator has most recently approved for a given device mode. The Restore Version is initially blank and will be populated when this process is performed again with another newer update. When approving a newer update the previously approved version will be moved to the Restore Version field which can then be used to easily roll-back devices to that older version.

* Highlight the desired Model/Revision entries and then select Approve from the Action menu. This will move the target version number from the Pending Version to the Approved Version field.

[image]

If the approved version is the same version that the device already has installed then the device update service will not pass any download URL or new version details to the phone when it queries the service. Thus the status on the phone will still display no available updates.

Prepare New Version

Now that the initial version is configured and approved it is ready to be moved into the Restore Version field by approving another version. Note that Lync Server allows either newer or older versions to be approved, so this process can be used to either upgrade or downgrade devices depending on the need to do so.

The same exact steps are repeated again, but this time the newer firmware package is imported and approved which will automatically move the previous Approved version into the Restore version field.

* Download the latest UC Software CAB release from the table at the beginning of this article.
* Open the downloaded file (e.g. Polycom_UC_Software_CAB_files_5_0_1_4068_sig_Lync.zip) and extract any or all of the individual CAB files for the desired phones.

[image]

* Copy the desired files to any directory on the Lync Front End server (e.g. C:\Temp) and then using the Lync Server Management Shell run the following cmdlet to import each package, supplying the name of the Lync Server as the target service. Repeat this cmdlet for each CAB file which is required. (To easily import all packages see the Lync Pro Guide section at the end of this article).

Import-CsDeviceUpdate -Identity service:webserver:lync.schertz.name -FileName C:\Temp\PLCM_Update_VVX410.cab

* Using the Lync Server Control Panel browse to Clients > Device Update and verify that the newly added devices appear in the list.

[image]

Test Device

Now that a newer version has been imported and is in a pending state it can be used with a test device, yet all other devices would not be able to get the newer version as it has not yet been approved. It is always recommended to install a new firmware release on a handful of test devices to make sure there are no immediate negative impacts to the devices in the environment before approving the version for mass deployment.

* Using the Lync Server Control Panel browse to Clients > Test Device and select Global Test Device from the New menu.
* Enter an informative Device Name, leave the default Identifier Type selection of MAC Address, and then enter the MAC address of the device which was identified in the early Preparation step of this article (e.g. 0004F2810E93). Enter only the hexadecimal characters and do not include any separators like spaces, colons, or dashes.

[image]

* Commit the changes and then trigger a restart on the associated phone by browsing to Settings > Basic > Restart Phone, or by using the MKC explained in the following tip.

Tip: Polycom UCS devices support various Multi-Key Combinations (MKC) of which can be used to quickly perform actions or access menus otherwise buried a few levels deep. Previous articles have covered the MKC which is used to quickly access the Base Profile menu (1 4 9). Two more helpful MKCs are available to instantly trigger either a reboot or a restart of the phone. Note that these MKCs can vary between different UCS device families like VVX, SoundPoint IP, SoundStation IP, etc.

Simply press and hold the three buttons of the desired MKC together at any menu or screen on the phone and after 2 seconds the associated action will be triggered.

* A basic Restart simply restarts the phone’s application software and thus will perform a fresh registration, among other tasks. The MKC to issue a Restart on VVX model phones is 1 8 3.
* A full Reboot is generally the same as manually power-cycling the device so that the BootROM and hardware self-checks are performed, then the application software is loaded. The MKC to issue a Reboot on VVX model phones is 1 0 3.

Restarting (or rebooting) the device will force the phone to immediately query the Lync Device Update Server after registration so that there is no need to wait for the phone to query the device update service on its own schedule. After the restart completes and the phone registers to Lync then the following alert message should appear on the home screen.

[image]

Viewing the device update server log again will show the latest query from the device, but this time it will include the internal and external device update services URLs with the absolute paths to request the firmware package specific to the device model/revision.

10/16/2013 12:24:20,,192.168.1.153,3PIP,10/16/2013 1:24:18 PM,”0004F2810E93″,”0004F2810E93″,”POLYCOM”,”VVX410″,”Rev-2″,”ENU”,cpe.nbt;5.0.0.6874;8/22/2013 2:56:00 AM, http://lync.schertz.name/RequestHandler/Files/3PIP/POLYCOM/VVX410/Rev-2/ENU/5.0.1.4068/CPE/CPE.nbt; https://lyncweb.mslync.net/RequestHandlerExt/Files/3PIP/POLYCOM/VVX410/Rev-2/ENU/5.0.1.4068/CPE/CPE.nbt;5.0.1.4068;10/10/2013 4:35:06 PM

If the previous alert message has disappeared from the phone’s screen before an action is taken it can be accessed again by pressing the More button on the home screen to cycles through the additional soft key options to locate the Dev Updt menu.

* Select the Details action to see the pending version number and the Inactivity Timeout value.

[image]

At this point a choice can be made whether to immediately install the new update or instead wait for the phone to perform the action on its own. If the phone is left idle for 15 minutes (900 seconds) then it will automatically reboot, download the update, and then apply it. If the Reboot option is selected from this menu then the phone will immediately begin the update process.

The firmware packages for VVX phones contain two parts: the BootROM files called the ‘Updater’ and the actual phone operating system and programs called the ‘Application’. The update process downloads and installs these parts individually with reboots in between each.

* On the phone’s home screen select More > More > Dev Updt and then select Reboot to force the update process.

The device will reboot and then display a status of ‘Updating’ shortly afterward. It will download the new Updater and reboot again. After the second reboot the same ‘Updating’ message will appear again, this time followed by a status of ‘Downloading new application’. After the application data is downloaded it will be extracted and installed into the device. A third and final reboot will be triggered and then the phone will return to its normal status, signing back into the Lync Server.

* To see how the device downloaded the update files simply view the most recent IIS W3SVC log file on the Lync Server. Depending on whether the phone is internal or external the logs will be captured in one or the other of the two W3SVC log directory on the Lync Server. The higher number directory name (e.g. 34578) is for the external web services logs, while the lower is for the internal web services logs.

C:\inetpub\logs\LogFiles\W3SVC

[image]

* Scroll to the end of the file to view the latest activity or search for “GET /RequestHandler” to locate the entries where the device requested the various downloads. The first occurrence was when the BootRom was upgraded, the second occurrence was for the application was upgraded.

2013-10-16 18:45:27 10.22.1.31 GET /RequestHandlerExt/Files/3PIP/POLYCOM/VVX410/Rev-2/ENU/5.0.1.4068/CPE/CPE.nbt – 4443 – 10.24.5.13 FileTransport+PolycomVVX-VVX_410-UA/5.0.0.6874+Type/Application – 401 1 2148074254 4

2013-10-16 18:45:27 10.22.1.31 GET /RequestHandlerExt/Files/3PIP/POLYCOM/VVX410/Rev-2/ENU/5.0.1.4068/CPE/CPE.nbt – 4443 vvx410@mslync.net 10.24.1.13 FileTransport+PolycomVVX-VVX_410-UA/5.0.0.6874+Type/Application – 200 0 995 293

* To verify the new firmware version has been successfully installed on the phone browse to Settings > Status > Platform > Application > Main and verify the Version number matches the expected new firmware version (e.g. 5.0.1.4068)

[image]

Approve Updates

Once sufficient testing has been performed then it is time to approve this new version for all desired devices, models, and hardware revisions.

* Highlight the desired selection of device entries and then select Approve from the Action menu.

[image]

In this example any VVX 410 models connected to this Lync Server will be able to upgrade to version 5.0.1.4068 and in the event it is desired to roll-back the restore version of 5.0.0.6874 is available. All approved devices will begin to automatically update given the behavior previously explained. Based on the default behavior all online phones will have checked-in with the Device Update service within 2 hours and any device left idle for at least 15 minutes will trigger the upgrade process.

Downgrade Device

The following steps outline how to test downgrading devices using the Restore version assigned in the Lync Device Update configuration.

* Using the Lync Server Control Panel browse to Clients > Device Update and highlight the desired Model/Revision selection and then select Restore from the Action menu. For this example only the current Rev-2 revision phone will be restored to the older version.
* Refresh the control panel window and verify that the Restore version entry (e.g. 5.0.0.6874) has moved to the Approved version field on the selected device rule.

[image]

* Reboot the associated phone to trigger a new device update service query and then view the details of the update information alert to verify that the Version on Server is in fact older than the Current Version.

[image]

* Select Reboot to trigger the update process to download and install the older firmware version.

Additional Parameters

As mentioned earlier, some of the behavior in the device update process can be controlled by the administrator.

Because the following parameters are specific to controlling behavior in UCS then there is no way to utilize the Lync Server to provide these settings in-band. A separate provisioning server would still be needed to manage a quantity of devices in this manner.

Parameter (Description) Minimum Default Maximum
device.prov.lyncDeviceUpdateEnabled

This parameter controls whether the Lync Device update service is used or not. 0

(Disabled)
1

(Enabled) 1

(Enabled)

lync.deviceUpdate.userInactivityTimeout

The amount of idle time (in seconds) in which the device requires before rebooting to initiate the update process. 300

(5 minutes) 900

(15 minutes)
1800

(30 minutes)

lync.deviceUpdate.popUpSK.enabled

Show (1) or suppress (0) the information pop-up message which appears on the phone when a new firmware version is available. 0

(Disabled) 1

(Enabled)
1

(Disabled)

lync.deviceUpdate.serverPollInterval

The amount of time (in seconds) between requests from the phone to the Lync Device Update service to query for a new, approved update. 1800

(1/2 hour)
7200

(2 hours)
28800

(8 hours)

For example, to disable the Lync Device Update capability on the devices import the following sample configuration file into the phone. In order to modify any individual device parameters it is required that the device.set and device..set parameters are set to ‘1’ at the same time, otherwise the phone will ignore the configuration change.

Another scenario would be to leave the device update feature enabled but modify each of the behavioral parameters. The following example shows how to increase the inactivity timeout to 30 minutes, disable the pop-up alert when a new update is available, and increase the server poll interval to 8 hours.

Lync Pro Guide

As promised here is the short-form set of instructions for importing all VVX firmware images from a new update package into a Lync Server and then immediately approving them. This section can also serve as a quick reference guide every time a new update package is released.

* Download the latest UC Software release in [CAB File] format. Unpack the files to a directory on the Lync Server (e.g. c:\temp\update).
* Delete any unneeded CAB files, retaining only the files for the specific device models in the environment. Do not delete the PowerShell script (importCAB.ps1). In this example only VVX 310, 410, 500, and 600 models are desired.
* Open the Lync Server Management Shell and change to the directory with the extracted files and execute the importCAB.ps1 script. Ignore any “import file not found” errors which will appear for any CAB files which were deleted in the previous step.

[image]

* Issue the following cmdlet to approve all pending VVX device update packages.

Get-CsDeviceUpdateRule | Where-Object {$_.Model -like “VVX*”} | Approve-CsDeviceUpdateRule

[http://1.gravatar.com/avatar/b9036b29b61440dd343f583a822a46ca?s=64&d=identicon&r=G]About Jeff Schertz Site Administrator