01-14-2011 04:56 PM - edited 03-16-2019 02:53 AM
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.
Thanks!
01-14-2011 07:08 PM
You'll have to do some reading in order to understand the difference:
http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/srnd/8x/media.html#wp1046314
HTH
java
If this helps, please rate
www.cisco.com/go/pdihelpdesk
01-14-2011 07:15 PM
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!
Michael
01-14-2011 08:39 PM
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.
http://www.cisco.com/en/US/docs/voice_ip_comm/cucmbe/admin/7_0_1/ccmcfg/b04trans.html
I hope this clears your doubts.
Regards,
Amit
01-14-2011 08:51 PM
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.
Thanks!
01-15-2011 12:40 AM
Hello,
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><:10.10.210.11><:2><:10.10.210.14><:RP_5710><:STATE transition=""><:0800>
01/14/2011 21:37:04.635 CCM|Digit analysis: analysis results|<:STANDALONECLUSTER><:10.10.210.11><:2><:10.10.210.14><:RP_5710><:STATE transition=""><:0800>
01/14/2011 21:37:04.636 CCM||PretransformCallingPartyNumber=1001
|CallingPartyNumber=1001
|DialingPartition=
|DialingPattern=5701
|FullyQualifiedCalledPartyNumber=5701
|DialingPatternRegularExpression=(5701)
|DialingWhere=
|PatternType=Enterprise
|PotentialMatches=NoPotentialMatchesExist
|DialingSdlProcessId=(0,0,0)
|PretransformDigitString=5701
|PretransformTagsList=SUBSCRIBER
|PretransformPositionalMatchList=5701
|CollectedDigits=5701
|UnconsumedDigits=
|TagsList=SUBSCRIBER
|PositionalMatchList=5701
|VoiceMailbox=5701
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><:10.10.210.11><:2><:10.10.210.14><: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><:10.10.210.11><:2><:10.10.210.14><: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><:10.10.210.11><:ALARM><:ALL><:FFFF>
01/14/2011 21:37:05.542 CCM|MRM::waiting_AllocateMtpResourceErr - ERROR - no resources are available -- ci = 46246208|<:STANDALONECLUSTER><:10.10.210.11><:2><:10.10.210.14><:CTIP_5701><:ERROR><:8000>
01/14/2011 21:37:05.544 CCM|StationD(30): StationCtiD - CcDisconnReq onBehalfOf=Media Cause=47 tmpAe.ci=46246206|<:STANDALONECLUSTER><:10.10.210.11><:2><:10.10.210.14><: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><:10.10.210.11><:2><:10.10.210.14><:CTIP_5701><:STATE transition=""><:0020>
Please ensure that we have this in place:-
•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.
http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/admin/7_0_1/ccmsys/a02rsvp.html
Hope this helps.
Regards,
Amit
01-15-2011 07:01 AM
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
rsvp
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.
Thanks!
Michael
01-15-2011 11:47 AM
Ok, got it figure out. Per http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/admin/7_0_1/ccmsys/a02rsvp.html#wp1034607,
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!
Michael
01-16-2011 12:05 AM
Hi Michael,
To add to the puzzle
MRG1 - Transcoder
MRG2 - MTP (RSVP Agent for Call Admission Control)
MRGLX
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.!
HTH
PS: Rate Useful posts
02-23-2011 09:48 AM
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.
02-23-2011 10:20 AM
Tommer,
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.
-Steven
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide