Displaying queue counts in IM client?

I thought since the Asterisk-IM forum is already involved in several aspects of what I am working with (Asterisk/Trixbox, Openfire, Spark), I would ask here first.

I would like to replicate a feature from an old phone system where regular agents could see the fact that there were X calls in queue for the queue(s) they were handling.

My thought was to create/modify a plugin for Openfire that would broadcast the queue information somehow. Something like the first line of “show queue” in the Asterisk CLI:

show queue q1

q1 has 0 calls (max unlimited) in ‘ringall’ strategy (37s holdtime), W:0, C:9, A:2, SL:0.0% within 0s

My first thought was to create a user, let’s call it “queues”, and update it’s status message with a parsed version of “show queues” to simply display the queue name and the number of calls in queue for each queue. But it would seem the status message doesn’t allow for carriage returns, or multi-line display.

Then my thought was to create a user for each queue, and run the “show queue <queue_number>” command for each queue, assigning the parsed reponse to each queue’s “user”.

Either way, these users would be configured to show up in everyone’s roster automatically, which should include any updates to their status message.

I thought I might be able to muddle through modifying the Asterisk-IM plugin to handle this to create a new plugin.

But, I figured, I’ll post here first to hear what folks have to say about my ideas. Maybe there’s a better way to present such information? I am concerned about server load. We would need near-realtime updates of the queue status. If we could add in wait times, that would be great too.

Thoughts? Comments? Flames?

Thanks in advance.

DionV

Hi,

the feature you are describing seems to be really interesting. It would be cool if agents were able to view the load of the queues they are members of.

Asterisk-IM is certainly a well suited place to implement that on the server side. To show the queue status to the agents I would prefer a more visual representation of the queue status than just status texts of roster items. The best UI I saw for this was a horizontal bar showing number of callers in relation to max size of the queue in green,yellow or red depending on the utilization of the queue. Each queue would be represented by one bar. You could add the avg. waiting time next to the bars.

Of course this also requires a Spark plugin on the client side but it could be worth the effort.

To have realtime status updates I would follow the events generated by Asterisk like we already do for the channel status. This gives us immediate knowledge of what’s going on in the queues without the overhead to poll in short intervals.

=Stefan

srt wrote:

Hi,

the feature you are describing seems to be really interesting. It would be cool if agents were able to view the load of the queues they are members of.

Definitely. Might help folks that tend to take too long on a call if they see that the queue is backing up while they chat idly with a customer.

Asterisk-IM is certainly a well suited place to implement that on the server side. To show the queue status to the agents I would prefer a more visual representation of the queue status than just status texts of roster items. The best UI I saw for this was a horizontal bar showing number of callers in relation to max size of the queue in green,yellow or red depending on the utilization of the queue. Each queue would be represented by one bar. You could add the avg. waiting time next to the bars.

Hmmm. Sounds like an idea. I’d settle for text to start, then get fancy. It’s been a while since I’ve coded, but I think it’s time to dust off my programmer’s cap and dig in again. Gonna be a slow trip…

Of course this also requires a Spark plugin on the client side but it could be worth the effort.

Oh? I’m not fully up on the requirements of everything, but if possible, it would be nice to make it IM client-agnostic, so folks wouldn’t have to be using Spark to take advantage of this feature. I can understand that some things just have to be done a certain way, though. We do use Spark, so it’s not an issue for us, but I’m always trying to think ahead when it comes to software.

To have realtime status updates I would follow the events generated by Asterisk like we already do for the channel status. This gives us immediate knowledge of what’s going on in the queues without the overhead to poll in short intervals.

I was hoping there would be something that wouldn’t increase traffic (much).

I take it if I start wading through the Asterisk-IM code I would pick up on what’s being done, and should be able to follow along? I’ve done some Perl, PHP, and shell scripting, but have not had much luck with Java. Maybe now’s the time?

Time to start downloading and reading!

DionV