Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
[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)
[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