Kapitel 16. Warteschleifen für Call-Center

Warteschleifen sind der Horror vieler Kunden. Trotzdem sind sie in kaum einer Firma mit einem telefonischen Kunden-Service mehr wegzudenken. Daher soll hier beschrieben werden, wie man eine Warteschleife anlegt und welche Einstellungen möglich sind.[80]
Um Warteschlangen einzurichten, sind insbesondere 4 Dateien wichtig:
queues.conf
Definiert Warteschlangen.
agents.conf
Definiert Agenten, also die Mitarbeiter, die die Anrufe entgegennehmen.
musiconhold.conf
Definiert die Wartemusik.
extensions.conf
Im Dialplan werden Anrufe mit Queue()in eine Warteschlange eingereiht und Agenten mit AgentLogin() oder AgentCallbackLogin() am System registriert.
Eine häufige Ursache für Missverständnisse ist die Verwechslung von Queue Members mit Anrufern: Mit den Mitgliedern einer Warteschlange sind immer nur die Agenten, nicht die Anrufer gemeint.

Tipp

Hier wird der Einfachheit halber der Begriff Agenten verwendet, Markus Bönke macht aber folgende Anmerkung:
Sie übersetzen Queue Member mit "Agenten", wenn man aus der Call-Center-Welt kommt, ist das ein bisschen verwirrend, da Queue Members durchaus normale SIP-Extensions sein können.
Das ist völlig richtig. Man muss nicht über den Agent-Channel (der wie ein Proxy funktioniert) gehen, sondern kann auch direkt SIP-Geräte zu einer Warteschlange hinzufügen. Also schreibt man in der queues.conf z. B. member => SIP/1001, oder man fügt das Interface dynamisch aus dem Dialplan mit AddQueueMember()[81] einer Queue hinzu.
Agenten können mehreren Warteschlangen angehören, und wir wollen, dass sich jeder Agent von einer beliebigen Extension aus einloggen kann (Hot-Desking). Das grundsätzliche Vorgehen zur Definition von Agenten und Warteschlangen sieht vereinfacht so aus:
agents.conf
[agents]
;    AgentenNr,Passwort,Name
agent => 1001,1234,Mark Spencer
agent => 1002,1234,Will Meadows
queues.conf
[support-schlange]
member => Agent/1001   ; Agent 1001 zur support-schlange hinzufügen
member => Agent/1002   ;   ... 1002 ...
extensions.conf
exten => 20,1,Queue(support-schlange)   ; => Warteschlange
exten => 25,1,AgentLogin()              ; bei Anruf Login
Und so funktioniert es: Die Agenten loggen sich über Extension 25 ein, hören fröhliche Musik und warten auf Anrufer. Anrufe auf Extension 20 werden in die Schlange aufgenommen und der Reihe nach (FIFO) abgearbeitet: Der Agent hört einen Piepton, und der erste Anrufer wird verbunden.


Ein Beispiel-Setup in AEL von Digium wird ab Asterisk 1.4 in doc/queues-with-callback-members.txt beschrieben.