Colas y Agentes.
Aunque a vote pronto parece que esto se guisa entre dos ficheros dentro de /etc/asterisk/ "agents.conf" y "queues.conf" (el fichero queuerules.conf ni lo toco es relativo a sistema de penalización entre colas.) Yo no he sido capaz de entender bien el como de agents.conf
parece sencillo, pero es mas bien para agentes estáticos, y usar agentes dinamicos y estaticos, como que no lo pillo.
De tal modo que dejo de lado el fichero "agents.conf" sin tocar, (o comentando todos los agentes default) y uso el "dialplan" junto con "queues.conf" para manejar "agentes dinámicos."
Los agentes dinámicos, no requieren gran cosa, usaremos estas aplicaciones:AddQueueMember(), PauseQueueMember(), UnpauseQueueMember() y RemoveQueueMember() en el extensions.conf, para que mediante el marcado se produzcan estos hechos.
Antes que nada tendremos que crear las colas, en mi caso para estas pruebas, crearemos dos colas, una de "Tecnicos" y otra de "Ventas"
Las opciones basicas [general] se parecen a estas. (en mi caso) Pero el fichero tiene un montón de opciones y posibilidades y merece la pena leerlo con atención.(Tiene mucha mucha tela)
[general]
persistentmembers = yes ; esta opción creara en la DDBB de asterisk (SQLite3) una linea por cola en la que se irán metiendo todos los agentes que se "logan" en las distintas colas. Apareciendo cosas como esta en "database show" /Queue/PersistentMembers/Tecnicos : SIP/403;0;0;SIP/403;SIP/403|SIP/402;0;0;SIP/402;SIP/402|SIP/401;0;0;SIP/401;SIP/401
autofill = no ;Esto es para que las llamadas en espera se asigen de golpe a los agentes o por orden, por defecto no, "pos fale".
monitor-type = MixMonitor ; esto a estas alturas.....
updatecdr = no ; esto hace que no se actualize el CDR, si decimos que yes, usara el parámetro "membername" para meter en la columna "dstchannel" y que tendremos que definir en AddQueueMember() Parece confuso pero no.
shared_lastcall=no ;Esto es para manejar el parámetro wrapuptime, en agentes que están en mas de 1 cola y dar mas tiempo o no al agente. En nuestro caso, no hay agentes en mas de una cola.
;mis colas
[Ventas]
musicclass = default ;la musica de estepera tipica
strategy = linear ; la estrategia esto tiene mucha miga, digo las estrategias, hay que probarlas para comprender como funcionan y si afectan o no a "timeout" y a "retry".
timeout = 10 ;este parametro dependera de la estratigia que tome efecto o no.
retry = 2 ;este parametro dependera de la estratigia que tome efecto o no.
timeoutpriority = conf ;Este va en consonancia con timeout, pero tambien con el que tengamos en Queue(), leer mas en el propio fichero.
wrapuptime=5 ;un tiempito para que el agente descanse entre llamadas, o tome apuntes o cumplimente alguna nota.
announce-frequency = 90 ;Todos estos son anuncios y son configurables, en cuanto a los contenidos y tiempos.
min-announce-frequency = 15
periodic-announce-frequency=60
random-periodic-announce=no
relative-periodic-announce=yes
announce-holdtime = once
announce-position = yes
announce-to-first-user = no
announce-position-limit = 5
announce-round-seconds = 10
[Tecnicos]
musicclass = default
;Tipos de estrategia
strategy = rrmemory
timeout = 10
retry = 1
timeoutpriority = app
wrapuptime=10
announce-frequency = 90
min-announce-frequency = 15
periodic-announce-frequency=60
random-periodic-announce=no
relative-periodic-announce=yes
announce-holdtime = once
announce-position = yes
announce-to-first-user = no
announce-position-limit = 5
announce-round-seconds = 10
Con esto ya podemos recargar el modulo y ver que tenemos las dos colas creadas.
ASX93*CLI> reload app_queue.so
Module 'app_queue.so' reloaded successfully.
-- Reloading module 'app_queue.so' (True Call Queueing)
[Feb 2 11:17:44] NOTICE[21621]: app_queue.c:8718 reload_queue_rules: queuerules.conf has not changed since it was last loaded. Not taking any action.
== Parsing '/etc/asterisk/queues.conf': Found
Y ya podremos mirar en la consola las colas.
ASX93*CLI> queue show
Tecnicos has 0 calls (max unlimited) in 'rrmemory' strategy (0s holdtime, 0s talktime), W:0, C:0, A:1, SL:0.0% within 0s
No Members
No Callers
Ventas has 0 calls (max unlimited) in 'linear' strategy (0s holdtime, 0s talktime), W:0, C:0, A:5, SL:0.0% within 0s
No Members
No Callers
El comando "queue" nos permite hacer de todo, añadir, eliminar, pausar, reanudar agentes, en fin desde la consola se puede hacer casi de todo. Incluso de forma Opaca al personal, pueden estar atendiendo llamadas sin saber que pertenecen a colas ni que se les etiqueto como "agentes"
NOTA relacionado al pensamiento de las distintas estrategias, Si a un agente le suena el Tlf, se coge, la idea o prueba de, suena y no lo coges, no está contemplada, El agente no puede estar ocupado en otra cosa, osea o esta BUSY, atendiendo a otra llamada, o está fuera de cola (ya no es un agente) o esta en pausa(o en ultima instancia está en su tiempito de relajo o no entre llamadas "wrapuptime"). Este razonamiento, se ha de tener en cuenta, para comprender las distintas estrategias y su aplicación.
Continua leyendo "Apuntes sobre colas. (Queues) y Agentes dinámicos." »