Utilizatori ca membri dinamici ai Asterisk

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:

Colas sin nombre de usuario
Membrii cozii sunt identificați numai prin numere sau etichete statice

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

Colas con nombre de usuario
Membrii cu nume de utilizator

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

Usuario respondiendo
Membrul de la coadă care răspunde la un apel

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

Nomres de usuario para los miembros dinámicos
Statistici 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.


Despre Angel Calvo

Pasionat de știință și tehnologie. Profesor, autor de manuale și a sistemelor și comunicații director.

Lasă un Răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *