Coverbild des Asterisk Buches von Stefan Wintermeyer

Letzte Woche => Endspurt!

Montag den 29.01.07 geht das Buch in die Produktion. Bis dahin laeuft der Beta-Test noch in vollem Umfang. Bitte melden Sie Fehler! Siehe Beta-Test FAQ.

Erscheinungstermin: 03.03.07. Das Buch wird auf dem Asterisk-Tag.org in Chemnitz vorgestellt und kann dort auch erworben werden. 10 Tage spaeter wird es im Buchhandel sein. Wer nicht in Chemnitz sein kann, sollte das Buch vorbestellen: Amazon oder direkt beim Verlag

Asterisk-Schulungen und Consulting vom Autor dieses Buches finden Sie auf http://www.amooma.de. Naechste Asterisk-Schulung: 12.02. - 13.02.07 (noch 2 Plaetze frei) - Ach ja, ... wir suchen auch noch Asterisk Entwickler! => http://www.amooma.de/jobs/


2.6. Asterisk 1.2

2.6.1. Installation Asterisk 1.2.x auf Debian Linux

Diese Installationsanleitung setzt ein frisch installiertes Debian GNU/Linux 3.1 (a.k.a sarge) voraus. Ein ISO-Image für eine entsprechende i386er Debian Linux-Installation befindet sich unter http://cdimage.debian.org/debian-cd/3.1_r4/i386/iso-cd/debian-31r4-i386-netinst.iso. Eine Debian GNU/Linux-Installationsanleitung steht unter http://www.debian.org/releases/stable/i386/ und ein allgemeines Anwenderhandbuch unter http://debiananwenderhandbuch.de.

Nach erfolgreicher Installation des Debian Linux-Systems melden Sie sich als Benutzer root in das System an und führen Sie die hier nachfolgend angegebenen Befehle aus. Bitte achten Sie darauf, keinen Schritt auszulassen und die Schritte als Benutzer root durchzuführen.

Als Erstes stellen Sie mit einem apt-get update sicher, dass apt-get alle aktuellen Paketlisten zur Verfügung hat:

debian:~# apt-get update
OK   http://ftp.de.debian.org stable/main Packages
OK   http://ftp.de.debian.org stable/main Release
OK   http://security.debian.org stable/updates/main Packages
OK   http://security.debian.org stable/updates/main Release
OK   http://security.debian.org stable/updates/contrib Packages
OK   http://security.debian.org stable/updates/contrib Release
OK   http://ftp.de.debian.org stable/main Sources
OK   http://ftp.de.debian.org stable/main Release
Paketlisten werden gelesen... Fertig
debian:~#

Um sicherzugehen, dass alle Pakete auf dem neuesten Stand sind, führen Sie zur Sicherheit noch ein apt-get -y upgrade aus:

debian:~# apt-get -y upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
debian:~#

Jetzt müssen Sie mit apt-get -y install openssl zlibc libkrb5-dev libncurses5-dev libssl-dev zlib1g-dev noch ein paar Pakete nachinstallieren, damit das Kompilieren von Asterisk erfolgreich durchgeführt werden kann:

debian:~# apt-get -y install openssl zlibc libkrb5-dev libncurses5-dev libssl-dev zlib1g-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  comerr-dev libkadm55
Vorgeschlagene Pakete:
  doc-base krb5-doc ca-certificates
Die folgenden NEUEN Pakete werden installiert:
  comerr-dev libkadm55 libkrb5-dev libncurses5-dev libssl-dev openssl
  zlib1g-dev zlibc
