Uzantoj kiel dinamikaj membroj de Asterisko

Maniero uzi dinamikajn membrojn per uzantnomo.

En ĉi tiu artikolo ni vidos manieron asigni membrojn (ankaŭ nomataj agentoj)* la asteriskaj vostoj, uzantnomo, plifaciligi ĝian uzadon kaj monitoradon.

Por pli bone vidi Asterisk-aranĝojn, Mi instalis FOP2 tio montras al ni panelon de vokaj alvokoj, Kaj dormado por montri ekzemplon de statistikoj kolekteblaj.

Asterisko, la uzo de dinamikaj membroj estas kutime farita per nombroj, ĝenerale reprezentante SIP-etendaĵon. Ĉi tio faras malkomforton por la uzanto. Ankaŭ, uzanta salutnomon povas esti pli bone spurita en statistiko.

Kiam ni ne uzas uzantnomon, la apero de alvokada vosto en la FOP2-panelo povus aspekti simila al la sekva, nur la etendaj nombroj estus vidataj:

Colas sin nombre de usuario
Katenaj membroj identigitaj nur per nombroj aŭ statikaj etikedoj

*Rimarku: La esprimo “Agentoj” uzata en malnovaj asterisaj agordoj, ĝi konsideras malaktuala, ĉar dosiero nomata agents.cfg estis uzata, kio ne plu necesas. Hodiaŭ, eblas uzi la esprimon “Membroj” malhelpi konfuzojn.

Por realigi nian celon, ni uzos ligitan tekstodosieron, en mia kazo mi nomis ĝin uzantoj.txt, ni konservas ĝin en Asterisk-dosierujo aŭ kien ajn ni volas, tiam ni indikos vian itineron.
Vi nur devas fari agordon en la dosiero /ktp / asterisko / extensions.conf (memoru, ke ni jam havas la vostojn ĝuste agorditajn /ktp / asterisko / vostoj.cfg, kun dinamikaj membroj ne necesas indiki ĉi tiujn en tiu dosiero)

La ekzempla agordo estas ĉi tio:

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

Kun ĉi tiu agordo, la uzanto nur devas tajpi de la telefona terminalo, asterisko sekvita de via uzantonomo por esti registrita, kaj vi jam povas ricevi vokojn de tiu vosto.
Io tia restus:

Colas con nombre de usuario
Membroj kun salutnomo

Tiel vi povas facile identigi kiam vi vokas:

Usuario respondiendo
La vosta membro respondanta alvokon

Finfine, per la Asternic-ilo ni povas kontroli, kiel statistiko akireblas de uzanto:

Nomres de usuario para los miembros dinámicos
Uzantaj statistikoj

Krom kiel mi prezentis ĝin al vi, povus esti farita alimaniere, ekzemple kun datumbazo por uzantnomoj, Mi metis ĝin kun teksta dosiero por simpleco.
Estu kuraĝigita dividi viajn proprajn solvojn aŭ eblajn plibonigojn, kiuj okazis al vi.


About anĝelo Calvo

Logita de scienco kaj teknologio. profesoro, aŭtoro de manlibroj kaj sistemoj kaj komunikadoj manaĝero.

Leave al Reply

Your email address will not bo published.