In a previous post, How to upgrade Polycom CX700 1.0.452.0 using the OCS 2007 R2 Device Update Service, I asked if someone could lend me an Office Communicator Phone Edition (OCPhone) with firmware version 1.0.199. Well, Minsoo Park from LG-Nortel (kudos for him) was kind enough to lend me one IP Phone 8540 with this old firmware version, so that I could test the OCS 2007 R2 Device Update Service is capable of upgrading it.

My first step was to provision the Device Updater with an appropriate firmware version (3.5.6907.9) for the LG-Nortel IP Phone 8540, which I immediately approved.

device-updater

There was no need to modify the Client Version Filter, since I was already allowing OCPhone software version 1.0.199 and higher to connect to my OCS pool.

As soon as I plugged the device in and signed in with valid credentials, I noticed it was requesting the Address Book files, but there was no sign of it willing to contact the update service.

#Software: Microsoft Internet Information Services 7.0
#Version: 1.0
#Date: 2009-05-22 16:05:55
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2009-05-22 16:51:13 192.168.200.101 GET /Abs/Int/Handler/F-0bf7.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 16:51:15 192.168.200.101 GET /Abs/Int/Handler/F-0bf7.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 16:51:15 192.168.200.101 GET /Abs/Int/Handler/F-0bf7.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 200 0 0 15
2009-05-22 17:05:50 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 15
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8b.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 15
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8b.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8a.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8a.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 15
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8a.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8a.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8a.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8a.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d89.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d89.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d89.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 15
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d89.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d89.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:05:53 192.168.200.101 GET /Abs/Int/Handler/F-0d89.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 0
2009-05-22 17:06:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:06:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:06:53 192.168.200.101 GET /Abs/Int/Handler/D-0bf7-0d8b.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 0
2009-05-22 17:06:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 2 5 0
2009-05-22 17:06:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8b.dabs - 443 - 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 401 1 2148074254 0
2009-05-22 17:06:53 192.168.200.101 GET /Abs/Int/Handler/F-0d8b.dabs - 443 DEMO\ocphone 192.168.20.115 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+CE) 404 0 0 0

The solution

The solution to this particular problem is at the very end of the Microsoft Office Communicator 2007 R2 Phone Edition Release Notes:

If the ExternalUpdatesDownloadURL and ExternalUpdatesStoreURL properties of the Windows Management Instrumentation (WMI) class MSFT_SIPUpdatesServerSetting are set to NULL, you need to use the following procedure to change the settings to update the device.

  1. Click Start, click Run, and then type wbemtest to open Window Management Instrumentation Tester.
  2. Click Connect. In Namespace, type root\cimv2, and then click Enter. This enables all the buttons on the wbemtest user interface.
  3. Click Query, and type the following query, where $poolbackend$ is the back-end database for the pool (use '(local)\\rtc' for the OCS Standard Edition):
    select * from MSFT_SIPUpdatesServerSetting where backend='$poolbackend$'
  4. This query opens one instance of this class. Double-click the instance.
  5. Double-click the ExternalUpdatesDownloadURL and ExternalUpdatesStoreURL properties to edit them, and type the values for each property as follows:
    For ExternalUpdatesDownloadURL, type:
    https://**POOL_FQDN**/RequestHandlerExt/ucdevice.upx
    For ExternalUpdatesStoreURL, type:
    https:// **POOL_FQDN**/DeviceUpdateFiles_Ext
  6. Click Save Property and Save Object to save the instance.
  7. Verify that the Windows Management Instrumentation (WMI) values are updated by querying the class as described in step 3. The ExternalUpdatesDownloadURL and ExternalUpdatesStoreURL properties  should be set to a non-NULL value.

Updating older firmware versions fails because the devices are expecting both the internal and external download URLs to be populated in the inband provisioning data received from the pool. With a clean R2 install, those fields are not populated, and as a result, the device rejects the inband provisioning data (thanks Thijs).

After making these changes and restarting the OCS Frontend Service, I rebooted once again the IP Phone 8540 and it was magic! The device got the inband provisioning and the expected 2-step upgrade process (update first to the interim version 1.0.522.103 and afterwards to the R2 version 3.5.6907.9) ran really smoothly, as you can see from the IIS logs below…

