Holiday Ansage für DIDs

Sicherheitshalber habe ich dem Script, der Audiodatei und dem Feiertag den gleichen Namen vergeben.
Das muss nicht sein. Wenn es ein Feiertag der Abteilung ist, dann wird entweder a) die angegebene hinterlegte und gefundene Audio Datei oder (alternativ) b) eine Datei mit Namen des Feiertages gefunden und dann abgespielt. Wenn keine von beiden gefunden wird, dann gibt es keine Feiertagansage und das Skript beendet sich als wäre es kein Feiertag und stellt den Anruf (an die DID) so zu wie ohne Feiertag.

Nun wird auch die richtige Feiertagsansage dem Feiertag zugewiesen, aber direkt dahinter wird es komischerweise die allgemeine Ansage "Außerhalb der Geschäftszeiten" wiedergegeben.
Wenn es Feiertag ist und eine Audio Datei gefunden wurde, dann wird die Datei abgespielt und anschl. auf die Abteilung des urspr. Zieles (der DID, einer NSt. oder eben einer Abteilung) weitergeleitet. Wenn in der Abteilung dort bei 'Wenn Feiertag/Urlaub ...' auch eine Ansage hinterlegt und aktiviert ist, dann wird auch die Audio Datei danach abgespielt und die angegebene Weiterleitung (sofern vorhanden) verfolgt.

Daher: sicher dass die Ansage der Abteilung von 'Außerhalb der GZ' und nicht von 'Wenn Feiertag/Urlaub...' abgespielt wird?

Folgefragen:
  1. Was für einem Ziel ist die angerufene DID zugewiesen?
  2. Was ist die Abteilung dieser DID?
 
Zuletzt bearbeitet:
Vielen Dank für deine Antwort! Anbei Screenshots von den Einstellungen:
1730410074124.png
1730410355635.png
1730410131555.png
1730410200543.png
1730410220986.png
1730410241739.png
 
Ich nehme an, die DID des Nutzer 16 wird angerufen.

Wenn ja: die GZ Automatik und der Status des Nutzer 16 werden nicht beachtet. Es ist nur wichtig, dass für die Hauptabteilung des Nutzer 16, in dem Fall DEFAULT, ein Urlaub / Feiertag gilt und der aktuell gerade greift. Laut den Bildern der Einstellungen der Abteilung DEFAULT sollte nach der Feiertagansage auch nichts mehr abgespielt werden sondern der Anruf wird einfach beendet.
  1. Dem ist nicht so? Es folgt noch eine zweite Ansage? Welche? Wo ist die eingestellt?
  2. Was hat der IVR 82 damit zu tun?
Sonst sehen die Einstellungen so aus wie beschrieben und wie es sein kann. Es fehlt halt nur ein Bild der Feiertageinstellungen der Abteilung.
 
@fxbastler
Großartig, dass du der Community hier ein solches Skript bereitstellst!

Was mir noch nicht klar ist: Das Skript greift für den gesamten SIP-Trunk, das heißt auch für die Faxnummern? Das heißt an Feiertagen kann ich keine Faxe empfangen?

Könnte das Skript um eine Sammlung von DIDs erweitert werden, die ignoriert werden?
oder sollten wir schauen, dass wir unsere Faxnummern aus dem "großen" SIP-Trunk herauslösen und als separaten eigenständigen SIP-Trunk einbinden? (soweit technisch möglich)
 
Ich nehme an, die DID des Nutzer 16 wird angerufen.

Wenn ja: die GZ Automatik und der Status des Nutzer 16 werden nicht beachtet. Es ist nur wichtig, dass für die Hauptabteilung des Nutzer 16, in dem Fall DEFAULT, ein Urlaub / Feiertag gilt und der aktuell gerade greift. Laut den Bildern der Einstellungen der Abteilung DEFAULT sollte nach der Feiertagansage auch nichts mehr abgespielt werden sondern der Anruf wird einfach beendet.
  1. Dem ist nicht so? Es folgt noch eine zweite Ansage? Welche? Wo ist die eingestellt?
  2. Was hat der IVR 82 damit zu tun?
