O modalitate de a utiliza membri dinamici folosind numele de utilizator.
În acest articol vom vedea o modalitate de a atribui membri (numiți și agenți)* cozile asteriscului, un nume de utilizator, pentru a ușura utilizarea și monitorizarea acestuia.
Pentru a vizualiza mai bine setările Asterisk, Am instalat FOP2 ceea ce ne arată un panou de apeluri la coadă, și Asternic pentru a arăta un exemplu de statistici care pot fi colectate.
Un asterisc, utilizarea membrilor dinamici se face de obicei cu ajutorul numerelor, reprezentând în general o extensie SIP. Acest lucru îl face inconfortabil pentru utilizator. mai departe, folosirea numelor de utilizator poate urmări mai bine statisticile.
Când nu folosim numele de utilizator, aspectul unei cozi de apeluri în panoul FOP2 ar putea arăta similar cu următoarele, s-ar vedea doar numerele de extensie:

*Notă: Expresia “agenţi” utilizat în configurațiile vechi de Asterisk, este considerat învechit, deoarece a fost folosit un fișier numit agents.cfg, care nu mai este necesar. In zilele de azi, este posibilă utilizarea expresiei “Membrii” pentru a preveni confuziile.
Pentru a ne atinge scopul, vom folosi un fișier text atașat, în cazul meu am numit-o users.txt, îl salvăm în directorul Asterisk sau oriunde dorim, atunci vă vom indica traseul.
Trebuie doar să faceți o configurație în fișier /etc / asterisc / extensions.conf (rețineți că avem deja cozile configurate corect /etc / asterisc / queues.cfg, cu membrii dinamici nu este necesar să se indice acestea în acel fișier)
Exemplul de configurare este acesta:
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
Cu această configurație, utilizatorul trebuie să tasteze de la terminalul telefonic, un asterisk urmat de numele dvs. de utilizator pentru a fi înregistrat, și puteți primi deja apeluri de la acea coadă.
Ceva de genul acesta ar rămâne:

În acest fel, puteți identifica cu ușurință atunci când sunteți la apel:

De ultimul, cu instrumentul Asternic putem verifica modul în care statisticile pot fi obținute de utilizator:

Pe lângă modul în care vi l-am prezentat, ar putea fi făcut în alte moduri, de exemplu cu o bază de date pentru nume de utilizator, Am pus-o cu un fișier text pentru simplitate.
Fiți încurajat să împărtășiți propriile soluții sau posibile îmbunătățiri care v-au apărut.