Para comenzar, es necesario que creemos:
- Algunos “agentes virtuales”, que en principio son creados desde la interfaz de call center.
- 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).
- Otro custom context para “desloguearlos” (básicamente con el proposito de debugging, pero en ciertas ocasiones resulta útil).
- Un custom context para redireccionar las a llamadas hacia un último custom context que se encargará de manipular inalmente las llamadas.
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]3º Creamos un custom context para “loguear” a los agentes en el archivo extenstions.custom.conf:
Agent => 1001,,Virtual 1
Agent => 1002,,Virtual 2
Agent => 1003,,Virtual 3
Agent => 1004,,Virtual 4
El prototipo para el comando AgentCallbackLogin es el siguiente:
AgentCallbackLogin([AgentNo][|Options[|exten[@context]]])
[login-agents]4º Creamos un custom context para capturar las llamadas dirigidas a nuestros agentes virtuales:
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()
[catchcalls]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:
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]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.
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})
6º Creamos una cola para poner allí nuestros agentes virtuales.
7º Creamos una campaña saliente y empezamos a quemar minutos!
No hay comentarios:
Publicar un comentario