Sonst sehen die Einstellungen so aus wie beschrieben und wie es sein kann. Es fehlt halt nur ein Bild der Feiertageinstellungen der Abteilung.
Ja, die Nebenstelle 16, Abteildung "DEFAULT" und das Script wird "Systemweit" ausgeführt.
Nach der Feiertagsansage wird momentan immer noch die allgemeine Ansage "Sie rufen außerhalb der Geschäftszeiten an..." abgespielt.
1730443099729.png
1730443264916.png
1730443454717.png
Diese Ansage wird anschließen wiedergegeben:
1730443823335.png
 

Anhänge

  • 1730443208135.png
    1730443208135.png
    127,1 KB · Aufrufe: 4
  • 1730443384853.png
    1730443384853.png
    80,5 KB · Aufrufe: 4
Was mir noch nicht klar ist: Das Skript greift für den gesamten SIP-Trunk, das heißt auch für die Faxnummern?
Ja, das Skript greift für alle Anrufe auf einem Trunk.

Das heißt an Feiertagen kann ich keine Faxe empfangen?
Nein, man kann an Feiertagen Faxe empfangen.

Könnte das Skript um eine Sammlung von DIDs erweitert werden, die ignoriert werden?
Ja, problemlos möglich. Eine Variable mit Ausnahmen definieren und so z.B. direkt vor Zeile 41 abfragen, ob DestDN.Number (ein String mit der Nummer der NSt.) in der Sammlung der auszuschließenden Nummern enthalten ist und wenn ja, das Skript sofort mit return false beenden

oder sollten wir schauen, dass wir unsere Faxnummern aus dem "großen" SIP-Trunk herauslösen und als separaten eigenständigen SIP-Trunk einbinden? (soweit technisch möglich)
Nein, das muss nicht sein.

Ein Fax ist eine Systemnebenstelle (bzw. sollte es sein), gehört zu keiner Abteilung und hat daher keine GZ. Das was ich alles ermittelt und getestet habe besagt das. Es wird die von 3CX erst seit der v20u1 oder u2 vorhandene und nirgends dokumentierte Methode GetTimeBasedRoutingInfo() verwendet, welche genau das tut: sie gibt zurück, ob sich die Nebenstelle in irgendwelchen speziellen Zeiten (GZ, NGZ, PZ, Holiday usw.) befindet. Meine 'Untersuchungen' bzgl. Verhalten und Anwendung sind da noch nicht ganz abgeschlossen, aber für diesen Zweck hier reicht das. Systemnebenstellen haben dieses Merkmal nicht und fallen daher raus.
 
Ja, die Nebenstelle 16, Abteildung "DEFAULT" und das Script wird "Systemweit" ausgeführt.
Nach der Feiertagsansage wird momentan immer noch die allgemeine Ansage "Sie rufen außerhalb der Geschäftszeiten an..." abgespielt.
Ich stelle das nach. Rein vom Programmablauf kann das nicht sein, das ist unlogisch. Die GZ der NSt. 16 interessieren das Skript nicht.

Bist du sicher, dass du mein Skript von hier genommen hast und nicht das aus dem 3CX Store? Das aus dem Store hat das von dir gezeigte Verhalten.
 
  • Like
Reaktionen: Trier2024
Ich stelle das nach. Rein vom Programmablauf kann das nicht sein, das ist unlogisch. Die GZ der NSt. 16 interessieren das Skript nicht.

Bist du sicher, dass du mein Skript von hier genommen hast und nicht das aus dem 3CX Store? Das aus dem Store hat das von dir gezeigte Verhalten.
Ja, ich habe dein Script hinzugefügt. Eigentlich bin ich aus reiner Zufall auf das Problem gestoßen, habe parallel etwas anderes gemacht und nicht direkt nach Ende der Ansage aufgelegt. Danach kommt eine Pause (ca. 2 Sekunden) und erst dann wird die zweite Ansage wiedergegeben:-)
1730495418175.png
1730495455317.png
 
Eigentlich bin ich aus reiner Zufall auf das Problem gestoßen
Vielen Dank dir dafür. Dein Problem hat größere Kreise gezogen.

Mit dem Nachstellen und -verfolgen von deinem Problem habe ich zwei an und für sich nicht zu erwartende teils andere Probleme im originalen 3CX Skript erkannt. Grundsätzlich wurde das originale 3CX holiday Skript von mir 'nur' um die Abfrage der DID und eine andere Weiterleitung umgeschrieben. Das hat in den von uns bisher benötigten und div. anderen getesten Szenarien funktioniert. Bei dir eben nicht. Die Weiterleitung laut div. Anleitungen und mehreren originalen Beispielen funktioniert eben nicht so wie veröffentlicht und das Ende des Skriptes bleibt dabei völlig unklar. </manoeverkritik>
Das ist sicher mein Fehler, weil ich die 3CX nicht geschrieben und / oder bisher einfach nicht verstanden habe. </ironie>

Das wirft auch Probleme bei derzeit noch nicht fertig gestellten und dringend benötigten Folgeskripten (Stichwort Weiterleitung externer Anrufe außerhalb der GZ unter Beibehaltung interner Erreichbarkeit - z.B. ehemals eingehende Regeln) auf und muss unbedingt vorher geklärt werden.

Ich habe nun ein aktuelleres und weiter getestes Skript. Da wurde letztendlich nur die Weiterleitung des originalen Skript entfernt und der dazu gehörige Krempel ringsrum auch. Das funktioniert so wie bisher in der v18 mit den Feiertagansagen. Das oder ein besseres kommt hier demnächst. Die jetzt neue Version funktioniert und hat ein sauberes Ende, aber hat leider noch keine funktionierende Weiterleitung zurück in den 3CX Call Flow (z.B. zu einer Abteilung) und das ist es was wir brauchen.

Ich arbeite derzeit noch daran, die derzeit nicht ordentlich funktionierende Weiterleitung an die Abteilung und gleichzeitig das saubere Beenden des Skriptes in jedem Fall zu lösen.

Einsatzszenario falls es jemand interessiert:
Es ist Feiertag, es gibt DID zu div. NSt. oder anderen 3CX Entitäten einer Abteilung (RG, WS, IVR) welche den Anruf normalerweise annehmen, die hinterlegte Feiertagansage soll dann abgespielt werden und danach soll auf Grund der Abteilungseinstellungen wieder auf einen generellen Ablauf in der 3CX geroutet werden um z.B. hinterlegte Notrufnummern für Ärztehäuser oder Apotheken anzusagen, auf eine Notrufnummer oder ein Callcenter weiterzuleiten, einen Anruf auf eine zentrale VMB aufzunehmen usw. und eben nicht den Anruf einfach zu beenden so wie bisher in der 3CX v18. Das geht nur so. Dafür gibt es aktuell keine andere praktikable Lösung als so ein Skript.
 
Zuletzt bearbeitet:
So, das Problem wurde von 3CX selber gelöst.
Es gibt seit vorgestern, pünktlich mit Erscheinen der 3CX v20u4alpha, ein neues Holiday Anrufskript im 3CX Store zum Download. Das macht genau das was man sich so wünscht: individuelle Auswertung der angerufenen DID und entsprechend dessen die Abfrage des Holiday usw..

Sehr schön, wirklich.

Der Anrufskript Store für die u4 ist auch einiges umfangreicher als der der u3.
 
Leider scheitere ich noch immer an folgenden Szenario: Gemeinschaftspraxis

