One of the major advances introduced in iPhone software version 2.0 was the ability to sync over-the-air to Microsoft Exchange servers using Microsoft’s ActiveSync protocol. This was introduced to much fanfare with the iPhone 3G and is available on older updated iPhone and iPod Touch units, too. Google and NuevaSync also offer over-the-air calendar and contact syncing for the iPhone using ActiveSync.
All of these synchronization options seem like an embarrassment of riches for iPhone users. But, like so many things in life, they’re too good to be true. iPhone OS 2 and 3 can’t sync to more than one Exchange/ActiveSync server at a time! Or, at least, not in the way you’d like.
The Connected iPhone
Let’s back up a minute and talk about how the iPhone integrates with mail, contact, and calendar servers. There are essentially two synchronization engines at work here:
- Like all iPods, iTunes can synchronize your contacts, calendars, and mail account information (though not the mail messages themselves) over a USB connection to the iPhone and iPod Touch. This requires a full copy of Outlook 2003 or later on Windows but works with the built-in address book and iCal calendar on Mac OS X.
- The iPhone can also synchronize some or all components of email, contacts, calendars, and bookmarks using a variety of over-the-air protocols.
Note that when you configure over-the-air sync, you must disable USB sync, and vice versa.
iPhone Email Sync
Configured mail accounts can synchronize email messages in one of six ways:
- Periodically pulling message content down using the POP protocol – this is what most older ISPs and mail accounts use
- Periodically pulling message content down using the more advanced IMAP protocol – this is what newer mail accounts, including Gmail, AOL, and Yahoo use
- Having mail pushed to the phone using a weird combination of hidden SMS and IMAP – this is what Yahoo push mail uses
- Having mail pushed to the phone using a proprietary notification system of XMPP (Jabber) and IMAP – this is what Apple’s MobileMe push mail uses
- Pulling or receiving push messages using Microsoft’s ActiveSync technology – this is what Exchange servers, NuevaSync, Kerio, Zimbra, and Google’s over-the-air calendar and contact (but not email) sync use
- The iPhone’s software seems to support IMAP Idle, which is a realtime message push technology supported by Gmail and some advanced mail systems, but the phone will not use it unless the mail application is actually open on the phone
The iPhone does not support P-IMAP, BlackBerry, or other over-the-air protocols at this point.
The iPhone can sync email messages to any number of IMAP or POP accounts without a problem, but it can only sync to a single ActiveSync server at once. So you can set up Gmail over IMAP, Yahoo over SMS/IMAP, your local provider over POP, a Gmail Apps account over IMAP, etc at the same time as your work Exchange server without a problem. But you cannot set up more than one Exchange server using ActiveSync.
iPhone Calendar and Contact Sync
Calendar and contact information can only be synced in one of (perhaps) three ways:
- Over a physical USB connection to iTunes (as in the original iPhone 1.0) to Outlook or OS X
- Using some unknown protocol that MobileMe uses – can anyone identify this?
- Using ActiveSync to an Exchange Outlook Web Access (OWA) server
Yes, that’s really it. Every over-the-air calendar-and-contact sync system (other than perhaps MobileMe) uses the ActiveSync protocol, including Microsoft Exchange, NuevaSync, Zimbra, and Google’s service.
Now the punch line: The iPhone can only sync to a single ActiveSync server at once. Read that again. Now consider what that means.
So no matter how cool a service is (Google sync, Zimbra), you cannot use it for over-the-air sync if you are also connected to an Exchange server. So even though the iPhone explicitly supports multiple calendars, you can’t sync them with multiple ActiveSync systems. So I guess the iPhone’s calendar system is even more disappointing than I thought!
Pick One ActiveSync Service
The upshot is this: iPhone users much pick one (and only one) ActiveSync service.
- Need to use the iPhone for work? You’ll probably have to use your work Exchange ActiveSync server, and can forget about (usefully) subscribing to MobileMe or using Google sync. Instead, try to sync everything else into Exchange in other ways (like Google’s Desktop app) and then let Exchange handle the iPhone sync.
- A dedicated Mac head? Subscribe to MobileMe and get all of your data there, to be sent to the iPhone.
- None of the above? Google’s new Sync service looks great!
The Big Mystery
There are many mysteries lurking here, but one is really perplexing to me. The iPhone seems to maintain its own set of contacts in addition to any ActiveSync contact store. Although it doesn’t obviously have multiple contacts pools, it must maintain them internally. But you can see that it does in a simple way:
- Set up an ActiveSync server (like Exchange)
- Set up an IMAP email account (like Gmail)
- Add a unique contact on the phone (call him “Steve Jobs”)
- Add a unique contact in Exchange (call him “Bill Gates”)
- Add a unique contact in Gmail (call him “Sergey Brin”)
- Now turn on and off the accounts one at a time
Notice that turning off the Gmail account will, within a few minutes, cause your “Sergey Brin” contact to disappear! Turn it back on and Sergie is back. Now do the same for Exchange and Bill Gates. All the while, your “Steve Jobs” contact should stay put. And this all happens in a single contact list! If you assigned one of these to a “favorite”, their name will be replaced by their number when you remove their account.
So the is iPhone somehow syncing contacts over IMAP? Or does it use some other Google-specific protocol? And how does MobileMe’s contact sync work? Time will tell!