Call Center mit FreeSWITCH

Der ideale Call-Flow in einem Unternehmen ist meist deutlich komplexer, als dieses zunächst angenommen wird. Die Flexibilität von Open Source Software erleichtert es daher hier erheblich, individuelle Abläufe dynamisch umzusetzen. Dieses trifft insbesondere auch auf den Entwurf von Call Centern zu. Dieser Beitrag soll dabei helfen, hier mögliche Ansätze aufzuzeigen und den Design-Prozess zu beschleunigen. Obwohl sich hier auf FreeSWITCH fokussiert wird, sollten die Konzepte auch auf andere (insb. Asterisk) übertragbar sein.

Begriffe

Für ein Verständnis von Call Centern ist es notwendig, mit den Begriffen und Konzepten in diesem Umfeld vertraut zu sein:

Outbound vs Inbound

In Call Centern können sowohl ausgehende (outbound) Anrufe getätigt, als auch eingehende (inbound) Anrufe angenommen werden. Ersteres findet vorwiegend zu Marketing-Zwecken oder für Umfragen statt. Die wesentliche Intelligenz liegt dann zum einen im Erkennen, ob ein Mensch das Gespräch annimmt und zum anderen in der Verteilung der ausgehenden Gespräche (predictive automatic dialing) auf die Agenten, so dass diese möglichst wenig auf eine Gesprächsannahme warten müssen. Auf diesen outbound Einsatzzweck hat sich insbesondere ViciDial (mit Asterisk) spezialisiert.
Im Folgenden wird nur noch der inbound-Fall (Contact Center) weiter betrachtet.

Agenten

Die Telefonisten, die in einem Call Center Anrufe entgegen nehmen, werden als Agenten bezeichnet. Diese können on-hook oder off-hook sein. Bei den on-hook-Agenten liegt der Hörer auf der Gabel und Sie müssen das Gespräch aktiv annehmen. Die off-hook-Agenten sind in einem Dauergespräch mit der TK-Anlage, welche neue Gespräche (meist nach einem vorgeschalteten Audio-Hinweis) hinzuschaltet.
Agenten sind extern, wenn diese über eine externe Amtsleitung angebunden sind, und sticky, wenn Anrufer vorzugsweise stets den selben Agenten zugewiesen bekommen.

Queues, Members und Tiers

Anrufer, landen in einer Warteschlange (auch als Queue bezeichnet), in der Sie auf die Zuordnung zu einem Agenten warten (sofern die TK-Anlage insgesamt noch freie Leitungen hat). Diese Agenten sind Mitglied / Member der jeweiligen Warteschlange. Zur selben Zeit können Agenten Mitglied mehrerer Warteschlangen sein, etwa weil sie unterschiedliche Fähigkeiten (skills) beherrschen.

Innerhalb einer Warteschlange werden die Agenten in Ebenen / Tiers organisiert. Der Übergang der Anrufer auf höhere Ebenen ist zeitgesteuert, wodurch zusätzliche Agenten leicht nachgelagert in eine Warteschlange eingebunden werden können.

ACD, IVR und Text-vor-Melden

Zur Sortierung von Anrufern werden diese häufig in einer (vorgelagerten) Automatischen Anruf Verteilung / Automatic Call Distribution (ACD) gebeten, sich selbst (meist durch Drücken einer Taste auf dem Telefon) in die richtige Warteschlange einzuordnen.
Bei einem interaktivem Sprach-Dialog-System / Interactive Voice Response system (IVR) geht die Automatisierung oft noch einen Schritt weiter, da hier Daten des Anrufers (bspw. eine Kundennummer zur Identifizierung oder die Bereitschaft zur Gesprächsaufnahme) automatisch abgefragt und vor einer Weiterleitung ausgewertet werden. Aber auch komplexere Ansagesysteme (bspw. Tastatur- ( oder Sprach-) gesteuerte Anrufbeantworter) fallen in diese Kategorie.
Erfolgt zunächst nur eine reine Ansage, so spricht man in diesem Fall auch von Text-vor–Melden.

Warteschlangen

Typischerweise wird ein Gespräch zunächst angenommen, und dem Anrufer eine Ansage (möglicherweise mit Wahlmöglichkeit) vorgespielt, bevor dieser in eine Warteschlange gestellt wird.
In der Warteschlange hört der Anrufer typischerweise Wartemusik, möglicherweise unterbrochen von allgemeinen (Werbehinweise) oder aber auch individuellen (Warteposition, voraussichtliche Wartedauer, ...) Ansagen. Bei längeren anzunehmenden Wartezeiten kann auch auf die Möglichkeit eines späteren Anrufes (unter Beibehaltung der Warteposition) hingewiesen oder ein späterer Rückruf vom Call Center aus angeboten werden.

