MGCP & SIP – DTMF Frenemies

[su_pullquote align=”right”]NTE-CA MGCP RTP-NTE has two implementations, which are Call Agent (CA) Controlled and Gateway (GW) Controlled. In CA-controlled mode, CA will negotiate DTMF relay capabilities on behalf of the gateways (SDP messages are sent  to CA). This is required in a setup where the other GW/Endpoint is  non-MGCP. After negotiation, CA instructs the MGCP gateway to use the negotiated PT values.[/su_pullquote]

So like any good UCM install that has been in place for more than three years we have quite a collection of MGCP gateways. And I know some of you out there will like MGCP but from my perspective it can go die in a fire. It has a whole host of draw backs that vastly outweighs the nicety of centralized management. So like most new modern UCM implementations we’re slowly switching gateways over to be SIP trunks, however I still need the two to play nice.

We ran into a scenario recently where a call path was the following:

Olde PBX PRI -> MGCP GW -> UCM -> SIP Trunk -> ISR G2 ->PRI -> PSTN

The problem we ran into was by the time you got to the PSTN you didn’t have DTMF. You could press buttons all day long and nothing happened. Obviously some DTMF inter-working issue, so lets see what it could be.

On the MGCP side in UCM it was set to GW controlled and in the gateway itself we had it set to out-of-band which is a pretty typical scenario. On the SIP trunk side in UCM we had it set to No Preference per Cisco best practice to minimize MTP usage. On the SIP GW itself we had the VoIP dial-peer set to prefer DTMF in the following order: rtp-nte sip-kpml sip-info basically a whole host of options preferring RFC2833 first.

Well turns out to get from OOB MGCP to RFC2833 DTMF we’d probably need to invoke MTP to do the conversion for us. I don’t like MTPs as that means I have media streams tacked up in odd places which makes things like upgrades a challenge.

My solution instead was to change the MGCP GW to a DTMF method compatible with SIP. After reading the following Cisco Chalk Talk about MGCP DTMF it seemed as though changing away from OOB and to NTE-CA would be my best option.

Initial results weren’t promising as in nothing changed, well did I forget to mention like most UCM installs that have been out in the wild we don’t update our IOS as much as we should? So yup the typical MGCP scenario IOS reload needed in order for the changes to really take effect.

Anyway after a reload all is well. On to the next issue.

Root Solution: Router(config)#mgcp dtmf-relay voip codec all mode nte-ca  

*sigh* MGCP I hate you.

Permanent link to this article:

Leave a Reply