ein Artikel von Philipp Hoffmann
Was ist ein telefonischer Verteilungsdienst?
Ein telefonischer Verteilungsdienst ist eine Telefon Anlage, welche bestimmte Telefonnr. anruft und diesen eine festgelegte Nachricht automatisch vorspielt.
Wofür kann ein telefonischer Verteilungsdienst an Schulen genutzt werden?
Der telefonische Verteilungsdienst würde klassische Telefonketten ersetzen. So muss man sich z.B. keine Sorgen machen, ob auch wirklich eine gesamte Klasse die entsprechende Information erhalten hat.
Was benötige ich für den Aufbau eines telefonischen Verteilungsdienstes?
Sie benötigen nichts weiter als
Wieso benötige ich einen Linux Server?
Der Linux Server ersetzt die Telefon Anlage. Sobald Sie diesen (wie in dieser Anleitung beschrieben) eingerichtet haben, können Sie den telefonischen Verteilungsdienst nutzen.
Wie kann der telefonische Verteilungsdienst genutzt werden?
Ein Lehrer oder eine andere berechtigte Person kann den Verteilungsdienst über eine bestimmte Telefonnr. erreichen. Danach wird er als erstes aufgefordert seine PIN einzugeben. Nachdem ist eine Eingabe der Klasse bzw. der Rufnummernliste erforderlich. Zu letzt kann der Benutzer eine Nachricht aufsprechen, welche dann an allen Telefonen der Klasse bzw. der Rufnummernliste vorgespielt wird.
Damit der Linux Server Telefonketten ersetzen kann, muss natürlich eine Anbindung an das Telefonnetz verhanden sein. Es gibt zwei Möglichkeiten:
Ich werde in dieser Anleitung nur erklären, wie sich der Verteilungsdienst mit einem VoIP Anschluss nutzen lässt.
Je nach Linux Distribution kann diese Anleiung von Ihrem System abweichen. In dieser Anleitung wird OpenSUSE 11 von Novell verwendet.
Führen Sie folgende Schritte durch, um den telefonischen Verteilungsdienst zu installieren:
Melden Sie sich auf der Konsole als Administrator an.
Um auf den Server über einen Windows Rechner zuzugreifen, verwenden Sie z.B. den kostenlosen SSH Client PuTTY.
login as: root
Using keyboard-interactive authentication.
Password:
Last login: Fri Feb 6 14:10:35 2009 from 10.100.0.20
Have a lot of fun…
hermes:~ #
Um den Telefon Server (Asterisk) später zu installieren, müssen Sie als erstes den Kompiler gcc über die SuSE Paketverwaltung YaST installieren. Bei Debian können Sie z.B. den Befehl apt-get verwenden.
Desweiteren muss das Programm make installiert werden, um den Kompelierungsvorgang zu automatisieren:
hermes:~ # yast2 -i gcc41 gcc41-ada gcc41-c++ gcc41-fortan gcc41-gij gcc41-java gcc41-locale gcc41-obj-c++ gcc41-objc gcc41-testresults make
Wichtiger Hinweis: Bitte verwenden Sie den Kompiler gcc41. Bei gcc bzw. gcc42 kann es zu Problemen in der Sprachqualität kommen. Wenn Sie gcc41 und gcc42 installiert haben, achten Sie darauf, dass die Verknüpfung /usr/bin/gcc auf /usr/bin/gcc-4.1 zeigt.
Nachdem die Software installiert wurde, prüfen Sie, ob die Befehle gcc und make nun verfügbar sind:
hermes:~ # which gcc
/usr/bin/gcc
hermes:~ # which make
/usr/bin/make
hermes:~ #
Download Sie Asterisk 1.6 von den Seiten des Herstellers Digitum:
hermes:~ # wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.6.0.5.tar.gz
Fertig. Sie können nun mit der Installation von Asterisk beginnen!
Entpacken Sie als erstes das Archiv:
hermes:~# tar -xzvf asterisk-1.6.0.5.tar.gz
Wechseln Sie in das entpackte Verzeichnis:
hermes:~# cd asterisk-1.6.0.5
hermes:~/asterisk-1.6.0.5 #
Konfigurieren Sie Asterisk:
hermes:~/asterisk-1.6.0.5 # ./configure
Kompilieren Sie Asterisk:
hermes:~/asterisk-1.6.0.5 # make
Nachdem Sie einige Minuten gewartet haben, wurde Asterisk für Ihr System kompeliert. Sollte es während dieses Vorgangs zu Fehlermeldungen kommen, überprüfen Sie ggf. ob alle benötigen Pakete installiert sind.
Als nächstes installieren Sie Asterisk:
hermes:~/asterisk-1.6.0.5 # make install
Installieren Sie die Beispieldatein:
hermes:~/asterisk-1.6.0.5 # make samples
Installieren Sie die Start Konfiguration:
hermes:~/asterisk-1.6.0.5 # make config
Das Programm asterisk sollte nun auf Ihrem System verfügbar sein:
hermes:~/asterisk-1.6.0.5 # which asterisk
/usr/sbin/asterisk
Damit der Verteilungsdienst richtig arbeiten kann, müssen Sie PHP installieren:
hermes:~/asterisk-1.6.0.5 # yast2 -i php5
Wechseln Sie in das Asterisk Konfigurationsverzeichnis:
hermes:~/asterisk-1.6.0.5 # cd /etc/asterisk
hermes:/etc/asterisk #
Löschen Sie die Datei extensions.conf:
hermes:/etc/asterisk # rm extensions.conf
Downloaden Sie das Verteilungsdienst Modul:
hermes:/etc/asterisk # wget http://www.hn-systems.com/verteilungsdienst/extensions.conf
Wechseln Sie nach /root und downloaden Sie den Calling-Script:
hermes:/etc/asterisk # cd /root
hermes:~ # wget http://www.hn-systems.com/verteilungsdienst/calling.php.txt
hermes:~ # mv calling.php.txt calling.php
Legen Sie das Verzeichnis /root/verteilungsdienst an.
hermes:~ # # mkdir /root/verteilungsdienst
Es empfiehlt sich, die allg. Sprache von Asterisk auf Deutsch zu setzen. Dazu legen Sie in der Datei sip.conf den Parameter language auf de. Löschen Sie zuerst die Standart Werte:
hermes:/etc/asterisk # rm sip.conf
Legen Sie eine neue Datei mit dem Namen sip.conf an und füllen Sie diese mit folgendem Inhalt:
[general]
language=de
Zuletzt bestimmen Sie die Netzwerk Einstellungen von Asterisk:
bindport=5060
bindaddr=0.0.0.0
Legen Sie das entsprechende Verzeichnis an und wechseln Sie in dieses:
hermes:/etc/asterisk # mkdir /var/lib/asterisk/sounds/de
hermes:/etc/asterisk # mkdir /var/lib/asterisk/sounds/de/verteilungsdienst
hermes:/etc/asterisk # cd /var/lib/asterisk/sounds/de/verteilungsdienst
Downloaden Sie die Datein:
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/again.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/finish.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/input-id.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/input-msg.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/input-pin.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/intro.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/invaild.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/playmsg.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/press.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/thankyou.gsm
hermes:/var/lib/asterisk/sounds/de/verteilungsdienst # wget http://www.hn-systems.com/verteilungsdienst/sprache/timeout.gsm
Übersicht der Sprachdatein:
again Bitte versuchen Sie es nocheinmal
input-pin Bitte geben Sie nun Ihre PIN über die Telefontastatur ein
intro Hallo, Sie sind verbunden mit dem telefonischem Verteilungsdienst.
invaild Dieses war keine gültige Eingabe. Bitte probieren Sie es erneut.
playmsg Die Nachricht wird Ihnen nun vorgespielt.
press Wenn Sie die Nachricht nocheinmal hören möchten, drücken Sie bitte die eins. Wenn Sie die Nachricht erneut aufnehmen möchten, drücken Sie bitte die zwei. Um die Nachricht jetzt zu senden, drücken Sie bitte die drei.
thankyou Vielen Dank.
timeout Es wurde keine Eingabe ermittelt.
finish Ihre Nachricht wurde erfolgreich gesendet. Vielen Dank für das Nutzen dieses Dienstes.
input-id Bitte geben Sie nun die Verteilungsid ein.
input-msg Bitte nehmen Sie nach dem Signalton Ihre Nachricht auf und beenden Sie mit der Rautetaste.
Sollten Sie vorhaben, Asterisk über VoIP an das deutsche Festnetz zu binden, legen Sie den Parameter register in der sip.conf fest.
register ⇒ Benutzer:Kennwort@Host/Benutzer
Wobei Benutzer für den Benutzernamen beim VoIP Provider steht, Kennwort für das entsprechende Kennwort, Host für den VoIP Server des Providers und Telefonnr für Ihre Telefonnummer! Bei Host Europe lautet Host z.B. sip.hosteurope.de.
Zudem müssen Sie in diesem Fall auch noch einen weiteren Bereich in der sip.conf einfügen:
[Benutzer]
type=peer
context=eingehend
username=Benutzer
fromuser=Benutzer
authuser=Benutzer
secret=Kennwort
host=Host
fromdomain=Host
insecure=invite
canreinvite=no
nat=no
Nun müssen Sie Asterisk noch sagen, dass alle Anrufe vom Festnetz an den Verteilungsdienst weitergeleitet werden sollen. Fügen Sie in der extensions.conf folgenden Bereich ein:
[eingehend]
exten ⇒ Telefonnr,1,Goto(verteilungsdienst,s,1)
Um Asterisk nun zu starten führen Sie folgenden Befehl aus:
hermes:/ # /etc/init.d/asterisk start
Mit
hermes:/ # /etc/init.d/asterisk stop
wird Asterisk gestoppt.
Mit
hermes:/ # /etc/init.d/asterisk restart
wird Asterisk neugestartet.
Um eine Klasse bzw. Rufnummernliste anzulegen, führen Sie folgenden Befehl aus:
hermes:/ # touch /root/verteilungsdienst/Name.txt
Um die Liste im System bekannt zu geben fügen Sie nach der Zeile — Rufnummernliste — die Einträge
exten ⇒ Name,1,Set(ID=${EXTEN})
exten ⇒ Name,n,Goto(verteilungsdienst2,Msg,1)
hinzu.
Wobei Name die ID der Klasse bzw. Rufnummernliste ist. Mein Tipp:
Verwenden Sie für die Klasse 10a z.B. die ID 101.
10 für die Jahrgangsstufe und 1 für a. B wäre somit 2, usw.
Wenn Sie eine neue Telefonnr. in die Liste aufnehmen möchten führen Sie
hermes:/ # echo Telefonnr » /root/verteilungsdienst/Name.txt aus.
Wobei Telefonnr für die gewünschte Telefonnummer steht.
Name steht für die Rufnummernliste.
Um einen Zugang (PIN) anzulegen fügen Sie in der Datei extensions.conf den Eintrag
exten ⇒ PIN,1,Goto(verteilungsdienst2,s,1) unter — PIN Liste — hinzu.
Wobei PIN für die entsprechende PIN steht.
Alle Fragen bitte an: Philipp Hoffmann (info@hn-systems.com).
Altanativ können Sie Fragen in der Diskusion zu diesem Artikel oder im schulhomepage.de Forum stellen.
Bitte senden Sie mir Ihre Anregung, Ihr Lob oder Ihre Kretik.
Diskussion
Sehr coole Idee!
Ist diese Funktionalität mit anderen Serverdiensten (Webserver, Datenbankserver, Router für Internet-Café) gleichzeitig sinnvoll möglich? Oder sollte man für diese Anwendungen besser einen eigenen Rechner einsetzen und für den telefonischen Verteilerdienst einen einzelnen Rechner ohne andere Dienste bereitstellen?
Du kannst das System natürlich z.B. auch auf einem Webserver betreiben.
Der Server sollte nur nicht zu ausgelastet sein.
P.S. Die deutschen Sprachdatein sind bald fertig.
Woher weiß der Anrufer, ob jeder Angerufene auch erreicht wurde? Bei einer Telefonkette ruft der Letzte der Kette den Initiator des Rundrufes an und man weiß dadurch, dass alle die Nachricht erhalten haben.
Einmal mehr eine nette technische Spielerei, um den Schülern Verantwortung (hier für eine Telefonkette und somit den Mitschüler) abzunehmen, zu der wir sie eigentlich auch erziehen sollten.
Es ist möglich in der calling.php anzugeben, wie lange das System probieren soll, den Schüler zu erreichen. Sobald ein Schüler bzw. das entsprechende Telefon erreicht wurde, wird das entsprechende Callfile im Verzeichnis /var/spool/asterisk/outgoing gelöscht. Als Administrator kann du somit gucken, welche Schüler noch nicht erreicht wurde….
Also hat nur der Admin die Möglichkeit, zu sehen, ob alle erreicht wurden. Und was ist mit dem Initiator des Rundrufes, der nicht zugleich Admin ist? Also doch lieber die altbewährte Telefonkette :)
Nein, das lässt sich sicherlich so konfigurieren, dass der Initiator der Kette auch eine technische Rückmeldung abfragen kann, welche Nummern bis dato erreicht wurden, und welche (noch) nicht.
Verantwortung an Schüler zu übertragen und dann auch einzufordern ist sicherlich sinnvoll. Es ist aber manchmal die zuverlässige Informationsweitergabe wichtiger, als in jedem Falle die berühmte Lernsituation zu schaffen. Daher ist diese „technische Spielerei“ mit Sicherheit ebenso nützlich, wie die „altbewährte Telefonkette“ - ein Werkzeug, das je nach Aufgabe passend gewählt und eingesetzt werden muss.
Sicherlich lässt sich die Idee eines telefonischen Verteilers mit einer Rundmail-Funktion koppeln, sodass ein Informationserhalt nicht nur über das Antelefonieren, sondern auch über das Bestätigen einer Mail rückgemeldet werden kann… zumindest wäre das sinnvoll und wünschenswert.
Ich habe vor, eine Art - Hosting Verteilungsdienst - kostenlos anzubieten. Jede Schule erhält eine Telefonnr. mit Durchwahl. Die Telefonlisten müssen mir per Email gesendet werden. Danach kann der Verteilungsdienst sofort genutzt werden.
Die Idee ist nicht schlecht. Ob sie angenommen wird, bleibt abzuwarten.
Ich fand die Idee mit dem schuleigenen Server sehr gut! Da kann die Schule dann ihre Daten auch selbst verwalten; sie bleiben „im Haus“ und sind damit auch datenschutzrechtlich unproblematisch gehandhabt. Wenn das einem externen Dienst anvertraut werden sollte, sähe das allerdings ganz anders aus…
Der Hosting Dienst ist jetzt fertig. Wer sich bei mir meldet (per Email) erhält eine Rufnummer welche er zum Testen oder als Produktionslösung einsetzen kann.
Die gewünschten Funktionen sind nun verfügbar! Bitte an den Anfang der Seite gucken!