- Mitglied seit
- 11 Jun 2005
- Beiträge
- 1,810
- Punkte für Reaktionen
- 0
- Punkte
- 36
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:
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)
0.2:
[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
---Ich würde mich über Testberichte jeder Art (Fehler, Verbesserungsvorschläge, ...) in diesem Thread freuen.
Viel Spaß mit dem Callmonitor,
Andreas
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.
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.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).
- 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:
- 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)
- 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 "username@registrar" (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)
- phonebook: Änderung der Suchstrategie: Erst Nummer unverändert im lokalen Telefonbuch (Callers) nachschlagen, dann normalisieren (evtl. Ortsvorwahl davor; SIP[0-9] wird zu username@registrar) 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)
- 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:
- Erzeugt mit mkfifo eine Fifo (Named Pipe) namens $FIFO (irgendein Name)
- Startet euren Leser und lasst ihn aus $FIFO lesen (er blockiert dann zunächst).
- 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).
- 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.
- 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.)
- 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
- 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 ...
- 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 )
- 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
[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
---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: