I will try to answer a bit about the technical "whys" on the video connection.
For FaceTime work the way it works there is of course the need of a Gatekeeper. What is a Gatekeeper? In essence is a server that holds registration of devices according to parameters that the device sends or the gatekeeper requests. With those parameters is the Gatekeeper that will decide if the call can go ahead and be established or not.
What parameters could that be? Those would be any unique information about a device (already trying to avoid cloning) like the Device ID, serial number, phone number and so on. A parameter would be some sort of Alias, the way you have a screen name on an IM program.
Having said about Alias and Gatekeeper, Apple could decide to call the Alias for number "A", the alias for serial "B" and the alias for device ID "C".
When a device tries to make a Facetime call, it will as the gatekeeper if it knows that Alias that it is trying to reach, if the gatekeeper has it in it's database, the gatekeeper will then translate the Alias you're trying to reach into, for example, an IP address (what in this case is likely a IPv6) and you will get connected.
It is for sure possible to have non-iPhones and non-Phone devices able to communicate using Facetime. They will use one of the other Aliases that not the phone number. The Alias is just like a screen name that the real purpose is to be then translated into a real internet address.
I helped with this article, I have no FaceTime documentation yet but this is the way that makes more sense so far.
Originally Posted by PG4G
The real question is simple:
Apple is currently using phone numbers to get data that it needs to initiate a FaceTime call. How can they port this to a device that doesn't have a phone number?
Apple seem to have locked themselves into a corner here. Its almost as if they're creating a version of iChat that just uses a phone call to give someone the person's actual email address. That's all well and good until they try and create a version that doesn't have phones at all.
The current sequence of events:
1. I call another iPhone.
2. During the call, the other iPhone gives my iPhone a facetime ID which is saved to the database. I don't see it - I will just see it in the contacts database as the "facetime" button.
3. I start a facetime. I shut down the phone call in the process.
4. I finish facetime.
5. I start facetime by hitting that button. That button links to the facetime ID and commences a call.
6. Second call starts without a phone.
Now... if you try and set this sequence up without a phone, you'll have one problem: you have no way to get that facetime ID to the other facetime device. Nor do you have a way to address a device that is not a phone.
We are using phone numbers as covers for other information. The problem comes when these devices don't have phone numbers. There's no way to pass these unseen facetime IDs around. We can't see them. We don't know how to talk to non-phone facetime devices.