Está en la página 1de 3

Llamadas automatizadas con Call Center

enero 29, 2010/39 Comentarios/en A bajo nivel, Implementaciones /por Juan Pablo Bustos

Estimados, ésta es mi primera aparición en el blog, como una pequeña introducción les
comento que mi nombre es Juan Pablo Bustos, escribo desde la provincia de Mendoza –
Argentina, soy analista de sistemas y también cuento con la certificación ECT.

El objetivo de ésta implementación es la utilización del dialer de Elastix para llamar a una
lista de clientes, reproducir un mensaje, y a su vez, no perder la funcionalidad de call center
con agentes “reales”, además tener la posibilidad de utilizar un script mediante AGI para
guardar las respuestas (en caso de una encuesta o pregunta) en una base de datos una vez
que llamada fue completada.
Para comenzar, es necesario que creemos:

1. Algunos “agentes virtuales”, que en principio son creados desde la interfaz de call
center.
2. Un custom context para “loguearlos” mediante el comando AgentCallbackLogin
(que lamentablemente no estará disponible desde Asterix 1.5, pero ya existen
formas de implementarlo de otra manera).
3. Otro custom context para “desloguearlos” (básicamente con el proposito de
debugging, pero en ciertas ocasiones resulta útil).
4. Un custom context para redireccionar las a llamadas hacia un último custom context
que se encargará de manipular inalmente las llamadas.

Suena bastante confuso en una primera instancia, pero la realidad es que con unos pocos
custom contexts, podremos añadir una funcionalidad bastante buscada a nuestro servidor
Elastix.
Ahora la pregunta sería, ¿por qué “agentes virtuales”? La respuesta es bastante simple,
mediante el uso de éstos podremos seguir utilizando el módulo de call center de la misma
forma conservando su funcionalidad original.
Como deben haber notado, el dialer de Elastix antes de generar las llamadas, revisa que
haya agentes disponibles para las llamadas a generarse, de ésta forma mediante el comando
AgentCallbackLogin nuestros agentes figurarán como agentes disponibles y así, se les
generarán llamadas.

Ahora que ya estamos immerss en el tema, el procedimiento a grandes rasgos sería el


siguiente:

1º Creamos los agentes en la interfaz de call center.


2º Eliminamos el password de nuestros “agentes” virtuales en el archivo
etc/asterisk/agents.conf , y quedará algo como ésto:

Prototipo de los Agentes: agent => [Agent ID],[password],[Agent’s Name]


[agents]
Agent => 1001,,Virtual 1
Agent => 1002,,Virtual 2
Agent => 1003,,Virtual 3
Agent => 1004,,Virtual 4

3º Creamos un custom context para “loguear” a los agentes en el archivo


extenstions.custom.conf:
El prototipo para el comando AgentCallbackLogin es el siguiente:
AgentCallbackLogin([AgentNo][|Options[|exten[@context]]])

[login-agents]
exten => 1111,1,Answer
exten => 1111,n,NoOp(Logueando Agentes)
exten => 1111,n,AgentCallbackLogin(1001,s,501@from-internal)
exten => 1111,n,AgentCallbackLogin(1002,s,502@from-internal)
exten => 1111,n,AgentCallbackLogin(1003,s,503@from-internal)
exten => 1111,n,AgentCallbackLogin(1004,s,504@from-internal)
exten => 1111,n,NoOp(Todos los agentes estan logueados)
exten => 1111,n,Hangup()

4º Creamos un custom context para capturar las llamadas dirigidas a nuestros agentes
virtuales:

[catchcalls]
exten => 501,1, Goto(amessage,s,1)
exten => 502,1, Goto(amessage,s,1)
exten => 503,1, Goto(amessage,s,1)
exten => 504,1, Goto(amessage,s,1)

5º Y finalmente creamos el custom context que reproducirá el mensaje y que de ser


necesario, enviará los datos obtenidos de la llamada a un script para su
procesamiento:

[amessage]
exten => s,1,Answer
exten => s,2,Wait,2
exten => s,n,Read(tmp,custom/mensaje1,1||1|5)
exten => s,n,Set(RESP=${tmp})
exten => s,n,Playback(thank-you-cooperation)
exten => s,n,Hangup()
exten => h,1,DeadAGI(llamadas.php,${RESP})

Como deben haberlo notado, en éste caso, el mensaje fue reproducido y el dato fue
obtenido mediante el comando “read“, en el caso de no querer obtener un dato,
simplemente usaremos el comando playback.
6º Creamos una cola para poner allí nuestros agentes virtuales.
7º Creamos una campaña saliente y empezamos a quemar minutos!
Para ésta implementación en particular fue utilizado Elastix 1.5.2 con el módulo call
center en su versión 1.5, al día de hoy están funcionando 50 agentes virtuales sin presentar
problema alguno.
Espero que les sea de utilidad y no haberlos aburrido si ésta mini guía fue muy básica.
Saludos

También podría gustarte