#Software: Microsoft Internet Information Services 7.0
#Version: 1.0
#Date: 2009-05-22 17:38:28
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2009-05-22 17:40:13 192.168.200.101 POST /RequestHandler/ucdevice.upx - 80 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 6563
2009-05-22 17:42:27 192.168.200.101 GET /DeviceUpdateFiles_Int/OCInterim/ENU/CPE.nbt - 80 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 134262
2009-05-22 17:42:27 192.168.200.101 GET /DeviceUpdateFiles_Int/OCInterim/ENU/CPE.cat - 80 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 31
2009-05-22 18:10:09 192.168.200.101 POST /RequestHandler/ucdevice.upx - 443 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 171
2009-05-22 18:13:02 192.168.200.101 GET /DeviceUpdateFiles_Int/UCPhone/LG-Nortel/IP8540/A/ENU/3.5.6907.9/CPE/CPE.nbt - 80 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 172705
2009-05-22 18:13:02 192.168.200.101 GET /DeviceUpdateFiles_Int/UCPhone/LG-Nortel/IP8540/A/ENU/3.5.6907.9/CPE/CPE.cat - 80 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 31
2009-05-22 18:15:14 192.168.200.101 GET /Abs/Int/Handler/F-0bf7.dabs - 443 - 192.168.20.115 Microsoft+UCPhone+Device 401 2 5 15
2009-05-22 18:15:14 192.168.200.101 GET /Abs/Int/Handler/F-0bf7.dabs - 443 - 192.168.20.115 Microsoft+UCPhone+Device 401 1 2148074254 0
2009-05-22 18:15:14 192.168.200.101 GET /Abs/Int/Handler/F-0bf7.dabs - 443 DEMO\ocphone 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 0
2009-05-22 18:19:17 192.168.200.101 POST /requestHandler/ucdevice.upx - 80 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 125
2009-05-22 18:21:48 192.168.200.101 POST /RequestHandler/ucdevice.upx - 443 - 192.168.20.115 Microsoft+UCPhone+Device 200 0 0 171

…and also from the Device Update Audit logs:

Logging DateTime,User Name,User Host Address,Device Type,Request DateTime,Mac Address,Serial Number,Vendor,Model,Revision,Locale,Requested<FileName;Version;TimeStamp>[# Seperated for Multiple],Response<FileName;Version;TimeStamp>[# Seperated for Multiple]
05-22-2009 18:40:12,,192.168.20.115,UCPhone,22-05-2009 10:40:06,"001B9E2CCD9A","1108006386","LG-Nortel","IP8540","A","ENU",cpe.nbt;0.0.0.0;01-01-1601 00:00:00,http://PTSTU-OCS01.demo.local/DeviceUpdateFiles_Int/OCInterim/ENU/CPE.nbt;1.0.522.103;05-04-2009 20:09:14
05-22-2009 19:10:09,ocphone@demo.local,192.168.20.115,UCPhone,22-05-2009 11:10:10,"001B9E2CCD9A","1108006386","LG-Nortel","IP8540","A","ENU",cpe.nbt;1.0.522.103;05-04-2009 20:09:14,http://PTSTU-OCS01.demo.local/DeviceUpdateFiles_Int/UCPhone/LG-Nortel/IP8540/A/ENU/3.5.6907.9/CPE/CPE.nbt;3.5.6907.9;05-04-2009 20:09:14
05-22-2009 19:19:17,,192.168.20.115,UCPhone,22-05-2009 11:18:00,"001B9E2CCD9A","1108006386","LG-Nortel","IP8540","A","ENU",cpe.nbt;3.5.6907.9;05-04-2009 20:09:14,
05-22-2009 19:21:48,ocphone@demo.local,192.168.20.115,UCPhone,22-05-2009 11:21:47,"001B9E2CCD9A","1108006386","LG-Nortel","IP8540","A","ENU",cpe.nbt;3.5.6907.9;05-04-2009 20:09:14,

 

With this post I conclude the OCS 2007 R2 Device Update Service Troubleshooting trilogy:

  1. Troubleshooting OCS 2007 R2 Device Update Service for Communicator Phone Edition
  2. How to upgrade Polycom CX700 1.0.452.0 using the OCS 2007 R2 Device Update Service
  3. The OCPhone Update Wars: The Return of the LG-Nortel 1.0.199

QED, quod erat demonstrandum, the Device Update Service from Office Communications Server 2007 R2 can successfully upgrade any Communicator Phone Device that has firmware version 1.0.199 or later.

A final note, there are some very, very old pre-production devices that have firmware version 1.0.111.0, which cannot be updated neither by OCS 2007 R2 nor by OCS 2007 “R1”. The pre-production devices can be updated to newer R1 firmware using the Beta3 Update Server of OCS 2007 (good luck trying to find the Beta 3 version!). However, you cannot use them against an RTM 2007 or 2007 R2 Update Server. The problem is that devices must report their brand, firmware, version, model, etc to the Update Server. The pre-production devices report an empty string for brand, model and revision, which the Update Server doesn’t understand or accept (thanks again Thijs).