<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/2532/">https://reviewboard.asterisk.org/r/2532/</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.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By Matt Jordan.</div>
<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-21462">ASTERISK-21462</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 refactors a number of AMI events over to Stasis-Core. This includes:
* ChanSpyStart/Stop
* MonitorStart/Stop
* MusicOnHoldStart/Stop
* FullyBooted/Reload
* All VoiceMail/MWI related events
Some infrastructure changes were also made in order to support the new events. This included:
* A new generic AMI topic and message type. Generic AMI messages have a JSON blob that conforms to the following:
{ "type": s, "class_type": s, "event": o}
where type is the AMI event type; class_type is the AMI class authorization; event is a sequence of key/value pairs that will be directly outputted to AMI.
* MWI stasis information was renamed to better reflect the naming conventions used
* MWI objects can now reference a channel snapshot. Often, an MWI chance occurs because a channel modified the state of a mailbox, and having direct access to a snapshot of the channel at that moment in time is important.
In general, this patch makes a number of trade-offs between what AMI has historically output and what makes the most sense for Stasis-Core to provide. A good example of this are the number of message types defined for the various media/channel related events, as well as what is published to the generic manager topic versus the already defined system topic. The approach taken here was to push information that only AMI consumes to AMI, and if future consumers want that information, to refactor those messages to another topic at that time.</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>/team/mjordan/ami-refactoring/main/manager_mwi.c <span style="color: grey">(388381)</span></li>
<li>/trunk/CHANGES <span style="color: grey">(388522)</span></li>
<li>/trunk/apps/app_chanspy.c <span style="color: grey">(388522)</span></li>
<li>/trunk/apps/app_fax.c <span style="color: grey">(388522)</span></li>
<li>/trunk/apps/app_minivm.c <span style="color: grey">(388522)</span></li>
<li>/trunk/apps/app_voicemail.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/chan_dahdi.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/chan_iax2.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/chan_mgcp.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/chan_sip.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/chan_skinny.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/chan_unistim.c <span style="color: grey">(388522)</span></li>
<li>/trunk/channels/sig_pri.c <span style="color: grey">(388522)</span></li>
<li>/trunk/include/asterisk/_private.h <span style="color: grey">(388522)</span></li>
<li>/trunk/include/asterisk/app.h <span style="color: grey">(388522)</span></li>
<li>/trunk/include/asterisk/json.h <span style="color: grey">(388522)</span></li>
<li>/trunk/include/asterisk/manager.h <span style="color: grey">(388522)</span></li>
<li>/trunk/include/asterisk/stasis_channels.h <span style="color: grey">(388522)</span></li>
<li>/trunk/main/app.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/asterisk.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/cdr.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/cli.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/dnsmgr.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/enum.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/json.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/loader.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/manager.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/manager_channels.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/pbx.c <span style="color: grey">(388522)</span></li>
<li>/trunk/main/stasis_channels.c <span style="color: grey">(388522)</span></li>
<li>/trunk/pbx/pbx_dundi.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_config_odbc.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_fax.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_jabber.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_monitor.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_musiconhold.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_sip_mwi.c <span style="color: grey">(388522)</span></li>
<li>/trunk/res/res_xmpp.c <span style="color: grey">(388522)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/2532/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>