[asterisk-dev] [Code Review] 3061: External MWI core support with AMI using it.

rmudgett reviewboard at asterisk.org
Thu Dec 19 20:49:32 CST 2013



> On Dec. 10, 2013, 2:20 p.m., Joshua Colp wrote:
> > /trunk/res/res_sorcery_astdb.c, lines 228-236
> > <https://reviewboard.asterisk.org/r/3061/diff/1/?file=49246#file49246line228>
> >
> >     I'll explain why I disagree with this change.
> >     
> >     While you gain full regex functionality it comes at a HUGE cost. Reading in an entire family creates a list of all entries, including the contents. For every retrieve. In something like the PJSIP registrar this can grow to be quite big - and due to the way the registrar works you can retrieve multiple times while processing a REGISTER.
> >     
> >     This all adds up.
> >     
> >     Fundamentally this is because this is going through an abstraction layer (astdb) instead of directly to the database, but despite that we should keep performance and penalties in mind.

Reverted.  Just a behavioral difference I found in the code when working on the regex code.  The change *only* affects the use of the '^' anchor character.  The anchor character is not a big loss anyway.

I just left it in the second diff because I didn't want to get rid of it right away.


- rmudgett


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3061/#review10351
-----------------------------------------------------------


On Dec. 19, 2013, 6:49 p.m., rmudgett wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3061/
> -----------------------------------------------------------
> 
> (Updated Dec. 19, 2013, 6:49 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> This patch can be broken into three main components:
> 
> 1) The core resource support for external MWI providers are in the following files:
> apps/app_voicemail.c,
> 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 <mailbox>",
> "mwi external list all",
> "mwi external list like <regex>",
> "mwi external show mailbox <mailbox>", and
> "mwi external update mailbox <mailbox> [<new> [<old>]]".
> 
> 2) 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.
> 
> 3) 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".
> 
> 
> Diffs
> -----
> 
>   /trunk/res/res_sorcery_astdb.c 404386 
>   /trunk/res/res_mwi_external_ami.c PRE-CREATION 
>   /trunk/res/res_mwi_external.exports.in PRE-CREATION 
>   /trunk/res/res_mwi_external.c PRE-CREATION 
>   /trunk/include/asterisk/res_mwi_external.h PRE-CREATION 
>   /trunk/configs/sorcery.conf.sample 404386 
>   /trunk/apps/app_voicemail.c 404386 
> 
> Diff: https://reviewboard.asterisk.org/r/3061/diff/
> 
> 
> Testing
> -------
> 
> Used the CLI "database show" along with the new CLI commands and AMI actions to test adding/updating, getting, and deleting external MWI counts.
> 
> 
> Thanks,
> 
> rmudgett
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20131220/16ce4e4a/attachment-0001.html>


More information about the asterisk-dev mailing list