Usuaris com a membres dinàmics d'Asterisk

Una manera d'usar membres dinàmics utilitzant noms d'usuari.

En aquest article veurem una manera d'assignar als membres (també anomenats agents)* de les cues d'Asterisk, un nom d'usuari, per fer més senzill el seu ús i el seu seguiment.

Per visualitzar millor la configuració d'Asterisk, he instal·lat FOP2 que ens mostra un panell de trucades de les cues, i roba de llit per mostrar un exemple d'estadístiques que es poden recollir.

Un asterisco, l'ús de membres dinàmics sol fer-se per mitjà de nombres, que representen generalment una extensió SIP. Això ho fa poc còmode per a l'usuari. A més, a l'usar noms d'usuari es pot fer un seguiment millor en les estadístiques.

Quan no fem servir noms d'usuari, l'aspecte d'una cua de trucades al tauler de FOP2 podria ser similar a el següent, només es veurien els números d'extensió:

Colas sin nombre de usuario
Els membres de la cua identificats només per números o etiquetes estàtiques

*Nota: l'expressió “agents” s'emprava en les configuracions antigues d'Asterisk, es considera obsolet, doncs s'usava un arxiu anomenat agents.cfg que ja no cal. Avui en dia, és peferible utilitzar l'expressió “membres” per evitar confusions.

Per aconseguir el nostre propòsit anem a uilizar un arxiu de text adjunt, en el meu cas ho he denominat usuaris.txt, el guardem en el directori d'Asterisk o on vulguem, després indicarem la seva ruta.
Només cal fer una configuració a l'arxiu /etc / asterisk / extensions.conf (tenim present que ja tenim correctament configurades les cues a /etc / asterisk / queues.cfg, amb membres dinàmics no cal indicar aquests en aquest arxiu)

La configuració d'exemple és aquesta:

exten => _*[a-z].,1,NoOp(-- Petición de login de miembros --)
same => n,Set(VAR=${SHELL(grep ${EXTEN:1} /etc/asterisk/archivos/usuarios.txt -w)}) ; en un archivo guardamos los nombres válidos.
same => n,GotoIf($["${VAR}" = ""]?cuelga) ; si en el archivo no aparece el nombre tecleado por el operario, lo expulsa.
same => n,AddQueueMember(clientes,Local/${EXTEN:1}@atencion_clientes)
same => n,Set(DB(atencion_clientes/${EXTEN:1})=${CALLERID(num)}) ; almacenamos esa correlación en la base de datos interna de Asterisk.
same => n,Playback(agent-loginok)
same => n(cuelga),Hangup()
; para desregistrarse usamos el carácter 0 en vez de * con el mismo código.
exten => _0[a-z].,1,NoOp(-- Petición de deslogueo de miembros--)
same => n,RemoveQueueMember(clientes,Local/${EXTEN:1}@atencion_clientes)
same => n,Set(borrar=${DB_DELETE(atencion_clientes/${EXTEN:1})}) ; aquí se elimina la correlación, usamos una variable (borrar en este caso)
same => n,Playback(agent-loggedoff)
same => n,Playback(goodbye)
same => n,Hangup()
[atencion_clientes] ; este es el contexto que determina la llamada al miembro desde la cola, si está ocupado no hace nada, manda un mensaje por consola.
exten => _[a-z].,1,NoOp(-Llamada al miembro -)
same => n,Set(MIEMBRO=${DB(atencion_clientes/${EXTEN})})
same => n,GotoIf($[${SIPPEER(${MIEMBRO},curcalls)} = 1]?ocupado)
same => n,Dial(SIP/${MIEMBRO})
same => n(ocupado),NoOp(Miembro ocupado, llamada en cola

Amb aquesta configuració, l'usuari només ha de teclejar des del terminal telefònic, un asterisc seguit del seu nom d'usuari per quedar registrat, i ja pot rebre trucades d'aquesta cua.
Quedaria una cosa així:

Colas con nombre de usuario
Membres amb nom d'usuari

D'aquesta manera es pot identificar bé quan un està en crida:

Usuario respondiendo
Responent una trucada el membre de la cua

Finalment, amb l'eina Asternic podem comprovar com es poden obtenir estadístiques per usuari:

Nomres de usuario para los miembros dinámicos
Estadístiques d'usuaris

A més de com us ho he presentat, podria fer-se d'altres maneres, per exemple amb una base de dades per als noms d'usuaris, el vaig posar amb un arxiu de text per simplicitat.
Animeu-vos a compartir les vostres pròpies solucions o possibles millores que se us hagin ocorregut.

Script per moure enregistraments de trucades d'Asterisk des de la RAM

Com moure els enregistraments de trucades d'Asterisk guardades en RAM Aquest article recull un script millorat per poder moure arxius (en aquest cas trucades telefòniques realitzades a través d'Asterisk) sense moure els arxius oberts (les trucades en curs). És molt típic haver de realitzar enregistraments de trucades d'Asterisk en un Call Center […]

Company Postinstal·lació d'Ubuntu

Què fer després d'instal·lar Ubuntu mat? Un cop més us porto un script de Postinstal·lació, en aquest cas per ubuntu mat 14.04 encara que ho podeu provar en altres versions i explicar si funciona. Mate és un entorn gràfic fork de gnome 2 un dels entorns gràfics que a mi personalment més m'ha agradat dins […]

Què és OAuth? Coneix aquest protocol que utilitzes tan sovint.

El propòsit d'aquest article és donar a conèixer OAuth de manera que qualsevol persona la pugui entendre, ho explico des del punt de vista d'un usuari, coneixent de quina manera pot afectar aquesta tecnologia. Què és OAuth? És un protocol obert, que permet autorització segura d'una API de manera estàndard i simple […]