Ferner können maximale Wartezeiten (max-wait-time) festgelegt werden, bevor ein alternatives Routing (zumeist Ansage) stattfinden soll. Sollte kein Agent für eine Warteschlange mehr angemeldet sein, so kann sowohl die Verweildauer (max-wait-time-with-no-agent) darin als auch dessen Zulauf (max-wait-time-with-no-agent-time-reached) modifiziert werden.

Agenten in FreeSWITCH

In FreeSWITCH können für die Agenten individuelle Zuweisungs-Pausen nach Anrufen (wrap-up-time), Abweisungen (reject-delay-time), DND (busy-delay-time) sowie verpassten Anrufen (no-answer-delay-time) eingestellt werden. Diese Einstellungen und der jeweilige Status (Available, Available (On Demand), Logged Out, On Break) der Agenten wird in FreeSWITCH zentral in einer Datenbank verwaltet.
Automatisch wird hingegen die Phase / state (Idle, Waiting, Receiving, In a queue call) durch die Call Center Software gesetzt. Einzig der Status Pause / On Break kann auch automatisch gesetzt werden, nachdem ein Agent eine für ihn individuell festgelegte Anzahl von Anrufen (max-no-answer) verpasst hat anzunehmen.

Die Zuordnung der Agenten in die (unterschiedlichen Ebenen der) Warteschleifen erfolgt hiervon separat.

Algorithmen

Eine bewusste Zuteilung von Agenten und Anrufern muss in den beiden folgenden Fällen vorgenommen werden: Es gibt einen
  • neuen Anruf, der verschiedenen freien Agenten zugeführt werden könnte (Agentenauswahl) oder
  • freien Agenten, der einen wartenden Anrufer (Anruferauswahl) auswählen muss.

Agentenauswahl

In FreeSWITCH (und mehrheitlich auch in Asterisk) sind die folgenden Methoden zur Auswahl eines Agenten implementiert:

StrategieErklärung
ring-allAlle Agenten gleichzeitig
longest-idle-agentAgent am längsten frei taking into account tier level.
round-robinNächster Agent seit letztem Mal
top-downNächster Agent von Pos. 1 an alternativ
agent-with-least-talk-timeAgent mit der geringsten Phone-Zeit
agent-with-fewest-callsAgent mit den wenigsten Anrufen
sequentially-by-agent-orderRings agents sequentially by tier & order.
randomZufällige Auswahl eines Agenten
ring-progressivelyNächster Agent von Pos. 1 an zusätzlich

Anruferauswahl

Die Anruferauswahl erfolgt anhand eines individuellen, numerischen Prioritätswertes (cc_base_score) zuzüglich der Sekunden in der Warteschlange / in der TK-Anlage (time-base-score). Hierdurch können bekannten Anrufern (wie Vorgesetzten / Verbundunternehmen / Prämien- oder Bestands-Kunden) leicht eine stufenweise erhöhte Priorität auch in Abhängigkeit der bisherigen Anrufhäufigkeit oder der Tageszeit zugewiesen werden.
Die passende Warteschlange, in Abhängigkeit der jeweils angemeldeten Agenten zu wählen, ist jedoch schwieriger.

Auswertungen

Zur besseren Steuerung eines Call Centers — wie den Einsatzzeiten der Agenten — ist die statistische Auswertung über das Anrufverhalten und über die Agenten durch verschiedener Kennzahlen wichtig. Dazu gehören je Warteschlange:
  • Angemeldete sowie beschäftigte Agenten über den Tag und über die Tage
  • Verteilung der Anrufe über den Tag und über die Tage
  • Verweildauer der Anrufer in der Warteschlange
  • Beantwortungsrate
  • Wartezeit (nicht) beantworteter Anrufe
  • Durchschnittliche Gesprächslänge

Neben einer statistischen Auswertung der Meta-Daten kann auch ein Mitschnitt der Gespräche zum Training der Agenten sinnvoll sein. Dabei kann möglicherweise ein entsprechender Hinweis am Anfang jedes Gespräches unterbleiben, wenn nur die Seite des Agenten aufgenommen wird. Besonders beim Anlernen neuer Agenten kann auch die aktive Teilnahme eines Supervisors / Managers an laufenden Gesprächen sinnvoll sein, wenn dieser nur für den Agenten hörbar ist.
Ein nachgelagertes IVR zur Messung der Zufriedenheit der Anrufer kann hilfreich sein, problematische Telefonate leichter zu identifizieren und (möglicherweise getätigte) Mitschnitte entsprechend zu markieren.