Inside iPhone 4: FaceTime video calling
FaceTime & iChat AV
Apple revealed FaceTime as an iChat-like service exclusive to the new iPhone 4 hardware. It's not exactly iChat though, and although it shares a lot in common, there's currently no talk of any ability to chat from iPhone 4 to desktop Mac iChat clients (although this is almost certain to happen over the next year as iPhone 4 launches).
Apple's Mac iChat was originally an IM client for AOL's proprietary AIM network. Apple later extended iChat to support open XMPP "Jabber" instant messaging. It then added support for the Internet Engineering Task Force's SIP (Session Initiation Protocol) in iChat AV, in order to do standards-based video chat and video conferencing.
As a video conferencing product, Apple's Mac iChat AV client provides exceptional picture quality at little cost but runs into a lethal natural barrier on today's Internet: NAT (Network Address Translation). The routers at both corporate and home networks often hide internal IP addresses from the open Internet, making things difficult for video chat applications that want to act as both a server and client with bidirectional rich media streams to some other host across the Internet.
The NAT problem
For iChat AV to reliably connect with other clients (including compatible PC clients running the same complex suite of video chatting standards, such as AOL) across the Internet, it usually has to transverse NAT. That's particularly complex because everyone's NAT works a bit differently, and there's so many technical issues involved with handling different types of routers and their different implementations of NAT.
There are different kinds of NAT, and no complete standards in place on how to implement them for ideal interoperability. Additionally, the security policy a company establishes for itself might rule out individuals from setting up their own server, which is a problem for video chat because iChat AV needs to act like a server for a remote client to initiate a transaction with it.
Apple's iChat uses its own SNATMAP protocol to allow a client to determine its external IP address and open a port mapping that remote hosts can use to return communications through the firewall. Apple also uses UPnP (Universal Plug n Play) a Microsoft-originated standard for NAT port traversal supported by a variety of consumer router/firewall makers.
These are used to punch iChat AV's traffic through NAT routers, but they aren't always supported by enterprise routers or some models of home router appliances. In Mac OS X Leopard, Apple improved things by adding support for ICE (Interactive Connectivity Establishment), an emerging IETF NAT traversal standard, but there are still vexing problems for non-technical consumers trying to set up a simple video chat.
Making FaceTime open
Apple faces the same kinds of problems in getting video calls to work on the iPhone. So do other vendors. Apple wants to make mobile video chat an open standard for interoperable video chat sessions, so it adopted the neutral FaceTime name rather than calling the service iChat, which is very much an Apple-sounding name.
Essentially however, FaceTime is iChat AV for iPhone. Jobs presented an "alphabet soup" of technologies that were involved in making FaceTime work, many of which are shared with iChat AV, including:
- H.264 and AAC, its ISO/MPEG video and audio codecs (just like iChat).
- SIP (Session Initiation Protocol), the open IETF signaling protocol for VoIP used by iChat AV.
- STUN (Session Traversal Utilities for NAT), an IETF standard for dealing with lots of different kinds of NAT.
- TURN (Traversal Using Relay NAT), an IETF standard for allowing a client behind NAT to receive incoming requests like a server.
- ICE (Interactive Connectivity Establishment) an IETF standard which helps set up connections through NAT firewalls.
- RTP (Real-time Transport Protocol), an iETF standard for delivering media streams in VoIP.
- SRTP (Secure RTP) an IETF standard designed to provide encryption, message authentication and integrity for the data streams.
Rather than being some radically new protocol for video chat, Apple's FaceTime is an evolution of iChat's standards-based foundations, which have already been implemented by AOL in a compatible client on the desktop PC. It's therefore no stretch to think that other phone vendors will work to create compatible FaceTime clients that work with iPhone 4 phones, and it would be very surprising if Apple's own iChat AV wasn't adapted to work with the latest FaceTime protocols to enable desktop to mobile video calls at some point.
The companies that need to buy into FaceTime are networking gear companies like Cisco (who already work to support the IETF protocols involved) and phone manufacturers like Nokia, RIM, HTC and Motorola (who are already working hard to match the iPhone's features, look, and specifications). The best way for Apple to push FaceTime would be to deliver an open source implementation of the core technology stack, much like it delivered WebKit, and much like BSD provided the world a standard IP networking stack.
Apple understands the success of WebKit, but it's not yet clear that it's ready to give away software to competitors when it doesn't absolutely have to. That might result in a variety of implementations of FaceTime-compatible devices that all have various bugs that impede interoperability. Of course, such a situation might benefit Apple, too, making it the primary vendor of reliable FaceTime phones.
On page 2 of 2: Why FaceTime is WiFi only, What about Skype and Fring?
What FaceTime does on the iPhone is make video chat easy to initiate and use over the Internet, in high quality. In addition to running into the same problems with trying to get video chat to work across NAT boundaries, getting FaceTime to work on the less reliable, limited bandwidth of 3G mobile networks would be too high of a barrier, mainly because mobile networks are currently still vastly expensive to use.
Existing video chat phones that work over 3G networks typically charge between .50 and a dollar per minute, which is not going to fly in mass adoption. Additionally, video calls are certainly not going to work on Apple's home state AT&T network, which is having enough difficulty placing phone calls.
For now, the iPhone's new FaceTime feature is limited to WiFi, with the suggestion that this will change sometime after 2010 and the carriers warm up to the idea and dramatically enhance their coverage while lowering their prices.
However, most people who want to place video calls will be able to access WiFi at their home or office, making the limitation less of an issue. It's also interesting that Apple is pioneering video chat as a VoIP application rather than tethering the service to mobile carriers. That positions the iPhone (and the iPod touch) as potential devices to challenge the voice-centric nature of today's mobile networks. As next generation LTE mobile networks emerge, their IP-based connectivity will likely shift mobile networks from telephony to simply being wide area, broadband data providers.
Apple similarly pushed Internet email on the iPhone in preference to SMS and MMS mobile standards, which continue to charge archaic per message fees wildly out of proportion to the actual amount of data they deliver.
What about Skype and Fring?
The iPhone (and the Mac desktop) already support video calls via Skype. Apple even added support for Skype to run in the background on iOS 4 and enabled Skype to run over the 3G network in addition to WiFi. So why is Apple introducing its own Skype competitor, and one that doesn't work over 3G?
For starters, Apple wanted a video calling app deeply integrated with iPhone 4 features, making full use of both cameras, being uncluttered and "one touch simple," and highly optimized to deliver great picture quality. It also wants to push open standards. Unlike iChat AV and FaceTime, Skype is not open standards-based. It uses an entirely closed, proprietary protocol owned by Skype.
Officially sanctioned client apps that Skype approves for use on its network are closed source. Skype solves the NAT problem and addresses message encryption security in an entirely opaque way. It essentially does not trust the router and uses its own mechanisms for getting through the network.
It claims to use an entirely decentralized system of connected users in a peer to peer network that shares the load between users, rather than being a point to point system like iChat, where a user calls another user to initiate a session. But none of this technology is open to peer review for security vetting nor openly implementable by others.
That makes Apple's alternative to Skype, both on the desktop with iChat and on iPhone 4 with FaceTime, a strategy much like its positioning of open MP3/AAC audio against Microsoft's proprietary Windows Media Audio, or its support for H.264 over WMV, or its support for HTML5 over Adobe Flash for interactive content. In every case, Apple was working to build open interoperability over creating dependance upon a closed standard pushed by one vendor.
Customers who don't understand this saw these strategies as "an attack" on Microsoft or Adobe or Skype, but these efforts actually work to open up markets and enabled Apple and other companies to both compete and collaborate.
The difference with Skype is that, unlike WMA/WMV or Flash, Apple isn't blocking Skype on iPhone 4 or the iOS. Skype isn't a direct competitor pushing its own hardware; Skype provides a product that addresses issues that FaceTime does not (support for earlier phones and 3G calls); and Skype is both already finished and functional and entrenched as a player in the mobile market.
Other iPhone VoIP apps, such as Fring, support both Skype's proprietary protocol and can support alternative open network protocols such as SIP. That makes it likely that Fring or other companies could actually create multiple-network VoIP apps that support both Skype and the standards-based FaceTime.