Comment utiliser les noms d'utilisateur avec des agents dynamiques Asterisk Files d'attente

Attribuer des noms d'utilisateurs membres Asterisk Queues

Cet article verra une façon d'assigner des agents, Les membres ont également appelé, Asterisk Queues, un nom d'utilisateur, d'utiliser et de faciliter le suivi.

Pour ce faire, nous supposons une installation simple Asterisk sur une distribution Debian. A cette installation, nous avons inclus literie FOP2 y pour un exemple d'application.

évidemment, Asterisk connaissance préalable requise.

justification

Lorsque les membres dynamiques sont utilisés pour les files d'attente d'appel dans Asterisk, nous rencontrons le problème que les utilisateurs qui prennent les appels sont identifiés par le numéro de poste où ils travaillent. Dans de nombreux environnements de travail extensions peuvent être utilisés par différents utilisateurs; il est alors nécessaire de trouver des moyens pour identifier pas son extension (Numéro SIP par exemple) mais par un nom d'utilisateur normal.

Colas de Asterisk en FOP2 sin nombres de usuario
Une image de FOP2, avec des agents normaux, Ils sont reconnus par leur numéro de poste.

En utilisant les noms d'utilisateur, le suivi des dossiers par (journaux) ou des statistiques de construction seront plus intuitive et efficace.

Colas de Asterisk en FOP2 con nombres de usuario
Ici, il est vérifié et comment nous pouvons voir dans FOP différents utilisateurs.
Colas de Asterisk en FOP2 con usuarios dinámicos en funcionamiento
Nous voyons qui est occupé et qui est disponible pour d'autres appels, etc.

développement

Pour développer ce que nous utilisons des chaînes locales; Ils sont appelés ainsi parce qu'ils sont utilisés pour faire des appels dans le système d'Asterisk, sans sortir.

Vous pouvez trouver plus d'informations à ce sujet dans:
chaînes locales (en anglais)

Dans nos travailleurs sociaux effectuent un de ces appels à devenir membres de la file d'attente ou des files d'attente correspondantes. Chaque opérateur utilisera un code appelant à faire, ce code utilisera comme nom d'utilisateur pour identifier.

Peu importe de quelle extension l'appel est effectué, et non pas l'élément de queue est reconnu pour son canal SIP, sinon pour la station locale.

Créons un exemple qui sert à tout comprendre.

Dans cet exemple,, les opérateurs seront connectées à la queue clientèle tapant leur code (les noms d'utilisateur) avant avec un astérisque, à enregistrer à partir de tout terminal.

Ils ont créé un canal local enregistrement, et ils sont introduits dans le contexte atencion_clientes alors il devrait apparaître dans le plan d'appel. cet enregistrement est stocké dans la base de données par l'astérisque par l'utilisateur de corrélation terminal_SIP, afin de se refléter dans l'utilisateur se connecte (mais, seuls les registres de terminaux SIP)

Lorsque l'utilisateur quitte son poste, vous avez saisi votre nom d'utilisateur Précédé par un zéro.

Ejemplo de uso en un softphone
Softphone de mode de réalisation Zoiper

Tout ce que nous faisons dans ce fichier de configuration /etc / astérisque / extensions.conf, Je laisse commentais être mieux compris:

[sortant]
eXten => _ *[a-z].,1,NoOp(-- Connexion demande --)
même => n,Ensemble(VAR = ${COQUILLE(grep ${EXTEN:1} /etc / astérisque / fichiers / users.txt -w)}) ; Nous gardons un nom de fichier valide.
même => n,GotoIf($["${OÙ}" = ""]?suspendu) ; Si le nom ne figure pas dans le fichier saisi par l'opérateur, expulse.
même => n,AddQueueMember(clientèle,Local / ${EXTEN:1}@atencion_clientes)
même => n,Ensemble(DB(atencion_clientes / ${EXTEN:1})= ${IDENTIFICATION DE L'APPELANT(un)}) ;Nous enregistrons cette corrélation dans la base de données interne Asterisk
même => n,Lecture(agent loginok)
même => n(suspendu),Raccrocher()
 ; désenregistrer utiliser le caractère 0 au lieu de * avec le même code.
eXten => _0[a-z].,1,NoOp(-- demande de déconnexion miembros--)
même => n,RemoveQueueMember(clientèle,Local / ${EXTEN:1}@atencion_clientes)
même => n,Ensemble(supprimer = ${DB_DELETE(atencion_clientes / ${EXTEN:1})}) ; ici la corrélation est supprimée, Nous utilisons une variable (clair dans ce cas)
même => n,Lecture(agent loggedoff)
même => n,Lecture(Au revoir)
même => n,Raccrocher()

[atencion_clientes] ; Tel est le contexte qui détermine l'appel de l'élément de queue, Si occupé à ne rien faire, Envoyer un message via la console.
eXten => _[a-z].,1,NoOp(-Call -)
même => n,Ensemble(MEMBRE = ${DB(atencion_clientes / ${EXTEN})})
même => n,GotoIf($[${SIPPEER(${MEMBRE},curcalls)} = 1]?occupé)
même => n,Cadran(SIP / ${MEMBRE})
même => n(occupé),noOp(membre occupé, appel mis en attente) ; ici juste.

Comme vous pouvez le voir, Nous utilisons un fichier, usuarios.txt dans ce cas, pour stocker les noms d'utilisateur. Vous pourriez demander la même chose avec une base de données.

Asternic con nombres de usuario
Voici un détail de Asternic, pour construire des statistiques.

Ne hésitez pas à faire part de vos opinions et solutions alternatives, merci.


Au sujet de Ange Calvo

Passionné par la science et de la technologie. Professeur, auteur de manuels et de systèmes de communications et gestionnaire.

Laisser un commentaire