Modul "on all incoming calls" kollidiert mit "Ansage vor Melden"

  • Hallo zusammen,


    einer unserer Kunden möchte seine Kunden bei jedem eingehenden Anruf darauf hinweisen, dass zwischen Weihnachten und 3 Könige kein Warenversand stattfindet und bis wann Bestellungen eingegangen sein müssen, um noch in diesem Jahr verschickt zu werden. Diese ansage soll bei JEDEM eingehenden Anruf gespielt werden, unabhängig der gewählten Rufnummer und der Uhrzeit. Die Ansage soll bis einschl. 06.01.2020 gespielt werden. Dann nicht mehr.


    Außerhalb der Geschäftszeiten wird mithilfe des Moduls "Zeitgesteuerte Umleitung" auf die Voicemail umgeleitet. Auch hier soll vor die Voicemail die zusätzliche Ansage geschaltet werden.


    Ansonsten gibt es noch eine Modulkonfiguration "Ansage vor Melden", damit anstelle des Freizeichens die Wartemusik gespielt wird.



    Wir haben hierfür ein kleines Modul entwickelt, dem der Zeitraum (12.12.2020 - 06.01.2021) mitgegeben und in dem eine Ansage hochgeladen werden kann. Das Modul prüft dann den Zeitraum und falls der Zeitraum passt, spielt es die Ansage ab. Anschließend wird das Modul über ein "exit" beendet. Das Modul läuft im Modus "Call Processing - on all incoming calls". Im Anhang noch Screenshots der Modul-Konfig und der Ausführungsreihenfolge.


    Ausführungsreihenfolge.pngModul-Konfig 1.jpgModul-Konfig 2.jpg


    Am Wochenende hatte das ganze auch noch wunderbar geklappt. Während der Öffnungszeiten scheint es aber nun Probleme mit dem AvM Modul zu geben, da die Ansage zweimal abgespielt wird: Bei einem eingehenden Anruf hört der Anrufer zunächst wie gewünscht die Ansage mit dem letzten Warenversand. Anschließend hört man den Beginn der Wartemusik, so als würde der Anruf zum Teilnehmer durchgestellt. Der Anrufer bekommt dann aber nach etwa 1 Sekunde erneut die Ansage über den letzten Warenversand. Erst danach kommt er zum Teilnehmer durch, jedoch mit einem normalen Wählton anstelle der Wartemusik.


    Unten außerdem noch das Log meines Moduls für den Anruf.



    Das Modul scheint demnach zweimal aufgerufen zu werden. Einmal VOR der AvM und einmal NACH der AvM. Ist das so gewollt? Wenn ja, wie kann ich das verhindern? Ich könnte das Modul natürlich Umstellen auf "on incoming calls to user/group", aber dann würde die Ansage außerhalb der Öffnungszeiten nicht mehr gespielt.


    Vielen Dank und viele Grüße!

  • Hallo L0g33


    Das Problem ist, wenn der Anruf Parkiert wird, und der interne Benutzer Angerufen wird zählt das als ein 2. Call, und somit wird ein Incoming Call Entrypoint erneut ausgelöst.


    Hier musst du eventuell mit weiteren Filtern Arbeiten (Z.b. IsInternCall, GetCalledNumber, GetCallUUID(CallUUID im Modul merken, und falls sie erneut Kommt, nicht erneut Abspielen))
    Eventuell könntest du den Call auf Asterisk Ebene auch mit einem Header versehen, welchen du Anfangs deines Moduls prüfst.


    Mfg


    Fabian

  • Hallo Fabian,


    vielen Dank für deine Rückmeldung. Zwei Rückfragen:


    1. Wann wird der Anruf denn geparkt? Beim AvM Modul? Von Benutzerseite gab es im obigen Fallbeispiel keine Interaktion
    2. Wie könnte ich die CallUUID denn über die Modulausführung hinweg speichern? Gibt es globale Variablen die man dafür verwenden kann?


    Bin was den Modul-Designer angeht noch ziemlich unerfahren. Ist mein erstes Modul, an dem ich schraube.


    Viele Grüße


    Christian

  • Hallo Christian


    Ich vermute es wird nachfolgend zum Modul geparkt, nicht vom Modul selber.
    Wird es nach dem Modul als erstes gerade Umgeleitet?


    Wenn du mit der UUID Arbeiten willst, gibt s im Experten Modus im dritten Tab von unten "Variables" ==> Set/Get/RemoveVariableValue
    Du kannst mit SetVariable, Werte im aktuellen Thread, dem aktuellen CallChannnel, der Instanz, für alle Instanzen deines Moduls, oder Global setzen.


    MfG


    Fabian

  • Guten Morgen Fabian,


    der Ablauf des Anrufs dürfte wie folgt sein:


    1. Modul "Blacklist" (Prüft ob die Anrufernummer in der konfigurierten Liste enthalten ist, wenn ja -> busy)
    2. Modul "Zeitgesteuerte Ansage vor Melden" -> Ablauf wie oben im Screenshot
    3. Modul Firma 1 - Öffnungszeiten (Zeitgesteuerte Umleitung) -> Greift Mo-Do 17:00-08:00, Fr 13:00-08:00 und Sa-So und leitet direkt auf eine Voicemail um ---> Hat im Logbeispiel des obigen Anrufs nicht gegriffen
    4. Modul Firma 2 - Öffnungszeiten (Zeitgesteuerte Umleitung) -> Greift Mo-Do 17:00-08:00, Fr 13:00-08:00 und Sa-So und leitet direkt auf eine Voicemail um ---> Hat im Logbeispiel des obigen Anrufs nicht gegriffen
    5. Modul "Ansage vor Melden" um die Wartemusik abzuspielen. Als Anrufer hört man nach der ersten Ansage für den letzten Warenversand für etwa 1 Sekunde die Wartemusik und erhält dann erneut die Ansage. Insofern vermute ich, dass das parken während dieses Modulablaufs geschieht und die Modulausführung "Ansage vor Melden" unterbrochen wird.



    Bzgl. Abspeichern der UUID: Für mich würde dann der CallChannel ja reichen oder? Sobald der Anruf durch ist, benötige ich die UUID ja nicht mehr.


    VG
    Christian

  • Hallo Christian


    Ja, wenn ein Modul einen Anruf parkt (Z.b. für Wartemusik), und anschliessend versucht eine Person/Gruppe anzurufen Initiiert das Modul einen Zweiten Anruf, welcher dann erneut von deinem Modul abgefangen wird.
    Ich vermute, dass in dem Falle der CallChannel nicht hilft, da dieser ja Parkiert ist, und ein zweiter Anruf erfolgt.


    Ich würde bei deinem Modul einfach einen Check


    IsInternalCall -> _isInternalcall
    IF _internalcall IsEquals true
    exit


    Verbauen.
    Denn der Anruf vom Ansage vor Melden an die Gruppe ==> Interner Anruf


    MfG


    Fabian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!