<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/1047/">https://reviewboard.asterisk.org/r/1047/</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;">I&#39;m concerned about the usage of the NULL channel technology here and its impact on dialplan processing after a transfer has occurred.  For example, consider post-call processing done in the &#39;h&#39; extension of the dialplan.  If the channel is no longer a SIP channel (or whatever type it was originally), there are some things that will no longer work.  As an example, items retrieved using the CHANNEL() function that depend on the channel type will no longer work.

Unfortunately, I don&#39;t really have a suggestion for how to deal with this.  There is just some very fundamental breakage between the callback mechanisms here and channels tied to a physical resource that have not been released.  I&#39;ll keep thinking about it and let you know if I can think of something better.  We could potentially just put in a hack that disables the callback on DAHDI channels, but that doesn&#39;t feel too great, either.</pre>
 <br />







<p>- Russell</p>


<br />
<p>On December 3rd, 2010, 7 p.m., rmudgett wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/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 and Russell Bryant.</div>
<div>By rmudgett.</div>


<p style="color: grey;"><i>Updated 2010-12-03 19:00:55</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;">Issue 17999
1) A calls B. B answers.
2) B using DTMF dial *2 (code in features.conf for attended transfer).
3) A hears MOH. B dial number C
4) C ringing. A hears MOH.
5) B hangup. A still hears MOH. C ringing.
5) A hangup. C still ringing until &quot;atxfernoanswertimeout&quot; expires.

Problem: When A and B hangup C is still ringing.

Issue 18395
SIP call limit of B is 1
1. A call B, B answered
2. B *2(atxfer) call C, C ringing (no answer)
3. B hangup
4. C cancel call
5. Call to B fails because B has reached its call limit.

Because B reached its call limit, it cannot do anything until the transfer it started completes.

Issue 17273
Same scenario as issue 18395 but party B is an FXS port.
Party B cannot do anything until the transfer it started completes.  If B goes back off hook before C answers, B hears ringback instead of the expected dialtone.</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;">Party A - transferee
Party B - transferer
Party C - target of transfer

A and B are connected (It does not matter who called whom for these tests.)
B requests attended transfer feature by dialing *2 feature.

B fails to dial party C (Check A &amp; B audio)
B dials wrong number (Check A &amp; B audio)
B cancels call to party C with &#39;*&#39; (Check A &amp; B audio)
C is the parking extension (Outside the scope of this patch)
C does not answer before timeout (Check A &amp; B audio)
C is busy (Check A &amp; B audio)
A hangs up before C answers (Check if A is completely released)
        (If A is an analog port it is dead until the user
         configured xferfailsound completes playing.)
        (Test case is issue 17273 and issue 18395 related)
C answers before B hangup (Attended transfer)
        A still online
                C hangs up first (Check A &amp; B audio)
                B hangs up first (Check A &amp; C audio)
        A hangs up (Check if A is completely released)
                (If A is an analog port it is dead until B or C hangs up)
                (Test case is issue 17273 and issue 18395 related)
                C hangs up first (Check B audio)
                B hangs up first (Check C audio)
B hangs up before C answers (Blonde transfer) (Check if B is completely released)
        (Test case is issue 17273 and issue 18395)
        A hangs up (C should quit ringing immediately)
                (Test case is issue 17999)
        C answers (Check A &amp; C audio)
        C does not answer before timeout
                A hangs up when B redialed (B should quit ringing immediately)
                        (Test case is issue 17999 related)
                B answers recall (Check A &amp; B audio)
                A hangs up when sleeping before redialing C (A should be released immediately)
                        (Test case is issue 17999 related)
                A hangs up when C redialed (C should quit ringing immediately)
                        (Test case is issue 17999 related)
                C answers recall (Check A &amp; C audio)
                Noone answers (Check A audio)

Tests passed with exceptions noted.</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/view.php?id=17273">17273</a>, 

 <a href="https://issues.asterisk.org/view.php?id=17999">17999</a>, 

 <a href="https://issues.asterisk.org/view.php?id=18395">18395</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.6.2/main/features.c <span style="color: grey">(297577)</span></li>

</ul>

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




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








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