iPhone 4 and FaceTime Packet Capture
Well, got our new iPhones today – yes, our. I ordered one for myself and one for the Mrs. The reason for ordering her one was two fold. 1) Her old cell phone is either dead in her purse or on the counter at home charging. 2) FaceTime. With my travel schedule, it is just a cool app for me to see and talk to the family.
So, that all being said – I was curious to how FaceTime worked with regards to network connectivity. So, my neighbor being nice enough to let me use his wireless (I did set it up), I added my wife’s phone to his AP and my phone to my AP. I then created a capture filter on my Cisco ASA and made a call. So, here is what I found:
1. The call is first initiated via regular Celluar networks. In the contact list you will see an icon called FaceTime.
2. The phones then communicate to a server at Apple (17.155.5.251 is what I saw). Communication is sourced from port 16402 via UDP initially and then looks to dynamically allocate ports for communication (16385 and 16386 are what appeared on my end).
Packets 1 – 10
3. The phone then negotiates an HTTPS connection to the servers at Apple for the setup and communication. There also seems to be some communication to other servers (in this case i see RCN 208.59.216.10) – and they are my cable provider.
Packets 11 – 101
4. After Client (iPhone) and server negotiation you start to see Stun requests via the private IPs, after they fail you see them from the Public IP NAT ranges. They success via the Public peering at that point.
Packets 102 – 123
5. A SIP call is then initiated between the phones for the video portion of the call
Packets 124 – 160
So in the end, this is a Video SIP call 😉
Text file of the capture headers:
Capture file can be found here
Below is the raw capture:
My iPhone IP Private – 192.168.0.128
My iPhone IP NAT – 216.164.100.100
Other iPhone IP Private 192.168.2.106
Other iPhone IP NAT – 72.81.200.200
Note: NATs change to protect the guilty
Here is the packet capture, but it is very difficult to read. I suggest downloading the text file – DOWNLOAD
Fryguy's Blog