Feiertags-/Urlaubsansage von 3cx wird ignoriert

Liefere ich alles nach, wenn unser Netz wieder läuft. Aktuell eine Mega Großstörung bei uns bei 2 Providern mind. Und genau beide, welche wir haben..

melde mich dann wieder. Die Bilder stammen gerade aus einer Testanlage in einem anderen Netz, welches komplett Isoliert ist, daher die zwangspause.
 
Alles gut, aber mach das mal bitte.

Wenn du wissen willst was Sache ist, dann ersetze die Zeile 65 des originalen holiday.cs
(das ist eine Leerzeile, direkt unter var defaultDestination = ...) mit folgender Zeile:
C#:
MyCall.Error( "******** HOLIDAY.CS Anrufziel ist NSt. " + defaultDestination.Number + " Abteilung ist " + (defaultDestination.GroupMembership.Where( x => x.IsPrimary == true)).First().Group.Name + " Status ist " + timeBasedroute.reason.ToString());

Wenn du dann
  1. in der 3CX eine Shell öffnest
  2. mit tail -f /var/lib/3cxpbx/Instance1/Data/Logs/3CXCallFlow.log das CallFlow.log überwachst
  3. und von außen den SIP Trunk anrufst
dann kommt mit funktionierendem Anrufskript eine Zeile die mit ******** HOLIDAY.CS ... beginnt.

Da steht das verfolgte Anrufziel (die Nummer), dessen Abteilung und der Status der Abteilung als Text zur Kontrolle.

Wenn du nicht auf die 3CX Shell kommst, dann lade dir nach einem solchen Anruf über das 3CX Dashboard die Systeminformationen als Supportinfo.zip herunter, entpacke das und schaue dir die letzten Zeilen der /Logs/3CXCallFlow.log an.

Nicht vergessen irgendwann diese eine Zeile im Skript wieder zu entfernen (leeren) oder wenigstens mit // auszukommentieren, sonst wird bei jedem Anruf auf den Trunk eine solche Zeile in das Log geschrieben (was an sich nicht schlimm ist :) ).
 
Zuletzt bearbeitet:
Hallo zusammen,


ich klinke mich hier mal mit ein, weil ich gerade ebenfalls an der Stelle bin, wo ich die genaue Funktionsweise der Feiertagsansage in Verbindung mit Abteilungen und dem holiday.cs-Skript besser verstehen möchte – speziell, was nun automatisch passiert und was nur über das Skript möglich ist.

1. Feiertagsansage erfolgt nur wenn das Skript aktiv genutzt wird?

Wenn ich die Aussagen hier im Thread (z. B. von fxbastler) und in der offiziellen Anleitung (3CX – Urlaubs-Skript) richtig deute, ist es so:
Die in einer Abteilung hinterlegte Feiertagsansage (WAV-Datei) wird nur abgespielt, wenn das Skript holiday.cs für den SIP-Trunk aktiv gesetzt ist.
Ohne dieses Skript erfolgt keine automatische Wiedergabe – selbst wenn Feiertag und Abteilung korrekt konfiguriert sind.
Das ist/war für mich ehrlich gesagt eine massive Überraschung, stimmt das wirklich so?



2. Greifen Feiertage auch ohne gesetzte Geschäftszeiten?

Die Aussage hier im Thread war, dass:


Wenn keine GZ gesetzt sind, ist „immer außerhalb“ – was die Feiertagsumschaltung und auch Statusumschaltung bei Nutzern beeinflusst.
Das deckt sich mit dem, was ich sehe, wirft aber für mich die Rückfrage auf:
  • Muss ich für jede Abteilung zwingend Geschäftszeiten definieren, damit Feiertage korrekt wirken?
  • Und was passiert bei Nutzern, wenn diese per „Zeitplan“ automatisch auf „Verfügbar / DND“ wechseln sollen – aber die Abteilung keine GZ gesetzt hat? - klappt es bei diesen dennoch mit der Feiertagsansage?
 
Hallo zusammen,


ich klinke mich hier mal mit ein, weil ich gerade ebenfalls an der Stelle bin, wo ich die genaue Funktionsweise der Feiertagsansage in Verbindung mit Abteilungen und dem holiday.cs-Skript besser verstehen möchte – speziell, was nun automatisch passiert und was nur über das Skript möglich ist.

1. Feiertagsansage erfolgt nur wenn das Skript aktiv genutzt wird?

Wenn ich die Aussagen hier im Thread (z. B. von fxbastler) und in der offiziellen Anleitung (3CX – Urlaubs-Skript) richtig deute, ist es so:

Das ist/war für mich ehrlich gesagt eine massive Überraschung, stimmt das wirklich so?
Nicht ganz. Es geht hierbei um individuelle Feiertagansagen. Das ist es aber was meist gewünscht wird.

Wenn einem eine ordinäre immer gleiche Ansage reicht (z.B. im schönsten sächs. Dialekt 'Feirdooch'), dann kann man in div. 3CX Entitäten (Abteilung, RG, WS, IVR, CFD und sonst. Anrufskript) auch das einfach dort einstellen. Das ist dann nur halt immer gleich.

