[cisco-voip] Cisco IOS Enhanced Software Media Termination Point, DTMF and SIP

Keith Klevenski KKlevenski at cstcorp.net
Thu Sep 10 10:18:32 EDT 2009

Thanks Ryan, I'll give these things a try today.

Just to clarify, I'm running g729 everywhere including over the SIP trunk to Asterisk so there is no transcoding necessary as there is no g711 being used at all anywhere.  I was using g711 to Asterisk with a transcoder originally and that worked fine, but it seems that some transcoding sessions were not being released from the transcoder when the call ended so the next call would be fast busy as it would want to use the same session for some reason which was hung.  The only way I could clear the session from the transcoder was to shut/no shut the dspfarm profile.  I didn't look into that too much as I prefer to only use one codec throughout the network to simplify things, but then the DTMF problem from the PSTN popped up.  That is the only issue with using g729 everywhere.  Also there are no IP phones at all if it matters, but only analog phones hanging off SCCP controlled FXS ports.  Would a SCCP gateway support RFC 2833?  I'm curious about this as I was looking at a presentation on media resources from the Networkers Live site and there was a slide showing SCCP phone sending OOB DTMF and CM invoked an MTP to convert to RFC 2833 to send to a SIP device.

The only reason I think I need an MTP is because it isn't working lol.  But yes, you and Nick have really cleared up a lot for me on this issue and I understand now how I should not actually need one.  Thanks for all your help and I'm looking forward to digging into this more today.


-----Original Message-----
From: Ryan Ratliff [mailto:rratliff at cisco.com]
Sent: Thursday, September 10, 2009 8:55 AM
To: Keith Klevenski
Cc: Nick Matthews; cisco-voip at puck.nether.net Voice
Subject: Re: [cisco-voip] Cisco IOS Enhanced Software Media Termination Point, DTMF and SIP

You mentioned that all your calls are using g.729 codec.  In this case
in order for an MTP to be allocated it would have to invoke a
transcoder to convert between g.711 and g.729.  Both the CUCM software
MTP and the IOS MTP (from the config in your first email) only support

The fact that the 'show voip rtp conn' command shows you the Asterix'
IP address means no MTP is being invoked.  You can do the same command
on whatever device is hosting the sccp controlled FXS ports or if you
have a physical IP phone get a call up to Asterix, browse to the
phone's IP address and look at Streaming Statisics 1 for the remote IP
address.  Physical IP phones support both g.729 and RFC 2833 DTMF so
there is no need for an MTP.

I think you're hung up on the MTP thing when you really don't need
one.  Set up your dial-peer like Nick and I suggested with both H245-
alpha and rtp-nte.  Get a call up and turn on 'debug voip rtp session
named-event'.  Now test the DTMF and you should see it sending 2833
packets (with payload type).  If not then you need to look at the H.
323 and SIP signaling.

If you see the gateway sending DTMF but it's not being recognized by
Asterix then I'd start with a packet capture at the Asterix server to
make sure it is receiving the 2833 packets and go from there.


On Sep 10, 2009, at 12:37 AM, Nick Matthews wrote:

If your software MTP is the same router it's not quite as
straightforward.  You can use 'show call active voice brief' to
determine which IP addresses are used in each call leg.  If you see
calls with ID 0: that's usually indicative of a software MTP.  If the
MTP is on a different router / CUCM, then if you see that IP address
in 'show voip rtp connections' you aren't using an MTP.  You could
also use RTMT to track MTP usage and see if the call goes up when you
place it - may be more straightforward.

If you would like to look deeper you can do a 'debug h245 asn1' and
look at the terminalCapabilitySet the router sends and receives for
the call.  You should see something like Telephone Event 101 and
Events 1-16 somewhere in the TCS.  This would show for sure if it's
being negotiated.  As well, 'debug voip rtp session named' will show
you debugs for when RFC 2833 is sent or received.


On Thu, Sep 10, 2009 at 12:14 AM, Keith
Klevenski<KKlevenski at cstcorp.net> wrote:
> Nick,
> Thanks for the info.  This is exactly how I have it configured and
> DTMF is still not being passed from the PSTN.  The payload type is
> 101 which is the default for rtp-nte so that was fine.  Great
> explanation as to why the SRND says CM doesn't support RFC 2833.
> Good to know.
> Well, I am stumped.  Everything you and Ryan said makes sense, but I
> can't seem to get it working.  I did use the 'show voip rtp
> connections' command and saw the Asterisk server's IP address, but
> how does this show that an MTP is being invoked?  I must say I've
> parsed out this command before, but I've never really used it for
> troubleshooting.  If a make a call to a phone and use this command I
> see the IP address of the SCCP gateway, but does this have anything
> to do with MTPs?
> So the kicker here is that DTMF works fine internally.  Using SCCP
> controlled FXS ports with analog phones.  So that means my SCCP
> phone is sending DTMF OOB which requires an MTP to be sent RFC 2833
> to Asterisk over the SIP trunk.  In old Windows version of CCM it
> was easy to pull up perfmon and instantly see in real time when a
> resource was being used, but it is not so easy anymore.  I pull up
> the MTPs in RTMT, but don't ever see any being used.  It would only
> be used when DTMF tones are being sent I would assume so maybe it's
> hard to see?  Plus I thought the SW IOS MTP was required for OOB
> DTMF to RFC 2833, but Ryan mentioned the SW MTPs in CM could as
> well.  I am using g729 everywhere here so that may be a factor.
> If I could at least know for sure when an MTP is required (OOB DTMF
> to RFC 2833 right?) so I could go monitor all MTPs and find out
> where it is being used would be helpful.  So far since I can't seem
> to prove any MTPs are being used even though I'm in a working
> scenario (internal DTMF from SCCP phones works) that requires MTPs.
> I'm sure I'll get to the bottom of this and I'm looking forward to
> feeling very satisfied once it is fixed.
> Thanks a ton to you guys!
> -k
> -----Original Message-----
> From: matthn at gmail.com [mailto:matthn at gmail.com] On Behalf Of Nick
> Matthews
> Sent: Wednesday, September 09, 2009 9:35 PM
> To: Keith Klevenski
> Cc: Ryan Ratliff; cisco-voip at puck.nether.net
> Subject: Re: [cisco-voip] Cisco IOS Enhanced Software Media
> Termination Point, DTMF and SIP
> This would be my opinion:
> -Configure CUCM to do rtp-nte to Asterisk
> -Look at the SDP coming for Asterisk to check the payload type they're
> using for DTMF
> -Configure the outgoing dial peer from your PRI gateway to cucm as
> 'h245-alpha rtp-nte'
> -Use 'rtp payload-type nte <x>' as needed from the SDP from Asterisk
> This should remove the need for the MTP altogether, which is a good
> design choice.  The reason the SRND states that RFC 2833 isn't
> supported is because CUCM will only allow RFC 2833 if at least one leg
> of the call is SIP (I have no explanation for this, minus some
> targeted speculation).  In this case you have a SIP trunk so you're
> fine.  You would only have problems H323-H323 and you were only doing
> RFC 2833.  But, with 'h245-alpha rtp-nte', you will still prefer
> h245-alpha and you don't have this problem.
> A quick way to check if MTP is being invoked is 'show voip rtp
> connections'.  Check if you see the IP of your Asterisk or not.
> -nick
> On Wed, Sep 9, 2009 at 6:03 PM, Keith
> Klevenski<KKlevenski at cstcorp.net> wrote:
>> I tried rtp-nte in the past and it did not work.  In the CUCM 7.x
>> SRDN I read that you should not use nte on h323 gateways because CM
>> doesn't support it on h323 gateways:  http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/srnd/7x/media.html#wp1056938
>>  I will certainly try it again as it was a few weeks ago when I was
>> messing with it.
>> All the voip dial-peers to CM are configured with h245-signal so
>> I'm not sure how the gateway and Asterisk could have matching DTMF
>> capabilities, but either they do or an MTP is being invoked and I
>> am not detecting it.  Even internal SCCP calls to Asterisk should
>> be invoking an MTP for DTMF right?  SCCP device calls Asterisk,
>> media is up, SCCP device presses a digit and DTMF is sent OOB to
>> CM, CM invokes MTP, MTP sends RFC2833 digit to Asterisk.  However I
>> don't see any MTP's being invoked when I do this and it works fine
>> and all devices only have access to an IOS SW MTP in which I can
>> see no activity with a 'deb sccp packet' which should definitely
>> give me something if it is being invoked.
>> The combination of SIP, g729, MTPs and DTMF is boggling to me.
>> Does the fact that all calls are g729 a factor?  All devices are in
>> a g729 region.  I read in CM help that 'To configure G.79 codecs
>> for use with a SIP trunk, you must use a hardware MTP or transcoder
>> that supports the G.79 codec' however I do not need one as it is
>> working just fine wihtout it internally.  I check MTP required, but
>> one doesn't get invoked that I can tell yet internal DTMF works and
>> all devices only have access to one device which is the IOS SW
>> MTP.  Which doesn't show any sign of being invoked...
>> I wish they would just buy Unity.  :P
>> Thanks for your help Ryan.  I'll play around with it some more and
>> report back.
>> -k
>> -----Original Message-----
>> From: Ryan Ratliff [mailto:rratliff at cisco.com]
>> Sent: Wednesday, September 09, 2009 4:32 PM
>> To: Keith Klevenski
>> Cc: cisco-voip at puck.nether.net
>> Subject: Re: [cisco-voip] Cisco IOS Enhanced Software Media
>> Termination Point, DTMF and SIP
>> Why require the MTP at all?  You can configure more than 1 dtmf type
>> on the dial-peer going to CUCM.  Add rtp-nte to the dtmf payload
>> types
>> (in addition to h245-alpha) and you shouldn't need an MTP at all.
>> Since you mentioned h245-alpha I assume your gateway is H.323.
>> The CUCM software MTP can also convert from oob to 2833 DTMF so it
>> may
>> be using that one as well.  The only difference in the IOS one is the
>> codec support.  If CUCM really isn't invoking an MTP then it's
>> because
>> the gateway and Asterix have matching dtmf capabilities.
>> One thing you'll want to check is the payloadType for the 2833 DTMF.
>> IOS gateways don't support dynamic payload types currently and I
>> think
>> use 101 by default.  If Asterix is using something else you'll want
>> to
>> change it on the dial-peer with the command 'rtp payload-type nte
>> <97-127>' where the number matches whatever Asterix is using.  It may
>> be that both sides think they can do 2833 but the gateway is
>> sending a
>> payloadType Asterix isn't looking for.
>> -Ryan
>> On Sep 9, 2009, at 5:02 PM, Keith Klevenski wrote:
>> All,
>> Trying to get DTMF to pass to an Asterisk VM server from the PSTN
>> with
>> no love.  Using H323 PSTN gateways running 12.4(24)T1, ISDN PRI's,
>> CUCM 7.02, with a SIP trunk to Asterisk.  This is all g729 as
>> well.  I
>> can dial into Asterisk internally and DTMF works fine, but I can't
>> get
>> it to pass DTMF from the PSTN.  The call goes though to Asterisk fine
>> from the PSTN, but doesn't seem to be passing DTMF.
>> sccp ccm group 1
>>  associate ccm 1 priority 1
>>  associate ccm 2 priority 2
>>  associate profile 1 register softmtp2
>> !
>> dspfarm profile 1 mtp
>>  codec g711ulaw
>>  maximum sessions software 50
>>  associate application SCCP
>> sh sccp
>> SCCP Admin State: UP
>> Gateway Local Interface: GigabitEthernet0/0.101
>>         IPv4 Address:
>>         Port Number: 2000
>> IP Precedence: 5
>> User Masked Codec list: None
>> Call Manager:, Port Number: 2000
>>                 Priority: 1, Version: 7.0, Identifier: 1
>> Call Manager:, Port Number: 2000
>>                 Priority: 2, Version: 7.0, Identifier: 2
>> MTP Oper State: ACTIVE - Cause Code: NONE
>> Active Call Manager:, Port Number: 2000
>> TCP Link Status: CONNECTED, Profile Identifier: 1
>> Reported Max Streams: 100, Reported Max OOS Streams: 0
>> Supported Codec: g711ulaw, Maximum Packetization Period: 30
>> Supported Codec: rfc2833 dtmf, Maximum Packetization Period: 30
>> Supported Codec: rfc2833 pass-thru, Maximum Packetization Period: 30
>> Supported Codec: inband-dtmf to rfc2833 conversion, Maximum
>> Packetization Period: 30
>>  From what I understand the IOS software MTP should be what I need to
>> allow RFC2833 and h245-signal (tried h245-alphanumeric as well) to
>> communicate, even with g729.  The IOS SW MTP is registered and
>> configured, but DTMF is still not being passed.  The IOS software MTP
>> is in the MRG/MRGL for all device pools for all devices.  I've even
>> put all the other media resources in a temp MRG to ensure only the
>> software MTP is able to be invoked (it's all g729 satellite sccp
>> analog phones so no moh/annunciator or anything).  I do a 'deb sccp
>> packet' on the gateway with the IOS MTP, but I get nothing when
>> sending DTMF.  In RTM I don't see any MTP resources being used on the
>> IOS MTP.  I've had the SIP trunk configured with MTP required checked
>> and unchecked (although CM should still dynamically allocate and MTP
>> for DTMF if needed even if it is not checked), RFC2833 set as the
>> type and G729/G729a as the codec on the trunk.  It seems like the MTP
>> is not being invoked at all, but I'm not sure why or how to
>> absolutely
>> prove that it is or isn't.  So far I don't see any attempts being
>> made
>> to invoke it by looking at RTM or 'deb sccp packet'. I don't have
>> access to the Asterisk box (and wouldn't know what to do if I did),
>> but it works fine internally so I'm pretty sure the problem is with
>> two DTFM types needing an MTP.
>> Any suggestions or insight?
>> Thanks!
>> Keith
>> _______________________________________________
>> cisco-voip mailing list
>> cisco-voip at puck.nether.net
>> https://puck.nether.net/mailman/listinfo/cisco-voip
>> _______________________________________________
>> cisco-voip mailing list
>> cisco-voip at puck.nether.net
>> https://puck.nether.net/mailman/listinfo/cisco-voip

More information about the cisco-voip mailing list