musiconhold.conf
Wartemusik (Music on Hold) wird in /etc/asterisk/musiconhold.conf
konfiguriert. Jede Musikklasse ist ein eigener Abschnitt; der Name
default wird überall dort verwendet, wo keine andere Klasse
angegeben ist.
|
Für das Abspielen von Musik können Gebühren an die GEMA anfallen. Frei verwendbare klassische Werke finden Sie z. B. auf https://www.classiccat.net/. Asterisk bringt außerdem drei kurze Musikstücke mit, die Sie lizenzfrei nutzen dürfen. |
Einfachste Konfiguration
Die Default-Installation kommt bereits mit einer funktionierenden Konfiguration:
[default]
mode=files
directory=/var/lib/asterisk/moh
Asterisk erwartet dort Audiodateien in einem der nativ unterstützten
Formate (.gsm, .ulaw, .alaw, .sln16, .wav mit 8 kHz mono
o. ä.). Die Datei-Endung lassen Sie beim Ablegen weg oder benutzen
mehrere Formate nebeneinander — Asterisk wählt automatisch das
Format, das am wenigsten CPU kostet (also keine Transkodierung
braucht).
Mehrere Dateien im Verzeichnis werden der Reihe nach abgespielt; mit
sort=random in zufälliger Reihenfolge:
[default]
mode=files
directory=/var/lib/asterisk/moh
sort=random
Eigene Musik einspielen
Sie können WAV-, FLAC- oder MP3-Dateien mit sox in die Zielformate
konvertieren:
# apt install -y sox libsox-fmt-all
# cd /var/lib/asterisk/moh
# sox musik.mp3 -r 8000 -c 1 -b 16 musik.wav
# sox musik.mp3 -r 8000 -c 1 musik.gsm
# chown asterisk:asterisk musik.*
Wichtig: Samplerate 8000 Hz mono, sonst klingt es falsch (oder
Asterisk muss transkodieren, was CPU kostet).
Mehrere Klassen, z. B. je nach Kontext:
[default]
mode=files
directory=/var/lib/asterisk/moh
[klassik]
mode=files
directory=/var/lib/asterisk/moh/klassik
sort=random
Im Dialplan setzen Sie die Klasse pro Kanal:
exten => 222,1,Answer()
same => n,Set(CHANNEL(musicclass)=klassik)
same => n,WaitMusicOnHold(30)
same => n,Hangup()
Reload
Nach Änderungen an musiconhold.conf oder nach dem Hinzufügen neuer
Dateien reicht meist:
# asterisk -rx "moh reload"
Falls das in Ihrer Version nicht zieht, hilft
module reload res_musiconhold.so oder — im Zweifel — ein
systemctl restart asterisk.
CPU-Hinweis
Wenn Ihr MoH-Verzeichnis nur WAV-48-kHz-Dateien enthält, transkodiert
Asterisk pro Gespräch nach alaw/ulaw/gsm. Bei 100 gleichzeitig
wartenden Anrufern summiert sich das spürbar. Legen Sie deshalb
direkt die Zielformate (.gsm, .ulaw, .alaw) ins
MoH-Verzeichnis — so läuft der Stream ohne Transkodierung.