[asterisk-dev] Named lists: app submission
Donny Kavanagh
donnyk at gmail.com
Tue Aug 14 18:32:34 CDT 2007
JT,
Ideally, this should be a function rather then an application.
Secondly, you should have your developer look at the ast_datastore
struct, as well as the ast_channel_datastore_* group of functions.
When you register a datastore you provide a hook such that when a
channel is destroyed asterisk will call your destroy function, thus
removing the possibility of any leaks.
The source code for func_odbc is a fantastic example of this.
Donny
On 8/14/07, John Todd <jtodd at loligo.com> wrote:
>
> My company has built app_list.c, which creates named arrays. It's
> not the prettiest app in the world, but it does what we need it to
> do. It's biggest fault right now is that it won't auto-destroy the
> lists when the channel exits, so anyone wanting to build a flag for
> that would be welcome to submit to me any patches.
>
> Since the bugtracker is now deemed "off-limits" for submitting
> feature requests, I suppose that leaves only the list as a location
> for discussion of such things, though I don't quite know where to
> submit the code for archival review, as I don't want to publish it on
> our corporate website. I suppose I'll put it on my website, eh? The
> credit for writing this app goes to Ritesh Bansal at TalkPlus, and he
> has signed the disclaimer as well.
>
> Anyway, it could probably suffer to be a function, but I don't know
> if the action features of the application would lend themselves to
> being split away from the setting/getting features. And developing
> both a function and an app seems redundant.
>
> So, here's the description. Let me know if anyone thinks this might
> be a useful addition, and I'll put it in bugs.digium.com. Otherwise,
> it will live on my web server.
>
> http://www.loligo.com/asterisk/misc/apps/app_list.c
>
> static char *descrip = "This application gives the user a name based
> list capabilities in the dialplan.\n"
> "This is useful in creating array-like list in the dialplan.\n"
> "The following commands are available\n"
> " List(INIT|name|len|reinitialize|[var1|var2|...])\n"
> " name is the name of the list in this channel. You can have many \n"
> " lists with different names for the same channel.\n"
> " len is the length of the list.\n"
> " reinitialize has values of 0 and 1. If 1 then if the list exists\n"
> " then it will be reinitailized. If 0 and the list exists then it\n"
> " will return an error.\n"
> " You can additionally pass up to 99 variables to be put in the list.\n"
> " List(SET|name|index|[value])\n"
> " index is the element you want to set and value is the value.\n"
> " If value is not passed then the element value is set to NULL.\n"
> " List(GET|name|index|variable)\n"
> " index is the element you want to get and variable is the name of the\n"
> " dialplan variable in which the value will be stored\n"
> " List(LEN|name|variable)\n"
> " Returns the length of the list in the variable.\n"
> " List(SIZE|name|variable)\n"
> " Returns size integer in the variable. Size is the number of elements\n"
> " that are not null and have some value. These may not be contiguous\n"
> " elements.\n"
> " List(INSERT|name|index|value)\n"
> " Insert a element with the value at index position. This
> increases the\n"
> " length of the list by 1.\n"
> " List(REMOVE|name|index|variable)\n"
> " Remove a element at index position. This decreases the\n"
> " length of the list by 1. The value removed is returned in variable.\n"
> " List(DESTROY|name)\n"
> " This frees up the memory and the list. This must be called before\n"
> " exit of the dialplan for a call or the system will have a
> memory leak.\n"
> " List(DUMP|name)\n"
> " Dumps the list info using a LOG_NOTICE mechanism.\n"
> "\n";
>
>
>
>
> JT
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
>
More information about the asterisk-dev
mailing list