das liebe Telefonbuch

MartinK

Neuer User
Mitglied seit
12 Jan 2007
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Heyho,

So, nachdem ich nun auch seit knapp einer Woche des Status eines Besitzers des SL75 WLAN Telefons genieße und abgesehen vom Spielzeugcharakter stets auch irgendwie eine gewisse Funktionalität erforderlich ist bei mir um mit etwas glücklich zu werden habe ich mir das per WLAN machbare mal angeschaut.

Hm, erstmal herleiten. Das Telefonbuch fasst exakt 200 Einträge, nicht mehr und nicht weniger. Man kann diese Liste (ein Buch würde ich das nicht gerade nennen) entweder direkt am Telefon eingeben [*tipptippächtzrücktipp*] oder aber per Synchronisation mit einem Adressbuchprogramm von Microsoft editieren.

Ich persönlich halte nicht sonderlich viel davon, wenn mir jemand versucht vorzuschreiben bestimmte Programme auf dem Rechner zu verwenden. Und nur der Bequemlichkeit der Mehrheit folgend werde ich auch nicht umsteigen.

Es hat mich schon im Test gestörrt, daß das eigentlich recht einfache Telefonbuch nicht über ein paar simple Eingabefelder per Webinterface änderbar ist. Es wäre sicherlich keine Maßnahme von mehr als ein paar Stunden im derzeitigen Webinterface solch Funktionalität einzubauen.

Da man aber wenigstens das Telefonbuch exportieren lassen kann - und ebenso wieder importieren - sehe ich da einen Punkt wo man ansetzen kann.

So, nun wirds technisch. Ich habe das Telefon mit der derzeit neuesten Firmware versehen (Firmware 01.000.43.00085, Hardware 2.6). Übers User-Webinterface erreicht man die export-/importfunktion. Das Exportieren erfolgt einfach durch das herunterladen von /var/tmp/directory.tar, woraus ich schließe das die Daten entweder beim Editieren per Telefon direkt stets beim Speichern auch als tar verpackt dort abgelegt wird oder das die Daten direkt dort gespeichert werden.

Eine Sicherheitswarnung am Rande:
Es erfolgt keinerlei Sicherheitsabfrage bei direkter Ansteuerung der Adresse per Browser - trotz aktiviertem Benutzer-PIN. D.h. JEDER im Netzwerk hat auf das komplette Telefonbuch offenen Zugriff. Inwiefern das auf andere Daten zutrifft habe ich nicht weiter geprüft, allerdings halte ich diese Lücke für gravierend. Das gibt der Bezeichnung Open Source eine völlig neue Bedeutung hier. ;-)

Allerdings - ob sich so wohl noch andere Dateien herunterladen lassen würden? Aus den Posts hier habe ich entnommen, daß sich bislang noch keinerlei Community zum Thema Systemveränderung bei dem SL75 WLAN gebildet hat. Ob das nun daran liegt, daß das Telefon noch recht jung ist, daß es einen weit weniger großen Benutzerkreis findet wie das berüchtigte Linksys WRT54G oder daß Siemens dem einige Steine in den Weg gelegt hat sei mal dahingestellt.

Nagut, zurück zum Thema. Das directory.tar beinhaltet zwei Dateien, addrbook.dat sowie vha/SD_SUFFIX.kb. Ersteres, offensichtlicherweise, beinhaltet die Textbezogenen Daten des Telefonbuchs. Es ist eine simple, als Unicode gespeicherte, Textdatei. Die Einträge folgen direkt aufeinander, einzelne Teile eines Eintrags sind mittels Tabulator voneinander getrennt und die Position eines Eintrags wird durch das Ablaufen von Tabs von oben herab bestimmt. Ziemlich simpel, allerdings nicht sehr zukunftstauglich - je mehr Einträge man benutzt, desto mehr muß das Telefon zum Anzeigen erst laufen. Ganz zu schweigen von der Arbeit wenn man das Telefonbuch verändert.

