CFD - Skript eine Art von Notruf Knopf

Hans.Westner

Platinum Partner
Mitglied seit
13. August 2021
Beiträge
45
Hallo zusammen,


ich möchte ein CFD-Skript erstellen. Ich weiß, was das Skript am Ende machen soll, und habe dazu auch eine Grafik erstellt (siehe Anhang), die den Ablauf beschreibt.
Allerdings bin ich mir unsicher, welche Module ich im CFD dafür einsetzen muss, um den Ablauf korrekt abzubilden.


Könnte mir jemand von euch dabei helfen, ein solches CFD zu bauen oder mir zumindest Tipps geben, welche Module ich am besten verwenden sollte?


Vielen Dank schon im Voraus für jede Unterstützung!
 

Anhänge

  • cfg.jpg
    cfg.jpg
    160,2 KB · Aufrufe: 17
Merke: eine CFD Anwendung kann grundsätzlich nur einen Anruf mit Audio selber abwickeln.

So wie ich das lese wird gewünscht, dass die CFD Anwendung die NSt. 01 anruft (zweiter Block oben, Anruf an Tel.: 01, weiter unten das Ganze noch einmal) und dann dort Audio abspielt. Dann heißt das: der Anrufer wird an die NSt. 01 vermittelt und bei Annahme ist der Anruf aus dem normalen CFD Ablauf weg. Kein Audio mehr dort. Dann hat man nur noch den Ablauf im Disconnect Handler Flow der CFD Anwendung und da gibt es kein Audio des Anrufes mehr, nur noch MakeCall zwischen zwei anderen NSt. (oder anderen CFD Anwendungen).

Erkläre deinen PAP bitte ein klein wenig genauer. Es kann sein, mit zwei oder drei CFD Apps bekommt man das hin.

Nachtrag: Was genau ist Tel. 01 und Tel. 02?
 
wenn ich dich richtig verstehe müsste das so jetzt funktionieren
 

Anhänge

  • cfd_02.jpg
    cfd_02.jpg
    155,9 KB · Aufrufe: 10
Noch einmal die Frage: Was ist die 01 und was die 02? Sind das irgendwelche Nebenstellen (zu denen vermittelt werden soll) oder sind das selber CFD Apps oder ist das die selbe CFD App?
 
Geplant sind Nebenstellen oder oder Handynummern, da ich mich mit dem CFD 0,0 auskenne bin ich hier noch offene
 
Anders herum - falls die 01 / 02 keine Geräte / irgend etwas anders inner- / ausserhalb der 3CX ist:
  1. Anruf an die CFD App
  2. Abspielen Audio 1
  3. Abfrage ob # betätigt oder nicht
    1. wenn ja, dann Ende
    2. wenn nein, dann:
      1. Abspielen Audio 2
      2. Abfrage ob # betätigt oder nicht
        1. wenn ja, dann Ende
        2. wenn nein, dann Weiterleitung zu xyz
Wenn dem so ist: das kann eine einzelne CFD App.

Geplant sind Nebenstellen oder oder Handynummern,
Dann wird also vermittelt. Dann ist Audio weg.
 
Ich beschreibe es kurz wie es lt. deinem akt. Plan ablaufen würde wenn z.B. 01 eine sonst. NSt. oder ext. Nummer ist:
  1. Anruf an CFD App
  2. CFD App vermittelt an 01
  3. wenn bei 01 der Anruf angenommen wird, dann Ende der CFD App
    es wird noch der Ablauf im Disconnect Handler abgearbeitet - kein Audio mehr, keine Eingabe usw.
 
Vielleicht habe ich deine Idee jetzt verstanden:
Kann es sein, dass du dir das so vorstellst: du 'lädst' einen weiteren Teilnehmer zum Gespräch (zwischen Anrufer und der CFD App) hinzu, greifst dann hier und da (Audio, Abfrage Eingabe) ein?

Das wäre dann so etwas wie eine Telefon Konferenz zw. zeitweilig drei Teilnehmern von denen die CFD App immer mal einen ein- und auslädt.

Habe ich das so annähernd richtig verstanden?
 
Das hört sich für mich auch umsetzbar an im kurzen erklärt:

