Fritzbox Anrufbeantworter abfragen

Hallo zusammen,

ich würde gerne den internen AB meiner neuen Fritzbox 7270 abfragen.
Ich habe mal ein bischen gegoogled, allerdings scheint das Format mit welcher die Ansagen abgelegt werden ein bischen schwierig zu sein.

Als erste Stufe würde es mir sogar reichen, wenn ich wüsste das überhaupt oder wie viele da abgespeichert sind.

Meine Idee war, einfach die Anzahl an Files in dem entsprechendem Verzeichnis zu zählen. Ist das mit PHP so möglich und wenn ja wie am besten.
Habe mal die Suche bezwungen, allerdings gehen die Themen zu AB’s immer in eine andere Richtung.

Jemand eine Idee, Scriptschnipsel oder Hinweis für mich, oder hat das evtl. schon jemand umgesetzt?

Grüße,
Doc

hmmm…

manchmal kann die Antwort so einfach sein :wink:

$datei = '//192.168.111.4/Flashdisk-0-1/avm_tam/rec/rec.0.*';
$temp = glob($datei);
$anzahl = count($temp);
SetValueInteger("Anzahl_Nachrichten_AB", $anzahl);

Fehlt jetzt nur noch, wie man die am besten wiedergeben kann?

Doc

Fein … so etwas ähnliches suche ich auch … nur die Wiedergabe ist mir egal, das mache ich dann mit dem Telefon.
Diese Lösung ist aber nur dazu da, die gesamte Anzahl an vorhandenen Nachrichten anzuzeigen. Besteht eine Möglichkeit auch neu und alt auseinanderzuhalten? Dafür habe ich bisher nirgends eine Möglichkeit gefunden :frowning:

Ich nutze ja das Script mit der Anrufliste von Obicom. Hab das ein wenig verändert, so das der angerufene Port mit angezeigt wird. Wenn der AB ran geht, dann steht dort unter PORT Anrufbeantworter. So kann ich neben den eingegangenen Anrufen gleich sehen, ob Nachrichten vorhanden sind.

Gruß
Jens

hallo,

ich möchte das Thema mal wieder aufgreifen.
Gibt es derzeit schon irgendeine Lösung, um die Daten (sprachausgabe) direkt in IPSymcon rein zu bekommen?
Den FTP Link (Fritzbox/ Flashspeicher/ anrufbeantworterfiles) könnte man ja direkt auf ein Laufwerksbuchstabe Mounten und die Daten per speexdec in wav decodieren und dann per Winamp ausgeben!
Gibt es hierfür vielleicht aber eine einfache variante?

Gruß

Hi,

im VoIP-Forum gibt es User die sich mit der Verarbeitung der Sprachdaten der FRITZ!Box Anrufbeantorter beschäftigen, eventuell hilft dir jemand weiter mit Infos.

Gruß.

Thread nach oben zerr

Durch das Script besteht ja die Möglichkeit die Dateien zu zählen … habe ich auch irgendwie die Möglichkeit das Datum mit Zeit zu erfassen, also wann die Dateien erstellt worden sind? Oder hat sonst jemand ne Idee wie man an das Erstelldatum/Zeit der Sprachdateien kommt?

Gruß
Jens

Mit PHP natürlich ;), dafür benötigst du die einzelnen Dateinamen.

<?PHP
$datei = 'anruf1.wav';

$zeit = filemtime ( $datei );

echo 'Letzte Änderung der Datei: ' . $zeit . '<br>';

echo 'Formatiert: ' . gmdate ( 'd M Y H:i:s', $zeit );
?>

Ich schaue bei solchen Fragen immer bei selfphp.de. Da findest du auch Befehle um die Dateien aus einem Verzeichnis aufzulisten.

Danke für den Hinweis, ich hatte schon auf diversen Seiten gesucht, aber wenn man die Befehle nicht kennt, dann weiß man of nicht wo nach man suchen soll :frowning:

Gruß
Jens

Moin moin,

ich muss nochmal den alten Kram wieder hervor holen.

Hat das evtl. schon jemand umgesetzt, die AB-Nachrichten von der Fritzbox zu holen und in ein PC-lesbares Format zu wandeln?
Dieses spezielle Audioformat mag der Mediaplayer nicht.

Evtl würde mir auch der modifizierte SpeexDec-Treiber schon reichen?

Kann da jemand aushelfen?

Grüße,
Doc

Vielleicht geht es ja über einen Umweg
Fon: Neue Nachrichten auf dem FRITZ!Box-Anrufbeantworter per E-Mail weiterleiten Man kann sich ja die Anrufe zumailen lassen ich weiß nur nicht wie man mit php die Mail anhänge abholt.das würde dann aber auch dür jeden Telefonanbieter klappen.Die bieten ja meist auch so einen Dienst an.

Hallo,

also ich habe dafür ein kleines Programm was ich per IPS aufrufe und das macht mir dann aus der Fritzbox file eine Wav.

IPS_Execute(„C:\dec.exe“, „C:/anrufb.fritz C:/Aktuell.wav“, false, false);

dec.rar (108 KB)

Nunja,

mir eine Email schicken lassen, um eine Datei zu bekommen die ich lokal schon habe wollte ich eigentlich vermeiden. Die Email lasse ich mir aber sowieso immer schicken, falls ich gerade unterwegs bin.

@hollowman,

genau das hatte ich gesucht.
Wollte eigentlich den SpeexDec nehmen, aber der musste wohl noch auf das etwas seltsame Format von AVM gepatch werden.
Dein kleines Progrämmchen scheint das schon zu sein, danke.

Jetzt muss ich mal sehen, wie ich das in ein komfortables Script verpacke.

Hast du evtl. auch noch den Encoder dafür?
Damit liesse sich beim Anruf direkt eine neue individuelle Ansage erzeugen und auf die Box laden.
Man, IPS ist ja so vielseitig :wink:

Grüße,
Doc

Hallo,
nein den Encoder hab ich nicht. Wie stellst du dir denn das vor mit dem Encoder?
Wenn ein Telefonanruf kommt, Namen per das örtliche abrufen und schon mal eine Nachricht im vorraus generieren, falls man nicht zuhause ist damit der Anrufer persönlich angesprochen wird ?? … Wäre auch nicht schlecht … denke mal das wird jedem anrufer schocken :slight_smile:

Hier mal mein Skript was ich schon einige zeit lang am laufen habe! Vielleicht kannst du ja das ein oder andere gebrauchen.

    /*******************************************************************
     *                    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]*/);

Ja,
genau so in etwa habe ich mir das mit dem Encoder gedacht.
Allerdings habe ich eine eigene „Anruferdatenbank“ die ich verwenden würde.
Alle anderen bekommen einen Standardtext, lästige Werbe-Anrufer ohne Nummer werden ins Nirwana geleitet und das alles ohne ISDN.

So alla: " Mutti, wir sind mal wieder unterwegs, weisst schon wo du uns erreichen kannst"

Dieses File kann man dann bei jeden Anruf individuell Erzeugen und noch wärend des Klingelns zur Box schicken.

Sag’ mal, warum arbeitest du über den FTP? Speicherst du deine Anrufe direkt in der Box?

Gruß,
Doc

ja das ist eigentlich eine gute Idee … muss ich mal in meinem Urlaub denk ich in angriff nehmen. Das mit den Anrufern ohne Tel. Nummer würde ich auch gerne machen, jedoch hab ich einige Kollegen bei denen keine nummer mitgeschickt wird. Ich hab auch kein ISDN … nur VOIP … deswegen find ich das auch klasse was alles möglich ist … dank Fritzbox und IPS.

Ich habe in meiner Fritzbox einen USB Stick auf den alle Nachrichten gespeichert werden. Wenn ich nach Hause komme, bekomme ich im Touch angezeigt das einige Sprachnachrichten vorhanden sind. Wenn ich den Button betätige werden alle Nachrichten vom Stick gezogen, gelöscht, direkt umgewandelt und danach abgespielt. Zudem werden sie auf meinem Server archiviert.

Ich glaube das ich für ale Fritz besitzer spreche wenn ich sage.
Könntest du uns da mal so ein schönes Wohlfühl bundel schnüren.Vor allem der teil mit dem Touch würde mich sehr interessieren. (ich hoffe du hast was fürs webfront gebautG)
MFG Ken

@Doctor Snuggles
Könntest du mir bitte die Funktion der Dec.exe erklären und einen Download-Link hinzufügen? Wenn ich danach google finde ich nur was zu einem Wurm mit dem Namen.

Auch das Skript . „IPS_RunScript(28409 /[media\fritzbox\anrufbeantworter\ab_nachrichten_zaehlen]/);“ wäre hilfreich um dein Skript oben zu 100% verstehen zu können.

Würde mich dann ggfs. mal ran machen und das Skript versuchen etwas anzupassen. Mir sind besonders die „IPS_Sleep“ aufgefallen, die ich immer versuche zu vermeiden, da sie ja das ganze IPS und somit alle zeitkritischen Skripte ausbremsen.

Hallo obicom,

du verwechselst mich da mermutlich mit hollowman.
Der kann dir sein Script bestimmt besser erklären.

Downloadlink? Die .RAR fürs DEC.EXE hat er oben doch angehängt.
Funktion: ganz einfach, die Audiodateien werden in eine für den PC lesbares WAV gewandelt, mehr nicht.

Ich wollte dieses Wochenende auch mal damit beginnen, ein passendes Scribt für die AB-Funktionen zu bauen, weiss aber nicht genau, wann ich dazu komme.

Viele Grüße,
Doc

Achso, ich glaube er ruft das gleiche Script immer wieder auf, bis alle Nachrichten wiedergegeben sind.
So hatte ich es jedenfalls verstanden.

hallo Doc,

sorry, hast natürlich recht, meinte natürlich Hollowman.
Die Dec.exe habe ich nun auch gefunden. Danke für den Hinweis.

jetzt müsste ich das nur noch mit dem „Anrufe zählen Skript“ kapieren.

Hallo,

das mit den Sleep Zeiten kann man sicherlich noch anders lösen aber da sehe ich persönlich nicht so groß den sinn drin, da das Skript ja eh nur abgespielt wird wenn Nachrichten hinterlassen wurden. (Über Dashboard Button). Zumal halten die Zeiten sich noch in Grenzen. Kann ja jeder selbst entscheiden.

das andere Skript was am ende aufgerufen wird sieht so aus;

////////////////////////////////////////////////////
// Anrufbeantworternachrichten Zählen
//
// In diesem Skript werden die Nachrichten auf der Fritzbox
// gezählt und in eine Variable eingelesen!
//
// Author: Boris Bernd
//
//
////////////////////////////////////////////////////



    /*******************************************************************
     *                    Nachrichten zählen                           *
     ******************************************************************/
$dir    = "ftp://192.168.0.99/CnMemory-01/FRITZ/voicebox/rec/";
$files1 = scandir($dir,0);
// print_r($files1);
$zaehler = count ($files1) -1;
echo "$zaehler"."
";
SetValueString(28638 /*[media\fritzbox\anrufbeantworter\ab_nummer]*/, "$zaehler" );
if (GetValueString(28638 /*[media\fritzbox\anrufbeantworter\ab_nummer]*/) > 0)
{
SetValueBoolean(49348 /*[media\fritzbox\vis_ab_nummer]*/, True);
}
else
{
SetValueBoolean(49348 /*[media\fritzbox\vis_ab_nummer]*/, False);
}


    /*******************************************************************
     *               Timer setzten bei Gesprächsende                   *
     ******************************************************************/

if (GetValueBoolean(40756 /*[media\fritzbox\gespraech]*/) == True)
{
IPS_SetScriptTimer(28409 /*[media\fritzbox\anrufbeantworter\ab_nachrichten_zaehlen]*/, 100);
}

if (GetValueBoolean(40756 /*[media\fritzbox\gespraech]*/) == false)
{
IPS_SetScriptTimer(28409 /*[media\fritzbox\anrufbeantworter\ab_nachrichten_zaehlen]*/, 0);
}
?>

Dieses wird bei mir auf jeden Anruf getriggert.

Für Webfront hab ich leider nichts. Da ich mit dem Designer arbeite. Auf dem hab ich eigentlich nur ein Label was mir anzeigt wieviele AB nachrichten neu sind und ein Button der nur eingeblendet wird wenn neu Nachrichten auf dem AB sind. Was dann ganz oben das Skript triggert.

Gruß