Utilisateurs en tant que membres dynamiques d'Asterisk

Un moyen d'utiliser des membres dynamiques en utilisant un nom d'utilisateur.

Dans cet article, nous verrons un moyen d'affecter des membres (aussi appelés agents)* les files d'attente Asterisk, un nom d'utilisateur, pour faciliter son utilisation et son suivi.

Pour mieux visualiser les paramètres de l'astérisque, j'ai installé FOP2 qui nous montre un panneau d'appels de file d'attente, et literie pour montrer un exemple de statistiques qui peuvent être collectées.

Un astérisque, l'utilisation de membres dynamiques se fait généralement au moyen de nombres, représentant généralement une extension SIP. Cela rend inconfortable pour l'utilisateur. En outre, l'utilisation des noms d'utilisateur permet de mieux suivre les statistiques.

Lorsque nous n'utilisons pas de nom d'utilisateur, l'apparence d'une file d'attente d'appels dans le panneau FOP2 peut ressembler à la suivante, seuls les numéros de poste seraient visibles:

Colas sin nombre de usuario
Membres de la file d'attente identifiés uniquement par des nombres ou des étiquettes statiques

*Note: l'expression “Agents” utilisé dans les anciennes configurations Asterisk, il est considéré comme obsolète, car un fichier appelé agents.cfg a été utilisé, ce qui n'est plus nécessaire. Aujourd'hui, il est possible d'utiliser l'expression “Membres” pour éviter les confusions.

Pour atteindre notre objectif, nous allons utiliser un fichier texte joint, dans mon cas, je l'ai appelé users.txt, nous l'enregistrons dans le répertoire Asterisk ou où nous voulons, puis nous vous indiquerons votre itinéraire.
Il suffit de faire une configuration dans le fichier /etc / asterisk / extensions.conf (gardez à l'esprit que nous avons déjà les files d'attente correctement configurées dans /etc / asterisk / queues.cfg, avec les membres dynamiques, il n'est pas nécessaire de les indiquer dans ce fichier)

L'exemple de configuration est le suivant:

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

Avec cette configuration, l'utilisateur n'a qu'à taper depuis le terminal téléphonique, un astérisque suivi de votre nom d'utilisateur pour vous inscrire, et vous pouvez déjà recevoir des appels de cette file d'attente.
Quelque chose comme ça resterait:

Colas con nombre de usuario
Membres avec nom d'utilisateur

De cette façon, vous pouvez facilement identifier quand vous êtes de garde:

Usuario respondiendo
Le membre de la file d'attente répondant à un appel

Finalement, avec l'outil Asternic, nous pouvons vérifier comment les statistiques peuvent être obtenues par l'utilisateur:

Nomres de usuario para los miembros dinámicos
Statistiques utilisateur

En plus de la façon dont je vous l'ai présenté, pourrait être fait par d'autres moyens, par exemple avec une base de données pour les noms d'utilisateurs, Je le mets avec un fichier texte pour plus de simplicité.
Soyez encouragés à partager vos propres solutions ou les améliorations possibles qui vous sont venues.


Au sujet de Ange Calvo

Passionné par la science et de la technologie. Professeur, auteur de manuels et de systèmes de communications et gestionnaire.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. les champs requis sont indiqués *