Im currently assigned a project merging two old CUCM clusters (8.x and 9.x) into a new 12.5.x cluster. Since the data is so stale we are migrating into the new cluster in stages. To do this I needed the ability to call between clusters, hence I am using Inter-Cluster Trunks. An ICT can be used as part of a migration strategy like I am doing or to allow multiple organisations to send calls between each others CUCM clusters. I have configured ICT’s on CUCM version 8.x, 9.x and 12.x and they work successfully between the versions, under the hood a Inter-Cluster Trunk are using legacy H.323 for signalling OK so lets get to it:

Steps
*Note in the example I am using the prefix of # to send calls between 2 clusters. Both clusters have the same 4 digit dial plan so to prefix calls over the Inter-Cluster trunk, # it is.
1. On the existing cluster, Device > Trunks > Add new > Inter-Cluster Trunk (Non Gatekeeper Controlled), set device protocol to Inter-Cluster Trunk.
Trunk 0
2. Configure the trunk settings: Device Name, Device Pool, Significant Digits, Calling Search Space (select a css that has access to the Route Pattern that will use the Inter-Cluster Trunk).
Trunk 1
Set the Incoming Calling Party Settings to Prefix with # for all types.
Trunk 2
Set the Server IP Addresses of the Remote CUCM Cluster. Click Save
Remote Server IPs
3. Configure a Route Pattern that will use this trunk:
Call Routing > Route Patterns > Add New: Route Pattern = #.XXXX (hash and four digits means the remote cluster). Set the Gateway / Route List to the Inter-Cluster Trunk you just created. Make sure Called Party Transformations is set to discard digits PreDot.
Make sure this Route Pattern is added to a Partition that is in the CSS that you set for the Inter-Cluster Trunk.
Route Pattern
4. Now on the new cluster repeat steps 1-3. The only change to the logic should be the Server IPs of the Remote CUCM Cluster.
5. So now we can make calls between the clusters by prefixing with # and four digits as all calls beginning with # are sent over the Inter-Cluster Trunk.

Common Issues
1. In my experience if you get a one way audio issue, make sure all server IPs in each cluster are configured as the remote destination. In the example there are 2 IPs as for each cluster so each trunk should have 2 remote IPs (and not one).
2. If you get the annunciator on one or both sides of the call “your call cannot be completed as dialled..” this is almost always the CSS on the Inter-Cluster Trunk does not have partition that is assigned to the route pattern in it. You could create seperate partition and CSS for the intercluster trunk or use a over arching ones that has the correct access.
3. Note if the clusters are using different codecs then a Media Resource Group List is required on the Inter-Cluster Trunk configuration. This will allow transcoding via a Media Termination Point.