<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div>So the takeaway is H245 = bad, SDP = good!</div>
<br>
<div>-Ryan </div>
<br>
<div>
<div>On Sep 25, 2013, at 9:43 PM, Anthony Holloway <<a href="mailto:avholloway+cisco-voip@gmail.com">avholloway+cisco-voip@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div dir="ltr">I found this reviewing Cisco Live presentations:<br>
<br>
<div style="margin-left:40px">"Reasons to use SIP Trunks only<br>
H323 Slow Start Trunks – Media Negotiation<br>
<br>
To support calls with voice, video and encryption – H323 Slow Start Trunks must be used.<br>
Endpoint Media capabilities are sent over H323 Trunks through the exchange of Terminal<br>
Capability Set (TCS) messages. The choice of which codec and DTMF transport method is<br>
used for the call is determined after Master Slave Determination (MSD).<br>
<br>
Unlike SIP Trunks using EO ands DO, for H323 Inter Cluster Trunks the choice which cluster<br>
choses the media characteristics for the call is not configurable, as the cluster that initiates<br>
the TCS exchange and determination of which cluster is <b>Master and Slave is random</b>"<br>
<br>
</div>
<i>Source: Cisco Live Presentation: BRKUCC-2450 - Designing & deploying UC networks with Cisco Unified Session Management Edition (2013 Orlando)
</i><span><i>- 2 Hours</i></span><br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Thu, Sep 19, 2013 at 9:51 AM, Ryan Ratliff (rratliff)
<span dir="ltr"><<a href="mailto:rratliff@cisco.com" target="_blank">rratliff@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">That is the setting, and indeed it isn't there for ICTs (should have checked that yesterday). 
<div><br>
<div>My recommendation with respect to media resources was more of a design pointer to help avoid this situation.  You know what calls will be going where, and what codecs will be used. Having a situation like this where both sides are in a race condition to
 see who can invoke a transcoder first isn't desirable. </div>
<div><br>
</div>
<div>With respect to MSD you never got to that point because there were no matching codecs between the transmit and receive TCS messages.  </div>
<div><br>
</div>
<div>This is one of the things that SIP would help alleviate either with EO or DO because you wouldn't get the race condition of both sides sending initial caps simultaneously.  I'm pretty sure that shouldn't happen even with H.323, but then you can see that
 it did.</div>
<div><br>
</div>
<div>What version are your clusters and are they the same?  There was a rather old bug where CCM messed up the calculation for which side should initiate H.245 first and I wonder if something like that could be in play here.</div>
<div><br>
<div>-Ryan </div>
<br>
<div>
<div>On Sep 18, 2013, at 11:12 PM, Anthony Holloway <<a href="mailto:avholloway+cisco-voip@gmail.com" target="_blank">avholloway+cisco-voip@gmail.com</a>></div>
<div>
<div class="h5">
<div> wrote:</div>
<br>
<div dir="ltr">Ryan,
<div><br>
</div>
<div>Thank you for the reply.</div>
<div><br>
</div>
<div>Without reading too much into what you are saying about the "wait for far-end TCS", did you mean to say that it's configurable and enabled by default?  I see on H.323 gateways you can configure a similar if not exact setting called "wait for far end H245
 capabilities", but on an ICT no such option exists.
<div><br>
</div>
<div>Also, when you say "let the side with the media resources send TCS last" in the scenario I'm in, both sides have media resources, and both sides in fact invoke media resources.  PErhaps I overlooked a fundamental design characteristic of H.323 ICT's where
 this is normal and expected behavior.  Hence we see Cisco's best practice switched to SIP trunks.</div>
