Online Anrufliste

*ich*

Neuer User
Mitglied seit
2 Nov 2005
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich möchte, dass letztendlich meine Anrufliste online ist. Ich habe einen eigenen V-Server und kann auch ohne weiteres ein WebFrontend schreiben. Mein Problem ist allerdings eher etwas anderes, und zwar wie bekomme ich die Daten von der Fritzbox online! Ich habe mir schon überlegt ich nutze den Push-Service. Man kann ja einmal am Tag eine Mail schicken. Die Mail könnte man parsen und schon hat man das Ergebnis online. Allerdings ist mir einmal am Tag zu wenig. Ich möchte das Ergebnis schnell online haben.

Also habe ich mich ein wenig im Forum umgeschaut und sogar einen Online-Anrufmonitor gefunden. Siehe: http://www.ip-phone-forum.de/showthread.php?t=114795

Das Problem ist allerdings, dass das mit Callmessage gemacht wird. Ich habe mir das SH-Skript angeschaut. Das sollte für meine Bedürfnisse dann irgendwie folgendes machen:
# send information to PCs
wget -O /dev/null "http://xy.de/addCall.php?caller=${caller}&called=${called}&line=${theline}" >/dev/null 2>&1 &

Das Problem ist: Das sind zu wenig Informationen für meine Zielvorstellung. In der Anrufliste der Fritzbox wird ja noch angezeigt, ob der Anruf angenommen wurde etc. Das hätte ich auch gerne. Damit ich über's Web im Büro sehen kann, dass ich ein Anruf verpasst habe.

Bei der Recherche hier im Forum habe ich auch etwas vom ds-mod gelesen und dass dieses die Informationen liefern können müsste. Aber da bräuchte ich hat ein paar Infos. Ich bräuchte folgende Informationen: In bzw. Out., ob der Anruf angenommen wurde oder nicht, Länge des Gespräches, wer angerufen wurde und von wem - halt das was auch in der Anrufliste steht. Diese Informationen würde ich dann halt in einem Progrämmchen auf meinen Server verarbeiten.

Gruß und danke

*ich*

Edit:
PS: Hoffentlich bin ich hier im richtigen Forenbereich, sonst bitte verschiben... danke!
 
Du kannst die Anrufliste auch komplett auslesen. Das ganze funktioniert mit post_data usw.
Ich habe mir ein Script gebastelt das von der calllog (/var/flash/calllog) nach jedem Anruf ausgeführt wird, die Anrufliste ausliest und mir eine HTML Datei erstellt. Wie Du die dann irgendwohin bekommst, weiß ich nicht. Ich poste das ganze auf nem eigenem HTTP server der in der Box läuft ;)
Der einzige Nachteil: Dauert ein Anruf länger als der Sleep befehl im Script wird der Anruf erst beim nächsten Anruf in der Liste mit angezeigt. Abhilfe: Will ich ne aktuelle Liste, klingelt man sich selbst nur kurz an. ;) Wichtig sind in der Regel ja auch nur die Anrufe in Abwesenheit, wenn man nicht da ist und sich eben die Liste im Web ansehen will...

Das Script sieht so aus:
Code:
sleep 30
WEBCM_DIR="/usr/www/html/cgi-bin"
WEBCM="$WEBCM_DIR/webcm"

