Attended Transfer mit Call Flow

matthias_b

Customer
Mitglied seit
11. Juni 2025
Beiträge
5
Hallo miteinander,

ich habe mich heute mit dem CFD beschäftigt und versucht, unser recht simples Szenario abzubilden.

Anruf auf Hauptnummer → Vermittlung → Backup → Voicemail → E-Mail

Da ich je nach Situation (Feiertag, Office Hours, Sonstige) verschiedene Ansagen möchte, bin ich mit den Standardfunktionen der Warteschleife + Mailboxes etwas ans Limit gekommen und würde es gerne sauber über CFD lösen.
Allerdings scheitere ich daran, einen »Attended Transfer« zu realisieren. D.h. bei der Vermittlungs-Gruppe klingeln lassen und wenn niemand abnimmt, mit dem Backup weiterprobieren. Weder »Transfer« noch »Make call« scheinen hier die richtige Lösung zu sein. Lässt sich das realisieren und wenn ja, wie?

1749636223720.png

Schöne Grüße
Matthias
 
Hallo miteinander,
Hallo Matthias,

ich habe mich heute mit dem CFD beschäftigt und versucht, unser recht simples Szenario abzubilden.

Anruf auf Hauptnummer → Vermittlung → Backup → Voicemail → E-Mail

Da ich je nach Situation (Feiertag, Office Hours, Sonstige) verschiedene Ansagen möchte, bin ich mit den Standardfunktionen der Warteschleife + Mailboxes etwas ans Limit gekommen und würde es gerne sauber über CFD lösen.
Allerdings scheitere ich daran, einen »Attended Transfer« zu realisieren. D.h. bei der Vermittlungs-Gruppe klingeln lassen und wenn niemand abnimmt, mit dem Backup weiterprobieren. Weder »Transfer« noch »Make call« scheinen hier die richtige Lösung zu sein. Lässt sich das realisieren und wenn ja, wie?
Das geht so nicht. Eine CFA - CFD App - ist kein Telefon. Das hat - wenn überhaupt - nur 1x Audio, also ein Gespräch.

Es gibt keine Programmlogik für: ruf irgendwo für 10 Sekunden an und wenn nicht angenommen wird dann mach irgend etwas anderes. Das Programm gibt ein Gespräch immer ab und damit ist der Main Flow und das eine Audio zu Ende.

Per Transfer wird das eigene ankommende Audio der CFA direkt und komplett abgegeben:
https://www.3cx.com/docs/manual/cfd-components/#h.6v6iaec8fzfp

Per Make Call werden zwei andere Teilnehmer verbunden, das eigene ankommende Audio der CFA wird dabei nicht durchgereicht, das bleibt in der CFA und läuft dort weiter:
https://www.3cx.com/docs/manual/cfd-components/#h.nmz1bzkxt0hq
... The call made is not handled by this voice application ...

Wenn man sich deinen Programmablauf anschaut und die oben beschriebene Unmöglichkeit dazu kommt, dann kann man das alles auch ohne CFA sondern mit dem Anruf an eine Abteilung und der Zeitsteuerung dort umsetzen.

Es gibt eventuell eine etwas komplexere Lösung mit künstl. Parken, Selbstaufruf oder weiteren CFA usw.. Die Antworten auf folgende Fragen entscheiden:
  1. Was ist die Vermittlung?
  2. Was ist VermittlungBackup?
 
Zuletzt bearbeitet:
Hallo und danke für die ausführliche Erklärung!

Ich habe daraufhin eine Enterprise-Lizenz gelöst und das ganze mit Skill Based Routing gelöst. Damit kann ich ja genau die zwei Level von potenziellen »Empfängern« definieren, die nacheinander zum Zug kommen.
 
  • Like
Reaktionen: fxbastler
Wenn es nur zwei einzelne Empfänger sind: ja, möglich. Das war ja meine Frage zu den beiden Zielen, was das je ist.

Wenn das keine WS, IVR oder Abteilungen sind dann gibt es es auch mit einer CFA gewisse Möglichkeiten.
 
