#!/bin/bash
#
# Author: Andre Pawlowski <sqall@h4des.org>
# Licensed under the GNU Public License, version 2.


#ersteinmal wird ueberprueft, ob es sich beim
#ausfuehrenden Nuzter um root handelt
#da nur er das Skript benutzen kann
NUTZER=`whoami`

if [ $NUTZER != "root" ]; then
   echo "Skript funktioniert nur als root!"
   exit 1
fi
clear

#die Endlosschleife laesst die Eingabe immer wiederholen
while [ true ]
do

   echo "########################################################"
   echo "Bitte Asterisk Funktion auswaehlen:"
   echo "1 Normaler zeitgesteuerter Dialplan"
   echo "2 Erreichbar sein (normaler AB Betrieb)"
   echo "3 Nicht erreichbar sein (sofortiger AB Betrieb)"
   echo "4 Umleitung nach xyz"

   #die Eingabe wird eingelesen
   read -n 1 AUSFUEHREN

   #das aktuelle Datum wird fuer die Mail ermittelt
   DATUM=`date`

   #die Eingabe wird in einer Case Anweisung bearbeitet
   case $AUSFUEHREN in
      #Asterisk wird mit normalen Dialplan reloadet
      #piept nach dem Reload um zu zeigen, was ausgefuehrt wurde
      1)
         if [ -f /etc/asterisk/extensions.conf.normal ]; then
            cp /etc/asterisk/extensions.conf.normal /etc/asterisk/extensions.conf
            asterisk -rx reload
	    echo "$DATUM dialplan changed to: \"1 Normaler zeitgesteuerter Dialplan\"" | mailx -a "From: asterisk@domain.de" -s "dialplan changed" root
	    beep -r $AUSFUEHREN -l 50
         else
            #falls die Datei nicht gefunden worden ist, wird ein Fehler ausgegeben
            #und das Programm beendet
            echo "Datei: /etc/asterisk/extensions.conf.normal existiert nicht!"
            exit 1
         fi
      ;;
      #Asterisk wird als erreichbar reloadet
      #piept nach dem Reload um zu zeigen, was ausgefuehrt wurde
      2)
         if [ -f /etc/asterisk/extensions.conf.erreichbar ]; then
            cp /etc/asterisk/extensions.conf.erreichbar /etc/asterisk/extensions.conf
	    asterisk -rx reload
	    echo "$DATUM dialplan changed to: \"2 Erreichbar sein (normaler AB Betrieb)\"" | mailx -a "From: asterisk@domain.de" -s "dialplan changed" root
	    beep -r $AUSFUEHREN -l 50
         else
            #falls die Datei nicht gefunden worden ist, wird ein Fehler ausgegeben
            #und das Programm beendet
            echo "Datei: /etc/asterisk/extensions.conf.erreichbar existiert nicht!"
            exit 1
         fi
      ;;
      #Asterisk wird als nicht erreichbar reloadet
      #piept nach dem Reload um zu zeigen, was ausgefuehrt wurde
      3)
         if [ -f /etc/asterisk/extensions.conf.nichterreichbar ]; then
            cp /etc/asterisk/extensions.conf.nichterreichbar /etc/asterisk/extensions.conf
	    asterisk -rx reload
	    echo "$DATUM dialplan changed to: \"3 Nicht erreichbar sein (sofortiger AB Betrieb)\"" | mailx -a "From: asterisk@domain.de" -s "dialplan changed" root
	    beep -r $AUSFUEHREN -l 50
         else
            #falls die Datei nicht gefunden worden ist, wird ein Fehler ausgegeben
            #und das Programm beendet
            echo "Datei: /etc/asterisk/extensions.conf.nichterreichbar existiert nicht!"
            exit 1
         fi
      ;;
      #Asterisk wird mit Umleitung nach xyz reloadet
      #piept nach dem Reload um zu zeigen, was ausgefuehrt wurde
      4)
         if [ -f /etc/asterisk/extensions.conf.umleitung ]; then
            cp /etc/asterisk/extensions.conf.umleitung /etc/asterisk/extensions.conf
            asterisk -rx reload
	    echo "$DATUM dialplan changed to: \"4 Umleitung nach xyz\"" | mailx -a "From: asterisk@domain.de" -s "dialplan changed" root
            beep -r $AUSFUEHREN -l 50
         else
            #falls die Datei nicht gefunden worden ist, wird ein Fehler ausgegeben
            #und das Programm beendet
            echo "Datei: /etc/asterisk/extensions.conf.umleitung existiert nicht!"
            exit 1
         fi
      ;;
      #im Fall einer Falscheingabe wird der Fehler ausgegeben
      #und der Speaker piept 2 mal, bei richtigen eingaben
      #piept der Speaker nur 1 mal
      #dadurch benoetigt man keinen Bildschirm
      *)
         beep -f 100 -l 500
         echo "Falsche Eingabe, nochmal versuchen!"
      ;;
   esac

done

exit 0

