Callmonitor 1.13 und höher: Ankündigungen und Bedienung

Hi sevenmb,

welcome to the forum! I am glad to here that Callmonitor is being used in Italy, too. :)

As I am the author of Callmonitor, I will be able to assist you in making your Italian reverse search work. Just let me take a look at your first tries. (The 'sed'-based parsing needs to be adapted to each website; and this requires some experience to get it right.)

II) I noticed that if I have a name saved on the AVM's phonebook I can see it on the display of my telephone, instead if I have the same name into the Callers file, I can't (I can see only the number). Is it normal?
Yes, it is.
Would it be possible to add a rule in the Listener's file that adds a name to the AVM's phonebook? (maybe something like "webui_post_form ...")
Some time ago I tried to do exactly this (not in the Listeners; but programmatically adding entries to AVM's phonebook was my goal). The public interfaces to the phonebook are very poor; that is why I tried to use the web interface. It worked in test cases, but was very slow and not robust enough to consider inclusion into Callmonitor.

Kind regards,

Andreas
 
Hi ich möchte den Callmon via crontab nachts neu starten lassen.( bei mir hängt sich das machmal auf bzw. Verbindung zur masterBox geht verloren)

Aber mit dem Eintrag funzt es nicht wirklich.

00 4 * * * /etc/init/rc.callmonitor restart

kann mir jemand sagen was daran falsch ist?
 
/var/mod/etc/init.d/rc.callmonitor restart

passt das dann?
 
Zuletzt bearbeitet:
@buehmann:
It's a pleasure for me to talk to you!

About the sed: I'm able to get the name using this command
Code:
wget -q -O - http://www.pronto.it/?q=0123456789 | sed -n  '/class="cognome/{s/<[^>]*>//g;s/^[ \t\r\n\f\0\v\b$/]*//p }'
If you want to try yourself, you can search for Mario Rossi (typical italian name) and use one of those numbers.
So I build this config file:
Code:
_reverse_pronto_url() {
local number="0${1#${LKZ_PREFIX}39}"
URL="http://www.pronto.it/?q=$(urlencode "$number")"
}
_reverse_pronto_request() {
local URL=
_reverse_pronto_url "$@"
wget_callmonitor "$URL" -q -O -
}
_reverse_pronto_extract() {
sed -n -e '
/class="cognome/{
s/<[^>]*>//g;s/^[  \t\r\n\f\0\v\b$/]*//
'"$REVERSE_SANITIZE"'
'"$REVERSE_OK"'
}
/Non ho trovato/{
'"$REVERSE_NA"'
}
'
}

You can also use this command
Code:
wget -q -O - http://www.pronto.it/?q=0123456789 | sed -n  '/class="via/{s/<[^>]*>//g;s/^[ \t\r\n\f\0\v\b$/]*//p }'
for fetching the address of the caller, but I haven't added yet to the config file.
Some time ago I tried to do exactly this (not in the Listeners; but programmatically adding entries to AVM's phonebook was my goal). The public interfaces to the phonebook are very poor; that is why I tried to use the web interface. It worked in test cases, but was very slow and not robust enough to consider inclusion into Callmonitor.
Even if it's an unstable method, can you tell me how to do it? :rolleyes:

Last question: do you think it would be possible to understand how the name is sent by the fritzbox to the telephone and emulate it? I know, maybe it's just fantasy...

Thanks for the help!
 
@sevenmb: Thanks for the code; doesn't look bad at first sight (*). I am going to try it on the weekend. This works for me: http://svn.berlios.de/wsvn/callmonitor?op=revision&isdir=1&rev=588&peg=588

Even if it's an unstable method, can you tell me how to do it?
I was trying to follow the path of HTTP requests used in AVMs web interface. This is the last trace of these experiments I can find in my filesystem (3,5 years old, so don't expect it to work instantly):
Code:
require webui
DO=$1

webui_login
cnt=$(webui_query telcfg:settings/HotDialRefresh telcfg:settings/HotDialEntry/count)
n=0
args=
while ? "n < cnt"; do
    args="$args telcfg:settings/HotDialEntry$n/Code"
    let n++
done
echo $args
codes=$(webui_query $args)
for n in $codes; do
    let "code${n#0} = 1"
done
n=0
newcode=
while ? "n < 100"; do
    if ? "!code$n"; then newcode=$n; break; fi
    let n++
done
newid=$(webui_query telcfg:settings/HotDialEntry/newid)
echo $newid $newcode
hotdial="telcfg:settings/$newid"
$DO webui_post_form "$hotdial/Code=$newcode&$hotdial/Number=123&$hotdial/Name=Andreas" >/dev/null
Last question: do you think it would be possible to understand how the name is sent by the fritzbox to the telephone and emulate it? I know, maybe it's just fantasy...
Many people in this forum have had this fantasy before ... which might already answer your question.

Andreas

(*) apart from the missing indentation ;-) Please don't take the packaged Callmonitor files as an example: Most comments and indentation have been stripped from them; the original source files are available in my SVN repository.
 
Zuletzt bearbeitet:
/var/mod/etc/init.d/rc.callmonitor restart

passt das dann?
"/etc/init.d/rc.callmonitor restart" sollte reichen. Probier die Zeile einfach per SSH o.ä. aus und kopier sie erst dann in die Crontab; so verhinderst du Schreibfehler.
 
Anrufer auf Squeezebox anzeigen

Hallo,

ich benutze Callmonitor um unter anderem den Anrufer auf dem Display meiner Squeezebox anzuzeigen. Dazu benutze ich folgende Zeile in der Listener Konfiguration:
Code:
in:request ^ ^ echo 00:01:02:03:04:05 display Anruf Anruf%20von%20$SOURCE 15 | telnet 192.168.1.2 9090
Wie man sieht, muss der Anzeigetext URL-kodiert werden (%20=Leerzeichen). 'Echte' Leerzeichen werden als Trenner der Parameter interpretiert. Ich möchte nun gerne $SOURCE_NAME verwenden, aber das besteht nunmal oft aus 'Vorname[Leerzeichen]Nachname'. Das erzeugt bei der Squeezebox nicht den erwünschten Effekt. Gibt es eine Möglichkeit wie ich das in diesem Aufruf kodieren kann?

Danke!
 
Zuletzt bearbeitet:
Das klappt perfekt, vielen Dank!
Ich habe jetzt:
Code:
in:request ^ ^ echo 00:01:02:03:04:05 display $(urlencode "Anruf für $DEST") $(urlencode "$SOURCE_NAME") 15 | telnet 192.168.1.2 9090

Jetzt habe ich noch eine Frage: Gibt es eine Variable, die Folgendes beinhaltet:
Nummer steht im Telefonbuch -> Name des Eintrags OHNE [mobil] oder [home]
Nummer steht nicht im TB -> Variable beinhaltet Rufnummer
Nummer unterdrückt -> Variable beinhaltet Text "Unbekannt" o.ä.

Oder muss ich für so eine Logik ein Skript schreiben?

Danke für die schnelle Hilfe!
 
Ich möchte den Callmonitor auch an einer Squeezebox betreiben, allerdings besitze ich zwei Geräte der neusten Generation "Squeezebox Radio" und "Squeezebox Touch". Bei diesen Geräten wurde einige Dinge verändert, u.a. funktioniert der "display" nicht mehr wie beim "SB Classic", denn es gebt ausser zwei Zeilen Texte keine weiteren (mir bekannten) Parameter. Damit einhergehend kann leider auch die Anzeigedauer nicht mehr angepasst werden: die Anzeigen sind immer nur für ca. 5 Sekunden zu sehen. Da mir im Squeezebox-Forum niemand bei diesem Problem helfen kann (oder will) versuch ichs jetzt einfach mal andersherum:
Gibt es eine Möglichkeit einen Befehl .zB. "in:request..." mehrfach hintereinander (!) zu benutzen oder zu loopen oder so? Damit könnte ich dann einfach mehrfach nacheinander den Display-Befehl losschicken und so eine längere Darstellung erreichen.
Oder gibt es noch andere Möglichkeiten?

Edit: Habs jetzt einfach mal folgendermaßen verwirklicht:

in:request ^ ^ echo 00:04:20:22:4c:XX display Anruf Anruf%20von%20$SOURCE_NAME%20f%FCr%20$DEST 15 | telnet 192.168.178.21 9090
in:request ^ ^ sleep 2;echo 00:04:20:22:4c:XX display Anruf Anruf%20von%20$SOURCE_NAME%20f%FCr%20$DEST 15 | telnet 192.168.178.21 9090
in:request ^ ^ sleep 4;echo 00:04:20:22:4c:XX display Anruf Anruf%20von%20$SOURCE_NAME%20f%FCr%20$DEST 15 | telnet 192.168.178.21 9090
in:request ^ ^ sleep 6;echo 00:04:20:22:4c:XX display Anruf Anruf%20von%20$SOURCE_NAME%20f%FCr%20$DEST 15 | telnet 192.168.178.21 9090
....


nicht besonders elegant, aber es funktioniert!
 
Zuletzt bearbeitet:
Hallo Mr. Muppet,

Gibt es eine Möglichkeit einen Befehl .zB. "in:request..." mehrfach hintereinander (!) zu benutzen oder zu loopen oder so?

was du (vermutlich) eigentlich willst, ist, in der Aktion zum Ereignis in:request eine Schleife einzubauen. Das geht in Shell-Syntax. Am besten benutzt du dazu aber eine separate Datei, damit es übersichtlicher wird.

Leg z.B. die Datei /tmp/flash/callmonitor/actions.local.d/squeezebox.sh an mit folgendem Inhalt (ungetestet):
Code:
squeeze() {
  local ip=$1 n=10
  while [ $n -gt 0 ]; do
    echo "00:04:20:22:4c:XX display Anruf $(urlencode "Anruf von $SOURCE_NAME für $DEST") 15" | telnet "$ip" 9090
    sleep 2
    let n--
  done
}

Dann sollte nach einem Neustart des Callmonitors das funktionieren:
Code:
in:request ^ ^ squeeze 192.168.178.21

Viel Erfolg,

Andreas
 
callmonitor-1.19

Hallo,

habe gerade eine neue Version zusammengestellt namens 1.19: Änderungen nur im Bereich Rückwärtssuche:
  • Neu ist die erste italienische Rückwärtssuche bei pronto.it (thanks to sevenmb).
  • Repariert wurden Telefonbuch und GoYellow.
Viel Spaß,

Andreas
 
Hallo Mr. Muppet,
Leg z.B. die Datei /tmp/flash/callmonitor/actions.local.d/squeezebox.sh an mit folgendem Inhalt (ungetestet):
Code:
squeeze() {
  [...] 

Viel Erfolg,

Andreas[/QUOTE]
 
Vielen Dank! Genau sowas wollte ich eigentlich. Ich probiere es nachher mal aus.


Edit: Funzt alles bestens... vielen Dank!
 
Zuletzt bearbeitet:
Hallo Andreas,

habe seit ein paar Wochen den Callmonitor 1.18.8 im Einsatz. Funktioniert bislang ohne Probleme. Eigentlich funktioniert er super gut. Vielen Dank schon mal.

Bei der Suche nach einem vermeintlichen Fehler (komme ich gleich zu) und damit verbundener Suche hier im Forum bin ich auch auf Dein Posting zur neuen Version 1.19 gestossen, und dass das "Telefonbuch" repariert worden sei.

habe gerade eine neue Version zusammengestellt namens 1.19: Änderungen nur im Bereich Rückwärtssuche:
Repariert wurden Telefonbuch und GoYellow.


OK, nun zu meinem Problem, das eigentlich keins mehr ist. Eine im Telefonbuch eingetragene Nummer wurde nicht benutzt. In der Email war nur die Telefonnummer zu sehen. Nach ein paar Neustarts des Callmonitors funktionierte das dann. OK dachte ich, man muss nach Aenderungen oder Neueintraegen im Telefonbuch nur den Callmonitor neu starten. Aber ...

... ich benutze zwei Telefonbuecher. EIns für die wichtigen und eins für die unwichtigen Nummern. Der Callmonitor benutzt aber nur eines davon, und zwar das, welches beim Starten des Callmonitor in der Telefonbuch-Anzeige der Fritzbox zuletzt angezeigt wurde.

Mache ich da was falsch?

Oder kann ich nur ein Telefonbuch benutzen.

Rausgefunden habe ich es mit dem Befehl "phonebook list all".


Grüße,

Goggo
 
Zuletzt bearbeitet:
Hallo Goggo,

danke, dass du den Callmonitor benutzt, und danke für die Rückmeldung. Version 1.19 behebt nur Fehler bei der Rückwärtssuche (also dem Nachschlagen von Telefonnummern in Online-Verzeichnissen); das hat nichts mit deinem Problem zu tun.
OK dachte ich, man muss nach Aenderungen oder Neueintraegen im Telefonbuch nur den Callmonitor neu starten.
Von welchem "Telefonbuch" sprechen wir? Das, was man über die Standard-Weboberfläche von AVM verwalten kann? Ja, diese Einträge werden beim Start des Callmonitors gelesen und dann nicht wieder automatisch. Einen "Refresh" der Nummern kann man durch einen Neustart des Callmonitors erreichen oder durch ein "phonebook init" (was man z.B. auch jede Nacht per Cron ausführen könnte).

... ich benutze zwei Telefonbuecher. [...] Mache ich da was falsch?
Vermutlich machst du nichts falsch. Mir war bislang nicht bewusst, dass es mittlerweile mehrere unterschiedliche Telefonbücher gibt. Ist das in den letzten Firmware-Versionen irgendwann dazugekommen? Es müsste dann vermutlich "nur" das Auslesen des Telefonbuchs angepasst werden. Dazu bräuchte ich allerdings externe Hilfe von jemandem aus dem Forum; denn ich selbst habe keine Box, auf der eine der neuen Firmwares laufen würde.

Viele Grüße,

Andreas
 
Mir war bislang nicht bewusst, dass es mittlerweile mehrere unterschiedliche Telefonbücher gibt.

Hallo Andreas,

ja, es gibt zumindest für die FB7270/Speedport W920V seit einigen Wochen (oder paar Monaten) die Möglichkeit mehrere Telefonbücher zu haben.

Hintergrund war wohl, dass man verschiedenen Telefonen unterschiedliche Telefonbücher zuordnen konnte, um zum Beispiel berufliches und privates zu trennen, oder auch Sohn/Tochter Unterscheidung.

Ich für meinen Teil nutze es, indem ich das Haupttelefonbuch für die Nummern hernehme, die ich auch mal auf meine Mobilteile übertrage. Das (ich nenne es mal) Nebentelefonbuch nutze ich für die unwichtigeren Nummern, die ich nicht im Telefonbuch des MObilteils brauche, aber schon mit Namen (anstatt Nummer) auf der Anruferliste sehen möchte. Übrigens funktioniert die Anruferliste mit Anzeige des Namens mit beiden Telefonbüchern gleichzeitig, also nicht nur eines.

Ich bin gerne bereit Dir dabei zu helfen, dass in den Griff zu kriegen. Linux/Unix Kenntnisse habe ich um Dir z.B. Infos zu Dateien auf der Fritzbox geben zu können. Allerdings vermag ich zur Zeit nur mir eine Firmware mit dem Speed2Fritz-Skript zu backen, in welches ich dann Freetz und den Callmonitor einbaue.

Grüße,

Goggo
 
Hallo Goggo,
Ich bin gerne bereit Dir dabei zu helfen, dass in den Griff zu kriegen.
die Datei, die anzupassen ist, ist /usr/www/all/html/callmonitor/fonbuch.txt. Die wird wie alle anderen Dateien in der AVM-Weboberfläche von /usr/www/cgi-bin/webcm interpretiert; es gibt dafür so eine kleine Sprache mit Variablen, Bedingungen, Schleifen und Anfragen (query/multiquery).

Testen auf der Kommandozeile lässt sich das so:
Code:
/usr/www/cgi-bin/webcm getpage=/usr/www/all/html/callmonitor/fonbuch.txt

Jetzt müsstest du in die entsprechenden Dateien von AVM schauen, herausfinden, wie dort die verschiedenen Telefonbücher ausgelesen werden, und das übertragen. Du kannst dich ja mal daran versuchen; ich weiß nicht, inwieweit du dich mit Programmiersprachen allgemein auskennst. Falls dir das zu hoch oder zu undurchsichtig ist, helfe ich in nächster Zeit gerne. Dann könntest du mir die relevanten Dateien aus der neuen Firmware schicken und als Tester fungieren.

Viele Grüße,

Andreas
 
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.