Prioridad de Agente en una Queue [Continuación]

Visto 702 veces
Saltar al primer mensaje no leído

gonzalo

no leída,
26 nov 2007, 14:38:5226/11/07
a asterisk-es
Buenas.
Veréis. Estaba intentando retomar este hilo:
http://groups.google.com.au/group/asterisk-es/browse_thread/thread/3ffbc2db511a5d7b/81cedff6bb1c3da5?hl=en&lnk=gst&q=queues+penalty#
Pero parece que en las google goups se cierran los hilos
antiguos...una pena.
Creo que me veo con el mismo problema qe Maximiliano, pero al final no
queda muy claro "cual es la solución".
Mi problema es que tengo una cola y quiero que suene siempre primero
el agente/1 luego el dos y luego el 3.
Ahora parece que esta deprecated la opción "roundrobin" en favor de
"rrmemory". Y ahora como rmemory es muy listo pues suena primero:
Agent/1
Agent/2
Agent/3
Supongamos que coge Agent/1, pues bien, en la siguiente llamada suena
asi:
Agent/2
Agent/3
Agent/1

Y yo lo que quiro es siempre 1,2 y 3 ...1,2 y 3

He probado en el queues.conf poniendo penaltys:
member => Agent/1,1
member => Agent/2
member => Agent/3

...pero no doy en como se podrá hacer, porque de esta manera suena
siempre el 1
Agradecería cualquier ayuda.

Julian J. M.

no leída,
26 nov 2007, 14:51:0526/11/07
a aster...@googlegroups.com
Roundrobin debería hacer lo que quieres. Llama en orden, empezando
siempre por el primer miembro.

Julián J. M.

--
http://www.julianmenendez.es

gonzalo

no leída,
26 nov 2007, 15:05:0626/11/07
a asterisk-es
Julián, la opción "roundrobin" esta obsoleta en Asterisk 1.4, (cosa
que no entiendo).

Hecha un vistazo a:
http://www.voip-info.org/wiki/view/Asterisk+config+queues.conf

Además si hechas un vistazo por donde pone:

Some notes about roundrobin and rrmemory

Te darás cuenta de que aunque no estuviese obsoleta, "tampoco" hacía
esto.

Hay que jugar con los penaltys....pero no se como

Julian J. M.

no leída,
26 nov 2007, 15:16:1626/11/07
a aster...@googlegroups.com
Vaya, pues es verdad ;)

roundrobin recuerda donde empezó el ciclo de llamadas. En el siguiente
ciclo, empieza por el siguiente miembro.
rrmemory recuerda quién fue el último miembro que contestó. En el
siguiente ciclo, empieza por el siguiente.

Dado que rounrobin no hace lo que pensábamos, veo lógico que lo
eliminen en favor de rrmemory.

De cualquier modo, y siguiendo con tu caso, yo usaría ringall con penaltys:

member=SIP/101,1
member=SIP/102,2
member=SIP/103,3

Entra una llamada y suena 101. Si no contesta, suena 102, si tampoco
contesta, suena 103.

Julián J. M

--
http://www.julianmenendez.es

davidp

no leída,
26 nov 2007, 15:40:3426/11/07
a asterisk-es

> Y yo lo que quiro es siempre 1,2 y 3 ...1,2 y 3
>
> He probado en el queues.conf poniendo penaltys:
> member => Agent/1,1
> member => Agent/2
> member => Agent/3

¿no deberías ponerle más penalty a los agentes 2 y 3?

> ...pero no doy en como se podrá hacer, porque de esta manera suena
> siempre el 1

Suena siempre el 1, pero si no está disponible, sonará el 2, no?

¿El agente 1 usa un teléfono o un software que soporta llamada en
espera? a ver si es que, aunque el agente esté ocupado, la llamada se
le envía a él porque aún puede recibir una segunda llamada...

Un saludo,
David Prieto.

Elio Rojano

no leída,
26 nov 2007, 16:14:4826/11/07
a aster...@googlegroups.com
Eso se consigue con la estrategia rrmemory

gonzalo

no leída,
26 nov 2007, 16:37:0926/11/07
a asterisk-es
Pues nada.
He probado con rrmemory
y
He probado en el queues.conf poniendo penaltys:
member => Agent/1,1
member => Agent/2,2
member => Agent/3,3