Es scheint als hätte ich das Skill Based Routing nicht 100% richtig verstanden. Ich dachte, dass ein Anrufer auch auf die nächste Skill Group eskaliert wird, wenn niemand abnimmt. Das ist aber nicht der Fall und ein explizites Statussetzen ist m.M.n. im normalen Bürobetrieb (wir sind ja kein Call-Center) unpraktikabel.

Ich habe es hier nochmal skizziert: Es geht egtl. um eine ganz normale Rufreihenfolge für Bürobetrieb.

1749711729572.png

Vorher war das mit 3 Ring All Groups gelöst, jeweils weitergeleitet zur nächsten. Die folgenden Probleme sind dabei aber leider nicht lösbar:

1. Keine durchgängige Ansage / Wartemusik für den Anrufer
2. Missed Calls jeweils bei der vorherigen Group → Am Ende weiß niemand, ob ein Anruf entgegengenommen wurde oder nicht.

Das »Skill Based Routing Ring All« wäre egtl. perfekt, wenn es zur nächsten Gruppe eskalieren würde, wenn der Agent nicht abnimmt.
 
wg. Skill-Based Routing:
https://www.3cx.de/forum/threads/feature-request-warteschleifen-addition.123700/post-450722

Du brauchst somit 2 Dummy NSt. für die 10 und je eine weiter Dummy NSt. für die 35, 12 und 42, also insges. 5. Für die 10, 35, 12 und 42 müsstest du 4stellige SIP ID setzen, die SIP ID Telefonie in den generellen 3CX Optionen aktivieren, in den Dummy NSt. jeweils die SIP ID als Mobilnummer hinterlegen, dort hin weiterleiten lassen und diese Dummy NSt. in den höheren Skill Leveln hinzufügen.
 
Danke für die Erkärung, auch wenn ich sie noch nicht 100%ig nachvollziehen kann

Ich schaue jetzt mal, ob ein ein-/auschecken bei den Telefonen im Alltag praktikabel ist und zuverlässig funktioniert. Wenn ja, bräuchte es diese Bastellösung ja nicht. Wenn nein, werde ich vllt. nochmal darauf zurückkommen.

Finde es an der Stelle spannend, dass es keine Möglichkeit gibt, z.B. Ring Groups zuzuweisen o.ä., über die das lösbar wäre. Eigentlich - und das bestätigt auch die Suche im Forum - ist das ein ziemlich häufiger Use Case, der aber leider nicht abbildbar ist.
 
Danke für die Erkärung, auch wenn ich sie noch nicht 100%ig nachvollziehen kann
voll gerne

Finde es an der Stelle spannend, dass es keine Möglichkeit gibt, z.B. Ring Groups zuzuweisen o.ä., über die das lösbar wäre. Eigentlich - und das bestätigt auch die Suche im Forum - ist das ein ziemlich häufiger Use Case, der aber leider nicht abbildbar ist.
Ich weiss nicht was du damit meinst. Beschreibe es bitte.
Als Hinweis: es ist mit einer CFA möglich, sich oder Andere bei RG oder Abteilungen hinzuzufügen oder zu entfernen. Ich habe div. Beispiele dazu im Forum geschrieben.
 
> Ich weiss nicht was du damit meinst. Beschreibe es bitte.

Ich meinte damit, dass das von mir beschriebene Szenario wohl von vielen gewünscht ist, weil es ein typischer Office-Use-Case ist. Sekretariat, Fallback + evtl. Fallback 2, jeweils mit mehreren Personen, die parallel angerufen werden und bei Timeout geht es auf den nächsten Level. Das könnte eine von 3CX implementierte Polling Strategy sein.

Es würde egtl. genügen, wenn man pro Skill Group ein Timeout festlegen könnte.
 
Der einfachste Weg mit einer CFA ist das Abfragen der Queue Statuse.

Du holst dir jeweils die verfügbaren Agenten der Queue, prüfst ob mindestens 1 Agent online ist und wenn ja wirfst du in die Queue ab.

Wenn keiner da ist wirfst du mittels Transfer in die zweite, dritte vierte Queue ab (nach Prüfung) Die Queues vermitteln jeweils untereinander auf die jeweils Nächste. Am Ende lässt du wieder auf den CFD laufen der dann, ausgelöst durch ein am Anfang hinzugefügten AttachCallData Wert ein "Niemand da Audio" ausspielt.

