CFD und Feiertagsscript

MarcelW

Silver Partner
Advanced Certified
Mitglied seit
26. Januar 2023
Beiträge
23
Hallo zusammen,

wir haben folgendes Problem.
Bei einem Kunden läuft ein Call Flow Skript, welches die Steuerung der Telefonie während Geschäfts, Pausen und Geschlossen Zeiten steuert.
Nun wollten wir der Einfachheit halber für die Steuerung der Feiertage das vorhandene Holiday Skript laufen lassen.
Leider kommt trotzdem die normale Ansage und das Holiday Skript wird anscheinend links liegen gelassen.
Die Anlage läuft on Premise als VM.

Vielleicht hat jemand eine Idee warum das nicht geht oder wie man es eventuell lösen kann.
Bin über jede Hilfe dankbar.

Gruß
Marcel
 
Danke für die Rückmeldung.
Die Anleitung kenne ich und habe das soweit auch umgesetzt. Das Holiday Skript ist auch bei uns im Einsatz und funktioniert auch, aber bei der Anlage wo die Anrufe über Call Flow gesteuert werden, da wird das Holiday Skript irgendwie ignoriert.
 
Wenn das Skript wie in der Anleitung beschrieben eingesetzt wird (Start bei Anruf auf SIP Trunk, alle NSt. / RG / WS / IVR sind einer Abteilung zugeordnet, indiv. Feiertage mit Ansagen wurden in Abteilungen angelegt), dann funktioniert das.

Man kann das Skript debuggen. Protokollierungsstufe des Aktivitätsprotokoll der 3CX erhöhen und so den eingehenen Anruf verfolgen.
Eventuell gar noch mit MyCall.Error("Ich war hier - 3.2.25 fxbastler"); zusäzliche Einträge zu Laufzeit in das Protokoll 3CXCallFlow.log schreiben.

Dann:
Erkläre das bitte kurz wenn nötig.
ist das wohl doch erklärungsbedürftig.
 
Ja, so hatte ich das angelegt. Ich habe jetzt auch nochmal getestet und im Aktivitätsprotokoll steht auch drin, dass der "Flow" Holiday aktiviert wird, aber danach leitet er das Gespräch trotzdem auf den normalen Call Flow weiter.
In den Einstellungen von dem Holiday Skript kann man nur "Systemweit" auswählen, dann habe ich unter den Abteilungen geguckt und dort konnte ich das Holiday Skript der entsprechenden Abteilung zuordnen und es funktioniert.
Hätte aber gesagt, dass das auch funktionieren sollte, wenn das unter "Systemweit" steht.

anbei einmal die Grafik vom Call Flow.
 

Anhänge

  • Screenshot 2025-02-03 111827.png
    Screenshot 2025-02-03 111827.png
    11,4 KB · Aufrufe: 14
... aber danach leitet er das Gespräch trotzdem auf den normalen Call Flow weiter.
Dann schreibe hier und da so eine Zeile in's Log und kontrolliere das, auf einer Linux 3CX z.B. in einer shell mittels
tail -f /var/lib/3cxpbx/Instance1/Data/Logs/3CXCallFlow.log

Wenn ein Anruf auf dem SIP Trunk mit dem Skript eingeht, dann wird auf Grund der angerufenen Nummer (DID ab Zeile 25) oder der anrufenden Nummer (CID ab Zeile 30) oder der Standardroute des SIP Trunk (Zeile 44) das Ziel des Anrufes ermittelt (die Routine FindDefaultDestination), die Zeitsteuerung der zugehörigen Abteilung abgefragt (Zeile 64) und wenn dort ein aktuell gültiger Feiertag mit einer Audio Datei hinterlegt ist (Zeile 67) dann wird diese abgespielt.

Füge an geeigneten Stellen (z.B. vor 60, 64, 69) Log Zeilen dazu und du kannst den Anrufverlauf verfolgen.

In den Einstellungen von dem Holiday Skript kann man nur "Systemweit" auswählen
Das ist richtig. Man kann jedem Skript eine Abteilung zuweisen, aber das ist für dein Vorhaben unnötig.

