Wiki:packages/callmonitor/actions/getmsg

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.