Core issue
The Cisco IP phone contains an integrated 3-port 10/100 switch. The ports are dedicated connections to these devices:
- Port 1 connects to the Internet router.
- Port 2 is an internal 10/100 interface that carries the Cisco IP phone traffic.
- Port 3 connects to a PC or other device.
The voice VLAN feature enables access ports in a Catalyst switch to carry IP voice traffic from an IP phone. The switch can connect to a Cisco IP phone and carry IP voice traffic. It is possible to configure a Layer 2 access port with an attached Cisco IP phone in order to use one VLAN for voice traffic and another VLAN for data traffic from a device attached to the Cisco IP phone. It is possible to configure Layer 2 access ports on the switch in order to send Cisco Discovery Protocol version 2 (CDPv2) packets that instruct an attached Cisco IP phone to transmit voice traffic to the switch in any of these ways:
- In the voice VLAN, tagged with a Layer 2 Class of Service (CoS) priority value
- In the access VLAN, tagged with a Layer 2 CoS priority value
- In the access VLAN, untagged with no Layer 2 CoS priority value
When the voice VLAN feature is enabled, it allows voice traffic from the attached IP phone and data traffic from a daisy-chained PC to be transmitted on different VLANs. This capability provides flexibility and simplicity in IP address allocation and the prioritization of voice over data. Untagged traffic is sent based on the default CoS priority of the Catalyst switch port. The CoS value is trusted for 802.1p or 802.1q tagged traffic.
Note: When you use Cisco IP phones that needs inline power or Power over Ethernet (PoE), the switch or linecard must support PoE feature.
Resolution
Use these configurations on the ports that connect to an IP phone:
For CatOS:
With Cisco IP phones, it is possible to use the auxiliary VLAN
Console>(enable)set vlan[vlan id][mod/port]
!--- This line is for the data VLAN.
Console>(enable) set port auxiliaryvlan [mod/port][vlan id]
!--- This line is for voice VLAN. Console>(enable) set spantree portfast[mod/port] enable
With third party IP phones:
Console>(enable) set vlan[vlan id] [mod/port]
!--- This line is for the data VLAN, Native VLAN.
Console>(enable) set trunk[mod/port] on dot1q
Console>(enable) Set trunk [mod/port] [data vlan id, voice vlan id]
Console>(enable) set spantree portfast [mod/port] enable trunk
For Cisco IOS:
Switch(config-if)#switchport modeaccess Switch(config-if)#switchport access vlan vlan id Switch(config-if)#switchport voice vlan Vlan id Switch(config-if)#no shutdown
Alternatively, this configuration can be used:
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport trunk native vlan id
!--- This is the VLAN with untagged frames used by the PC.
Switch(config-if)#switchport mode trunk
!--- This enables trunking on the port for two VLANs, data and voice.
Switch(config-if)#switchport voice vlan id
Switch(config-if)#spanning-tree portfast trunk
Refer to these documents for more information on how to configure a port to connect to a Cisco IP phone: