.titleBar { margin-bottom: 5px!important; }

[Frage] Auto-Start von Asterisk auf Freetz?

Dieses Thema im Forum "Freetz" wurde erstellt von nellieNashorn, 9 Juli 2018.

  1. nellieNashorn

    nellieNashorn Neuer User

    Registriert seit:
    23 Juni 2018
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo,

    ich setze Freetz auf einer Fritz!Box 7390 primär ein, um Asterisk in einer reinen SIP-Umgebung bereit zu stellen.

    Mein Stand ist r14743. Ich würde gerne Asterisk automatisch starten, habe auch in der Freetz-Weboberfläche den entsprechenden Radio-Button gesetzt, allein, es funktioniert nicht. Manuell Starten über die Freetz-Weboberfläche funktioniert problemlos. Ich vermute die Ursache darin, dass das USB-Laufwerk nicht "früh genug" gemountet ist bzw. Freetz versucht, Asterisk "zu früh" automatisch zu starten, habe aber zugegebenermassen nicht versucht, in irgendwelchen Logfiles nachzugucken.

    Wie kann ich Asterisk automatisch starten (das muss nicht zwingend per Freetz-Weboberfläche sein)? Mir geht es v. a. darum, dass nicht gleich nach einem Stromausfall o. dgl. ein Experte Asterisk wieder manuell starten muss.

    Beste Grüsse
    nellieNashorn
     
  2. stoney

    stoney Moderator
    Forum-Mitarbeiter

    Registriert seit:
    7 Okt. 2015
    Beiträge:
    3,450
    Zustimmungen:
    215
    Punkte für Erfolge:
    63
    Ort:
    Bayern
    Via cron
    Code:
    @reboot
    würde ich mal testen, ob der Asterisk dann zur rechten Zeit gestartet wird...
     
  3. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,916
    Zustimmungen:
    512
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Vooorsicht ... die BusyBox kennt diese "special times" erst seit der Version 1.28.0 (https://git.busybox.net/busybox/tree/miscutils/crond.c?h=1_28_0#n38) und Freetz verwendet eine 1.27.2 (https://github.com/Freetz/freetz/bl...b1f0e93d30278ec431e8f/make/busybox/busybox.mk), bei der das noch nicht enthalten ist (https://git.busybox.net/busybox/tree/miscutils/crond.c?h=1_27_2#n25).

    Das geht also nicht so ohne weiteres ... was nicht heißen soll, daß es unmöglich wäre.

    Ich würde hier ohnehin irgendwo ein "verzögertes" Skript starten, welches erst dann die "asterisk"-Instanz anschiebt, wenn alle anderen Voraussetzungen (sofern da SIP-Accounts nach extern registriert werden, sogar erst, wenn die Box "online" ist) erfüllt sind - eine davon dürfte z.B. eine gültige Uhrzeit sein ... diese sollte - nur nebenbei bemerkt - auch für den Start des "crond" bereits korrekt gesetzt sein und das geschieht bei den meisten FRITZ!Boxen in freier Wildbahn sicherlich erst dann, wenn die online sind. Es sei denn, man hat selbst einen NTP-Server oder -Proxy in seinem Netz oder einen Server, der vom "rdate"-Applet in der BusyBox genutzt werden kann - das benutzt den "daytime"-Service - und man ruft dieses Applet dann selbst auf. Aber die FRITZ!Boxen haben eben keine RTC und ihr "Zeitsprung" nach dem Setzen der Uhrzeit über "multid" und "chronyc" kann andere Software mit Zeitbezug schon mal verwirren - gerade der "crond" ist da bei mir immer wieder ein Kandidat, daher hat der bei mir auch vor seinem Start eine "Zeitabfrage", z.B. etwas in dieser Art: https://github.com/PeterPawn/YourFritz/blob/master/tools/waittimeset

    Die beste Stelle, um ansonsten solche Dienste zu verwalten, die vom "Online-Zustand" abhängig sind, ist immer noch "onlinechanged" ... ich weiß nicht genau, wie weit da Freetz mit der korrekten Auswertung der verschiedenen Kombinationen (IPv4 vs. IPv6, online vs. offline) inzwischen ist bzw. ob es da im "Framework" überhaupt einen passenden Hook gibt (und ich sehe jetzt auch nicht nach). Aber man kann einfach selbst passende Skript-Dateien in das Verzeichnis "/etc/onlinechanged" einbinden, die werden dann bei einer Zustandsänderung von "/bin/onlinechanged" (auch ein Shell-Skript, das aber vom "multid" (oder "kdsld", das ist schwer zu trennen) angestoßen wird) der Reihe nach abgearbeitet.
     
  4. er13

    er13 Aktives Mitglied

    Registriert seit:
    20 Dez. 2005
    Beiträge:
    954
    Zustimmungen:
    14
    Punkte für Erfolge:
    18
    • external in menuconfig einschalten, einschalten reicht, es ist nicht zwingend notwendig, irgendetwas zu external'isieren
    • im Freetz-Web-If unter "Freetz/Einstellungen" im Bereich external unter "Diese selbst definierten Dienste behandeln" asterisk eintragen
    Dann wird asterisk erst dann gestartet, wenn external gestartet wurde und external wiederum wird erst dann gestartet, wenn das USB-Medium gemountet wurde. Nicht schön, aber funktioniert.
     
    nellieNashorn gefällt das.
  5. nellieNashorn

    nellieNashorn Neuer User

    Registriert seit:
    23 Juni 2018
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Vielen Dank! Bitte entschuldigt die sehr späte Antwort, erst jetzt kam ich dazu, den jüngsten der o. g. Vorschläge zu befolgen - mit Erfolg! Ergänzen möchte ich, dass dabei erstens in der Tat beim Konfigurieren von Freetz wirklich alle anderen Einstellungen, die die "external"-Funktionalität betreffen, abgewählt werden können, selbst wenn die zunächst eingeschaltet worden sein sollten, dass zweitens der Starttyp von Asterisk in der Weboberfläche auf "Automatisch" gestellt sein muss, sonst wird Asterisk auch von "external" nicht gestartet - es erscheint eine entsprechende Fehlermeldung im "external.log" -, und dass drittens der Pfad auf das "external"-Verzeichnis existieren muss, auch wenn der Inhalt des betreffenden Verzeichnisses durchaus leer sein darf - in meinem Fall hat mir die Weboberfläche ein nicht-existentes Verzeichnis vorgeschlagen (uStor01 statt 01 oder so), und prompt startete "external" nicht und damit Asterisk erst recht nicht. Etwas verwirrend fand ich, dass zeitweilig Asterisk aus der Weboberfläche verschwand, das liess sich dann dadurch beheben, dass ich "asterisk" aus "Diese selbst definierten Dienste behandeln" wieder entfernt und neu gebootet habe. Danach erschien "Asterisk" wieder im Oberflächenmenu, und ich konnte es wieder bei "Diese selbst definierten Dienste behandeln" eintragen, und mit dem richtigen Pfad funktioniert der Autostart nun auch. Nochmals herzlichen Dank!