Here's my scenario. I'm looking for some confirmation that what I'm planning to do and what I understand is correct.
I have 4 Microsoft Unified Messaging (MS UM) servers. 2 in city A and 2 others in city B. I also have CUCM servers in both of these cities (same cluster). I would prefer to keep all the traffic to MS UM as local as possible but also ensure that any MS UM server could be used in case of an outage of some type (for example, WAN is down, CUCM server is offline, etc.
Currently, 'Run on all active Unified CM nodes' is NOT checked on the route lists or the SIP trunks. I have a separate SIP trunk configured for each of the MS UM servers (4 total). I have a Route List that contains a Route Group for the MS UM servers. The route group has the 4 MS UM servers ordered in such a way that the first 2 choices in order of priority are the 2 servers in one city and the last two choices are the MS UM servers in the other city.
Now, on the Route List and the 4 SIP trunks, if I were to do nothing more than click the check box for 'Run on all active Unified CM nodes', would the order of priority in the Route Group still take precedence and ignore the 'Run on all active Unified CM nodes' / route local rule? I suppose the correct way to do this would be to remove the 4 separate SIP trunk groups for the MS UM and put all 4 of the MS UM servers into a single SIP trunk group and then make sure that 'Run on all active Unified CM nodes' is checked on both the Route List and the SIP Trunk, correct? (by adding the IP of the MS UM servers in the 'SIP Information', Destination Address section of the SIP trunk) Is that the correct way to do it?
Ultimately, I want to...
Have calls that originate in city A use the MS UM servers in city A (same for city B - calls starting in city B should use city B's MS UM servers)
If a user in city A calls voice mail (MS UM) and city A's MS UM servers are out of service, the call should be sent to the MS UM servers in city B
If a user in city A calls voice mail but their phone is actually registered to city B's CUCM servers because the CUCM servers in city A are out of service for some reason, the call to voice mail should still use city A's MS UM servers (unless those are also down, in which case it should be able to use city B's MS UM servers)
Basically, I want to keep it local as much as possible but also ensure the servers in the other city can be used in case of an outage.
As long as you have your MS UM servers in the order you would like to send the calls, within the RG, the "run on all active nodes" will just allow the call to use the CUCM server that the phone (endpoint) is registered with. Make sure that the "run on all active nodes" is checked on the both the RL and the SIP Trunk.
Ok. The route group currently has the MS UM servers arranged in this order:
SIP Trunk - MS UM server 1 for device pool city A
SIP Trunk - MS UM server 2 for device pool city A
SIP Trunk - MS UM server 1 for device pool city B
SIP Trunk - MS UM server 2 for device pool city B
If I leave the 4 MS UM servers in separate trunk groups the way they are now, what would happen if a phone assigned to device pool for city B picks up the handset and dials the MS UM access number (a route pattern) that's pointed to this route list/route group? Would the phone assigned to device pool for city B use the SIP trunk for MS UM server 1 in city B even though it's number 3 on the list in the route group, or would it try to use MS UM server 1 in device pool for city A because that's the first choice in the route group? That's the part I just want to make sure of :-)
The "Run on all nodes" has nothing to do with the selection process within your Route Group. The order that the SIP Trunks are processed, is based on the algorithm that you chose from within the RG, e.g. Top Down OR Circular.
The "Run on all nodes" is for selecting which CUCM server to use to process the call. Traditionally CUCM Groups can only contain 3 CUCM servers, which means that the SIP Trunk can only process calls out 3 CUCM servers. The issue is that you may have 8 CUCM call processing servers and want to utilize all 8. So, Cisco came up with "Run on all nodes" which allows the SIP Trunk or Route List to utilize all existing CUCM call processing servers.