[fli4l] Fritzbox als VOIP-Client hinter fli4l nach dem IP-UP rebooten

Marcus Roeckrath marcus.roeckrath at gmx.de
Mi Sep 14 21:15:34 CEST 2016


Hallo Erwin,

Erwin Lottermann wrote:

> Ja, Reboot ist von AVM vorgsehen.
> Den Link habe ich oben gesetzt.
> Da die Reboot-Funktion keinen speziellen Aufrufparameter erwartet und
> irgendwo etwas von SOAP stand, hatte ich vermutet, dass es am Ende nur
> auf den Aufruf einer speziellen Webadresse der Fritzbox hinausläuft
> (user-credentials wird man sicher auch mitschicken müssen).

Vielleicht so den Reboot auslösen (ungetestet; Vorsicht Umbrüche):

#!/bin/sh

FBIP='192.168.178.1'
FBPORT='49000'
FBPORTSSL='49443'

# Es kann auch ein in der Fritzbox definierter User sein
user="dslf-forum" # Standarduser in TR-064 festgelegt
password="x" # Passwort der Weboberfläche

control_url="`curl -s "http://${FBIP}:${FBPORT}/tr64desc.xml" | \
    sed -e '/deviceinfo<\/controlURL\>/!d' -e 's/^<controlURL>//' -e
's/<\/controlURL>.*$//'`"
urn="`curl -s "http://${FBIP}:${FBPORT}/tr64desc.xml" | \
    sed -e '/DeviceInfo:1<\/serviceType\>/!d' -e 's/^<serviceType>//' -e
's/<\/serviceType>.*$//'`"

FBPORTSSL=`curl -s -m 5 -X POST "http://${FBIP}:${FBPORT}${control_url}" \
              -H "Content-Type: text/xml; charset=\"utf-8\"" \
              -H "SoapAction:${urn}#GetSecurityPort" \
              -d "<?xml version=\"1.0\" encoding=\"utf-8\"?>
                  <s:Envelope
xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"
                   s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">
                  <s:Body>
                  <u:GetSecurityPort xmlns:u=\"${urn}\">
                  </u:GetSecurityPort>
                  </s:Body>
                  </s:Envelope>"  | \
              grep 'NewSecurityPort' | sed
's#^.*<NewSecurityPort>\(.*\)<.*$#\1#'`

control_url="`curl -s "http://${FBIP}:${FBPORT}/tr64desc.xml" | \
    sed -e '/deviceconfig<\/controlURL\>/!d' -e 's/^<controlURL>//' -e
's/<\/controlURL>.*$//'`"
urn="`curl -s "http://${FBIP}:${FBPORT}/tr64desc.xml" | \
    sed -e '/DeviceConfig:1<\/serviceType\>/!d' -e 's/^<serviceType>//' -e
's/<\/serviceType>.*$//'`"

# Oder mit auth
# curl -s --anyauth -u "${user}:${password}" --insecure \
#
curl -s --insecure \
    -X POST "https://${FBIP}:${FBPORTSSL}${control_url}" \
    -H "Content-Type: text/xml; charset=\"utf-8\"' \
    -H "SoapAction:${urn}#Reboot" \
    -d "<?xml version=\"1.0\" encoding=\"utf-8\"?>
        <s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"
                    s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">
        <s:Body>
        <u:Reboot xmlns:u=\"${urn}\">
        </u:Reboot>
        </s:Body>
        </s:Envelope>"

Mit der Authentifizierung schlage ich mich gerade wegen Setzen und Löschen
von PortMappings rum. :-(


-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Fli4L