Re: [asterisk-users] ACD functionality , Skills for agents

2007-11-22 Thread Jan-Hendrik Palic
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

2007-11-22 Thread Kyriakos
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

2007-11-21 Thread BJ Weschke
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

2007-11-21 Thread Kyriakos
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

2007-11-21 Thread BJ Weschke
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

2007-11-21 Thread Örn Arnarson
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

2007-11-21 Thread Kyriakos
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

2007-11-21 Thread Kyriakos


-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

2007-11-20 Thread James FitzGibbon
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

2007-11-20 Thread Kyriakos
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