Connecting CME Systems Together via CallManager
Integrating CME systems with and via CallManager, without a Gatekeeper, is relatively simple, although perhaps not scalable with large implementations. Assuming a contiguous and closed dial plan (i.e. CME system 1 has DN range 4XXXX, CME system 2 has DN range 7XXXX, CUCM has range 1XXXX), it is certainly achievable to connect each CME system to CallManager, and allow CallManager to be responsible for all call routing between systems.
The main considerations for integrating multiple CME are:
- Configure CME System 1 as per this article. Make sure that calls can be connected between CME System 1 and CallManager phones, in both direcitons
- Configure CME System 2. Again, ensure calls can be connected between both systems
- Configure the dial-peers on each system to route calls not only for CallManager DNs, but for the remote CME system(s)
Codec selection is very important. When making calls between CME and CallManager, codec selection is always dictated by the dial-peer on CME. Region specification according to the specified location of the gateway in CallManager plays no part. If the CME dial-peer has g729r8 configured, all calls use g729r8. If the CME dial-peer has g711ulaw configured, all calls use g711u. Where this can be confusing is that calls from either CME system will work successfully, however calls between the systems might fail due to a mismatch. Observe the configuration, and one active call in the following output (observe codec selection in both examples).
===== CME1 =====
dial-peer voice 1234 voip
 destination-pattern [14]...
 session target ipv4:192.168.255.1
 codec g711ulaw
CME#sh voice call status
CallID     CID  ccVdb      Port             DSP/Ch  Called #   Codec    Dial-peers
0x3F       12A0 0x47EF0718 50/0/3.0                *7003       g711ulaw    1234/20003
1 active call found
===== CME2 =====
dial-peer voice 1234 voip
 destination-pattern [17]...
 session target ipv4:192.168.255.1
 dtmf-relay h245-alphanumeric
CME2#sh voice call status
CallID     CID  ccVdb      Port             DSP/Ch  Called #   Codec    MLPP Dial-peers
0x4CÂ Â Â Â Â Â Â 89AÂ Â 0x6873B554Â 50/0/1.0Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â *4001Â Â Â Â Â Â Â g729r8Â Â Â Â Â Â Â Â Â 1234/20001
1 active call found
In this example, then, calls can be made from CME to CallManager, however calls between CME systems will fail. The output of debug voip ccapi inout gives us a hint. Observe the "Disconnect Cause Value of 47". This indicates a potential issue with codec (reference: http://www.cisco.com/en/US/tech/tk1077/technologies_tech_note09186a0080094045.shtml) The "xcoding resource release" message tips us off, too.
Feb 24 11:42:01.239: //45/F66B7CEA8088/CCAPI/cc_api_call_disconnected:
   Cause Value=47, Interface=0x46BE74D4, Call Id=45
Feb 24 11:42:01.239: //45/F66B7CEA8088/CCAPI/cc_api_call_disconnected:
   Call Entry(Responsed=TRUE, Cause Value=47, Retry Count=0)
Feb 24 11:42:01.239: //44/xxxxxxxxxxxx/CCAPI/ccCallReleaseResources:
   release reserved xcoding resource.
Fix the codec mismatch and, voila, the problem is solved!