[Info] Skriptsammlung für Cisco 8800 MPP Serie an FRITZ!Box

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Für alle die, die ein Cisco Phone der 8800 Serie mit Multiplatform Firmware an ihrer FRITZ!Box betreiben und sich Infos der FRITZ!Box (Anruflisten, AB Nachrichten, Telefonbuch) auf dem Phone anzeigen lassen wollen, habe ich auf https://github.com/Paulemann/mpp-fb-toolbox eine Sammlung von Skripten abgelegt.
Ihr findet dort auch eine Beschreibung, wie die Skripte in Konfiguration des Phones einzubinden sind.
Ich hoffe, Ihr findet die Skripte nützlich.

P.S.: FantasticPauly soll kein "Eigenlob" sein, sondern bezieht sich auf eine Fernsehserie, die mein Sohn gerne geschaut hat ;)
 
Zuletzt bearbeitet:

seelenreiter

Neuer User
Mitglied seit
17 Mai 2012
Beiträge
23
Punkte für Reaktionen
2
Punkte
3
You must have configured a user (default ftpuser) and password on your local FRITZ!Box to access the answering machine file via ftp://<Your FRITZ!Box IP address>/FRITZ/voicebox/meta0
Also, mit dem Std FTP Account darf man vielleicht die NAS Inhalte lesen, an sein Betriebssystem bzw Betriebsdaten (Phonebooks) lässt die 7590 dich so nicht.
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,225
Punkte für Reaktionen
293
Punkte
83
Moinsen


Nicht mit dem NAS, aber...
Mit einem FTP User,
Screenshot_20200305-091101.png
...auch passwortlos ( lokal: anonymous ) lassen sich die FRITZ!Box Telefonbücher via TR-64 auslesen.
Screenshot_20200305-090845.png
 

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Also, mit dem Std FTP Account darf man vielleicht die NAS Inhalte lesen, an sein Betriebssystem bzw Betriebsdaten (Phonebooks) lässt die 7590 dich so nicht.
Ich verstehe Deinen Einwand nicht. Der FTP User wird genau für den Zweck benötigt, wie in dem von Dir zitierten Text beschrieben, nämlich für das Lesen der meta0 Datei des AB. Das Telefonbuch wird über einen anderen Weg ausgelesen.

Hattest Du Dich mit den Skripten beschäftigt oder nur den Text "interpretiert" ?
 

seelenreiter

Neuer User
Mitglied seit
17 Mai 2012
Beiträge
23
Punkte für Reaktionen
2
Punkte
3
Ok, nun bin ich, frei nach dem Wahlspruch: Gestern stand ich am Abgrund, eine Schritt weiter.

Wenn man
1. In der Fritzbox FPT disabled hat, kommt man nicht weit.
2. TR-064 ebenfalls ausgeschaltet hat, wird es auch schwierig.

Nächstes Problem.

Pro forma. als Webserver dreht ein Pi mit Apache

Da ich für die Anmeldung in der Fritzbox auf Username und Passwort umgestellt habe, muss ich deine Scripte etwas erweitern.

Die fb.cfg habe ich um eine Zeile Username erweitert
Code:
[fritzbox]
hostname: fritz.box
username: FritzboxUser
password: dasIstGeheim
fb_phonebook habe ich ebenfalls erweitert
Code:
    fbAddr = config.get('fritzbox', 'hostname')
    fbUsr  = config.get('fritzbox', 'username')
    fbPwd  = config.get('fritzbox', 'password')
    pbName = config.get('phonebook', 'name').split(',')[0]
except:
    fbAddr = 'fritz.box'
    fbUsr  = ''
    fbPwd  = ''
    pbName = 'Telefonbuch'

sid = loginToServer(fbAddr, fbUsr, fbPwd)
bei der fb_toolbox.py bin ich mir leider nicht so sicher. Vielleicht kannst du das einmal prüfen / korrigieren.#
Zumindest bekomme ich da derzeit nichts angezeigt. "Datenfehler".

Code:
def loginToServer(server,user,password,port=80):

