<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/3061/">https://reviewboard.asterisk.org/r/3061/</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;">Richard asked me to take a look at this and limit my review to Part 1 from the description.
In general, the change to use a struct instead of individual function pointers when registering voicemail functions is a good thing. However, in light of the context-related criticisms, the individual function pointers that expect a user and context should be altered to expect a single mailbox string instead.</pre>
<br />
<p>- Mark Michelson</p>
<br />
<p>On December 9th, 2013, 9:51 p.m. UTC, rmudgett wrote:</p>
<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 Dec. 9, 2013, 9:51 p.m.</i></p>
<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 four main components:
1) Voicemail callback registration/unregistration function improvements are in the following files:
include/asterisk/doxyref.h,
include/asterisk/app.h,
main/app.c, and
apps/app_voicemail.c.
* The voicemail registration/unregistration functions now take a struct of callbacks instead of a lengthy parameter list of callbacks.
* The voicemail registration/unregistration functions now prevent a competing module from interfering with an already registered callback supplying module.
2) The core resource support for external MWI providers are in the following files:
include/asterisk/res_mwi_external.h,
configs/sorcery.conf.sample,
res/res_mwi_external.c, and
res/res_mwi_external.exports.in.
* The core external MWI resource provides for MWI message counts persistence using sorcery. With sorcery, the user is able to configure which sorcery wizzard backend to use if the default astdb is not desired.
* The core external MWI resoruce provides some CLI commands to manually manage the MWI counts if needed.
The new CLI commands are:
"mwi external delete all",
"mwi external delete like <regex>",
"mwi external delete mailbox <box[@[context]]>",
"mwi external list all",
"mwi external list like <regex>",
"mwi external show mailbox <box[@[context]]>", and
"mwi external update mailbox <box[@[context]]>".
3) The AMI component of external MWI is in:
res/res_mwi_external_ami.c
* The external MWI AMI interface provides a thin wrapper around the core external MWI resource.
The resource adds the following AMI actions:
MWIExternalGet,
MWIExternalDelete, and
MWIExternalUpdate.
4) A consistency fix to sorcery astdb regex record retrieval is in:
res/res_sorcery_astdb.c
* The AstDB wizzard is inconsistent with the other sorcery wizzards with its regex record selection. Any pattern that uses the '^' regex character to anchor the pattern to the beginning of the key *must* be a simple prefix. Any wildcard matching used with the '^' anchor will fail. As a result, a regex of "^.*@context$" will not return anything even if there are mailboxes in "context".</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;">Used the CLI "database show" along with the new CLI commands and AMI actions to test adding/updating, getting, and deleting external MWI counts.</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>/trunk/res/res_sorcery_astdb.c <span style="color: grey">(403574)</span></li>
<li>/trunk/res/res_mwi_external_ami.c <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/res/res_mwi_external.exports.in <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/res/res_mwi_external.c <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/main/app.c <span style="color: grey">(403574)</span></li>
<li>/trunk/include/asterisk/res_mwi_external.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/include/asterisk/doxyref.h <span style="color: grey">(403574)</span></li>
<li>/trunk/include/asterisk/app.h <span style="color: grey">(403574)</span></li>
<li>/trunk/configs/sorcery.conf.sample <span style="color: grey">(403574)</span></li>
<li>/trunk/apps/app_voicemail.c <span style="color: grey">(403574)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/3061/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>