Funktionierende Scripts für FRITZ!OS 05.50 7390

Kann mir jemand verraten wie ich abfrage ob gerade ein aktives Gespräch stattfindet?

…stimmt. Ein Beispiel gab’s nämlich hier im Thread schon.
Ich mache das wie folgt :

<?
include "fritzbox.php";
$sekunden=4;
$nr="**610";

IF ($_IPS['SENDER']<>"TimerEvent")
	{

		$ch = curl_init('http://fritz.box/fon_num/dial_foncalls.lua');
		curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&telcfg:command/Dial=$nr");
      curl_exec($ch);
  		IPS_SETSCRIPTTIMER($_IPS['SELF'],$sekunden);
  		curl_close($ch);
	}
	ELSE
	{
		$ch = curl_init('http://fritz.box/fon_num/dial_foncalls.lua');
      curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&telcfg:command/Hangup=$nr");
      curl_exec($ch);
	  	IPS_SETSCRIPTTIMER($_IPS['SELF'],0);
 		curl_close($ch);
	}

?>

Apparat **610 für 4 Sekunden klingeln lassen.

Gruß
Walter

Client Socket zur Fritzbox aktivieren, Skript über Registervariable tirggern ( wurde schon einige Male hier gepostet ).
Im Skript, kannst Du dann Statusvariablen setzen, die Du von anderen Skripten später abfragen kannst. Du bekommst über die RegVar 3 Zustände :

// Daten aus Registervariable lesen
$daten = explode(";", $_IPS['VALUE']);

// Daten aus Registervariable auswerten
switch($daten[1])
{
// ************************** Eingehender Anruf ***********************************************************
    	case "RING":
    	echo "Eingehender Ruf von : ".$daten[3];
    
   break;

// ************************** Abgehender Anruf ***********************************************************
   case "CALL":
		   
	echo "Ausgehender Ruf zu : ".$daten[5];
	break;

// ************************** Ende Anruf ***********************************************************
   case "DISCONNECT":
	   
   break;
}

Gruß
Walter

das ist so nicht ganz korrekt. Sind 2 Anrufe aktiv und einer wird beendet, stellt die Register Variable ein Disconnect fest. Somit wird der noch aktive Anruf nicht mehr erkannt, .

…und wie hast Du das gelöst?

Gruß
Walter

PS: Ich habe nur eine Amtsleitung, insofern stellt sich das Problem hier nicht.

…und wie hast Du das gelöst?

noch gar nicht, aber in der Übersicht der Fritzbox wird es erkannt als aktives Gespräch.

…könnte man über Logik in IPS regeln. Zu jedem Incoming- oder Outgoing Call muss es ja zwangsläufig einen Disconnect geben, wenn nicht, ist eine Verbindung noch aktiv und die Variable wird erst entspr. upgedatet, wenn auch der zweite Disconnect erfolgt ist.

Gruß
Walter

Hallo,

hat zufällig schon jemand eine Visualisierung für dar Onlinezähler Script von Walter?
Das Script läuft bei mir, ich habe nur keine Ahnung wie ich das Ergebnis in eine Variable bekomme damit ich mir das im Webfront anzeigen lassen kann.

Gruß
Stephan

Werte mit SetValue in eine zuvor angelegte Integervariable schreiben. Im Webfront auf diese Variable verlinken.

Gruß
Walter

Hi,
ich stehe mit den DSL Details auslesen auf Kriegsfuß.
Ich bekomme immer die Meldung „Login Fehlgeschlagen“.
Das aktuelle Script zum Auslesen der Anrufliste funzt. Woran kann das liegen?

…so ein bisschen Code wäre hilfreich um Dein Problem zu lösen. :confused:

Gruß
Walter

Hy, das ist das erste Script hier aus dem Threat.


<? 
$fritzbox_ip = '192.168.1.1'; 
$password    = 'xxxxx'; 

$ch = curl_init('http://192.168.1.1/login_sid.lua'); 
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, "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); 


$home = file("http://fritz.box/internet/dsl_overview.lua?sid=".$SID);// Seite Auslesen 
print_r($home); 




$Downstream = substr(trim($home[288]), 0,12); // String ausschneiden 
//echo $Downstream; 
SetValue(58567 /*[FritzBox!\DSL Anschluss\Datenrate Downstream]*/ , $Downstream); 



$Upstream = substr(trim($home[291]), 0,12); // String ausschneiden 
//echo $Upstream; 
SetValue(37012 /*[FritzBox!\DSL Anschluss\Datenrate Upstream]*/ ,$Upstream); 




?>


In Zeile 5 wird die IP fix gesetzt. D.h. der Eintrag in Zeile 2 ist, zumindest für den ersten CURL_INIT, Schall und Rauch :stuck_out_tongue:
Es sei denn, Deine IP ist wirklich 192.168.1.1

Gruß
Walter

Das ist meine IP Adresse :wink: oder besser gesagt, die der Fritzbox

hab das hier mal mit meiner IP durchlaufen lassen. Das geht einwandfrei. Ich wette, da ist doch mit dem Passwort was faul…

Gruß
Walter

Hallo zusammen,

das Auslesen der Anruferliste geht bei mir einwandfrei. Nur die Rückwärtzsuche scheint nicht zu gehen. Die Einträge werden auch nicht ( nicht gefunden ) markiert, obwohl ich es so eingestellt habe. Kann man sich evtl. die Suche ausgeben lassen bzw. das Ergebnis?

Schöne Grüsse

Frank

ich hab gerade bemerkt, dass das Sichern der Anruferliste nicht mehr geht. Hat das eventuell schon jemand angepasst?

$fritzseite  = '../html/de/menus/menu2.html';
$filename    = IPS_GetKernelDir()."\\webfront\\user\\Fritzbox\\Anrufliste_$datum.csv";// anpassen

include "fritz_login.php";

//Anrufliste aktualisieren
curl_setopt($ch, CURLOPT_POSTFIELDS, "getpage={$fritzseite}&sid={$SID}&var:menu=home&var:pagename=foncalls");
curl_exec($ch);

curl_setopt($ch, CURLOPT_POSTFIELDS, "getpage=../html/de/FRITZ!Box_Anrufliste.csv&sid={$SID}");
$anrufliste = curl_exec($ch);
$anrufliste = explode(';', $anrufliste, 4);
//print_r($anrufliste);
$fileHandle = @fopen($filename, 'wb+');
@fwrite($fileHandle, $anrufliste);
@fclose($fileHandle);

curl_close($ch);

Wenn es das nur wäre, aber das Passwort ist definitiv richtig und das Auslesescript für die Rufnummern funzt ja auch…mit dem gleichen Passwort :confused:

Ersetz’ doch mal die Login-Prozedur komplett durch die im Auslesescript.

Gruß
Walter

Hallo Walter,

sehr interessant. Was steht denn in deiner fritzbox.php?