Fritzbox 7270/Wlan Repeater Scripts

Läuft 1a, danke für das Script

Gruß Sven

Vorraussetzung Freigabe des Port 1012 an der Fritzbox.
Zum öffnen des Port.
Angeschlossenes Telefon und #965 eingeben und Bestättigungston abwarten.
Zum Schliessen des Port.
Angeschlossenes Telefon und #964 eingeben und Bestättigungston abwarten.

[ul]
[li]Script anlegen[/li][li]Client Socket anlegen, IP Adresse und Port Fritzbox eintragen.[/li][li]Registervariable anlegen und mit Client Socket verbinden, das Script der Registervariable zuweisen.[/li][li]Dummymodul anlegen.[/li][li]Stringvariablen anlegen, Profil ~Textbox[/li][/ul]

<?

// Daten aus Registervariable lesen
$daten = explode(";", $IPS_VALUE);

// Datum/Uhrzeit mit ausgeben
define ("datetime", $daten[0]);

// Nummern ohne Eintrag im öffentlichen Telefonbuch welche aber bekannt sind und übertragen werden ($intern).
// unendlich erweiterbar
  $array["Nummer"][1] = "xxxxxx";
  $array["Name"]  [1] = "Rainer";
  $array["Nummer"][2] = "xxxxxxx";
  $array["Name"]  [2] = "Gabi";
  $array["Nummer"][3] = "xxxxxx";
  $array["Name"]  [3] = "Rainer Handy";
  $array["Nummer"][4] = "xxxxx";
  $array["Name"]  [4] = "Rainer Firma";
  $array["Nummer"][5] = "";
  $array["Name"]  [5] = "Unbekannt";
  $array["Nummer"][6] = "xxxxxx";
  $array["Name"]  [6] = "Ernst ";

// Daten aus Registervariable auswerten
switch($daten[1])
{
    case "RING":
   $Rufnummer = $daten[3];
    if(in_array($Rufnummer, $array["Nummer"]))
   {
       $intern = array_search($Rufnummer, $array["Nummer"]);
       SetValue(30996 /*[Fritzbox\Anrufe\Eingehender Anruf]*/, "am ".datetime. " von ".$array["Name"][$intern]);
       SetValue(27227 /*[Fritzbox\Anrufe\Letzter Anruf]*/, "am ".datetime. " von ".$array["Name"][$intern]);
       echo "Anruf am ".datetime. " von ".$array["Name"][$intern];
       return;
   }
   else
   {
      $Rufnummer = SucheNummer($Rufnummer);
   }
   break;
   
   case "CALL":
   $interneNummer = $daten[4];
   if ($interneNummer == 982966)
   {
      $interneNummer = "Rainer";
    }
    else
    {
       $interneNummer = "Gabi";
    }
    $externeNummer = $daten[5];
    SetValue(25006 /*[Fritzbox\Anrufe\Ausgehender Anruf]*/, "von ".$interneNummer." zu ".$externeNummer);
   break;
                
   case "DISCONNECT":
   RegVar_SetBuffer(35544 /*[Fritzbox\FritzPort1012]*/, "");
   SetValue(30996 /*[Fritzbox\Anrufe\Eingehender Anruf]*/, "");
   SetValue(25006 /*[Fritzbox\Anrufe\Ausgehender Anruf]*/, "");
   return;
   break;
}

function SucheNummer($Rufnummer)
{
   $url_orig="http://www.klicktel.de/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=#TEL#";
   $url = str_replace("#TEL#", $Rufnummer, $url_orig);
   $Ausgabe = fopen($url, "r");
   if (!$Ausgabe)
    {
      echo("ERROR : Kann URL nicht öffnen : $url
");
   }
   $lineNb     = 0;
   $searchTag0 = 'namelink';
   $searchTag1 = '<strong>';
   $searchTag2 = '</strong>';
   $gefunden   = 0;
   while(!$gefunden && !feof($Ausgabe))
   {
       $lineNb++;
        $buffer = fgets($Ausgabe);
      if (strpos($buffer, $searchTag0) != false)
      {
            $gefunden = 1;
            $startLN = strpos($buffer, $searchTag1) + strlen($searchTag1);
          $endeFN = strpos($buffer, $searchTag2) ;
            $Name = substr($buffer, $startLN, $endeFN - $startLN) ;
            $Name = html_entity_decode($Name);
            SetValue(30996 /*[Fritzbox\Anrufe\Eingehender Anruf]*/, "am ".datetime. " von ".$Name);
            SetValue(27227 /*[Fritzbox\Anrufe\Letzter Anruf]*/, "am ".datetime. " von ".$Name);
            echo "Anruf am ".datetime. " von ".$Name;
      }
   }
   fclose($Ausgabe);
   return $Name;
}

?>

Hallo Rainer,
läuft super, danke!
Ich habe noch einen else Zweig eingefügt, damit die Rufnummer eingefügt wird wenn der Name nicht gefunden wird.

while(!$gefunden && !feof($Ausgabe))
   {
       $lineNb++;
        $buffer = fgets($Ausgabe);
        //echo $buffer;
      if (strpos($buffer, $searchTag0) != false)
      {
            $gefunden = 1;
            $startLN = strpos($buffer, $searchTag1) + strlen($searchTag1);
            $endeFN = strpos($buffer, $searchTag2) ;
            $Name = substr($buffer, $startLN, $endeFN - $startLN) ;
            $Name = html_entity_decode($Name);
            SetValue(53165 /*[Telefon\Telefon\Anrufer]*/, $Name);
            #echo "Anruf von " . $Name;
       }
       else
       {
        SetValue(53165 /*[Telefon\Telefon\Anrufer]*/, $Rufnummer);

         }

Würdet ihr bitte, wenn ihr ältere Beiträge ändert, den Grund näher erläutern.
Ein >Text erweitert/Script aktualisiert/Bild hinzugefügt< o.ä. würde schon reichen.
Danke

Hallo Rainer,

deine Skripte für die Fritzbox sind einfach super.
Was mir noch fehlt, ist die Anzeige für die Onlinezeit meiner Kinder.

Hier noch mal ein Script zum auslesen der Budgetzeit von User2 am Freitag.

Das ganze kann für alle Tage und User entsprechend Code angelegt werden.

Die Ausgabe im Webfront kann dann z.B. so aussehen. :slight_smile:

<?
$fritzbox_ip = 'fritz.box';
$fritzgui    = 'http://fritz.box/cgi-bin/webcm';
$fritzseite  = '../html/de/menus/menu2.html';
$password    = 'xxxxxx';

$ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
curl_close($ch);
$session_status_simplexml = simplexml_load_string($login);


if ($session_status_simplexml->iswriteaccess == 1)
{
   $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
   $login = array('getpage' => $fritzseite, 'login:command/response' => $response);
   $sendlogin = http_post_fields($fritzgui, $login);
   preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@', $sendlogin, $matches);
   if (isset($matches[1]) && $matches[1] != '0000000000000000')
   {
      $SID = $matches[1];
   }
   else
   {
      echo "Fehler: Login fehlgeschlagen";
      return;
    }
}
$heute = date('d.m.y');
$user2ip = array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'internet', 'var:pagename' => 'useradd2', 'var:userid' => 'user2');
$checkuserip = http_post_fields($fritzgui, $user2ip);
preg_match('@name="user:settings/user2/name" value="(\b(?:\d{1,3}\.){3}\d{1,3}\b)"@', $checkuserip, $ipuser2); // IP-Adresse
$ip2 = $ipuser2[1];

$user2time = array('getpage' => $fritzseite, 'var:menu' => 'internet', 'var:pagename' => 'useradd2', 'var:userid' => 'user2');
$checkusertime = http_post_fields($fritzgui, $user2time);
preg_match('@name="user:settings/user2/budget_time_friday" value="(((\b[0-9]+)?\.)?[0-9]+\b)"@', $checkusertime, $budgettime); // Zeit auslesen
$user2budget = $budgettime[1]/3600;
$maxtime = "Testrechner mit IP-Adresse $ip2 hat am $heute eine Budgetzeit von $user2budget h";

SetValue(45621 /*[Fritzbox\Online Zeit\Budgetzeit]*/, $maxtime);

$logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
$sendlogout = http_post_fields($fritzgui, $logout);


?>

Guten Morgen zusammen,

ich würde mir noch ein Button wünschen, bei dessen betätigen sich die Anruferliste in der Fritzbox resetet sprich alle Anrufe in der Liste werden gelöscht.

Grüße Mirco

Das sieht ja wohl super aus … was jetzt noch fehlt, um es absolut zu perfektionieren, wäre 1.) das gleiche mit dem FritzBox Telefonbuch zu machen, also abholen und anzeigen … und dann 2.) mit Hilfe des Telefonbuchs und ggfs. der KlickTel ReverseSuche die Anrufliste mit „Namen“ füllen. Das gleiche mache ich ja immer noch über JFritz und XML Dateien. Dies auf dem von Dir beschriebenen Weg umzustellen, wäre natürlich der absolute Hit !!

Ich habe die beiden Scripte von RWN Quick and dirty zusammengepackt.
Bei Meldung ‚Ring‘ wird der Name ausgegeben, bei ‚Disconnect‘ wird die Tabelle generiert und in einer IPS Variablen abgelegt. Dann kann man sie schnell aufrufen ohne auf die Fritzbox warten zu müssen.

Bei Interesse kann ich das mal online stellen.

Allerdings ist noch kaum etwas kommentiert und mein ‚Programierstiel‘ dürfte etwas holperig sein :rolleyes:

Gruß
Klaus

Hallo Klaus,
ich hätte schon interesse an dein script, bin gerade dabei dies in mein Projekt einzufügen.

cu uwe

Das folgende Script habe ich an die REGVar geknüpft.


   <?

// Daten aus Registervariable lesen
$daten = explode(";", $IPS_VALUE);

// Nummern ohne Eintrag im öffentlichen Telefonbuch welche aber bekannt sind und übertragen werden ($intern).
// unendlich erweiterbar
  $array["Nummer"][1] = "xxxx";
  $array["Name"]  [1] = "Susi und Klaus";
  $array["Nummer"][2] = "xxxxx";
  $array["Name"]  [2] = "Klaus Mobil";
  $array["Nummer"][3] = "xxxxxx";
  $array["Name"]  [3] = "Klaus Danfoss";
  $array["Nummer"][4] = "xxxxx";
  $array["Name"]  [4] = "Rainer Firma";
  $array["Nummer"][5] = "";
  $array["Name"]  [5] = "Ohne Nummer";
  $array["Nummer"][6] = "xxxxxx";
  $array["Name"]  [6] = "Ernst ";

