<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/1668/">https://reviewboard.asterisk.org/r/1668/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">There is a problem with this patch.  In an initial INVITE consisting only of image media, there may not be a channel associated with the dialog when the SDP is processed.  This code change causes this scenario to fail, as we set the file descriptor associated with UDPTL for the channel when UDPTL is initialized, and no channel exists.

Its still fine that initialize_udptl attempts to do this, but sip_new will also need to do this for those cases where the dialog is created before the channel.</pre>
 <br />







<p>- Matt</p>


<br />
<p>On January 16th, 2012, 11:04 a.m., Matt Jordan wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers, Joshua Colp, Mark Michelson, Terry Wilson, and schmidts.</div>
<div>By Matt Jordan.</div>


<p style="color: grey;"><i>Updated Jan. 16, 2012, 11:04 a.m.</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Currently, the udptl object is allocated in one of three places:
1) create_addr_from_peer
2) sip_alloc
3) handle_request_invite

This typically results in any dialog associated with a peer that supports T.38 having a udptl object (and its associated UDP ports, system resources, etc.) assigned to it.  This includes non-INVITE requests.

This patch moves the initialization of a dialog&#39;s udptl object to either (a) when the media is negotiated for that dialog, or (b) if a control frame is received in chan_sip indicating that the dialog needs to support T.38.  This should result in only those dialogs that are explicitly involved with sending / receiving image media having a udptl object assigned to them.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Patch passes the udptl tests in the Asterisk Test Suite.  

[update] - ported the patch to Asterisk 10 and tested with the Test Suite&#39;s gateway tests.  All tests passed.

However, given the complexity and number of ways in which media can be negotiated, additional testing would be appreciated from the open source community.</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://issues.asterisk.org/jira/browse/ASTERISK-16698">ASTERISK-16698</a>, 

 <a href="https://issues.asterisk.org/jira/browse/ASTERISK-16794">ASTERISK-16794</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/branches/1.8/channels/chan_sip.c <span style="color: grey">(350786)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/1668/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>