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.7. Asterisk 1.4

2.7.1. Installation Asterisk 1.4.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 finden Sie unter http://cdimage.debian.org/debian-cd/3.1_r4/i386/iso-cd/debian-31r4-i386-netinst.iso. Eine Debian GNU/Linux-Installationsanleitung befindet sich unter http://www.debian.org/releases/stable/i386/. Ein allgemeines Anwenderhandbuch steht unter http://debiananwenderhandbuch.de.

Bitte loggen Sie sich 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 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

Um sicherzugehen, dass alle Pakete auf dem neuesten Stand sind, führen Sie 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.

Jetzt müssen Sie mit apt-get -y install libncurses5-dev noch ein Paket nachinstallieren, damit das Kompilieren von Asterisk erfolgreich durchgeführt werden kann:

debian:~# apt-get -y install libncurses5-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden NEUEN Pakete werden installiert:
  libncurses5-dev
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen noch 0B von 1038kB Archiven geholt werden.
Nach dem Auspacken werden 5296kB Plattenplatz zusätzlich benutzt.
Wähle vormals abgewähltes Paket libncurses5-dev.
(Lese Datenbank ... 21874 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke libncurses5-dev (aus .../libncurses5-dev_5.4-4_i386.deb) ...
Richte libncurses5-dev ein (5.4-4) ...
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.4-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.4-current.tar.gz
--18:53:00--  http://ftp.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
           => `asterisk-1.4-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,928,902 [application/x-gzip]

100%[====================================>] 10,928,902   230.71K/s    ETA 00:00

18:53:47 (227.00 KB/s) - »asterisk-1.4-current.tar.gz« gespeichert [10928902/10928902]

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

debian:/usr/src# tar xvzf asterisk-1.4-current.tar.gz 
asterisk-1.4.0/
asterisk-1.4.0/build_tools/
asterisk-1.4.0/build_tools/mkpkgconfig
asterisk-1.4.0/build_tools/get_moduleinfo
asterisk-1.4.0/build_tools/mkdep
asterisk-1.4.0/build_tools/get_makeopts
asterisk-1.4.0/build_tools/make_version

[...]

asterisk-1.4.0/menuselect/mxml/COPYING
asterisk-1.4.0/menuselect/mxml/CHANGES
asterisk-1.4.0/menuselect/mxml/mxml-file.c
asterisk-1.4.0/menuselect/mxml/install-sh
asterisk-1.4.0/menuselect/mxml/mxml.pc
debian:/usr/src# 

Asterisk 1.4 ist die erste Version, die den allgemein üblichen autoconf-Mechanismus benutzt. Als Erstes muss also im Asterisk-Verzeichnis ein ./configure aufgerufen werden:

debian:/usr/src# cd asterisk-1.4.0/
debian:/usr/src/asterisk-1.4.0# ./configure 
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for uname... /bin/uname
checking for gcc... gcc

[...]

configure: creating ./config.status
config.status: creating build_tools/menuselect-deps
config.status: creating makeopts
config.status: creating channels/h323/Makefile
config.status: creating include/asterisk/autoconfig.h

               .$$$$$$$$$$$$$$$=..      
            .$7$7..          .7$$7:.    
          .$$:.                 ,$7.7   
        .$7.     7$$$$           .$$77  
     ..$$.       $$$$$            .$$$7 
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7 
$$$       .7$$$$$$$$$$$$$$$$      :$$$. 
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
$$$        $$$   7$$$7  .$$$    .$$$.   
$$$$             $$$$7         .$$$.    
7$$$7            7$$$$        7$$$      
 $$$$$                        $$$       
  $$$$7.                       $$  (TM)     
   $$$$$$$.           .7$$$$$$  $$      
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
       $$$$$$$$$$$$$$$$.                

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : i686
debian:/usr/src/asterisk-1.4.0# 

Asterisk muss jetzt kompliliert werden.[13]Dies geschieht mit dem Befehl make.

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 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/asterisk-1.4.0# make
make[1]: Entering directory `/usr/src/asterisk-1.4.0/menuselect'
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes

[...]

   [LD] abstract_jb.o acl.o aescrypt.o aeskey.o aestab.o alaw.o app.o ast_expr2.o ast_expr2f.o asterisk.o astmm.o autoservice.o callerid.o cdr.o channel.o chanvars.o cli.o config.o cryptostub.o db.o devicestate.o dns.o dnsmgr.o dsp.o enum.o file.o fixedjitterbuf.o frame.o fskmodem.o http.o image.o indications.o io.o jitterbuf.o loader.o logger.o manager.o md5.o netsock.o pbx.o plc.o privacy.o rtp.o say.o sched.o sha1.o slinfactory.o srv.o stdtime/localtime.o strcompat.o tdd.o term.o translate.o udptl.o ulaw.o utils.o editline/libedit.a db1-ast/libdb1.a -> asterisk
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +               make install                +
 +-------------------------------------------+
debian:/usr/src/asterisk-1.4.0# 

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

debian:/usr/src/asterisk-1.4.0# make install
make[1]: Für das Ziel »depend« ist nichts zu tun.
make[1]: Für das Ziel »depend« ist nichts zu tun.

[...]

for x in ; do /usr/bin/install -c -m 755 $x /usr/lib/asterisk/modules ; done
make[1]: Leaving directory `/usr/src/asterisk-1.4.0/main'
 +---- 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    +
 +-------------------------------------------+
debian:/usr/src/asterisk-1.4.0# 

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:

debian:/usr/src/asterisk-1.4.0# make samples
mkdir -p /etc/asterisk
for x in configs/*.adsi; do \
        if [ ! -f /etc/asterisk/$x ]; then \
                /usr/bin/install -c -m 644 $x /etc/asterisk/`/usr/bin/basename $x` ; \
        fi ; \

[...]

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
debian:/usr/src/asterisk-1.4.0# 

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

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

2.7.2. Installation Asterisk 1.4.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 finden Sie 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 apt-get -y install make gcc g++ libncurses5-dev noch ein paar Pakete nachinstallieren, damit das Kompilieren von Asterisk erfolgreich durchgeführt werden kann:

ubuntu@ubuntu:~$ sudo apt-get -y install make gcc g++ libncurses5-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
  libstdc++6-4.0-dev linux-kernel-headers make
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 13.1MB of archives.
After unpacking 52.6MB of additional disk space will be used.
Get:1 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.4-current.tar.gz in das Verzeichnis /tmp herunter:

ubuntu@ubuntu:/tmp$ wget http://ftp.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
--11:16:56--  http://ftp.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
           => `asterisk-1.4-current.tar.gz'
Resolving ftp.digium.com... 216.27.40.102, 69.16.138.164
Connecting to ftp.digium.com|216.27.40.102|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10,928,902 (10M) [application/x-gzip]

100%[====================================>] 10,928,902   228.90K/s    ETA 00:00

11:17:44 (228.19 KB/s) - `asterisk-1.4-current.tar.gz' saved [10928902/10928902]

ubuntu@ubuntu:/tmp$ 

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

ubuntu@ubuntu:/tmp$ tar xvzf asterisk-1.4-current.tar.gz 
asterisk-1.4.0/
asterisk-1.4.0/build_tools/
asterisk-1.4.0/build_tools/mkpkgconfig
asterisk-1.4.0/build_tools/get_moduleinfo
asterisk-1.4.0/build_tools/mkdep
asterisk-1.4.0/build_tools/get_makeopts
asterisk-1.4.0/build_tools/make_version

[...]

asterisk-1.4.0/menuselect/mxml/COPYING
asterisk-1.4.0/menuselect/mxml/CHANGES
asterisk-1.4.0/menuselect/mxml/mxml-file.c
asterisk-1.4.0/menuselect/mxml/install-sh
asterisk-1.4.0/menuselect/mxml/mxml.pc
ubuntu@ubuntu:/tmp$ 

Asterisk 1.4 ist die erste Version, die den allgemein üblichen autoconf-Mechanismus benutzt. Zuerst muss also im Asterisk-Verzeichnis ein ./configure aufgerufen werden:

ubuntu@ubuntu:/tmp$ cd asterisk-1.4.0/
ubuntu@ubuntu:/tmp/asterisk-1.4.0$ ./configure 
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for uname... /bin/uname
checking for gcc... gcc


[...]

configure: creating ./config.status
config.status: creating build_tools/menuselect-deps
config.status: creating makeopts
config.status: creating channels/h323/Makefile
config.status: creating include/asterisk/autoconfig.h

               .$$$$$$$$$$$$$$$=..      
            .$7$7..          .7$$7:.    
          .$$:.                 ,$7.7   
        .$7.     7$$$$           .$$77  
     ..$$.       $$$$$            .$$$7 
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7 
$$$       .7$$$$$$$$$$$$$$$$      :$$$. 
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
$$$        $$$   7$$$7  .$$$    .$$$.   
$$$$             $$$$7         .$$$.    
7$$$7            7$$$$        7$$$      
 $$$$$                        $$$       
  $$$$7.                       $$  (TM)     
   $$$$$$$.           .7$$$$$$  $$      
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
       $$$$$$$$$$$$$$$$.                

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : i686
ubuntu@ubuntu:/tmp/asterisk-1.4.0$ 

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

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 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.

debian:/usr/src/asterisk-1.4.0# make
make[1]: Entering directory `/usr/src/asterisk-1.4.0/menuselect'
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes

[...]

   [LD] abstract_jb.o acl.o aescrypt.o aeskey.o aestab.o alaw.o app.o ast_expr2.o ast_expr2f.o asterisk.o astmm.o autoservice.o callerid.o cdr.o channel.o chanvars.o cli.o config.o cryptostub.o db.o devicestate.o dns.o dnsmgr.o dsp.o enum.o file.o fixedjitterbuf.o frame.o fskmodem.o http.o image.o indications.o io.o jitterbuf.o loader.o logger.o manager.o md5.o netsock.o pbx.o plc.o privacy.o rtp.o say.o sched.o sha1.o slinfactory.o srv.o stdtime/localtime.o strcompat.o tdd.o term.o translate.o udptl.o ulaw.o utils.o editline/libedit.a db1-ast/libdb1.a -> asterisk
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +               make install                +
 +-------------------------------------------+
debian:/usr/src/asterisk-1.4.0# 

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.4.0$ sudo make install
make[1]: Nothing to be done for `depend'.
make[1]: Nothing to be done for `depend'.

[...]

for x in ; do /usr/bin/install -c -m 755 $x /usr/lib/asterisk/modules ; done
make[1]: Leaving directory `/tmp/asterisk-1.4.0/main'
 +---- 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.4.0$ 

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.4.0$ sudo make samples
mkdir -p /etc/asterisk
for x in configs/*.adsi; do \
                if [ ! -f /etc/asterisk/$x ]; then \
                        /usr/bin/install -c -m 644 $x /etc/asterisk/`/usr/bin/basename $x` ; \
                fi ; \


[...]

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.4.0$ 

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

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

2.7.3. Installation Asterisk 1.4.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 loggen 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@localhost ~]# 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

[...]

bs.i386 0:0.7.40-1.fc6 system-config-soundcard.noarch 0:2.0.5-2.fc6 system-config-users.noarch 0:1.2.47-1.fc6 tar.i386 2:1.15.1-22.fc6 tcpdump.i386 14:3.9.4-9.fc6 tcsh.i386 0:6.14-12 traceroute.i386 3:2.0.2-1.fc6 tzdata.noarch 0:2006p-1.fc6 util-linux.i386 0:2.13-0.45.1.fc6 vnc-server.i386 0:4.1.2-7.fc6 wpa_supplicant.i386 1:0.4.9-1.fc6 xorg-x11-drv-ati.i386 0:6.6.3-1.fc6 xorg-x11-drv-i810.i386 0:1.6.5-10.fc6 xorg-x11-server-Xorg.i386 0:1.1.1-47.1.fc6 xorg-x11-xinit.i386 0:1.0.2-15.fc6 yelp.i386 0:2.16.0-10.fc6 ypbind.i386 3:1.19-6.fc6 yum.noarch 0:3.0.1-2.fc6 yum-updatesd.noarch 0:3.0.1-2.fc6
Replaced: bluez-pin.i386 0:0.30-5
Complete!
[root@localhost ~]# 

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

[root@localhost ~]# 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                   ####################### [56/56] 

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.01.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-13.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.29-2.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 libglade-java.i386 0:2.12.5-3.fc6 libgnome-java.i386 0:2.12.4-3.fc6 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 libvte-java.i386 0:0.12.1-5.fc6 perl-URI.noarch 0:1.35-3 systemtap-runtime.i386 0:0.5.10-1.fc6
Complete!
[root@localhost ~]# 

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@localhost ~]# 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
Complete!
[root@localhost ~]# 

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.4-current.tar.gz in das Verzeichnis /usr/src/ herunter:

[root@localhost ~]# cd /usr/src
[root@localhost src]# wget http://ftp.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
--16:33:35--  http://ftp.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
Auflösen des Rechnernamens »ftp.digium.com«.... 69.16.138.164, 216.27.40.102
Verbindungsaufbau mit ftp.digium.com[69.16.138.164]:80... verbunden.
HTTP-Anfrage gesendet, warte auf Antwort... 200 OK
Länge: 10928902 (10M) [application/x-gzip]
Speichere nach: »asterisk-1.4-current.tar.gz«

100%[=======================================>] 10.928.902   142K/s   in 72s    

16:34:48 (149 KB/s) - »asterisk-1.4-current.tar.gz« gespeichert [10928902/10928902]

[root@localhost src]#

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

[root@localhost src]# tar xvzf asterisk-1.4-current.tar.gz 
asterisk-1.4.0-beta3/
asterisk-1.4.0-beta3/build_tools/
asterisk-1.4.0-beta3/build_tools/mkpkgconfig
asterisk-1.4.0-beta3/build_tools/get_moduleinfo
asterisk-1.4.0-beta3/build_tools/mkdep

[...]

asterisk-1.4.0-beta3/menuselect/mxml/CHANGES
asterisk-1.4.0-beta3/menuselect/mxml/mxml-file.c
asterisk-1.4.0-beta3/menuselect/mxml/install-sh
asterisk-1.4.0-beta3/menuselect/mxml/mxml.pc
[root@localhost src]# 

Asterisk 1.4 ist die erste Version, die den allgemein üblichen autoconf-Mechanismus benutzt. Zuerst muss also im Asterisk-Verzeichnis ein ./configure aufgerufen werden:

[root@localhost src]# cd asterisk-1.4.0
[root@localhost asterisk-1.4.0]# ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for uname... /bin/uname
checking for gcc... gcc

[...]

configure: creating ./config.status
config.status: creating build_tools/menuselect-deps
config.status: creating makeopts
config.status: creating channels/h323/Makefile
config.status: creating include/asterisk/autoconfig.h

               .$$$$$$$$$$$$$$$=..      
            .$7$7..          .7$$7:.    
          .$$:.                 ,$7.7   
        .$7.     7$$$$           .$$77  
     ..$$.       $$$$$            .$$$7 
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7 
$$$       .7$$$$$$$$$$$$$$$$      :$$$. 
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
$$$        $$$   7$$$7  .$$$    .$$$.   
$$$$             $$$$7         .$$$.    
7$$$7            7$$$$        7$$$      
 $$$$$                        $$$       
  $$$$7.                       $$  (TM)     
   $$$$$$$.           .7$$$$$$  $$      
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
       $$$$$$$$$$$$$$$$.                

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : i686
[root@localhost asterisk-1.4.0]##

Asterisk muss jetzt kompiliert werden.[15]Dies geschieht mit dem Befehl make.

Warnung

Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 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.

[root@localhost asterisk-1.4.0]# make
make[1]: Entering directory `/usr/src/asterisk-1.4.0/menuselect'
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes

[...]

   [LD] abstract_jb.o acl.o aescrypt.o aeskey.o aestab.o alaw.o app.o ast_expr2.o ast_expr2f.o asterisk.o astmm.o autoservice.o callerid.o cdr.o channel.o chanvars.o cli.o config.o cryptostub.o db.o devicestate.o dns.o dnsmgr.o dsp.o enum.o file.o fixedjitterbuf.o frame.o fskmodem.o http.o image.o indications.o io.o jitterbuf.o loader.o logger.o manager.o md5.o netsock.o pbx.o plc.o privacy.o rtp.o say.o sched.o sha1.o slinfactory.o srv.o stdtime/localtime.o strcompat.o tdd.o term.o translate.o udptl.o ulaw.o utils.o editline/libedit.a db1-ast/libdb1.a -> asterisk
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +               make install                +
 +-------------------------------------------+
[root@localhost asterisk-1.4.0]#

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

[root@localhost asterisk-1.4.0]# make install
make[1]: Für das Ziel »depend« ist nichts zu tun.
make[1]: Für das Ziel »depend« ist nichts zu tun.

[...]

for x in ; do /usr/bin/install -c -m 755 $x /usr/lib/asterisk/modules ; done
make[1]: Leaving directory `/usr/src/asterisk-1.4.0/main'
 +---- 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    +
 +-------------------------------------------+
[root@localhost asterisk-1.4.0]# 

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:

[root@localhost asterisk-1.4.0]# make samples
mkdir -p /etc/asterisk
for x in configs/*.adsi; do \
        if [ ! -f /etc/asterisk/$x ]; then \
                /usr/bin/install -c -m 644 $x /etc/asterisk/`/usr/bin/basename $x` ; \
        fi ; \

[...]

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
[root@localhost asterisk-1.4.0]# 

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

[root@localhost asterisk-1.4.0]# asterisk -V
Asterisk 1.4.0
[root@localhost asterisk-1.4.0]# 

2.7.4. Installation von Asterisk 1.4.x mit AsteriskNOW

Der Hersteller von Asterisk (die Firma Digium) hat für die Asterisk-Version 1.4 erstmalig eine eigene Linux-Distribution herausgebracht, die unter dem Namen AsteriskNOW auf der Webseite http://www.asterisknow.org zum Download angeboten wird. Diese Installation ist natürlich im Vergleich zu den anderen hier beschriebenen extrem einfach, allerdings ist man dafür später teilweise auf Digium-Hardware eingeschränkt.

Das ISO-Image für die Installations-CD können Sie auf http://www.asterisknow.org herunterladen.

Bitte stellen Sie vor der Installation sicher, dass auf dem entsprechenden Rechner keine wichtigen Daten mehr vorhanden sind. Die Festplatte wird während der Installation neu partitioniert und die Partitionen dann formatiert.

Nach dem Einlegen der CD und dem Booten (hierfür muss im BIOS die Einstellung "zuerst von CD booten" aktiviert sein) sehen Sie folgenden Bildschirm:

Um ein neues System zu installieren, können Sie hier einfach ENTER drücken.

Danach können Sie entscheiden, welche Art der Installation Sie wünschen:

Das Installationsprogramm wird danach noch ein paar Einstellungen zum System (wie z.B. die Zeitzone) abfragen und dann mit der Installation beginnen:

Ist die Installation abgeschlossen, wird das System gestartet und zeigt das AsteriskNOW Console Menu an:

Mit der Tastenkombinationen ALT-F2 erhalten Sie eine normale Konsole, auf der Sie sich mit dem User admin einlogen können. Für Rootrechte müssen Sie auch bei dieser Distribution mit dem Programm sudo arbeiten.

Tipp

Mit der Tastenkombination ALT-F9 kommen Sie ins Asterisk CLI.

Warnung

Die Benutzung von AsteriskNOW ist für den Asterisk-Anfänger an dieser Stelle wenig geeignet. Nehmen Sie als Grundlage um mit diesem Buch zu arbeiten lieber ein Debian Linux! Wer Asterisk verstanden hat, der wird die Vor- und Nachteile von AsteriskNOW abschätzen können. Für den Anfänger überwiegen die Nachteile, da in diesem Buch der Schwerpunkt in der Programmierung von Dialplänen in der extensions.conf liegt.



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

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

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