Routing Mechanismus

BOSWatch 3 hat einen Routing Mechanismus integriert. Mit diesem ist es auf einfache Weise möglich, den Verlauf von Alarmpaketen zu steuern.


Ablauf

Nachfolgender Ablauf soll am Beispiel eines Alarms mit einem Pocsag Paket erklärt werden.

  • BOSWatch startet alle Router, welche in der config als alarmRouter konfiguriert worden sind (in diesem Fall nur Router1)
  • Der Router Router1 beginnt seine Ausführung und arbeitet die einzelnen Routenpunkte sequentiell ab
    • Das Modul descriptor wird aufgerufen und fügt ggf. Beschreibungen zum Paket hinzu
    • Das Modul doubleFilter wird aufgerufen und blockiert doppelte Alarme
      (hier würde die Ausführung dieses Routers und damit des kompletten Alarmprozesses stoppen wenn der Alarm als doppelter erkannt würde)
    • Der Router Router2 wir nun aufgerufen (bis zur Rückkehr aus Router2 ist der Router Router1 angehalten)
  • Der Router Router2 beginnt seine Ausführung und arbeitet die einzelnen Routenpunkte sequentiell ab
    • Das Modul modeFilter wird aufgerufen und stoppt den Router da es sich nicht um ein FMS Paket handelt
    • Es wird zur Ausführung von Router1 zurückgekehrt
  • Der Router Router3 beginnt seine Ausführung und arbeitet die einzelnen Routenpunkte sequentiell ab
    • Das Modul modeFilter wird aufgerufen und leitet das Paket weiter da es sich um ein Pocsag Paket handelt
    • Das Plugin Telegram wird aufgerufen
    • Das Plugin MySQL wird augerufen
    • Es wird zur Ausführung von Router1 zurückgekehrt
  • Der Router Router1 setzt seine Ausführung fort
    • Das Modul modeFilter wird aufgerufen und stoppt den Router da es sich nicht um ein ZVEI Paket handelt

Jetzt sind alle Routenpunkte abgearbeitet und die Alarmierung damit abgeschlossen.


Konfiguration

Nachfolgend ist die Router Konfiguration des BW3-Servers für das obige Beispiel zu finden:

alarmRouter:
  - Router1

router:
  - name: Router1
    route:
      - type: module
        res: descriptor
        config:
          [...]
      - type: module
        res: filter.doubleFilter
        config:
          [...]
      - type: router
        res: Router2
      - type: router
        res: Router3
      - type: module
        res: filter.modeFilter
        config:
          allowed:
            - zvei
      - type: plugin
        res: sms
        config:
          [...]

  - name: Router2
    route:
      - type: module
        res: filter.modeFilter
        config:
          allowed:
            - fms
      - type: plugin
        res: mysql
        config:
          [...]

  - name: Router3
    route:
      - type: module
        res: filter.modeFilter
        config:
          allowed:
            - pocsag
      - type: plugin
        res: telegram
        config:
          [...]
      - type: plugin
        res: mysql
        config:
          [...]