- Mitglied seit
- 3 Dez 2007
- Beiträge
- 44
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo,
ich habe vor kurzem angefangen, ein Tool zu programmieren, das mir auf Basis der Anrufliste aus meiner Fritz!Box Fon automatisch eine individuelle Telefonrechnung generieren kann, in der alle abgehenden Anrufe, egal, über welchen VoIP-Provider, chronologisch mit Kosten aufgelistet werden.
Es holt sich automatisch per HTTP meine Fritz!Box-Anrufliste aus meiner Fritz!Box Fon WLAN 7170 sowie per HTTPS die Einzelverbindungsnachweise meiner VoIP-Provider ab (zwei nutze ich derzeit: sipgate, dus.net). Dann gleicht es die Daten ab und kann eine Monatsrechnung bzw. andere nützliche Reports (Tarifkontrolle) und unnütze Statistiken anzeigen (mit wem telefonierte ich eigentlich im letzten Jahr am längsten?). Auch die Ausplittung der Telefonrechnung nach Mitbewohnern ist grundätzlich möglich.
Das ganze ist web-basiert (PHP 5 und MySQL 5), weil ich das so am schnellsten umsetzen konnte (und weil es dann alle Mitbewohner von verschiedenen PCs aus per Browser nutzen können). Es läuft auf einem Webserver im lokalen Netz.
Ich habe den Sourcecode des PHP-Tools am 25.09.2008 auf Sourceforge.net unter GPL veröffentlicht. Das ist denke ich eine gute Basis, damit möglichst viele Leute leicht daran mitarbeiten können. Um es dort abzulegen, musste ich dem Projekt einen Namen geben und habe mich für "Yaphobia" entschieden. Das setzt sich zusammen aus "Yet Another Phone Bill Application".
Projektseite: https://sourceforge.net/projects/yaphobia/
Wer Lust hat, den Sourcecode zu testen, ist herzlich eingeladen, aber sei gewarnt. Momentan gibt es abgesehen von diesem Posting kaum Dokumentation außerhalb des Quellcodes, also kann man das Tool eigentlich nur mit basalen PHP-Kenntnissen zum Laufen kriegen (wer schonmal Wordpress installiert hat, sollte es aber eigentlich auch mit Yaphobia schaffen). Es ist also momentan nur eine Entwicklerversion verfügbar, noch kein Release. Der Code von Yaphobia ist an vielen Stellen noch überarbeitungsbefürftig, aber welche Software ist das nicht? ;-)
Feature-Liste
Der Code, den ich geschrieben habe, kann bisher folgendes, wobei viele Funktionen sich derzeit nicht komfortabel aus der Weboberfläche starten lassen (Der Code ist im alpha-Status und die Features ändern sich ständig, so oft, wie ich Zeit finde, daran weiterzuarbeiten):
1) Fritz!Box-Anruflisten in die Datenbank importieren
Ideen für mehr Features gibt es genug.
Installations-Anleitung (wird regelmäßig aktualisiert, basiert momentan auf Revision 40):
Weitere Tipps:
Ähnliche Projekte
Es ist nicht so, dass es nicht schon ähnliche Tools gibt. Wer zu ungeduldig für Yaphobia ist, kann sich zum Beispiel mal WGphone anschauen oder TelDaBase (auch PHP-basiert). Es gibt aber noch viele andere Projekte:
https://sourceforge.net/search/?type_of_search=soft&type_of_search=soft&words=phone+bill
Viele Grüße
signaltonoise
ich habe vor kurzem angefangen, ein Tool zu programmieren, das mir auf Basis der Anrufliste aus meiner Fritz!Box Fon automatisch eine individuelle Telefonrechnung generieren kann, in der alle abgehenden Anrufe, egal, über welchen VoIP-Provider, chronologisch mit Kosten aufgelistet werden.
Es holt sich automatisch per HTTP meine Fritz!Box-Anrufliste aus meiner Fritz!Box Fon WLAN 7170 sowie per HTTPS die Einzelverbindungsnachweise meiner VoIP-Provider ab (zwei nutze ich derzeit: sipgate, dus.net). Dann gleicht es die Daten ab und kann eine Monatsrechnung bzw. andere nützliche Reports (Tarifkontrolle) und unnütze Statistiken anzeigen (mit wem telefonierte ich eigentlich im letzten Jahr am längsten?). Auch die Ausplittung der Telefonrechnung nach Mitbewohnern ist grundätzlich möglich.
Das ganze ist web-basiert (PHP 5 und MySQL 5), weil ich das so am schnellsten umsetzen konnte (und weil es dann alle Mitbewohner von verschiedenen PCs aus per Browser nutzen können). Es läuft auf einem Webserver im lokalen Netz.
Ich habe den Sourcecode des PHP-Tools am 25.09.2008 auf Sourceforge.net unter GPL veröffentlicht. Das ist denke ich eine gute Basis, damit möglichst viele Leute leicht daran mitarbeiten können. Um es dort abzulegen, musste ich dem Projekt einen Namen geben und habe mich für "Yaphobia" entschieden. Das setzt sich zusammen aus "Yet Another Phone Bill Application".
Projektseite: https://sourceforge.net/projects/yaphobia/
Wer Lust hat, den Sourcecode zu testen, ist herzlich eingeladen, aber sei gewarnt. Momentan gibt es abgesehen von diesem Posting kaum Dokumentation außerhalb des Quellcodes, also kann man das Tool eigentlich nur mit basalen PHP-Kenntnissen zum Laufen kriegen (wer schonmal Wordpress installiert hat, sollte es aber eigentlich auch mit Yaphobia schaffen). Es ist also momentan nur eine Entwicklerversion verfügbar, noch kein Release. Der Code von Yaphobia ist an vielen Stellen noch überarbeitungsbefürftig, aber welche Software ist das nicht? ;-)
Feature-Liste
Der Code, den ich geschrieben habe, kann bisher folgendes, wobei viele Funktionen sich derzeit nicht komfortabel aus der Weboberfläche starten lassen (Der Code ist im alpha-Status und die Features ändern sich ständig, so oft, wie ich Zeit finde, daran weiterzuarbeiten):
1) Fritz!Box-Anruflisten in die Datenbank importieren
- Gesamte Anrufliste per HTTP aus der Web-Oberfläche laden und importieren (Passwort zur Anmeldung ist natürlich nötig)
- Alle Anruflisten-Schnipsel (stammen aus der Push-Mail) in einem bekannten Verzeichnis auf der Festplatte laden und importieren
- Dubletten ignorieren
- Dies muss nicht vom Web-Browser aus geschehen, das Tool kann auch von der Kommandozeile oder als cronjob gestartet
werden. - Getestet bisher mit Fritz!Box Fon WLAN 7170 und 7270
- sipgate EVN's im CSV-Format automatisch per HTTPS vom Kundenbereich (https://secure.sipgate.de) herunterladen und in die Datenbank importieren (Username und Passwort müssen dem Tool bekanntgegeben werden).
- dus.net EVN's eines gewünschten Zeitraums (inkl. letzte 3 Tage) automatisch per HTTPS vom Kundenbereich (https://my.dus.net) herunterladen und in die Datenbank importieren. Hierbei ist die Schwierigkeit, das dus.net meiner Kenntnis nach keine CSV-Daten anbietet. Daher werden die Verbindungsdaten aus dem HTML-Quelltext des Kundenbereichs gewonnen ("ausgequetscht"), was aber gut funktioniert. Das Tool erspart nervige Klick-Abfolgen im Kundenbereich. (Username und Passwort müssen dem Tool bekanntgegeben werden).
- Zuordnen der Gespräche aus den EVN's zu denen aus der Fritz!Box Anrufliste mit zeitlicher Toleranz. Das funktioniert momentan noch nicht 100%ig bei dicht aufeinanderfolgenden Anrufen mit minimaler Anruflänge, ist aber mit etwas Mühe lösbar.
- EVN-Import muss nicht vom Web-Browser aus geschehen, das Tool kann auch von der Kommandozeile oder als cronjob gestartet werden.
- Monatliche Telefonrechnung anzeigen (dabei einen elementaren Kostencheck pro Anruf durchführen, dafür muss der Minutenpreis eines Tariftyps bekannt sein. Es wird jedoch (noch) nicht geprüft, ob der vom Provider dem Anruf zugewiesene Tariftyp korrekt ist)
- Kostenpflichtige Gespräche aus der Anrufliste anzeigen, für die es (noch) keinen EVN-Nachweis mit Kosteninfo gibt.
- Jahresüberblick: Wieviel Telefonate / Minuten / Kosten pro Monat / Woche / Tag.
- ...
Ideen für mehr Features gibt es genug.
Installations-Anleitung (wird regelmäßig aktualisiert, basiert momentan auf Revision 40):
- Die aktuelle Entwicklerverison (neueste Revision) von Yaphobia runterladen. Die Revision-Übersicht zeigt, ob es bereits neue Revisions gibt und was Neues passiert ist. Download entweder von hier oder - eleganter - per Subversion-Client:
Code:
svn checkout https://yaphobia.svn.sourceforge.net/svnroot/yaphobia/trunk
- Wenn nicht vorhanden, einen lokalen Webserver+PHP5+MySQL5 installieren, unter Windows bietet sich XAMPP als Kombipaket an. Gegenbenenfalls ist die PHP-Extension curl noch nicht aktiviert. Dann muss man in der php.ini das Semikolon vor folgender Zeile löschen und den Webserver neustarten.
Code:
;extension=php_curl.dll
- Konfigurieren des Webservers für Yaphobia: Das Tool sollte aus Datenschutzgründen NICHT weltweit erreichbar sein, sondern nur aus dem lokalen Netz! Yaphobia bringt zwar einen aktivierbarten Passwortschutz mit, aber der Webserver sollte zusätzlich so konfiguriert werden, dass nur vom lokalen Subnetz aus zugegriffen werden kann. Am besten für Yaphobia gleich einen virtuellen Host einrichten oder zumindest eine Alias-Direktive (Details siehe unten).
- Eine leere MySQL-Datenbank mit beliebigem Namen muss angelegt werden für Yaphobia, am besten auch ein eigener MySQL-User dafür mit begrenzten Rechten.
- Der Inhalt von Ordner htdocs im Yaphobia-Paket muss vom Webserver aus per HTTP ins lokale Netz ausgeliefert werden (evtl. in Webserver einen virtuellen Host dafür einrichten oder eine Alias-Zeile spendieren). Nur die PHP-Dateien in htdocs liefern HTML-Seiten aus, die anderen PHP-Dateien sind entweder Klassen (Ordner classes) oder für die Kommandozeile gedacht (Ordner cli). (Dateien außerhalb des htdocs-Ordners sollten aus Sicherheisgründen nicht per HTTP erreichbar sein.)
- Die Zugriffsrechte der Ordner data_export und cookiejar müssen so angepasst werden, dass der Webserver-System-User (Windows: z. B. SYSTEM / Linux: z. B. www-data) dort Schreibberechtigung hat, weil hier Dateien (temporär) abgelegt werden.
- config/settings.defaults.php enthält eine Liste aller Konfigurations-Parameter. Diese Datei muss zunächst manuell nach config/settings.php kopiert werden (die es bis dahin noch nicht gibt).
- In der neu erstellten config/settings.php müssen nun zumindest die korrekten Datenbank-Parameter eingetragen werden:
Code:
32 /* 33 * database related settings 34 */ 35 define( 'YAPHOBIA_DB_NAME', 'mysql_database_name'); 36 define( 'YAPHOBIA_DB_USER', 'mysql_user_name'); 37 define( 'YAPHOBIA_DB_PASSWORD', 'mysql_user_password'); 38 define( 'YAPHOBIA_DB_HOST', 'localhost');
- Der erste Aufruf von index.php im Web Browser (oder /cli/gather_calls.php von der Kommandozeile) legt in der MySQL Datenbank alle nötigen Tabellen an.
Weitere Tipps:
- Das Web-Interface lässt sich mit Passwort schützen, wenn man in settings.php folgende Konstante anlegt:
Code:define( 'YAPHOBIA_WEB_INTERFACE_PASSWORD', 'einBeliebigesPasswort');
- cli/gather_calls.php ist ein Beispielscript zum Einsammeln der Protokolldaten (Fritz!Box Anruflisten) und EVN's (derzeit sipgate + dus.net). (zu starten von der Kommandozeile)
- Für einige Funktionen fehlen momentan noch komfortable Eingabemasken im Web-Interface. Über ein MySQL-Tool wie MySQL Query Browser kann man aber in der Datenbank manuell die benötigten Informationen eintragen.
- Zum Beispiel kann man mit MySQL Query Browser die Tarifpreise nachtragen, damit der Tarif-Preischeck funktioniert: Dazu muss in der Tabelle provider_rate_types, insofern sich diese überhaupt schon gefüllt hat, in jeder Zeile das Feld price_per_minute bearbeitet werden (im Format 0.0000). Die Tabelle füllt sich mit Tarifen, sobald man mindestens einen EVN eines Providers importiert hat.
- Will man die Monatsrechnungen auf mehrere Mitbewohner aufteilen, muss man im MySQL Query Browser für jeden Mitbewohner zunächst eine Zeile in der Tabelle users anlegen und das Feld Usernamen sinnvoll füllen. Daraufhin hat jeder User auch eine eigene ID in der Tabelle Users bekommen. Diese IDs merkt man sich und kann sie in der Tabelle user_contacts wiederverwenden: In user_contacts kann man nämlich einzelne Telefonnummern einzelnen Mitbewohnern zuordnen. Die Tabelle user_contacts füllt sich von selbst mit Telefonnummern, wenn man die Anrufliste aus der Fritz!Box importiert.
Ähnliche Projekte
Es ist nicht so, dass es nicht schon ähnliche Tools gibt. Wer zu ungeduldig für Yaphobia ist, kann sich zum Beispiel mal WGphone anschauen oder TelDaBase (auch PHP-basiert). Es gibt aber noch viele andere Projekte:
https://sourceforge.net/search/?type_of_search=soft&type_of_search=soft&words=phone+bill
Viele Grüße
signaltonoise
Zuletzt bearbeitet: