[Asterisk-Users] Call queues

avizion asterisk-users at relay.dk
Fri Jul 23 07:24:33 MST 2004


hehe - well - I think you missed the word "persistant" :)

After a few hours of digging in old docs - I also found the "new" 3rd parameter
in a more recent doc. Not sure how I missed in the first place - but I did.

Never the less it did not solve my problem of having members added to my queues
without using AgentLogin but still have a penalty.

While goofing around I found out that adding an actual client to the queues.conf
would give me a startup penalty (i.e. member => IAX2/513,50). However - this
penalty is lost when the use call app RemoveQueueMember and never set again
when they call AddQueueMember.

So I basically just wrote a small perl script to tape through queues.conf
looking up the client and add the penalty to the AddQueueMember call from
extensions.conf.

What I would like to have though - was the app_queue to do this for me. The code
is almost there I'm sure. It just needs to lookup the penalty for a dynamically
added user - if defined in queues.conf.

PS: I didn't even make my wrapper look for Agent/Ext or IAX2/Ext, just "Ext" -
but is works fine for my use atm. Only thing missing is multiple queue support
- but that's easy.

Are you still laughing? Please tell me better ways... I seached high and low for
this - and didn't find anything. And seeing time is an issue here - I didn't
want to hack the actual app_queue.c yet.

But as I mentioned - I will most likely take this to -dev list and
bugs.digium.com when ready.

Thank you for your time and comment :)

--
avizion on irc.freenode.org #asterisk

Quoting Troy Settle <troy at psknet.com>:
> Avizion,  you're joking right?
>    AddQueueMember(queuename[|interface[|penalty]]):
> The AddQueueMember function does indeed allow you to set the penalty.
>
> Too bad penalties don't work though (or maybe they work too well?)
>
> SIP/100, penalty 1
> SIP/200, penalty 2
>
> Call comes in, SIP/100 picks up
>
> Call comes in, SIP/100 is busy, but SIP/200 NEVER rings...

> >
> > Quoting Jeremy Kenney <jeremy at ds-tech.com>:
> > > Hello I am new to asterisk I want to setup the call queues
> > where it will
> > > ring multiple devices at the same time and send the call to
> > the first one
> > > that is picked up.  There doesn't need to be an agent login
> > for this I don't
> > > think I just want setup so no login is required.  Please help
> >
> > There are several ways to accomplish this.
> >
> > Like the two others posts suggest - you can simply use the
> > Dial() application
> > directly. This will leave you with exactly the functionality
> > you are asking
> > for. What is does not give you is a real queue where members
> > can join / part as
> > they see fit (app. AddQueueMember / RemoveQueueMember). If
> > you want to have
> > your "agents" logged in from the start, you can simply define these in
> > etc/queues.conf like "SIP/phone1" or "IAX2/phone1". The last
> > option will even
> > let you define a penalty (in etc/queues.conf).
> >
> > What this lacks is a persistant penalty. I've been using a little time
> > investigating this - and I came to the conclusion that if I
> > want persistant
> > penalties for dynamically added members I would have to write
> > my own wrapper in
> > AGI. While I'm pretty much done with that part - it's not
> > exactly a beautiful
> > hack - but I might publish it if wanted.
> >
> > I will be posting on the asterisk-dev list soon - in order to
> > get second
> > oppinions on this implementation. Several things needs
> > coverage - but all this
> > in due time :)
> >
> > I hope you can use this - and feel free to ask into any of
> > the above...--



More information about the asterisk-users mailing list