Callmonitor 1.*

Status
Für weitere Antworten geschlossen.
in:request ^SIP0$ reboot 192.168.1.1
Da fehlt eins der Muster.
EVENT=in:request SOURCE='0891234567' DEST='0891234566'
Daraus abgeleitete Listener-Zeile, die genau auf einen solchen Anruf passt:
Code:
in:request   ^0891234567$   ^0891234566$   irgendwas
Vielleicht siehst du jetzt den Zusammenhang ...

Andreas
 
Hallo,
ist es möglich die Schriftgröße der Ausgabe auf dem LCD einer dBox über Parameter bei der Listenereingabe (dboxlcd) zu vergrößern. Aus größerem Abstand ist die Standardgröße recht schlecht ablesbar. Die Größe mit der die Sendernamen ausgegeben werden würde reichen. Hardware: Gefreetzter Speedport W900V mit u.a. Callmonitor 1.11.

Als ich noch meine 7050 mit dem the-construct-Mod betrieben habe konnte ich IMHO den Aufruf der Größe in der aufrufenden URL mitgeben. Ich lasse mir zwar die Ausgabe auch auf dem Bildschirm anzeigen, aber wenn man mal DVD oder einen anderen Stream schaut funktioniert ja die Bildschirmanzeige per http-Request nicht. Aber das ist nicht Problem dieses Forums.

Bei der Gelegenheit auch noch gleich die Anfrage, ob man auch die Schriftgrößen der Bildschirmanzeigen per Parameteraufruf beeinflussen kann, oder muß man da in die Scripte rein!? Die sonstigen Anzeigen der Box passen schon. Ich will nur die Anzeigen des Callmonitors vergrößern. Vielen Dank.

Gruß Telefonmännchen
 
Hallo, nein, die Schriftgröße lässt sich bei dboxlcd nicht so einfach ändern. Hier findest du die Implementierung mit einem kurzen Kommentar und einem Link zur ursprünglichen Diskussion sowie zur API der dbox:
https://svn.berlios.de/viewcvs/call.../callmonitor/actions.d/dboxlcd.sh?view=markup

Im Prinzip müsstest du durch Anpassung der Parameter xpos, ypos, size und font eine Vergrößerung der Schrift erreichen können (jede Zeile wird einzeln an eine bestimmte Position geschrieben). Aber die passenden Werte müsstest du selbst ausklügeln ...

Andreas
 
@buehmann

hi, ich hab da mal ne Frage. Ich suche schon seit einigen Tagen nach Infos zum Callmonitor. Meine Frage ist, gibt es eine Möglichkeit wie im callmessage von Construct.com die Adresse um zu brechen? Also Name, Straße und PLZ+Ort jeweils in eine Zeile.

Grüße Michael
 
Ja, so etwas kannst du dir leicht bauen, ein paar grundlegende Shell-Scripting-Kenntnisse vorausgesetzt: Hier steht, wie du die Standardnachrichten der Aktionen anpassen kannst:
http://wiki.ip-phone-forum.de/software:callmonitor:anpassen

Hier kannst du nachlesen, wo Name und Adresse abgelegt sind (Variable SOURCE_NAME bzw. DEST_NAME):
http://wiki.ip-phone-forum.de/software:callmonitor:listeners

Dann könntest du die Kommas zwischen den einzelnen Bestandteilen durch Zeilenumbrüche ersetzen.

Einfaches Beispiel (das so nur den Namen bei eingehenden Anrufen anzeigen kann):
Code:
default_dboxpopup() {
  echo "Oh, ein Anruf!"
  echo "$DEST_NAME" | sed 's/, */\n/g'
}
Andreas
 
Hallo Andreas,

vielen Dank für die Info. Die entsprechende Datei habe ich auf der Box gefunden, kann sie aber mit vi nicht editieren. Ich bekomme die Meldung, daß sie readonly sei.
Jetzt habe ich ein Problem. Wie kann ich die Änderungen permanent speichern? Muß ich unter /tmp/flash/calllmonitor/actions.local.d ein Script gleichen Namens(?) anlegen und in diesem nur die gewünschte Änderung hinterlegen? (Im Wiki steht callmonitor mit drei l, ist das ein Tippfehler oder soll das so sein?) Oder wie habe ich den Link für panasonic (Callmonitor:anpassen) zu verstehen. Wo außer im Wiki kann ich noch dazu Infos finden. Die Forensuche bringt zu viele (irrelevante) Treffer. Ich stehe da ein wenig auf dem Schlauch. Brauche einen kurzen Schubs in die richtige Richtung bitte.

Danke für Infos.

Gruß Telefonmännchen
 
Hallo Telefonmännchen,