0 aktualisiert, 8 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 6025kB Archive geholt werden.
Nach dem Auspacken werden 18,8MB Plattenplatz zusätzlich benutzt.
Hole:1 http://ftp.de.debian.org stable/main libkadm55 1.3.6-2sarge3 [165kB]
Hole:2 http://ftp.de.debian.org stable/main libncurses5-dev 5.4-4 [1038kB]
Hole:3 http://ftp.de.debian.org stable/main libssl-dev 0.9.7e-3sarge4 [2555kB] 
Hole:4 http://ftp.de.debian.org stable/main openssl 0.9.7e-3sarge4 [906kB]     
Hole:5 http://ftp.de.debian.org stable/main zlib1g-dev 1:1.2.2-4.sarge.2 [488kB]
Hole:6 http://ftp.de.debian.org stable/main zlibc 0.9j-7 [245kB]               
Hole:7 http://ftp.de.debian.org stable/main comerr-dev 2.1-1.37-2sarge1 [53,0kB]
Hole:8 http://ftp.de.debian.org stable/main libkrb5-dev 1.3.6-2sarge3 [574kB]  
Es wurden 6025kB in 57s geholt (104kB/s)                                       
Wähle vormals abgewähltes Paket libkadm55.
(Lese Datenbank ... 32512 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke libkadm55 (aus .../libkadm55_1.3.6-2sarge3_i386.deb) ...
Wähle vormals abgewähltes Paket libncurses5-dev.
Entpacke libncurses5-dev (aus .../libncurses5-dev_5.4-4_i386.deb) ...
Wähle vormals abgewähltes Paket libssl-dev.
Entpacke libssl-dev (aus .../libssl-dev_0.9.7e-3sarge4_i386.deb) ...
Wähle vormals abgewähltes Paket openssl.
Entpacke openssl (aus .../openssl_0.9.7e-3sarge4_i386.deb) ...
Creating directory /etc/ssl
Wähle vormals abgewähltes Paket zlib1g-dev.
Entpacke zlib1g-dev (aus .../zlib1g-dev_1%3a1.2.2-4.sarge.2_i386.deb) ...
Wähle vormals abgewähltes Paket zlibc.
Entpacke zlibc (aus .../archives/zlibc_0.9j-7_i386.deb) ...
Wähle vormals abgewähltes Paket comerr-dev.
Entpacke comerr-dev (aus .../comerr-dev_2.1-1.37-2sarge1_i386.deb) ...
Wähle vormals abgewähltes Paket libkrb5-dev.
Entpacke libkrb5-dev (aus .../libkrb5-dev_1.3.6-2sarge3_i386.deb) ...
Richte libkadm55 ein (1.3.6-2sarge3) ...

Richte libncurses5-dev ein (5.4-4) ...
Richte libssl-dev ein (0.9.7e-3sarge4) ...

Richte openssl ein (0.9.7e-3sarge4) ...

Richte zlib1g-dev ein (1.2.2-4.sarge.2) ...
Richte zlibc ein (0.9j-7) ...

Richte comerr-dev ein (2.1-1.37-2sarge1) ...

Richte libkrb5-dev ein (1.3.6-2sarge3) ...
debian:~#

Auf der Asterisk-Homepage http://www.asterisk.org/ finden Sie die notwendigen Quellen, um Asterisk zu kompilieren. Nehmen Sie bitte eine stabile und keine Entwickler-Version und laden Sie diese mit wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz in das Verzeichnis /usr/src/ herunter:

debian:~# cd /usr/src
debian:/usr/src# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
--18:30:46--  http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
           => `asterisk-1.2-current.tar.gz'
Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164
Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 10,584,113 [application/x-gzip]

100%[====================================>] 10,584,113   224.71K/s    ETA 00:00

18:31:36 (207.67 KB/s) - »asterisk-1.2-current.tar.gz« gespeichert [10584113/10584113]

Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.2-current.tar.gz entpackt werden:

debian:/usr/src# tar xvzf asterisk-1.2-current.tar.gz 
asterisk-1.2.13/
asterisk-1.2.13/build_tools/
asterisk-1.2.13/build_tools/make_svn_branch_name
asterisk-1.2.13/build_tools/mkdep
asterisk-1.2.13/build_tools/make_build_h
asterisk-1.2.13/build_tools/make_version_h
asterisk-1.2.13/build_tools/make_defaults_h
asterisk-1.2.13/aesopt.h
asterisk-1.2.13/utils.c
asterisk-1.2.13/keys/
[...]
asterisk-1.2.13/cli.c
asterisk-1.2.13/io.c
asterisk-1.2.13/ulaw.c
asterisk-1.2.13/logger.c
debian:/usr/src# 

Die entpackten Dateien müssen jetzt kompiliert werden.[5]Dies geschieht mit dem Befehl make im gerade entpackten Verzeichnis.

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 1.2.13 vielleicht zum Zeitpunkt Ihrer Installation nicht mehr aktuell ist. Entsprechend werden sich die Verzeichnisnamen ändern.

Übrigens ist dies jetzt ein guter Moment, sich einen Kaffee oder Tee zu kochen. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern.

debian:/usr/src# cd asterisk-1.2.13
debian:/usr/src/asterisk-1.2.13# make
if cmp -s .cleancount .lastclean ; then echo ; else \
        make clean; cp -f .cleancount .lastclean;\

[...]

make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/src/asterisk-1.2.13/stdtime'
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, but +
 + cannot be run before being installed by   +
 + running:                                  +
 +                                           +
 +               make install                +
 +-------------------------------------------+

Die Software ist jetzt kompiliert und muss nur noch mit make install installiert (sprich an die vorgesehenen Stellen im Dateisystem kopiert) werden:

debian:/usr/src/asterisk-1.2.13# make install
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; 
then echo;

[...]

 +---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 +               make samples                +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +              make progdocs                +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+

Geschafft! Die soeben kompilierten Programmdateien sind jetzt auf dem System installiert. Allerdings finden wir im Asterisk-Konfigurationsverzeichnis /etc/asterisk/ noch gähnende Leere vor. In diesem Verzeichnis liegen die Konfigurationsdateien von Asterisk und da wir nicht von Null beginnen möchten, lassen wir uns die Standarddateien erstellen. Dies erreichen wir mit make samples:

debian:/usr/src/asterisk-1.2.13# make samples
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; 
then echo;

[...]

done

Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):

debian:/usr/src/asterisk-1.2.13# asterisk -V
Asterisk 1.2.13

2.6.2. Installation Asterisk 1.2.x auf Ubuntu Linux

Da Ubuntu auch von der CD als Live-System gebootet werden kann, müssen Sie es nicht zwangsläufig auf der Festplatte installieren (gut zum Testen). Diese Anleitung wurde mit einem Ubuntu 6.06.1 LTS (Dapper Drake) ausgeführt bzw. setzt dieses voraus. Das entsprechende ISO-Image finden Sie unter http://de.archive.ubuntu.com/ubuntu-releases/6.06/ubuntu-6.06.1-desktop-i386.iso. Wir benutzen die Desktop-CD, der gleiche Installationsweg funktioniert aber auch bei der Server-CD. Hierbei sollte aber vor der Installation von Asterisk noch ein sudo apt-get update und ein sudo apt-get -y upgrade durchgeführt werden, um sicherzustellen, dass alle aktuellen Security Fixes installiert sind.

Weitere Informationen zu Ubuntu finden Sie auf http://www.ubuntu.com.

Tipp

Eine Liste von FTP-Mirrors zum Download des ISO-Images stehen auf http://www.ubuntu.com/products/GetUbuntu/download#lts.

Da auf einem Ubuntu-System root-Befehle immer über sudo (siehe http://de.wikipedia.org/wiki/Sudo) erfolgen, können Sie diese Installationsanleitung mit dem Benutzer ubuntu ausführen. Bitte öffnen Sie nach dem Starten von Ubuntu einfach ein Terminal-Fenster (im Menü oben links -> Applications -> Accessories -> Terminal).

Als Erstes stellen Sie mit einem sudo apt-get update sicher, dass apt-get alle aktuellen Paketlisten zur Verfügung hat:

ubuntu@ubuntu:~$ sudo apt-get update
Get:1 http://security.ubuntu.com dapper-security Release.gpg [191B]
Hit http://security.ubuntu.com dapper-security Release
Get:2 http://archive.ubuntu.com dapper Release.gpg [189B]                  
Get:3 http://archive.ubuntu.com dapper-updates Release.gpg [191B]
Hit http://security.ubuntu.com dapper-security/main Packages
Hit http://archive.ubuntu.com dapper Release
Hit http://security.ubuntu.com dapper-security/restricted Packages  
Hit http://security.ubuntu.com dapper-security/main Sources
Hit http://archive.ubuntu.com dapper-updates Release
Hit http://security.ubuntu.com dapper-security/restricted Sources   
Hit http://archive.ubuntu.com dapper/main Packages
Hit http://archive.ubuntu.com dapper/restricted Packages
Hit http://archive.ubuntu.com dapper/main Sources
Hit http://archive.ubuntu.com dapper/restricted Sources
Hit http://archive.ubuntu.com dapper-updates/main Packages
Hit http://archive.ubuntu.com dapper-updates/restricted Packages
Hit http://archive.ubuntu.com dapper-updates/main Sources
Hit http://archive.ubuntu.com dapper-updates/restricted Sources
Fetched 3B in 1s (2B/s)  
Reading package lists... Done
ubuntu@ubuntu:~$ 

Jetzt müssen Sie mit sudo apt-get -y install make gcc g++ libncurses5-dev libssl-dev zlib1g-dev noch ein paar Pakete nachinstallieren, damit das Kompilieren von Asterisk erfolgreich durchgeführt werden kann:

uubuntu@ubuntu:~$ sudo apt-get -y install make gcc g++ libncurses5-dev libssl-dev zlib1g-dev
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  binutils cpp cpp-4.0 g++-4.0 gcc-4.0 libc6-dev libstdc++6-4.0-dev
  linux-kernel-headers
Suggested packages:
  binutils-doc cpp-doc gcc-4.0-locales gcc-4.0-doc lib64stdc++6 manpages-dev
  autoconf automake1.9 libtool flex bison gcc-doc libc6-dev-amd64 lib64gcc1
  glibc-doc libstdc++6-4.0-doc stl-manual
Recommended packages:
  libmudflap0-dev
The following NEW packages will be installed:
  binutils cpp cpp-4.0 g++ g++-4.0 gcc gcc-4.0 libc6-dev libncurses5-dev
  libssl-dev libstdc++6-4.0-dev linux-kernel-headers make zlib1g-dev
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
Need to get 15.6MB of archives.
After unpacking 58.9MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com dapper/main cpp-4.0 4.0.3-1ubuntu5 [1987kB]
Get:2 http://security.ubuntu.com dapper-security/main binutils 2.16.1cvs20060117-1ubuntu2.1 [1407kB]

[...]

Setting up g++-4.0 (4.0.3-1ubuntu5) ...
Setting up libstdc++6-4.0-dev (4.0.3-1ubuntu5) ...
Setting up g++ (4.0.3-1) ...

ubuntu@ubuntu:~$

Auf der Asterisk-Homepage http://www.asterisk.org/ finden Sie die notwendigen Quellen, um Asterisk zu kompilieren. Nehmen Sie bitte eine stabile und keine Entwickler-Version und laden Sie diese mit wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz in das Verzeichnis /usr/src/ herunter:

ubuntu@ubuntu:~$ cd /tmp
ubuntu@ubuntu:/tmp$ wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
--09:36:42--  http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
           => `asterisk-1.2-current.tar.gz'
Resolving ftp.digium.com... 69.16.138.164
Connecting to ftp.digium.com|69.16.138.164|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10,584,113 (10M) [application/x-gzip]

100%[====================================>] 10,584,113   109.65K/s    ETA 00:00

09:38:29 (97.21 KB/s) - `asterisk-1.2-current.tar.gz' saved [10584113/10584113]

ubuntu@ubuntu:/tmp$

Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.2-current.tar.gz entpackt werden:

ubuntu@ubuntu:/tmp$ tar xvzf asterisk-1.2-current.tar.gz 
asterisk-1.2.13/
asterisk-1.2.13/build_tools/
asterisk-1.2.13/build_tools/make_svn_branch_name
asterisk-1.2.13/build_tools/mkdep
asterisk-1.2.13/build_tools/make_build_h
asterisk-1.2.13/build_tools/make_version_h
asterisk-1.2.13/build_tools/make_defaults_h
asterisk-1.2.13/aesopt.h
asterisk-1.2.13/utils.c
asterisk-1.2.13/keys/
[...]
asterisk-1.2.13/cli.c
asterisk-1.2.13/io.c
asterisk-1.2.13/ulaw.c
asterisk-1.2.13/logger.c
ubuntu@ubuntu:/tmp$ 

Die entpackten Dateien müssen jetzt kompiliert werden.[6]Dies geschieht mit dem Befehl make im gerade entpackten Verzeichnis.

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 1.2.13 vielleicht zum Zeitpunkt Ihrer Installation nicht mehr aktuell ist. Entsprechend werden sich die Verzeichnisnamen ändern.

Übrigens ist dies jetzt ein guter Moment, sich den obligatorischen Kaffee oder Tee zu kochen. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern.

ubuntu@ubuntu:/tmp$ cd asterisk-1.2.13/
ubuntu@ubuntu:/tmp/asterisk-1.2.13$ make
if cmp -s .cleancount .lastclean ; then echo ; else \
                make clean; cp -f .cleancount .lastclean;\


[...]

make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/asterisk-1.2.13/stdtime'
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, but +
 + cannot be run before being installed by   +
 + running:                                  +
 +                                           +
 +               make install                +
 +-------------------------------------------+
ubuntu@ubuntu:/tmp/asterisk-1.2.13$ 

Die Software ist jetzt kompiliert und muss nur noch mit sudo make install installiert (sprich in die richtigen Verzeichnisse kopiert) werden:

ubuntu@ubuntu:/tmp/asterisk-1.2.13$ sudo make install
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo;

[...]

make[1]: Leaving directory `/tmp/asterisk-1.2.13/stdtime'
 +---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 +               make samples                +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +              make progdocs                +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+

ubuntu@ubuntu:/tmp/asterisk-1.2.13$ 

Die eben kompilierten Programmdateien sind jetzt auf dem System installiert. Allerdings finden wir im Asterisk-Konfigurationsverzeichnis /etc/asterisk/ noch gähnende Leere vor. In diesem Verzeichnis liegen die Konfigurationsdateien von Asterisk und da wir nicht von Null beginnen möchten, lassen wir uns die Standarddateien erstellen. Dies erreichen wir mit einem sudo make samples:

ubuntu@ubuntu:/tmp/asterisk-1.2.13$ sudo make samples
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo;

[...]

for x in vm-theperson digits/1 digits/2 digits/3 digits/4 vm-isonphone; do \
                cat /var/lib/asterisk/sounds/$x.gsm >> /var/spool/asterisk/voicemail/default/1234/busy.gsm ; \
        done
ubuntu@ubuntu:/tmp/asterisk-1.2.13$ 

Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl sudo asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):

