Title: Dise
1Diseño e Implementación de un Sistema de
Distribución Automática de Llamadas Entrantes
(ACD) para un Callcenter
- Luis Miguel Andino Montalvo
- Javier Alejandro Urquizo Guevara
2Antecedentes
- Las comunicaciones son vitales para el desarrollo
de cualquier empresa.
Las empresas, utilizan los centros de contacto
para interactuar con sus clientes.
3Antecedentes
Las empresas implementan sistemas ACD, para
distribución de llamadas.
- Aparece Asterisk, una PBX implementada en
software y de código abierto.
4Objetivo General
- Diseñar e Implementar un sistema de distribución
automática de llamadas entrantes (ACD) para un
Centro de Contacto, utilizando un algoritmo
basado en información estadística para decidir la
prioridad de asignación de las llamadas a agentes
conectados.
5Objetivo General
Promedio de la duración de las llamadas tomadas
por el agente diariamente
Tiempo de conexión del agente
6Objetivo General
Tiempo de espera del cliente en cola
Prioridad de la llamada basada en el identificador
7Objetivos específicos
- Implementar una solución como aplicación a una
necesidad en el mundo actual. - Lograr una fácil transición a través de un
sistema amigable. - Acoplar diferentes programas y servicios para
proveer un sistema eficiente.
8Esquema
9Componentes
- Hardware
- Servidor
- Teléfono IP
- Software
- Servicios levantados
- Teléfono IP por software
10Hardware
- Características del Servidor
- Teléfono IP
- GrandStream modelo GPX2000
CPU RAM Disco Duro
Intel Core Duo 2.66 GHz 2 GB 300 GB
11Software
- Servicios levantados
- Softphone
Sistema Operativo Software PBX Motor Base de Datos Servidor Web PHP
Linux, Distribución Centos 5.5 Asterisk versión 1.8.3.2 My Sql Server 5.0.8 httpd-2.2.3-53.el5.centos.3 php 5.1.6-27.el5_5.3
Version Softphone
Zoiper_free_2.37
12Esquema de Implementación
13Implementación
- Elección de política de redirección
- Inicio de sesión de los agentes
- Encolamiento de las llamadas
- Captura de detalle de las llamadas
- Filtrado de llamada por identificador
- Redirección de llamada al agente elegido
14Elección de política de redirección
- La elección de la política de redirección, se
realiza mediante una aplicación Web.
15Elección de política de redirección
- La información es almacenada en una base de datos.
16Elección de política de redirección
17Inicio de sesión de los agentes
- Archivo de configuración agents.conf
Archivo de configuración extensions.conf
18Encolamiento de las llamadas
- Proceso mediante el cual se colocan las llamadas
en una cola al momento de marcar al Callcenter. - En este paso se inactivaran a todos los agentes
que no se encuentren contestando una llamada y
que se encuentren en línea. - El comportamiento de la cola es FIFO.
19Encolamiento de las llamadas
- Archivo de configuración queue.conf
20Captura de detalle de llamadas
- Esta parte del proyecto captura los datos y las
variables para luego utilizarlas en el algoritmo
de redirección. - Se utilizará un código del software QUEUEMETRICS
que maneja los datos de las colas de Asterisk en
una base de datos.
21Captura de detalle de llamadas
- Archivo de configuración cdr_mysql.conf
global hostnamelocalhost dbnameasterisk passwo
rdlabtelecom10 userroot
22Captura de detalle de llamadas
23Captura de detalle de llamadas
24Filtrado de llamada por identificador
- La aplicación web permite el ingreso de clientes
VIP por parte del administrador.
25Filtrado de llamada por identificador
26Redirección de llamada al agente elegido
- Esta sección se encargará de activar únicamente
al agente que va a recibir la llamada. - La elección del agente será en base a la política
vigente y a la información recopilada en las
bases de datos.
27Redirección de llamada al agente elegido
- Agente de mayor/menor tiempo conectado
28Redirección de llamada al agente elegido
- Agente de mayor/menor tiempo conectado
query1 "SELECT agent FROM (SELECT o.agent, o.time_id FROM queue_log o WHERE o.verb 'AGENTLOGIN' AND o.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'AGENTLOGOFF') AND o.agent NOT IN (SELECT t.agent FROM queue_log t WHERE t.verb 'CONNECT' AND t.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'COMPLETECALLER' OR q.verb 'COMPLETEAGENT')) ORDER BY o.time_id) AS e"
query1 "SELECT agent FROM (SELECT o.agent, o.time_id FROM queue_log o WHERE o.verb 'AGENTLOGIN' AND o.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'AGENTLOGOFF') AND o.agent NOT IN (SELECT t.agent FROM queue_log t WHERE t.verb 'CONNECT' AND t.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'COMPLETECALLER' OR q.verb 'COMPLETEAGENT')) ORDER BY o.time_id DESC) AS e"
29Redirección de llamada al agente elegido
- Agente de mayor/menor promedio diario de duración
de llamadas tomadas
30Redirección de llamada al agente elegido
- Agente de mayor/menor promedio diario de duración
de llamadas tomadas
query1 "SELECT dstchannel FROM (SELECT dstchannel, AVG(duration) dur FROM cdr WHERE DAYOFYEAR(calldate)DAYOFYEAR(CURDATE()) AND dst'2020' OR dst'2021' GROUP BY dstchannel ORDER BY dur) AS t WHERE dstchannel IN (SELECT agent FROM (SELECT o.agent, o.time_id FROM queue_log o WHERE o.verb 'AGENTLOGIN' AND o.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'AGENTLOGOFF') AND o.agent NOT IN (SELECT t.agent FROM queue_log t WHERE t.verb 'CONNECT' AND t.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'COMPLETECALLER' OR q.verb 'COMPLETEAGENT'))) AS e)"
query1 "SELECT dstchannel FROM (select dstchannel, AVG(duration) dur FROM cdr WHERE DAYOFYEAR(calldate)DAYOFYEAR(CURDATE()) AND dst'2020' OR dst'2021' GROUP BY dstchannel ORDER BY dur DESC) AS t WHERE dstchannel IN (SELECT agent FROM (SELECT o.agent, o.time_id FROM queue_log o WHERE o.verb 'AGENTLOGIN' AND o.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'AGENTLOGOFF') AND o.agent NOT IN (SELECT t.agent FROM queue_log t WHERE t.verb 'CONNECT' AND t.call_id NOT IN (SELECT q.call_id FROM queue_log q WHERE q.verb 'COMPLETECALLER' OR q.verb 'COMPLETEAGENT'))) AS e)"
31Pruebas
32Conclusiones
- Se cumplió el objetivo principal de la
implementación del Callcenter utilizando Asterisk
como software de PBX en conjunto con diversas
herramientas. - En base a las pruebas realizadas se determinó que
el proyecto puede ser aplicado en varias empresas
con diferentes políticas.
33Conclusiones
- El sistema es amigable al uso de los agentes por
lo que facilita la transición a la tecnología
VoIP. - El sistema permite la utilización de diferentes
políticas, por lo cual la eficiencia de la
atención a los clientes depende de la elección de
las mismas por parte de la empresa.
34Recomendaciones
- Utilizar programas que emulen teléfono IP
(softphones). - Utilizar aplicaciones de código abierto.
- Reducir estrés producido por tiempo de espera.
35Recomendaciones
- Revisar el uso de herramientas para manejo de
datos en tiempo real de Asterisk. - Plantearse AMI como solución alternativa para
este trabajo.
36Preguntas
37