CallBack-Script 0.1

Spooks

Neuer User
Mitglied seit
6 Jun 2005
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
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.


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
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.