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




<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 and opticron.</div>
<div>By Mark Michelson.</div>










<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;">Testing revealed a regression that occurred when performing an attended transfer to a Stasis application. StasisEnd events were not being seen for the channels involved in the masquerade that occurs in this situation.

In the test, a channel not in a is attended transferred into a Stasis application. When performing an attended transfer into an application, a masquerade is required. The transferee channel takes the place of the channel that previously was in the Stasis application. The masquerade operation calls into Stasis, stating that a channel in Stasis is being replaced by a channel that was previously not in Stasis. The expected outcome is that the channel that previously was not in Stasis will have all its events sent to the Stasis application. The problem is that the masquerade operation, while updating the internals of the involved channels, never actually updates the Stasis channel topics on the involved channels. The result is that forwards from an incorrect channel topic are going to the interested Stasis application, which don't match up with what the Stasis app thinks it is interested in. By updating the topic on the channel prior to calling masquerade fixup/breakdown callbacks, the forwards work as expected and StasisEnd messages reach the application as expected.</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;">Re-ran the attended transfer test that had been failing and found that it worked consistently.</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>/branches/12/main/channel_internal_api.c <span style="color: grey">(428116)</span></li>

 <li>/branches/12/main/channel.c <span style="color: grey">(428116)</span></li>

</ul>

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







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




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