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:

*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:

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

Finalement, avec l'outil Asternic, nous pouvons vérifier comment les statistiques peuvent être obtenues par l'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.