Re: [asterisk-users] ACD functionality , Skills for agents
Hi, Örn Arnarson schrieb: > I have often wondered the same thing. > > It seems to me to be random, or it works it out some way I am not > familiar with. I have seen calls with wait time of 30 seconds get > answered before calls with 30 minutes wait time from queues with equal > weight. I can confirm it with asterisk 1.4.11 on debian/lenny. We tested it like that: - two queues with the same weight are configures - 2 agents are logged in both queues with strategy "last recent" - 5 test callers are in the queue - 1st caller gets an agent, the phone is ringing and we let time it out - the callers after him in the queue get agent but the first caller never But, as said, it happens randomly and is not easy to reproduce. But we do not have any solutions for that beside to use only one queue. Best Regards. Jan -- Jan-Hendrik Palic TNG - NETWORK MANAGEMENT GmbH Projensdorfer Str. 324, D-24106 Kiel, Germany mailto:[EMAIL PROTECTED] http://www.tng.de ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
What about tagging calls with skills and then putting them all in one queue? Skill for agents would be declared in queues.conf just like penalties? member => Agent/1001,Sales,10 where Sales=skilland 10 = weight of skill for agent. Is that feasible? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of BJ Weschke Sent: Wednesday, November 21, 2007 6:16 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] ACD functionality , Skills for agents Kyriakos wrote: > It would be nice to add an option of choosing to answer the call with the > longest waiting time, or answer randomly, or round robin, etc... > > > Agreed, but, understand that each queue defined in app_queue is separate. The way the weights work is only by instructing a thread to go into another queue's data space (while holding a mutex lock to make sure multiple threads aren't walking on the same space) and make sure there aren't calls waiting where that queue has a higher weight than the one currently processing before it decides whether or not it can serve up calls to an available member. There is not one large, consolidated, pool of calls waiting for consideration when you are dealing with multiple queues in the current design of app_queue. As a result, true skills based routing with the existing app_queue is, difficult, at best. The queue application does a fairly good job for what most people need for it to do, but when you start getting into these more complex call/queue routing scenarios, you're defining a scope of requirements that the original app_queue just wasn't designed for. Features like queue weight were/are band aids to try to get you closer to the end run goal, but that band aid and others like it has come with its own costs as well (mutex deadlocks,etc) that many people here have complained about in the past. -- Bird's The Word Technologies, Inc. http://www.btwtech.com/ ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
Kyriakos wrote: > It would be nice to add an option of choosing to answer the call with the > longest waiting time, or answer randomly, or round robin, etc... > > > Agreed, but, understand that each queue defined in app_queue is separate. The way the weights work is only by instructing a thread to go into another queue's data space (while holding a mutex lock to make sure multiple threads aren't walking on the same space) and make sure there aren't calls waiting where that queue has a higher weight than the one currently processing before it decides whether or not it can serve up calls to an available member. There is not one large, consolidated, pool of calls waiting for consideration when you are dealing with multiple queues in the current design of app_queue. As a result, true skills based routing with the existing app_queue is, difficult, at best. The queue application does a fairly good job for what most people need for it to do, but when you start getting into these more complex call/queue routing scenarios, you're defining a scope of requirements that the original app_queue just wasn't designed for. Features like queue weight were/are band aids to try to get you closer to the end run goal, but that band aid and others like it has come with its own costs as well (mutex deadlocks,etc) that many people here have complained about in the past. -- Bird's The Word Technologies, Inc. http://www.btwtech.com/ ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
It would be nice to add an option of choosing to answer the call with the longest waiting time, or answer randomly, or round robin, etc... -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of BJ Weschke Sent: Wednesday, November 21, 2007 4:35 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] ACD functionality , Skills for agents Kyriakos wrote: > Guys can someone answer how the ACD works when it needs to decide which call > to take next from queues with equal weights? Does it take the call with the > longest period of watiting or does it work randomly? > > Whichever thread from the queue that does its processing first is the one that will get the next available member. -- Bird's The Word Technologies, Inc. http://www.btwtech.com/ ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
Kyriakos wrote: > Guys can someone answer how the ACD works when it needs to decide which call > to take next from queues with equal weights? Does it take the call with the > longest period of watiting or does it work randomly? > > Whichever thread from the queue that does its processing first is the one that will get the next available member. -- Bird's The Word Technologies, Inc. http://www.btwtech.com/ ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
I have often wondered the same thing. It seems to me to be random, or it works it out some way I am not familiar with. I have seen calls with wait time of 30 seconds get answered before calls with 30 minutes wait time from queues with equal weight. It would be great if someone who actually knows could answer or explain. Best regards, Örn Arnarson On Nov 21, 2007 2:15 PM, Kyriakos <[EMAIL PROTECTED]> wrote: > Guys can someone answer how the ACD works when it needs to decide which > call > to take next from queues with equal weights? Does it take the call with > the > longest period of watiting or does it work randomly? > > > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Kyriakos > Sent: Wednesday, November 21, 2007 11:08 AM > To: 'Asterisk Users Mailing List - Non-Commercial Discussion' > Subject: Re: [asterisk-users] ACD functionality , Skills for agents > > > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of James > FitzGibbon > Sent: Tuesday, November 20, 2007 6:03 PM > To: Asterisk Users Mailing List - Non-Commercial Discussion > Subject: Re: [asterisk-users] ACD functionality , Skills for agents > > On Nov 20, 2007 10:16 AM, Kyriakos <[EMAIL PROTECTED]> wrote: > > > I have a question regarding ACD for queues. What happens when I have > 2 > > or more queues with same weight and each queue has a call in? How will > it > > decide which call will be routed to the next available agent? Will it > take > > the call with the longest waiting time in queue? If not how would I do > > this? > > Beware of queue weights. They have caused major problems in the past > for many people on this list. As I understand it, enabling weights > requires * to grab a lock on a large number of data structures related > to queue state, which can cause performance slowdowns and crashes. I > haven't seen reports of this recently, so it might be better in the > later 1.4 releases, but at one time it was a sure-fire recipe for > pain. > > > Also can someone point me to resources for making a single queue with > > customer calls tagged with agent skills? What I mean is instead of > having > > multiple queues Sales,Tech support, etc, have only a single queue with > > calls being tagged according to the customer's choice from IVR, so if a > > customer would choose SALES , the call would go into the queue with > other > > calls but it would only be answered from agents with the skill "SALES". > > This is something offered in other PBX systems like Avaya but im pretty > sure > > it can be done on Asterisk, right? > > It probably could be, but it would make reporting pretty difficult, as > the key fields in the queue log are the call id and the queue name. > While you could use the QueueLog() application to stick extra data > about the call (e.g the skill chosen from the IVR) into the queue log, > that would appear in one line only and require post-processing to glue > it together with the rest of the data for that call. I'm pretty sure > it wouldn't mesh nicely with the reporting package I use > (QueueMetrics). > > KM: I'm actually using the same package (Queuemetrics 1.4.2)! > > What I do for this is maintain queue (skill) membership in a database, > then add the channels to the appropriate queues when the agents log on > via a web page. Is there a particular reason you want to just have > one queue? > > KM: Well no if the ACD would work properly. As I mentioned there have > been > calls that were waiting in queue for 20 minutes because ACD was > distributing > calls from the rest of the queues with less waiting time. > > KM. > > > ___ > --Bandwidth and Colocation Provided by http://www.api-digital.com-- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > > > ___ > --Bandwidth and Colocation Provided by http://www.api-digital.com-- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
Guys can someone answer how the ACD works when it needs to decide which call to take next from queues with equal weights? Does it take the call with the longest period of watiting or does it work randomly? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kyriakos Sent: Wednesday, November 21, 2007 11:08 AM To: 'Asterisk Users Mailing List - Non-Commercial Discussion' Subject: Re: [asterisk-users] ACD functionality , Skills for agents -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of James FitzGibbon Sent: Tuesday, November 20, 2007 6:03 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] ACD functionality , Skills for agents On Nov 20, 2007 10:16 AM, Kyriakos <[EMAIL PROTECTED]> wrote: > I have a question regarding ACD for queues. What happens when I have 2 > or more queues with same weight and each queue has a call in? How will it > decide which call will be routed to the next available agent? Will it take > the call with the longest waiting time in queue? If not how would I do > this? Beware of queue weights. They have caused major problems in the past for many people on this list. As I understand it, enabling weights requires * to grab a lock on a large number of data structures related to queue state, which can cause performance slowdowns and crashes. I haven't seen reports of this recently, so it might be better in the later 1.4 releases, but at one time it was a sure-fire recipe for pain. > Also can someone point me to resources for making a single queue with > customer calls tagged with agent skills? What I mean is instead of having > multiple queues Sales,Tech support, etc, have only a single queue with > calls being tagged according to the customer's choice from IVR, so if a > customer would choose SALES , the call would go into the queue with other > calls but it would only be answered from agents with the skill "SALES". > This is something offered in other PBX systems like Avaya but im pretty sure > it can be done on Asterisk, right? It probably could be, but it would make reporting pretty difficult, as the key fields in the queue log are the call id and the queue name. While you could use the QueueLog() application to stick extra data about the call (e.g the skill chosen from the IVR) into the queue log, that would appear in one line only and require post-processing to glue it together with the rest of the data for that call. I'm pretty sure it wouldn't mesh nicely with the reporting package I use (QueueMetrics). KM: I'm actually using the same package (Queuemetrics 1.4.2)! What I do for this is maintain queue (skill) membership in a database, then add the channels to the appropriate queues when the agents log on via a web page. Is there a particular reason you want to just have one queue? KM: Well no if the ACD would work properly. As I mentioned there have been calls that were waiting in queue for 20 minutes because ACD was distributing calls from the rest of the queues with less waiting time. KM. ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of James FitzGibbon Sent: Tuesday, November 20, 2007 6:03 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] ACD functionality , Skills for agents On Nov 20, 2007 10:16 AM, Kyriakos <[EMAIL PROTECTED]> wrote: > I have a question regarding ACD for queues. What happens when I have 2 > or more queues with same weight and each queue has a call in? How will it > decide which call will be routed to the next available agent? Will it take > the call with the longest waiting time in queue? If not how would I do > this? Beware of queue weights. They have caused major problems in the past for many people on this list. As I understand it, enabling weights requires * to grab a lock on a large number of data structures related to queue state, which can cause performance slowdowns and crashes. I haven't seen reports of this recently, so it might be better in the later 1.4 releases, but at one time it was a sure-fire recipe for pain. > Also can someone point me to resources for making a single queue with > customer calls tagged with agent skills? What I mean is instead of having > multiple queues Sales,Tech support, etc, have only a single queue with > calls being tagged according to the customer's choice from IVR, so if a > customer would choose SALES , the call would go into the queue with other > calls but it would only be answered from agents with the skill "SALES". > This is something offered in other PBX systems like Avaya but im pretty sure > it can be done on Asterisk, right? It probably could be, but it would make reporting pretty difficult, as the key fields in the queue log are the call id and the queue name. While you could use the QueueLog() application to stick extra data about the call (e.g the skill chosen from the IVR) into the queue log, that would appear in one line only and require post-processing to glue it together with the rest of the data for that call. I'm pretty sure it wouldn't mesh nicely with the reporting package I use (QueueMetrics). KM: I'm actually using the same package (Queuemetrics 1.4.2)! What I do for this is maintain queue (skill) membership in a database, then add the channels to the appropriate queues when the agents log on via a web page. Is there a particular reason you want to just have one queue? KM: Well no if the ACD would work properly. As I mentioned there have been calls that were waiting in queue for 20 minutes because ACD was distributing calls from the rest of the queues with less waiting time. KM. ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] ACD functionality , Skills for agents
On Nov 20, 2007 10:16 AM, Kyriakos <[EMAIL PROTECTED]> wrote: > I have a question regarding ACD for queues. What happens when I have 2 > or more queues with same weight and each queue has a call in? How will it > decide which call will be routed to the next available agent? Will it take > the call with the longest waiting time in queue? If not how would I do > this? Beware of queue weights. They have caused major problems in the past for many people on this list. As I understand it, enabling weights requires * to grab a lock on a large number of data structures related to queue state, which can cause performance slowdowns and crashes. I haven't seen reports of this recently, so it might be better in the later 1.4 releases, but at one time it was a sure-fire recipe for pain. > Also can someone point me to resources for making a single queue with > customer calls tagged with agent skills? What I mean is instead of having > multiple queues Sales,Tech support, etc, have only a single queue with > calls being tagged according to the customer's choice from IVR, so if a > customer would choose SALES , the call would go into the queue with other > calls but it would only be answered from agents with the skill "SALES". > This is something offered in other PBX systems like Avaya but im pretty sure > it can be done on Asterisk, right? It probably could be, but it would make reporting pretty difficult, as the key fields in the queue log are the call id and the queue name. While you could use the QueueLog() application to stick extra data about the call (e.g the skill chosen from the IVR) into the queue log, that would appear in one line only and require post-processing to glue it together with the rest of the data for that call. I'm pretty sure it wouldn't mesh nicely with the reporting package I use (QueueMetrics). What I do for this is maintain queue (skill) membership in a database, then add the channels to the appropriate queues when the agents log on via a web page. Is there a particular reason you want to just have one queue? -- j. ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
[asterisk-users] ACD functionality , Skills for agents
Hi all, I have a question regarding ACD for queues. What happens when I have 2 or more queues with same weight and each queue has a call in? How will it decide which call will be routed to the next available agent? Will it take the call with the longest waiting time in queue? If not how would I do this? Also can someone point me to resources for making a single queue with customer calls tagged with agent skills? What I mean is instead of having multiple queues Sales,Tech support, etc, have only a single queue with calls being tagged according to the customer's choice from IVR, so if a customer would choose SALES , the call would go into the queue with other calls but it would only be answered from agents with the skill "SALES". This is something offered in other PBX systems like Avaya but im pretty sure it can be done on Asterisk, right? Thanks, Kyriakos Mavromichalis ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users