#!/bin/bash
#
# send_message
#
# Meldung verschicken
#
# Aufruf: send_message <Server | Eventunit> <section teststep detail>
#                              1                       2
#             <domain / server / section / teststep / detail>
#                                 3
#             <sin / sernum / fqdn \n IP Location Contact>
#                                 4
#             <zielart> <zieladr> <level> <date time>
#                 5         6        7        8
#             <Kurztext> <Meldungstext> <Msg-ID> <serverid> <uls–url> <subject>
#                 9            10          11         12        13        14
#             <p1> <p2> <p3> <p4> <p5> <attachments> <ticketlevel> <domainid> <class>
#              15   16   17   18   19       20            21          22        23
#####################################################################################
#
cd $(dirname $(readlink -f $0))
#
export LANG=en_US.UTF-8
#
###echo "$0, 1: $1, 2: $2, 3: $3, 4: $4, 5: $5, 6: $6, 7: $7, 8: $8, 9: $9, 10: ${10}, 11: ${11}."
#
if [[ -f /etc/ulsserver.conf ]]
 then
  . /etc/ulsserver.conf
fi
#
# MAILDUPFLAG auf 1, wenn zusaetzlich zu jedem Ticket eine Mail an MAILDUPADR
# gesendet werden soll
#
#
SERVER="$1"
SECTSTDET="$2"
DOMSRVSECTSTDET="$3"
SRVINFO="$4"
ZIELART="$5"
ZIELADR="$6"
ULSLEVEL="$7"
#
if [[ "$ULSLEVEL" = "ERROR" ]]
 then
  LEVEL=${ERRORNAME:-ERROR}
elif [[ "$ULSLEVEL" = "WARN" ]]
 then
  LEVEL=${WARNNAME:-WARN}
elif [[ "$ULSLEVEL" = "INFO" ]]
 then
  LEVEL=${INFONAME:-INFO}
elif [[ "$ULSLEVEL" = "PREINFO" ]]
 then
  LEVEL=${PREINFONAME:-PREINFO}
else
  LEVEL=${OKNAME:-OK}
fi
DATE="$8"
SHORTTEXT="$9"
MSGTEXT="${10}"
LINE1=$(head -1 <<<"$SERVER - $MSGTEXT" | cut -c -120)
MELDID="${11}"
SRVID="${12}"
DOMID="${22}"
CLASS="${23}"
#
ULSURL="${13}"
#
SUBJECT="$(echo ${14})"
P1="${15}"
P2="${16}"
P3="${17}"
P4="${18}"
P5="${19}"
#
if [[ "$MAILDUPFLAG" = "1" ]]
 then
  echo "ULS generierte eine Meldung an $ZIELART:$ZIELADR mit Text: $LEVEL: $DOMSRVSECTSTDET: $MSGTEXT, ULSURL: $ULSURL" | send_mail.sh "$MAILDUPADR" "ULS Meldung an $ZIELART:$ZIELADR"
fi
#
export PATH=../wwwbin:$PATH
#
if [[ ! -z "$ULSTESTMELDFILE" ]]
 then
  echo "$DATE
Server: $SERVER
Serverinfo: $SRVINFO
Domain / Server / Section / Teststep / Detail: $DOMSRVSECTSTDET
Desttype: $ZIELART
Dest: $ZIELADR
Level: $LEVEL
Prio: ${21:-$ULSLEVEL}
Expression: $SHORTTEXT
Message: $MSGTEXT
Msgdid: $MELDID
Subject: $SUBJECT
Url: $ULSURL
Att: ${20}
Domid: $DOMID
Class: $CLASS
" >>"$ULSTESTMELDFILE"
  exit
fi
#
case $ZIELART in
  Mail*) { [[ -z "$SUBJECT" ]] && echo "$LEVEL: $DOMSRVSECTSTDET:"
           echo "$MSGTEXT"
         } | send_mail.sh "$ZIELADR" "${SUBJECT:-$LEVEL: $DOMSRVSECTSTDET: $SHORTTEXT}" "${20}"
         ;;
  Signal) NUMBER=${ZIELADR%:*}
          KEY=${ZIELADR#*:}
          httpget -c -s -S api.callmebot.com "/signal/send.php?phone=$NUMBER&apikey=$KEY&text=$(code_http "$MSGTEXT")" &>/tmp/signalmsg.log
         ;;
  SMS)   for i in $(echo $ZIELADR | sed 's/,/ /g')
          do
           echo "$MSGTEXT" | mail -s "${SUBJECT:-$LEVEL: $DOMSRVSECTSTDET: $SHORTTEXT}" $i
         done
         ;;
  Pager) KT=$(echo $LEVEL: DOMSRVSECTSTDET: $MSGTEXT | cut -c -79)
         for i in $(echo $ZIELADR | sed 's/,/ /g')
          do
           echo '' | mail -s "$KT" $i
         done
         ;;
  D-MSG) ./send_teamwire.sh "$ZIELADR" "${21:-$ULSLEVEL}" "$MSGTEXT"
         ;;
esac