Naja, gut, entpackt man, editiert man und packt es wieder ins tar wirft einem der Import erfrischenderweise eine Fehlermeldung entgegen. Diverse andere Dinge führten ebenso zu Fehlern. Meiner Einschätzung nach sollte man kein neues TAR erstellen. Auch das Ändern des Datums und der Uhrzeit der letzten Änderung wird offenbar überprüft - von der directory.tar nicht, allerdings von dem Inhalt.

Per Hexeditor konnte ich jedoch erfolgreich erst Inhalt ersetzen und nun auch an der nötigen Position ein paar Bytes hinzufügen, so sie denn fehlen. Keine Fehler beim Import, es scheint abgesehen von den Datumsangaben sowie irgendeiner Besonderheit beim Packen (schlichtweg die Reihenfolge im tar oder was anderes?) keinerlei inhaltliche Überprüfung geben. Praktischerweise scheint der Inhalt keine Längenangabe der addrbook.dat zu beinhalten, so daß wir in der Tat beliebig Bytes dazwischenstopfen oder rausnehmen können, sofern wir die Anforderungen ans Format selbst erfüllen.

Soweit bin ich nun schon gekommen. Nun fehlt nur noch, daß ich jeden einzelnen Abschnitt eines Eintrags, getrennt durch Tabs, durch Try'n'Look zum Abschnitt des angezeigten Eintrags im Telefon selbst zuordne und bei Auszähleingaben auch die Werte entsprechend zuordne. Das ist nicht weiter spannend - nur Arbeit. Also, hat das schon wer gemacht? ;-)

Da das Editieren per Hexeditor auf Dauer etwas nervenaufreibend ist (Herumrechnerei von Bytes, Fehlerquelle Tab-Vergessen, zu wenig Klickibunti...) stell ich mir am Ende ein einfaches Javaprogramm vor. Änderungen am Webinterface selbst wären schöner, allerdings fehlt mir dazu der Source und die Möglichkeit, die Änderungen hochzuladen. Insofern tuts auch n Programm auf dem Rechner selbst. Ich gehe mal davon aus hier gäbe es noch weitere Interessenten? :)

So, und nun... wenn sie nicht gestorben sind so leben sie noch heute! *klapp* Story zuendeerzählt. Wieso tendiere ich nur immer dazu, so ausführlich zu werden? Resultiert doch sowieso nur wieder darin, daß ihr nur jeweils auf einen einzigen Satz antwortet und der Rest untergeht. Na wir werden ja sehen.

Gruß,
Martin
 
Hier ein Java Programm, das mit dem WL2 funktioniert.
 

Anhänge

  • EditPhoneBook.txt
    5 KB · Aufrufe: 142
MartinK schrieb:
Eine Sicherheitswarnung am Rande:
Es erfolgt keinerlei Sicherheitsabfrage bei direkter Ansteuerung der Adresse per Browser - trotz aktiviertem Benutzer-PIN. D.h. JEDER im Netzwerk hat auf das komplette Telefonbuch offenen Zugriff. Inwiefern das auf andere Daten zutrifft habe ich nicht weiter geprüft, allerdings halte ich diese Lücke für gravierend. Das gibt der Bezeichnung Open Source eine völlig neue Bedeutung hier. ;-)
Vergib doch einfach einen Admin-PIN und nicht nur einen Benutzer-PIN und dein Problem ist gelöst ;)
 
Ich war der Ansicht ich hätte ebenso einen Admin-PIN gesetzt... nunja, sicherheitshalber nochmal gesetzt, überall ausgeloggt und viola - der Zugang zum directory.tar ist mir weiterhin möglich...

VoIPMaster, hast du deine Antwort vorher ausprobiert oder einfach nur gemeint, daran müsste es wohl liegen?
 
Hallo,

StefanCordes schrieb:
Hier ein Java Programm, das mit dem WL2 funktioniert.

Wie muss man denn dieses java Programm starten?

Ich habe es mit javac EditPhoneBook.java unterlinux kompiliert.
Danach hatte ich diese Dateien:
EditPhoneBook$1.class EditPhoneBook$2.class EditPhoneBook.class

java EditPhoneBook

