For a small company on a tight budget, our goal was to gradually introduce Microsoft Exchange into our domain. That would allow me to migrate our users from Exchange Server 2003 to Exchange Server 2010 as we could purchase the CALs. The server license cost is negligible. The CAL cost is what counts. The problem is, as soon as I introduce the first Exchange Server 2010 box into the domain, I immediately have to purchase 2010 CALs for my 300 users! So, even if I move only 20 or so to the Exchange 2010 mailbox server, I still have to have 300 CALs for Exchange 2010. Grrrr . . .
The reason given is, "Since all incoming mail must go through the Exchange 2010 Client Access Server, it uses Exchange 2010. Therefore, the new CAL is required". What a cheap shot! It would have been easy for Microsoft, and a great service to their user base, to require the new CAL for each mailbox user. Then, I could have purchased the CALs as I moved the users.
This reasoning didn't seem right to me, so I decided to investigate. I started with the Microsoft Exchange Server Licensing page. The language on that page seems pretty clear: "Exchange requires a CAL for each user or device that accesses the server software." Problem solved, right? If you're migrating to Exchange 2010 and you've followed Microsoft's recommendation of deploying the roles in alphabetical order, you'd start with a Client Access server and a Hub Transport server. (Of course, these roles could be on the same server.) Inbound mail will flow through the Hub Transport (or Edge Transport) server, but that doesn't require a CAL.
However, if your users are going to access their Exchange 2003 mailboxes through the Exchange 2010 Client Access server, things get a little less clear. You could make an argument that a CAL is needed for each user in this scenario, and apparently that's what someone told Alf. I asked some folks at Microsoft for a definitive answer, but I didn't receive an official answer by press time. The language on Microsoft's own licensing page seems to clearly indicate that mailbox access requires a CAL, and that mail flow through the Hub Transport server doesn’t. It’s not clear whether accessing the Client Access server requires a license or not. In Exchange 2010, clients generally communicate only with the Client Access server, not directly with the Mailbox server, thanks to the new RPC Client Access service. I’d lean toward Microsoft’s position here and say that clients communicating with a Client Access server would need a CAL as well.
The typical scenario for coexistence between Exchange 2003 and Exchange 2010 is to configure a 2010 Client Access server with a legacy URL that points to the Exchange 2003 front-end server. Any client can hit the Client Access server and either get their mailbox data (for an Exchange 2010 mailbox) or be redirected to the Exchange 2003 front-end server. It doesn't seem likely that Microsoft would require a CAL just for the redirection, but even if it did, you could simply use two completely different URLs. Tell Exchange 2003 users to use "oldmail.mycompany.com" and Exchange 2010 users to use "mail.mycompany.com" and you'll never run the risk of crossing the streams.
I could go on at length about how complicated Microsoft's licensing is (though I should point out that Microsoft's licensing model is simplicity itself compared to those of IBM or Oracle), but it's probably more interesting to consider that the whole issue of server licenses and CALs goes away in cloud-based systems. You pay a flat per-user fee, without regard to the number of devices from which the user accesses the service or any of the other modifiers that affect how many licenses you have to buy for on-premises solutions. This simplification is supposed to save money, and it often does, but it's a bit of a different mindset that you have to get used to.
So, Alf, my advice is to buy Exchange 2010 CALs only for those users who actually have Exchange 2010 mailboxes. If Microsoft's licensing folks object, please feel free to send them my way. In the meantime, if I get more explicit guidance from Microsoft, I'll be happy to share it here.