We use Polycom SoundPoint IP phones here at the CACE Technologies World Domination Secret Lair. While troubleshooting a different problem recently I noticed that the phones do something funny. During the boot process they obtain an IP address via DHCP, similar to most PCs. A DHCP option tells the phones to fetch their configuration and firmware from an FTP server. The funny part is that some of the FTP transfers were failing even though the phones booted up just fine:
At packet 175 the phone starts to download sip.ld, the SIP firmware image. The transfer starts at packet 177, but the phone cuts the transfer short at packet 181. The phone then behaves as if nothing is wrong. What’s going on here?
At this point the phone might have an up-to-date copy of the SIP firmware. It would be nice if it could avoid downloading this file every time it booted up. The file is 15 MB, so in some environments this would be really nice. (Imagine a thousand phones trying to download this file at the same time after a power outage. Over a fractional T1. That’s flapping.) Unfortunately methods for comparing files via FTP or HTTP to ones you already have are either rarely used or not supported at all.
Running the strings command on the firmware turns up the following tidbit at the beginning of the file:
It looks like the phones look for the checksum in the firmware header and drop the connection once they’ve determined they already have an up-to-date copy.
This is a very roundabout way of showing that sometimes error conditions on your network are not only normal but beneficial.