Como usar nomes de usuarios con axentes dinámicos Asterisk Filas

Asignar nomes de usuario membros Asterisk Filas

Este artigo pode ver unha forma de axentes atribuíndo, tamén chamados de membros, Asterisk filas, un nome de usuario, de usar e máis fácil encalço.

Para iso asumimos unha instalación sinxela do Asterisk nunha distribución Debian. Devandita instalación, incluímos FOP2 y cama para un exemplo de aplicación.

obviamente, Asterisk coñecemento previo esixido.

xustificación

Cando os membros dinámicos son usados ​​para cola de chamadas en Asterisk, nos atopamos co problema de que os usuarios que toman as chamadas son identificadas polo número do ramal onde traballan. En moitos ámbitos de traballo extensións pode estar sendo usado por diferentes usuarios; entón é necesario atopar formas de identificar non para a súa extensión (número SIP, por exemplo,) pero por un nome de usuario normal.

Colas de Asterisk en FOP2 sin nombres de usuario
Unha imaxe de FOP2, con axentes normais, Son recoñecidos polo seu número de ramal.

Usando nomes de usuario, seguimento a través de rexistros (toras) ou estatísticas de construción será máis intuitiva e eficaz.

Colas de Asterisk en FOP2 con nombres de usuario
Aquí é comprobado e como vemos na usuarios FOP diferentes.
Colas de Asterisk en FOP2 con usuarios dinámicos en funcionamiento
Vemos que está ocupado e que está dispoñible para outras chamadas, etc.

desenvolvemento

Para desenvolver este usan canles locais; Son así chamados porque son usados ​​para facer chamadas dentro do sistema de Asterisk, sen saír.

Podes atopar máis información sobre isto en:
canles locais (Inglés)

Nos nosos traballadores de caso realice unha destas chamadas para facer membros da cola ou filas correspondentes. Cada operador utilizará unha clave de chamada para facer iso, Este código usalo como nome de usuario para identificar.

Non importa de que distancia a chamada é feita, e non o elemento de cola é recoñecido polo seu canle SIP, se non fose a estación local.

Imos crear un exemplo que serve para entender todo.

neste exemplo, operadores será conectado á cola clientes escribindo os seus códigos (usernames) adiante cun asterisco, para rexistrar dende calquera terminal.

Crearon unha canle local que o rexistro, e son introducidos no contexto atencion_clientes A continuación, el debe aparecer no plan de chamadas. que ficha almacénase na base de datos polo asterisco-usuario correlación terminal_SIP, para ser reflexada nos rexistros de usuario (pero, só os rexistros de terminais SIP)

Cando o usuario deixa o cargo, escribiu o seu nome de usuario precedido por un cero.

Ejemplo de uso en un softphone
Personificación do softphone Zoiper

Todo o que facemos neste ficheiro de configuración /etc / asterisco / extensions.conf, Deixo comentou a ser mellor comprendida:

[saínte]
= eXTEN> _ *[A-Z].,1,NoOp(-- Membros sesión solicitude --)
= mesmas> n,Conxunto(Var = ${SHELL(grep ${EXTEN:1} /etc / asterisco / arquivos / users.txt -w)}) ; Mantemos un nomes de arquivos válidos.
= mesmas> n,GotoIf($["${ONDE}" = ""]?enforcamento) ; Se o nome non aparecerá no ficheiro introducido polo operador, expele.
= mesmas> n,AddQueueMember(clientes,Local / ${EXTEN:1}@atencion_clientes)
= mesmas> n,Conxunto(DB(atencion_clientes / ${EXTEN:1})= ${callerID(nun)}) ;Nós gardados esa correlación no Asterisk base de datos interno
= mesmas> n,reprodución(axente de loginok)
= mesmas> n(enforcamento),Colgar()
 ; para cancelar a utilización do carácter 0 ao contrario de * co mesmo código.
= eXTEN> _0[A-Z].,1,NoOp(-- Petición de deslogueo de miembros--)
= mesmas> n,RemoveQueueMember(clientes,Local / ${EXTEN:1}@atencion_clientes)
= mesmas> n,Conxunto(delete = ${DB_DELETE(atencion_clientes / ${EXTEN:1})}) ; aquí a correlación é eliminado, Usamos unha variable (claro, neste caso,)
= mesmas> n,reprodución(axente de loggedoff)
= mesmas> n,reprodución(adeus)
= mesmas> n,Colgar()

[atencion_clientes] ; Este é o contexto que determina a chamada do membro cola, Se está ocupado facendo nada, Enviar unha mensaxe vía consola.
= eXTEN> _[A-Z].,1,NoOp(-chamada membro -)
= mesmas> n,Conxunto(MEMBRO = ${DB(atencion_clientes / ${EXTEN})})
= mesmas> n,GotoIf($[${SIPPEER(${MEMBRO},curcalls)} = 1]?ocupado)
= mesmas> n,disco(SIP / ${MEMBRO})
= mesmas> n(ocupado),Noop(membro ocupado, chamada en fila) ; aquí só.

Como verás, Usamos un ficheiro, usuarios.txt neste caso, para almacenar nomes de usuario. Podes preguntar o mesmo con unha base de datos.

Asternic con nombres de usuario
Aquí é un detalle de Asternic, para construír estatísticas.

Póñase en contribuír coas súas opinións e solucións alternativas, grazas.


Sobre Anxo Calvo

Apaixonado sobre ciencia e tecnoloxía. Profesor, autor de manuais e sistemas e director de comunicacións.

Deixar unha resposta