HTTP-Requests (getmsg)
Die Funktion getmsg sendet eine Benachrichtigung, indem sie diese per HTTP GET an einen Webserver schickt. Es ist möglich, die URL (nur Pfad + Query-String, also den Teil hinter dem Host-Namen) mit printf-Templates] anzugeben. Im einfachsten Fall bedeutet dies, dass die Stelle in der URL, an der die Nachricht eingesetzt werden soll, mit %s markiert wird. getmsg sorgt selbst für die richtige Kodierung der Nachrichten (URL Encoding).
Syntax:
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 -d, --default=CODE default for first parameter (eval'ed later) -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 authorization --help show this help
Die folgenden Funktionen basieren auf getmsg und unterstützen daher dieselben Optionen. Passend für den entsprechenden Empfänger sind URL-Template (-t), die Standard-Nachricht (-d) und der Port (-p) schon vorbelegt.
Beispiel:
*:* ^ ^ getmsg 192.168.0.111 -p 222 -t "/home/phone?event=%s&id=%s&time=%s&source=%s&source_name=%s&destination=%s&destination_name=%s&extension=%s&duration=%s&provider=%s" "${EVENT}" "${ID}" "${TIMESTAMP}" "${SOURCE}" "${SOURCE_NAME}" "${DEST}" "${DEST_NAME}" "${EXT}" "${DURATION}" "${PROVIDER}"
Das obere Beispiel bewirkt einen GET-Aufruf an http://192.168.0.111:222/home/phone mit allen relevanten Daten im Query-String.