[...]
        if sid == "0000000000000000":
            challengeInfo = theXml.getElementsByTagName('Challenge')
            challenge=challengeInfo[0].firstChild.data
            challenge_bf = (challenge + '-' + user + '-' + password).decode('iso-8859-1').encode('utf-16le')
            m = hashlib.md5()
            m.update(challenge_bf)
            response_bf = challenge + '-' + m.hexdigest().lower()
        else:
            return sid
 

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Probier es mal in der ursprünglichen, d.h. noch unveränderten, fb_toolbox.py mit folgender Änderung:
Code:
def loginToServer(server,user,password,port=80):
...   
    if not user:
        loginPage="/login_sid.lua?&response=" + response_bf
    else:
        loginPage="/login_sid.lua?username=" + user + "&response=" + response_bf
 
  • Love
Reaktionen: seelenreiter

seelenreiter

Neuer User
Mitglied seit
17 Mai 2012
Beiträge
23
Punkte für Reaktionen
2
Punkte
3
Läuft :)
Wenn man die richtige Stelle kennt.... Mercie

Kann man jetzt noch weitere Telefonbücher lesen. Book 0,1, Google? :cool:
 
Zuletzt bearbeitet:

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Kann man jetzt noch weitere Telefonbücher lesen. Book 0,1, Google? :cool:
Wäre wohl machbar, zumindest mehrere interne Telefonbücher der Fritzbox. Ich halte das aber nicht unbedingt für sinnvoll, da ich in der Praxis immer ein Telefonbuch einem Telefon zuordnen würde.
 

seelenreiter

Neuer User
Mitglied seit
17 Mai 2012
Beiträge
23
Punkte für Reaktionen
2
Punkte
3
Da gebe ich dir Recht. Allerdings möchte ich meinem Telefon mein Google Phonebook zuweisen.
Damit habe ich halt alle Kontakte vom Smartphone auch auf dem IP Telefon. Dort läuft auch ein Abgleich mit den Firmenkontakten.

Es gibt hier ja auch noch ein weiteres Projekt zu dem Thema.
FritzBox Telefonbuch Service für Cisco Telefone

Da kann man aus den internen Telefonbüchern aussuchen. Weiterer Vorteil ist, dass man dort nach einem Namen(steil) suchen kann.

Leider findet dieser Service auch das Google Telefonbuch nicht. Ich habe mitterlweile den Verdacht, dass das Google Telefonbuch nicht nach dem Muster Book0.xml Book1.xml angelegt wird, sondern vielleicht BookGoogle.xml heißt.
 

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Ich hab das versucht zu recherchieren, aber offenbar können Telefonbücher mit Google Kontakten generell nicht aus der Fritzbox exportiert werden. Zumindest habe ich bisher nur gelesen, dass es nicht geht. Wenn hier jemand mitliest, der weiß, wie man's doch hinkriegt, bin ich für jeden Hinweis dankbar...
Ich selber nutze kein Online Telefonbuch und hatte daher bisher auch keine Motivation das einzubinden.

Die Möglichkeit mehere Telefonbüche zu nutzen bzw. einzubinden ist generell nicht so schwierig zu realisieren. Man muss nur ein weiteres Menü einbinden das die Telefonbücher, die man in der fb.cfg konfiguriert hat, anbietet. Ich hab das soweit getestet und werde den Code in Kürze aktualisieren. Mir sind beim Testen noch ein paar mehr Dinge aufgefallen, die verbessert werden können, so dass der Umfang der Änderungen etwas größer geworden ist, als zunächst geplant.
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,225
Punkte für Reaktionen
293
Punkte
83
Moinsen


Online Telefonbuch
Vielleicht hilft...
Anders als das Standardtelefonbuch ( owner="0" ) und ein zusätzlich angelegtes Normales ( owner="1" ) fangen die Online-Telefonbücher bei owner="240" an...
HTML:
<phonebooks>
<!-- id:240 , name: GMX -->
<phonebook owner="240" name="GMX">
...egal ob 1&1, GMX oder Google.
 

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Der Code auf github ist aktualisiert. Unter anderem werden jetzt login mit Benutzername und Passwort unterstützt, sowie die Verwendung mehrerer Telefonbücher und Anrufbeantworter über die Konfiguration der fb.cfg.

Achtung: eine vorhandene fb.cfg muss auf die neue Struktur angepasst werden, damit die Skripte funktionieren.

Online Telefonbücher könnten durch Verwendung der passenden id=240,... genutzt werden. Das habe ich aber nicht getestet.

Weiterer Vorteil ist, dass man dort nach einem Namen(steil) suchen kann.
Das geht übrigens mit den Skripten schon von Anfang an. Wenn man im Telefonbuch bis zur letzten Seite blättert, kann man von dort eine Suche aufrufen.
 

seelenreiter

Neuer User
Mitglied seit
17 Mai 2012
Beiträge
23
Punkte für Reaktionen
2
Punkte
3
Moinsen FantasticPauly,

erst einmal vielen Dank für die Nachtschicht.

Eine Anmerkung zu den Anrufbeantwortern.

Wenn man einen USB Stick angeschlossen hat, taucht der Name des Sticks in der URL auf.
Vielleicht kann man den Namen des Sticks automatisiert erkennen oder alternativ noch in die FB.cfg aufnehmen.

Code:
url = 'ftp://{}:{}@{}/4G_2008R2/FRITZ/voicebox/meta{}'.format(fbFTPUsr, fbFTPPwd, fbAddr, tamId)
In meinem Fall ein recycleder 4G_2008R2 ;)

Code:
[phonebook]
names: Telefonbuch, Sperre, Google
ids: 0, 1, 240
areacode: 04346
zeigt mir leider nur ein Telefonbuch an.

Sollte dort nicht eine Vorschaltseite mit den Telefonbüchern kommen?
Auf der Seite wäre ein "Aktualisieren" auch sinnvoller, als im Telefonbuch.

Das geht übrigens mit den Skripten schon von Anfang an. Wenn man im Telefonbuch bis zur letzten Seite blättert, kann man von dort eine Suche aufrufen.
Also muss man ggf. alle 30 Seiten durchblättern, um nach einem Eintrag zu suchen? Das ist nicht sinnig.
Vorschlag, ersetz das "aktualisieren" durch die Suche.

Magst du mal schauen, ob du die richtige Datei auf Git abgelegt hast?

Ein neuer AB zeigt im übrigen solange "Fehler" an, bis wohl die erste Nachricht aufgenommen wurde.

Nachtrag:

Code:
[phonebook]
names: Google
ids: 240
areacode: 0431
führt leider zu einem Datenfehler.
 
Zuletzt bearbeitet:

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Vielleicht kann man den Namen des Sticks automatisiert erkennen oder alternativ noch in die FB.cfg aufnehmen
Eine automatische Erkennung, dürfte schwierig sein, da ich keinen Zugriff auf die Betriebssystemebene der FB habe. Konfiguration in der fb.cfg wäre eine Option. Ich bin mir nicht sicher, welche Pfade individuell möglich sind oder ob das "Einschieben" des USB-Stick Namens ausreicht. Zurzeit ist das Editieren der fb_tam.cgi die flexibelste Möglichkeit.

Sollte dort nicht eine Vorschaltseite mit den Telefonbüchern kommen?
Auf der Seite wäre ein "Aktualisieren" auch sinnvoller, als im Telefonbuch
Das kommt drauf an, was Du im Phone eingetragen hast (siehe Readme auf github). Wenn Du statt fb_phonebook.cgi fb_directory.cgi einträgst, erhältst Du die Vorschaltseite mit der Auswahl der FB Telefonbücher. Hier ein "Aktulaisieren" anzubieten wäre möglich, aber dann müsste man immer die Seite vorschalten. Ein Aktualisieren aus dem jeweiligen Telefonbuch heraus, finde ich persönlcih besser und flexibler (siehe auch nächster Punkt).

Also muss man ggf. alle 30 Seiten durchblättern, um nach einem Eintrag zu suchen? Das ist nicht sinnig.
Vorschlag, ersetz das "aktualisieren" durch die Suche.
Wow. 30 Seiten, d.h.fast 1000 Einträge. Ist das so? An so einen "Use Case" hab ich sicher nicht gedacht. Bei mir sind es 3. Da hält sich das Blättern noch in Grenzen. Man kann "Aktualisieren" und "Suchen" aber relativ einfach tauschen. Dann muss man aber für Aktualisieren ans Ende blättern. Mal schauen, ob das Phone mehr als 4 Soft-Buttons unterstützt, dann könnte man Suchern und Aktualieren auf jeder Seite unterbringen...

Ein neuer AB zeigt im übrigen solange "Fehler" an, bis wohl die erste Nachricht aufgenommen wurde.
Ich vermute. die metaN Datei wird erst mit der ersten Nachricht angelegt. Sollte daher ein einmaliger Effekt sein.

führt leider zu einem Datenfehler.
Das ist es, was ich befürchtet hatte bzw. was auch an anderen Stellen berichtet wurde. Dass die FB keinen Export von externen Telefonbüchern erlaubt. Man müsste also direkt auf die Google Kontakte zugreifen können. Müsste ich mir anschauen, ob es da etwas gibt, was man einbauen kann. Will nicht das Rad neu erfinden müssen...


-- Zusammenführung Doppelpost by stoney

Mal schauen, ob das Phone mehr als 4 Soft-Buttons unterstützt, dann könnte man Suchern und Aktualieren auf jeder Seite unterbringen...
Gerade mal getestet: Geht!
Ich würde dann "Nummer bearb.", "Suchen", und "Aktualisieren" auf die Poistionen 4, 5, und 6 legen, so dass "Anrufen", "Zurück", und "Weiter" auf den Positionen 1, 2, und 3 liegen und über den Button 4 dann die zusätzlichen Optionen angezeigt werden.
 
Zuletzt bearbeitet von einem Moderator:

seelenreiter

Neuer User
Mitglied seit
17 Mai 2012
Beiträge
23
Punkte für Reaktionen
2
Punkte
3
Welchen Sinn hat "Nummer bearbeiten"?
Das würde ich weiter nach hinten schieben. Bearbeiten würde ich im Telefonbuch. Die Änderung wird doch hoffentlich nicht in die FB zurückgespielt(?)

Anrufen, Zurück, Vor, Suchen, Aktualisieren Nummer bearbeiten

Meine Meinung.
 
Zuletzt bearbeitet:

FantasticPauly

Neuer User
Mitglied seit
3 Jul 2013
Beiträge
43
Punkte für Reaktionen
8
Punkte
8
Welchen Sinn hat "Nummer bearbeiten"?
Das würde ich weiter nach hinten schieben. Bearbeiten würde ich im Telefonbuch. Die Änderung wird doch hoffentlich nicht in die FB zurückgespielt(?)
"Nummer bearbeiten" erlaubt das Ändern der Nummer vor dem Wählen (z.B. wenn man eine andere Nebenstelle anrufen will). Änderungen sind nur temporär und werden nicht gespeichert.

Ob der Punkt nun an der 5. oder 6. Stelle steht, sehe ich keinen Unterschied (ich muss eh einen Knopf drücken, um ins erweiterte Menü zu kommen und dann muss ich einen weiteren links oder rechts für die Auswahl drücken). Die Anpassung der Reihenfolge, Änderung der Beschriftung, etc. kann man auch je nach Geschmack in den cgi-Dateien vornehmen.

P.S.: Ich werde heute nochmal den Code auf Github aktualisieren. Darin sind dann das erweiterte Menü in der fb_phonebook.cgi enthalten und die Möglichkeit den Pfad zur Anrufbeantworter-Datei in fb.cfg einzustellen (Ich mach dort den kompletten Pfad editierbar; Default ist "Fritz/voicebox")

-- Zusammenführung Doppelpost by stoney

Code ist aktualisiert

P.P.S.: Ich habe ein alternatives Skript fb_phonebook.cgi.alphabet hinzugefügt. Ersetzt man das originale fb_phonebook.cgi Skript durch dieses, werden die Telefonbucheinträge seitenweise gem. Ihren Anfangsbuchstaben gruppiert und die Auswahlknöfe für "Zurück" und "Weiter" zeigen jeweils die Start- und Endbuchstabenpaare der jeweils angrenzenden Seite an. Man kann nun auch durch die Telefonbuchseiten rotieren, d.h. von der ersten auf die letzte Seite springen und umgekehrt. Ich hoffe, dies ist besonders für Nutzer mit "großen" Telefonbüchern hilfreich.
 
Zuletzt bearbeitet: