Anrufname und Radiolautstärke mit Fritzbox

Dann schnappt dein Virenscanner die Datei. Also hast doch was verbockt

IPS war vor dem Virenscanner auf dem Server. Also einigen wir uns darauf, dass der das verbockt hat?!:wink:

Bei XP liefs mit

    $fritzgui    = 'http://fritz.box/cgi-bin/webcm';

Bei mir muss unter SBS 2011 die IP eingetragen sein:

   http://192.168.1.1/cgi-bin/webcm';

Dann läuft dein DNS nicht oder nicht richtig. Der SBS stellt einige Anforderungen und ist eigentlich nicht mit XP zuvergleichen. Wir sind aber nicht im Windows Forum.

Mein Dyndns läuft. Aber der Server ist der Chef. Zudem wollte ich es nur mitteilen, damit jemand mit Kenntnissen wie meinen (wenig bis weniger) vielleicht irgendwann dies gebrauchen kann.

Nur zur Info, DynDns und DNS sind 2 verschiedene Paar Schuhe. :smiley: Aber egal.

Das mit der IP, steht übrigens bei den Scripten, weil Du nicht der einzige bist, wo es mit dem Namen nicht läuft.

DynDns und DNS

Leser-Flüchtigkeitsfehler - Antwort bleibt gleich :mad:

Das mit der IP, steht übrigens bei den Scripten

Lese nicht das ganze Forum durch, wenn etwas nicht mehr läuft was lief, aber sollte ich wohl

Ich will ja nicht überstrapazieren, aber

Das mit der IP, steht übrigens bei den Scripten

das würde mich jetzt doch noch interessieren, wo das ist, damit ich ein nächstes Mal niemanden bemühen müsste, denn das hab ich jetzt nachträglich mit „überfliegen“ gesucht, wurde aber nicht fündig.

dieses Script läuft nun schon eine Weile:

<?

IPS_Sleep(190);
echo $text = GetValue(24396 /*[Fritzbox\Nummernsuche\Anrufname]*/);
$home = GetValue(58876 /*[Anwesenheit\Variablen\Anwesenheitsprüfung]*/);
     //$id_sound = 19919 /*[Hinweise\Media Player Küche]*/;

	if($home == false)
	{
 		return; //sofort beenden.
	}
	else
	{
		TTS_GenerateFile(44654 /*[Hinweise\TTS\Text To Speech]*/, "$text", "C:\Ansagen
ame.wav", 30);

			$id_sound = 19919 /*[Hinweise\Media Player Küche]*/;
   		WAC_SetVolume($id_sound, 30);
    	   WAC_PlayFile($id_sound, "C:\Ansagen
ame.wav");
		  
	}
?>

Seit heute kommt diese Fehlermeldung:

dies wird aus der Variable geholt
Warning: % wurde nicht gefunden in C:\IP-Symcon\scripts\58220.ips.php on line 14

Warning: Media Player Fehler (2): Datei/URL konnte nicht abgespielt werden in C:\IP-Symcon\scripts\58220.ips.php on line 18

Zeile 14 ist der Befehl „TTS_GenerateFile“.

Andere wav’s funktionieren problemlos

Hallo RWN,

mit der Bitte um Hilfe:

  • nachdem dein Auslese Script für das Telefonbuch bisher ohne Fehler lief mit IP-Symcon auf meinem Laptop und Anzeige ebenfalls, erhalte ich nach dem Umzug(Kopie) von IPS auf meinen neuen kleinen Server mit Win7-64 bei dem Telefonbuch Script:

    $fritzbox_ip = ‚fritz.box‘; // Name oder IP eingeben
    $fritzCfg = ‚http://fritz.box/cgi-bin/firmwarecfg‘;

    $filename = IPS_GetKernelDir()."\webfront\user\Fritzbox\ elefonbuch.xml";// anpassen

nachfolgenden Fehler auf meinem Laptop als Anzeige, aber auch auf dem Display der Servers.
Veränderungen an der Anzahl der Backslashes als Test hat zwar das Bild geändert aber nichts gebracht.
Das Betriebssystem ist völlig neu mit allen Updates aber sonst clean nur IPS.

Starte ich IPS auf dem Laptop ist wieder alles ok auf dem Laptop Display.

Das Telefonbuch ist vorhanden und die Backslashes sind auch richtig.
Was nun

Gruß
Tom

PS: Problem gelöst, die Datei war tatsächlich leer, obwohl ich sie nach dem Kopieren mit einer aktuellen Sicherung überschrieben hatte. :confused:

Hallo Gemeinde,

ich hab jetzt Horst sein Script ausgeführt :

<?php
$host = "fritz.box";

define("STATUS_VACANT", 0);
define("STATUS_OUT_RING", 1);
define("STATUS_OUT_MISSED", 2);
define("STATUS_OUT_CONNECTED", 3);
define("STATUS_OUT_DISCONNECTED", 4);
define("STATUS_IN_RING", 5);
define("STATUS_IN_MISSED", 6);
define("STATUS_IN_CONNECTED", 7);
define("STATUS_IN_DISCONNECTED", 8);

$object = IPS_GetObject($IPS_SELF);
$parentID = $object['ParentID'];

switch ($IPS_SENDER)
{
    case "Execute":
       IPS_SetHidden($IPS_SELF, true);

        $profileID = @IPS_GetVariableProfile("PhoneConnectionStatus");
        if ($profileID === false)
        {
            IPS_CreateVariableProfile("PhoneConnectionStatus", 1);
            IPS_SetVariableProfileValues("PhoneConnectionStatus", 0, 8, 0);
            IPS_SetVariableProfileIcon("PhoneConnectionStatus", "ArrowRight");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 0, "frei", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 1, "eingehend - klingelt", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 2, "eingehend - abgebrochen", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 3, "eingehend - verbunden", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 4, "eingehend - getrennt", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 5, "ausgehend - klingelt", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 6, "ausgehend - abwesend", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 7, "ausgehend - verbunden", "");
            IPS_SetVariableProfileAssociation("PhoneConnectionStatus", 8, "ausgehend - getrennt", "");
        }

        $parentObject = IPS_GetObject($parentID);
        if ($parentObject['ObjectType'] !== 1)
        {
            $instanceID = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
            IPS_SetParent($instanceID, $parentID);
            $parentID = $instanceID;
            IPS_SetName($instanceID, "FRITZ!Box");
            IPS_SetParent($IPS_SELF, $parentID);
        }

        $socketID = @IPS_GetInstanceIDByName("FRITZ!Box Socket", 0);
        if ($socketID === false)
        {
           $socketID = IPS_CreateInstance("{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}");
           IPS_SetName($socketID, "FRITZ!Box Socket");
        }
       CSCK_SetHost($socketID, $host);
       CSCK_SetPort($socketID, 1012);
       CSCK_SetOpen($socketID, true);
       IPS_ApplyChanges($socketID);

        $rvID = @IPS_GetInstanceIDByName("FRITZ!Box Register Variable", $parentID);
        if ($rvID === false)
        {
         $rvID = IPS_CreateInstance("{F3855B3C-7CD6-47CA-97AB-E66D346C037F}");
            IPS_SetParent($rvID, $parentID);
            IPS_SetName($rvID, "FRITZ!Box Register Variable");
        }
        RegVar_SetRXObjectID($rvID, $IPS_SELF);
        IPS_ConnectInstance($rvID, $socketID);
       IPS_ApplyChanges($rvID);

        break;

    case "RegisterVariable":
        $data = explode(";", $IPS_VALUE);
        $ts = strtotime($data[0]);
        $connectionID = $data[2];
        switch ($data[1])
        {
            case "CALL":
                // Datum;CALL;ConnectionID;Nebenstelle;GenutzteNummer;AngerufeneNummer;
                $extension = $data[3];
                $internalNumber = $data[4];
                $externalNumber = $data[5];
                $line = $data[6];
                addConnection($connectionID, STATUS_OUT_RING, $ts, $internalNumber, $externalNumber, $extension, $line);
                break;

            case "RING":
                // Datum;RING;ConnectionID;Anrufer-Nr;Angerufene-Nummer;
                $externalNumber = $data[3];
                $internalNumber = $data[4];
                $line = $data[5];
                addConnection($connectionID, STATUS_IN_RING, $ts, $internalNumber, $externalNumber, "", $line);
                break;

            case "CONNECT":
                // Datum;CONNECT;ConnectionID;Nebenstelle;Nummer;
                $extension = $data[3];
                $internalNumber = $data[4];
                $externalNumber = $data[5];
                removeConnection($connectionID);
                break;

            case "DISCONNECT":
                // Datum;DISCONNECT;ConnectionID;DauerInSekunden;
                $duration = $data[3];
                removeConnection($connectionID);
                break;
        }
        break;
}

function addConnection ($connectionID, $status, $time, $internalNumber, $externalNumber, $extension, $line)
{
    global $parentID;
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Status", 1, "PhoneConnectionStatus"), $status);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Zeit", 1, "~String"), $time);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Nummer - Intern", 3, "~String"), $internalNumber);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Nummer - Extern", 3, "~String"), $externalNumber);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Nebenstelle", 3, "~String"), $extension);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Leitung", 3, "~String"), $line);
}

function removeConnection ($connectionID)
{
    global $parentID;
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Status", 1, "PhoneConnectionStatus"), 0);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Zeit", 1, "~String"), 0);
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Nummer - Intern", 3, "~String"), "");
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Nummer - Extern", 3, "~String"), "");
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Nebenstelle", 3, "~String"), "");
    SetValue(CreateVariableByName($parentID, "Verbindung ".$connectionID." - Leitung", 3, "~String"), "");
}

function CreateVariableByName($id, $name, $type, $profile = "")
{
    global $IPS_SELF;
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
        if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
    }
    return $vid;
}
?>

Leider ist das wohl nicht ganz so 3.0 stabil…die Variablenprofile habe ich schonmal nicht.

Der nächste Schritt wäre die Anrufe als Popup im Webfront live mit namen zu sehen.
Also Telefonbuch automatisch aus der FB kopieren und auch unterdrückte Nummern abzufangen.

Das habe ich hier in den 9 Seiten alles schon gefunden…allerdings bin ich etwas verwirrt, welches „Hauptscript“ mit welchen „Codeschnipsel“ zu ergänzen wäre ?

Fritz Socket und Registervariable habe ich schonmal.

Horsts Script macht bei mir gerade diese Figur, zeigt aber nichts an :

Sicher bin ich mir auch nicht über das „Triggern“ von welchem Script dann…und…ähh…also…

Rainer ? Magst du mal ausprobieren, ob man von außerhalb auf meine Konsole kommt ? :slight_smile:
(Das geht tasächlich bei mir…soll mal einer sagen, bei mir geht nix :))

LG
Sascha