You need to setup each switch port for a collocated VoIP phone / PC to be an Untag PVID only with the default VLAN ID for the port set to the PC VLAN.
The phone boots up in the default VLAN and gets a response back from the DHCP server telling it which VLAN to be in. For the i2004 phone DHCP server returns (among the usual IP add, gateway, mask) a site specific string option 144 or 191 with format
The format of the String for the 144 or 191 Site Specific Option is:
VLAN-A:vvvv.
Where: “A” = Hardware Revision of the i2004 IP Phone
“vvvv”= The VLAN ID in Decimal
There must be a colon

) separating the Hardware Revision from the VLAN ID. The string must also end in a period (.)
The i2004 phone switch goes from default to the specified VLAN and then rebroadcast to the DHCP server within the subnet setup for the non-default VLAN. The DHCP server will respond with the normal IP stuff but the phone needs to see another site specific string, 128, which would have info like signaling server IP, port, plus a few other actions and be in the format of
Nortel-i2004-A,iii.iii.iii.iii

pppp,aaa,rrr;iii.iii.iii.iii

pppp,aaa,rrr.
Where “A” = the Hardware Revision of the i2004 Phone
“iii.iii.iii.iii” = the IP Address of the Call Server (S1 or S2)
“ppppp” = port number for the Call Server
“aaa” = the Action for the Server
“rrr” = the Retry Count for the Server
On your DHCP server you need to add in these site specific options via an ADD OPTION screen and make sure it is a string and make sure you add option 144 or 191 to the default VLAN subnet scope and option 128 to the non-default or VoIP scope.
Cautionary note - site specific option 144 is interpreted by some network decvices (HP JetDirect) as a TFTP server config file type option so use 191 instead.