ubuntu@ubuntu:/tmp/asterisk-1.2.13$ sudo asterisk -V
Asterisk 1.2.13
ubuntu@ubuntu:/tmp/asterisk-1.2.13$ 

Warnung

Dadurch, dass Ubuntu normalen root-Zugriff nur über sudo zulässt, müssen Sie bei allen Beispielen in diesem Buch bei Aufrufen von Asterisk immer ein sudo davorschreiben. Wenn Sie als Benutzer ubuntu Asterisk starten, werden Sie eine Fehlermeldung bekommen, da der Benutzer ubuntu nicht in allen Verzeichnissen schreiben kann.

Der richtige Aufruf zum Starten von Asterisk muss also immer wie folgt aussehen: sudo asterisk -c oder sudo asterisk

2.6.3. Installation Asterisk 1.2.x auf OpenSUSE Linux

Diese Installationsanleitung setzt ein aktuelles OpenSUSE 10.2 aus dem stabilen Entwicklungszweig voraus. Falls Sie nicht bereits eine fertig installierte OpenSUSE-Distribution haben, können Sie sich die entsprechenden Installationsmedien auf folgender Seite herunterladen: http://de.opensuse.org/Stabile_Version.

Um Asterisk zu kompilieren, benötigen Sie einige zusätzliche Pakete. Diese können Sie mit dem SuSE Administrationstool YaST installieren. Bitte starten Sie dazu YaST.

