Hallo zusammen,
der Callmonitor aus mod-0.57 war mir zu unflexibel; deswegen habe ich ihn auf meine Bedürfnisse angepasst: Das Ergebnis gibt es unten im Anhang. Vielleicht kann noch jemand von euch es gebrauchen.
Weil ich von der Mod-Reihe m4.* auf den ds-mod umgestiegen bin (und weil dieser Thread eh schon viel zu lang ist :-)), geht die Entwicklung als Paket für den ds-mod auf einer eigenen Seite weiter.
Was neu ist:
Die Funktionen dboxpopup, dboxmessage, dreammessage und yac habe ich mangels Ausrüstung nur grob getestet (sie benutzen jetzt "getmsg"). Es wäre toll, wenn jemand von euch Feedback geben könnte, ob sie noch funktionieren. (Gilt natürlich auch für den Rest.)
- Die Konfigurationsdatei callmonitors.listeners ähnelt jetzt der von cron:
- Jede Aktion ist abhängig von zwei Mustern (extended regular expressions), die auf Quell- und Ziel-Rufnummer passen müssen. Damit lassen sich z.B. bestimmte Anrufer anders (oder auch woanders) signalisieren.
Code:#Quelle Ziel Aktion ^01239876$ ^ dboxpopup dbox1 ^(0162|089) ^SIP1$ dboxmessage dbox2- Bei der 7050 ist auch ein ausgehender Anruf (oder nur das Hörer-Abnehmen) mit ISDN-Telefonen ein eingehender Anruf ("IncomingCall from NT:"); diese Anrufe werden standardmäßig ignoriert, können aber über "NT:" (nur solche) oder "*:" (alle Anrufe) explizit überprüft werden.
Code:NT:^123$ ^ foo *:^456 ^ bar- Als Aktionen sind nicht nur einzelne Wörter (Funktionsnamen) erlaubt, sondern beliebige Shell-Kommandos mit Argumenten, Pipes, Umleitungen, Variablenersetzungen etc. (MSISDN, CALLER und CALLED stehen als Umgebungsvariablen zur Verfügung):
Code:^ ^ dreammessage --port=8080 --password="sesame" "$(date) Anruf von $MSISDN" ^ ^ echo "$CALLER -> $CALLED" >> /var/tmp/calls- Bei Nachrichten an Dbox, Dreambox und Co. können Benutzername und Passwort angegeben werden (Wunsch von Erkan).
- Das Verschicken von Nachrichten per GET-Request macht ein recht allgemeines "getmsg", das sich um den Zusammenbau der Nachricht inklusive URL-Kodierung kümmert. Das ersetzt die verschieden ownmessage-Funktionen und OWNGET.
Code:# Usage: getmsg [OPTION]... <HOST> <url-template> [<message>]... # getmsg [OPTION]... -t <url-template> <host> [<message>]... # Send a message in a simple HTTP GET request. # # -t, --template=FORMAT use this printf-style template to build the URL, # all following messages are URL-encoded and filled # into this template # -p, --port=PORT use a special target port (default 80) # -w, --timeout=SECONDS set connect timeout (default 3) # -v, --virtual=VIRT use a different virtual host (default HOST) # -U, --user=USER user for basic authorization # -P, --password=PASS password for basic authorizationCode:^123 ^SIP2$ getmsg myserver '/cgi-bin/mail?subject=%s&body=%s' "Anruf von $MSISDN" "$CALLER" -U ich -P geheim
Viel Spaß damit,
buehmann
Achtung beim Umstieg von alten Versionen des callmonitors:
- Die Aktion "etherwake" als alternative Schreibweise für "etherwakes" gibt es nicht mehr. Sollen also die ETHERWAKES-Zeilen in der debug.cfg ausgewertet werden: auf das "s" achten.


Zitieren
