Ich habe mal ein wenig rumprobiert um mit dem Callmanager aus dem ds-mod ein Callback abhänging von der Zeit durchzuführen.
Ich habe Callback mit einer ABox realisiert, das ganze sollte aber auch mit anderen Lösungen (Loopbackkabel) nutzbar sein.
Meine grundsätzlichen Überlegungen hatte ich hier begonnen:
http://www.ip-phone-forum.de/showpost.php?p=768496&postcount=380
Meine erste Code - Idee hat sich dann folgendermaßen dargestellt. Ich muss dazu sagen, dass ich noch nie irgendwelche Bash-Scripte geschrieben habe, wahrscheinlich gibt es "elegantere" Lösungen.
Vielleicht hat ja jemand von euch Lust und Zeit hier noch ein wenig dran rum zu feilen oder eigene Ideen einzubringen.
ToDo Liste:
- Wählstring muss numerisch oder eine SIP Adresse sein (Überprüfung einbauen)
- SIP Adressen können angewählt werden (Geht das mit dem Callmonitor überhaupt)
- Bei Arbeitszeiten die nicht auf die volle Stunde enden sollten auch die Minuten ausgewertet werden.
- Addon evtl. mit Konfiguration via Web Interface
Ich habe Callback mit einer ABox realisiert, das ganze sollte aber auch mit anderen Lösungen (Loopbackkabel) nutzbar sein.
Meine grundsätzlichen Überlegungen hatte ich hier begonnen:
http://www.ip-phone-forum.de/showpost.php?p=768496&postcount=380
Meine erste Code - Idee hat sich dann folgendermaßen dargestellt. Ich muss dazu sagen, dass ich noch nie irgendwelche Bash-Scripte geschrieben habe, wahrscheinlich gibt es "elegantere" Lösungen.
Code:
#!/bin/bash
# Skript: callback.sh
# Zweck: Steuerung der Callback-Eigenschaften abhängig vom Wochentag und der Zeit
# Lizenz: GPL
# Globale Variablen
SCRIPTNAME=$(basename $0 .sh)
EXIT_SUCCESS=0
EXIT_FAILURE=1
EXIT_ERROR=2
# Variablen definieren
PHONE_HOME="024XXXXXX"
PHONE_OFFICE="024XXXXXX"
INTERN_PHONE="1" # Interne Nebenstelle
#Holt sich den Wochentag und die Stunde aus dem date Befehl
WEEKDAY=$(date +%a)
HOUR=$(date +%k)
# Funktionen
# Funktion usage()
# Wie wird die Funktion benutzt
usage () {
echo "Usage: $SCRIPTNAME [ -h | --help ] [ dialstring ]"
}
# Funktion destination()
# Rueckgabe 1 wenn Anruf innerhalb der Buerozeiten
# 0 wenn Anruf ausserhalb der Buerozeiten
destination () {
case $WEEKDAY in
Mon|Tue|Wed|Thu)
# Buerozeiten Montag - Donnerstag
if [ $HOUR -ge 7 ] && [ $HOUR -le 16 ] ; then
return 1
else
return 0
fi
;;
Fri)
# Buerozeit Freitag
if [ $HOUR -ge 7 ] && [ $HOUR -le 12 ] ; then
return 1
else
return 0
fi
;;
Sat|Sun)
# Samstags und Sonntags wird nicht gearbeitet ;-)
return 0
;;
esac
}
#
# Hier beginnt das eigentliche Script
#
# Ist die Hilfe angefordert?
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
usage && exit $EXIT_FAILURE
fi
# Waehlstring wurde uebergeben, also waehlen wir den....
if [ "$1" ]; then
echo "dial $1 $INTERN_PHONE"
callaction dial $1 $INTERN_PHONE
exit $EXIT_SUCCESS
fi
# Kein Waehlstring, also hinterlegte Nummern nutzen.
destination
# Rueckgabewert der Funktion destination() wird ausgewertet
case $? in
0) callaction dial $PHONE_HOME $INTERN_PHONE
exit $EXIT_SUCCESS
;;
1) callaction dial $PHONE_OFFICE $INTERN_PHONE
exit $EXIT_SUCCESS
;;
esac
# Wenn das Script bis hier her kommt ist was schief gelaufen
exit $EXIT_FAILURE
Vielleicht hat ja jemand von euch Lust und Zeit hier noch ein wenig dran rum zu feilen oder eigene Ideen einzubringen.
ToDo Liste:
- Wählstring muss numerisch oder eine SIP Adresse sein (Überprüfung einbauen)
- SIP Adressen können angewählt werden (Geht das mit dem Callmonitor überhaupt)
- Bei Arbeitszeiten die nicht auf die volle Stunde enden sollten auch die Minuten ausgewertet werden.
- Addon evtl. mit Konfiguration via Web Interface