Wählen Sie im Installationsfenster als Filter "Schemata" aus, dort finden Sie dann als installierbare Schemata unter "Entwicklung" die Einträge "Grundlegende Entwicklung", "C/C++ Entwicklung" und "Linux-Kernel-Entwicklung".

Wechseln Sie dann wieder auf "Suchen" als Filter und suchen Sie nach folgenden Stichworten: "openssl, krb5, ncurses, zlib". Installieren Sie jeweils das gleichnamige Paket, als auch das mit dem Zusatz "devel", also z.B. "openssl" und "openssl-devel". Nach erfolgreicher Einrichtung der Buildumgebung können dann im nächsten Schritt die Asterisk-Sourcen heruntergeladen und kompiliert werden.

Auf der Asterisk-Homepage http://www.asterisk.org/ finden Sie die notwendigen Quellen, um Asterisk zu kompilieren. Nehmen Sie bitte eine stabile und keine Entwickler-Version und laden Sie diese mit wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz in das Verzeichnis /usr/src/ herunter:

linux:~# cd /usr/src
linux:/usr/src# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
--18:30:46--  http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
           => `asterisk-1.2-current.tar.gz'
Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164
Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 10,584,113 [application/x-gzip]

100%[====================================>] 10,584,113   224.71K/s    ETA 00:00

18:31:36 (207.67 KB/s) - »asterisk-1.2-current.tar.gz« gespeichert [10584113/10584113]

Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.2-current.tar.gz entpackt werden:

linux:/usr/src# tar xvzf asterisk-1.2-current.tar.gz 
asterisk-1.2.13/
asterisk-1.2.13/build_tools/
asterisk-1.2.13/build_tools/make_svn_branch_name
asterisk-1.2.13/build_tools/mkdep
asterisk-1.2.13/build_tools/make_build_h
asterisk-1.2.13/build_tools/make_version_h
asterisk-1.2.13/build_tools/make_defaults_h
asterisk-1.2.13/aesopt.h
asterisk-1.2.13/utils.c
asterisk-1.2.13/keys/
[...]
asterisk-1.2.13/cli.c
asterisk-1.2.13/io.c
asterisk-1.2.13/ulaw.c
asterisk-1.2.13/logger.c
linux:/usr/src# 

Die entpackten Dateien müssen jetzt kompiliert werden.[7]Dies geschieht mit dem Befehl make im gerade entpackten Verzeichnis.

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 1.2.13 vielleicht zum Zeitpunkt Ihrer Installation nicht mehr aktuell ist. Entsprechend werden sich die Verzeichnisnamen ändern.

Übrigens ist dies jetzt vielleicht ein guter Moment, sich einen Kaffee oder Tee zu kochen. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern.

linux:/usr/src# cd asterisk-1.2.13
linux:/usr/src/asterisk-1.2.13# make
if cmp -s .cleancount .lastclean ; then echo ; else \
        make clean; cp -f .cleancount .lastclean;\

[...]

make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/src/asterisk-1.2.13/stdtime'
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, but +
 + cannot be run before being installed by   +
 + running:                                  +
 +                                           +
 +               make install                +
 +-------------------------------------------+

Die Software ist jetzt kompiliert und muss nur noch mit make install installiert (sprich in die richtigen Verzeichnisse kopiert) werden:

linux:/usr/src/asterisk-1.2.13# make install
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; 
then echo;

[...]

 +---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 +               make samples                +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +              make progdocs                +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+

Die eben kompilierten Programmdateien sind jetzt auf dem System installiert. Allerdings finden wir im Asterisk-Konfigurationsverzeichnis /etc/asterisk/ noch gähnende Leere vor. In diesem Verzeichnis liegen die Konfigurationsdateien von Asterisk und da wir nicht von Null beginnen möchten, lassen wir uns die Standarddateien erstellen. Dies erreichen wir mit einem make samples:

linux:/usr/src/asterisk-1.2.13# make samples
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; 
then echo;

[...]

done

Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie darauf, dass es sich um ein großgeschriebenes V handelt):

linux:/usr/src/asterisk-1.2.13# asterisk -V
Asterisk 1.2.13

2.6.4. Installation Asterisk 1.2.x auf Fedora Linux

Diese Installationsanleitung setzt ein frisch installiertes Fedora Core 6 "Zod" voraus. Eine Liste von Mirrors zum Download des ISO-Images findet man unter http://fedora.redhat.com/Download/mirrors.html . Auf einem Mirror Ihrer Wahl laden Sie dann das CD- oder besser gleich das DVD-Image herunter. Mit der gebrannten DVD können Sie nun den Rechner booten und Fedora installieren.

Bitte logen Sie sich danach als Benutzer root in das System ein und führen Sie alle hier angegebenen Befehle mit diesem Benutzer aus.

Als Erstes stellen Sie mit einem yum -y update sicher, dass Ihr Fedora Linux-System nur aktuelle Pakete installiert hat:

[root@fc6 ~]# yum -y update
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
core                      100% |=========================| 1.1 kB    00:00     
extras                    100% |=========================| 1.1 kB    00:00     
updates                   100% |=========================| 1.2 kB    00:00     
Reading repository metadata in from local files

[...]

Replaced: bluez-pin.i386 0:0.30-5
Complete!
[root@fc6 ~]# 

Am besten starten Sie nach dem Update den Server neu mit init 6

Jetzt müssen Sie mit yum -y groupinstall "Development Tools" noch einige Pakete installieren:

[root@fc6 ~]# yum -y groupinstall "Development Tools"
Loading "installonlyn" plugin
Setting up Group Process
Setting up repositories
Setting up repositories
Reading repository metadata in from local files
Package make - 1:3.81-1.1.i386 already installed and latest version

[...]

  Installing: automake17                   ####################### [53/53] 

Installed: autoconf.noarch 0:2.59-12 automake.noarch 0:1.9.6-2.1 automake14.noarch 0:1.4p6-13 automake15.noarch 0:1.5-16 automake16.noarch 0:1.6.3-8 automake17.noarch 0:1.7.9-7 bison.i386 0:2.3-2.1 byacc.i386 0:1.9-29.2.2 cscope.i386 0:15.5-15.fc6.1 ctags.i386 0:5.6-1.1 cvs.i386 0:1.11.22-6.fc6 diffstat.i386 0:1.41-1.2.2 doxygen.i386 1:1.5.1-1 elfutils.i386 0:0.123-1.fc6 flex.i386 0:2.5.4a-41.fc6 frysk.i686 0:0.0.1.2006.12.22.rh1-1.fc6 gcc.i386 0:4.1.1-30 gcc-c++.i386 0:4.1.1-30 gcc-gfortran.i386 0:4.1.1-30 gdb.i386 0:6.5-15.fc6 indent.i386 0:2.2.9-14.fc6 libtool.i386 0:1.5.22-6.1 ltrace.i386 0:0.5-6.45svn.fc6 oprofile.i386 0:0.9.2-3.fc6 oprofile-gui.i386 0:0.9.2-3.fc6 patchutils.i386 0:0.2.31-2.2.2 pfmon.i386 0:3.2-0.060621.7.1 pstack.i386 0:1.2-7.2.2 python-ldap.i386 0:2.2.0-2.1 rcs.i386 0:5.7-30.1 redhat-rpm-config.noarch 0:8.0.45-6 rpm-build.i386 0:4.4.2-32 strace.i386 0:4.5.14-3 subversion.i386 0:1.4.2-2.fc6 swig.i386 0:1.3.31-0.fc6 systemtap.i386 0:0.5.10-1.fc6 texinfo.i386 0:4.8-14.fc6 valgrind.i386 1:3.2.1-4
Dependency Installed: cairo-java.i386 0:1.0.5-3.fc6 elfutils-libs.i386 0:0.123-1.fc6 glib-java.i386 0:0.2.6-3.fc6 glibc-devel.i386 0:2.5-3 glibc-headers.i386 0:2.5-3 gmp.i386 0:4.1.4-9.fc6 imake.i386 0:1.0.2-3 libgconf-java.i386 0:2.12.4-5.fc6 libgfortran.i386 0:4.1.1-30 libgomp.i386 0:4.1.1-30 libgtk-java.i386 0:2.8.7-2.fc6 libpfm.i386 0:3.2-0.060621.8.1 libstdc++-devel.i386 0:4.1.1-30 perl-URI.noarch 0:1.35-3 systemtap-runtime.i386 0:0.5.10-1.fc6
Complete!
[root@fc6 ~]# 

Zum Schluss noch ein yum -y install libtermcap-devel ncurses-devel openssl-devel ausführen, damit das Kompilieren von Asterisk erfolgreich durchgeführt werden kann:

[root@fc6 ~]# yum -y install libtermcap-devel ncurses-devel openssl-devel
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories

[...]

Installed: libtermcap-devel.i386 0:2.0.8-46.1 ncurses-devel.i386 0:5.5-24.20060715 openssl-devel.i386 0:0.9.8b-8.3.fc6
Dependency Installed: e2fsprogs-devel.i386 0:1.39-7.fc6 krb5-devel.i386 0:1.5-7 zlib-devel.i386 0:1.2.3-3
Complete!
[root@fc6 ~]# 

Auf der Asterisk-Homepage http://www.asterisk.org/ finden Sie die notwendigen Quellen, um Asterisk zu kompilieren. Nehmen Sie bitte eine stabile und keine Entwickler-Version und laden Sie diese mit wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz in das Verzeichnis /usr/src/ herunter:

fc6:~# cd /usr/src
fc6:/usr/src# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
--18:30:46--  http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
           => `asterisk-1.2-current.tar.gz'
Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164
Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 10,584,113 [application/x-gzip]