ja, die Funktion steckt in einer Datei im Readonly-Teil der Box; du gehst am besten denselben Weg wie panasonic.

Das Verzeichnis /tmp/flash/calllmonitor/actions.local.d musst du anlegen, falls noch nicht vorhanden. Darin kann dein Script beliebig heißen, es muss nur auf ".sh" enden, damit es gelesen wird, also z.B. dbox.sh. Die Datei wird nach allen Dateien der eingebauten Aktionen (in /usr/lib/callmonitor/actions.d) gelesen. Du kannst dort also sowohl neue Funktionen definieren als auch Teile überschreiben. In deinem Fall könntest du z.B. die Funktionen dboxlcd und __getmsg_dboxlcd kopieren und anpassen (oder du gibst Ihnen einen neuen Namen).

Damit der Callmonitor deine neue Funktion kennt, musst du ihn neustarten. Vorher kannst du etwa auf der Konsole über "callaction dboxlcd ..." testen.

Gruß,
Andreas

PS: Die drei L waren ein Tippfehler.
 
Hi Leute,

danke nochmal an buehmann, habs sogemacht wie in der Anleitung beschrieben. Dein Beispiel ist ja schon mit Umbruch. Ich habe dann mich noch ein bischen Schlau gemacht und das ein oder andere gefunden. Im Moment habe ich eine angepasste Variante wie dsl123 es mal beschrieben hat. Wenn es Dir nichts ausmacht würde ich gerne mal was ich gefunden habe hier posten mit der bitte ob Du mir kurz erläutern kannst was diese Befehle überhaupt genau bedeuten. Sie bringen mich zwar fast zum Erfolg, aber leider habe ich nur zur Hälfte eine Vorstellung was sie bedeuten.


Grüße Michael
 
