Les files d’attente peuvent être utiles pour gérer les appels entrants.
Le concept de base fait penser aux Ring Group, même si les Queues permettent de mieux gérer la distribution des appels.
Dans cet article nous verrons comment mettre en place une file d’attente basique.
1) Fonctionnement
Une file d’attente dans Asterisk fonctionne comme une vraie file d’attente.
Lors-ce qu’un utilisateur appel, il est placé dans la file d’attente, à la fin, et une musique d’attente lui est jouée.
Le premier entré dans la file sera le premier à sortir (sauf en cas d’utilisation de priorité).
Des agents doivent faire partie de la file d’attente. Leur rôle sera de prendre en charge les appels dans la file d’attente.
De cette manière, nous pourrons avoir 5 appels dans la file d’attente, ainsi que deux agents qui se chargent de la file.
Petit à petit, les agents vont prendre les appels, jusqu’à vider la file d’attente.
C’est là la première différence avec les Ring Group.
Quand un appel entre dans un Ring Group, il va automatiquement être routé vers le premier utilisateur du Ring Group, quitte à générer un double appel si celui-ci est déjà occupé.
Alors que dans une file d’attente, les appels seront dirigés vers les utilisateurs libres.
Autre différence, les agents peuvent rejoindre et quitter la file d’attente.
C’est-à-dire qu’un agent n’est pas forcé de prendre en charge les appels de la queue.
2) Configuration d’une file d’attente
La configuration d’une file d’attente fait appel aux fichiers queues.conf et extensions.conf.
La file d’attente sera définie dans le fichier queues.conf.
Nous pourrons y placer de nombreux paramètres (musique d’attente, temps de sonnerie, stratégie de répartition des appels, etc…).
Le fichier extensions.conf contiendra la configuration qui permet aux agents de rejoindre la file d’attente.
C’est aussi grâce à ce fichier que nous pouvons placer des appels dans la file d’attente.
Commençons par définir la file d’attente.
Dans le fichier queues.conf, placer la configuration suivante :
[sav] musiconhold=default strategy=rrmemory timeout = 20 retry = 15 maxlen = 0 wrapuptime=15 joinempty = no leavewhenempty = yes
Musiconhold fait référence aux sections du fichier musiconhold.conf.
Strategy permet de définir la stratégie de réparation des appels.
Il existe différentes stratégies :
- ringall : les postes de tous les agents sonnent, l’appel est donné au premier qui décroche
- roundrobin : donne les appels aux agents à tour de rôle
- leastrecent : donne l’appel à l’agent inactif depuis le plus longtemps
- fewestcalls : donne l’appel à l’agent qui a pris le moins d’appel
- random : donne l’appel à un agent au hasard
- rrmemory : donne les appels aux agents à tour de rôle, en gardant en mémoire le dernier qui a eu un appel
Timeout définit le temps maximum de sonnerie du poste d’un agent, avant de passer l’appel à l’agent suivant.
Retry définit le temps qu’Asterisk attend avant de retenter de placer un appel chez l’un des agents.
Maxlen définit le nombre maximum d’appels dans la Queue. 0 permet de ne pas mettre de limite.
Wrapuptime définit le temps minimum avant qu’Asterisk puisse redonner un appel à un Agent qui vient de raccrocher.
Joinempty permet d’autoriser ou non le placement d’appel dans une file d’attente dans laquelle il n’y a aucun agent.
Leavewhenempty permet de sortir les appels d’une file d’attente dans l’laquelle il n’y a aucun agent.
Libre à vous de personnaliser ces paramètres en fonction de vos besoins.
Sachez qu’il en existe encore bien d’autres.
Passons à présent à la configuration du fichier extensions.conf.
Premièrement, nous devons permettre aux agents de rejoindre et de quitter la Queue.
Voici la configuration pour les agents. Celle-ci est à placer dans les contextes contenant des utilisateurs pouvant devenir Agent.
N’oubliez pas qu’il est possible de placer la configuration dans un contexte parent, pour ensuite inclure ce contexte dans d’autres contextes.
exten => 961,1,Addqueuemember(sav,SIP/${CALLERID(num)}) exten => 961,n,Playback(agent-loginok) exten => 961,n,Hangup exten => 962,1,Removequeuemember(sav,SIP/${CALLERID(num)}) exten => 962,n,Playback(agent-loggedoff) exten => 962,n,Hangup
Quand un utilisateur compose le 961, il devient agent de la Queue « sav ».
Quand il compose le 962, il perd son statut d’agent de la Queue « sav ».
Pour ce qui est de placer des appels dans la Queue, la configuration est la suivante :
exten => 960,1,Answer exten => 960,n,Queue(sav|t) exten => 960,n,Voicemail(101) exten => 960,n,Hangup
Tous les appels vers 960 seront redirigés vers la Queue.
L’option « t » de la ligne 2 permet à l’appelé de rediriger l’appel.
Avec la configuration précédente, tous les appels sur 960 seront placés dans la file d’attente « sav », et les utilisateurs s’étant enregistrés en composant le 961 pourront prendre en charge ces appels.
L’idéal serait bien entendu de jouer un message d’accueil à l’utilisateur qui entre dans la Queue.
Vous pouvez faire cela avec un fichier audio, ou avec du TTS (si vous avez déjà configuré ce dernier).
Par exemple :
exten => 960,1,Answer exten => 960,2,agi(googletts.agi,"Bonjour et bienvenue chez NetworkLab !",fr,any) exten => 960,3,agi(googletts.agi,"Un de nos conseillers va prendre votre appel.",fr,any) exten => 960,n,Queue(sav|t|||30) exten => 960,n,Voicemail(101) exten => 960,n,Hangup
Laisser un commentaire