Wenn das Modul mal länger braucht ...

  • Hallo @all,


    hatte ihr schon mal ein ähnliches Problem.


    Folgender Aufbau:
    1) Modul überprüft einmal die Minute ein Postfach auf neue Emails
    2) Bei einer neuen E-Mail wird eine Rufnummer angerufen
    3) Dann wird eine Rufnummer angerufen
    4) angerufener quittiert dann mit DTMF den Anruf
    5) jetzt soll noch eine E-Mail geschrieben werden, dass der Anruf quittiert wurde und wann.


    In der Regel ist alles soweit ok, aber es kann vorgenommen, dass zwischen Schritt 4) und 5) 24 Stunden vergehen.


    [2015-12-19 05:36:34,433] DEBUG [alarmUser] Ack in external System ok
    [2015-12-19 05:37:01,638] DEBUG [checkForNewEmail] No new messages.
    ...
    [2015-12-20 05:34:03,018] DEBUG [checkForNewEmail] No new messages.
    [2015-12-20 05:35:01,757] INFO [checkMessage] User YYYY acknowledge alarm. Finished. Used Number: XXXXXXXXXX
    [2015-12-20 05:35:01,757] DEBUG [checkMessage] Bugfix for utf8 in subject


    Zwischen den Logmeldungen liegt ein Playback einer Ansage und Zuweisen von Variablen.


    In dem Modules.Log sehe ich:


    [2015-12-19 05:36:01,359] DEBUG de.vertico.starface.module.core.runtime.ModuleRuntime Calling module: Notfallalarmierung
    [2015-12-19 05:36:02,082] INFO de.vertico.starface.module.core.runtime.functions.callHandling.call.Hangup Skiping function call de.vertico.starface.module.core.runtime.functions.callHandling.call.Hangup because of AGICall == null
    [2015-12-19 05:37:01,350] DEBUG de.vertico.starface.module.core.runtime.ModuleRuntime Calling module: 3iMedia Überwachungsanruf
    [2015-12-19 05:37:01,352] DEBUG de.vertico.starface.module.core.runtime.ModuleRuntime Calling module: Notfallalarmierung


    Vermutung:


    Scheinbar ein Timeout bei hängenden Komponentenaufrufen von 24 Stunden.
    Ich habe die Vermutung das irgendwie das Playback abgespielt wird und der Angerufene auflegt. Hier kommt es dann scheinbar zu einem Deadlock. Ich hatte das "Wait for User Input" auf 1 stehen. Dies habe ich mal auf 0 abgeändert. Vielleicht hilft das ja.


    Grüße


    Jochen

    Quote

    Im Leben eines jeden Büromenschen gibt es drei einschneidende Ereignisse: Erstens einen Wechsel des Vorgesetzten, zweitens den Tod der Topfpflanze und drittens eine neue Telefonanlage.

  • Ich würde es auch vermuten. Du erwartest eine Eingabe und der Teilnehmer hat ggf. schon aufgelegt.


    Am Besten vor der Prüfung der DTMF-Eingabe mit IsChannelOpen() prüfen, ob der Kanal noch existiert und sonst aus einer möglichen Schleife mit "break" rausspringen oder den Moduldurchlauf sonst ganz mit "exit" beenden.

    Viele Grüße,
    Christopher

    Edited once, last by cmuschitz ().

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!