Nachdem ich viel gesucht hatte und das, was ich gefunden habe, teilweise veraltet ist, hier ein Skript zum ein-/ausschalten von zwei in der Fritzbox eingerichteten Rufumleitungen (geht auch, wenn nur eine eingerichtet ist) mit Boolean-Variablen (ID 1234) - Fritzbox 7490 FW 07.21 -:
// Anzupassen:
$fritzbox_ip = '192.168.XX.X';
$username = 'XXX';
$password = 'XXX';
// LogIn:
if (GetValue(1234))
{
$einAus = 'on';
}
else
{
$einAus = '';
}
$ch = curl_init($fritzbox_ip.'/login_sid.lua?username='.$username);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
$session_status_simplexml = simplexml_load_string($login);
if ($session_status_simplexml->SID != '0000000000000000')
{
$SID = $session_status_simplexml->SID;
}
else
{
$challenge = $session_status_simplexml->Challenge;
$response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=".$username."&response={$response}&page=/login_sid.lua");
$sendlogin = curl_exec($ch);
$session_status_simplexml = simplexml_load_string($sendlogin);
if ($session_status_simplexml->SID != '0000000000000000')
{
$SID = $session_status_simplexml->SID;
}
else
{
echo "Fehler: Login fehlgeschlagen";
return;
}
}
curl_close($ch);
// Schalten:
$ch = curl_init("http://{$fritzbox_ip}/fon_num/rul_list.lua?sid={$SID}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$rc1=curl_setopt($ch, CURLOPT_POSTFIELDS, ($einAus == "on" ? "&rul_0=1&rul_1=1&" : "&rul_0=0&rul_1=0&") . "apply="); //schaltet 2 Umleitungen (rul_0 und rul_1)
$rc2=curl_exec($ch);
curl_close($ch);