"iPhones then create a direct peer to peer connection over the internet. The iPhones deal with all IP addresses, firewalls, NAT issues automatically."
Isn't that impossible without an intermediate server?
Edit: OK, thinking a bit, I never looked into the Skype trick much, but I would guess, send a request to a server (that doesn't respond). Then you have an open connection/port listening to the response from the server. If you can tell the other party about that "hole", it can send a packet across the firewall.
While for Skype that is done by a server (if necessary), the iPhone could send the information via the phone line?
As I said, no idea how the details work, just a rough idea. Or maybe they just use a server.