Fritz Anrufbeantworter abfragen

Hallo zusammen,
das u.g. Script von Hollowman habe ich eingebunden und den AB Fritzseitig entsprechend konfiguriert… FTP Zugang ist ebenfalls eingerichtet und funzt…

Mein Problem ist, das ich beim ausführen des Scriptes folgende Fehlermeldung erhalte…„Warnung: Objekt #49414 existiert nicht…“ gleiches passiert noch mit Objekt 28409 und der Variable 48736…

Als Newbie bin ich für jeden Tip dankbar…

Gruß
Olroe

Hallo olroe,

die Fehlermeldung besagt, dass diese Objekte nicht existieren, da Du wahrscheinlich das Script nur kopiert hast. Habe mir nicht alles durchgelesen, aber Du musst entweder Variablen anlegen und dann diese Nummern an der entsprechenden Stelle eingeben, oder Du hast die Dinger schon angelegt und musst nur noch die entsprechenden Nummern im Script ändern.

Zur Beurteilung fehlt ein Screenshot, aber mit den Hinweisen bekommst Du es hin.

Gruß
Bruno

Hallo Bruno…
zunächst vielen Dank für den Tip… leider bin ich absoluter Neuling in PHP und lerne natürlich mit jedem Fehler dazu…
Habe jetzt versucht die Variablen anzulegen… entsprecht benamt mit z.B. 48736.
Aber irgendwie klappt es nicht…
Wäre schön wenn jemand die AB im Einsatz hat und mir einfach ein paar Screenshoots schicken würde :wink:
Vielen Dank für Eure Unterstüzung
olroe

Das benamen bringt dir nichts. Du musst die IDs deiner angelegten Variablen im Script ersetzen. Wenn da jetzt 12345 steht und deine Variable die ID 45678 hat, musst Du das ersetzen.

Ihr seid die besten…
schön das Ihr soviel Geduld mit den Newbis habt…
Nochmals herzlichen Dank
Gruß
olroe

Hallo Olroe,

hab mal das Skript aus dem anderen Beitrag hier eingefügt:

    /*******************************************************************
     *                    Nachrichten zählen                           *
     ******************************************************************/
SetValueString(49414 /*[media\ansagen\ansagetext]*/,"Werde Nachricht bearbeiten und abspielen");

$counter = GetValueInteger(48736 /*[media\fritzbox\anrufbeantworter\ab_counter]*/);
$dir    = 'ftp://192.168.0.99/CnMemory-01/FRITZ/voicebox/rec/';
$files1 = scandir($dir,0);
//print_r($files1);
$zaehler = count ($files1) -1;
// echo "$zaehler"." Aufnahmen 
";


    /*******************************************************************
     *             Nachrichten auf Festplatte kopieren                 *
     ******************************************************************/

if ($zaehler >0)
{
$File = $files1[1];
// echo "$File"."
";

$filename = "ftp://192.168.0.99/CnMemory-01/FRITZ/voicebox/rec/$File";

$source = "/CnMemory-01/FRITZ/voicebox/rec/$File";
$target =  fopen("C:/anrufb.fritz", "w");

$conn = ftp_connect("192.168.0.99");
ftp_login($conn,"ftpuser","borisbernd");

ftp_fget($conn,$target,$source,FTP_ASCII);

    /*******************************************************************
     *                Nachrichten in Wav umwandeln                     *
     ******************************************************************/

IPS_Sleep(3500);
unlink("$filename");
IPS_Execute("C:\dec.exe", "C:/anrufb.fritz C:/Aktuell.wav", false, false);
IPS_Sleep(2000);


            if (file_exists("C:\Aktuell.wav"))
            {

            copy ("C:\Aktuell.wav", "D://shares/Öffentlich/Anrufbeantworter/$counter.wav");
            IPS_Sleep(1000);
            SetValueInteger(48736 /*[media\fritzbox\anrufbeantworter\ab_counter]*/, GetValueInteger(48736 /*[media\fritzbox\anrufbeantworter\ab_counter]*/) +1);
                }


    /*******************************************************************
     *                FTP Tunnel wieder schließen                     *
     ******************************************************************/


ftp_close($conn);

WAC_ClearPlaylist($haus);
WAC_SetVolume($haus, 25);
WAC_AddFile($haus, "C:\Aktuell.wav");
WAC_Play($haus);
}
IPS_Sleep(500);
IPS_RunScript(28409 /*[media\fritzbox\anrufbeantworter\ab_nachrichten_zaehlen]*/);  

