The key is the peer trunk inbound routes to the UCM with the SIP trunks. As you know, when interconnecting two UCMs, you use a peer trunk. To reach a destination, the inbound rule on UCM would normally have a DID pattern which represents the extension being dialed by UCM2 to UCM1. So if the extensions on UCM1 are from 1000 to 1999 and the extensions on UCM are 2000-2999, then the outbound route from UCM2 would have a dial plan of 1XXX. The inbound route at UCM1, in order to take the call from UCM2 would have an inbound route for the peer looking for 2XXX. The opposite is true for the reverse from UCM1 back to UCM2.
Now then to get a peer to “hop on” to UCM1’s trunks, you use the same peer trunk between sites, but you create a new inbound route at UCM1 using extensions and then check the dial trunk and for the extensions it is again BY DID. The inbound route dial pattern would be those needed by the SIP trunk provider. As this will not match an extension at UCM1 and as you have dial trunk enabled, the call will be directed to your trunk. The outbound rule on UCM2 will also need a to be set with regard to a dial pattern and use can use a preceding digit (9 or whatever) to tell the PBX that you want dials strings with a preceding 9 to use the peer to UCM1 and then strip 1 so the 9 is dropped before passing to UCM1. You could set the outbound rule at UCM2 to be as simple as 9X. which basically tells the UCM that no matter what is dialed, as long as it starts with a 9, send out the peer. At UCM1 for inbound, you could set X. which tells to to accepts any string seen on the trunk from UCM and then let the SIP trunk rules govern if the string meets its requirements.
You could possibly combine the rules into one at each end, but I keep them separate so that if I need to mess with the SIP aspect, I am not messing with site to site calls on extensions.
You will need to check the order of the rules on the outbound.