// Daten aus Registervariable auswerten
switch($daten[1])
{
    #Ab hier Auswertung für Anrufer-------------------------------------------------
     case "RING":
    $Rufnummer = ($daten[3]);
    if(in_array($Rufnummer, $array["Nummer"]))
   {
       $intern = array_search($Rufnummer, $array["Nummer"]);
       SetValue(53165 /*[Telefon\Telefon\letzter Anrufer]*/, $array["Name"][$intern]);
       #echo "Anruf von " .  $array["Name"][$intern];
       return;
   }
   else
   {
      $Rufnummer = SucheNummer($Rufnummer);
   }
   break;
   #Ab hier Auswertung für Anrufliste----------------------------------------------
    case "DISCONNECT":
   RegVar_SetBuffer(48728 /*[Telefon\FritzBoxRegVar]*/, "");  #ANPASSEN!

   $anrufliste="";
   $fritzbox_ip = 'fritz.box';
   $fritzgui    = 'http://fritz.box/cgi-bin/webcm';
   $fritzseite  = '../html/de/menus/menu2.html';
   $filename   = IPS_GetKernelDir()."\\webfront\\user\\Fritzbox\\Anrufliste.csv";// anpassen
   $password    = 'xxxxxxxxx';  #ANPASSEN!
   $ein         = '1';
   $aus         = '0';

   $ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $login = curl_exec($ch);
   curl_close($ch);
   $session_status_simplexml = simplexml_load_string($login);


   if ($session_status_simplexml->iswriteaccess == 1)
     {
      $SID = $session_status_simplexml->SID;
     }
   else
    {
     $challenge = $session_status_simplexml->Challenge;
     $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
     $login = array('getpage' => $fritzseite, 'login:command/response' => $response);
     $sendlogin = http_post_fields($fritzgui, $login);
     preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i', $sendlogin, $matches);
     if (isset($matches[1]) && $matches[1] != '0000000000000000')
       {
        $SID = $matches[1];
       }
     else
       {
        echo "Fehler: Login fehlgeschlagen";
        return;
       }
      }

     //Anrufliste aktualisieren
    $gotopage = array('getpage' => $fritzseite,'sid' => $SID, 'var:menu' => 'home', 'var:pagename' => 'foncalls');
    $getnewlist = http_post_fields($fritzgui, $gotopage);

    //Anrufliste abholen
    $anrufliste = http_post_fields($fritzgui, array('getpage' => '../html/de/FRITZ!Box_Anrufliste.csv', 'sid' => $SID));
    $anrufliste = explode(';', $anrufliste, 4);
    $anrufliste = $anrufliste[3];
    $fileHandle = @fopen($filename, 'wb+');
    @fwrite($fileHandle, $anrufliste);
    @fclose($fileHandle);

    //Anrufliste einlesen
    $filename = "../webfront/user/Fritzbox/Anrufliste.csv";
    $id = @fopen($filename, "r");
    while ($data = fgetcsv($id, filesize($filename),";"))
      $table[] = $data;
    @fclose($id);
    //Anrufliste auswerten
    $anruferliste="<table width=\'100%\' border=\'0\' cellspacing=\'0\' cellpadding=\'8\' ><tr> <td width=\'35%\'>Anrufer</td><td width=\'28%\'>Nummer</td><td width=\'32%\'>Datum</td>  <td width=\'10%\'>Dauer</td><td width=\'5%\'><div align=\'center\'>Ange..</div></td></tr><tr><td width=\'auto\'><div align=\'center\'> </div></td> <td width=\'auto\'><div align=\'center\'> </div></td> <td width=\'auto\'> </td> <td width=\'auto\'> </td><td width=\'auto\'> </td></tr>";
    array_shift($table); #die ersten drei Zeilen aus dem Array löschen
    array_shift($table);#die ersten drei Zeilen aus dem Array löschen
    array_shift($table);#die ersten drei Zeilen aus dem Array löschen
    foreach($table as $row)#Rest der Tabelle auswerten
      {
      if ($row[0]<> 3)  #Abgehende Anrufe ausblenden
        {
#-----------------------------------------------------------------------------
          $Rufnummer = $row[3];  #Rufnummer aus Array holen
            if(in_array($Rufnummer, $array["Nummer"]))
          {
          $intern = array_search($Rufnummer, $array["Nummer"]);
           $row[2]=$array["Name"][$intern];  #Namen in Array schreiben
            }
        else
          {
           $url_orig="http://www.klicktel.de/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=#TEL#";
           $url = str_replace("#TEL#","$Rufnummer",$url_orig);
           $Ausgabe = fopen($url, "r");
           if (!$Ausgabe)
             {
             echo("ERROR : Kann URL nicht öffnen : '$url'
");
             }
           $lineNb     = 0;
           $searchTag0 = 'namelink';
           $searchTag1 = '<strong>';
           $searchTag2 = '</strong>';
           $gefunden   = 0;
           while(!$gefunden && !feof($Ausgabe))
               {
              $lineNb++;
              $buffer = fgets($Ausgabe);
              if (strpos($buffer, $searchTag0) != false)
                {
                $gefunden = 1;
                $startLN = strpos($buffer, $searchTag1) + strlen($searchTag1);
                $endeFN = strpos($buffer, $searchTag2) ;
                $Name = substr($buffer, $startLN, $endeFN - $startLN) ;
                $Name = html_entity_decode($Name);
                $row[2]=$Name;
                }
              else $row[2]="unbekannt";  #Keine Nummer gefunden
          }
         }
       echo "<tr>";
       if ($row[0] == 1) $row[0]="Ja";  #Angenommen JA
       else $row[0]="Nein";             #Angenommen Nein
       #Jetzt Zeile in String speichern
       $anruferliste= $anruferliste.'<tr><td width="auto">'.$row[2].'</td><td width="auto">'.$row[3].'</td><td width="auto">'.$row[1].'</td><td width="auto">'.$row[6].'</td><td width="auto"><div align="center">'.$row[0].'</div></td></tr>';
   }
}

$anruferliste =$anruferliste."</table>
";
setvalue(29974 /*[Telefon\Telefon\Anruferliste]*/, $anruferliste);  #ANPASSEN!  IPS Variable für speichern der Liste
#echo $anruferliste;
$logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
$sendlogout = http_post_fields($fritzgui, $logout);










#--------------------------------------------------------------------------------
    return;
   break;
}

function SucheNummer($Rufnummer)
{
   $url_orig="http://www.klicktel.de/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=#TEL#";
   $url = str_replace("#TEL#","$Rufnummer",$url_orig);
   $Ausgabe = fopen($url, "r");
   if (!$Ausgabe)
    {
      echo("ERROR : Kann URL nicht öffnen : '$url'
");
   }
   $lineNb     = 0;
   $searchTag0 = 'namelink';
   $searchTag1 = '<strong>';
   $searchTag2 = '</strong>';
   $gefunden   = 0;
   while(!$gefunden && !feof($Ausgabe))
   {
       $lineNb++;
        $buffer = fgets($Ausgabe);
        //echo $buffer;
      if (strpos($buffer, $searchTag0) != false)
      {
            $gefunden = 1;
            $startLN = strpos($buffer, $searchTag1) + strlen($searchTag1);
            $endeFN = strpos($buffer, $searchTag2) ;
            $Name = substr($buffer, $startLN, $endeFN - $startLN) ;
            $Name = html_entity_decode($Name);
            SetValue(53165 /*[Telefon\Telefon\letzter Anrufer]*/, $Name);  #ANPASSEN!
      }
       else
       {
        SetValue(53165 /*[Telefon\Telefon\letzter Anrufer]*/, $Rufnummer); #ANPASSEN!

         }
   }
   fclose($Ausgabe);
   return $Name;
}

?>

Mir ist klar, dass ich die Funktion zur Rückwärtssuche zwei mal drinnen habe. Ich bin halt nur froh, das es erst einmal läuft :rolleyes:

Schöner machen kann man es immer noch.

Den Inhalt der Variablen hole ich mir dann in einem anderen Script, dass ich vom Webfront aus aufrufe:

<?
$anruferliste=getvalue(29974 /*[Telefon\Telefon\Anruferliste]*/); #ANPASSEN!
echo $anruferliste;
?>

Das geht schneller als erst die Daten aus der Fritzbox zu holen wenn man die Liste ausgeben will. Die Rückwertssuche dauert einige Sekunden.

Fragen beantworte ich gern. Für weite Teile habe ich RWNs Scripte benutzt (Danke RWN!). Da kann ich nur versuchen zu helfen. (Vieles davon verstehe ich leider nicht)

Gruß
Klaus

Anmerkung: Ich gebe nur ankommende Anrufe in der Liste aus und nur ob angenommen, Name, Anrufernummer und Datum.
Wer mehr will muß die HTML Ausgabe erweitern.

Bitte schön. Ausführen als Script.

<?
$fritzbox_ip = 'fritz.box';
$fritzgui    = 'http://fritz.box/cgi-bin/webcm';
$fritzseite  = '../html/de/menus/menu2.html';
$password    = 'xxxxx';
$aus         = '0';

$ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
curl_close($ch);
$session_status_simplexml = simplexml_load_string($login);


if ($session_status_simplexml->iswriteaccess == 1)
{
   $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
   $login = array('getpage' => $fritzseite, 'login:command/response' => $response);
   $sendlogin = http_post_fields($fritzgui, $login);
   preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i', $sendlogin, $matches);
   if (isset($matches[1]) && $matches[1] != '0000000000000000')
   {
      $SID = $matches[1];
   }
   else
   {
      echo "Fehler: Login fehlgeschlagen";
      return;
    }
}
$clearjournal = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:pagename' => 'foncalls', 'telcfg:settings/ClearJournal' => $aus));

$logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
$sendlogout = http_post_fields($fritzgui, $logout);
?>

Hallo RWN,

Und jetzt noch die Rufumleitung ein und ausschalten können… :rolleyes:
Das wird ja langsam zu einer Fernbedienung der Fritzbox, super!

Gruß
Klaus

ungetestet. Schaltet Umleitung 1 Ein oder Aus.

if ($IPS_VALUE)
    {
        $umleitung = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/CallerIDActions0/Active' => $ein));
    }
    else
    {
       $umleitung = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/CallerIDActions0/Active' => $aus));
    }

    $checksetting = array('getpage' => $fritzseite, 'var:menu' => 'fon', 'var:pagename' => 'rulall');
    $sendcheck = http_post_fields($fritzgui, $checksetting);
    preg_match('@name="telcfg:settings/CallerIDActions0/Active" value="([10])"@i', $sendcheck, $matches);
    if (isset($matches[1]) && $matches[1] == 1)
    {
        SetValue(55119 /*[Umleitung]*/, 1);
    }
    else
    {
       SetValue(55119 /*[Umleitung]*/, 0);
    }

Hallo Rainer,
ich habe den Kopf vom Anrufer Script dazu gepackt, damit ich das Script einzeln aufrufen kann.
Es kommt keine Fehlermeldung aber es wird auch nicht umgeschaltet. :o


<?

$anrufliste="";
   $fritzbox_ip = 'fritz.box';
   $fritzgui    = 'http://fritz.box/cgi-bin/webcm';
   $fritzseite  = '../html/de/menus/menu2.html';
   $filename   = IPS_GetKernelDir()."\\webfront\\user\\Fritzbox\\Anrufliste.csv";// anpassen
   $password    = 'xx';
   $ein         = '1';
   $aus         = '0';

 $ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $login = curl_exec($ch);
   curl_close($ch);
   $session_status_simplexml = simplexml_load_string($login);


   if ($session_status_simplexml->iswriteaccess == 1)
     {
      $SID = $session_status_simplexml->SID;
     }
   else
    {
     $challenge = $session_status_simplexml->Challenge;
     $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
     $login = array('getpage' => $fritzseite, 'login:command/response' => $response);
     $sendlogin = http_post_fields($fritzgui, $login);
     preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i', $sendlogin, $matches);
     if (isset($matches[1]) && $matches[1] != '0000000000000000')
       {
        $SID = $matches[1];
       }
     else
       {
        echo "Fehler: Login fehlgeschlagen";
        return;
       }
      }
if ($IPS_VALUE)
    {
        $umleitung = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/CallerIDActions0/Active' => $ein));
    }
    else
    {
       $umleitung = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/CallerIDActions0/Active' => $aus));
    }

    $checksetting = array('getpage' => $fritzseite, 'var:menu' => 'fon', 'var:pagename' => 'rulall');
    $sendcheck = http_post_fields($fritzgui, $checksetting);
    preg_match('@name="telcfg:settings/CallerIDActions0/Active" value="([10])"@i', $sendcheck, $matches);
    if (isset($matches[1]) && $matches[1] == 1)
    {
        SetValue(22437  /*[Telefon\Telefon\Anrufumleitung1]*/, 1);
    }
    else
    {
       SetValue(22437  /*[Telefon\Telefon\Anrufumleitung1]*/, 0);
    }
?>

Gruß
Klaus

und das noch mit einer kleinen Auswahl von Rufnummern aus der man eine wählt auf die umgeleitet wird. :smiley:

Wie immer. Mein Dank gehört dir. :smiley:
Grüße Mirco

Liste löschen funktioniert prima :smiley:

Vielen Dank Rainer!

… das schau ich mir morgen noch mal am lebenden Objekt an :rolleyes:

Hallo Klaus,

ich habe es gerade bei mir getestet. Funktioniert so wie oben angegeben einwandfrei.

und das noch mit einer kleinen Auswahl von Rufnummern aus der man eine wählt auf die umgeleitet wird
Sollte kein Problem sein. Man kann sich eine Auswahl Variable im Webfront mit verschiedenen Nummern anlegen.
Voraussetzung das die umgeleitete Nummer immer der selben Person zugewiesen wird.

Sollte kein Problem sein. Man kann sich eine Auswahl Variable im Webfront mit verschiedenen Nummern anlegen.
Voraussetzung das die umgeleitete Nummer immer der selben Person zugewiesen wird

Hä? :confused:
Wie jetzt? Wie muss sowas aussehen?