Skuzzy,
During a few minutes of 'High Pucker Factor' I plugged my naked XP workstation directly into the cable modem after disabling file and print sharing and turning on DHCP (BTW, port 135 & 139 still had listeners even after rebooting, Freaking MS products!)
Setup the H2H session, got a squadie to join, and YUP Vox works!
OK, so its something to do with the firewall, before I get on the phone with Linksys, I need a little more info.
The below is all in regards to H2H hosted sesions
#1 I see a TCP session for each player, I assume this is for managment of "where" each player is, and all their pertinent data. Is this TCP session also used for Text communications?
#2 For VOX, UDP is the protocol used I assume. For the moment, lets just say a simple VOX transmission fits inside one UDP packet. Since we don't establish a session with UDP, my voice is digitized, the data is assembled into a UDP datagram with a Source port, Destination Port, Length, UDP checksum followed by the data. For each user on the channel, a copy of the UDP packet is sent to them via IP.
At this point, lets assume just 2 players, me and guttboy both with NAT firewalls. I've keyed the mike, AH made the UDP Packet, addressed it to guttboys IP, and off it goes out of my Computer. Now, lets follow this IP/UDP packet, and see if I got this idea under control.
#1 The packet leaves my computer with a destination of guttboys public IP
#2 The packets first stop is My Nat, where my Nat strips out my Private IP addy from the Source IP field, and replaces it with the Nats public IP, then forwards the packet
#3 The packet traverses the interenet
#4 The packet arrives at guttboys Public IP, where his Nat receives it.
#5 His Nat looks at the UDP destination port, compares this to the port forwarding rules, and based on the rules decides to forward it to guttboys private IP.
#6 guttboys NAT, strips out his Public IP from the Packet destination IP field, and replaces it with his Private IP, and forwards it to his computer.
#7 His computer gets the IP packet, where the AH listener (hopefully listening on the right port number) digests the data and converts it back into Audio.
Seems pretty simple, the only place I can see this breaking down is "How does AH Know guttboys IP address?" As I see it there are only two answers:
#1 AH knows guttboys IP address based on the Source IP address found in the on going TCP session. If this is true, The source IP will be his PUBLIC IP.
#2 AH knows guttboys IP address based on data encapsulated inside the TCP session data, in which case AH might be saying guttboys IP is his PRIVATE IP, in which case the addressing will get all screwed up.
Now, to totaly confuse stuff, I really wonder how this works when playing in the main arena... Since I never setup any port forwarding rules on my NAT during Main Arena play, just how could a UDP packet make it all the way to my private IP? Obviously something else is going on, Maybe its going through the TCP session, Maybe some type of UDP 'Session' is established, even though UDP should be connectionless, implying that no session exists, I can image that my NAT is setting up some type of UDP sesion table, and forwarding the incomming UDP packets based on this sesion table..
Somethings getting screwed up, I just wish I knew exactly how all this worked!