anbei einmal die Grafik vom Call Flow.
Dir ist bekannt, dass diese Abfrage mit dem offiziellen CFD v18 in einer 3CX v20 nicht ohne Änderung des Code funktionieren wird?
https://www.3cx.com/community/threa...ay-from-call-flow-designer.126381/post-606796

Unabhängig davon denke ich, euer CFD Konstrukt ist nicht richtig gebaut. Nicht in einer Condition 2x Transfer und einen dritten Transfer darunter sondern alle drei Transfer nebeneinander. Die Abarbeitung erfolgt von links nach rechts. Ganz rechts sollte der Transfer stehen, der in keinem der anderen Fälle zuvor erfasst wurde, quasi der Überlauf.
 
Zuletzt bearbeitet:
Dann schreibe hier und da so eine Zeile in's Log und kontrolliere das, auf einer Linux 3CX z.B. in einer shell mittels
tail -f /var/lib/3cxpbx/Instance1/Data/Logs/3CXCallFlow.log

Wenn ein Anruf auf dem SIP Trunk mit dem Skript eingeht, dann wird auf Grund der angerufenen Nummer (DID ab Zeile 25) oder der anrufenden Nummer (CID ab Zeile 30) oder der Standardroute des SIP Trunk (Zeile 44) das Ziel des Anrufes ermittelt (die Routine FindDefaultDestination), die Zeitsteuerung der zugehörigen Abteilung abgefragt (Zeile 64) und wenn dort ein aktuell gültiger Feiertag mit einer Audio Datei hinterlegt ist (Zeile 67) dann wird diese abgespielt.

Füge an geeigneten Stellen (z.B. vor 60, 64, 69) Log Zeilen dazu und du kannst den Anrufverlauf verfolgen.
Ich werde mir das mal in ruhe angucken und testen.
Das ist richtig. Man kann jedem Skript eine Abteilung zuweisen, aber das ist für dein Vorhaben unnötig.
In meinem Fall scheint es stand jetzt aber nur so zu funktionieren. Vielleicht ist an dem Gesamtkonstrukt auch irgendwas nicht stimmig.
Dir ist bekannt, dass diese Abfrage mit dem offiziellen CFD v18 in einer 3CX v20 nicht ohne Änderung des Code funktionieren wird?
https://www.3cx.com/community/threa...ay-from-call-flow-designer.126381/post-606796

Unabhängig davon denke ich, euer CFD Konstrukt ist nicht richtig gebaut. Nicht in einer Condition 2x Transfer und einen dritten Transfer darunter sondern alle drei Transfer nebeneinander. Die Abarbeitung erfolgt von links nach rechts. Ganz rechts sollte der Transfer stehen, der in keinem der anderen Fälle zuvor erfasst wurde, quasi der Überlauf.
Ja, ich habe das gelesen, aber es funktioniert trotzdem nach den Updates ohne weiteres zutun. Ich habe diese Anlage auch nur so übernommen und habe sonst auch keine andere Anlage mit CFD. Trotzdem würde ich das gerne so weiterlaufen lassen.
Aber gut zu wissen, dass man es eigentlich so nicht macht. Dann merk ich mir das, falls ich doch nochmal eine Anlage mit CFD machen sollte.

Gibt es denn mittlerweile eine Tendenz, wann es einen neuen CFD geben wird?
 
In meinem Fall scheint es stand jetzt aber nur so zu funktionieren.
Das ist eigenartig und ergibt keinen Sinn. Die Abteilung des Anrufskriptes kommt im holiday.cs nirgend zum tragen.

Vielleicht ist an dem Gesamtkonstrukt auch irgendwas nicht stimmig.
Die Vermutung liegt nahe.

Gibt es denn mittlerweile eine Tendenz, wann es einen neuen CFD geben wird?
Ja, die gibt es. Das schreibe ich mal lieber hier nicht. Bis da hin kannst du ja mal deinen 3CX Ansprechpartner lieb und nett nach einer Vorab Version fragen.
 
Ja, die gibt es. Das schreibe ich mal lieber hier nicht. Bis da hin kannst du ja mal deinen 3CX Ansprechpartner lieb und nett nach einer Vorab Version fragen.
Der Tipp war gut. Die Antwort die ich bekommen habe eher nicht so.

Dann werde ich das wohl anders lösen müssen.
Aber trotzdem danke für die Tipps und Hilfe.
 
Hallo!

Ich hätte hierzu auch eine Frage.
Hab jetzt einen CF mit der neuesten CF-Designer Version gebaut.
Das funktioniert auch soweit, was nicht funktioniert, dass bei Feiertag (der auf der Anlage unter Default eingetragen ist) der Anruf auch auf die Destination keinegz umgeleitet wird. Versteh irgendwie nicht was ich hier falsch mache. bei keine gz ist als time condition auch "3CX Holdays" eingetragen.

1744013144352.png
 
Das CFD Skript gehört zu der Abteilung mit den eingestellten Feiertagen?
 
Das CFD Skript gehört zu der Abteilung mit den eingestellten Feiertagen?
ja genau, es gibt nur 1 Abteilung default zu der gehören auch die Feiertage.
Interessanterweise wenn ich direkt im Callflow-Skript bei den Date&Time Conditions die Feiertage als specific day eintrage, wird korrekt auf keinegz umgeleitet.
Sind die Feiertage aber nur in der Abteilung hinterlegt, wird das komplett ignoriert und der Anruf normal an die tagesaktuelle transfer destination umgeleitet.
 
Wie ich geschrieben habe, ja das Skript ist DEFAULT zugeordnet wie du siehst.
Unbenannt.JPG
 
Nur ein wild guess -> verschieb mal die condition "shopkeinegz" nach links vor "showvormittag".
Falls in den vormittag,pause,nachmittag conditions nicht explizit eine negierte Prüfung auf Feiertag enthalten ist, würde shopkeinegz an Feiertage tagsüber niemals zutreffen.
 
  • Like
Reaktionen: fxbastler
Nur ein wild guess -> verschieb mal die condition "shopkeinegz" nach links vor "showvormittag".
Falls in den vormittag,pause,nachmittag conditions nicht explizit eine negierte Prüfung auf Feiertag enthalten ist, würde shopkeinegz an Feiertage tagsüber niemals zutreffen.
Richtig, sehr gute Idee, daran habe auch ich noch gar nicht gedacht. Manchmal kann es so einfach sein ...

Ich wollte bei passender Gelegenheit (hatte sie noch nicht) das selber mal im CFD kurz nachbauen, ob das mit dem akt. v20 CFD, Feiertagen und Abteilungen auch wirklich so ausgewertet wird wie beschrieben. Wir hatten das aktuell so und explizit noch nicht wieder im Einsatz (wir fangen das vorher ab...).
 
Nur ein wild guess -> verschieb mal die condition "shopkeinegz" nach links vor "showvormittag".
Falls in den vormittag,pause,nachmittag conditions nicht explizit eine negierte Prüfung auf Feiertag enthalten ist, würde shopkeinegz an Feiertage tagsüber niemals zutreffen.
Das hatte ich heute schon mal probiert. Ohne Erfolg :( werd morgen nochmals testen. Dachte auch der checkt von links nach rechts somit müsste ob ein Feiertag ist zuerst gecheckt werden, danke für den Input jedenfalls :)
 
habs jetzt nochmals probiert, die condition keinegz ganz nach links geschoben und bei date/time auch noch die 3CX Holidays an die erste Stelle gesetzt. Wird ignoriert obwohl ein Feiertag eingetragen ist und Skript&Feiertag der Abteiltung Default zugewiesen sind. Der Anruf geht auf cconly (da werden die Anrufe zwischen 8-9 Uhr an ein Callcenter geroutet). Was wie schon gesagt funktioniert wenn ich die Feiertage als specific day/day range auf der condition keinegz eintrage, dann werden die calls korrekt an die Feiertagsdestination geroutet.

keinegz.JPG
 
Zuletzt bearbeitet:

Statistik des Forums

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