<div><br>
</div>
<div>Thanks for the feedback Ryan, I appreciate it.</div>
</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Sep 18, 2013 at 3:38 PM, Ryan Ratliff (rratliff)
<span dir="ltr"><<a href="mailto:rratliff@cisco.com" target="_blank">rratliff@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">I believe this kind of situation is why we have the "wait for far-end TCS" option, which is enabled by default.
<div><br>
</div>
<div>Let the side with the media resources be the last one to send its TCS.  That way when it receives a TCS that will have a caps mismatch the transcoder can be set up and only a matching caps set can be sent back the other way.   </div>
<div><br>
</div>
<div>
<div>-Ryan </div>
<br>
<div>
<div>
<div>On Sep 18, 2013, at 1:18 PM, Anthony Holloway <<a href="mailto:avholloway+cisco-voip@gmail.com" target="_blank">avholloway+cisco-voip@gmail.com</a>> wrote:</div>
<br>
<div dir="ltr">Great resource you referenced there Jason.  ipexpert certainly thinks its random.  In which case, how do you design your media resources to effectively manage codecs?  Just double up on each side?  Thanks again for your feedback.  Let's both
 wait to see what becomes of this discussion.<br>
</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div>On Wed, Sep 18, 2013 at 10:38 AM, Jason Aarons (AM) <span dir="ltr"><<a href="mailto:jason.aarons@dimensiondata.com" target="_blank">jason.aarons@dimensiondata.com</a>></span> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div link="#0563C1" vlink="#954F72" lang="EN-US">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">MSD selection algorithm both ICT and to a H323 gateway.  I too would love to know the algorithm.   Seems to be more random.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I ran about 10 calls out a H323 IOS gateway and whom was Master seemed to be random.  Can we influence Master selection somehow?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><a href="http://blog.ipexpert.com/2010/08/04/gatekeeeperh323-signaling-ras-h225-h245/" target="_blank">http://blog.ipexpert.com/2010/08/04/gatekeeeperh323-signaling-ras-h225-h245/</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">See the H245 section.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<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:<a href="mailto:cisco-voip-bounces@puck.nether.net" target="_blank">cisco-voip-bounces@puck.nether.net</a>]
<b>On Behalf Of </b>Anthony Holloway<br>
<b>Sent:</b> Wednesday, September 18, 2013 11:03 AM<br>
<b>To:</b> Cisco VoIP Group<br>
<b>Subject:</b> [cisco-voip] CUCM ICT MasterSlaveDetermination Question<u></u><u></u></span></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">All,<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I am troubleshooting a complex call flow with multiple clusters all connected via Non-Gatekeeper Controlled H.323 ICT's, and have narrowed down the failure to a region misconfiguration between a trunk and its
 transcoder.<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">My question to the group is about the H.245 MasterSlaveDetermination process, and how CUCM handles this between two CUCM's.  Because, as you might see below, it seems to be broken, or at least unpredictable. 
 Or maybe my lack of understanding is blinding me to the obvious answer.<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">First, let me start with a graphic of the H.225/H.245 messaging between two clusters.  What you will see here is that TCS is sent in both directions, and the the initiating side sends an H.245 endSession to
 the receiving side, before the MasterSlaveDetermination is sent or received by either party.<br>
<br>
<u></u><u></u></p>
</div>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span><image001.png></span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">What the graphic doesn't show, are the details within the messages, but as you may know, the H.225 messaging is littered with customer specific details, so it's a bit of a challenge to simply just post it all
 to this mailing list.  Below are some of the details to help you understand the flow.  Please let me know if you need more specific details.<u></u><u></u></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">We'll start with the TCS message sent by the .9 host to the .13 host<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:28.999 |</span><br>
