Solving iPhone and Exchange 2010/2007 coexistence issues
During my testing of our Exchange 2010 implementation I came across a rather annoying issue - iPhones users with Exchange 2007 mailboxes no longer can connect after moving the client access across to 2010.
So - what is supposed to happen? Well - as iPhone is supposed to implement EAS protocol version 12.1 (i.e. it supports AutoDiscover), it should be redirected to the legacy Exchange 2007 Client Access array. Problem is, it doesn't work.
Of course not all ActiveSync clients support AutoDiscover and those that implement EAS protocol 12.0 or lower are automatically proxied by the Exchange 2010 Client Access array back to Exchange 2007 client access servers.
This is all explained in more detail (including an acknoledgement not all clients implement EAS protocol 12.1 correctly!) over at the Microsoft Exchange Team blog in their article, Upgrading Exchange ActiveSync to Exchange 2010.
Whilst looking for solutions, I've unfortunately only came across verification this is a known issue, with the solution to simply wait for Apple to fix the iPhone. However I have a deadline to meet and getting IT staff to visit hundreds of iPhone users to change EAS settings isn't an option, it's not an option to move all those mailboxes at the same time, and we can't wait for a fix from Apple.
The most simple solution, as it stands - is to force all ActiveSync clients to be proxied. As noted in the MS Exchange Team blog article above, all non-internet facing site mailbox ActiveSync access is proxied anyway, so it will work. And thankfully, the proxying isn't based on AD sites. It's simply based on the ExternalURL on the ActiveSync virtual directory - if it's set to $null on the Client Access servers in the site of the user's Mailbox it will proxy instead of redirect.
If you want to do this via the Exchange Management Shell - it's simple - do this for each Internet facing client access server during the switchover:
Get-ActiveSyncVirtualDirectory -Server E2007CA | Set-ActiveSyncVirtualDirectory -ExternalURL:$null
The implication of this is that there will be extra overhead associated with proxying Exchange 2007 ActiveSync users, so this would need to be factored into your plans should you implement my solution.
Setup Multiple Exchange Accounts on your iPhone
If like me you've got a work Exchange account, and another Exchange account somewhere else (or even a Gmail account which can use the same protocol) and sync these to your iPhone you'll share my frustration in that Apple only allow you to sync a single account. Thankfully those days are numbered as now it's possible to connect more than one account.
You'll have to Jailbreak you phone if you want to do this, but it's now pretty easy to add a second Exchange push email account to your iPhone.
First things first, Jailbreaking can be achieved fairly easily and safely using something like Blackra1n. Once Jailbroken you need Cydia (an Apt repositary/gui for the iPhone) installed and using Cydia, search for AddExchange and install.
After you've installed AddExchange, fire it up and press the button to add your second account. A second account should appear with some default settings ready for you to change to your own.
Now you're up and running with the second account you can safely remove (via Cydia) AddExchange.
Another option is an app called MultiExchange which claims to do this in a much cleaner way - however it has to be purchased from the Cydia store for $0.99. As I've been happy with AddExchange I've not tried this but from what I've read it doesn't suffer from a two account limit.
More details over at AppAdvice
[Update] iOS 4 now supports multipe Exchange accounts, by default.