Erweiterter callmonitor

mein "Problem" liegt darin, dass die Zeit des GET-String und die Zeit der Anrufliste der Fritzbox nicht immer übereinstimmt... der Callmonitor reagiert halt erst mit Verzögerung, so dass mitunter ein Minutensprung zwischen meiner Onlineliste und der Anrufliste der Fritzbox besteht. Da fällt die Synchronisation schwer...
 
callmonitor

Hallo,

versuche seit Stunden den callmonitor zu aktivieren.

die callmonitor.listeners zeigt keine Einträge. Nur folgendes:
#Quelle Ziel Aktion

Per ps habe ich festgestellt das callmonitor nicht gestartet ist.

in der debug.cfg habe ich folgende Einträge und neu gestartet:

cat <<'EOP' > /var/tmp/callmonitor.listeners
#Quelle Ziel Aktion
^ ^ dreammessage --user='root' --password='xxxxxxxxxx' 192.168.178.10
EOP


Nutze die AVM Fritz Box Fon WLAn 7050 mit modifizierten image der aktuellesten Version.

Was kann ich noch machen?

Wer erklärt mir mal wie ich ein mod einspiele?

Gruss

aldoa
 
Re: callmonitor

aldoa1 schrieb:
Nutze die AVM Fritz Box Fon WLAn 7050 mit modifizierten image der aktuellesten Version.

aldoa1 schrieb:
Wer erklärt mir mal wie ich ein mod einspiele?

aldoa

Was denn nun? Geh' doch mal auf die Startseite der FritzBox und verrate uns, welche Firmware da geschrieben steht, z.B. FRITZ!Box Fon, Firmware-Version 06.03.67m3.12
 
version

habe nun die Version
Firmware-Version 14.03.71mod-0.57_newcallmonitor

In der debug.cfg die Einträge wie beschrieben.

Aufruf per Kommandozeile bringt eine Meldung auf die Dreambox.

Gruss

aldoa
 
dann poste doch mal das Ergebnis von

Code:
cat /var/tmp/callmonitor.listeners
 
Er hat noch den alten mod0.57 mit neuem callmonitor. Per Mail habe ich ihm nun eine korrekte debug.cfg geschickt - sollte also erledigt sein.
 
buehmann schrieb:
Code:
cat <<EOP > /var/tmp/callmonitor.listeners
^ ^ getmsg xyz.net '/call.php?nr=%s&called=%s&wer=fritzchen&wann=%s' "\$MSISDN" "\$CALLED" "\$(date -Is)"
EOP
Noch einfacher (weil man auf keine Backslashes achten muss):
Code:
cat <<'EOP' > /var/tmp/callmonitor.listeners
^ ^ getmsg xyz.net '/call.php?nr=%s&called=%s&wer=fritzchen&wann=%s' "$MSISDN" "$CALLED" "$(date -Is)"
EOP

Für meine Dreambox muss ich dann doch wohl den Part in der callmonitor.out ändern, oder?

Code:
# default message
default_message() {
    cat <<-EOM
	Anruf an $CALLED
        Uhrzeit $date -Is

	von $MSISDN
	$CALLER
	EOM
}

Geht das so? Über die callmonitor.listeners wird da nix gehen, denke ich mal ... ?!?
 
Problem

hi,
da ist das 1. Problem:

Ergebnis der callmonitor.listeners:

#Quelle Ziel Aktion

sonst kein weiterer Eintrag

in der debug.cfg habe ich eingetragen:

cat <<EOP > /var/tmp/callmonitor.listeners
#Quelle Ziel Aktion
^ ^ dreammessage --user='root' --password='xxx' 192.168.178
#192.168.178.26 dboxmessage
EOP
PASSWD='xxxx'
cat <<EOP > /var/spool/cron/crontabs/root
#0 * * * * echo Aktion zur vollen Stunde... > /tmp/crontab.log
EOP
# Setze CROND=1 um Cron zu starten
CROND=0
# Setze NFS=1 um nfs.o sunrpc.o und lock.o beim Boot fuer NFS zu laden
NFS=0
# Setze TELNET=0 kein telnet/dropbear
# 1 nur telnet, kein sshd/dropbear
# 2 nur sshd/dropbear kein telnet
# 3 telnetd und sshd/dropbear
# 4 telnetd mit web-interface Passwort ohne sshd/dropbear
# 5 telnetd mit web-interface Passwort und sshd/dropbear
TELNET=1
# add option + hardwareaddress for etherwake, multiple lines are possible
#ETHERWAKES=' 00:11:22:33:44:55'
/usr/bin/modstart.final
"/var/nvi.tmp" line 1 of 23 --4%--
 
Nachtrag:

in der debug vom 1. Eintrag steht im posting
^ ^ dreammessage --user='root' --password='xxx' 192.168.178

lautet aber tatsächlich

^ ^ dreammessage --user='root' --password='xxx' 192.168.178.6

also wohl korrekt.
 
Re: Problem

aldoa1 schrieb:
cat <<EOP > /var/tmp/callmonitor.listeners
cat <<'EOP' > /var/tmp/callmonitor.listeners

Auf die Hochkommas geachtet?

/edit
An Deiner Stelle würde ich mal die debug.cfg leeren, dann Neustart der box, das modifizierte Image nochmal einspielen und dann nochmal die debug.cfg bearbeiten.
Dadurch, dass Du schon mal den m3 draufgehabt hast, wird wohl Deine debug.cfg nicht mehr zum Image passen!

echo > /var/flash/debug.cfg
 
hochkomma

Hi,

danke Erkan, danke Fritzchen,

das fehlende Hochkomma bei EOP war es.

Noch eine Frage:

woher kommen die Telefonbucheinträge. Wie kann diese machen und wie kann man Rufnummerident über eine Webseite machen?
Dann wäre alles perfekt.

Gruss

aldoa
 
wenn ich noch mal darf, ist jetzt etwas untergegangen... ???

fritzchen schrieb:
mit der erweiterung des GET-Strings um die aktuelle Uhrzeit wollte ich diejenige Uhrzeit haben, die die Box als Eingangszeit in der Anrufliste abspeichert. Das klappt aber so nicht.

Meine Frage daher:
die vom Callmonitor mittels sed ausgewertete Zeile liefert am Anfang auch die Uhrzeit... kann die auch als Variable eingelesen werden, oder verstehe ich etwas falsch???

Leider bin ich nicht annähernd befähigt den callmonitor entsprechend zu erweitern, bin also für jeden Tipp dankbar!
 
hi,
gibt es eine möglichkeit eine yac message an alle ips in einem subnetz oder (besser) an alle ips die in der multid.leases stehen weiterzuleiten?
ich hab jetzt:
^ ^ yac 192.168.178.20
in der callmonitor.listeners stehen... aber das tut ja nur das was es soll, nämlich an die 20 schicken.
ich hab schon:
192.168.178
192.168.178.
192.168.178.*
ausprobiert, geht aber alles nicht..
192.168.178
sollte ja in einer früheren version des callmonitor scripts mal gehen, konnte ich aber nie testen...

Hab ich Tomaten auf den augen und irgendetwas übersehen? oder geht das einfach garnciht(mehr)?
 
aus der callmonitor.out:

Code:
# get matching IPs from multilease and execute a command for each of them
# example: for_ips 192.168.10. dboxpopup "Ring!"
for_leases() {
    local IPS="$(fgrep -i "$1" /var/flash/multid.leases | awk '{ print $3 }')"
    local COMMAND="$2" IP=
    shift 2
    for IP in $IPS
    do
	"$COMMAND" "$IP" "$@" &
    done
}
 
Nur mal als Versuch: Klappt es evtl. mit der Broadcast-Adresse 192.168.178.255?

Edit: Ich kann das hier nicht ausprobieren, sonst erfahren ca. 150 Leute, wer mich gerade anruft... ;)

Edit 2: Die Antwort von Fritzchen ist natürlich qualifizierter als meine! :)
 
for_leases 192.168.178. yac

funktioniert (anscheinend - muss ncoh nen bissel testen)
Danke!
 
Moin!

Hatte grad einen Anruf bei dem Umlaute im Namen vorkommen, also Rückwärtssuche bei dasoertliche und bei der Anzeige auf der DBox2 wurde alles hinter dem Umlaut abgeschnitten/nicht angezeigt. Bsp: Nachname=Stück - Anzeige auf DBox2=St und dann nichts mehr. Kann man da irgendwas machen, oder hab ich irgendwo einen Fehler?

...bye DonQ
 
Wie trägt man eigentlich eine Interne Nebenstelle richtig ein?
Weil z.B. ^**1 oder **1 oder funktionieren leider nicht.
Auch ein entwerten des * als Jokerzeichen (also \*\*1) haut nicht hin
 
Mir sind da auch noch zwei Dinge aufgefallen:
@buehmann
Du hast ja folgende Routine eingebaut:
Code:
	0049*) NUMBER="0${NUMBER#0049}" ;;
	0*) ;;
	*) OKZ="$(get_it OKZ)"; NUMBER="$OKZ$NUMBER" ;;
Die erste Zeile bedeutet für mich - wenn NUMBER mit 0049 beginnt, dann wird die NUMBER zu 0+NUMBER ohne 0049
Die zweite Zeile - wenn NUMBER mit 0 beginnt, dann bleibt sie
Dritte Zeile - allem anderen wird die OKZ davorgesetzt
Richtig?
Bei mir klappt das mit den Ortsgesprächen über VoIP nicht. Der Callmonitor zeigt mir nur die Rufnummer ohne OKZ und darum auch kein Eintrag aus dem Örtlichen ...