<span style="font-family:"Courier New"">H245ASN - TtPid=(5551) -Outgoing #80462 -value MultimediaSystemControlMessage ::= request : terminalCapabilitySet :
</span><br>
<span style="font-family:"Courier New"">    {</span><br>
<span style="font-family:"Courier New"">      sequenceNumber 1,</span><br>
<span style="font-family:"Courier New"">      protocolIdentifier { 0 0 8 245 0 10 },</span><br>
<span style="font-family:"Courier New"">      multiplexCapability h2250Capability :
</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          maximumAudioDelayJitter 60,</span><br>
<span style="font-family:"Courier New"">          receiveMultipointCapability </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            multicastCapability FALSE,</span><br>
<span style="font-family:"Courier New"">            multiUniCastConference FALSE,</span><br>
<span style="font-family:"Courier New"">            mediaDistributionCapability </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              {</span><br>
<span style="font-family:"Courier New"">                centralizedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedVideo FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedVideo FALSE</span><br>
<span style="font-family:"Courier New"">              }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          transmitMultipointCapability </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            multicastCapability FALSE,</span><br>
<span style="font-family:"Courier New"">            multiUniCastConference FALSE,</span><br>
<span style="font-family:"Courier New"">            mediaDistributionCapability </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              {</span><br>
<span style="font-family:"Courier New"">                centralizedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedVideo FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedVideo FALSE</span><br>
<span style="font-family:"Courier New"">              }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          receiveAndTransmitMultipointCapability
</span><br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            multicastCapability FALSE,</span><br>
<span style="font-family:"Courier New"">            multiUniCastConference FALSE,</span><br>
<span style="font-family:"Courier New"">            mediaDistributionCapability </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              {</span><br>
<span style="font-family:"Courier New"">                centralizedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedVideo TRUE,</span><br>
<span style="font-family:"Courier New"">                distributedVideo FALSE</span><br>
<span style="font-family:"Courier New"">              }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          mcCapability </span><br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            centralizedConferenceMC FALSE,</span><br>
<span style="font-family:"Courier New"">            decentralizedConferenceMC FALSE</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          rtcpVideoControlCapability FALSE,</span><br>
<span style="font-family:"Courier New"">          mediaPacketizationCapability </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            h261aVideoPacketization FALSE</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          logicalChannelSwitchingCapability FALSE,</span><br>
<span style="font-family:"Courier New"">          t120DynamicPortCapability FALSE</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">      capabilityTable </span><br>
<span style="font-family:"Courier New"">      {</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 1,</span><br>
<span style="font-family:"Courier New"">          capability nonStandard : </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              nonStandardIdentifier h221NonStandard :
</span><br>
<span style="font-family:"Courier New"">                {</span><br>
<span style="font-family:"Courier New"">                  t35CountryCode 181,</span><br>
<span style="font-family:"Courier New"">                  t35Extension 0,</span><br>
<span style="font-family:"Courier New"">                  manufacturerCode 18</span><br>
<span style="font-family:"Courier New"">                },</span><br>
<span style="font-family:"Courier New"">              data '010000001400000000000000C0CEA6B5'H</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 2,</span><br>
<span style="font-family:"Courier New"">          capability genericControlCapability :
</span><br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              capabilityIdentifier standard : { 0 0 8 323 1 3 1 }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 3,</span><br>
<span style="font-family:"Courier New"">          capability receiveAudioCapability : g729wAnnexB : 6</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 4,</span><br>
<span style="font-family:"Courier New"">          capability receiveAudioCapability : g729AnnexAwAnnexB : 6</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 5,</span><br>
<span style="font-family:"Courier New"">          capability receiveAudioCapability : g729 : 6</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 6,</span><br>
<span style="font-family:"Courier New"">          capability receiveAudioCapability : g729AnnexA : 6</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 7,</span><br>
<span style="font-family:"Courier New"">          capability receiveAndTransmitUserInputCapability : dtmf : NULL</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 8,</span><br>
<span style="font-family:"Courier New"">          capability receiveAndTransmitUserInputCapability : basicString : NULL</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 44,</span><br>
<span style="font-family:"Courier New"">          capability receiveAndTransmitUserInputCapability : hookflash : NULL</span><br>
<span style="font-family:"Courier New"">        }</span><br>
<span style="font-family:"Courier New"">      },</span><br>
<span style="font-family:"Courier New"">      capabilityDescriptors </span><br>
<span style="font-family:"Courier New"">      {</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityDescriptorNumber 0,</span><br>
<span style="font-family:"Courier New"">|*^*^*</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal">This is the TCS received on the .9 host from the .13 host<u></u><u></u></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.211 |</span><br>
<span style="font-family:"Courier New"">H245ASN - TtPid=(5551) [0xb0efe090 3040 bytes] -Incoming #103057 -value MultimediaSystemControlMessage ::= request : terminalCapabilitySet :
</span><br>
<span style="font-family:"Courier New"">    {</span><br>
<span style="font-family:"Courier New"">      sequenceNumber 1,</span><br>
<span style="font-family:"Courier New"">      protocolIdentifier { 0 0 8 245 0 10 },</span><br>
<span style="font-family:"Courier New"">      multiplexCapability h2250Capability :
</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          maximumAudioDelayJitter 60,</span><br>
<span style="font-family:"Courier New"">          receiveMultipointCapability </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            multicastCapability FALSE,</span><br>
<span style="font-family:"Courier New"">            multiUniCastConference FALSE,</span><br>
<span style="font-family:"Courier New"">            mediaDistributionCapability </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              {</span><br>
<span style="font-family:"Courier New"">                centralizedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedVideo FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedVideo FALSE</span><br>
<span style="font-family:"Courier New"">              }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          transmitMultipointCapability </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            multicastCapability FALSE,</span><br>
<span style="font-family:"Courier New"">            multiUniCastConference FALSE,</span><br>
<span style="font-family:"Courier New"">            mediaDistributionCapability </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              {</span><br>
<span style="font-family:"Courier New"">                centralizedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedVideo FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedVideo FALSE</span><br>
<span style="font-family:"Courier New"">              }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          receiveAndTransmitMultipointCapability
</span><br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            multicastCapability FALSE,</span><br>
<span style="font-family:"Courier New"">            multiUniCastConference FALSE,</span><br>
<span style="font-family:"Courier New"">            mediaDistributionCapability </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              {</span><br>
<span style="font-family:"Courier New"">                centralizedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedControl FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                distributedAudio FALSE,</span><br>
<span style="font-family:"Courier New"">                centralizedVideo TRUE,</span><br>
<span style="font-family:"Courier New"">                distributedVideo FALSE</span><br>
<span style="font-family:"Courier New"">              }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          mcCapability </span><br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            centralizedConferenceMC FALSE,</span><br>
<span style="font-family:"Courier New"">            decentralizedConferenceMC FALSE</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          rtcpVideoControlCapability FALSE,</span><br>
<span style="font-family:"Courier New"">          mediaPacketizationCapability </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            h261aVideoPacketization FALSE</span><br>
<span style="font-family:"Courier New"">          },</span><br>
<span style="font-family:"Courier New"">          logicalChannelSwitchingCapability FALSE,</span><br>
<span style="font-family:"Courier New"">          t120DynamicPortCapability FALSE</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">      capabilityTable </span><br>
<span style="font-family:"Courier New"">      {</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 1,</span><br>
<span style="font-family:"Courier New"">          capability nonStandard : </span>
<br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              nonStandardIdentifier h221NonStandard :
</span><br>
<span style="font-family:"Courier New"">                {</span><br>
<span style="font-family:"Courier New"">                  t35CountryCode 181,</span><br>
<span style="font-family:"Courier New"">                  t35Extension 0,</span><br>
<span style="font-family:"Courier New"">                  manufacturerCode 18</span><br>
<span style="font-family:"Courier New"">                },</span><br>
<span style="font-family:"Courier New"">              data '010000001400000000000000C0EE86B6'H</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 2,</span><br>
<span style="font-family:"Courier New"">          capability genericControlCapability :
</span><br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              capabilityIdentifier standard : { 0 0 8 323 1 3 1 }</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 3,</span><br>
<span style="font-family:"Courier New"">          capability receiveAudioCapability : g711Ulaw64k : 30</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 4,</span><br>
<span style="font-family:"Courier New"">          capability receiveAudioCapability : g711Alaw64k : 30</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 5,</span><br>
<span style="font-family:"Courier New"">          capability receiveAndTransmitUserInputCapability : dtmf : NULL</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 6,</span><br>
<span style="font-family:"Courier New"">          capability receiveAndTransmitUserInputCapability : basicString : NULL</span><br>
<span style="font-family:"Courier New"">        },</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityTableEntryNumber 44,</span><br>
<span style="font-family:"Courier New"">          capability receiveAndTransmitUserInputCapability : hookflash : NULL</span><br>
<span style="font-family:"Courier New"">        }</span><br>
<span style="font-family:"Courier New"">      },</span><br>
<span style="font-family:"Courier New"">      capabilityDescriptors </span><br>
<span style="font-family:"Courier New"">      {</span><br>
<span style="font-family:"Courier New"">        {</span><br>
<span style="font-family:"Courier New"">          capabilityDescriptorNumber 0,</span><br>
<span style="font-family:"Courier New"">          simultaneousCapabilities </span>
<br>
<span style="font-family:"Courier New"">          {</span><br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              3,</span><br>
<span style="font-family:"Courier New"">              4</span><br>
<span style="font-family:"Courier New"">            },</span><br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              5,</span><br>
<span style="font-family:"Courier New"">              6</span><br>
<span style="font-family:"Courier New"">            },</span><br>
<span style="font-family:"Courier New"">            {</span><br>
<span style="font-family:"Courier New"">              44</span><br>
<span style="font-family:"Courier New"">            }</span><br>
<span style="font-family:"Courier New"">          }</span><br>
<span style="font-family:"Courier New"">        }</span><br>
<span style="font-family:"Courier New"">|*^*^*</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">What we can see now is a mismatch in supported capabilities: g729 versus g711.  Now, it is my understanding that during a dispute of capabilities, the Master gets to dictate the capabilities to use.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The next two messages in the above ladder diagram are both sides ACKing each other's TCS's.<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.212 |</span><br>
<span style="font-family:"Courier New"">H245ASN - TtPid=(5551) -Outgoing #80463 -value MultimediaSystemControlMessage ::= response : terminalCapabilitySetAck :
</span><br>
<span style="font-family:"Courier New"">    {</span><br>
<span style="font-family:"Courier New"">      sequenceNumber 1</span><br>
<span style="font-family:"Courier New"">    }</span><br>
<span style="font-family:"Courier New"">|*^*^*</span><br>
<span style="font-family:"Courier New"">05:37:29.213 |</span><br>
<span style="font-family:"Courier New"">H245ASN - TtPid=(5551) [0xb0e99b58 1444 bytes] -Incoming #103058 -value MultimediaSystemControlMessage ::= response : terminalCapabilitySetAck :
</span><br>
<span style="font-family:"Courier New"">    {</span><br>
<span style="font-family:"Courier New"">      sequenceNumber 1</span><br>
<span style="font-family:"Courier New"">    }</span><br>
<span style="font-family:"Courier New"">|*^*^*</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">However, in the CUCM traces, between the Outgoing TCS ACK and the Incoming TCS ACK, we see CUCM Media Resource Manager comparing codecs and regions, and deciding it needs to invoke a transcoder.  Even though
 MasterSlaveDetermination has not yet happen.<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.213 |DET-MediaManager-(22410)::preCheckCapabilities, region1=ICT-REG, region2=ICT-REG, Pty1 capCount=4 (Cap,ptime)= (15,60) (16,60) (11,60) (12,60), Pty2 capCount=2 (Cap,ptime)= (4,30) (2,30)|4,100,21,5551.2^X.X.X.13^Port
 57377</span><br>