Das kannst du dann so anpassen, das je nach Menge verfügbarer Agenten oder calls.waiting die Queues als Fallback greifen.

Würde auch mit einzelnen Usern oder Gruppen gehen. Die CFA bestimmt also den frühstmöglichen bzw. optimalen Einstiegspunkt.
 
Das hat er doch gar nicht gefragt.

Ich nehme an, es sind immer genug angemeldet und in einem Status in dem es an der NSt. rufen kann (Verfügbar oder Benutzerdefiniert 1) und die NSt. spricht auch gerade nicht. Das sind schon drei Bedingungen die abzufragen wären.

Es passiert dennoch - eigene Erfahrung, dass das alles zutrifft aber eben nicht in der zur Verfügung stehenden Zeit abgehoben wird und daher ein Überlauf stattfindet. Genau das hat er beschrieben.

Dann sollen aber alle NSt. der ersten auch in der zweiten WS usw. kaskadierend signalisiert werden und wenn möglich bis zum Ende nirgend ein in WS verpasster Anruf erscheinen.

Das geht eben nur wie von mir beschrieben mit Dummy NSt. in einer WS mit Skill-Based Routing, s.o. und Link.
 
Mein Beispiel lässt sich ja ausweiten auf die Logik mit der Mailbox.

Andere Idee mit einem Makecall (noch nie probiert aber theoretisch möglich):

Man lässt eine CFA über einen Makecall die Queue anrufen. Die Queue verweist am Ende auf einen CFA wo geschaut wird wer session.ani ist. Ist session.ani ein CFD lässt man ein "STOPP" Audio ausspielen.

Die CFA die den Anruf an die Queue ausführt lauscht mittels STT auf dieses Stopp. Wird es nach X Sek. nicht gehört ist der Anruf nicht angenommen worden und die CFA übergibt diese Info an die ursprünglichen CFA die dann entsprechend den "Record and Email" Block nutzt.

Wird der Anruf entgegengenommen, spielt die CFA die den MakeCall auslöst ein Audio ab, das ein neuer Anrufer in der Queue wartet der gleich durchgestellt wird. Da der Makecall entgegengenommen wurde, kann der Anrufer nun im besten Fall direkt an denjenigen vermittelt werden der den Call angenommen hat. Hier könnte man die active Connections während des Makecalls tracken oder in der Historie schauen.

Während der ganzen "Makecall Phase" hört der Anrufer einfach Musik.

ggf. braucht man einen Benutzerdefinierten Parameter zur Übergabe des STOPP Cases, da der Anruf beim Makecall theoretisch true zurückgibt wenn er durch die Warteschleife angenommen wurde und ja in einer anderen CFA läuft. Das müsste man mal testen. Sollte er erst true zurückgeben wenn er wirklich mit einem User verbunden ist wäre es noch besser. Dann braucht man nur den "Test/Info Anruf" zu tracken und entsprechend des Ergebnisses in der CFA, Weg A oder B gehen.

Man könnte das theoretisch noch so ausweiten das der Agent zusätzlich wählen könnte das er den Anruf nicht will z.B. durch Ankündigung der Nummer u.v.m.

Mehrere Queues brauchst du trotzdem. Durch den Testanruf wird aber halt nur in die Abgeworfen in der auch jemand rangeht und der User hört durchgängig vorm Durchstellen die selbe unterbrechungsfreie Musik.
 
... Makecall (noch nie probiert aber theoretisch möglich) ...
ich schon, nicht nur theoretisch, daher mein Post oben :)

Die wirklichen Probleme bei WS sind: durchgehendes Audio für den Anrufer in Verbindung mit paralleler Abarbeitung der Hintergrundverbindungen trotz Audio in Verbindung mit direkter (oder sehr kurzzeitiger direkter) Vermittlung an einen WS Nutzer - auch für den der in der WS den Anruf annimmt. Das ist nicht nur eine Komfortfrage.

Am Rande: es braucht dafür kein STT. Eine anderweitige Datenübergabe mit 3CX Bordmitteln oder einer Datei mit PID / CID usw. reicht völlig.
 

Statistik des Forums

Themen
44.750
Beiträge
233.642
Mitglieder
78.492
Neuestes Mitglied
dirk.kuttler