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


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


<p style="color: grey;"><i>Updated March 19, 2013, 8:33 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;">Add unit test.
Take advantage of topic pools and the fact that Stasis unsubscription functions return NULL.
Fix device state publishing not setting the cachability flag.
Move device state aggregator subscription to the cache topic to ensure that the cache is populated properly before the aggregator tries to access it.
</pre>
  </td>
 </tr>
</table>


<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;">In the move from Asterisk&#39;s event system to Stasis, this makes distributed device state aggregation always-on, removes unnecessary task processors where possible, and collapses aggregate and non-aggregate states into a single cache for ease of retrieval. This also removes an intermediary step in device state aggregation.</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;">This change was run against the queue integration tests, the generic_ccss test, the device_state_notification test, and the non_digium_state_change test with no ill effects.</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-21101">ASTERISK-21101</a>


</div>


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

 <li>trunk/apps/app_queue.c <span style="color: grey">(383337)</span></li>

 <li>trunk/include/asterisk/devicestate.h <span style="color: grey">(383337)</span></li>

 <li>trunk/include/asterisk/xmpp.h <span style="color: grey">(383337)</span></li>

 <li>trunk/main/asterisk.c <span style="color: grey">(383337)</span></li>

 <li>trunk/main/ccss.c <span style="color: grey">(383337)</span></li>

 <li>trunk/main/devicestate.c <span style="color: grey">(383337)</span></li>

 <li>trunk/main/pbx.c <span style="color: grey">(383337)</span></li>

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

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

 <li>trunk/tests/test_devicestate.c <span style="color: grey">(383337)</span></li>

</ul>

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




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




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