<span style="font-family:"Courier New"">05:37:29.213 |RegionsServer::MatchCapabilities -- kbps=8, capACount=4, capBCount=2|*^*^*</span><br>
<span style="font-family:"Courier New"">05:37:29.213 |DET-MediaManager-(22410)::preCheckCapabilities, caps mismatch! Xcoder Reqd. kbps(8), filtered A[capCount=4 (Cap,ptime)= (15,60) (16,60) (11,60) (12,60)], B[capCount=0 (Cap,ptime)=] allowMTP=0 numXcoderRequired=1
 xcodingSide=2|4,100,21,5551.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">05:37:29.213 |DET-MediaManager-(22410)::prepareInitialConnectionList, Party1CapCount=4 Party2CapCount=2 XcoderRequired=1 xcodingSide=2 allowMTP=0|4,100,21,5551.2^X.X.X.13^Port 57377</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The timing in the logs, and unfortunately I do not have a PCAP to compare against, is such that the transcoder fails to be invoked due to a region misconfiguration between the ICT and the transcoder.  The classic
 mixup: "We need to transcode between g711 and g729, but the transcoder region to the g711 device is set for 8kbps."<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.213 |MediaResourceCdpc::getNextMTPDevice MtpDevice=XCODE1 Cepn=57d029f7-023b-2605-459d-af4afab55b6e devCap=0 resoureCount=1|4,100,21,5551.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">05:37:29.213 |MediaResourceCdpc(21468)::sendMtpAllocateRequestToDevice MtpResource=XCODE1 Cepn=57d029f7-023b-2605-459d-af4afab55b6e|4,100,21,5551.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">05:37:29.228 |MediaResourceCdpc(21468)::resource_rsvp_AllocateMtpResourceErr Device=XCODE1 deviceCapIntersec=0|4,100,21,5551.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">05:37:29.228 |MediaResourceCdpc(21468)::adjustDeviceTblXcoder - mCepn=57d029f7-023b-2605-459d-af4afab55b6e, allocateErrBitset=0x44, devCapIntersect=0x0, mandatoryCaps=0x0, resourceCount=1|4,100,21,5551.2^X.X.X.13^Port
 57377</span><br>
<span style="font-family:"Courier New"">05:37:29.228 |MediaResourceCdpc(21468)::adjustDeviceTblXcoder - Codec Mismatch|4,100,21,5551.2^X.X.X.13^Port 57377</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">So it's at this point in the logs that we see CUCM fail the call due to no media resources available.<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.233 |!!ERROR!! -MediaManager-(22410)::disconnOnResourceAllocationFailure, ERROR  disconnOnResourceAllocationFailure - fails to allocate MTP/XCoder,connCount=2|4,100,21,5551.2^X.X.X.13^Port
 57377</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">It's now at .236 that we see the .9 host send the H.245 endSession to the .13 host<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.235 |</span><br>
<span style="font-family:"Courier New"">H245ASN - TtPid=(5550) -Outgoing #80464 -value MultimediaSystemControlMessage ::= command : endSessionCommand : disconnect : NULL</span><br>
<span style="font-family:"Courier New"">|*^*^*</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">So that's why the call failed: .9 failed to invoke the media resource, and thus sent an endSession.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">What we don't see in the diagram above, is that in the .13 logs, it too was trying to invoke a transcoder based on the TCS it received: g729, because the endpoint: UCCX, is hard coded to g711.<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">22:37:29.114 |DET-MediaManager-(46351)::preCheckCapabilities, region1=ICT-REG, region2=UCCX-REG, Pty1 capCount=4 (Cap,ptime)= (15,60) (16,60) (11,60) (12,60), Pty2 capCount=2 (Cap,ptime)= (4,30) (2,30)|2,100,21,7815.2^X.X.X.13^Port
 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.114 |RegionsServer::MatchCapabilities -- kbps=64, capACount=4, capBCount=2|*^*^*</span><br>