Y suena siempre el primero :(
No entiendo bien esto de los penaltys

davidp

no leída,
27 nov 2007, 2:37:0627/11/07
a asterisk-es


On Nov 26, 10:37 pm, gonzalo <gonzalomarc...@gmail.com> wrote:
> Pues nada.
> He probado con rrmemory
> y
> He probado en el queues.conf poniendo penaltys:
> member => Agent/1,1
> member => Agent/2,2
> member => Agent/3,3
>
> Y suena siempre el primero :(

En tu primer mensaje decías:

> Mi problema es que tengo una cola y quiero que suene siempre primero
el agente/1 luego el dos y luego el 3.

¿No es eso lo que querías? No entiendo el problema, la verdad...

David.

Julian J. M.

no leída,
27 nov 2007, 4:14:0927/11/07
a aster...@googlegroups.com
Creo que se refiere a que _siempre_ suena el primero, y nunca los
otros dos, aunque el primero no conteste ;)

Con los penalties unicamente sonará el segundo cuando el primero esté
_ocupado_...

La verdad, creo que esto se soluciona antes y mejor con una nueva
estrategia "inorder" ;) Lo demás es intentar provocar un
comportamiento para el que no fue diseñado.

Julian J. M.

--
http://www.julianmenendez.es

Iñaki Baz Castillo

no leída,
27 nov 2007, 4:26:1827/11/07
a aster...@googlegroups.com
El Tuesday 27 November 2007 10:14:09 Julian J. M. escribió:
> Creo que se refiere a que _siempre_ suena el primero, y nunca los
> otros dos, aunque el primero no conteste ;)
>
> Con los penalties unicamente sonará el segundo cuando el primero esté
> _ocupado_...
>
> La verdad, creo que esto se soluciona antes y mejor con una nueva
> estrategia "inorder" ;) Lo demás es intentar provocar un
> comportamiento para el que no fue diseñado.

Por si el guiño no es suficientemente explícito comento que esa nueva
estrategia existe (o está en proceso) y ha sido ideada por nuestro amigo
Julián J. M.

Hace tiempo vi el submit, pero no sabría decir dónde está. Tal vez nos lo
podrías indicar ;)

--
Iñaki Baz Castillo
i...@in.ilimit.es

Julian J. M.

no leída,
27 nov 2007, 4:31:3327/11/07
a aster...@googlegroups.com
Pues ni yo lo he pillado (el guiño), porque no he hecho ninguna
modificación en este sentido, aún ;). La verdad es que me extrañaría
que no existiese ya esta estrategia...

Cuando encuentre un hueco (y motivación) me pongo a ello, si es que
alguien no lo ha hecho todavía.

Julián J. Menéndez

On Nov 27, 2007 9:26 AM, Iñaki Baz Castillo <i...@in.ilimit.es> wrote:
> > La verdad, creo que esto se soluciona antes y mejor con una nueva
> > estrategia "inorder" ;) Lo demás es intentar provocar un
> > comportamiento para el que no fue diseñado.
>
> Por si el guiño no es suficientemente explícito comento que esa nueva
> estrategia existe (o está en proceso) y ha sido ideada por nuestro amigo
> Julián J. M.
>
> Hace tiempo vi el submit, pero no sabría decir dónde está. Tal vez nos lo
> podrías indicar ;)

--
http://www.julianmenendez.es

Iñaki Baz Castillo

no leída,
27 nov 2007, 4:39:1927/11/07
a aster...@googlegroups.com
El Tuesday 27 November 2007 10:31:33 Julian J. M. escribió:
> Pues ni yo lo he pillado (el guiño), porque no he hecho ninguna
> modificación en este sentido, aún ;). La verdad es que me extrañaría
> que no existiese ya esta estrategia...

Perplejo me dejas... ¿¿lo habré soñado??

La estrategia era algo en plan dar prioridades a determinados agentes, pero n
prioridad total como es ahora, o sea, que un agente tenga más posibilidades
de recibir una llamada, pero no que si está libre la reciba siempre siempre.


> Cuando encuentre un hueco (y motivación) me pongo a ello, si es que
> alguien no lo ha hecho todavía.

Yo... esto... juraría que lo vi... mmmm

Julian J. M.

no leída,
27 nov 2007, 4:52:0027/11/07
a aster...@googlegroups.com
Creo que te refieres a wrandom (incluido en trunk), donde se usan los
penalty's para indicar la probabilidad de recibir la siguiente
llamada.
En el caso de tener 3 miembros, con penalties 0,1,2, el segundo
tendría el doble de probabilidades de recibir una llamada que el
primero, y el tercero el triple. Es decir, a más penalty, menos
probabilidad. http://bugs.digium.com/view.php?id=10942

Pero claro, esta solución no es la que buscaba Gonzalo. En su caso,
siempre debería empezar a sonar el primer miembro, si no contesta o
está ocupado el segundo, y así sucesivamente. Vamos un rounrobin que
empieze siembre en el miembro 1.

Julián J. Menéndez

--
http://www.julianmenendez.es

Iñaki Baz Castillo

no leída,
27 nov 2007, 5:14:2927/11/07
a aster...@googlegroups.com
El Tuesday 27 November 2007 10:52:00 Julian J. M. escribió:
> Creo que te refieres a wrandom (incluido en trunk), donde se usan los
> penalty's para indicar la probabilidad de recibir la siguiente
> llamada.
> En el caso de tener 3 miembros, con penalties 0,1,2, el segundo
> tendría el doble de probabilidades de recibir una llamada que el
> primero, y el tercero el triple. Es decir, a más penalty, menos
> probabilidad. http://bugs.digium.com/view.php?id=10942

¡¡ Sí, eso !! XD


> Pero claro, esta solución no es la que buscaba Gonzalo. En su caso,
> siempre debería empezar a sonar el primer miembro, si no contesta o
> está ocupado el segundo, y así sucesivamente. Vamos un rounrobin que
> empieze siembre en el miembro 1.

ok ok, tampoco me enteré mucho de qué iba el hilo, sólo leí tu último correo y
te quise dar un poco de publicidad XDDDDD

gonzalo

no leída,
27 nov 2007, 5:28:2327/11/07
a asterisk-es

> > Pero claro, esta solución no es la que buscaba Gonzalo. En su caso,
> > siempre debería empezar a sonar el primer miembro, si no contesta o
> > está ocupado el segundo, y así sucesivamente. Vamos un rounrobin que
> > empieze siembre en el miembro 1.

Exacto!. Que bien te explicas. Esto es lo que quiero...
¿Entonces, por lo de ahora no hay manera?
Creo que le habrá pasado a mas gente. Es una cosa bastante común...

davidp

no leída,
27 nov 2007, 8:56:3727/11/07
a asterisk-es


On Nov 27, 10:14 am, "Julian J. M." <julia...@gmail.com> wrote:
> Creo que se refiere a que _siempre_ suena el primero, y nunca los
> otros dos, aunque el primero no conteste ;)
>

¿Qué ocurre cuando el primero está OCUPADO? ¿Suena el 2? ¿O le suena
la llamada en espera al 1?

¿Cómo están los tiempos? Es decir... No tendrás puesto que "si el 1 no
contesta en 30 segundos, que suene el 2", pero el timeout de la
llamada son 20 segundos, con lo que nunca va a llegar a sonar el 2...

¿Me puedes indicar qué ocurre en los siguientes casos:?

*) Entra una llamada en la cola cuando todos los agentes están
disponibles
*) Entra una llamada en la cola cuando el agente 1 está ocupado
*) Entra una llamada en la cola cuando todos están disponibles, pero
el agente 1 no atiende la llamada

a ver si así me entero :-)

David.

Julian J. M.

no leída,
27 nov 2007, 10:09:5827/11/07
a aster...@googlegroups.com
Hmm, estoy viendo que no va a ser útil una estrategia de este tipo,
entre otras cosas, porque los miembros no figuran en el orden que
indiques en queues.conf:

queues.conf
[900]
...
member=SIP/201,0
member=SIP/202,0
member=SIP/203,0

CLI> show queues
[...]
SIP/203 (Not in use) has taken no calls yet
SIP/202 (Not in use) has taken no calls yet
SIP/201 (Not in use) has taken no calls yet

Aunque cambie el orden de los miembros en queues.conf, siguen
apareciendo igual al hacer el "show queues".

Asterisk utiliza una tabla hash en lugar de una lista para almacenar
los miembros de una cola, con lo cual, al iterar sobre ella salen en
un orden que depende de la función hash, que viene a ser más o menos
alfabético.

De modo que sí: Podría hacerse una estrategia "inorder" que empezase
los ciclos en orden, pero no podrías controlar ese orden ;)

