[asterisk-users] realtime queue callers
Vieri
rentorbuy at yahoo.com
Tue Apr 29 05:22:30 CDT 2008
--- Atis Lezdins <atis at iq-labs.net> wrote:
> On Mon, Apr 28, 2008 at 8:34 PM, Vieri
> <rentorbuy at yahoo.com> wrote:
> > How can I get a list of the callers within a
> specific
> > queue at any given moment?
> >
> > I need to get the caller IDs of all active calls
> in a
> > queue then send them out via a udp socket to a
> > listening application on the network (the only
> data I
> > need to send are two fields: current timestamp
> and
> > caller id of active queue calls).
> >
> > I have almost all the elements to do this except
> the
> > best method to retrieve "all active caller ids
> from a
> > given queue". I was wondering if someone already
> did
> > this.
> >
> > I tried writing a script on the server which
> connects
> > to the Manager API and receives queue events. I'm
> > basically using the AgentCalled event but it
> seems
> > clumsy to efficiently detect when the call has
> ended
> > (connect or abandon) and thus update the remote
> UDP
> > listening app.
> >
> > I also tried another way by guessing which calls
> are
> > active via tailing and grepping
> > /var/log/asterisk/queue_log.
> >
> > Finally, a third script method tried parsing the
> > output of "show queue XXXX" right after
> "Callers:".
> > Maybe this is all I really need for my purposes
> > (although less efficient and less "real-time"
> than the
> > queue events method because I would need to
> > periodically poll the whole queue statistics) but
> I
> > only get the originating channel and the wait
> time. I
> > would require correlating the data to the
> caller's ID.
> >
> > Has anyone already done something similar?
> > A simple example/script/suggestion would be
> greatly
> > appreciated.
>
> I'm not sure that this is what exactly You need, but
> I have a patch
> for app_queue
> that will store and update queue callers (as well as
> update lots of
> fields for queue members) in realtime mysql table.
> This allows to do
> many requests for current queue state simultenously,
> and moves load
> from asterisk to mysql (which can be on separate
> machine). So,
> generally to get active callers with all their
> callerid/channel info
> You will have to do just "SELECT * FROM
> queue_callers".
>
> It's not very finalized, so I haven't yet posted
> that to Digium for
> inclusion in next asterisk versions, but I intend to
> do that in
> future. It's been working stable on our production
> for several months.
>
> If You're interested, please reply, and I'll try to
> separate that
> patch out from other our patches.
> Currently I have it updated for 1.4.19, but also
> have some version for 1.4.14
Thanks Atis.
That patch sounds really neat. Hope it gets into *
soon.
Just a doubt: suppose the mysql daemon dies for some
reason. Will the patched app_queue still handle calls
and not hang?
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
More information about the asterisk-users
mailing list