<span style="font-family:"Courier New"">22:37:29.114 |DET-MediaManager-(46351)::preCheckCapabilities, caps mismatch! Xcoder Reqd. kbps(64), filtered A[capCount=4 (Cap,ptime)= (15,60) (16,60) (11,60) (12,60)], B[capCount=2 (Cap,ptime)= (4,30) (2,30)] allowMTP=0
 numXcoderRequired=1 </span><u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">However, it invoked the transcoder successfully, and since the transcoder is 64kbps to UCCX and 8kbps to the ICT, this is why we'll see another TCS sent from the .13 host with g729 as its capabilities.<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">22:37:29.115 |MediaResourceCdpc::getNextMTPDevice MtpDevice=XCODE2 Cepn=26c772aa-3d19-4289-7dce-1d48d19807d7 devCap=0 resoureCount=1|2,100,21,7815.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |MediaResourceCdpc(38981)::sendMtpAllocateRequestToDevice MtpResource=XCODE2 Cepn=26c772aa-3d19-4289-7dce-1d48d19807d7|2,100,21,7815.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |MediaTerminationPointControl(1)::waiting_AllocateMtpResourceReq - (capCount,region),A(4,ICT-REG),B(2,UCCX-REG), reqDevCap=0x0, reqMandatoryCaps=0x0, supDevCap=0x129, passthru=0, resourceCount=1|2,100,21,7815.2^X.X.X.13^Port
 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |MediaTerminationPointControl(1)::getResourcesAllocated -- DeviceName=XCODE2 Ci=42721675 ResourceCount=1|2,100,21,7815.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |MediaTerminationPointControl(1)::getResourcesAllocated -- Logging RegionA=ICT-REG Caps and MTP/XCoder Region=XIR-REG Caps|2,100,21,7815.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |MediaTerminationPointControl(1)::logCapabilitiesinTrace -- MTP/XCoder Device Caps = 6 4 2 16 11 12 257 259 261 |2,100,21,7815.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |MediaTerminationPointControl(1)::logCapabilitiesinTrace -- Device Caps = 15 16 11 12 |2,100,21,7815.2^X.X.X.13^Port 57377</span><br>
