Wiki:packages/callmonitor/actions/dreambox

DreamBox

Dreambox mit Enigma 1

  dreammessage [user[:password]@]host[:port] ["Alternative Nachricht"]

CallMonitor: Dreambox Auth abschalten
CallMonitor: Dreambox Auth abschalten
Wie zu sehen ist, ist "host" (also Rechnername oder IP-Adresse) der einzige Pflichtparameter. Damit die Nachricht aber auch wirklich ankommt, muss die Authentifizierung berücksichtigt werden. Eine Lösung ist es, wie beigefügter Screenshot aufzeigt, das Abschalten der Nachrichten-Authentifizierung auf der Box selbst. Wer das nicht will, dem bleibt zur Zeit nur, user:password@ vor den Host zu setzen - was dann allerdings bei den Listeners im Klartext angezeigt wird.

dreammessage kennt ein Standard-Nachrichten-Template, was normalerweise verwendet wird. Wer die Nachricht lieber selbst formatieren will, findet hier eine Liste mit verwendbaren Platzhaltern für Telefonnummer, Zeilenumbrüche, usw.

Desweiteren gibt es drei Umgebungsvariablen, die das Verhalten von dreammessage beeinflussen. Sie sind hier in einem typischen Aufruf mit ihren Standardwerten gezeigt:

  DREAM_TIMEOUT=10 DREAM_CAPTION="Telefonanruf" DREAM_ICON=1 dreammessage box1

StandBy Check

Befindet sich die zu benachrichtigende Dreambox im StandBy, werden die Nachrichten solange zwischengespeichert, bis sie wieder aus selbigem aufwacht. An und für sich ganz nett - nur wenn man sie gerade mal ein paar Tage nicht benutzt hat, und dann nach dem Anschalten erstmal hunderte von "verpassten" Anrufen zu sehen bekommt. Daher wäre es für manchen sicher praktisch, würden die Nachrichten nur dann (und zwar sofort) zugestellt, wenn die Dreambox sich zum Zeitpunkt des Anrufes nicht im StandBy befindet - während andernfalls die Benachrichtigung komplett unterbliebe.

Glücklicherweise ist das machbar (getestet mit DM600, DM 7000 und DM7020). Auf folgende Weise lässt sich nämlich der Status ermitteln:

# keine Passwort-Authentifizierung aktiv:
standby=`wget -O- "http://dreambox/cgi-bin/status" | awk '/Standby/' | sed -e 's/<[^>]*>//g'`
# mit Passwort-Authentifizierung:
standby=`wget -O- --http-user=root --http-passwd=dreambox "http://dreambox/cgi-bin/status" | awk '/Standby/' | sed -e 's/<[^>]*>//g'`

Je nachdem, ob das WebIF für Passwort-Authentifizierung konfiguriert ist oder nicht, kann man also die entsprechende Variante nutzen. Das busybox-wget unterstützt allerdings keine Authentifizierung. Daher muss beim Bauen von freetz das Paket 'wget' installiert werden. Die Variable $standby ist anschließend entweder mit STANDBY:ON oder STANDBY:OFF belegt. Für unsere Benachrichtigungs-Aktion können wir uns das wie folgt nutzbar machen:

[ "$(wget -O- "http://dreambox/cgi-bin/status" | awk '/Standby/' | sed -e 's/<[^>]*>//g')" = "Standby:OFF" ] && DREAM_TIMEOUT=10 dreammessage dreambox "${SOURCE_DISP} ruft an.${LF}${SOURCE_NAME}"

wobei natürlich dreambox mit dem Hostnamen bzw. der IP-Adresse der Dreambox ersetzt, sowie ggf. die Passwort-Authentifizierung mit eingebaut werden muss.

Quelle: IPPF Thread

DreamBox mit Enigma 2

  dream2message (default_dream2message)

DREAM_TIMEOUT und DREAM_ICON werden auch hier unterstützt.

Beispiel für ein Popup das nur den Namen (sofern in der Callers vorhanden) und die Telefonnummer des Anrufers anzeigt:

in:request ^ ^ dream2message 192.168.178.25 "${SOURCE_NAME} ${SOURCE} ruft an."