I dont know if it is switch or phone related. We have a few 7940 and 7960 phones at one location that will not get their vlan information from the switch. I have tried several things including turning the port into a trunk, and still the phone gets its IP information from the data vlan. Now here is the weird part, the arp table on the router will show that is has the IP address from the voice vlan, and the dhcp pool shows the bindings, yet CDP neighbor detail shows it has an IP from the data side.
Device ID: SIP0015634D2A9A
IP address: 192.168.10.180
Platform: Cisco IP Phone 7960, Capabilities: Host Phone
Interface: FastEthernet0/47, Port ID (outgoing port): Port 1
Holdtime : 177 sec
advertisement version: 2
Power drawn: 6.300 Watts
Internet 10.64.9.111 3 0015.634d.2a9a ARPA FastEthernet0/1.2
If I remove switchport access vlan 3 from the port, the phone gets the IP from the DHCP pool and registers, but I am unable to pull up the web interface of the phone. I can add switchport access vlan 2 back in, and if a PC is plugged in, it goes back to where it was before.
One other item, may or may not be related, I get constant trust resets from all the phones,
*Mar 1 20:03:30.687: %SWITCH_QOS_TB-5-TRUST_DEVICE_LOST: cisco-phone no longer detected on port Fa0/4, port set to untrusted.
*Mar 1 20:03:36.937: %SWITCH_QOS_TB-5-TRUST_DEVICE_DETECTED: cisco-phone detected on port Fa0/2, port trust enabled.
These are 7912 phones which are working properly.