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.