[asterisk-dev] [Code Review] 3650: pbx_config: Add manager command equivalents to 'dialplan add extension' and 'dialplan remove extension' CLI commands

Mark Michelson reviewboard at asterisk.org
Thu Jun 26 18:18:19 CDT 2014


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



/trunk/pbx/pbx_config.c
<https://reviewboard.asterisk.org/r/3650/#comment22565>

    I recommend use of a <literal> tag instead of the single quotes around the word hint.



/trunk/pbx/pbx_config.c
<https://reviewboard.asterisk.org/r/3650/#comment22566>

    The two error messages here are more-or-less the same, and for good reason. The problem in both cases is that the user gave an invalid priority number.
    
    You could combine these two sections into:
    
    } else if (sscanf(priority, "%30d", &ipriority != 1) || ipriority <= 0) {
        /* Send error message and return 0 */
    }
    
    The other option is to keep the code separated but give more specific error messages: One indicating a non-numeric priority was specified, and one indicating that a non-positive (if that's the correct word) priority was specified.
    
    I'm cool with either change.



/trunk/pbx/pbx_config.c
<https://reviewboard.asterisk.org/r/3650/#comment22567>

    I don't understand the comment about not substituting S_OR here. I would suspect that
    
    S_OR(cidmatch, ipriority ? "" : NULL)
    
    would do the same thing.



/trunk/pbx/pbx_config.c
<https://reviewboard.asterisk.org/r/3650/#comment22568>

    Make sure the priority evaluates to a positive value here.



/trunk/pbx/pbx_config.c
<https://reviewboard.asterisk.org/r/3650/#comment22569>

    Since you're already finding or creating an ast_context structure here. You may as well use the non-NULL return and call ast_add_extension2() instead of ast_add_extension(). That will save an extra hashtab lookup of the context.


- Mark Michelson


On June 26, 2014, 9:12 p.m., Jonathan Rose wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3650/
> -----------------------------------------------------------
> 
> (Updated June 26, 2014, 9:12 p.m.)
> 
> 
> Review request for Asterisk Developers, Matt Jordan and Mark Michelson.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> Adds 'DialplanAddExtension' and 'DialplanRemoveExtension' manager commands that work in mostly the same way as their CLI command equivalents. The following header arguments are used for each:
> 
> Action: DialplanAddExtension
> Context - which context should be used
> Extension - name of the extension being created, if '/' is included, the portion after the '/' is a CID match for that extension.
> Priority - priority being added
> Application - name of the application to be used at this priority
> ApplicationData - not required (if not included results in no args), forms the arguments to the application
> Replace - not required (if not included, same as 'no'). If set to a truth value, replace existing extensions/priorities rather than failing if one exists where we are adding already.
> 
> Action: DialplanRemoveExtension
> Context - which context is being removed from
> Extension - Which extension is being removed or having a priority removed from, if '/' is included, the portion after the '/' is a CID match for that extension.
> Priority - not required, if included then just a single priority is removed from the extension instead of the whole extension.
> 
> A change to the pbx extension adding code was necessary in order for ast_add_extension to report an error when attempting to add an extension without replacing it when it already exists.
> The particular section in question previously had some developer comments questioning why the return values were what they were in the first place. I didn't observe any problematic behavior occuring as a result of the change, but it is in pbx.c, so I guess it could end up being a bit of a minefield.
> 
> 
> Diffs
> -----
> 
>   /trunk/pbx/pbx_config.c 416234 
>   /trunk/main/pbx.c 416234 
>   /trunk/CHANGES 416234 
> 
> Diff: https://reviewboard.asterisk.org/r/3650/diff/
> 
> 
> Testing
> -------
> 
> Tested add extension with/without appdata
> Tested add extension with/without '/' in extension and made sure the rest of the field was used as a CID value and that it worked the same as the CLI command equivalent
> Tested remove extension with/without priority
> Tested remove extension with/without '/' in extension and made sure that if CID was included that it deleted the CID including extension.
> 
> 
> Thanks,
> 
> Jonathan Rose
> 
>

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


More information about the asterisk-dev mailing list