Wenn man unterschiedliche Ansagen pro Feiertag haben möchte, dann hat man pro Feiertagangabe so die Möglichkeit von individuellen Ansagen und dafür braucht es das Anrufskript holiday.cs oder etwas in der Art zum Abspielen der in der Definition des Feiertages hinterlegten Audio Datei.

2. Greifen Feiertage auch ohne gesetzte Geschäftszeiten?

Die Aussage hier im Thread war, dass:


Das deckt sich mit dem, was ich sehe, wirft aber für mich die Rückfrage auf:

  • Muss ich für jede Abteilung zwingend Geschäftszeiten definieren, damit Feiertage korrekt wirken?
Siehe Anleitung Umstellung auf 3CX v20 / Einrichtung einer 3CX v20: eine Abteilung braucht Geschäftszeiten, immer Punkt

Für die Einstellung der Feiertage ist das nur relevant, wenn Nutzer / NSt. Ihren Status automatisch an die Abteilung gebunden umstellen. Das wird dann eben nicht funktionieren. Wenn der Nutzer im Status Verfügbar steht, dann wechselt der dann in den Status DND (wenn nicht in Admin / System / Optionen / Planer etwas anderes eingestellt ist). Wenn der Feiertag aber mal wirklich vorbei ist, dann wechselt der Status des Nutzer / NSt. nicht in etwas anderes weil es eben keine GZ gibt.

  • Und was passiert bei Nutzern, wenn diese per „Zeitplan“ automatisch auf „Verfügbar / DND“ wechseln sollen – aber die Abteilung keine GZ gesetzt hat? - klappt es bei diesen dennoch mit der Feiertagsansage?
Das macht keinen Sinn (automatisch wechseln ohne GZ). Sonst s.o. - oder man gibt denen eigene GZ.

Feiertagansage per Skript geht immer und unabhängig davon. Das erfolgt vor allem anderen und unabhängig des Status von NSt..
 
Zuletzt bearbeitet:
  • Like
Reaktionen: SaschaA_3CX
Danke für die schnelle Reaktion

Also für die Allgemeine Ansage

1. Erstelle oder nutze eine bestehende Nebenstelle für die allgemeine Feiertagsansage erstellen, dort in die Mailbox eine passende Ansage setzten
2. In der Abteilung z.B. "Zentrale" in Geschäftszeiten >> Feiertage/Urlaub die Feiertage eintragen (Ansage dort wäre erstmal egal wenn nicht per Sript genutzt)
3. Sicherstellen, dass das angerufene Ziel (RG, WS, IVR, in der Option "Wenn Feiertag/Urlaub, weiterleiten an" an diese Mailbox mit der Haupt-Ansage weiterleitet)
3.B Geht der Anruf auf eine Nebenstelle (die wir als Call Router nutzen) -> keine Option für eine Allgemeine Feiertagsansage, da hier nicht "Wenn Feiertag/Urlaub, weiterleiten an" zur Auswahl steht (richtig?)
4. Wenn man die Individuellen Ansagen der Abteilungen nutzen möchte -> Holidays Skript einführen

