[asterisk-dev] [Code Review]: Patch to make app_system check if a command failed to execute due to permission denied.

Matt Jordan reviewboard at asterisk.org
Mon Jun 18 13:22:22 CDT 2012



> On June 18, 2012, 11:03 a.m., jrose wrote:
> > Hey, I was talking about this issue with Matt Jordan a while ago and he came up with the following:
> > 
> > Since we can't really guarantee under any particular circumstance what a given return code will mean for res here, it'd be more appropriate to leave the code here as is, but set a channel variable based on the res value to allow the author of the dialplan to react to it since they should know what /bin/sh will be (and what the return codes would map to).
> 
> Tilghman Lesher wrote:
>     While that's a reasonable approach in terms of a method by which to get a result, our approach has generally been that for things which return a value, we use a dialplan function, instead.  So, perhaps add a SYSTEM() dialplan function, which returns the result code.
> 
> jrose wrote:
>     Well, that's true, but this is really more of a status thing than an actual return from the System command being ran... and doing it this way isn't unprecedented (app_queue for instance sets QUEUESTATUS which indicates the the status of the queue at exit).  This does remind me though that there is a SHELL dialplan function that works similarly and might also need to be looked at when making these changes.

Hey now, I'm pretty sure I didn't say "channel variable" :-)

I think I said we should expose the return code somehow to the user, and that it could be in the dialplan.  Using a function that returns a result code is a perfectly fine implementation of that.



More information about the asterisk-dev mailing list