100%[====================================>] 10,584,113   224.71K/s    ETA 00:00

18:31:36 (207.67 KB/s) - »asterisk-1.2-current.tar.gz« gespeichert [10584113/10584113]

Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.2-current.tar.gz entpackt werden:

fc6:/usr/src# tar xvzf asterisk-1.2-current.tar.gz 
asterisk-1.2.14/
asterisk-1.2.14/build_tools/
asterisk-1.2.14/build_tools/make_svn_branch_name
asterisk-1.2.14/build_tools/mkdep
asterisk-1.2.14/build_tools/make_build_h
asterisk-1.2.14/build_tools/make_version_h
asterisk-1.2.14/build_tools/make_defaults_h
asterisk-1.2.14/aesopt.h
asterisk-1.2.14/utils.c
asterisk-1.2.14/keys/
[...]
asterisk-1.2.14/cli.c
asterisk-1.2.14/io.c
asterisk-1.2.14/ulaw.c
asterisk-1.2.14/logger.c
fc6:/usr/src#

Die entpackten Dateien müssen jetzt kompiliert werden.[8]Dies geschieht mit dem Befehl make im gerade entpackten Verzeichnis.

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 1.2.14 vielleicht zum Zeitpunkt Ihrer Installation nicht mehr aktuell ist. Entsprechend werden sich die Verzeichnisnamen ändern.

