[ds-mod] Callmonitor

Status
Für weitere Antworten geschlossen.

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
Hallo,

auf dieser Seite geht es um den weiterentwickelten [thread=81203]Callmonitor[/thread] für den [thread=85371]Mod von danisahne (ds-mod)[/thread].

[size=+1]Installation[/size]

Im Normalfall genügt es, ein "make menuconfig" im ds-mod aufzurufen und den Callmonitor zu aktivieren.

Zur manuellen Installation einer neuen Version des Callmonitors als Addon folgt einfach den Anweisungen in der Anleitung "./howto/de/HOWTO - Pakete von Hand installieren.txt" aus dem ds-mod. Ihr müsst zwei Pakete installieren, callmonitor und telefon.

Tipp: Um schnell eine neue Version des Callmonitors im dsmod auszuprobieren, benutze ich statt der Addon-Methode auch gerne den Aufruf "make CALLMONITOR_VERSION=x.y.z" nach dem normalen "make menuconfig".

[size=+1]Konfiguration[/size]

Zur Konfiguration gibt es im Web-Interface vier neue Seiten:
  • Pakete/Callmonitor: Optionen zum Startverhalten, zur Rückwärtsuche etc.
  • Pakete/Telefon: Optionen zum Verhalten von telefon
  • Einstellungen/Listeners: Die Aktionen, die bei bestimmten Mustern von Quell- und Zielrufnummer ausgeführt werden sollen (ehemals callmonitor.listeners); Regeln in [thread=81203]gewohnter Syntax[/thread] (mit einer kleinen Neuerung, siehe unten)
  • Einstellungen/Callers: Das dauerhaft (im Flash) gespeicherte Telefonbuch (Format: <Rufnummer mit Vorwahl><Whitespace><Name>); Ergebnisse der Rückwärtssuche beim Örtlichen können hier gespeichert werden für schnelleren Zugriff in der Zukunft; natürlich können auch von Hand Nummer-Name-Paare eingetragen oder geändert werden.
Außerdem lässt sich über das Web-Interface die Regelmenge mit vorgetäuschten Testanrufen testen (es wird bei euch nicht klingeln; die Testanrufe sieht nur der Callmonitor). Das ist recht praktisch bei der Fehlersuche.
Unter Extras gibt existiert noch eine Seite zur Wartung des Telefonbuchs.

[size=+1]Neuerungen[/size]

