The CDP protocol plays a very big part in Cisco's strategy for device interoperations. In addition to providing useful troubleshooting and configuration information for administrators, it helps routers determine if they've got an Ethernet duplex mismatch, and it helps IP Phones get properly configured into the voice VLAN. However, the defaults for these devices assume an all-Cisco network, and that is rarely the case.
The protocol is intended to enable communications between actual, physical neighbors and this is fine when there are Cisco switches involved that have CDP enabled. But because CDP operates at layer 2, (and is intercepted by Cisco switches), non-Cisco switches will pass these frames right along and never be the wiser. This creates an interesting situation where every CDP-device in the subnet can talk to each other. Unfortunately, they're not quite smart enough to realize they're not actually directly connected to each other.
As an example, lets say you have a router that's manually configured at full-duplex to a non-Cisco switch, and a bunch of IP phones that are connected at half-duplex to hubs downstream. The phones will broadcast their CDP advertisements and the router will generate log entries for every CDP notice it receives, indicating it has a duplex mismatch, when in fact, it doesn't.
Another interesting consequence of a multi-vendor network is if you're trying to use an automated network management system. One of the interesting features of some of the newer systems is their ability to detect layer 2 devices (e.g. switches without IP addresses) using either ARP tables or CDP. In the case of a NMS using CDP with a non-Cisco switch (or a Cisco switch with CDP disabled, which permits the packets to pass without getting intercepted in addition to not generating its own CDP packets), it will draw a picture as if all the devices are directly connected, which of course, isn't true.
These sorts of issues are relatively minor in the grand scheme of things, but in a VoIP network, every little bit helps. On the other hand, if you don't have a Cisco switch, you can use this feature in the router to see all your phones. Simply type "show cdp neighbor detail" from the command prompt and you'll see a list of all the IP phones on the subnet, and some of their configuration.
Thomas Alexander Lancaster IV is a consultant and author with over ten years experience in the networking industry, focused on Internet infrastructure.