<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#404040;
font-weight:normal;
font-style:normal;
text-decoration:none none;}
span.EmailStyle18
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Ed:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I specifically worked with the dynamic payload option for a few cases that came my way. Based on my findings, when a dynamic payload type (such as 100/101/etc.) is received by CUBE, it will check if the next-hop dial-peer has the asymmetric
payload feature enabled and, if it is, will pass the received payload type through to the next call-leg. Take a look at my screen shot below. This was taken from some old notes where AT&T was the customer’s carrier.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><img width="280" height="123" style="width:2.9166in;height:1.2812in" id="Picture_x0020_1" src="cid:image001.png@01D1E10B.5FFCD4F0"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The call flow above shows two call-legs, and <b>the arrows represent an offer/answer exchange</b>.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">With asymmetric payload enabled on both call legs, the 100 offer from ATT is passed to CUCM despite 101 being the default PT for NTE. In the SDP answer from CUCM, we’re getting PT 101 -- since asymmetry is enabled on the DP to ATT in this
call flow, we pass the 101 through to ATT despite having received PT 100. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This results in asymmetry on our negotiated PT for each call-leg.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-indent:.5in"><b>Let’s change it up a bit… A second example.<o:p></o:p></b></p>
<p class="MsoNormal" style="margin-left:.5in">If asymmetry was disabled on the dial-peer to CUCM but enabled to ATT, we would receive 100 PT from ATT, send 101 to CUCM, receive 101 from CUCM, and send 101 to ATT. The resulting PTs would be symmetrical between
CUBE and CUCM, but asymmetrical between CUBE and ATT.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">See screenshot below for a third example:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><img width="341" height="116" style="width:3.552in;height:1.2083in" id="Picture_x0020_4" src="cid:image003.png@01D1E10B.EA997370"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This example shows asymmetric payload disabled on both call-legs using the same call flow. CUBE receives PT of 100 from ATT -- the outbound dialpeer has asymmetry disabled, so it transmits the PT specified for that dial-peer (default 101
or any hardcoded dynamic PT) to CUCM. We then receive 101 from CUCM and, since our inbound dial-peer has asymmetry disabled, CUBE sends 100 to match the original PT it received. Asymmetry is disabled so CUBE is not passing the received dynamic PT through to
the next-hop dial-peer - we have symmetry on both call legs for our NTE PT.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Note that CUBE has no issues receiving one dynamic PT for NTE and sending another (ex: receiving PT 100 and transmitting 101 for RTP-NTE) on the same call leg.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hope this helps<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Dan<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:white">--------end attach---------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#404040"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> cisco-voip [mailto:cisco-voip-bounces@puck.nether.net]
<b>On Behalf Of </b>Ed Leatherman<br>
<b>Sent:</b> Monday, July 18, 2016 3:10 PM<br>
<b>To:</b> Cisco VOIP <cisco-voip@puck.nether.net><br>
<b>Subject:</b> [cisco-voip] DTMF interworking on CUBE - asymmetric payloads<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I'm trying to get my head wrapped around some DTMF interworking features...<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I have this setup:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">UCM ------ CUBE ------- 3rd party system<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">For both call legs through CUBE I'm advertising kpml and rtp-nte for dtmf-relay<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The 3rd party sometimes sends me rtp payload type 101 for nte's, and no kpml, and things work (as a bonus I observed CUBE correctly interworking the nte's from the pbx into KPML, so uccx didn't break).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Sometimes they send type 98 and no kpml, and things don't work.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I'm trying to understand what is happening and what feature should fix it (without breaking other things)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Assumption:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">"dtmf-relay rtp-nte kpml" is telling CUBE to offer/accept rtp type 101 only for nte. I observe that CUBE negotiates KPML only for the associated call leg back to UCM and doesn't bother with rtp-nte, so its just like any other codec that
CUBE doesn't care about.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So.. if third party system ONLY sent me dtmf-relay with payload type 98, could I just set the rtp payload type for this to 98 on the inbound dial peer? would CUBE then correctly switch these up to 101 headed back to UCM?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">How can I (or can I at all) make this work in my particular case were I could receive both?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I see "asymmetric payload dtmf" thrown about as a possible solution, but I'm having trouble understanding what it actually does. It sounds like it passes these payload types through CUBE, so UCM could be getting rtp payload type 98 - it
knows what to do with it? It seems like then CUBE wouldn't be able to translate things to KPML this way...<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I'm reading <a href="http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/voi-dymc-payld-dtmf.html">http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/voi-dymc-payld-dtmf.html</a>
but I guess I'm just not drinking enough coffee today (or too much) and I'm not getting what exactly this command does.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Anyone know how that asymmeteric command works?<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Ed Leatherman<o:p></o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>