So, dann schauen wir uns das an!

Die ID „49414“ ist bei mir eine String Variable. In diese Schiebe ich einfach irgendwelche Texte die dann in meinem Haus abgespielt werden -Sprachausgabe. Das heißt für dich, du kannst diesen kompletten befehl rauslöschen.
Die ID „28409“ ist bei mir ein Skript, was nach diesem oben stehenden Skript ausgeführt wird, um die Nachrichten auf der Fritzbox neu zu zählen. Wenn eventuell mehrer Sprachnachrichten vorhanden sind. Dient zur Visualisierung im Webfront. Kannste also auch löschen.
Die ID „48736“ ist eine Integer Variable. Diese musst du bei dir im IPS Baum anlegen und dementsprechend die ID im Skript anpassen. Die Variable dient einfach nur zum zählen. Bei jeder neu aufgerufenen Nachricht wird diese um 1 erhöht und die Datei bekommt den letzten Wert. Zum Beispiel Counter steht auf 12 und Nachricht wird von Fritzbox geladen so heißt die Datei später 12.wav.

Was hier noch zu beachten ist, in der Fritzbox habe ich im Anrufbeantworter eine Textdatei zusätzlich liegen die da auch immer bleibt. Deswegen habe ich auch oben bei

$zaehler = count ($files1) -1;

-1 stehen. Du solltest die -1 wegmachen.

hoffe ich konnte dir damit ein wenig helfen.

Gruß

Hallo zusammen,
ist zwar schon ein Jahr her- aber nun hab ich auch endlich ne fritzbox :slight_smile:
und versuche das AB Skript zum laufen zu bekommen… Aber offenbar bin ich zu blöd!

-schon im ersten Teil des Skriptes zählen die Nachrichten falsch. Obwohl nur zwei Dateien im Verzeichnis sind, zählt das Skript 14.
-was bedeuten in dem Array file1 die Einträge . und … ? Bin verwirrt!
-Was genau muss ich machen, um diese FTP Funktionen nutzen zu können? Muss da an der Fritzbox etwas bestimmtes eingestellt werden? Alle FTP Funktionen im Skript erzeugen bei mir Fehlermeldungen.

Ich fummel und such schon das ganze Wochenende…

Euer verzweifelter MrMusical

So, kleine Fortschritte habe ich gemacht.
Allerdings bekomme ich nun in dieser Zeile eine Fehlermeldung:
$target = fopen(„C:/anrufb.fritz“, „w“);

[function.fopen]: failed to open stream: Permission denied in C:\Program Files\IP-Symcon\IP-Symcon\scripts\29067.ips.php on line 29

dass es um die Zugriffsberechtigung geht, habe ich schon rausgefunden. Aber wie ändere ich das?

LG

Hallo,

da ich auch heute den ganzen tag mit diesem Script rumwerkel…

versuch doch mal die Datei nicht auf C: zu schreiben, sondern mach die ein Unterverzeichnis, ggf. hat der Problem mit dem Schreiben direkt ins root.

Das Array müsste m.E. gebildet werden aus den ausgelesenen Anruferhinterlassenschaften sprich Aufnahmen.

Wie weit bist du denn jetzt?
Bei mir gab es anfangs Probleme mit einem Kennwortschutz auf der Box (für FTP) - denn habe ich jetzt mal entfernt. Sieht etwas besser aus.

Hast du die -1 im Counter auch gelöscht?
Beim $File = $files1[1] habe ich dir 1 durch eine 0 ersetzt.

Vielleicht hilft es dir ja ein wenig…

schöne Grüße aus Nordhessen

Joerg

Hi Jörg,
sorry dass ich mich erst heute melde. Ich habe die Angelegenheit in der Zwischenzeit gelöst. Ich habe das Kopieren der Datei auf die Festplatte mit dem copy Befehl gelöst und lösche mit unlink. Das funktioniert bei mir :slight_smile:

Trotzdem danke für Deine Hilfe!

LG; MrMusical

kannst du bitte kurz beschreiben, wie du es gelöst hast?
ich probiere seit zwei tagen rum und habe schon viele fehler behoben.
leider bleibt aber folgender stehen:

Warning: ftp_fget(): /FRITZ/voicebox/rec/: not a plain file. in C:\IP-Symcon\scripts\22399.ips.php on line 38

das hat genau mit der kopiererei zu tun.

vielen dank