Beginnen wir mit dem Einfachsten, der Festlegung der Wartemusik
(Music on Hold).
Die Einstellmöglichkeiten werden in der Datei
musiconhold.conf
beschrieben. Ein paar Informationen
zur MP3-Unterstützung durch das Programm mpg123
stehen
in doc/README.mp3
(1.2) /
doc/mp3.txt
(1.4). Die optimale Abtastrate für die
MP3s ist 8000 Hz, mono.Die einfachste (Default-)Konfiguration mit nur einer Musikklasse
(
default
) sieht so aus:[default] mode=quietmp3 directory=/var/lib/asterisk/mohmp3Jetzt stoppen und starten wir Asterisk, z. B. mit
asterisk -rx "stop now"
und
asterisk
, um die neue Extension und die Streams zu
aktivieren (ein Reload reicht nicht aus). Wenn Sie jetzt die Extension
222
(wie oben definiert) anrufen, sollten Sie Wartemusik
hören (im oben genannten Verzeichnis werden bereits 3 Dateien
mitgeliefert).Besser ist aber folgende Konfiguration, für die wir ein Verzeichnis
moh-native
in /var/lib/asterisk/
anlegen:[default] mode=files ; Dateien direkt in einem Asterisk-kompatiblen Format lesen directory=/var/lib/asterisk/moh-native random=yes ; Dateien in zufälliger Reihenfolge abspielenEs ist dazu notwendig, die MP3-Dateien in ein Asterisk-kompatibles Format zu konvertieren, was z. B. mit den Programmen
sox
[82] und lame
[83] so geht:$Damit haben wir eine fiktive Dateilame --decode musik.mp3 musik.wav
$sox -V musik.wav -r 8000 -c 1 -w musik.raw
$sox -V musik.wav -r 8000 -c 1 -w musik.gsm
musik.mp3
in das
WAV-Format und dann in die Formate RAW und GSM konvertiert (mit einer
Abtastrate von 8 kHz). Wir können in unserem Verzeichnis auch Formate wie
alaw und ulaw (Dateiendungen für sox
:
.al
und .ul
) ablegen –
Asterisk wird automatisch das am wenigsten CPU-intensive wählen. Wichtig
ist, dass die Abtastrate immer 8000 Hz beträgt.Wichtig
Wenn Sie in der
modules.conf
nicht
autoload
benutzen, müssen Sie sicherstellen, dass die
Module für die Formate, die Sie hier verwenden wollen,
vor res_musiconhold
geladen
werden.In unserem Test haben wir die im Verzeichnis
moh/
mitgelieferten WAV-Dateien in unser Verzeichnis
moh-native/
kopiert, mit sox
nach
RAW und GSM umkodiert und dann die WAV-Dateien, die Probleme bereiteten,
aus dem Verzeichnis gelöscht:$cd /var/lib/asterisk/moh-native/
$for i in *.wav; do \ sox $i -r 8000 -c 1 $(basename $i .wav).raw; \ sox $i -r 8000 -c 1 $(basename $i .wav).gsm; \ done
$rm *.wav
Für CPU-kritische Anwendungen (große Installationen) sollten Sie
einen Blick auf die Beschreibung in
contrib/utils/README.rawplayer
im ursprünglichen
Asterisk-Verzeichnis werfen.Weitere Musikklassen lassen sich definieren, indem man außer dem
[default]
-Abschnitt noch weitere Abschnitte, z. B.
[rock]
anlegt, dort ein anderes Verzeichnis, z. B. ein
Unterverzeichnis, angibt und die Musikdateien in dieses Verzeichnis legt.
Reload nicht vergessen![82] sox
(http://sox.sourceforge.net/)
gibt es als Debian-Paket, also:
$ apt-get install sox
Für MacOS X gibt es – mit installiertem Darwinports
(http://darwinports.opendarwin.org/
oder http://darwinports.com/, siehe
auch http://apfelwiki.de/wiki/Main/MacPorts)
– auch ein Paket:
$ port install sox
Auf anderen Plattformen müssen Sie die Sourcen herunterladen
und kompilieren, sofern Sie keine Binaries finden.
lame
(http://lame.sourceforge.net/)
gibt es nicht als Debian-Paket. Sie müssen also die Sourcen
herunterladen und mit den bekannten Befehlen
./configure
, make
und
make install
kompilieren und
installieren.[83] Für MacOS X gibt es ein Paket über Darwinports (siehe die
Beschreibung zu sox
):
$ port install lame
oder über Fink (http://fink.sourceforge.net/):$ fink install lame
Natürlich
geht das auch über den FinkCommander mit grafischem Interface.