Wirft folgende Fehlermeldungen:
Exception in thread "main" java.lang.NoClassDefFoundError: EditPhoneBook (wrong name: wl2/EditPhoneBook)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

Meine Java Version:
java -version

java version "1.4.2-02"
Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.4.2-02)
Java HotSpot(TM) Client VM (build Blackdown-1.4.2-02, mixed mode)

Ich habe sun-java5-jre-1.5.0-11-1ubuntu2 auf Ubuntu-feisty i386 installiert.


mfg.

Johnny
 
Die Datei muß in den Unterordner wl2 kopiert werden und dann mittels
javac wl2/EditPhoneBook.java
übersetzt werden.

Gestartet wird dann mit "java wl2.EditPhoneBook <tar-file>"
 
Funktioniert nicht mit aktueller Firmware

Halloechen,

ich habe ein SL75 WLAN von sipgate und im vorauseilenden Gehorsam schonmal die neueste Firmware (SW-Release: 01.000.54) drauf gemacht :-Ö

Ich weiss jetzt nicht, ob es an der neuen Firmware liegt, aber mein directory.tar besteht aus 3 Dateien:

addrbook.dat
vha/SD_NAME.kb
vha/SD_SUFFIX.kb

Das Java App schimpft dementsprechend auch gleich: "Not a WL2 Phonebook."

Gibts da mittlerweile was neues? :habenwol:
 
Selbst ist der Mann :)

Es muessen scheinbar nur ein paar Indizes geaendert werden, und schon laeuft der Editor auch fuer SL75 Wlan (SW-Release: 01.000.54):

0x800 -> 0xE00
0x801 -> 0xE01
0xA04 -> 0x1024

Code:
--- EditPhoneBook.java.orig     2008-01-11 19:15:49.000000000 +0100
+++ EditPhoneBook.java  2008-01-11 19:08:44.000000000 +0100
@@ -51,16 +51,16 @@
                FileInputStream tempIn = new FileInputStream(args[0]);
                int tempLen = tempIn.read(tempBuff);
                tempIn.close();