webui_post_form() (
    cd "$WEBCM_DIR"
    local POST_DATA="$1"
    echo -n "$POST_DATA" |
    REQUEST_METHOD="POST" \
    REMOTE_ADDR="fritz.box" \
    CONTENT_TYPE="application/x-www-form-urlencoded" \
    CONTENT_LENGTH=${#POST_DATA} \
    $WEBCM
)

PASSWORD="Passwortderfritzbox" # das URL-kodierte Passwort
webui_post_form "login:command/password=$PASSWORD"

/usr/bin/wget http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html\&var:lang=de\&var:menu=fon\&var:pagename=foncalls\&login:password=passwortderfritzbox -O /dev/null
sleep 5
/usr/bin/wget http://fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv -O /var/tmp/liste.txt

echo "<HTML>" > /var/tmp/liste.html
echo "<HEAD>" >> /var/tmp/liste.html
echo "<TITLE>Anrufliste</TITLE>" >> /var/tmp/liste.html
echo "<STYLE TYPE='TEXT/CSS'>" >> /var/tmp/liste.html
echo "h1 {margin: 0px 0px 0px 0px; font-family:Arial; font-size:12px; font-weight=normal}" >> /var/tmp/liste.html
echo "</STYLE>" >> /var/tmp/liste.html
echo "</HEAD>" >> /var/tmp/liste.html
echo "<BODY>" >> /var/tmp/liste.html
echo "<table border=1 bordercolor=#ADADAD cellspacing=0><tr><td><h1>" >> /var/tmp/liste.html

sed "s/$/<\/h1><\/td><\/tr><tr><td><h1>/g;" /var/tmp/liste.txt > /var/tmp/liste2.txt
sed "s/;/<\/h1><\/td><td><h1>/g;" /var/tmp/liste2.txt > /var/tmp/liste.txt
sed "s/<td><h1><\/h1><\/td>/<td><h1>\&nbsp;<\/h1><\/td>/g;" /var/tmp/liste.txt > /var/tmp/liste2.txt
sed "s/^1/kommend/;" /var/tmp/liste2.txt > /var/tmp/liste.txt
sed "s/^2/abwesend/;" /var/tmp/liste.txt > /var/tmp/liste2.txt
sed "s/^3/gehend/;" /var/tmp/liste2.txt > /var/tmp/liste.txt

cat /var/tmp/liste.txt >> /var/tmp/liste.html

echo "</td></tr></table></body></html>" >> /var/tmp/liste.html

rm /var/tmp/liste.txt
rm /var/tmp/liste2.txt

(zugegeben das mit dem SED-Befehl geht eleganter aber ich bin auch nur Linux anfänger)

Vielleicht hilft Dir das weiter.

[Edit:]
"passworderfritzbox" ist natürlich zu ersetzen durch dein eigenes passwort für das webinterface.
anstelle von fritz.box hab ich die IP der FB eingetragen da es oft nicht richtig mit fritz.box geklappt hat.
Die erstellte html datei "liste.html" liegt im tmp verzeichniss
 
Zuletzt bearbeitet:
ich löse das über den callmonitor, welcher sämtliche Daten an meinen Webserver schickt:
in:request in:connect in:disconnect in:cancel, das gleiche für out:

Das ganze wird auf meinen Server in eine Datenbank geschrieben und bei Bedarf entsprechend bunt ausgelesen.

und meine Einstellung für den Callmonitor sieht einfach so aus:
*:* ^ ^ getmsg meinedomain.eu '/anrufe.php?source=%s&source_name=%s&dest=%s&dest_name=%s&event=%s&ext=%s&id=%s&duration=%s&timestamp=%s&wer=fritzchen' "$SOURCE" "$SOURCE_NAME" "$DEST" "$DEST_NAME" "$EVENT" "$EXT" "$ID" "$DURATION" "$TIMESTAMP"
 
Hallo zusammen,

herzlichen Dank für die Antworten. Beides sehr gut! Das mit dem 30 sek. warten ist natürlich etwas problematisch. Aber das Skript ist schon nicht schlecht. Was ich nicht so ganz verstanden habe, was du meinst mit, dass das von der CallLog aufgerufen wird. Verstehe ich nicht so ganz.

Das mit dem Call-Monitor ist natürlich etwas komfortabler. Allerdings bin ich da ganz schön ins Schwitzen gekommen. Das mit dem Kompilieren ist nicht das einfachste, aber es hat sich gelohnt. Absolut genial!

Allerdings muss ich mir jetzt noch etwas überlegen, wie ich die einzelnen Daten zusammenbekomme... aber das werde ich hinbekommen.

Herzlichen Dank!

Daniel
 
Moin.

Na die calllog ist eine Datei, die bei jedem Anruf ausgeführt wird. Ähnlich wie beim Callmonitor können in der callllog auch Anrufnummern und SIP Nummern ausgewertet werden, was sich z.B. für WakeOnCall verwenden läßt.
In Deinem Falle mußt Du das Script von mir als Datei im tmp ordner speichern. z.B. als Datei "makeliste" und ausführbar machen mit:
Code:
chmod +x makeliste

Dann noch den aufruf in die calllog eintragen:
Code:
echo "/var/tmp/makeliste" > /var/flash/calllog
und fertisch!

Ich habs nicht propiert aber du müßtest das script auch direkt in die calllog schieben können. Da sollte es auch funktionieren:
Code:
cat makeliste > /var/flash/calllog

Du kannst den Timeout von 30 Sekunden natürlich runtersetzen. DIe überlegen geht dahin:

Du bist nicht zuhause es klingelt jemand an. Ich glaub mal keiner läßt es länger als 30 sek. klingeln. Wird das script ausgeführt WÄHREND es klingelt wird der Anruf nicht mit berücksichtigt. Deshalb der Timeout. Und ob die liste jetzt 30 Sekunden eher oder später aktuell ist ... ich glaube das spielt eine untergeordnete Rolle.

Was mich allerdings interessieren würde, wie könnte man das erziegte HTML auf einen fremden Webspace tranferieren wenn kein DS Mod auf der Box ist?
 
Zuletzt bearbeitet:
Danke für die Infos!

Zu deiner Sache, da hätte ich eine Idee:

Schau mal hier: http://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html

Da gibt es die Variablen:
Code:
--post-data=string
--post-file=file

Da brauchst du halt nur noch ein PHP Skript oder was auch immer, welche die Datei abspeichert. Dann kannst du sie dir online anschauen. Oder habe ich das falsch verstanden?
 
das wget in der busybox beherrscht kein POST - allerdings fliegt hier irgendwo ein komplettes wget für die Box rum... müsste man nur suchen
 
Auf meiner Box ist die IP .253 für den Zugriff von aussen gepatched und der Port 80 auf dieser IP freigegeben. Über Dyndns habe ich nun von überall Zugriff auf die Weboberfläche meiner Box.

Ja, ich weiss dass dies ein Sicherheitsproblem darstellt! Das Box-Passwort ist gut gewählt, seit zwei Jahren keine Probleme.
 
Was ich eigentlich meinte ist das das ftp in der Box nicht "senden" kann. Sonst könnte man die Datei auf nen Webspace transferieren.

Und wie ist das mit dem post vom wget? Kann man damit eine Datei auf einen Webspace schieben?


Was allerdings ein freigegebene Webinterface damit zu tun hat weiß ich nicht. Zumal ich das lieber mit dropbear und Putty bzw. VPN mache. HTTPS stände auch noch zur Debatte. Ich glaub irgendwo hab ich das hier kürzlich gelesen...
 
mcmic schrieb:
Was mich allerdings interessieren würde, wie könnte man das erziegte HTML auf einen fremden Webspace tranferieren wenn kein DS Mod auf der Box ist?
z.B. mit einer busybox (von Oli?) die ftpput enthält:
# ./busybox ftpput
BusyBox v1.00 (2005.06.01-21:22+0000) multi-call binary

Usage: ftpput [options] remote-host remote-file local-file

Store a local file on a remote machine via FTP.

Options:
-v, --verbose Verbose
-u, --username Username to be used
-p, --password Password to be used
-P, --port Port number to be used
 
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.