Julián J. M.

--
http://www.julianmenendez.es

gonzalo

no leída,
27 nov 2007, 10:41:0427/11/07
a asterisk-es
Hola

> ¿Qué ocurre cuando el primero está OCUPADO? ¿Suena el 2? ¿O le suena
> la llamada en espera al 1?

Le suena al segundo

> ¿Cómo están los tiempos? Es decir... No tendrás puesto que "si el 1 no
> contesta en 30 segundos, que suene el 2", pero el timeout de la
> llamada son 20 segundos, con lo que nunca va a llegar a sonar el 2...

¿a que te refieres? En el queues.conf especificas el timeout global,
no por agente:
; How long do we let the phone ring before we consider this a
timeout...
;
timeout = 10
pues 10 segs para todos.

> ¿Me puedes indicar qué ocurre en los siguientes casos:?
>
> *) Entra una llamada en la cola cuando todos los agentes están
> disponibles

Le suena al primero, si no coge en x segundos al segundo, etc. En la
siguiente?: igual.

> *) Entra una llamada en la cola cuando el agente 1 está ocupado

Le suena al segundo.

> *) Entra una llamada en la cola cuando todos están disponibles, pero
> el agente 1 no atiende la llamada

Le suena al segundo

> a ver si así me entero :-)

Imagínatelo como si fuese un ranking de operadores. El Agente/1 es una
máquina y lo hace genial y quiero que siempre le vayan a el si es
posible, si no coje o esta ocupado...pues que vaya al Agente/2 que es
un poco peor, sino, pues al 3, que es un poco burro, etc.
En la siguiente llamada? Pues lo mismo de los mismo, aunque le toquen
casi siempre todas al uno.

Yo lo veo un caso muy común y ya me lo han pedido un par de cleintes
con el típico caso de un departamento donde siempre hay uno que esta
mas enetrado y atiende las llamadas preferiblemente el, si no pues al
siguiente mas al tanto, etc.
Yo lo veo claro como el agua.

davidp

no leída,
27 nov 2007, 13:49:5827/11/07
a asterisk-es

[contesto al final del todo]


> > ¿Me puedes indicar qué ocurre en los siguientes casos:?
>
> > *) Entra una llamada en la cola cuando todos los agentes están
> > disponibles
>
> Le suena al primero, si no coge en x segundos al segundo, etc. En la
> siguiente?: igual.
>
> > *) Entra una llamada en la cola cuando el agente 1 está ocupado
>
> Le suena al segundo.
>
> > *) Entra una llamada en la cola cuando todos están disponibles, pero
> > el agente 1 no atiende la llamada
>
> Le suena al segundo
>
> > a ver si así me entero :-)
>
> Imagínatelo como si fuese un ranking de operadores. El Agente/1 es una
> máquina y lo hace genial y quiero que siempre le vayan a el si es
> posible, si no coje o esta ocupado...pues que vaya al Agente/2 que es
> un poco peor, sino, pues al 3, que es un poco burro, etc.
> En la siguiente llamada? Pues lo mismo de los mismo, aunque le toquen
> casi siempre todas al uno.
>
> Yo lo veo un caso muy común y ya me lo han pedido un par de cleintes
> con el típico caso de un departamento donde siempre hay uno que esta
> mas enetrado y atiende las llamadas preferiblemente el, si no pues al
> siguiente mas al tanto, etc.
> Yo lo veo claro como el agua.

Pues lo que no entiendo es dónde está el problema. Si lo que tú
quieres que haga es justo lo que está haciendo... las llamadas entran
al agente/1, si él no contesta o está ocupado entran al agente/2,
etc..

Porque cuando te pedía que me contaras qué ocurría en cada caso... no
te estoy pidiendo que me digas "tú qué quieres que ocurra", sino "con
la configuración de penalizaciones que te hemos dicho que pongas, ¿qué
es lo que ocurre?". Lo que me has contestado es lo que realmente
ocurre, no? ¿o lo que quieres que ocurra?

davidp.

gonzalo

no leída,
27 nov 2007, 14:11:1427/11/07
a asterisk-es

Vamos a ver David. Creo que no nos entendemos.

NO hace eso. No es la primera cola que monto.
Te recomiendo que leas voip-info:
http://www.voip-info.org/wiki/index.php?page=Asterisk+config+queues.conf
Justo por donde pone:
Some notes about roundrobin and rrmemory
Tal y como he dicho por arriba.