-               if (tempBuff[0x800] != -1 || tempBuff[0x801] != -2) {
+               if (tempBuff[0xe00] != -1 || tempBuff[0xe01] != -2) {
                        System.err.println("Not a WL2 Phonebook.");
                        System.exit(1);
                }
-               if (tempBuff[0xA04] != 0x31) {
+               if (tempBuff[0x1024] != 0x31) {
                        System.err.println("Incompatible Header.");
                        System.exit(1);
                }
                StringBuffer tempNumbers = new StringBuffer();
-               for (int i = 0xA04; i < tempLen; i = i + 2) {
+               for (int i = 0x1024; i < tempLen; i = i + 2) {
                        char tempChar = (char)tempBuff[i];
                        if (tempChar == 0) {
                                break;
@@ -95,7 +95,7 @@
                tempWriter.write(tempNewText);
                tempWriter.close();
                tempNewText = makeCompatible(tempNewText);
-               int tempBuffPos = 0xA04;
+               int tempBuffPos = 0x1024;
                for (int i = 0; i < tempNewText.length(); i++) {
                        char tempNewChar = tempNewText.charAt(i);
                        tempBuff[tempBuffPos] = (byte)tempNewChar;
 
Zuletzt bearbeitet:
Danke für die geänderten Inidizes.
Mein WL2 mit SW-Release: 70.000.55 schreibt weiterhin die alten Positionen.

Deshalb habe ich das Programm dynamisch gemacht (erkennt beide).

Auserdem gibt es einen nun einen netten Editor.
 

Anhänge

  • EditPhoneBook.java.txt
    5.7 KB · Aufrufe: 57
Danke Stefan.
Weisst Du vielleicht noch, wieso es bei leeren Telefonbucheintraegen 32 Felder gibt, bei belegten Eintraegen jedoch nur 28?
In den Spaltendefinitionen sind auch nur 28 Felder definiert.
 
Du hast noch ein hardgecodetes 0xA04 im Writer-Teil:
Code:
int tempBuffPos = 0xA04;
 
Hier noch ein paar Details zum Tar format:

- tar arbeitet mit Bloecken von je 512byte
- nicht-volle Bloecke werden mit 0en gefuellt
- am ende eines tars muessen mindestens zwei 0er Bloecke stehen
- tar besteht aus einer Aneinanderreihung von Dateien (je auf volle Blocklaengen mit 0en gefuellt)
- vor jeder Datei kommt ein Header (1 Block)
- im Header ist die Groesse der Datei (octal) hinterlegt
- der Header ist mit einer checksumme (octal) versehen (checksumme ueber den Header, nicht ueber den Inhalt)

- tar arbeitet normalerweise nicht nur mit Bloecken, sondern auch noch mit einem "Blocking Factor", d.h. aehnlich wie schon bei den Bloecken die 512byte arbeitet tar mit "records" von je 20 Bloecken (wg. der Arbeitsweise von Streamern).

Ich nehme an, dass Siemens - aus Speicher- und Performanz-Gruenden - die Reihenfolge der Dateien im tar fest vorgibt, sowie den letzten Punkt ignoriert.
 
Zuletzt bearbeitet:
Ich habe die obigen Punkte mal in einem Tabellen Editor umgesetzt.
- Es werden nur Namen und Telefonnummern angezeigt
- Manche Felder werden automatisch auf defaults gesetzt. Beispielsweise wird - wenn man normal ueber das Telefon einen neuen Eintrag macht - auch bei Telefonnummern die Felder fuer IP-Adressen gesetzt. Damit es da keine Syntax Fehler gibt, werden wie gesagt die Felder fuer IPs, Booleans, Datum etc. automatisch gesetzt.
- Wenn Vor- und Nachname leer sind, wird der Eintrag als geloescht gewertet (ArchiveFlag=0, 32 leere Felder statt 28 normale)
- Es wird nach addrbook.txt gescannt, um auch bei neueren Firmwares (hoffentlich) kein Problem zu bekommen

Verwendung natuerlich auf eigene Gefahr ;-)

Als naechsten Schritt wuerde ich das Directory direkt vom Telefon holen und wieder hochladen.

Vielleicht sollten wir ein Sourceforge Projekt draus machen?
 

Anhänge

  • Directory.java.txt
    8 KB · Aufrufe: 39
  • Editor.java.txt
    4.6 KB · Aufrufe: 36
Ich habe einen Importer geschrieben, der vcf Dateien importiert. Falls jemand Interesse hat, einfach mal melden.
 
Hallo,

ich habe auch ein Siemens SL 75 Wlan und möchte gern automatisiert neue Telefonnummern einspielen, ansich alles kein Problem außer das es nicht funktioniert :)

Ich habe mir das hier angebotene Programm angeschaut und mit meiner Handset vers. schimpft er immer: not a WL2 Phonebook...

Nun die Frage: weiß jmd wie ich die Indizies setzen muss für folgende SW-Vers: 01.000.47.00091

Alternativ wäre es mir lieber wenn mir jmd erklären würde wie ich dies rausbekomme.

Und @ lilalinux, das Directory automatisch holen und hochladen stellt kein Problem dar, wenn du das immernoch machen möchtest kannst du dich gerne melden, habe da mal was vorbeireitet :)
 
Hallo!

Gibt'S da was neues zum verwalten von Telefonbüchern?

Ich suche etwas um Kontakte aus Outlook komfortabel auf mehrere SL75 zu verteilen.

Danke
 
Telefonbuchsoftware

Hi @All,

ich habe gerade das JavaProgramm aus dem Beitrag http://www.ip-phone-forum.de/showthread.php?p=1184428#post1016750 kompilieren wollen und bekomme folgende Fehlermeldung:

Code:
$ javac wl2/EditPhoneBook_PhoneSL75_WLAN.java
----------
1. ERROR in wl2/EditPhoneBook_PhoneSL75_WLAN.java (at line 33)
        public class EditPhoneBook {
                     ^^^^^^^^^^^^^
The public type EditPhoneBook must be defined in its own file
----------
1 problem (1 error)$

Gibt es einen Schalter, wie das trotzdem kompiliert werden kann?

Meine Javaversion:
Code:
$ java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.