Consultar desde el DialPlan los agentes conectados en una cola

308 views
Skip to first unread message

Jorge Ricardo Góngora

unread,
Jun 13, 2012, 11:59:30 AM6/13/12
to aster...@googlegroups.com
Hola a todos,
Estoy terminando un dialplan que permite a los agentes de mi callcenter hacer login, logout y cambiar el código de acceso de su usuario en la cola, todo esto interactuando con una BD en postgres, pero ahora tengo el siguiente inconveniente, necesito validar que el agente no esté ya conectado a la cola (se que esto no es un problema pero sucede que estoy usando agentes de tipo local y el problema lo requiere), investigando veo que * trae esta función: QUEUE_MEMBER_LIST(nombre_de_la_cola) que devuelve un string con los nombres de los agentes separados por comas, algo así: (agente1,agente2,agente3) necesito poder procesar desde el dialplan esta salida de forma tal que me permita comparar cada uno de los agentes con el agente que está tratando de hacer login en la cola y si existe enviarle un mensaje de error sino entonces le permito hacer el login.
Gracias de antemano por sus respuestas.


Saludos,

Jorge

José Luis Gómez

unread,
Jun 13, 2012, 11:12:07 AM6/13/12
to aster...@googlegroups.com
Buenas.
Para hacer ese tipo de chequeos te recomiendo que uses un AGI, te va a ser más práctico.
Saludos.


--
Ing. José Luis Gómez
www.qualis.com.ar



--
Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)

~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es...@googlegroups.com

juan enrique escobar robles

unread,
Jun 13, 2012, 1:26:53 PM6/13/12
to aster...@googlegroups.com
El 13/06/12 10:59, Jorge Ricardo G�ngora escribi�:
> Hola a todos,
> Estoy terminando un dialplan que permite a los agentes de mi callcenter hacer login, logout y cambiar el c�digo de acceso de su usuario en la cola, todo esto interactuando con una BD en postgres, pero ahora tengo el siguiente inconveniente, necesito validar que el agente no est� ya conectado a la cola (se que esto no es un problema pero sucede que estoy usando agentes de tipo local y el problema lo requiere), investigando veo que * trae esta funci�n: QUEUE_MEMBER_LIST(nombre_de_la_cola) que devuelve un string con los nombres de los agentes separados por comas, algo as�: (agente1,agente2,agente3) necesito poder procesar desde el dialplan esta salida de forma tal que me permita comparar cada uno de los agentes con el agente que est� tratando de hacer login en la cola y si existe enviarle un mensaje de error sino entonces le permito hacer el login.
> Gracias de antemano por sus respuestas.
>
>
> Saludos,
>
> Jorge
>
Yo hacia lo siguiente, cuando el usuario hace login a la cola guardaba
en la base de datos de asterisk,
y cuando hace logout lo borraba, pero realmente es una bobada, ahora lo
que hago simplemente es que cuando un usuario intenta hacer un login y
justo despues de introducir la contrase�a hago un logout luego el login
y listo, si un agente se le olvida que esta conectado o cree q no lo
esta y hace login no le interesa escuchar mensajes de error, solo que le
informen que ya esta conectado.

Con esto me ahorre un mundo de problemas, de todos modos si quieres
implementarlo yo lo hacia mas o menos asi:

Login

exten => *8XXX,n,Set(AGENTE=${EXTEN:2})
exten => *8XXX,n,Set(COLA=una_cola_cualquiera)
; buscamos a ver si ya esta registrado...
exten => *8XXX,n,Set(existe=${DB($COLA/${AGENTE})})
exten => *8XXX,n,GotoIf($[${existe} = 0]?error:conectar)
.....
;una vez logueado guardamos en la DB que ya esta logueado con un 1
exten => **8XXX,n,Set(DB($COLA/${AGENTE})=1)


Logout
exten => **8XXX,n,Set(AGENTE=${EXTEN:3})
exten => **8XXX,n,Set(COLA=una_cola_cualquiera)
; lo dejamos vacio en 0
exten => **8XXX,n,Set(DB($COLA/${AGENTE})=0)

exitos y prueba a ver si te sirve...



--
---------------
Juan Enrique Escobar Robles.
Bucaramanga - Colombia.

Jorge Ricardo Góngora

unread,
Jun 13, 2012, 4:53:55 PM6/13/12
to aster...@googlegroups.com
> De: "juan enrique escobar robles" <nebli...@gmail.com>
> Para: aster...@googlegroups.com
> Enviados: Miércoles, 13 de Junio 2012 12:26:53
> Asunto: Re: [Asterisk-ES] Consultar desde el DialPlan los agentes conectados en una cola
> El 13/06/12 10:59, Jorge Ricardo Góngora escribió:
> > Hola a todos,
> > Estoy terminando un dialplan que permite a los agentes de mi
> > callcenter hacer login, logout y cambiar el código de acceso de su
> > usuario en la cola, todo esto interactuando con una BD en postgres,
> > pero ahora tengo el siguiente inconveniente, necesito validar que el
> > agente no esté ya conectado a la cola (se que esto no es un problema
> > pero sucede que estoy usando agentes de tipo local y el problema lo
> > requiere), investigando veo que * trae esta función:
> > QUEUE_MEMBER_LIST(nombre_de_la_cola) que devuelve un string con los
> > nombres de los agentes separados por comas, algo así:
> > (agente1,agente2,agente3) necesito poder procesar desde el dialplan
> > esta salida de forma tal que me permita comparar cada uno de los
> > agentes con el agente que está tratando de hacer login en la cola y
> > si existe enviarle un mensaje de error sino entonces le permito
> > hacer el login.
> > Gracias de antemano por sus respuestas.
> >
> >
> > Saludos,
> >
> > Jorge
> >
> Yo hacia lo siguiente, cuando el usuario hace login a la cola guardaba
> en la base de datos de asterisk,
> y cuando hace logout lo borraba, pero realmente es una bobada, ahora
> lo
> que hago simplemente es que cuando un usuario intenta hacer un login y
> justo despues de introducir la contraseña hago un logout luego el
> --
> Este email pertenece a la lista de Asterisk-ES
> (http://www.asterisk-es.org)
>
> ~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - Para anular la suscripción: asterisk-es...@googlegroups.com
Agradezco las respuestas.
De la forma que lo explicas es como lo pensé, es muy cómodo hacerlo integrado a la BD, de hecho tengo programado un sistema de login, logout y cambio del password de esa forma (integrado en una BD en postgres) pero sucede que pensé que sería más sencillo si empleara algo en el dialplan. Gracias po su tiempo.

Saludos,

Jorge
Reply all
Reply to author
Forward
0 new messages