0.1: Erste Version des Callmonitors für ds-mod (ds-0.1rc3)
  • Man kann negative Muster bei den Listeners verwenden, indem man ein Ausrufezeichen voranstellt: "!123" passt auf alle Nummern, die nicht irgendwo 123 enthalten.
  • Es gibt eine neue Aktion, um Nachrichten an einen VDR (http://www.cadsoft.de/vdr/) zu senden: "vdr IP [Nachricht]"
  • Alle Regeln werden nun parallel abgearbeitet; das bedeutet, die Aktion in Regel fünf muss nicht mehr warten, bis Aktionen 1 bis 4 fertig sind. Das hat das Potential zu einer schnelleren Reaktion bei einem Anruf.
  • Eigene Aktionen können als Shell-Funktionen in einer oder mehreren Dateien /tmp/flash/callmonitor/actions.d/*.sh abgelegt werden. (Es können so auch Standard-Funktionen überschrieben werden, z.B. default_message())
0.1.1: Minimale interne Anpassung an ds-0.1rc4; das Callmonitor-Paket ist jetzt beim ds-mod mit dabei
0.2:
  • phonebook: 49er-Rufnummern (ohne 00, länger als 10 Zeichen) werden erkannt
  • mail_missed_call: Bei verpassten Anrufen eine Mail schicken (nach einer Idee von fritzchen; danke!)
    • Die Funktion mail_missed_call verschickt eine E-Mail mit Hilfe der Daten, die für den Push-Service eingerichtet sind (falls man nicht beim Aufruf etwas anderes befiehlt (mailer-Optionen)); der Push-Service selbst kann ruhig ausgeschaltet bleiben, wichtig sind die Einstellungen für Adressen, Mailserver & Co. Beispiele zum Einsatz in Listeners:
      Code:
      mail_missed_call
      mail_missed_call -t [email][email protected][/email]
      mail_missed_call -s "Oh, oh ... ($SOURCE)"
    • mail_missed_call ruft 60 Sekunden nach dem Eintreffen des Anrufs die CSV-Anrufliste aus dem Webinterface ab (das Passwort besorgt es sich ggf. selbst; man muss es nicht nochmal einstellen) und muss dann ein bisschen raten, um den passenden Anruf zu finden (im Moment: letzter Anruf mit der genau passenden Quellrufnummer, falls dieser von der Zeit her ungefähr passt (+- 1,5 Minuten)). Hier ist euer Feedback, ob es funktioniert oder wann nicht, also besonders gefragt.
    • Zur Anpassung der Mails: siehe mail_call_subject und mail_call_body in missed-call.sh (zum Überschreiben am besten /tmp/flash/callmonitor/actions.d/ verwenden; siehe oben).
  • mail: Skript, um Mails bei Mailserverfehlern zwischenzuspeichern und erneut zu schicken (alle Parameter und Attachments werden gepackt in /var/spool/mail/ abgelegt).
    • wird von der Aktion mail_missed_call verwendet
    • ihr solltet regelmäßig (mit cron) ein "mail process" ausführen, um evtl. wartende Mail zu versenden
    • (mail gehört streng genommen nicht unbedingt zum Callmonitor, weil auch andere Dienste es brauchen könnten; vielleicht wird in Zukunft mal ein eigenes Paket daraus)
  • callmonitor: MSISDN und CALLER sind ab sofort leer, wenn keine Information übertragen/gefunden wurde. Für alternative Texte in den Benachrichtigungen können die Listener sorgen
  • callmonitor: Logging ins Syslog (hauptsächlich im Debug-Modus; sonst nur Infos über erkannte Anrufe)
0.3: Viele Anregungen aus diesem Thread aufgenommen
  • phonebook: Name des Angerufenen steht zur Verfügung (vor allem für SIP0 bis SIP9) (Danke an dsl123 für die Idee); man kann die Zuordnung zu Namen im Telefonbuch (Callers) vornehmen, entweder direkt für SIP0 bis SIP9 oder für Adressen der Form "[email protected]" (das zweite hat den Vorteil, dass man im Telefonbuch nichts anpassen muss, wenn man seine SIP-Accounts in anderer Reihenfolge einträgt). Beim Start werden Kurznamen für alle Accounts generiert und als Vorgabe in die Callers eingetragen (Danke an fritzchen).
  • callmonitor: Die Schnittstelle des Callmonitors zu den Aktionen hat sich geändert: Es stehen jetzt folgende Umgebungsvariablen zur Verfügung:
    • SOURCE (früher MSISDN): Quellrufnummer
    • SOURCE_NAME (früher CALLER): Name zur Quellrufnummer
    • DEST (früher CALLED): Zielrufnummer
    • DEST_NAME (neu): Name zur Zielrufnummer
    • NT (neu): Anruf vom NT? (true/false)
    Die alten Variablen MSISDN, CALLER und CALLED sind momentan noch zusätzlich vorhanden, können aber in einer der nächsten Versionen des Callmonitors verschwinden.
  • phonebook: Änderung der Suchstrategie: Erst Nummer unverändert im lokalen Telefonbuch (Callers) nachschlagen, dann normalisieren (evtl. Ortsvorwahl davor; SIP[0-9] wird zu [email protected]) und noch einmal lokal probieren. Dann erst bei dasoertliche.de probieren.
  • telefon: Wenn telefon nicht (auch) auf localhost lauscht, kann er von der Box selbst nicht erreicht werden! (z.B. vom Webinterface ISDN-Endgeräte)); deswegen im Webinterface Vereinfachung auf "externer Zugriff ja/nein" (Danke an carlo65)
  • phonebook: Bei ausgehenden Anrufen (vom NT) wird für die angerufene Nummer ggf. eine Anfrage bei dasoertliche.de durchgeführt, nicht für die eigene (Danke an tzhs)
0.4: Zerlegung in zwei Pakete: callmonitor und telefon
  • Ich habe ein telefon-Paket vom Callmonitor abgespalten: Es ermöglicht viele parallele Leser der telefon-Ausgabe gleichzeitig.
  • Es müssen die Pakete callmonitor und telefon installiert werden.
  • Kurzanleitung, falls ihr einen zusätzlichen Leser habt:
    1. Erzeugt mit mkfifo eine Fifo (Named Pipe) namens $FIFO (irgendein Name)
    2. Startet euren Leser und lasst ihn aus $FIFO lesen (er blockiert dann zunächst).
    3. Ruft "telfifo enable $FIFO" auf, um eure Fifo zu registrieren und zu aktivieren (telefon wird automatisch neugestartet, seine Ausgabe dann (via "tee") in alle registrierten Fifos geschrieben).
    4. Sorgt dafür, dass euer Leser ständig aus der Fifo liest (auch bei EOF solltet ihr die Fifo wieder neu öffnen und weiterlesen; das passiert jedes Mal, wenn telefon neugestartet wird), sonst blockieren irgendwann alle Leser.
    5. Wenn ihr euren Leser beenden wollt: Erst mit "telfifo disable $FIFO" die Fifo abschalten, erst dann mit dem Lesen aufhören. ("telfifo list" zeigt alle registrierten Leser an und ist zum Debugging gedacht.)
0.5
  • callmonitor.cgi: Debug-Modus über Web-Oberfläche einstellbar
  • Makefile: Neue Paket-Konvention für ds-0.2 (./root, ./docs)
  • dboxpopup, dboxmessage: Standardnachricht in UTF-8 mit Zeilenwechseln statt Kommas (Dank an IngoB)
  • phonebook: Rückwärtssuche ohne Caching möglich (Dank an mode)
  • aint.cgi: Wartungsseite zum Aufräumen des Telefonbuchs
0.6
  • callmonitor: Auch Fritz!Box 7170 wird unterstützt (leichte Änderung an den telefon-Ausgaben); Dank an SatBandit.
  • messages.sh: dreammessage ist über die Umgebungsvariablen DREAM_TIMEOUT, DREAM_CAPTION und DREAM_ICON weiter parametrisierbar
  • [experimentell] callmonitor: "E:" als Präfix beim Quellmuster passt nur beim Ende eines Anrufs; das ist nützlich für das Ausführen von Aktionen per Telefoncode (auch wenn inkrementell gewählt!). Achtung: Keine Nummern mit unerwünschten Nebenwirkungen verwenden. (Die Unterscheidung NT/nicht NT ist nicht möglich.) Beispiel:
    Code:
    E:^  ^5\*$  ether-wake ...
0.7: Performance ist nicht alles, aber ohne Performance ist alles nichts.
  • phonebook: Einträge im Telefonbuch endeten fälschlicherweise immer mit einem Semikolon; die Rückwärtssuche ist an die Änderungen bei dasoertliche.de angepasst (Dank an meimi039); die Adresse bei der Rückwärtssuche steht jetzt in Klammern
  • Performance-Optimierungen (leider zu Lasten der Lesbarkeit des Codes): vom erkanntem Anruf bis zur Regelausführung (getestet bei einer einfachen Regel und ohne Rückwärtssuche) nun in ca. einer statt vorher in 5 Sekunden (Dank fürs Drängeln an xenon80 :))
0.8:
  • callmonitor: Effizienteres Logging
  • Alten Kompatibilitätslink /usr/lib/callmonitor/bin/telefon entfernt.
  • dboxlcd(): Meldungen auf dem LCD der Dbox anzeigen; DBOX_TIMEOUT standardmäßig 10 Sekunden
  • xboxmessage(): Zweizeilige Meldung (+ Titel) auf der X-Box; Titel anpassbar durch XBOX_CAPTION
  • phonebook: als Bibliothek in den Callmonitor laden
1.0 (und folgende): [thread=100706]In einem neuen Thread.[/thread]

[size=+1]Download[/size]

Achtung: Bitte beachtet die Installationshinweise oben: In vielen Fällen übernimmt der ds-mod schon das Herunterladen und Installieren des Callmonitor-Pakets.


Download des Callmonitors bei BerliOS

[hr]---[/hr]
Ich würde mich über Testberichte jeder Art (Fehler, Verbesserungsvorschläge, ...) in diesem Thread freuen.

Viel Spaß mit dem Callmonitor,

Andreas
 

Anhänge

Zuletzt bearbeitet:

CyberKing2k

Aktives Mitglied
Mitglied seit
5 Jun 2004
Beiträge
1,037
Punkte für Reaktionen
0
Punkte
36
von wo stammen die Screenshuts? webinterface auf der FBF?
Die sehen echt cool aus.
 

dsl123

Mitglied
Mitglied seit
29 Apr 2005
Beiträge
203
Punkte für Reaktionen
0
Punkte
0
wenn ich auf Listeners bearbeiten gehe, bekomme ich den Fehler: "Fehler: Konfiguration in der aktuellen Sicherheitsstufe nicht definiert!"
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
dsl123 schrieb:
wenn ich auf Listeners bearbeiten gehe, bekomme ich den Fehler: "Fehler: Konfiguration in der aktuellen Sicherheitsstufe nicht definiert!"
Hi, das hat seine Richtigkeit. Der ds-mod kennt momentan drei Sicherheitsstufen (0 bis 2, je nachdem, was über das Web geändert werden kann) und Listeners kann in der Standardeinstellung (1) nicht über das Webinterface bearbeitet werden, weil man darüber ja beliebigen Code auf der Box ausführen kann. Die Listeners kann man wie z.B. die Crontab nur in Sicherheitsstufe 0 bearbeiten.
Entweder kannst du die Sicherheit runtersetzen ("echo 0 > /tmp/flash/security"), wenn das für dich in Frage kommt, oder direkt auf der Box /tmp/flash/callmonitor/listeners bearbeiten.

Viele Grüße.
 

dsl123

Mitglied
Mitglied seit
29 Apr 2005
Beiträge
203
Punkte für Reaktionen
0
Punkte
0
Danke @buehmann
 

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
buehmann schrieb:
echo 0 > /tmp/flash/security
Ich hätte das Feature vielleicht erst mal dokumentieren sollen :) Hol ich morgen nach.

Mfg,
danisahne
 

dsl123

Mitglied
Mitglied seit
29 Apr 2005
Beiträge
203
Punkte für Reaktionen
0
Punkte
0
Hallo buehmann,
bei abkommenden Anrufe zu einer 1&1 Nummer, ist die MSISDN in der Form 49511xxxxxx. Der Callmonitor behandelt sie als lokale Nummer und umwandelt sie in 051149511xxxxxx.
Könntest du das ändern und Nummern mit 49 am Anfang anders umwandeln!?
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
dsl123 schrieb:
bei abkommenden Anrufe zu einer 1&1 Nummer
Was genau ist ein "abkommender Anruf"? "ankommend" oder "abgehend" würden für mich Sinn ergeben. Also rein oder raus? :)

ist die MSISDN in der Form 49511xxxxxx. Der Callmonitor behandelt sie als lokale Nummer und umwandelt sie in 051149511xxxxxx.
Könntest du das ändern und Nummern mit 49 am Anfang anders umwandeln!?
Hmm, klar könnte ich das. Ich weiß nur noch nicht genau, wie das am besten allgemeingültig funktionieren sollte. (Was ist, wenn dann die 49237 aus dem Ortsnetz anruft? Oder kommen bei der 1&1-Nummer dann alle Nummern mit 49+Ortsvorwahl an? Aber was ist dann bei der Mischung verschiedener Anbieter?) Wenn jemand Ideen hat, wie man das am konfigurieren können sollte, nur zu.
 

fritzchen

Aktives Mitglied
Mitglied seit
29 Dez 2004
Beiträge
813
Punkte für Reaktionen
0
Punkte
0
ich habe es so gelöst, dass die str-Länge über fern oder nah entscheidet.

Da fällt mir aber gerade ein, dass CLIP doch immer mit Ortsvorahl gesendet wird. Ds Problem sind also immer nur die abgehenden Rufe, aber die behandelt der Callmonitor doch eh nicht... Oder doch? Habe leider kein ISDN, daher kann ich den NT-Modus nicht nachvolziehen.

edit:
Jfritz wandelt 49179... auch in 0179... um, also kann man es ja vielleicht davon kopieren
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
fritzchen schrieb:
Da fällt mir aber gerade ein, dass CLIP doch immer mit Ortsvorahl gesendet wird.
Tatsächlich? Ich meine mich zu erinnern, dass bei mir auch schon "kurze" Nummern aus demselben Ortsnetz angekommen sind.

nur die abgehenden Rufe, aber die behandelt der Callmonitor doch eh nicht... Oder doch?
Nur, wenn die Nummer als Ganzes bei der Fritzbox ankommt. Das ist bei Nicht-ISDN wahrscheinlich unmöglich (oder?).

Jfritz wandelt 49179... auch in 0179... um, also kann man es ja vielleicht davon kopieren
Danke für den Tipp, vielleicht schaue ich mir das mal an.

Viele Grüße, buehmann.
 

fritzchen

Aktives Mitglied
Mitglied seit
29 Dez 2004
Beiträge
813
Punkte für Reaktionen
0
Punkte
0
buehmann schrieb:
Tatsächlich? Ich meine mich zu erinnern, dass bei mir auch schon "kurze" Nummern aus demselben Ortsnetz angekommen sind.
Kann es sein, dass Dein Telefon die Vorwahl weggenommen hat? Hatte auch mal so eins, in dem man die Vorwahl eingeben konnte...
 

Novize

Moderator
Teammitglied
Mitglied seit
17 Aug 2004
Beiträge
20,824
Punkte für Reaktionen
59
Punkte
48
buehmann schrieb:
fritzchen schrieb:
Da fällt mir aber gerade ein, dass CLIP doch immer mit Ortsvorahl gesendet wird.
Tatsächlich? Ich meine mich zu erinnern, dass bei mir auch schon "kurze" Nummern aus demselben Ortsnetz angekommen sind.
Das war bei der Fritz bei mir der Fall, als ich da direkt analoge Fons angeschlossen hatte. Da kamen VoIP-Gespräche aus dem eigenen Ortsnetz ohne Vorwahl an, Ortsgespräche aus dem Festnetz aber mit Vorwahl...
Jetzt habe ich die 7050 per ISDN vor der TK-Anlage, und da kann ich das Phänomen nicht mehr beobachten.
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
fritzchen schrieb:
ich habe es so gelöst, dass die str-Länge über fern oder nah entscheidet.
So ähnlich macht es jfritz auch:
Code:
		if (number.startsWith(countryCode) && number.length() > 10) {
			// International numbers without countryPrefix
			// (some VOIP numbers) }
			return "+" + number;
		}
Mal sehen, vielleicht übernehme ich eine ähnliche Heuristik in den Callmonitor.

Kann es sein, dass Dein Telefon die Vorwahl weggenommen hat? Hatte auch mal so eins, in dem man die Vorwahl eingeben konnte...
Nein, in meinem ISDN-Telefon kann ich keine Vorwahl einstellen.

@Novize: Zu eingehenden Festnetzanrufen kann ich leider nichts sagen, weil ich kein Festnetz mehr habe. Ich habe eine lokale Nummer sicher bei einem eingehenden VoIP-Anruf aus demselben Ortsnetz gesehen (sofern man da von Ortsnetz sprechen kann; das ist wahrscheinlich auch das Problem, so ein Anruf kommt ja auch ohne Rufnummern (im herkömmlichen Sinn) auf beiden Seiten aus; und bei der Vergabe von SIP-Adressen (in denen oft ein Teil der Nummer vorkommt) hat ja jeder Anbieter seine eigene Konvention.)
 

fritzchen

Aktives Mitglied
Mitglied seit
29 Dez 2004
Beiträge
813
Punkte für Reaktionen
0
Punkte
0
Ja, perfekt kann man es wohl kaum machen. Von Sipgate zu Sipgate kommt auch nur die benutzerknnung, und nicht die Rufnummer. So zum Beispiel ;)
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
fritzchen schrieb:
Von Sipgate zu Sipgate kommt auch nur die benutzerknnung, und nicht die Rufnummer.
Richtig, genau der Fall war es: Und da bei Sipgate die Benutzerkennung (in allen Fällen, die ich kenne) der Rufnummer im lokalen Ortsnetz entspricht und da ich und mein Anrufer beide ihre Sipgate-Rufnummer im selben Ort haben, sah es so aus, als würde nur die lokale Rufnummer angezeigt. Hach, schöne neue Welt ... :eek:)
 

ts201

Mitglied
Mitglied seit
24 Apr 2005
Beiträge
397
Punkte für Reaktionen
0
Punkte
0
Nutze nun rc4 und die den aktuellen JFritz.
Was muss ich nun unter callmonitor eingeben, damit es funktioniert ?

Ich möchte einfach nur, dass mir ein Anrufer auf meinen XP rechner angezeigt wird, wenn jemand anruft.

Wie mache ich dies am besten und einfachsten ?
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
ts201 schrieb:
Nutze nun rc4 und die den aktuellen JFritz.
Was muss ich nun unter callmonitor eingeben, damit es funktioniert?
Hast du den Abschnitt "Anrufmonitor" im Handbuch von JFritz schon gelesen (bei Version 0.4.5 Abschnitt 10.5)? Die einzige Variante, die du von dort im Zusammenhang mit dem Callmonitor aus ds-0.1rc4 realisieren könntest, ist der "YAC-Anrufmonitor" (10.5.4). Dazu müsstest du in den Listeners so etwas wie das hier eintragen (wenn alle Anrufe von außen signalisiert werden sollen):
Code:
^   ^   yac <IP/Name deines Rechners>
(den <...>-Teil natürlich entsprechend ausfüllen).

Viel Erfolg,
buehmann.
 

ts201

Mitglied
Mitglied seit
24 Apr 2005
Beiträge
397
Punkte für Reaktionen
0
Punkte
0
Danke, würde ich gern mal testen, allerdings habe ich jfritz eben mal insatlliert. Der erste start geht auch, nur wenn ich neu starte komme ich nicht mehr in die einstellungen. Wenn ich auf "einstellungen" klicke, passiert nichts mehr. woran kann dies liegen ?
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
ts201 schrieb:
[jfritz] Wenn ich auf "einstellungen" klicke, passiert nichts mehr. woran kann dies liegen ?
Sorry, da kann ich dir nicht helfen; ich habe JFritz noch nicht benutzt. Lies oder frag das am besten an der passenden Stelle nach; hier geht's nur um den Callmonitor.
 
Status
Für weitere Antworten geschlossen.

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Neueste Beiträge

Statistik des Forums

Themen
231,867
Beiträge
2,016,149
Mitglieder
348,960
Neuestes Mitglied
Karbi1965