5. Januar 2025 (zuletzt aktualisiert am 6.Januar 2025)
Die Grundinstallation der kostenlosen Telefonsoftware Asterisk stellt leider nur englische Sprachdateien zur Verfügung. Die Erweiterung und Umstellung auf deutsche Sprachdateien wird hier erklärt. Dabei können wir wählen, ob der gesamte Asterisk-Server global auf Deutsch reagieren soll, oder ob er nur bei bestimmten Ereignissen auf Deutsch (oder einer anderen Sprache) reagiert. Schwedisch wird leider nicht mehr vom Core des Asterisk unterstützt. Aber es gibt eine Lösung für die Zahlen und Ziffern. Mein Asterisk ist jetzt dreisprachig.
Getestet mit Asterisk 18.10. unter Ubuntu Mate als Betriebssystem. Die hier beschriebene Anleitung müsste mit fast allen Versionen von Asterisk unter Linux Debian – und auch auf einem Raspberry mit Raspbian – funktionieren.
Die Umstellung auf eine andere Sprache erfolgt in drei Schritten: 1. Download der Sprachpakete, 2. Installation. 3. Anpassungen in der extensions.conf entweder für eine globale Verwendung oder bestimmte Ereignisse.
Download und Installation der Voice Prompts: Die deutschen Sprachprompts müssen wir nachinstallieren. Unter Debian, Ubuntu oder Raspbian für den Raspberry sind die deutschen Sprachpakete meisten bereits als Paketquellen vorbereitet. Siehe https://ubuntu.pkgs.org/22.04/ubuntu-universe-arm64/asterisk-prompt-de_2.0-1.2_all.deb.html.
Als Debianpaket für alle Prozessortypen gibt es die Sprachpakete auch hier: http://launchpadlibrarian.net/513522705/asterisk-prompt-de_2.0-1.2_all.deb
Dieses deutsche Sprachpaket für verschiedene Prozessortyptren gibt es auch auf https://launchpad.net/ubuntu/mantic/i386/asterisk-prompt-de/2.0-1.2
Weitere Quelle für deutsche voice prompts: https://github.com/joni1802/asterisk-sound-generator/releases/tag/v0.2.3
Installieren: Nach dem Ausführen des Debianpakets (zum Beispiel per Mausklicks) müssen sich die deutschen Sprachdateien unter /usr/share/asterisk/sounds/de/ befinden, damit Asterisk diese Dateien finden kann. Dies kontrollieren wir. Die englischen Sprachprompts sind weiterhin vorhanden.
Im Ordner „digits“ sind die Dateien für die Ansage von Zahlen und Ziffern abgespeichert. Bei Tests mit Asterisk 18.10.0 zeigte sich, dass die Datei „1N.gsm“ fehlt. Sie enthält nur das Wort „ein“. In diesem Fall ist die „ein.gsm“ in „1N.gsm“ umzubenennen. Dann werden die Zahlen korrekt aufgesagt.
Schwedische voice prompts für Zahlen und Ziffern: Die schwedische Sprache wird nicht mehr von Asterisk unterstützt. Jedenfalls gilt das nach meiner Erfahrung für Asterisk 18.10.0. Es gibt eine Lösung. Schwedische voice prompts liegen auf https://www.danielnylander.se/asterisk-saker/ vor. Vollkommen veraltet. Aber die Ziffern und Zahlen kann man auf jeden Fall noch verwenden. Die Datei entpacken, und die Sprachdateien der Ziffern wie 0.gsm, 1.gsm, 3.gsm, ett.gsm und so weiter direkt in einen händisch anzulegenden Ordner /usr/share/asterisk/sounds/sv/digits/ kopieren. Dann gehen wenigstens die schwedischen Zahlen und Ziffern mit einer männlichen Stimme. In der extensions.conf „Set(CHANNEL(language)=sv)“ verwenden. Das Kürzel „sv“ steht für Schwedisch. Genaue Erklärung weiter unten in diesem Artikel. In der Asterisk-Konsole kommt ein Warnhinweis, weil Schwedisch nicht unterstützt wird im Core von Asterisk und die Regeln der englischen Sprache zum Einsatz kommen. Zum Glück lassen sich diese Regeln für Zahlen und Ziffern auch auf die schwedische Sprache anwenden.
Mit Text to Speech können als MP3-Dateien individuelle Text mit männlichen und weiblichen schwedischen Stimmen auf https://speechgen.io/en/tts-swedish/ in guter Qualität erzeugt werden. Thomas klingt für mich am besten. Die MP3-Dateien lassen sich mit https://g711.org/ in der Voreinstellung online in ein passendes Format für Asterisk umwandeln.
Umschalten auf Deutsch in der extensions.conf: Es gibt verschiedene Möglichkeiten. Beachte: Die Änderungen in der extensions.conf werden erst nach Ausführen von „dialplan reload“ in der Asterisk-Konsole aktiviert.
1. Immer nur die deutschen voice prompts global verwenden: Wenn du möchtest, dass die Sprache für alle Anrufe in der extensions.conf
global auf Deutsch gesetzt wird, kannst du das direkt im [general]
-Block vornehmen. Das ist die einfachste Methode, wenn man andere Sprachen außer Deutsch nicht verwenden möchte oder nur selten.
[general] language=de
2. Nur für einen bestimmten Kontext auf Deutsch schalten:
[default] exten => _X.,1,Set(CHANNEL(language)=de) same => n,... ; weitere Aktionen
3. Nur für eine bestimmte Extension:
a) Echotest auf Deutsch und Englisch: Echotest Englisch: 222, Echotest Deutsch: 223
; ECHOTEST (HALL, ZEITVERZOEGERUNG ENGLISCH) exten => 222,1,NoOp(ECHOTEST ENGLISCH) same => n,Noop(Anruf erfolgt von: "${CALLERID(name)}" <${CALLERID(num)}>) same => n,Answer() ; Abheben same => n,Playback(demo-echotest) ; Ansage same => n,Echo ; Echotest same => n,Playback(demo-echodone) ; Bestaetigung same => n,Hangup() ; Auflegen ; ECHOTEST (HALL, ZEITVERZOEGERUNG DEUTSCH) exten => 223,1,NoOp(ECHOTEST DEUTSCH) same => n,Noop(Anruf erfolgt von: "${CALLERID(name)}" <${CALLERID(num)}>) same => n,Set(CHANNEL(language)=de) ; Deutsche Sprachprompts verwenden same => n,Answer() ; Abheben same => n,Playback(demo-echotest) ; Ansage same => n,Echo ; Echotest same => n,Playback(demo-echodone) ; Bestaetigung same => n,Hangup() ; Auflegen
b) Aufrufen einer AGI: 507 auf Englisch, 508 auf Deutsch
exten => 507,1,Noop(Anruf erfolgt von: "${CALLERID(name)}" <${CALLERID(num)}>) same => n,Noop(Abfrage Solaranlage Kostal-Plenticore-Wechselrichter) same => n,Answer() same => n,AGI(kostal_agi.py) same => n,Hangup() exten => 508,1,Noop(Anruf erfolgt von: "${CALLERID(name)}" <${CALLERID(num)}>) same => n,Noop(Abfrage Solaranlage Kostal-Plenticore-Wechselrichter auf Deutsch) same => n,Set(CHANNEL(language)=de) ; Deutsche Prompts verwenden same => n,Answer() same => n,AGI(kostal_agi_de.py) same => n,Hangup()
Wählt man die 507, werden die englischen voice prompts der Voreinstellung verwendet. Die Zahlen und Ziffern werden auf Englisch angesagt. Das Pythonskript kostal_agi.py greift im Skript definiert auf die von mir erstellte englischsprachige Sprachdateien zu. Dafür sorgen die Pfadangaben zu den Sprachdateien.
Wählt man die 508, werden die Zahlen und Ziffern auf Deutsch verwendet. Außerdem läuft das Skript kostal_agi_de.py ab. Es ist eine leichte Abwandlung, dass im Skript auf die von mir erstellen deutschen Sprachdateien zugreift. Dazu wurden die Pfadangaben zu den Sprachdateien abgeändert.
4. Wenn die Caller ID des Anrufenden mit 0049 beginnt, dann deutsche voice prompts verwenden: Diese Methode habe ich noch nicht getestet.
[default] ; Anrufe mit CallerID, die mit 0049 (Deutschland) beginnen exten => _X.,1,NoOp(Eingehender Anruf von: "${CALLERID(name)}" <${CALLERID(num)}>) same => n,ExecIf($["${CALLERID(num):0:4}"="0049"]?Set(CHANNEL(language)=de):Set(CHANNEL(language)=en)) same => n,Answer() same => n,Playback(hello-world) ; Testansage basierend auf Sprache same => n,Hangup()
Sprachdateien selbst erstellen: Muss man eigene deutsche Sprachdateien herstellen, passen die mit der Stimme von „Wicki“ auf https://ttsmp3.com/ oder https://speechgen.io/de/ online erzeugten MP3-Dateien ganz gut zu den deutschen voice prompts der Zahlen und Ziffern. Die MP3-Dateien können auf https://g711.org/ mit der Voreinstellung ebenfalls online in ein passendes Format für Asterisk umgewandelt werden.
Sprachdateien in vielen anderen Sprachen lassen sich ebenfalls mit https://ttsmp3.com/ oder https://speechgen.io/de/ online erstellen. Als Übersetzungsprogramm dienen ChatGPT oder https://www.deepl.com/de/translator. ChatGPT geht über die Übersetzung hinaus und schlägt eigene Text vor oder schreibt sie nach Wunsch um, wenn dieser KI die Aufgabe erklärt wird.
Zum Thema passend:
Asterisk-Telefonserver auf einem Raspberry Pi – Installation, Konfiguration, Programmierung, SIP, IAX2, AGI-Skripte, Sicherheit und Tipps zum praktischen Betrieb – 2.11.2022: Diese Seite richtet sich an jene, welche einen Asterisk-Telefon-Server auf einem Raspberry Pi betreiben möchten und später ein kleines Netzwerk aus Asterisk-Servern planen, um ein eigenständiges Telefonnetz aufzubauen. Los geht es mit der Installation von Raspbian und Asterisk auf einem Raspberry Pi und dann nach Lust und Laune immer tiefer in die Programmierung von Asterisk. Die Themen werden laufend erweitert.
Selbstverständlich muss es nicht unbedingt ein Raspberry Pi sein. Andere Linux-Rechner gehen auch. – weiter – |