ANRUFER --> IVR ( DEFAULT GRUPPE) ( Drücken Sie die 1 für Arzr1, Drücken Sie die 2 für Arzt2... --> Q ARZT1 ( GRUPPE ARZT1) --Wenn Urlaub/Feiertag-->MAILBOX

Arzt1 ist im Urlaub.

Das Holiday Promt für ARZT1 Gruppe wird nicht abgespielt.
Es geht direkt in die Mailbox
 
Wenn überhaupt, dann greift das Holiday Skript am SIP Trunk als erstes, noch vor allem anderen, also laut deiner Kette:
ANRUFER -> holidayskript mit Ansage usw. -> IVR ( DEFAULT GRUPPE) ...
 
Danke für die Berichtigung. Hast du evtl einen Lösungsansatz? Das IVR als CFD selber aufbauen?
Mein Stand ist das ich mit CFD derzeit keine Department Holidays abfragen/abspielen kann.
 
höchstwahrscheinlich könnte man dtmf.cs und holiday.cs zu einem passenden script verwursten :D
 
Du willst, das bei einem eingehenden Anruf an eine DID - egal ob Feiertag oder nicht - immer den gleichen IVR mit der gleichen Ansage annimmt und das gleiche Verhalten aufweist?
Das Routing Verhalten soll sich erst nach einer vom Anrufer im IVR gewählten Option ändern, abhängig davon ob es ein Feiertag ist oder nicht?

Den Sinn des Konstruktes verstehe ich zwar nicht, muss ich aber auch nicht.

Wenn beides von dir mit ja beantwortet wird, dann wird es das Sinnvollste sein, das holiday.cs minimal anzupassen und nicht auf eingehende Anrufe auf dem Trunk reagieren zu lassen sondern 'Wenn ein Nutzer einen Wählcode wählt' und das Skript minimal anzupassen. Aktuell fragt das Anrufskript alle eingehenden Regeln eines angerufenen SIP Trunk ab und nur dann läuft es weiter. Das kann man fast komplett entfernen. Der Effekt wird dann sein: der IVR verweist nach der Auswahl des Anrufers auf das modifizierte Anrufskript, das Anrufskript fragt die Abteilung der Rufgruppe ARZT1 nach den Feiertageinstellungen ab und spielt dese evtl. ab - oder eben auch nicht - und leitet dann in jedem Fall auf die Rufgruppe ARZT1 weiter.

Überleg dir was du willst.
 
Danke für deine ausführliche Antwort.

Der Sinn des Konstruktes, ist die geplanten Holiday Promts beim Transfer vom Default Department in anderes Department abspielen zu können.

Mein Ärztezentrum hat nur eine Kopfnummer, und ist quasi immer göffnet, die eingemieteten Ärzte könnten kompett selbstständig ihre Öffnungszeiten definieren und auch ihre Urlaube.

Wenn ich deinen Vorschlag richtig deute lasse ich den IVR und schalte für jeden Arzt ein zu modifizierendes Holiday Script vor.
 
Hallo.

Habe die neue Holiday.cs nochmals getestet, die greift auch jetzt bei den Durchwahlen, wobei das ja nicht immer gewollt ist.
Ausserdem wird zwar bei einer Durchwahl auch das File abgespielt, aber anschließend bimmelt es doch dann bei der Nebenstelle.
Ist das wirklich so gewollt?
 
  • Like
Reaktionen: fxbastler
Egal ob Kopfnummer: nur eine einzige Nummer - DID - als Einwahl für alle unterschiedlichen Ärzte?
Ja nur der IVR ist von extern erreichbar. Die Ärzte selber haben dann ihre Departments/Extensions/DIDs aber diese sind nicht nach aussen kommuniziert.
 
ideal wäre vermutlich das man das skript modifiziert “mit einer blacklist/whitelist“ für welche dids es greifen soll. dann wären wirklich alle glücklich.

Hallo.

Habe die neue Holiday.cs nochmals getestet, die greift auch jetzt bei den Durchwahlen, wobei das ja nicht immer gewollt ist.
Ausserdem wird zwar bei einer Durchwahl auch das File abgespielt, aber anschließend bimmelt es doch dann bei der Nebenstelle.
Ist das wirklich so gewollt?
 

Statistik des Forums

Themen
44.440
Beiträge
232.810
Mitglieder
78.339
Neuestes Mitglied
neil.marsura