Recently, I have been able to work on Cisco’s IP Video Communications (IPVC) solution portfolio based on the Tandberg acquisition. Cisco is now referring to this collectively as Cisco’s TelePresence solution.
I have a few blogs in the works on this. Today I wanted to take a little time to discuss a recent issue a customer of ours encountered.
For sake of discussion, consider the following playing field:
Our customer was running H.323 on the voice gateway and they used Cisco’s deployment guide for integrating the CUCM and VCS platforms. They provisioned a SIP trunk between the VCS and CUCM in accordance with Cisco’s Neighbor Zone approach.
In this configuration, the customer was able to dial the auto attendant on their MCU and access meetings using DTMF from Cisco IP phones. However, the customer was not able to pass DTMF for PSTN callers.
The root cause came down to how DTMF relay was configured on the VoIP dial-peers. The dial-peers were configured to use “dtmf-relay h245-alphanumeric”. Since the SIP trunk to the VCS was configured for RFC 2833 support there was a conflict in DTMF relay methodology. In this specific use case, the CUCM tried to engage a media termination point (MTP) resource unsuccessfully and the DTMF failed to be relayed.
VoIP dial-peers on H.323 gateways have several DTMF options. At a high-level:
- Use Cisco-proprietary RTP. DTMF tones sent “in-band” with the RTP channel as voice data.
- Using H.245 signaling or H.245 alphanumeric method. These methods separate DTMF digits from the voice stream and send them through the H.245 signaling channel instead of the media channel. All H.323 v2 compliant systems support “h245-alphanumeric”. The “h245-signal” method is optional.
- Use Named Telephone Events (NTEs). Using NTE provides a standard way to transport DTMF tones in RTP packets according to section 3 of RFC 2833.
So, using NTE made the most sense since it allows the H.323 gateway and the VCS SIP trunk to negotiate the DTMF relay method. A sample dial-peer:
dial-peer voice 100 voip description cucm01 destination-pattern 4445551212 voice-class codec 10 session target ipv4:10.10.10.10 dtmf-relay rtp-nte
After making this change, DTMF worked as desired.