Si tienes un rrmemory llama primero al Agente/1, Agente/2, Agente/3.
Si coge el Agente/1 luego llama:
Agente/2, Agente/3, Agente/1 (ves que no empieza otra vez por el 1?)
Si coge el Agente/2 luego:
Agente/3, Agente/1, Agente/2,

¿Ves la diferencia, no?
rrmemory= round robin con memoria
y no preguntes por roundrobin a secas, porque esa opción esta
deprecated.

Si pones penalty's como por ej:
member=SIP/201,0
member=SIP/202,0
member=SIP/203,0
Pues pasa lo mismo porque todos los penalty's tienen el mismo peso.

Si pones estos penalty's:
member => Agent/1,1
member => Agent/2
member => Agent/3
Suena siempre Agente/1. Y cuando digo siempre es llama a la 1, si no
coge o contesta llama a la 1, si no coge o contesta llama a la 1, y
hasta el infinito. Nunca llama a las otras.

Porfavor acepto ideas, pero constructivas...

Julian J. M.

no leída,
27 nov 2007, 14:27:2327/11/07
a aster...@googlegroups.com
No se si afecta a los canales Agent/, pero tienes activado "ringinuse"?

; If you want the queue to avoid sending calls to members whose devices are
; known to be 'in use' (via the channel driver supporting that device state)
; uncomment this option. (Note: only the SIP channel driver currently is able
; to report 'in use'.)
;
; ringinuse = no

Julián J. Menéndez

--
http://www.julianmenendez.es

davidp

no leída,
27 nov 2007, 17:14:5527/11/07
a asterisk-es

> Imagínatelo como si fuese un ranking de operadores. El Agente/1 es una
> máquina y lo hace genial y quiero que siempre le vayan a el si es
> posible, si no coje o esta ocupado...pues que vaya al Agente/2 que es
> un poco peor, sino, pues al 3, que es un poco burro, etc.
> En la siguiente llamada? Pues lo mismo de los mismo, aunque le toquen
> casi siempre todas al uno.


Pues nada. Lo único que se me ocurre es que montes tres colas y en tu
dialplan pongas algo como:

exten => loquesea,1,Answer()
exten => loquesea,n,Queue(Cola1,,,,20)
exten => loquesea,n,Queue(Cola2,,,,20)
exten => loquesea,n,Queue(Cola3,,,,20)

Y definas las colas así:

[Cola1]
strategy=ringall
member => Agent/1,1
member => Agent/2,2
member => Agent/3,3

[Cola2]
strategy=ringall
member => Agent/1,1
member => Agent/2,1
member => Agent/3,3

[Cola3]
strategy=ringall
member => Agent/1,1
member => Agent/2,1
member => Agent/3,1

De esta manera, la llamada entrará primero en la cola1. Si el agente1
está disponible, suena su teléfono. Si está ocupado, suena el 2.

Si pasados 20 segundos el 1 no lo ha atendido, la llamada salta a la
Cola2, sonando al mismo tiempo los teléfonos de los agentes 1 y 2

Y 20 segundos después, pasa a la cola3.

También puedes dejar en cada cola solamente el agente que
corresponda... pero creo que de esta manera, todavía hay posibilidad
de que el agente1 (que es un máquina) decida coger el teléfono después
de "sus" 20 segundos.

davidp.

gonzalo

no leída,
28 nov 2007, 2:58:2728/11/07
a asterisk-es
mmm, claro. Poner una cola por agente y ajustar los penalty's para que
en cada una de ellas empieza por el siguiente agente que le
correspondía (si no ha antendido el anterior).
Creo que me puede valer. Voy a hacer pruebas.
Gracias Davidp! Esta si que es una respuesta muy constructiva (je je
olvidemos comentarios anteriores).
Un saludo.

m160858

no leída,
6 dic 2007, 11:04:326/12/07
a asterisk-es
Hola,

Yo tengo una cola de 64 agentes y estoy logueandome a la cola con
AgentCallBackLogin; y el problema que tengo es que mientras tengo 64
agentes disponibles y 120 canales de entrada, solo tengo 34 llamadas
simultaneas y el resto de llamadas queda en espera, cosa que no
deberia pasar si me quedan 30 agentes libres.

Salu2
Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos