Eine Möglichkeit, dynamische Mitglieder mit dem Benutzernamen zu verwenden.
In diesem Artikel sehen wir eine Möglichkeit, Mitglieder zuzuweisen (auch Agenten genannt)* die Asterisk-Warteschlangen, ein Benutzername, um seine Verwendung und Überwachung zu erleichtern.
Zur besseren Visualisierung der Asterisk-Einstellungen, ich installierte FOP2 Das zeigt uns eine Reihe von Warteschlangenanrufen, und Bettwäsche um ein Beispiel für Statistiken zu zeigen, die gesammelt werden können.
Ein Sternchen, Die Verwendung dynamischer Elemente erfolgt normalerweise über Zahlen, repräsentiert im Allgemeinen eine SIP-Erweiterung. Dies macht es für den Benutzer unangenehm. des Weiteren, Durch die Verwendung von Benutzernamen können Statistiken besser verfolgt werden.
Wenn wir keinen Benutzernamen verwenden, Das Erscheinungsbild einer Anrufwarteschlange im FOP2-Bedienfeld sieht möglicherweise wie folgt aus, Es werden nur die Nebenstellennummern angezeigt:

*Hinweis: Der Ausdruck “Agenten” wird in alten Asterisk-Konfigurationen verwendet, es gilt als veraltet, weil eine Datei namens agent.cfg verwendet wurde, die nicht mehr benötigt wird. Heutzutage, Es ist möglich, den Ausdruck zu verwenden “Mitglieder” um Verwirrungen zu vermeiden.
Um unseren Zweck zu erreichen, werden wir eine angehängte Textdatei verwenden, in meinem Fall habe ich es genannt users.txt, Wir speichern es im Asterisk-Verzeichnis oder wo immer wir wollen, dann geben wir Ihre Route an.
Sie müssen nur eine Konfiguration in der Datei vornehmen /etc / asterisk / extensions.conf (Beachten Sie, dass die Warteschlangen bereits korrekt konfiguriert sind /etc / asterisk / queues.cfg, Bei dynamischen Mitgliedern ist es nicht erforderlich, diese in dieser Datei anzugeben)
Die Beispielkonfiguration ist dies:
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
Mit dieser Konfiguration, Der Benutzer muss nur über das Telefonterminal tippen, ein Sternchen gefolgt von Ihrem zu registrierenden Benutzernamen, und Sie können bereits Anrufe aus dieser Warteschlange empfangen.
So etwas würde bleiben:

Auf diese Weise können Sie leicht erkennen, wann Sie auf Abruf sind:

Bis zum letzten, Mit dem Asternic-Tool können wir überprüfen, wie Statistiken vom Benutzer abgerufen werden können:

Zusätzlich dazu, wie ich es Ihnen präsentiert habe, könnte auf andere Weise getan werden, Zum Beispiel mit einer Datenbank für Benutzernamen, Der Einfachheit halber habe ich es mit einer Textdatei versehen.
Seien Sie ermutigt, Ihre eigenen Lösungen oder möglichen Verbesserungen mitzuteilen, die Ihnen eingefallen sind.