Einfache Anrufanzeige mit Fritzbox 7170

Integer Variable anlegen, Profil ~UnixTimestamp zuweisen, fertig.

SetValue(25797 /*[Fritzbox\Anruf von\Datum]*/, time());

@Horst, Rainer:

Vielen lieben Dank! :loveips:

Eigentlich brauchst Du die aktuelle Uhrzeit garnicht.
Die Anrufzeit steht doch in $daten[0]

Zu früh gefreut, es wird gar nixmehr angezeigt, auch mit dem alten Script. Client Socket steht, aber es wird nicht mal der Name angezeigt.

Was kann denn das nun wieder sein, gestern hat es noch funtkioniert…

<?

// 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] = "0170xxx";
  $array["Name"]  [1] = "Stefanxxx";
  $array["Nummer"][2] = "";
  $array["Name"]  [2] = "*Unterdrückt*";
  $array["Nummer"][3] = "xxxxxx";
  $array["Name"]  [3] = "xxx";
  $array["Nummer"][4] = "xxxxx";
  $array["Name"]  [4] = "xxx";
  $array["Nummer"][5] = "xxx";
  $array["Name"]  [5] = "xxx";
  $array["Nummer"][6] = "xxxxxx";
  $array["Name"]  [6] = "xxx";

// Daten aus Registervariable auswerten
switch($daten[1])
{
    case "RING":
   SetValue(46583 /*[Fritzbox\Letzter Anruf um]*/, time());
   $Rufnummer = ($daten[3]);
    if(in_array($Rufnummer, $array["Nummer"]))
   {
       $intern = array_search($Rufnummer, $array["Nummer"]);
       SetValue(59121 /*[Fritzbox\Dummy Module\Fritzbox_Anruf_von]*/, $array["Name"][$intern]);
       //echo "Anruf von " .  $array["Name"][$intern];
       return;
   }
   else
   {
      SetValue(59121 /*[Fritzbox\Dummy Module\Fritzbox_Anruf_von]*/, $Rufnummer);
   }
   break;
   case "DISCONNECT":
   RegVar_SetBuffer(26953 /*[Fritzbox\Register Variable]*/, "");
   return;
   break;
}

?>

Der Socket wird eingeschlafen sein, dem war das alles zu stressig :slight_smile:

Klick mal auf übernehmen, dann wird er wieder wach. Am besten Du schickst alle 15min was an die Box.

RegVar_SendText(35544 /*[Fritzbox\FritzPort1012]*/, "");

Wenn das nicht hilft, nimm das. Wobei das IPS_ApplyChanges alleine reichen würde, weil er ja schon offen ist.

CSCK_SetOpen(19408 /*[Fritzbox]*/, true);
IPS_ApplyChanges(19408);

Hallo Rainer,

Du hattest Recht, der hat gepennt :slight_smile: Danke!

Muss man das „Anstoßen“ wirklich ab und zu mal machen oder nur bei Änderungen an den betroffenen Variablen/Scripten? Das fände ich schlecht, wenn man sich nicht auf geöffnete Sockets etc. verlassen könnte (es kommt ja keine Fehlermeldung)…das müsste ich ja dann bei den COM-Ports auch analog machen, oder?

Das Problem tritt nur bei der Fritzbox auf. Alles andere läuft bei mir einwandfrei.
Allerdings hat der Client Socket allgemein damit ein Problem.

Mach alle 15-30min diesen, dann sollte das Problem gelöst sein.

IPS_ApplyChanges(19408 /*[Fritzbox Client Socket]*/);

Schon erledigt, vielen Dank!

Hallo Horst

genau was ich wollte. Vielen Dank. Hat mir den Sonntag Abend verzuckert.

Irgendeine Idee nach welchem System die Box die Connection ID vergibt. Hier ist ein einzelner eingehender Anruf eigentlich immer auf der 0, ein ausgehender auf der 1. Ein Eigenanruf geht allerdings auf der 1 raus und auf der 2! ein. ein weiterer Anruf der jetzt kommt (anklopft) läuft auf der 3 auf…

Aber wo ist das System dahinter?

Hallo zusammen, ich bekomme schon beim erstmaligen Ausführen das Scriptes den folgenden Fehler. Habe das zu dem Socket verfolgt und auch dort der gleiche Fehler, wenn ich übernehmen drücke (siehe Bild). Hat jemand eine Idee?

Irrtum meinerseits … Vielleicht die Firewall, Port nicht geöffnet an der FritzBox