@All
Wenn ein Anruf per VoIP reinkommt, dann bekomme ich die Meldung "Anruf an SIPx". Für SIPx möchte ich gerne Namen hinterlegen - aber wie? Getestet habe ich in der debug.cfg folgende Einträge:
#MSISDN=SIPx:Mein Name
#CALLED=SIPx:Mein Name
Geht aber keins von beiden ... wie geht dem? :)
 
Hallo, bin zurück aus dem Urlaub. :)
fritzchen schrieb:
Nur bei Anrufen auf das Festnetz (analog), wenn $CALLED also leer bleibt, tritt das oben beschriebene Problem auf...
Das war ein Fehler im callmonitor; leere Nachrichten wurden einfach verschluckt, dadurch sind alle nachfolgenden einen Platz nach vorne gerückt. Ich habe den Fehler gerade behoben, allerdings bleibt er für das erste Nachrichten-Argument bestehen (das scheint ein Fehler in der Shell zu sein). Falls das leer sein kann, sollte man sich also durch Umordnen der Argumente behelfen.
fritzchen schrieb:
die vom Callmonitor mittels sed ausgewertete Zeile liefert am Anfang auch die Uhrzeit... kann die auch als Variable eingelesen werden?
Die Zeile, die vom Callmonitor ausgewertet wird, ist die, die mit "IncomingCall" anfängt; darin steht keine Uhrzeit. Eine Zeile mit Uhrzeit habe ich eben beim flüchtigen Suchen nur nach dem Auflegen gefunden und das ist ja wohl etwas spät. ;-) Welche Zeile hast du denn gemeint?
Erkan schrieb:
Für meine Dreambox muss ich dann doch wohl den Part in der callmonitor.out ändern, oder?
Nein, die Standard-Nachricht musst du nicht unbedingt ändern. Hinter der Adresse der Dreambox kannst du eine eigene Nachricht angeben:
Code:
dreammessage my.box "Anruf an $CALLED"$'\n'"Uhrzeit $(date -Is)"$'\n\n'"von $MSISDN"$'\n'"$CALLER"
Ist leider etwas hässlich, um die Zeilenumbrüche reinzubekommen, trotzdem aber in der callmonitor.listeners alles in einer Zeile zu haben. Alternative: Kopier die Definition von default_message unter anderem Namen in /var/tmp/callmonitor.out (wird zusätzlich gesucht und eingebunden), pass dort die Nachricht an und benutz dann so was:
Code:
dreammessage my.box "$(my_message)"
aldoa1 schrieb:
woher kommen die Telefonbucheinträge. Wie kann diese machen und wie kann man Rufnummerident über eine Webseite machen?
Code:
# Usage: callmonitor [OPTION]... [(0|1) (0|1)]
#   -r, --reverse  enable reverse lookup of phone numbers
#   -u, --update   update phonebook with results of reverse lookup
Die beiden 0/1-Schalter sind für die Kompatibilität mit dem Aufruf in mod-0.57; dort kannst du die beiden Optionen über CALLINVERS und CALLUPDATE in der debug.cfg beeinflussen. --reverse macht eine Suche bei dasoertliche.de und speichert die Ergebnisse temporär (bis zum nächsten Reboot); mit --update werden die Ergebnisse der Abfrage in die debug.cfg eingetragen, sind also dauerhaft verfügbar.
DonQuijote schrieb:
Hatte grad einen Anruf bei dem Umlaute im Namen vorkommen, also Rückwärtssuche bei dasoertliche und bei der Anzeige auf der DBox2 wurde alles hinter dem Umlaut abgeschnitten/nicht angezeigt.
Klingt nach einem Problem mit der Buchstabenkodierung: dasoertliche.de benutzt Latin1 (ISO-8859-1) die DBox etwas anderes (UTF8?). Also müsste man umkodieren; für häufig vorkommende Umlaute sollte das einfach mit sed gehen, eine allgemeine Lösung ist schwieriger.
kolbem schrieb:
Wie trägt man eigentlich eine Interne Nebenstelle richtig ein?
Weil z.B. ^**1 oder **1 oder funktionieren leider nicht.
Auch ein entwerten des * als Jokerzeichen (also \*\*1) haut nicht hin
Ein Fehler beim Einlesen der callmonitor.listeners: Dabei wurden Backslashes bereits interpretiert. Habe ich behoben; \*\*1 müsste jetzt funktionieren.
Erkan schrieb:
Bei mir klappt das mit den Ortsgesprächen über VoIP nicht. Der Callmonitor zeigt mir nur die Rufnummer ohne OKZ und darum auch kein Eintrag aus dem Örtlichen ...
Die Rufnummer wird nur für das Nachschlagen beim Örtlichen transformiert; angezeigt wird dir die Originalrufnummer. Bist du sicher, dass die transformierte Rufnummer beim Örtlichen eingetragen ist? Wenn du mal reverse_lookup von Hand aufrufst und vorher "set -x" sagst, kannst du nachvollziehen, welche Nummer tatsächlich beim Örtlichen abgefragt wird.

Eine neue Version des callmonitors stelle ich gleich oben im Ursprungsposting bereit.
 
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.