Übrigens ist dies jetzt ein guter Moment, sich einen Kaffee oder Tee zu kochen. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern.

fc6:/usr/src# cd asterisk-1.2.14
fc6:/usr/src/asterisk-1.2.14# make
if cmp -s .cleancount .lastclean ; then echo ; else \
        make clean; cp -f .cleancount .lastclean;\

[...]

make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Leaving directory `/usr/src/asterisk-1.2.14/stdtime'
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, but +
 + cannot be run before being installed by   +
 + running:                                  +
 +                                           +
 +               make install                +
 +-------------------------------------------+
[root@fc6 asterisk-1.2.14]#

Die Software ist jetzt kompiliert und muss nur noch mit make install installiert (sprich an die vorgesehenen Stellen im Dateisystem kopiert) werden:

fc6:/usr/src/asterisk-1.2.14# make install
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; 
then echo;

[...]

 +---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 +               make samples                +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +              make progdocs                +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+

Geschafft! Die soeben kompilierten Programmdateien sind jetzt auf dem System installiert. Allerdings finden wir im Asterisk-Konfigurationsverzeichnis /etc/asterisk/ noch gähnende Leere vor. In diesem Verzeichnis liegen die Konfigurationsdateien von Asterisk und da wir nicht von Null beginnen möchten, lassen wir uns die Standarddateien erstellen. Dies erreichen wir mit make samples:

fc6:/usr/src/asterisk-1.2.14# make samples
build_tools/make_version_h > include/asterisk/version.h.tmp
if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; 
then echo;

[...]

done

Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):

fc6:/usr/src/asterisk-1.2.14# asterisk -V
Asterisk 1.2.14

2.6.5. Installation Asterisk 1.2.x auf FreeBSD

Diese Installationsanleitung setzt ein frisch installiertes FreeBSD (aktuell ist Version 6.1) voraus. ISO-Images für eine entsprechende i386er FreeBSD-Installation finden Sie unter ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.1/. Eine Installationsanleitung befindet sich bei http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install.html.

Nach erfolgreicher Installation melden Sie sich als Benutzer root am System an und führen Sie die hier nachfolgend angegebenen Befehle aus. Bitte achten Sie darauf, keinen Schritt auszulassen und die Schritte als Benutzer root durchzuführen.

Warnung

Da FreeBSD seit dem Release der Version 6.0 aktuelle Asterisk-Pakete beinhaltet hat, beschreibt diese Anleitung nicht die Installation aus den Asterisk-Quellen, sondern aus dem FreeBSD Portage-Tree.

Die Installation erfolgt dabei ganz einfach, einen aktuellen Portage-Tree vorausgesetzt, und zwar wie folgt:

Tipp

Es gibt verschiedene Möglichkeiten, den Portage-Tree aktuell zu halten. Eine Variante besteht in einem Supfile /etc/supfile-ports mit folgendem Inhalt:

*default host=cvsup6.de.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
ports-all

Danach kann wie folgt der Portsdb-Index aktualisiert werden:

# cvsup -L 2 -g /etc/supfile-ports
# portsdb -Uu

Nach der Aktualisierung des Portage-Trees kann Asterisk dann einfach mit dem folgenden Befehl installiert werden:

# cd /usr/ports/net/asterisk
# make install distclean

Nach der Installation des Basispaketes werden dann die Asterisk-Add-ons installiert:

# cd /usr/ports/net/asterisk-addon
# make install distclean

Warnung

Wenn ISDN genutzt werden soll, dann empfiehlt sich der Einsatz des net/asterisk-bristuff-Paketes anstelle von net/asterisk. Allerdings ist die Installation von ISDN und von chan_capi unter FreeBSD nicht trivial und wird derzeitig vom Portage System nicht unterstützt. Eine genaue Besprechung der Vorgehensweise würde den Rahmen dieses Buches sprengen und wird daher hier nicht beschrieben. Digium unterhält eine Asterisk-BSD Mailingliste, auf der man weitere Hilfe bekommen kann: http://lists.digium.com/mailman/listinfo/asterisk-bsd.

Soll Asterisk beim Booten automatisch starten, so ist in der Datei /etc/rc.conf die folgende Zeile einzutragen:

asterisk_enable="YES"

Warnung

Unter FreeBSD werden die Konfigurationsdateien der nachinstallierten Softwarepakete unter /usr/local/etc/ gespeichert, um diese von den Systemdateien unter /etc/ zu trennen. Daher liegen die Asterisk-Konfigurationsdateien nicht wie oft in diesem Buch beschrieben in /etc/asterisk/, sondern in /etc/local/etc/asterisk/.

2.6.6. Installation Asterisk 1.2.x auf Mac OS X

Asterisk kann auf dem Mac ab OS X 10.2.8 („Jaguar“) zum Laufen gebracht werden. Empfehlenswert ist jedoch die aktuellste Version (z.Zt. 10.4.8, „Tiger“). Eine Installation auf Mac OS X Server ist ebenfalls möglich.

Anmerkung

Unterstützung für PCI-Karten ist in Asterisk auf MacOS X bisher noch nicht möglich. Will man also seinen Server direkt mit dem öffentlichen Telefonnetz verbinden, muss man auf einen externen Gateway-Provider zurückgreifen. [9]Das „Unicall for MacOS X“-Projekt arbeitet an einer Lösung.

Asterisk ist für verschiedene Anwendungen (z.B. MeetMe-Konferenzen) zu Timing-Zwecken auf Zaptel-Hardware angewiesen. Als Alternative kann man den mitgelieferten ztdummy-Treiber kompilieren - was aber auf MacOS X kaum möglich sein dürfte.

Es kann in Ausnahmefällen auch zu Problemen mit den Formaten WAV und WAV49 kommen (GSM funktioniert).

Asterisk ist auf MacOS X insgesamt noch keine ganz „runde“ Lösung. Zu Testzwecken oder für den Heimgebrauch zwar problemlos möglich, für größere Installationen aber (noch?) nicht empfehlenswert, wenn man auf die genannten Funktionen angewiesen ist.

Möglicherweise stehen bald unter http://www.mactelephony.net/ (ehemals http://www.astmasters.net/, inzwischen nicht mehr erreichbar) „Binaries“, also vorkompilierte Pakete, zum Download bereit. [10]Bezüglich der Aktualität der Software schadet es aber nicht, Asterisk neu zu kompilieren.

Vorausetzung sind die bei MacOS X mitgelieferten oder im Internet von Apple verfügbaren Developer Tools („Xcode“).

Tipp

Falls Sie die DVD nicht greifbereit haben, können Sie Xcode auch von der Apple-Webseite http://developer.apple.com/tools/xcode/ downloaden.

Installieren Sie diese, falls Sie das noch nicht getan haben (dieses Paket legt das Verzeichnis /Developer auf Ihrer Festplatte an). Danach steht z.B. der Compiler gcc und weitere Tools zur Verfügung.

Laden Sie von http://www.asterisk.org/ (oder direkt http://ftp.digium.com/pub/) die Asterisk-Quellen (Sources) in der gewünschten Version herunter. Sie können das im Browser machen oder auf der Kommandozeile (statt http:// ist auch ftp:// möglich):

$  curl -O http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz

Danach wird das komprimierte Archiv entpackt:

$  tar -xvzf asterisk-1.2-current.tar.gz
asterisk-1.2.13/
asterisk-1.2.13/build_tools/
asterisk-1.2.13/build_tools/make_svn_branch_name
asterisk-1.2.13/build_tools/mkdep
asterisk-1.2.13/build_tools/make_build_h
[...]

Jetzt müssen wir in das gerade entpackte Verzeichnis wechseln und Asterisk mit make kompilieren. Bitte beachten Sie, dass 1.2.13 vielleicht nicht mehr die aktuellste Version ist; passen Sie also die Befehle entsprechend an.

$  cd asterisk-1.2.13/
$  make

Da dieser Vorgang je nach Leistung Ihres Rechners einige Zeit dauern kann, empfehle ich an dieser Stelle eine Tasse Tee[11] oder Kaffee. [12]Der Testrechner war allerdings schon nach etwa 3 Minuten fertig, was sich in dieser erfreulichen Botschaft ausdrückt:

[...]
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +               make install                +
 +-------------------------------------------+

Die Software ist jetzt kompiliert. Der nächste Schritt muss mit Root-Rechten ausgeführt werden. Hierzu bedienen wir uns auf Mac OS X des Programms sudo.

Jetzt nur noch alle Dateien automatisch mit sudo make install installieren, also in die richtigen Verzeichnisse kopieren lassen:

$  sudo make install
[...]
 +---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 +               make samples                +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +              make progdocs                +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+

Und da wir sofort loslegen wollen, lassen wir auch noch mit sudo make samples die Beispiel-Konfiguration erstellen:

$  sudo make samples
[...]
done

Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):

$  asterisk -V
Asterisk 1.2.13

Ihren Asterisk-Server können Sie mit sudo asterisk starten und mit sudo asterisk -rx "stop now" beenden.

2.6.6.1. Asterisk automatisch beim Hochfahren starten

Unsere Installation hat noch eine Schwäche: Wenn Sie Ihren Computer neu starten, läuft der Asterisk-Server nicht mehr. Auf einem „Production“-Server ist es natürlich wünschenswert, dass Asterisk immer automatisch startet (während man das auf einem Arbeitsplatzrechner eher nicht will). Unter Mac OS X ist das Vorgehen etwas anders, als man es von anderen *nixen kennt. Man richtet sich am besten ein Startup Item ein, indem man im Verzeichnis /Library/StartupItems/ ein neues Verzeichnis Asterisk/ anlegt. Darin erstellt man mit einem Text-Editor seiner Wahl eine Datei StartupParameters.plist mit dem Inhalt:

{
  Description = "Asterisk PBX";
  Provides = ("Asterisk");
  OrderPreference = "Last";
  Messages =
  {
    start = "Starting Asterisk";
    stop  = "Stopping Asterisk";
  };
}

Diese Datei sagt dem SystemStarter, was unser Startup-Item bereitstellt und in welcher Rehenfolge es relativ zu den anderen Startup-Items geladen werden soll.

Jetzt brauchen wir noch eine zweite Datei mit dem Namen Asterisk, nämlich ein Shell-Skript, das dem SystemStarter erklärt, wie Asterisk zu starten und zu beenden ist:

#!/bin/sh

# ohne Parameter geben wir aus, wie dieses Skript aufzurufen ist:
#
if [ -z $1 ] ; then
  echo "Usage: $0 [start|stop|restart] "
  exit 1
fi

# die Funktionen für Startup-Skripte einbinden:
#
test -r /etc/rc.common || exit 1
. /etc/rc.common

# das ausführbare Asterisk-Programm finden:
#
if [ -x /usr/sbin/asterisk ]; then
  ASTERISK="/usr/sbin/asterisk"
else
  if [ -x /opt/sbin/asterisk ]; then
    ASTERISK="/opt/sbin/asterisk"
  else
    if [ -x asterisk ]; then
      ASTERISK="asterisk"
    else
      ConsoleMessage "Cannot find asterisk"
      exit 1
    fi
  fi
fi

# Funktion zum Starten von Asterisk:
#
StartService ()
{
  if [ ! -f /var/run/asterisk.pid ]; then
    ConsoleMessage "Starting Asterisk"
    $ASTERISK
  else
    ConsoleMessage "Asterisk already running"
  fi
}

# Funktion zum Stoppen von Asterisk:
#
StopService ()
{
  if [ -f /var/run/asterisk.pid ]; then
    ConsoleMessage "Stopping Asterisk"
    $ASTERISK -rx "stop now"
  else
    ConsoleMessage "Asterisk not running"
  fi
}

# Funktion zum Neu-Starten von Asterisk:
#
RestartService ()
{
  if [ -f /var/run/asterisk.pid ]; then
    ConsoleMessage "Reloading Asterisk configuration"
    $ASTERISK -rx reload
  else
    StartService
  fi
}

# je nach Parameter die entsprechende oben definierte Funktion
# aufrufen:
#
RunService "$1"

Es ist wichtig, dass diese Dateien dem Benutzer root und der Gruppe wheel gehören und kein anderer Schreibrechte an diesen Dateien hat. Wir machen also Folgendes im Terminal:

$  cd /Library/StartupItems/
$  sudo chown -R root:wheel Asterisk
$  sudo chmod -R 754 Asterisk

Fertig. Wenn wir jetzt unseren Rechner hochfahren, wird Asterisk automatisch gestartet. Wir können das selbst im Terminal testen:

$  sudo SystemStarter start Asterisk
$  ps ax | grep ast
  521  ??  Ss     0:00.13 /usr/sbin/asterisk
  528  p1  S+     0:00.00 grep ast
$  sudo SystemStarter stop Asterisk
  538  p1  S+     0:00.00 grep ast


[5] Die Linux-Cracks unter den Lesern mögen mir diese starke Vereinfachung verzeihen.

[6] Die Linux-Cracks unter den Lesern mögen mir diese starke Vereinfachung verzeihen.

[7] Die Linux-Cracks unter den Lesern mögen mir diese starke Vereinfachung verzeihen.

[8] Die Linux-Cracks unter den Lesern mögen mir diese starke Vereinfachung verzeihen.

[10] Zur Drucklegung fand sich ein etwas älteres Binary auf http://www.dacrib.net/rant/ (ggf. auf der Seite nach „Asterisk“ suchen).

[11] Vorzugsweise einen Darjeeling First Flush FTGFOP von der Teekampagne

[12] Jedes kleine Kind weiß, dass man Kaffee nicht unbeaufsichtigt rumstehen lässt!