Hi buehmann,
also hier der Code. Ist nicht viel und für Dich auch nicht schlimm. Mir geht es um die Variablen name, adress, street und zip. Ich habe das aus dem callmessage von construct.com und habe nur das Semikolon durch Komma ersetzt. Aber was sagen mir denn die % oder # usw. ? Wenn ich nämlich eine Handynummer habe wird mir ja nur der Provider angezeigt und aus meiner name-Variable wird dann der Teil in Klammern noch mal zerlegt, obwohl da kein Komma vorkommt. Um das zu beheben müsste ich nur mal wissen was ich da eigentlich mit den %#* bezwecke.
Wäre nett wenn Du mir das kurz erläutern kannst.
Code:
default_message() {
name=${SOURCE_NAME%%\,*}
adress=${SOURCE_NAME#*\, }
street=${adress%%\,*}
zip=${adress##*\,}
cat <<-EOM

Zeit: $(date +%d'.'%m'.'%Y' - '%T' Uhr')
---------------------------------------------
Anruf für Anschluss:
$DEST_NAME ($DEST)
---------------------------------------------
Anruf von: $SOURCE
Name: $name
$street * $zip
$adress
---------------------------------------------
EOM
echo "$SOURCE_NAME" | sed 's/, */\n/g'    [COLOR="Red"]<-- dies ist von Dir und nur zur Überprüfung für mich (kannst Du das auch mal Erklären?[/COLOR]
}
### ENDE ###
 
"${SOURCE_NAME%%\,*}" nimmt den Wert von SOURCE_NAME und entfernt einen möglichst langen Teil am Ende, der auf das Muster ",*" passt; es bleibt also effektiv alles vor dem ersten Komma übrig. adress ist alles ab dem ersten Komma (% schneidet hinten ab, # vorne, bei Verdoppelung möglichst lang, sonst möglichst kurz).

Zeit: $(date +%d'.'%m'.'%Y' - '%T' Uhr')
Alternativ könntest du $TIMESTAMP benutzen.

Der Rest bis EOM wird einfach ausgegeben, wobei alle Variablen ($...) ersetzt werden.
echo "$SOURCE_NAME" | sed 's/, */\n/g'
Gibt den Wert von SOURCE_NAME an den Befehl 'sed' weiter, der darauf Änderungen vornehmen kann. Hier wird jedes (/g) Auftreten des Musters ", *" (Komma + beliebig viele Leerzeichen) durch einen Zeilenumbruch (\n) ersetzt (s///).

Zum Weiterlesen:
http://de.wikipedia.org/wiki/Sed_(Unix)
http://www.freebsd.org/cgi/man.cgi?query=sh&format=html (nicht genau die Shell der Fritzbox, aber sehr ähnlich)

Viele Grüße,
Andreas
 
cool, das hilft mir doch schon weiter. Es ist eines wenn man es nur liest, aber besser wenn man liest und es jemand noch mal erklärt. Ich denke damit komme ich klar und versuche mal weiter mein Glück.
Ich danke Dir ganz herzlich.

Viele Grüße
Micha
 
Hallo,

funktioniert dieses Plugin auch mit einer Enigma2 Dreambox ( DM7025 bzw. DM800).Habe irgendwo hier im Forum mal gelesen dass es nicht geht...
Es gibt zwar ein FritzCall Plugin für die Enigma2 Boxen , mir gefällt aber der Callmonitor bessser da ich ihn schon mit einer Enigma1 Dreambox genutzt habe.
 
Mahlzeit :)

Mir ist ein kleiner Fehler im Callmonitor aufgefallen.

Ausgangssituation: Meine Geschäftsnummer ist im AVM Adressbuch unter meinem Namen gespeichert.
Die Callers ist leer.

Wenn ich nun zuhause anrufe zeigt mir die AVM Anrufliste meinen Namen an und in der Callers wird meine Nummer mit unserem Firmennamen eingetragen.
Der Eintrag in die Callers wäre zwar nicht notwendig, aber stört ja auch nicht.

Das Problem:
Bei den Listeners wird der Name aus der Callers und nicht aus dem AVM Adressbuch angezeigt.
Es kommt also nicht "wengi geschäftlich" sondern "Firma xyz". Und das bei allen Durchwahlen der Firma.
Die Suchreihenfolge sollte doch eigentlich zuerst das AVM Telefonbuch und dann die Callers sein, oder?

Hintergrund für diese Reihenfolge: Nur im AVM Adressbuch eingetragene Nummern können die Nachtschaltung umgehen. Daher steht die Familie komplett dort drin.
Erst wenn im AVM Adressbuch nichts gefunden wurde sollte die Nummer in der Callers gesucht bzw. dannn aufgelöst werden.

Wie seht ihr das?

wengi
 
Hallo wengi,

die Suchreihenfolge bzw. Vorgehensweise sieht so aus (bzw. so sollte sie aussehen, wenn es keine Bugs gibt):

Suche lokal auf der Box, probiere dabei nacheinander (sobald der Name gefunden ist, brich ab):
A. Callers (/tmp/flash/callmonitor/callers)
B. Temporärer Cache (/tmp/callers)
C. AVM-Telefonbuch (Kopie in /var/cache/phonebook/avm)
Falls kein Ergebnis, dann probiere
D. externe Rückwärtssuche
Falls diese erfolgreich ist, trage das Ergebnis in den Cache ein (je nach Einstellung A oder B).

Wenn deine Nummer also in C auftaucht, in A und B aber nicht, sollte sie immer aus dem AVM-Telefonbuch genommen werden. Könntest du das mal überprüfen, indem du dir den Inhalt der angegebenen Dateien anschaust? Vielleicht hat mit dem Auslesen des AVM-Telefonbuchs etwas nicht geklappt.

Gruß,
Andreas
 
Hi buehmann,

ich habe gerade (nach dem letzten Post) ein Update auf freetz1.0 gemacht (reboot -> /tmp leer).
danach in der callers den Eintrag gelöscht (und doppelt überprüft).

Demnach hätte bei meinem anschließenden Testanruf A und B fehlschlagen müssen. C hätte erfolgreich sein sollen.
Dem war aber nicht so. Im Fernseher steht der Firmenname, in der callers wird ein Eintrag mit Firmenname erzeugt.
Im der AVM Anrufliste steht es aber richtig "wengi (geschäftlich)". Bei der Nummer im Telefonbuch habe ich mich also auch nicht vertippt.

wengi
 
Wir sind einen Schritt weiter.
In der /var/cache/phonebook/avm stand die Nummer nicht drin, da, aus irgend einem Grund, das alte phonebook griff.
Code:
# AVM's phone book (old)
Nach einer Aktualisierung klappt es mit dem neuen:
Code:
/ # phonebook start
Reading AVM's phone book...done.
/ # cat /var/cache/phonebook/avm
# AVM's phone book (new)
verstehen muss ich es jetzt allerdings nicht...
Sollte nicht spätestens nach einem Neustart das AVM phonebook neu eingelesen werden?

wengi
 
Ja, sollte es, weil die Cache-Datei unter /var ja verschwunden ist. Offensichtlich wurde sie bei dir ja auch neu erzeugt, allerdings falsch. Wenn ich mich recht erinnere, ist dieser Fall schon einmal aufgetreten, aber eine Erklärung gibt es bis heute nicht. (Beim Einlesen wird das Telefonbuch komplett über die Web-Interface-Mechanismen von AVM erzeugt; siehe /usr/www/all/html/callmonitor/fonbuch.txt. Vielleicht funktioniert dort bei AVM in der frühen Phase des Bootens irgendetwas nicht richtig (?).)

Andreas
 
Status
Für weitere Antworten geschlossen.
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.