[asterisk-bugs] [JIRA] (ASTERISK-21390) New applications for app_stack.c: GosubEntry and StackPopGoto

Corey Farrell (JIRA) noreply at issues.asterisk.org
Wed Jul 24 17:11:03 CDT 2013


    [ https://issues.asterisk.org/jira/browse/ASTERISK-21390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=208199#comment-208199 ] 

Corey Farrell commented on ASTERISK-21390:
------------------------------------------

GosubEntry was created to make extensions.conf and verbose logs easier to read.  It is also to remove references to $\{ARG1\}, $\{ARG2\}, etc from Gosub's.  For the same reason I use priority 'n', it's better to not deal with argument indexes.

StackPopGoto is not an arbitrary combination of applications.  It was created to allow use of a local variable for the Goto destination.  Gosub scripts should not Set non-local channel variables unless doing so is a goal of the script.  I understand your concern about unending list of new applications.  Maybe StackPopExec would be better?  Cover all possible uses for out of scope local variables.
                
> New applications for app_stack.c: GosubEntry and StackPopGoto
> -------------------------------------------------------------
>
>                 Key: ASTERISK-21390
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-21390
>             Project: Asterisk
>          Issue Type: New Feature
>      Security Level: None
>          Components: Applications/app_stack
>    Affects Versions: SVN
>            Reporter: Corey Farrell
>            Severity: Minor
>         Attachments: app_stack-new_apps.patch
>
>
> I've created two applications for use with Gosub scripts.
> GosubEntry
> Accepts a list of variable names to be initialized as local variable with values of ${ARGn}
> This application is mainly to reduce the verbosity of Gosub's created by a GUI.  Instead of setting local variables for each argument separately it allows all to be set by a single priority.
> {code}
> exten => s,1,Set(LOCAL(NUMBER)=${ARG1})
> same => n,Set(LOCAL(STATUS)=${ARG2})
> same => n,Set(LOCAL(RESULTS)=${ARG3})
> ; Can be rewritten:
> exten => s,1,GosubEntry(NUMBER,STATUS,RESULTS)
> {code}
> Verbose >= 6 can be used to have GosubEntry produce output for each variable set.
> StackPopGoto - runs StackPop followed by Goto.  The combined command is needed for leak-free Gosub's where the final Goto destination is in a local variable.
> I feel that the code for these are ready, the xmldocs need help.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list