Crear un logeo dinamico de agentes en colas

Muchas veces se requiere que en un esquema de Call Center, los agentes se logueen de forma dinámica, de forma que dadas cierta catidad de colas, puedan logearse en ellas n cantidad de agentes.

Con esto evitamos el tener que dar de alta en la cola las extensiones que van a estar activas en cierto momento, o que cuando estas extensiones dejen de estar activas, tengan que poner el boton DND.

El proceso es sencillo, si queremos que las extensiones e logueen de forma dinamica, vamos a agregar el siguiente codigo al archivo: extensions_custom.conf

En la seccion [from-internal-custom] agregamos al final:

include => conecta
include => desconecta

y al final del archivo agregamos:

[conecta]
exten => 997,1,Answer
exten => 997,2,Set(QEXT1=${CALLERID(number)})
exten => 997,3,MYSQL(Connect connid localhost root tupass asterisk)
exten => 997,4,MYSQL(Query resultid ${connid} SELECT DISTINCT extension FROM queues_config)
exten => 997,5,MYSQL(Fetch foundRow ${resultid} extension)
exten => 997,6,GotoIf($["${foundRow}" = "1"]?7:9)
exten => 997,7,AddQueueMember(${extension})
exten => 997,8,Goto(5)
exten => 997,9,MYSQL(Clear ${resultid})
exten => 997,10,MYSQL(Disconnect ${connid})
exten => 997,11,Playback(agent-loginok)
exten => 997,12,Hangup



[desconecta]
exten => 998,1,Answer
exten => 998,2,Set(QEXT1=${CALLERID(number)})
exten => 998,3,MYSQL(Connect connid localhost root tupass asterisk)
exten => 998,4,MYSQL(Query resultid ${connid} SELECT DISTINCT extension FROM queues_config)
exten => 998,5,MYSQL(Fetch foundRow ${resultid} extension)
exten => 998,6,GotoIf($["${foundRow}" = "1"]?7:9)
exten => 998,7,RemoveQueueMember(${extension})
exten => 998,8,Goto(5)
exten => 998,9,MYSQL(Clear ${resultid})
exten => 998,10,MYSQL(Disconnect ${connid})
exten => 998,11,Playback(agent-loggedoff)
exten => 998,12,Hangup


Para que un agente se conecte a TODAS las colas del sistema, solo tendran que marcar en la extesión: 997 y para desconectarse: 998

Espero les sirva y si requieren de alguna modificación pueden preguntar con confianza.

Comentarios

  1. Entiendo que así funcione para las extensiones pero funcionará igual para Agentes??

    Y en caso que sólo me quiera conectar a una cola y no a todas hay alguna opción??

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Crear un codigo para escuchar una llamada en tiempo real

Limitar el tiempo de una llamada por extensión para troncal G0

Como deshabilitar temporalmente la opción de "Weak Passsword Deteccion" en un sistema Elastix