<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/4123/">https://reviewboard.asterisk.org/r/4123/</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.</div>
<div>By rmudgett.</div>


<p style="color: grey;"><i>Updated Nov. 5, 2014, 1:01 p.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">Addressed mmichelson's review feedback.</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-24257">ASTERISK-24257</a>, 

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


</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;">This patch can be broken into two logical changes.  The first is to allow the DTMF feature hooks to collect digits while passing frames from the bridge (ASTERISK-24447).  The secod is to allow an agent pool agent to interrupt the alerting playback file with DTMF (ASTERISK-24257).  The agent interrupting the alerting playback builds on the ASTERISK-24447 part because it knows what digit interrupted the playback and needs to be able to pass that digit to the DTMF hook digit collection code.

* Made collecting DTMF digits for the DTMF feature hooks not block receiving frames from the bridge. (Changes in bridge_channel.c and bridge_channel.h)

* Made collecting DTMF digits possible by other bridge hooks if there is a need.

* Made agent able to interrupt the alerting beep playback with DTMF.  Any digit can interrupt if the call does not need to be acknowledged.  Only the first digit of the acknowledgement can interrupt if the call needs to be acknowledged. (Changes in app_agent_pool.c)</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;">With the patch
1) Agent can interrupt the beep playback with any digit if an acknowledgement is not required.
2) Agent can interrupt the beep playback with the first digit of the configured acknowledgement.  Other digits are ignored.  The acknowledgement could be one or more digits.
3) Agent can still wait for the playback to end.

4) Collecting DTMF digits for the DTMF feature hooks does not block receiving frames from the bridge.  Tested by using ControlPlayback application through a local channel chain that had other DTMF feature hooks starting with '*'.  When I pressed the '*', the rewinding of the playback was delayed by the digit collection interdigit timeout time but the audio was not discarded during the interdigit timeout time.</pre>
  </td>
 </tr>
</table>


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

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

 <li>/branches/12/include/asterisk/bridge_channel.h <span style="color: grey">(427333)</span></li>

 <li>/branches/12/apps/app_agent_pool.c <span style="color: grey">(427333)</span></li>

</ul>

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







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




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