Warteschleifen für Call-Center

In diesem Kapitel:

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.

Um Warteschlangen einzurichten, sind insbesondere 4 Dateien wichtig:

queues.conf

Definiert Warteschlangen.

agents.conf

Definiert „Agenten“, also die Mitarbeiter, die die Anrufe entgegennehmen. In der Praxis werden heute häufig statt des Agent/-Kanals direkt PJSIP-Endpoints als Queue-Mitglieder verwendet — agents.conf ist dann überflüssig.

musiconhold.conf

Definiert die Wartemusik.

extensions.conf

Im Dialplan werden Anrufe mit Queue() in eine Warteschlange eingereiht. Agenten werden entweder statisch in queues.conf oder dynamisch mit AddQueueMember()/RemoveQueueMember() im Dialplan verwaltet. AgentLogin() existiert weiterhin für klassische Callcenter-Agenten mit dediziertem Login.

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.

Hier wird der Einfachheit halber der Begriff „Agenten“ verwendet, Markus Bönke macht aber folgende Anmerkung:"Queue Member" mit "Agenten" zu übersetzen ist historisch gewachsen; wer aus der Call-Center-Welt kommt, kennt auch Queue Members, die einfach normale SIP-Extensions sind. Das ist völlig richtig: Man muss nicht über den Agent-Channel (der wie ein Proxy funktioniert) gehen, sondern kann auch direkt PJSIP-Geräte zu einer Warteschlange hinzufügen — statisch in der queues.conf (member ⇒ PJSIP/1001) oder dynamisch aus dem Dialplan mit AddQueueMember().

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.