Exchange 2007 SP1 UM provides voice mail functionality for OCS 2007 users when they are Enterprise Voice enabled. How is it possible to provide Exchange 2007 SP1 UM fault-tolerance for these users?

Exchange 2007 SP UM and OCS 2007 are integrated at the UM dial plan level. A given UM dial plan can be served/hosted by multiple UM servers. Do provide fault-tolerance you implement two or more UM servers and assigns the OCS integrated UM dial plan to all of them.

How can OCS 2007 use these UM servers in a fault-tolerant way?

OCS 2007 discovers UM users, UM servers and UM dial plans from Active Directory. It finds the UM dial plan of a user by looking at the EUM proxy address of the user, ie. the user with the SIP URI tu@contoso.com has as one of his proxy addresses EUM:tu@contoso.com;phone-context=Hellerup.contoso.com. The value of phone-context is the name of the UM dial plan. By looking at the UM dial plan attribute msExchUMServerDialPlanBL OCS 2007 gets the list of the UM servers servicing the dial plan. Let's call that list the "working set".

OCS will randomly contact one of the UM servers in the "working set". If that fails it will try a second one. If that also fails it will give up and the call can't be completed. A failed UM sever will be removed from the "working set". OCS will incrementally throttle traffic to the failed UM server and when it replies positively it will be included in the "working set".