<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/3106/">https://reviewboard.asterisk.org/r/3106/</a>
     </td>
    </tr>
   </table>
   <br />



 <p>Ship it!</p>



 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think this unconditional behavior is fine since there is precedent in other places in the code to unconditionally queue unhold frames. </pre>
 <br />









<p>- Mark Michelson</p>


<br />
<p>On January 6th, 2014, 10:15 p.m. UTC, Jonathan Rose wrote:</p>








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

<div>Review request for Asterisk Developers, Joshua Colp and Mark Michelson.</div>
<div>By Jonathan Rose.</div>


<p style="color: grey;"><i>Updated Jan. 6, 2014, 10:15 p.m.</i></p>









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


<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;">Some devices apparently perform unhold by simply issuing a reinvite on the dialog without an SDP. This patch adds that functionality to our PJSIP session control.
It might be worthwhile to add some method of not queing unhold if the call isn't already on hold in the first place, but my testing so far hasn't revealed it as being necessary.</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;">Created a phone_B.xml similar to the ones used for this case in review 3105 (phone_B_unhold_sans_sdp.xml). This would hold the call then unhold the call by sending a reinvite without an SDP

pjsip endpoint:

[sippbert]
type=aor
contact=sip:sippbert@127.0.0.3:5065

[sippbert]
type=endpoint
aors=sippbert
context=default
disallow=all
allow=ulaw
direct_media=no


With the patch in place, this held and unheld the call as it should have.  Without the patch, the hold would work (naturally since it's just a normal hold), but the invite without the SDP would not unhold the call.

It's worth noting that if an unhold in this fashion is issued while the call is already active/not on hold will still produce unhold events. I'm unsure if this is a problem that needs to be addressed. Testing hasn't revealed this being a problem yet, but I don't believe many test scenarios exist which use reinvites without SDP.</pre>
  </td>
 </tr>
</table>


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

 <li>/trunk/res/res_pjsip_session.c <span style="color: grey">(404854)</span></li>

</ul>

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







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








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