es geht um eine Taste (z.B. BLF) diese wird gedrückt dann soll eine CFD app aufgerufen werden die soll dann für einen oder mehrere Nutzer anrufen bis einer den Anruf mit # bestätigt, und nach der Bestätigung den Anruf beenden.
 
es geht um eine Taste (z.B. BLF) diese wird gedrückt dann soll eine CFD app aufgerufen werden die soll dann für einen oder mehrere Nutzer anrufen bis einer den Anruf mit # bestätigt, und nach der Bestätigung den Anruf beenden.
Der Angerufene - also die 01 oder die 02 - soll mit # bestätigen und die CFD App soll das auswerten?
 
Dann hier der aktuelle Stand was geht und was nicht:
Das wäre dann so etwas wie eine Telefon Konferenz zw. zeitweilig drei Teilnehmern von denen die CFD App immer mal einen ein- und auslädt.
Das geht nicht mit Bordmitteln des CFD, s.o.: eine CFD App = ein Anruf.
Wir (auch andere im Forum) basteln da schon länger mit C# daran herum. Wir bekommen es nicht, nicht sicher und nicht dauerhaft hin. Ich persönlich bin mir sicher, dass das irgendwie funktionieren kann. Auch wenn das nicht vorgesehen ist. Wir bekommen es eben nicht hin.
Also: keine Lösung, keine Option für dich. Das ist der erste Grund warum die Idee so nicht umsetzbar ist.

Der Angerufene - also die 01 oder die 02 - soll mit # bestätigen und die CFD App soll das auswerten?
Das ist dann noch eine weitere und vmtl. völlige Unmöglichkeit: mitten im Audio in einer irgendwie erzeugten Konferenz DTMF Signale (das # ist eines) von irgend einem Teilnehmer auszuwerten. Das wird mit Sicherheit nicht machbar sein. An so eine Umsetzung brauchen wir erst einmal gar nicht denken.

Wenn die 01 und die 02 eine (oder gar dieselbe) CFD App wären, dann wäre das machbar. Aber sobald der Anruf die CFD App verlässt - spätestens beim vermitteln weil eben eine Konferenz nicht machbar ist - dann beendet sich der normale Ablauf der CFD App. Keine Chance irgend etwas hinterher zu bekommen. Es gibt ja auch keine Möglichkeit den Anruf auf diese oder eine andere CFD App zurück zu vermitteln um den geplanten Ablauf weiter ablaufen zu lassen. Das ist das Problem.
 
Moin, wenn ich das richtig verstanden habe gehts dir um die Bestätigung eines Anrufs durch einen oder mehrere Empfänger.

Ich habe soetwas in der Art (für einen Empfänger der den Anruf quittieren muss) für einen Kunden gebaut. Sollte nicht quittiert werden wird der Anruf jede X Minuten/Sekunden neu ausgeführt, solange bis jemand den Anruf bestätigt bzw. ein gesetztes Ausführungslimit erreicht ist.

Ich denke das lässt sich mit einer Rufgruppe auch auf mehrere gleichzeitige Calls ausweiten. Müsste ich mal probieren.

Melde dich gerne mal direkt bei mir.
 
Zuletzt bearbeitet:
  • Haha
Reaktionen: fxbastler
^Ich habe und hatte das schon fertig :D

Für die Mitleser: ich hatte just in dem Moment mit Patrick dazu geschrieben und bis eben telefoniert, u.a. auch deswegen.

Ich schreibe und stelle das dann noch komplett hier ein. Ist ein nettes Beispiel für den Anfang.
 
Zuletzt bearbeitet:
Nach kurzer Klärung mit dem OP @Hans.Westner gibt es eine kleine aber wesentliche Erleichterung des Ganzen: der Anrufende für den Notfall braucht keine Konferenz mit den anderen die informiert werden sollen. Dadurch ist es überhaupt möglich, das mit dem CFD zu bauen.

Es wird nur eine CFD App - eine Nummer - angerufen und dann nimmt das Ganze seinen Lauf.

Die Lösung sind in Summe 3 CFD Apps mit Standardbausteinen bis auf ein C# Schnipsel das eine kleine Pause erzwingt.

Die erste CFD App (850) wird im Notfall angerufen, setzt einen globalen 3CX Parameter, verbindet App 2 (851) mit App 3 (852) und legt einfach auf.

Die zweite CFD App (851) macht Anrufe nacheinander auf den ersten, später evtl. den zweiten, evtl. noch mit dem dritten Notfallkontakt und verbindet den angerufenen Notfallkontakt jeweils mit der dritten CFD App (852). Dabei wird in dem globalen Parameter immer die zuletzt verbundene Nummer des Notfallkontakt hinterlegt. Die Notfallkontakte können auch externe Nummern sein.

Die dritte CFD App (852) redet mit den Notfallkontakten die zu ihr verbunden werden und fragt die nach dem # ab.

Wenn einer der Notfallkontakte nicht erreichbar ist oder er den Anruf annimmt und auflegt oder er den Anruf annimmt und nicht mit # bestätigt, dann wird der nächste Notfallkontakt vermittelt.

Das kann man beliebig um weitere Stufen ausbauen, siehe CFD App 851. Die anzurufenden Notfallkontakte sind dort als Variablen hinterlegt. Auch das ist leicht änderbar.

Prinzipiell ist es mit einigen Tricks auch möglich alle drei CFD Apps in eine einzelne zu integrieren. Die ruft sich dann selber an und vermittelt immer wieder mit sich selber. Das ist dann schon ein klein wenig Kunst. Die CFD App wird nur ein klein wenig unübersichtlich und die Fehlersuche gestaltet sich schwieriger - aber es ist möglich. Der Einfachheit und Übersichtlichkeit halber lasse ich das hier sein.

Die in den Beispielen hinterlegten Audio Dateien in der CFD App 852 dürft ihr gern selber austauschen :)

