Configuración

Para la configuración de grupos y agentes en Asterisk se modificaron los archivos queues.conf, extensions.conf y agents.conf. Para la configuración estática de encolamiento no es necesario modificarse el archivo agents.conf.

agents.conf:

Para la configuración de agentes de forma dinámica, cada uno de los agentes se registra en el sistema de tal manera que sean habilitados para recibir cualquier llamada, para eso se modifica el archivo agents.conf así:

[general]

persistentagents = yes ; Este define si el callbacklogin debe ser almacenado en la base de datos interna de Asterisk, para que los datos sean recargados cuando se reinicia Asterisk.

multiplelogin = yes ; Define si es posible conectarse a la misma extensión como agente múltiple

[agents]

maxlogintries = 5; Indica el número máximo de intentos que el agente tiene para conectarse.

autologoff = 15; Cuando un agente no contesta en 15 segundos se desconecta automáticamente.

autologoffunavail = yes; Si la extensión donde se conecta el agente se vuelve no disponible, el agente será desconectado de forma automática.

endcall = yes; Con esto el agente puede terminar la llamada con la tecla *

musiconhold = default; Para la música en espera que escuchará el agente cuando se conecte

A continuación se define varios grupos para los agentes que se va a realizar la configuración:

Se crean grupos para distintas secciones del Call Center.

group = 1

group = 2

group = 3

El paso siguiente es crear los agentes, para este caso se crean dos:

agent => 100,54321,Duber

agent => 200,54321,Julian

La sintaxis correspondiente es:

agent => Numero_de_Extension,Contraseña,Nombre_del_agente

Luego se procede a modificar el archivo extensions.conf, creando las extensiones 100 y 200, numero por el cual los agentes podran registrarse

exten => 100,1,Agentlogin(${EXTEN})

exten => 100,n,Hangup

exten => 200,1,Agentlogin(${EXTEN})

exten => 200,n,Hangup

Con los cambios ya guardados se procede escribir el siguiente comando, para reiniciar Asterisk y para que los cambios realizados sean aplicados.

/etc/

Ahora podemos registrar los agentes llamando a las respectivas extensiones previamente configuradas.

En la consola podemos ver el registro de los agentes:

El agente 90000 se registro con la extensión 200.

El agente 90001 se registro con la extensión 100.

CONFIGURACIÓN DE COLAS:

Para esto se debe modificar el archivo queues.conf:

persistentmembers = yes ; En el caso de usarse agentes dinámicos, su configuración se guarda en la base de datos de Asterisk. Para que cada agente sea enrutado a su correspondiente cola cuando se reinicia Asterisk.

autofill = yes ;Los usuarios serán atendidos de manera paralela mientras que haya agentes disponibles.

[atencion]

Musicclass = default; Música de espera, para este caso se deja la musica por defecto.

strategy = ringall; Estrategia a utilizar (Ringall: Estrategia que llama a todos los agentes al mismo tiempo, el primer agente que conteste será quien atienda la llamada)

timeout = 15; Determina el tiempo de espera máximo en segundos en el que se considerará no contestada la llamada por el agente.

retry = 5; Determina el tiempo en segundos mínimo para volver a llamar todos los agentes.

weight = 0 ; Parámetro que determina el peso de la cola, colas con valor alto tienen una prioridad mayor respecto a las colas con un valor menor.

autopause = yes; Cuando un agente no contesta la llamada se coloca en pausa.

maxlen = 0; Número máximo de usuarios que pueden entrar en cola de espera, el valor 0 indica que no tiene ningún límite.

announce-frequency = 90; Indica la frecuencia en que se anuncia al usuario en la cola sobre su posición o tiempo estimado de espera.

announce-holdtime = once ; Anunciar junto a la posición en la cola el tiempo estimado de espera. Puede ser yes, no, u once (una sola vez).

announce-round-seconds = 10; El tiempo de espera estimado será redondeado a las decenas.

reportholdtime = yes; Se anuncia el tiempo de espera del usuario que se va a atender, antes que el agente conteste una llamada.

ringinuse = no; No se timbrarán las extensiones de los agentes que se estén utilizando.

A continuación se definen los agentes que van a ingresar a la cola indicando un agente por linea:

member=> Agent/100,1

member=>Agent/200,1

y se configura el plan de llamadas en el archivo extensions.conf, donde se define el numero de extensión *611 y 018000

exten => *611,1,Answer()

exten => *611,n,Ringing

exten => *611,n,Wait(2)

exten => *611,n,Queue(atencion)

exten => *611,n,Hangup()

exten => 01800,1, Queue(atencion)

exten => 01800,n,Hangup

Se guardan los cambios y se reinicia la consola usando el comando:

/etc/init.d/asterisk restart

Ahora podemos comprobar la configuración llamando a la extensión *611 hasta que la llamada sea atendida por un agente, ya sea el agente con la extensión 100 o 200, si este agente esta ocupado la llamada pasa al siguiente agente, si ya no existen agentes disponibles la llamada se pasa a la cola y tiene prioridad en la lista de espera.

ALGORITMOS PARA LA DISTRIBUCIÓN DE LLAMADAS:

Los tipos de estrategias disponibles para atender las colas son:

—Ringall: Estrategia que llama a todos los agentes al mismo tiempo, el primer agente que conteste será quien atienda la llamada.

—Leastrecent: Estrategia que asigna la llamada a el agente que lleve un mayor tiempo sin atender una llamada.

— Fewestcalls: Estrategia que asigna la llamada a el agente que menor número llamadas haya atendido.

— Random: Estrategia que asigna la llamada de forma aleatoria a cualquier agente que se encuentre disponible.

— RRMemory: Estrategia que distribuye las llamadas entre los agentes por turnos disponibles y almacena en memoria el último agente que intenta llamar.

Esta estrategia la podemos cambiar en el archivo queues.conf para el comando llamado strategy = Nombre de la estrategia.

En este caso el teléfono con la extensión 90002 llama al Call center y el agente que le contesta la llamada es el que se registro con la extensión 100.