Showing results for 
Search instead for 
Did you mean: 

MTP vs. Transcoder


Sorry for the newbie question.  But I was always confused about the purpose of MTP.  Why we would need MTP and how it is different from transcoder?

The concept of transcoder is pretty straight forward - when there's a codec mismatch (like g.711 / g.729), a transcoder will be used to "translate".  But why MTP?

From some posts, traces, I've seen that MTP was involved when there's a codec mismatch.  That confused me as well.


10 Replies 10

Jaime Valencia
Hall of Fame Cisco Employee Hall of Fame Cisco Employee
Hall of Fame Cisco Employee

You'll have to do some reading in order to understand the difference:

Media Termination Point (MTP)



If this helps, please rate



if this helps, please rate

Thanks for the info.  I actually had read the SRND before posting.

I guess my question is more specific on transcoding.

If we want to translate different codecs, we usually configure trascoder and put it in MRG.

However, if MTP was also configured in MRG, it was invoked when transcoding was required.  I was trying to understand this.

Thanks again!


Hello Michael,

                    A Media Termination Point (MTP) software device  allows Cisco CallManager to relay calls that are routed through SIP or  H.323 endpoints or gateways.You can allocate a media termination point device because of DTMF or RSVP requirements.This is invoked by the Ip Voice Media Streaming Application Service.

Each MTP device that is defined in the database  registers with the Media Resource Manager (MRM). The MRM keeps track of  the total available MTP devices in the system and of which devices have  available resources.

The MTP accepts two full duplex G.711 Coder-Decoder (CODEC) stream  connections. MTPs bridge the media streams between two connections. The  streaming data received from the input stream on one connection is  passed to the output stream on the other connection, and vice versa. In  addition, the MTP trancodes A-law to Mu-law (and vice versa) and adjusts  packet sizes as required by the two connections.

MTPs extend supplementary services, such as call hold, call transfer,  call park, and conferencing, that are otherwise not available when a  call is routed to an H.323 endpoint. Some H.323 gateways may require  that calls use an MTP to enable supplementary call services, but  normally, Cisco IOS gateways do not.

Cisco CallManager requires an RFC 2833 DTMF compliant MTP device to make SIP calls.

While a Transcoder does the following

The Cisco Unified Communications Manager invokes a  transcoder on behalf of endpoint devices when the two devices are using  different codecs and would normally not be able to communicate. When  inserted into a call, the transcoder converts the data streams between  the two disparate codecs to enable communications between them.

The Reason why you may be seeing MTP invoked is the reason that MTP trancodes A-law to Mu-law (and vice versa) and adjusts  packet sizes as required by the two connections.

Please refer to the admin guide for further clarifications.

I hope this clears your doubts.



I have a config like this:

MRG1 - Transcoder

MRG2 - MTP (RSVP Agent for Call Admission Control)

MGRL contains MRG1.

There's a cross region call which requires transcoding.  Thus I assign the MRGL to the device.  Everything works fine.  Transcoding works as expected.

Then I added MRG2 to MRGL (with MRG1 on the top and MRG2 at the bottom).  Test call fails.

I was trying to understand why adding MRG2 to the MRGL will break it.

Attached is the CCM logs.  Here's the point where I got the fast busy (reorder tone):

01/14/2011 21:37:05.545 CCM|StationD:    (0000041) StartTone tone=37(ReorderTone), direction=0.



        From the traces i see that there is RSVP configured here, here is what i see

01/14/2011 21:37:04.635 CCM|Digit analysis: match(pi="1", fqcn="6178631001", cn="1001",plv="5", pss="pt-br1-loc:pt-internal", TodFilteredPss="pt-br1-loc:pt-internal", dd="5701",dac="0")|<:STANDALONECLUSTER><:><:2><:><:RP_5710><:STATE transition=""><:0800>
01/14/2011 21:37:04.635 CCM|Digit analysis: analysis results|<:STANDALONECLUSTER><:><:2><:><:RP_5710><:STATE transition=""><:0800>
01/14/2011 21:37:04.636 CCM||PretransformCallingPartyNumber=1001

There is a a capabilites mismatch here

01/14/2011 21:37:05.539 CCM|MediaManager(45)::sendMTPXcoderAllocationRequest, (CapCount,Region),SideA:(5,HQ), SideB:(2,HQ), supressMatchCap=0,MTPNeededForDTMF=0|<:STANDALONECLUSTER><:><:2><:><:CTIP_5701><:DETAILED><:0800>

Hence you see the transcoder being invoked

01/14/2011 21:37:05.541 CCM|MediaTerminationPointControl(4)::getResourcesAllocated -- No matching caps for either side A or side B, MTP not allocated|<:STANDALONECLUSTER><:><:2><:><:CTIP_5701><:DETAILED><:0080>

01/14/2011 21:37:05.541 CCM|MtpNoMoreResourcesAvailable - No more MTP resources available. App ID:Cisco CallManager Cluster ID:StandAloneCluster Node ID:cm-sub|<:STANDALONECLUSTER><:><:ALARM><:ALL><:FFFF>

01/14/2011 21:37:05.542 CCM|MRM::waiting_AllocateMtpResourceErr - ERROR - no resources are available -- ci = 46246208|<:STANDALONECLUSTER><:><:2><:><:CTIP_5701><:ERROR><:8000>

01/14/2011 21:37:05.544 CCM|StationD(30): StationCtiD - CcDisconnReq onBehalfOf=Media Cause=47|<:STANDALONECLUSTER><:><:2><:><:CTIP_5701><:DETAILED><:0800>

Hence we get this

01/14/2011 21:37:05.545 CCM|StationD:    (0000041) StartTone tone=37(ReorderTone), direction=0.|<:STANDALONECLUSTER><:><:2><:><:CTIP_5701><:STATE transition=""><:0020>

Please ensure that we have this in place:-

Special Configuration With RSVP

The interregion codec specifies G.729 between the calling RSVP agent and the called RSVP agent.

When the call is made, to achieve successful allocation and reservation  of RSVP agent resources and bandwidth, the administrator must configure  the media termination point (MTP)/RSVP agent with the G.729 codec in  addition to the pass-through codec. This configuration allows insertion  of a transcoder between the RSVP agent of the called side and the called  device at the time of media connection. When codecs match, codec  pass-through takes place; if codecs do not match, the call cannot  continue without a transcoder.

If configuration of the G.729 codec in the agent does not take place,  the call will fail because Cisco Unified Communications Manager will not  invoke a transcoder that is needed for the RSVP call.

The situation arises if either of the following conditions apply: the  interregion codec gets used between calling and called agents or between  two endpoints that specify G.729. Two options exist to enable  successful routing of this call:

Use  RSVP agent for IVR as a transcoder. In this case, the interregion codec  between the transcoder/RSVP agent and IVR needs to specify the G.711  codec.

Use  software MTP as RSVP Agents and insert a transcoder between IVR and the  RSVP agent for IVR. In this case, ensure the software MTP is configured  with the G.729 codec in addition to the pass-through codec.

Keep in mind that the RSVP agent that has transcoding capability cannot  perform G.729-to-G.729 transcoding. If you use a transcoder as an RSVP  agent, you either must use the pass-through codec or configure the  transcoder, so one of the codecs that is used on both sides of the  transcoder specifies G.711.

Please refer to the following doc for further clarifications.

Hope this helps.



Hi Amit,

Thank you very much for the detailed info.

What I tried to do falls into this scenario:

Use  software MTP as RSVP Agents and insert a 
transcoder between IVR and the  RSVP agent for IVR. In this case, ensure
 the software MTP is configured  with the G.729 codec in addition to the
 pass-through codec.

Here's my config on the DSP profile:

dspfarm profile 2 mtp
codec g729r8
codec pass-through
maximum session software 4
associate application sccp

It looks like the config was correct, but the call failed.  If I removed the RSVP MTP, it works fine.  It puzzles me.



Ok, got it figure out.  Per,

Use software MTP as RSVP Agents and insert a transcoder between IVR and the RSVP agent for IVR. In this case, ensure the software MTP is configured with the G.729 codec in addition to the pass-through codec.

The trick was the word "G.729".

In dspfarm profile (for RSVP agent), "codec g729r8" won't work.  "codec g729ar8" works.

Thanks everyone for the help!


Hi Michael,

To add to the puzzle

MRG1 - Transcoder

MRG2 - MTP (RSVP Agent for Call Admission Control)


               MRG1 - Xcoder

               MRG2 - MTP

You don't want to do this.  When CM needs an MTP, it picks the first available MTP/Xcoder it will find in the MRGL.  It is not smart enough to know that if it needs a g729 MTP to pick a g729 MTP resource over a g711 resource.  Hence, you should only have one codec-type MTP in the MRGL, for the codec that you intend to use across the trunk.

On Xcoder (except the Universal Transcoder).. Needs a G711 leg on side.. "G729 -- G729" legs not permitted on an Xcoder. So solve this issue..make sure.. Make sure we have an MTP in a separate MRG at the TOP of the MRGL..! This is a best practice.!


PS: Rate Useful posts

Hey Java

Here is a tricky one, do you know or have you heard if the RSVP agent provides Early Offering based on how it uses MTPs in the router?  Is it built into the RSVP agent.   We are trying to figure out if the SIP Early Offering provides the port information (getPort).  I cant find any information on this in the SRND docs, etc.


In my experience the RSVP call agent is just used to measure bandwidth for CAC. Unless a transcoder is needed, it tries to use the pass-through codec so that it doesn't have to keep track of the codec actually being used. That way you can have calls using G.722, G.711, & G.729 all using the same MTP at the same time. The only time the RSVP call agent MTP knows about the codec being used is when a transcoder or conference bridge is engaged at one of the endpoints and there is a codec difference. In that special case only the named codec on the RSVP call agent MTP is used.  Generally that is your g729ar8 codec.

Pass-through codec, of course, won't work for SIP Early Offer so you'll need to leverage a separate MTP as your trusted relay point.   Alternatively, you might be able to 'throw hardware at the problem' and define a bunch of hardware transcoders that are both trusted relay points as well as RSVP call agents.

In full disclosure, I've not tried using a hardware transcoder as both RSVP call agent and trusted relay point at the same time but given what I know that might be the only way to have both at the same time.


Please help us make the communities better. Rate helpful posts!
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Recognize Your Peers