Hallo Forum-Mitglieder,
ich versuche bei meiner Fritz!Box eine Portweiterleitung per TR-064 einzutragen. Ich will das ganze per Bash-Script lösen, weil ich als CRONJOB Zeitlich laufen lassen möchte. Hier mein Code:
IPS="192.168.0.1"
FRITZUSER="MeinUsername"
FRITZPW="MeinPasswort"
location="/upnp/control/wanipconnection1"
uri="urn:dslforum-org:service:WANIPConnection:1"
action='AddPortMapping'
SoapParamString="
<NewRemoteHost></NewRemoteHost>
<NewExternalPort>1983</NewExternalPort>
<NewProtocol>TCP</NewProtocol>
<NewInternalPort>1983</NewInternalPort>
<NewInternalClient>192.168.0.5</NewInternalClient>
<NewEnabled>1</NewEnabled>
<NewPortMappingDescription>SynologyDS213J</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>"
for IP in ${IPS}; do
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" https://$IP:49443$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'>$SoapParamString</u:$action></s:Body></s:Envelope>" -s
done
Andere Abfragen funktionieren. Wenn ich das ganze ausführe, bekomme ich folgende Fehlermeldung:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>600</errorCode>
<errorDescription>Argument Value Invalid</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>%
Ich verstehe die Fehlermeldung so, dass der Wert von einem Argument falsch oder fehlerhaft ist. Ich finde nur den Fehler nicht. Vielleicht hat ja jemand TR-064 Erfahrung und kann mir auf die Sprünge helfen. Danke
Gruss