Asterisk
Diese Anleitung/Howto richtig sich an Leute, die nicht http://www.das-asterisk-buch.de/ komplett lesen wollen. Allerdings gehe ich hier nicht auf die Configs ein.
Ich habe dies für als HiWi im NOC der FH-Köln geschrieben und ich möchte nur, dass nichts in Vergessenheit gerät.
Die Hauptkomponente. Es ist die PBX - die Telefonanlage - in Form einer Software. Es wird wohl klar sein, wofuer asterisk verwendet wird. :)
Die Konfigurationsdateien sind recht leicht zu lesen, aber zum wirklichen verstehen muss man entsprechende Dokumentation gelesen haben. Daher gehe ich nicht auf diese ein, sondern es werden die fertigen confs einfach nur entpackt.
Link: http://www.das-asterisk-buch.de/
Asterisk ist ein amerikanisches Produkt und kann kein deutsch. Es werden 2 Möglichkeiten angeboten, mit denen Asterisk auch deutsch “sprechen” kann.
Besonders für VoiceMail von nöten.
Ein Interpreter fuer VoiceXML, welcher Texte aus VoiceXML heraus vorlesen kann. Benötigt allerdings dafür noch ein paar andere Programme, die auch ohne Hastenix recht praktisch sein können.
VoiceXML ist eine Beschreibungssprache für Menüstrukturen auf Audiobasis. So sind Ansagen und Audioformulare möglich.
"Sprechen sie eine Nachricht nach dem Beep: *beep*"
- "Hallo Mama, ..."
Die Nachricht wird als Formulareingabe wie in HTML gewertet und gespeichert. Hierfuer wird ein Webserver benötigt, denn eigentlich ist VoiceXML für dies gedacht. Hastenix ist nur ein VoiceXML-Klient, also wie ein Browser nur nicht sichtbar, sondern höhrbar und lässt sich von Asterisk aus nutzen.
Hastenix kann selbst keine Texte vorlesen. MBrola kann dies zwar auch nicht, aber es kann Stimmen synthetisieren, die “Phonetisch” beschrieben sind. Txt2pho erzeugt diese phonetischen Daten. Leider ist mbrola nicht OpenSource! Lizenz beachten!
Txt2pho gehört zum Hadifixprojekt der Uni Bonn. Erzeugt aus einem Text eine phonetische Beschreibung, die von mbrola synthetisiert werden kann. Mit MBrola zusammen ist dies ein vollwertiges TTS -TextToSpeech – und kann von Hastenix oder von Asterisk verwendet werden.
Leider ist txt2pho nicht OpenSource! Lizenz beachten!
Ein Programm zum Umwandeln von Audiodateien.
Ein sehr praktisches Programm, um die Ansagen von Asterisk in verschiedene Formate zu konvertieren. So kann man Ansagen in Formaten bereits konvertiert anbieten, damit asterisk dies nicht mehr selbst jedes Mal vornehmen muss.
Fuer TTS wird es auf jeden Fall benötigt!
$ yum install bison flex gcc cvs libtermcap-devel gcc-c++ openssl-devel kernel-devel
Kann hoechstwahrscheinlich anschliessend wieder deinstalliert werden. Sind nur Entwicklungspakete, aber werden wieder benoetigt, wenn ein Update oder eine Anpassung wegen einem Update des Systems, statt findet.
Telefonkonferenzen sind nur mit Linux >=2.6 moeglich und benoetigen folgendes Modul: ztdummy. Dieses ist Bestandteil von zaptel. Wir benoetigen daher zaptel, obwohl wir zaptel ueberhaupt nicht fuer den eigentlichen Zweck benoetigen, nämlich ISDN. (Dies Bezog sich auf unsere Umgebung und nicht auf Ihre, die es vielleicht doch benötigt.) Der Grund, weshalb man zaptel benoetigt, ist, dass es als Timer verwendet wird, um die Teilnehmer synchron zu halten. Ohne funktioniert die Telefonkonferenz nicht. Weil ztdummy ein Modul fuer Linux ist, muss es auch jedes mal neu kompiliert werden, wenn Linux aktualisiert wurde. Auch muss der Quelltext - Paket kernel-devel - von Linux installiert sein!
Unbedingt testen, ob nach dem Kernelupdate weiterhin mISDN und ztdummy kompiliert und funktioniert!
Leider ist nicht vorrauszusehen, welche Fehler auftreten können.
$ wget http://www.beronet.com/downloads/install-asterisk.tar.gz
$ tar xzf install-asterisk.tar.gz
$ cd install-asterisk
In der Datei Makefile aus der Abhaengigkeitsliste von all “libpri” austragen. Benötigen wir nicht, da wir mISDN nutzen wollen. (Sie vielleicht schon.) zaptel bleibt drin, da wir es ‘nur’ fuer ztdummy benötigen.
$ . /etc/profile # lsusb wird sonst vielleicht nicht gefunden.
$ make
Dies lässt sich bei Problemen wiederholen. Zum Beispiel, wenn Bibliothekenabhängigkeiten sich geändert haben und asterisk deswegen nicht mehr laeuft. Dies ist auch nötig, wenn Linux aktualisiert wurde und muss dann wiederholt werden! Dabei werden aber nur nötige Dateien neu kompiliert.
Die ISDN-Karte muss nun konfiguiert werden. Dies geschieht mit diesem Script automatisch:
$ /etc/init.d/misdn-init config
Anschliessend kann man es starten:
$ /etc/init.d/misdn-init start
Dieses Script übernimmt auch das Laden der Module.
$ modprobe ztdummy
(Nun configs erstellen oder die von asterisk selbst verwenden.)
Ab jetzt ist Asterisk lauffaehig. Zum Testen eignet sich dieser Befehl:
$ asterisk -cvvvvvvvvvv
Nun laeuft asterisk in dieser Konsole und bietet die CLI - Command-Line-Interface - an, ueber die man einige Befehle absetzen kann.
Jedes Mal, wenn man eine Aenderung der Configs vornahm, muss asterisk angewiesen werden, diese neu einzulesen:
asterisk> module reload
Den Waehlplan allein neu laden:
asterisk> dialplan reload
mISDN neu laden:
asterisk> misdn reload
Beenden kann man dieses Interface mit Ctrl-c/Strg-c.
Betrieb:
Muss noch durch ein INIT-script ersetzt werden:
$ asterisk
Um an die CLI zu kommen:
$ asterisk -r
Deutsch kann asterisk nicht, aber man kann Audiodateien mit deutschen Ansagen einspielen. Anschliessend hört man eine Frauenstimme. Desweiteren besteht die Moeglichkeit eigene Ansagen einzuspielen. ;)
Klingt besser, freundlicher und hoeflicher, dafuer fehlen ein paar Ansagen.
Link: http://www.pforzheim.de/asterisk/vprompts.html
$ wget http://www.stadt-pforzheim.de/asterisk/dateien/ast_prompts_de_v2_0.tar.gz
$ tar xvzf /home/denis/install-asterisk/ast_prompts_de_v2_0.tar.gz
$ cp -r ast_prompts_de_v2_0/var /
Kann besser klingen - gegen Aufpreis - und änthält jegliche Ansagen, die in asterisk 1.4 vorkommen. Lässt sich gegen Aufpreis mit weiteren Ansagen erweitern.
$ wget http://www.amooma.de/asterisk/service/deutsche-sprachprompts/asterisk-1.4-de-prompts.tar.gz
$ tar xvzf asterisk-1.4-de-prompts.tar.gz -C /var/lib/asterisk/sounds/
Mit sox wird die Ausgabe von mbrola fuer Asterisk in ein Format umgewandelt, welches Asterisk versteht. mbrola verwendet zwar auch wav, aber mit 16kHz bzw. 22.5kHz, welches Asterisk nicht senden kann. Also muss es in 8kHz umgerechnet werden und dies kann sox.
$ yum install sox
(– Hier wird spaeter stehen, was man mit sox so machen kann. –)
Wird fuer hastenix benoetigt. Kann aber auch von Asterisk direkt aus verwendet werden.
Beispiele sind in der extension.conf von Asterisk zu finden. (Wenn Sie diese hätten) Dieses TTS kann in diesem Fall nur Deutsch, da hadifix/txt2pho nur deutsch kann. Fuer englische Texte ist dies nicht geeignet. Auch auslaendische Namen werden sich nicht korrekt anhoeren.
Link: http://www.ikp.uni-bonn.de/dt/forsch/phonetik/hadifix/HADIFIXforMBROLA.html
$ wget http://www.ikp.uni-bonn.de/dt/forsch/phonetik/hadifix/txt2pho.zip
$ unzip txt2pho.zip
$ install -m 755 -u root -g root txt2pho /usr/bin/txt2pho
$ cp -R data /opt/hadifix
Die Datei “txt2pho” aus den bestehenden Konfigurationsdateien muss nach /etc/txt2pho kopiert werden. Dies ist nicht das gerade entpackte Programm txt2pho, sondern eine Konfigurationsdatei, die zu dieser Anleitung gehoert! (Und Sie somit leider nicht haben. Sie müssen diese also selbst anpassen.)
Link: http://tcts.fpms.ac.be/synthesis/mbrola.html
Dies sind viele MB und viele Dateien. Das Ganze sollte in einem eigenen Verzeichnis abspielen.
$ mkdir mbrola
$ cd mbrola
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de1/de1-980227.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de2/de2-990106.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de3/de3-000307.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de4/de4.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de5/de5.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de6/de6.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de7/de7.zip
$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de8/de8.zip
$ for f in *.zip ; do unzip -o "${f}" ; done
$ mkdir -p /opt/mbrola
$ cp mbrola-linux-i386 /usr/bin/mbrola
$ cp de1/de1 de2/de2 de3/de3 de4 de5/de5 de6/de6 de7 de8/de8 /opt/mbrola
de*:: Diese de1 bis de8 Dateien sind dazu da, um mbrola Stimmen beizubringen. Es sind die Stimmen selbst.
Es gibt im Waehlplan momentan ein paar Beispiele, die auf selbst geschriebene Scripte aufbauen. hastenix ist ein Programm, welches dieses tts auch nutzen kann.
Benoetigt: tts und sox muessen laeuffaehig sein.
Hastenix steht für “Hawhaw adapter for ASTErisk aNd voIceXml”. Das HAWHAW-Toolkit hat eigentlich nichts mit Asterisk zu tun, sondern beschäftigt sich mit der Erstellung von Webapplikationen für mobile Endgeräte. Neben anderen Auszeichnungssprachen wie HTML und WML unterstützt HAWHAW auch die Ausgabe von VoiceXML. Die eigentliche Intention des Hastenix-Skripts ist es, einen Asterisk dahingehend zu erweitern, dass er als Voicebrowser für HAWHAW-Anwendungen eingesetzt werden kann.
Quelle: http://www.das-asterisk-buch.de/stable/hastenix.html
(– Noch nicht fertig –)