[asterisk-dev] Proposal for changes to static queue configuration

Tilghman Lesher tilghman at mail.jeffandtilghman.com
Tue Sep 18 21:21:51 CDT 2007


On Tuesday 18 September 2007 17:52:49 Mark Michelson wrote:
> Warning: Long e-mail ahead!
>
>     Hi everyone. Discussions that have taken place on IRC channels as
> well as my work on the app_queue code have led me to believe that there
> can be improvements related to how queues, and more specifically queue
> members, are configured. I have a few changes I would like to discuss.
> Please provide feedback. I realize my prose leaves something to be
> desired, so if something comes across as unclear, please feel free to
> point it out and I'll clarify as best I can.
>
> 1) Global, queue-specific, and member-specific settings:
>
>     There are some settings in queues.conf which are only applicable to
> specific queues at present, which should be applicable globally or only
> to specific members. The proposed hierarchy would be that queue-specific
> settings would override global settings and member-specific settings
> would override queue-specific settings. A couple of settings that come
> to mind that fit these criteria are wrapuptime and autopause. Rewriting
> the code to handle global settings would be trivial (just add the
> settings to the queues.conf general context), but the member-specific
> part is what will require some input from the community. I have thought
> of two possible ways of doing this.
>     Way 1: the "member =>" line for each queue can be expanded to
> contain member-specific options. An example would be something like
>
>     member => SIP/1000,wrapuptime=30,autopause=no
>
> The advanatage of doing this is that it is completely backwards
> compatible with how members are configured now. The problem with this is
> that it makes use of a method of writing settings that Asterisk is
> trying to move away from and has the potential to make configs difficult
> to read.
>     Way 2: A separate members.conf config file to set member-specific
> settings. The format of this file would be along the same lines as
> queues.conf, but would have no general context. An entry in this file
> would look something like:
>
>     [mmichelson]
>     interface = SIP/1000
>     wrapuptime = 30
>     autopause = no
>     queue => queue1
>     queue => queue2
>
> The pro to doing things this way is that it lines up better with the way
> realtime members are configured, meaning more streamlined code. It also
> provides a graceful way to handle a membername parameter for static
> queue members (see item 2 in this e-mail). The big con to this method is
> that if mmichelson wants to have one wrapuptime in queue1 and a
> different wrapuptime in queue2 it isn't possible.

Why not go with a similar method by which we have multiple sections in
sip.conf and iax.conf, whereby we have different contexts differentiated by
a single keyword?  In those cases, the keyword is 'type' and the values
are 'user' and 'peer'.  In this case, the keyword could be 'queue':

[1000](!)
interface=SIP/1000
autopause=no

[mmichelson](1000)
queue => queue1
wrapuptime = 30

[mmichelson](1000)
queue => queue2
wrapuptime = 10

-- 
Tilghman



More information about the asterisk-dev mailing list