<span style="font-family:"Courier New"">22:37:29.115 |RegionsServer::MatchCapabilities -- kbps=8, capACount=4, capBCount=9|*^*^*</span><u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Here is the TCS and MasterSalveDetermination from the .13 host that you see in the diagram above, but that's just too late, looks like this:<u></u><u></u></p>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span style="font-family:"Courier New"">05:37:29.426 |<br>
H245ASN - TtPid=(5551) [0xb0edd038 3252 bytes] -Incoming #103060 -value MultimediaSystemControlMessage ::= request : terminalCapabilitySet :
<br>
    {<br>
      sequenceNumber 2,<br>
      protocolIdentifier { 0 0 8 245 0 10 },<br>
      multiplexCapability h2250Capability : <br>
        {<br>
          maximumAudioDelayJitter 60,<br>
          receiveMultipointCapability <br>
          {<br>
            multicastCapability FALSE,<br>
            multiUniCastConference FALSE,<br>
            mediaDistributionCapability <br>
            {<br>
              {<br>
                centralizedControl FALSE,<br>
                distributedControl FALSE,<br>
                centralizedAudio FALSE,<br>
                distributedAudio FALSE,<br>
                centralizedVideo FALSE,<br>
                distributedVideo FALSE<br>
              }<br>
            }<br>
          },<br>
          transmitMultipointCapability <br>
          {<br>
            multicastCapability FALSE,<br>
            multiUniCastConference FALSE,<br>
            mediaDistributionCapability <br>
            {<br>
              {<br>
                centralizedControl FALSE,<br>
                distributedControl FALSE,<br>
                centralizedAudio FALSE,<br>
                distributedAudio FALSE,<br>
                centralizedVideo FALSE,<br>
                distributedVideo FALSE<br>
              }<br>
            }<br>
          },<br>
          receiveAndTransmitMultipointCapability <br>
          {<br>
            multicastCapability FALSE,<br>
            multiUniCastConference FALSE,<br>
            mediaDistributionCapability <br>
            {<br>
              {<br>
                centralizedControl FALSE,<br>
                distributedControl FALSE,<br>
                centralizedAudio FALSE,<br>
                distributedAudio FALSE,<br>
                centralizedVideo TRUE,<br>
                distributedVideo FALSE<br>
              }<br>
            }<br>
          },<br>
          mcCapability <br>
          {<br>
            centralizedConferenceMC FALSE,<br>
            decentralizedConferenceMC FALSE<br>
          },<br>
          rtcpVideoControlCapability FALSE,<br>
          mediaPacketizationCapability <br>
          {<br>
            h261aVideoPacketization FALSE<br>
          },<br>
          logicalChannelSwitchingCapability FALSE,<br>
          t120DynamicPortCapability FALSE<br>
        },<br>
      capabilityTable <br>
      {<br>
        {<br>
          capabilityTableEntryNumber 1,<br>
          capability nonStandard : <br>
            {<br>
              nonStandardIdentifier h221NonStandard : <br>
                {<br>
                  t35CountryCode 181,<br>
                  t35Extension 0,<br>
                  manufacturerCode 18<br>
                },<br>
              data '01000000140000001000E0B7C0EE86B6'H<br>
            }<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 2,<br>
          capability genericControlCapability : <br>
            {<br>
              capabilityIdentifier standard : { 0 0 8 323 1 3 1 }<br>
            }<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 3,<br>
          capability receiveAudioCapability : g729AnnexAwAnnexB : 6<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 4,<br>
          capability receiveAudioCapability : g729 : 6<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 5,<br>
          capability receiveAudioCapability : g729AnnexA : 6<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 6,<br>
          capability receiveAndTransmitUserInputCapability : dtmf : NULL<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 7,<br>
          capability receiveAndTransmitUserInputCapability : basicString : NULL<br>
        },<br>
        {<br>
          capabilityTableEntryNumber 44,<br>
          capability receiveAndTransmitUserInputCapability : hookflash : NULL<br>
        }<br>
      },<br>
      capabilityDescriptors <br>
      {<br>
        {<br>
          capabilityDescriptorNumber 0,<br>
          simultaneousCapabilities <br>
          {<br>
            {<br>
              3,<br>
              4,<br>
              5<br>
|*^*^*<br>
05:37:29.427 |</span><br>
<span style="font-family:"Courier New"">H245ASN - TtPid=(5551) [0xb0e99b58 1444 bytes] -Incoming #103061 -value MultimediaSystemControlMessage ::= request : masterSlaveDetermination :
</span><br>
<span style="font-family:"Courier New"">    {</span><br>
<span style="font-family:"Courier New"">      terminalType 60,</span><br>
<span style="font-family:"Courier New"">      statusDeterminationNumber 7594376</span><br>
<span style="font-family:"Courier New"">    }</span><br>
<span style="font-family:"Courier New"">|*^*^*</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Which from my experience, would tell me that the .13 host would have won the MasterSlaveDetermination, making the codec of choice be g711 and forcing the .9 host to resolve the mismatch with a transcoder.  However,
 each side tried to fix the codec mismatch, all before MasterSlaveDetermination even happened.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Did each side jump the gun, and begin invoking the transcoders too early?  Are the logs out of sequence from what actually happened on the wire?  Why would both sides attempt to resolve the codec mismatch?<u></u><u></u></p>
</div>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">For comparison, here is the same message flow from the perspective of the .13 host logs.<u></u><u></u></p>
</div>
</div>
<div style="margin-left:30.0pt">
<p class="MsoNormal"><span><image002.png></span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">And in summary, I know what is needed to fix this: fix the region relationship from the transcoder to the g711 device so that it's 64kbps.<br>
<br>
I would like to understand what determines which side sends and subsequently wins MasterSlaveDetermination on ICTs?  I know it's based on terminalType value and which is higher, and then a tie breaker is the statusDeterminationNumber value.  Is this a random
 election?  Is it controllable?  I.e., Can I adjust the terminalType such that it forces Master or Slave by setting a very High or Low value respectively?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">If you've made it this far in my email, thank you!  I realize I have questions littered throughout.  It's just the casual tone of my email.  If the email doesn't flow very eloquently, I do apologize.  It's long and I was going back and
 forth making edits to different sections.<br>
<br>
Please let me know if you need more details.  Thank you for your time.<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br>
<span style="color:white">itevomcid</span> <u></u><u></u></p>
</div>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
cisco-voip mailing list<br>
<a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br>
<a href="https://puck.nether.net/mailman/listinfo/cisco-voip" target="_blank">https://puck.nether.net/mailman/listinfo/cisco-voip</a><br>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
cisco-voip mailing list<br>
<a href="mailto:cisco-voip@puck.nether.net">cisco-voip@puck.nether.net</a><br>
https://puck.nether.net/mailman/listinfo/cisco-voip<br>
</div>
<br>
</body>
</html>