Immer - In Abteilungen die Geschäftszeiten eintragen (selbst wenn "immer offen" sein soll, dann eben 00:01 - 23:59

und was kürzt CFD ab?
 
  • Like
Reaktionen: fxbastler
CFD ist der Call Flow Designer..

Die GZ können von 00:00-00:00 eingestellt werden, das man nur bis 23:59 kann ist nicht mehr.
 
Alles gut, aber mach das mal bitte.

Wenn du wissen willst was Sache ist, dann ersetze die Zeile 65 des originalen holiday.cs
(das ist eine Leerzeile, direkt unter var defaultDestination = ...) mit folgender Zeile:
C#:
MyCall.Error( "******** HOLIDAY.CS Anrufziel ist NSt. " + defaultDestination.Number + " Abteilung ist " + (defaultDestination.GroupMembership.Where( x => x.IsPrimary == true)).First().Group.Name + " Status ist " + timeBasedroute.reason.ToString());

Wenn du dann
  1. in der 3CX eine Shell öffnest
  2. mit tail -f /var/lib/3cxpbx/Instance1/Data/Logs/3CXCallFlow.log das CallFlow.log überwachst
  3. und von außen den SIP Trunk anrufst
dann kommt mit funktionierendem Anrufskript eine Zeile die mit ******** HOLIDAY.CS ... beginnt.

(...)

Zeile 65 ist leer, das ist korrekt, aber var defaultDestination = FindDefaultDestination(externalLine, ist in Zeile 60 und 61 ist nicht leer, sondern ein kommentar.

Edit: :[2880..2894)E: (61,224)-(61,238): Error CS0103: Der Name "timeBasedroute" ist im aktuellen Kontext nicht vorhanden. MyCall.Error( "********HOLIDAY.CS Anrufziel ist NSt." +
Das scheint das Script nicht zu mögen.
 
Zeile 65 ist leer, das ist korrekt, aber ...
Das mit dem Einfügen in die leere Zeile 65 war schon richtig. Das mit der Angabe was darüber steht war nicht richtig, ein Kopierfehler. Die Zeile darüber enthält var timeBasedroute = .
Wenn diese eine Zeile zusätzlicher Code zur Ausgabe in das Log irgendwo darüber eingefügt wird, dann kann das nicht funktionieren, richtig.

Hier das mal in Bildern, das ist eindeutig. Vorher:

1749023567929.png

Nachher:

1749023587312.png
 
  • Like
Reaktionen: MarcosV_3CX und Ben04
Es ist wirklich interessant, dass man dafür ein Skript braucht.
Aber es funktioniert jetzt.

Am Anfang wollte es nicht, aber jetzt irgendwie schon.
Und der Trunk ist nicht einmal einer Abteilung zugeordnet, sondern systemweit.

Ich danke euch mal wieder :)
 
Es ist wirklich interessant, dass man dafür ein Skript braucht.
Für individuelle Feiertagansagen?
Das kommt erst einmal eigenartig rüber, aber eröffnet viele und auch ganz andere Möglichkeiten. Da das alles seitens 3CX bereitgestellt wird (ja, halt erst Herbst 2024 mit der u4, nicht schön) und Anrufskripte außer in der SMB oder der 3CX free (ehem. Standard) genutzt werden können ist das kein Drama.

Aber es funktioniert jetzt.
endlich

Und der Trunk ist nicht einmal einer Abteilung zugeordnet, sondern systemweit.
Ich hatte es geschrieben: die Zuordnung eines SIP Trunk zu irgend etwas spielt da keine Rolle.

So als Fazit für uns alle nach mittlerweile viel zu vielen Posts über so etwas eigentlich Einfaches - wie ist denn die akt. Erkenntnislage? War es die Zuordnung der Ziel Entität des Anrufes (IVR, Dummy NSt., WS) zu einer Abteilung ohne Feiertage (und evtl. gar ohne GZ)? Kläre uns bitte kurz auf damit ich da gedanklich einen Haken dahinter machen kann.
 
  • Like
Reaktionen: bitn2
Was es war, ist nicht so einfach zu sagen.
In der Testinstallation war es wohl mit den verschiedenen Abteilungen und nicht alle haben einen Feiertag drin.
In der Kundenanlage gibt es nur den default und da habe ich das Script reingeladen und einen Testfeiertag angelegt um es auszuprobieren.
Trunk auf Systemweit und Script auf Trunk eingestellt und mit dem richtigen Datum von heute hat es dann funktioniert.

Sehe ich das richtig, dass für jeden Trunk ein eigenes Holiday Script eingestellt werden muss?
 
Was es war, ist nicht so einfach zu sagen.
In der Testinstallation war es wohl mit den verschiedenen Abteilungen und nicht alle haben einen Feiertag drin.
In der Kundenanlage gibt es nur den default und da habe ich das Script reingeladen und einen Testfeiertag angelegt um es auszuprobieren.
Trunk auf Systemweit und Script auf Trunk eingestellt und mit dem richtigen Datum von heute hat es dann funktioniert.

Sehe ich das richtig, dass für jeden Trunk ein eigenes Holiday Script eingestellt werden muss?
So ist auch das normale vorgehen dafür.

Ja, für jeden Trunk ein Script.
 
  • Like
Reaktionen: MarcosV_3CX und Ben04
Nochmal eine kleine Rückfrage.

Situation: man hat das holiday Skript im Trunk aktiv. Ansage wird auch abgespielt. Gemäß Call-Routing geht der Anruf aber auf eine Nebenstelle direkt statt auf RG, WS, IVR oder CFD.

Frage: Kann ich hier auch Einstellen was bei Feiertagen passieren soll wenn der Anruf auf dieser Nebenstelle ankommt oder greift hier die normale Geschäftszeit der Haupt-Abteilung (die ja in der Regel dann unabhängig vom Feiertag sagt, geöffnet also Status verfügbar) - und man kann dieses Verhalten in Nebenstellen eben nicht wie bei den anderen einstellen?
 
Frage: Kann ich hier auch Einstellen was bei Feiertagen passieren soll wenn der Anruf auf dieser Nebenstelle ankommt oder greift hier die normale Geschäftszeit der Haupt-Abteilung (die ja in der Regel dann unabhängig vom Feiertag sagt, geöffnet also Status verfügbar) - und man kann dieses Verhalten in Nebenstellen eben nicht wie bei den anderen einstellen?
Die eine Frage kann man nicht mit ja oder nein beantworten. Die Antwort ist: Nein oder ja.

Ein Feiertag ist NGZ (Nicht Geschäftszeit / außerhalb der GZ). Die NSt. können dem also mit ihrem Status folgen wenn die Option aktiviert ist. Alternativ kann das Routing mit Einrichten von Ausnahmen bei den NSt. gehandhabt werden, z.B. nur für ext. Anrufe.
Sonst das holiday.cs umschreiben.
 

Statistik des Forums

Themen
44.412
Beiträge
232.707
Mitglieder
78.328
Neuestes Mitglied
as7h