Eine Einschränkung hat das Ganze:
Auf Grund der einfachen Lösung unter Nutzung eines globalen 3CX Parameter kann das Ganze nur einmal zur gleichen Zeit laufen. Wird der Notruf (850) innerhalb des gesamten Ablauf noch einmal angerufen, dann dreht das Programm durch. Es fängt tlw. wieder von vorn an und ruft dann die Notfallkontakte nacheinander mehrfach an. Das Problem zu umgehen wird ein klein wenig schwierig.

Lade die drei kompletten CFD Projekte herunter, entpacke die, öffne das Projekt Notruf851 und passe die drei Notrufnummern oben an (SetCallNr1 bis 3), kompiliere das noch einmal, lade die drei kompilierten CFD Projekte in die 3CX und rufe die 850 an.

Ich hoffe ich habe bei den letzten Namensänderungen keinen Typo drin ...
 

Anhänge

Eine Einschränkung hat das Ganze:
Auf Grund der einfachen Lösung unter Nutzung eines globalen 3CX Parameter kann das Ganze nur einmal zur gleichen Zeit laufen. Wird der Notruf (850) innerhalb des gesamten Ablauf noch einmal angerufen, dann dreht das Programm durch. Es fängt tlw. wieder von vorn an und ruft dann die Notfallkontakte nacheinander mehrfach an. Das Problem zu umgehen wird ein klein wenig schwierig.
Ein Gedanke...
Wenn 850 annimmt wird von dieser eine NST (Dummy) auf einen anderen Staus gesetzt der folgende Anrufe zu 850 umleitet bzw warten lässt. In dem Teil der die Bestätigung # erkannt hat und oder wo das ganze nach x Durchläufen beendet wird , wird dann der Status vom Dummy wieder auf "verfügbar" gestellt.
 
Kann man machen, aber je nach Szenario reicht das nicht. Das ist grundsätzlich komplexer. Das wurde hier alles außer Acht gelassen.

Wenn berechtigterweise mehrere solcher Anrufe eingehen während noch abgearbeitet wird und die auch noch abgearbeitet werden müssen (ja, das kann passieren und damit muss man immer rechnen), dann braucht man einen Scheduler und eine sichere FIFO Pipe. Da sind wir schnell wieder bei atomaren Befehlen und mind. einer weiteren CFD App die rein als FIFO Scheduler funktioniert um das ganze reentrant und dauerhaft sicher zu gestalten.
 
Ja bei "komplex" bin ich noch raus. Ich bin am Anfang.
Frage ist ja zb auch darf denn ein 2. Ruf warten und wie lange.
Klingt oben wie zb. ein Schwesternruf im Seniorenheim den irgend ein MA bestätigen muss.
 
  • Like
Reaktionen: MarcosV_3CX

Statistik des Forums

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