Ein nicht immer ganz zu Unrecht bestehendes Vorurteil gegenüber Asterisk ist die Behauptung, dass man mindestens 2 bis 3 Tage Webseiten und Dokumentation studieren muss, um überhaupt auch nur irgendetwas Lauffähiges zu Stande zu bekommen. Diese Hürde ist für viele Interessierte zu hoch oder es ist die Mühe und Zeit nicht wert. Wer zu denen gehört, die sich nicht lange mit einem theoretischen Unterbau beschäftigen möchten, sondern möglichst schnell ein Ergebnis sehen wollen, ist in diesem Kapitel genau richtig aufgehoben. In 30 Minuten haben Sie Ihre erste funktionierende Asterisk-Telefonanlage. Versprochen!
Bei Programmierbüchern gibt es ganz am Anfang meistens ein „Hello World“-Beispiel. Die Aufgabe des „Hello World“-Programmes ist die Ausgabe des Strings „Hello World“ auf dem Bildschirm. Es ist quasi ein Standardbeispiel, um die grundlegende Form und Syntax einer Programmiersprache aufzuzeigen und ein schnelles erstes Erfolgserlebnis zu vermitteln. Das folgende Kapitel überträgt diese Praxis auf das Thema Telefonanlagen mit Asterisk.
Wie sieht die einfachst mögliche Telefonanlage aus? Zwei Telefone und eine Black-Box, die diese beiden Telefone sinnvoll miteinander verbindet. Die Black-Box ist ein gewöhnlicher PC, auf dem wir die Asterisk-Software installieren und der von nun an unsere Telefonanlage sein wird. Die beiden Telefone sind so genannte „Softphones“, also Telefone in Software, die wir ebenfalls auf einem PC ausführen. Somit genügt für das folgende Beispiel ein einfacher PC, auf dem Sie eine aktuelle Linux-Distribution installieren, als Grundlage für unseren Kick-Start. [1]
Einen frisch mit Linux installierten PC zu einer Mini-Telefonanlage umfunktionieren
Zwei VoIP-Telefone einrichten und die Nummern 2000 und 2001 zuweisen
Vom Telefon 2000 das Telefon 2001 anrufen und umgekehrt
Sie benötigen für die Installation von Asterisk einen halbwegs aktuellen PC mit genügend Speicher. Es geht auch mit älterer Hardware, allerdings kann ich dann mein 30-Minuten Versprechen nicht einlösen und es macht auch weniger Spaß, damit zu arbeiten. Konkret sollte es mindestens ein 500 MHz Pentium-System mit 256 MByte Arbeitsspeicher (RAM) und einer 10 GByte Festplatte sein. Asterisk läuft auf allen gängigen Linux-Distributionen. Diese können Sie entweder im Geschäft kaufen oder aus dem Internet herunterladen.[2]
Bitte achten Sie darauf, dass die Linux-Distribution aktuell ist, und verwenden Sie nicht eine 2 Jahre alte Heft-CD, die noch irgendwo im Schrank liegt.
Die einzelnen Installations- und Konfigurationsanweisungen sind in diesem Buch exemplarisch für ein Linux-System auf Basis einer Debian-Distribution[3] beschrieben. Weiterhin werden die entsprechenden Anweisungen auf der Kommandozeile einer Shell eingegeben.[4]
Für 99 Prozent aller Asterisk-Installationen wird es wahrscheinlich vollkommen egal sein, ob man ein Asterisk 1.2.x oder ein Asterisk 1.4.x verwendet. Deshalb lautet die persönliche Empfehlung des Autors bis Mitte 2007 die Version 1.2.x und erst ab Mitte 2007 die Version 1.4.x einzusetzen. Gerade bei derart zentralen Applikationen sollte stets die Stabilität das wichtigste Entscheidungskriterium sein, und die Version 1.4 wird der Einschätzung des Autors nach bis Mitte 2007 benötigen, um eine vergleichbar gute Stabiliät wie Version 1.2 zu erhalten.
Die Diskussion über die ideale Linux-Distribution bekommt immer sehr schnell technisch-religiöse Züge. Der Autor hat sich in diesem Buch für ein Debian Linux (stable) entschieden. Dennoch haben wir gerade in diesem Kapitel sehr viel Platz für Installationsanleitungen auf anderen Linux-Distributionen und anderen Betriebssystemen eingeräumt, um ihnen hier auch eine alternative Wahl zu unterstützen. Bei späteren Kapiteln (z.B. ISDN) kann diese Vielfalt nicht in gleicher Weise aufrecht erhalten werden. Zum Teil gibt es für andere Betriebssysteme keine passenden Treiber oder die Installation ist so kompliziert, dass der Rahmen dieses Buches gesprengt werden würde. Aus diesem Grund gehen wir, wenn nichts anders gesagt wird, immer von einem Debian Linux aus.
Es gibt einen ganz einfachen Grund, warum an dieser Stelle im Buch bei den Installationsanleitungen für Asterisk nicht auf die in den Distributionen bereits enthaltenen Asterisk-Pakete zurückgegriffen wird, und der heißt: Aktualität!
Keine Standard-Linux-Distribution hat auch nur halbwegs aktuelle Asterisk-Pakete in ihren Stable-Zweigen. Da Asterisk ein sehr lebendiges und wachsendes Softwareprojekt ist, ist es aber auch nicht sinnvoll, eine 1.0-er Version zu installieren, wenn bereits eine 1.2-er lange auf dem Markt und einfach viel besser ist.
Anmerkung | |
---|---|
Da von Distributionen gebaute Pakete einige Vorteile haben und ein Update-Zyklus einfacher zu realisieren ist, hoffe ich darauf, dass dieses Kapitel irgendwann einmal auf fertige Standardpakete aus den Stable-Versionen zugreifen kann. Das liegt aber noch in der Zukunft. |
Als Lohn für die Arbeit mit dem Übersetzen der Quellpakete winkt Ihnen das Wissen, Ihr Asterisk-System auf dem neuesten Stand zu halten, ohne dass Sie dafür auf aktuellere Pakete für Ihre Distribution warten müssen.
Diese Installationsanleitung setzt ein frisch installiertes Debian GNU/Linux 3.1 (a.k.a. sarge) voraus.
Wichtig | |
---|---|
Bitte beachten Sie, das die Installationsanleitung nur für die zum Zeitpunkt der Veröffentlichung dieses Buches aktuelle Debian Version 3.1 und nicht für neuere Debian Versionen geeignet ist. Ein Update der Anleitung für die Debian Version 4.0 finden Sie in der zukünftigen Version des Buches. Teile davon können Sie bereits jetzt unter http://www.das-asterisk-buch.de/unstable/ einsehen. |
Wir empfehlen zur Installation das Netzwerkinstallations-CD-Image, welches ungefähr 100 MB gross ist und unter http://www.debian.org/releases/sarge/debian-installer/ downgeloadet werden kann. Eine Debian GNU/Linux-Installationsanleitung steht unter http://www.debian.org/releases/sarge/i386/ und ein allgemeines Anwenderhandbuch unter http://debiananwenderhandbuch.de.
Nach erfolgreicher Installation des Debian Linux-Systems 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.
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
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 /usr/src ubuntu@ubuntu:/usr/src$ 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:/usr/src$
Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.2-current.tar.gz entpackt werden:
ubuntu@ubuntu:/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 ubuntu@ubuntu:/usr/src$
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:/usr/src$ cd asterisk-1.2.13/ ubuntu@ubuntu:/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 + +-------------------------------------------+ ubuntu@ubuntu:/usr/src/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:/usr/src/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 `/usr/src/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:/usr/src/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:/usr/src/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:/usr/src/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:/usr/src/asterisk-1.2.13$ sudo asterisk -V Asterisk 1.2.13 ubuntu@ubuntu:/usr/src/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 |
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
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 am System an 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
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
|
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 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 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.
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
Diese Installationsanleitung setzt ein frisch installiertes Debian GNU/Linux 3.1 (a.k.a. sarge) voraus.
Wichtig | |
---|---|
Bitte beachten Sie, das die Installationsanleitung nur für die zum Zeitpunkt der Veröffentlichung dieses Buches aktuelle Debian Version 3.1 und nicht für neuere Debian Versionen geeignet ist. Ein Update der Anleitung für die Debian Version 4.0 finden Sie in der zukünftigen Version des Buches. Teile davon können Sie bereits jetzt unter http://www.das-asterisk-buch.de/unstable/ einsehen. |
Wir empfehlen zur Installation das Netzwerkinstallations-CD-Image, welches ungefähr 100 MB gross ist und unter http://www.debian.org/releases/sarge/debian-installer/ downgeloadet werden kann. Eine Debian GNU/Linux-Installationsanleitung steht unter http://www.debian.org/releases/sarge/i386/ und ein allgemeines Anwenderhandbuch unter http://debiananwenderhandbuch.de.
Bitte loggen Sie sich als Benutzer root am System an 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#
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 sudo 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 /usr/src
herunter:
ubuntu@ubuntu:/usr/src$ 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:/usr/src$
Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.4-current.tar.gz entpackt werden:
ubuntu@ubuntu:/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 ubuntu@ubuntu:/usr/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:
ubuntu@ubuntu:/usr/src$ cd asterisk-1.4.0/ ubuntu@ubuntu:/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 ubuntu@ubuntu:/usr/src/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:/usr/src/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 `/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 + +-------------------------------------------+ ubuntu@ubuntu:/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 sudo make samples:
ubuntu@ubuntu:/usr/src/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:/usr/src/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:/usr/src/asterisk-1.4.0$ sudo asterisk -V Asterisk 1.4.0 ubuntu@ubuntu:/usr/src/asterisk-1.4.0$
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 am System an 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]#
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 ein Schwerpunkt in der
Programmierung von Dialplänen in der |
Für die Installation von Asterisk 1.4 gehen wir von einem aktuellen Mac OS X aus, das ist z.Zt. 10.4.8 „Tiger“.
Anmerkung | |
---|---|
Ebenso wie für Asterisk 1.2 gilt auf Mac OS X dieser Hinweis: 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. [16]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 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. 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.
Wichtig | |
---|---|
Asterisk 1.4 wird weiter unten beim Installieren mit make install weitere erforderliche Sprachpakete runterladen, wozu wget verwendet wird, was allerdings auf einem frischen Mac OS X nicht vorhanden ist (deshalb verwenden wir ansonsten curl). Wenn Sie sowieso schon Fink[17] oder Darwinports[18] benutzen, können Sie damit ganz einfach wget installieren. Ob wget bereits installiert ist, kann man so rausfinden:
Alternativ installiert man wget „von Hand“:
und man passt entweder seinen PATH an oder macht einen Symlink:
Jetzt sollte folgendes möglich sein:
|
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.4-current.tar.gz
Danach wird das komprimierte Archiv entpackt:
$
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/get_makeopts[...]
Ab Asterisk 1.4 kommt der übliche autoconf-Mechanismus zum Einsatz[19]. Wir müssen also in das gerade entpackte Verzeichnis wechseln und ./configure ausführen, was eine Menge Informationen ausspuckt:
$
cd asterisk-1.4.0/$
./configure checking build system type... i386-apple-darwin8.8.3 checking host system type... i386-apple-darwin8.8.3 checking for uname... /usr/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 : darwin8.8.3 configure: Host CPU : i386
Danach kompilieren wir Asterisk mit make, was einige Zeit dauern kann, daher empfehle ich an dieser Stelle eine Tasse Tee[20] oder Kaffee. [21]
$
make gcc -O -Wall -c mxml-attr.c gcc -O -Wall -c mxml-entity.c gcc -O -Wall -c mxml-file.c gcc -O -Wall -c mxml-index.c gcc -O -Wall -c mxml-node.c[...]
Der Testrechner war allerdings schon nach etwa 2 bis 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 des Programms sudo.
Jetzt nur noch alle Dateien automatisch mit sudo make install installieren, also in die richtigen Verzeichnisse kopieren lassen[22]:
$
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[...]
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.4.0
Ihren Asterisk-Server können Sie mit sudo asterisk starten und mit sudo asterisk -rx "stop now" beenden.
In „Asterisk automatisch beim Hochfahren starten“ finden Sie eine Beschreibung, wie man für Asterisk ein Startup-Item anlegt, um Asterisk automatisch beim Hochfahren zu starten.
Da wir gerade dabei sind, bietet sich die Gelegenheit an noch ein paar zusätzliche Sprachbausteine (Prompts) mit zu installieren. Diese können mit wget http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz downgeloadet werden (vorher noch mit cd .. ein Verzeichnis rauf gehen):
debian:/usr/src/asterisk-1.2.13# cd .. debian:/usr/src# wget http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz --11:38:17-- http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz => `asterisk-sounds-1.2.1.tar.gz' Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164, 216.27.40.102 Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 3,249,876 [application/x-gzip] 100%[====================================>] 3,249,876 153.27K/s ETA 00:00 11:38:39 (149.37 KB/s) - »asterisk-sounds-1.2.1.tar.gz« gespeichert [3249876/3249876] debian:/usr/src#
Jetzt in das mit tar xvzf asterisk-sounds-1.2.1.tar.gz ausgepackte Verzeichnis wechseln (cd asterisk-sounds-1.2.1) und dort mit make install die Sprachbausteine installieren.
debian:/usr/src# tar xvzf asterisk-sounds-1.2.1.tar.gz asterisk-sounds-1.2.1/ asterisk-sounds-1.2.1/sounds-extra.txt asterisk-sounds-1.2.1/README.txt asterisk-sounds-1.2.1/sounds/ asterisk-sounds-1.2.1/sounds/call-fwd-parallel.gsm asterisk-sounds-1.2.1/sounds/accounts-payable.gsm asterisk-sounds-1.2.1/sounds/language.gsm [...] asterisk-sounds-1.2.1/sounds/research-and-development.gsm asterisk-sounds-1.2.1/sounds/distribution.gsm asterisk-sounds-1.2.1/sounds/login-fail.gsm asterisk-sounds-1.2.1/sounds/repair.gsm asterisk-sounds-1.2.1/sounds/T-to-enable-ancmnt.gsm asterisk-sounds-1.2.1/Makefile debian:/usr/src# cd asterisk-sounds-1.2.1 debian:/usr/src/asterisk-sounds-1.2.1# make install mkdir -p /var/lib/asterisk/sounds mkdir -p /var/lib/asterisk/sounds/letters mkdir -p /var/lib/asterisk/sounds/phonetic mkdir -p /var/lib/asterisk/sounds/silence mkdir -p /var/lib/asterisk/sounds/wx mkdir -p /var/lib/asterisk/sounds/ha for x in sounds/letters/*.gsm; do \ if grep -q "^%`basename $x`%" sounds-extra.txt; then \ install -m 644 $x /var/lib/asterisk/sounds/letters ; \ else \ echo "No description for $x"; \ exit 1; \ fi; \ [...] for x in sounds/*.gsm; do \ if grep -q "^%`basename $x`%" sounds-extra.txt; then \ install -m 644 $x /var/lib/asterisk/sounds ; \ else \ echo "No description for $x"; \ exit 1; \ fi; \ done debian:/usr/src/asterisk-sounds-1.2.1#
Im Verzeichnis /etc/asterisk/
finden wir
jetzt alle Konfigurationsdateien in einer einfachen
Standardausführung:
debian:/usr/src/asterisk-sounds-1.2.1# cd /etc/asterisk debian:/etc/asterisk# ls adsi.conf cdr_tds.conf indications.conf privacy.conf adtranvofr.conf codecs.conf logger.conf queues.conf agents.conf dnsmgr.conf manager.conf res_odbc.conf alarmreceiver.conf dundi.conf meetme.conf rpt.conf alsa.conf enum.conf mgcp.conf rtp.conf asterisk.adsi extconfig.conf misdn.conf sip.conf asterisk.conf extensions.ael modem.conf sip_notify.conf cdr.conf extensions.conf modules.conf skinny.conf cdr_custom.conf features.conf musiconhold.conf telcordia-1.adsi cdr_manager.conf festival.conf osp.conf voicemail.conf cdr_odbc.conf iax.conf oss.conf vpb.conf cdr_pgsql.conf iaxprov.conf phone.conf zapata.conf debian:/etc/asterisk#
Dies ist jetzt eine recht umfangreiche Liste, aber -- keine Angst
-- für unsere Mini-Telefonanlage müssen wir uns nur mit zwei Dateien
näher befassen. Die mit make samples erstellen
Defaultdateien verschieben wir dazu erst einmal nach
/etc/asterisk/backup/
(damit wir später bei Bedarf
darauf zugreifen können):
debian:/etc/asterisk# mkdir backup debian:/etc/asterisk# mv sip.conf backup/ debian:/etc/asterisk# mv extensions.conf backup/ debian:/etc/asterisk#
Legen Sie mit Ihrem Lieblingseditor[23] die Datei /etc/asterisk/sip.conf
mit
folgendem Inhalt an:[24]
[general] port = 5060 bindaddr = 0.0.0.0 context = sonstige [2000] type=friend context=meine-telefone secret=1234 host=dynamic [2001] type=friend context=meine-telefone secret=1234 host=dynamic
In die Datei /etc/asterisk/extensions.conf
schreiben wir einen einfachen Wählplan:
[sonstige] [meine-telefone] exten => 2000,1,Dial(SIP/2000) exten => 2001,1,Dial(SIP/2001)
Und diese 21 Zeilen Konfiguration sollen ausreichen, um eine komplette Telefonanlage zu konfigurieren? Dabei heißt es doch immer, dass Asterisk so kompliziert sei. Probieren wir es einmal aus! Mit dem Befehl asterisk -c starten Sie Asterisk:
debian:/etc/asterisk# asterisk -c Asterisk 1.2.13, Copyright (C) 1999 - 2005 Digium. Written by Mark Spencer <markster@digium.com> ========================================================================= [ Booting...Nov 20 18:59:28 NOTICE[14937]: cdr.c:1185 do_reload: CDR simple logging enabled. ......................................................................... ............................................... ] Asterisk Ready. *CLI>
Mit dem erfolgreichen Start von Asterisk erhalten wir ebenfalls eine Konsole, auf der man mit dem laufenden Asterisk-Prozess kommunizieren kann. Vor uns sehen wir jetzt das Command Line Interface (CLI) von Asterisk. Hier können wir aktiv in das Geschehen eingreifen und als erste Handlung die eben gestartete Telefonanlage wieder herunterfahren:
*CLI> stop now debian:/etc/asterisk#
Jetzt müssen wir zwei SIP-Telefone mit der Anlage verbinden. Wenn Sie kein SIP-Telefon besitzen, können Sie auch zwei Software-Telefone, die Sie aus dem Internet herunterladen, benutzen.
Warnung | |
---|---|
Wenn Sie zu Testzwecken ein Software-SIP-Telefon und den Asterisk-Server auf den gleichen Rechner installieren wollen, so müssen Sie beim SIP-Telefon den SIP Port auf 5061 umstellen, da 5060 bereits von Asterisk benutzt wird. |
Tipp | |
---|---|
Stellen Sie in Ihrem SIP-Telefon als Registrar und Proxy jeweils die IP-Adresse des Asterisk-Server ein. Bei manchen Telefon ist es auch notwendig alle Felder und notfalls mit xxx zu füllen. Leider gibt es dafür keine allgemein gültige Hilfe. Da hilft nur Ausprobieren! |
Die User-Daten können Sie der Datei
/etc/asterisk/sip.conf
entnehmen. Falls Sie die
IP-Adresse Ihres Asterisk-Linux-Systems nicht kennen, finden Sie diese
mit folgendem Befehl heraus:
debian:/etc/asterisk# ifconfig | grep Bcast | sed s/Bcast.*// inet addr:23.3.19.73
In diesem Fall ist es also die
23.3.19.73
. Wir starten Asterisk
erneut, diesmal jedoch in einem ''gesprächigeren'' Modus, um mehr
Informationen über die laufenden Aktionen zu erhalten. Dies erreichen
wir, indem wir Asterisk mit dem Parameter -vvvvvc starten (die 5 v
stehen für den Verbose-Level 5'). Dann können wir verfolgen, wie sich
das SIP-Telefon an der Anlage anmeldet:
debian:/etc/asterisk# asterisk -vvvvvc [...] Asterisk Ready. *CLI>
Nachdem Sie Ihre SIP-Telefone konfiguriert haben (Daten siehe
/etc/asterisk/sip.conf
), können Sie jetzt den
Anmeldevorgang starten (einfach das Telefon einschalten). Der
Asterisk-Prozess teilt uns die Anmeldung der Telefone mit:
*CLI> -- Registered SIP '2000' at 87.143.3.144 port 5060 expires 120 -- Unregistered SIP '2000' *CLI> -- Registered SIP '2001' at 87.143.3.145 port 5060 expires 120 -- Unregistered SIP '2001'
Nachdem die Telefone am System angemeldet sind, können wir jetzt von einem Telefon das andere anrufen, z.B. einfach die 2001 vom 2000-er anwählen. Wenn Sie sich jetzt über die Telefone unterhalten können, haben Sie es geschafft --- Ihre erste Mini-Telefonanalage mit Asterisk funktioniert.
Tipp | |
---|---|
Falls Sie im Eifer des Gefechts die Registered SIP Ausgabe im CLI übersehen haben oder sich nicht mehr sicher sind, können Sie mit sip show peers alle konfigurierten SIP-Telefone auflisten. Mit sip show peer 2000 bekommen Sie sogar ganz detaillierte Informationen zum Peer 2000. |
Sie können Asterisk jederzeit mit dem Kommando stop now im CLI beenden.
Asterisk beinhaltet bereits ein fertiges Voicemail-Modul, wir
müssen es lediglich in der Datei
/etc/asterisk/voicemail.conf
aktivieren. Als ersten
Schritt verschieben wir diese Default-Datei in unser Verzeichnis mit den
Sicherungskopien der Konfigurationsdateien:
debian:/# cd /etc/asterisk debian:/etc/asterisk# mv voicemail.conf backup/
Daraufhin erstellen wir eine neue
/etc/asterisk/voicemail.conf
und versehen diese mit
folgendem Inhalt:
[general] format = wav [default] 2000 => 4711,Hans Mustermann,hansi@company.de 2001 => 0815,Ute Beispiel,ute.beispiel@company.de
Damit sind die Voicemailboxen grundsätzlich eingerichtet (ja, so
einfach geht das!). Jetzt müssen wir aber noch in der
/etc/asterisk/extensions.conf
ein paar weitere
Zeilen eintragen, um die Voicemail-Funktionalität unseren Telefonen
zuzuweisen. Bitte vergessen Sie dabei nicht den Eintrag
",20"
bei der Dial-Applikation.
[sonstige] [meine-telefone] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,VoiceMail(2000) exten => 2001,1,Dial(SIP/2001,20) exten => 2001,2,VoiceMail(2001) exten => 2999,1,VoiceMailMain(${CALLERID(num)},s)
Fertig! Asterisk nur noch mit asterisk -vvvvvc neu starten
Tipp | |
---|---|
In einem laufenden Asterisk System reicht auch ein reload im CLI aus. |
und mit einem Telefon das andere anrufen. Nachdem es 20
Sekunden lang geklingelt hat (deshalb die 20
am
Ende des Dial-Befehls), kommt man auf die VoiceMailbox. Ist die
Gegenstelle besetzt, wird man direkt auf die VoiceMailbox 2000 geleitet.
Sie können vom Telefon mit der Nummer 2000 die entsprechende Mailboxen
abhören, indem Sie die Nummer 2999 anrufen. Dann bekommen Sie Ihre
Voicemailbox als Menü vorgespielt. Wenn Sie das Ganze noch mit einer
Passwortabfrage absichern wollen oder eine Auflistung des Menüs suchen,
finden Sie dazu in Kapitel 7, Voicemailsystem die nötigen
Informationen.
Nach unserem ersten Erfolg gehen wir nun Schritt für Schritt die
Konfigurationsdateien durch, um mehr über die Funktionsweise von
Asterisk zu erfahren. Fangen wir mit der Datei
/etc/asterisk/sip.conf
an.
[general] port = 5060 bindaddr = 0.0.0.0 context = sonstige
In diesem ersten Abschnitt [general] werden allgemeine Variablen definiert. Der Standard-Port wird auf 5060 gesetzt, d.h. Asterisk wickelt die Verbindungen über diese Portnummer ab. Mit bindaddr = 0.0.0.0 beachtet Asterisk einkommenden IP-Pakete auf allen IP-Adressen auf diesem System. Üblicherweise haben Rechner meist nur eine IP-Adresse, falls Sie einem Rechner mehrere IP-Adressen zugewiesen haben und vielleicht sogar mehrere Asterisk-Instanzen betreiben, können Sie hiermit eine bestimmte IP-Adresse einer jeweiligen Asterisk-Instanz zuordnen. Das Context-Konstrukt folgt nicht unbedingt einer intuitiven Logik bei der Konfiguration von Asterisk. Auf diesen Konfigurationsparameter werde ich noch an geeigneterer Stelle eingehen. Im weiteren Verlauf der Anleitungen wird nach und nach das Verständnis dafür geschaffen, was ein Context im Asterisk-Sinne bedeutet und wie er eingesetzt wird.
[2001] type=friend context=meine-telefone secret=1234 host=dynamic
Im Abschnitt [2001]
wird der SIP-Anschluss mit der
Kennung 2001 definiert. Dass hierbei eine Zahl (also 2001) verwendet
wurde, ist dabei eher der üblichen Erwartungshaltung geschuldet, da die
meisten Nutzer Telefone mit Nummern verbinden. Ein SIP-Anschluss kann
aber auch mit einem alphanumerischen Wert definiert werden, also
beispielsweise [Rezeption-1]
. Der Parameter type=friend
bestimmt vereinfacht gesagt, dass dieser SIP-Anschluss sowohl
eingehende, als auch ausgehende Verbindungen aufbauen darf.[25]
Und wieder stoßen wir auf den ominösen context
.
Diesen werden wir gleich in der Datei
/etc/asterisk/extensions.conf
aufgreifen und dann
wird das zugrundeliegende System in der Verwendung auch klarer.
Mit secret
wird das Passwort gesetzt. Wir benutzen an
dieser Stelle Zahlen, da man diese mit einem Telefon leichter eintippen
kann. host=dynamic
sagt aus, dass es für Asterisk ohne
Bedeutung ist, ob der SIP-Client wechselnde IP-Adressen hat.
Die Datei /etc/asterisk/extensions.conf
ist
das Herz jeder Asterisk-Konfiguration (siehe auch Kapitel 4, Programmieren im Dialplan). Sie ist vergleichbar mit einer
Schaltzentrale bei frühen Telefonanlagen. In dieser
Konfigurationsdatei wird bestimmt, welches Telefon mit welchem Telefon
Kontakt aufnehmen darf.
[sonstige]
Diese erste Sektion
der Konfiguration ist für den Context sonstige
bestimmt.
Da wir dieses in diesem Beispiel nicht benötigen, ist sie
leer.
[meine-telefone] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,VoiceMail(2000)
Der Context wird von Asterisk immer benutzt, wenn ein Telefon
die Nummer eines anderen Telefons wählt. Der Name ist dabei beliebig.
Wichtig ist, dass in der Datei
/etc/asterisk/sip.conf
bei der Definition eines
SIP-Gerätes eine entsprechende Bezeichnung für den Context definiert
wurde und dieselbe Bezeichnung in der Datei
/etc/asterisk/extensions.conf
wieder als
context
-Bezeichnung verwendet wird (dann könnte er auch
Apfelmus
heißen). Dieser Context ist von entscheidender
Bedeutung für die Konfiguration des Telefons! Einfach gesagt legen die
im Context definierten Regeln exakt fest, welche Nummern das Telefon
wählen darf und welche Aktionen dadurch gestattet werden.
Wichtig | |
---|---|
Der Context der angerufenen Nummer spielt keinerlei Rolle, sondern nur der Context der anrufenden Nummer! Merken Sie sich bitte diesen Zusammenhang, er ist wesentlich für einen erfolgreichen Umgang mit den Konfigurationsdateien. |
Die Syntax der Einträge ist immer wie folgt:
exten => Nummer, Prioritaet, Applikation
Wird eine Nummer gewählt, die einen entsprechenden Eintrag (Regel) in dieser Form aufweist, dann wird diese Regel gelesen und übernommen. Ist mehr als eine Regel für eine Nummer definiert, wird als Erstes die Regel mit der Priorität 1 durchgeführt. Die mit einer Regel verbundene Aktion steht an dritter Stelle (''Applikation''). Auf der Grundlage unserer Konfigurationsdateien (s.o.) geschieht Folgendes, wenn vom Telefon 2001 die Nummer 2000 gewählt wird:
Asterisk sieht in der Datei
/etc/asterisk/sip.conf
nach, welcher Context der anrufenden Nummer (2001) zugewiesen wurde. In unserem Beispiel haben wir der Nummer 2001 den Contextmeine-telefone
zugewiesen. Dadurch werden die Regeln gelesen, die in der entsprechenden Context-Bezeichnungcontext=meine-telefone
der Datei/etc/asterisk/extensions.conf
definiert sind.Nachdem Asterisk die Regeln im Context für die anrufende Nummer (2001) gelesen hat, führt es die Regeln aus, die mit der angerufenen Nummer (2000) definiert sind und zwar in der durch die Priorität festgelegten Reihenfolge. (In unserem Beispiel sind im Context der anrufenden Nummer (2001) für die angerufene Nummer (2000) zwei Regeln hinterlegt.)
Da die Regel mit dem Befehl
Dial(SIP/2000,20)
die Priorität 1 besitzt, kommt diese zur Ausführung. Dadurch wird das Programm Dial gestartet, welches wiederum in der Datei/etc/asterisk/sip.conf
nach dem Eintrag 2000 sucht und diesen Apparat dann 20 Sekunden lang anruft (dafür die 20 als zweiter Parameter des Dial-Befehls).Wenn nach 20 Sekunden niemand den Anruf annimmt wird die Dial() Applikation abgebrochen und die Priorität um 1 hochgezählt.
Die Zeile
exten => 2000,2,VoiceMail(2000)
ist also an der Reihe und startet das Programm Voicemail mit dem Parameter2000
. Die2000
steht für die Nummer der Voicemailbox. Wie Sie sich sicherlich schon denken können, ist auch hier die2000
nur der Einfachheit halber genommen worden. Die Voicemailbox könnte auch5555
oderApfelmus
heißen.
Damit wir später vom jeweiligen Telefon auch an unsere Sprachnachrichten kommen, wird in der letzten Zeile die Nummer 2999 für das Aufrufen der Voicemailbox definiert.
exten => 2999,1,VoiceMailMain(${CALLERID(num)},s)
Hierbei kommen wir zum ersten Mal mit der Benutzung von
Variablen in der /etc/asterisk/extensions.conf
in
Berührung. Das aufgerufene Programm heißt
VoiceMailMain und ihm wird als erster
Parameter die Ausgabe der Funktion
${CALLERID(num)}
übergeben.
${CALLERID(num)}
gibt die Nummer des Anrufers
aus. Deshalb weiß das Programm
VoiceMailMain, welche Voicemailbox gerade
abgefragt wird. Wird dieser Parameter nicht angegeben, fragt
VoiceMailMain als Erstes den Anrufer nach
dem Namen der VoiceMailbox. Der Parameter s
sorgt dafür, das der Benutzer kein Passwort eingeben muss.
Das Voicemail-Modul (siehe auch Kapitel 7, Voicemailsystem) wird in der Datei
/etc/asterisk/voicemail.conf
konfiguriert und mit
dem Wissen, das wir bisher bereits erworben haben, ist sie fast schon
selbsterklärend:
[general] format = wav [default] 2000 => 4711,Hans Mustermann,hansi@company.de 2001 => 0815,Ute Beispiel,ute.beispiel@company.de
In der Sektion [general]
wird das
Aufzeichnungsformat definiert (hier WAV) und in der Sektion
[default]
werden die beiden Mailboxen 2000 und 2001 mit
den entsprechenden Passwörtern (4711 und 0815) definiert. Hinter dem
Passwort findet sich dann noch ein Eintrag für den Namen des Benutzers
und danach seine E-Mail-Adresse. Sprachnachrichten werden so
automatisch als E-Mail-Attachments im WAV-Format zugestellt.
Jetzt werden Sie vielleicht einwenden, dass Sie zwar eine fertige Telefonanlage haben, was an und für sich spannend ist, aber ohne den Anschluss an die große weite Welt noch nicht wirklich nützlich. Wenn Sie mir weitere 10 Minuten Zeit geben und Ihre Mini-Telefonanlage eine Internetverbindung besitzt, lässt sich auch diese Aufgabe lösen und Sie erhalten in Kürze Anschluss ans Festnetz. Dazu benötigen Sie einen Account bei einem SIP-Provider.
Jetzt konfigurieren wir Asterisk so, dass Sie mit den Telefonen
2000 und 2001 ins deutsche Festnetz telefonieren können. Als Erstes muss
der Provider-Account in der /etc/asterisk/sip.conf
eingetragen werden:
[general] port = 5060 bindaddr = 0.0.0.0 context = sonstige register => 5587572:UHDZJD@mein-voip-provider.de/5587572 ; ^ ^ ^ ^ ; | | | | ; User Passwort Provider User [2000] type=friend context=meine-telefone secret=1234 host=dynamic [2001] type=friend context=meine-telefone secret=1234 host=dynamic [ext-sip-account] type=friend context=von-voip-provider username=5587572 fromuser=5587572 secret=UHDZJD host=mein-voip-provider.de fromdomain=mein-voip-provider.de qualify=yes insecure=very nat=yes
Den Usernamen (im Beispiel 5587572
) und Ihr
Passwort (im Beispiel UHDZJD
) können Sie der
SIP-Provider-Webseite entnehmen. Damit kann Asterisk diesen Account
benutzen. Allerdings müssen wir jetzt noch in der
/etc/asterisk/extensions.conf
eine Regel zum
Rauswählen einfügen:
[sonstige] [meine-telefone] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,VoiceMail(2000) exten => 2001,1,Dial(SIP/2001,20) exten => 2001,2,VoiceMail(2001) exten => 2999,1,VoiceMailMain(${CALLERID(num)},s) exten => _0[1-9].,1,Dial(SIP/${EXTEN}@ext-sip-account)
Nachdem die Einträge in den Konfigurationsdateien erstellt sind, starten Sie Asterisk, wie bekannt, mit asterisk -vvvvvc in das CLI und warten ein paar Sekunden, bis sich eines der SIP-Telefone angemeldet hat. Danach einfach eine beliebige Nummer im deutschen Festnetz (mit Vorwahl) wählen und warten (im CLI können Sie beobachten, was passiert). Nach kurzer Zeit hören Sie auch schon das Freizeichen und können mit einem Festnetz-Teilnehmer telefonieren. Wie die obige Konfiguration genau funktioniert, wird an dieser Stelle noch nicht verraten.[26]
Der letzte Schritt ist ein kleiner. Wir wollen über unsere
Rufnummer beim VoIP-Provider auf dem Telefon mit der Nummer
2000
angerufen werden können. Dazu müssen wir nur
noch einen weiteren Context in die Konfigurationsdatei
/etc/asterisk/extensions.conf
hinzufügen:
[sonstige] [meine-telefone] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,VoiceMail(2000) exten => 2001,1,Dial(SIP/2001,20) exten => 2001,2,VoiceMail(2001) exten => 2999,1,VoiceMailMain(${CALLERID(num)},s) exten => _0[1-9].,1,Dial(SIP/${EXTEN}@ext-sip-account) [von-voip-provider] exten => 5587572,1,Dial(SIP/2000)
Fertig! :-)
Die 5587572
ist Ihre interne Rufnummer bei
Ihrem VoIP-Provider. Bitte schauen Sie auf der Webseite des Providers in
Ihren Kundendaten diese Nummer nach. Dass die Rufnummer hier dieselbe
ist wie der Username, ist prinzipiell Zufall.
Wer will kann natürlich ganz einfach mit der folgenden Variante noch eine Voicemailbox für Gespräche die vom SIP-Provider kommen aktivieren:
[sonstige] [meine-telefone] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,VoiceMail(2000) exten => 2001,1,Dial(SIP/2001,20) exten => 2001,2,VoiceMail(2001) exten => 2999,1,VoiceMailMain(${CALLERID(num)},s) exten => _0[1-9].,1,Dial(SIP/${EXTEN}@ext-sip-account) [von-voip-provider] exten => 5587572,1,Dial(SIP/2000,20) exten => 5587572,2,VoiceMail(2000)
In diesem Einführungs-Kapitel wollte ich Ihnen zeigen, wie schnell und einfach man mit Asterisk eine funktionierende Telefonanlage aufbauen kann. Im verbleibenden Teil des Buches gehen wir tiefer in die Details und ich zeige Ihnen, was man mit Asterisk alles machen kann.
[1] Unser „Hello World“-Beispiel macht noch mehr Spaß, falls Sie über zwei oder mehr PCs (oder Laptops) verfügen, die Sie in einem gemeinsamen Netzwerk verbunden haben. Dann können Sie einen Rechner als Asterisk-Telefonanlage verwenden und die anderen PCs als Softphones.
[2] Ein paar URLs zu im Internet frei verfügbaren Linux-Distributionen:
- Debian: http://www.debian.org
- SuSE Linux (Open SuSE): http://www.opensuse.org
- Fedora (Redhat): http://www.fedora.org
[3] Die aktuelle Debian Stable-Version.
[4] Falls Sie mit einer grafischen Benutzeroberfläche des X-Window Systems arbeiten, benötigen Sie eine Textkonsole für die Eingabe, beispielsweise ''xterm'' oder ''konsole''.
[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.
[9] Eine Liste finden Sie auf http://www.voip-info.org/wiki/index.php?page=VoIP+Gateways oder auch http://www.voip-info.org/wiki/index.php?page=VoiP+Service+Providers.
[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!
[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.
[16] Eine Liste finden Sie auf http://www.voip-info.org/wiki/index.php?page=VoIP+Gateways oder auch http://www.voip-info.org/wiki/index.php?page=VoiP+Service+Providers.
[19] wobei die Umstellung noch nicht ganz abgeschlossen zu sein scheint
[20] Vorzugsweise einen Darjeeling First Flush FTGFOP von der Teekampagne
[21] Jedes kleine Kind weiß, dass man Kaffee nicht unbeaufsichtigt rumstehen lässt!
[22] Wer noch nie sudo ausgeführt hat, erhält dabei folgenden Hinweis:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.
[23] Wenn Sie keinen Editor kennen, den Sie in einem Terminalfenster verwenden können, empfehle ich Ihnen nano. Unter Debian ist dieser einfach als Benutzer root mit apt-get install nano zu installieren. Danach öffnen Sie mit nano dateiname die Datei. In Nano selbst sehen Sie im unteren Bereich des Bildschirms die wichtigsten Befehle.
[24] Diese einfachen Passwörter sind natürlich nur für den Testbetrieb gedacht, für den produktiven Einsatz sollten Sie entsprechend bessere Passwörter vergeben.
[25] Der Eintrag type=
kennt drei verschiedene Werte
(auf die in einem späteren Kapitel genau eingegangen wird):
friend
: kann anrufen und angerufen werden.peer
: kann nur anrufen.user
: kann nur angerufen werden.
[26] Nur so viel an dieser Stelle: Die Variable
${EXTEN}
speichert die vom Benutzer gewählte Nummer ab
(siehe Kapitel 4, Programmieren im Dialplan).
Version 1.2, November 2002
Neue Version verfügbar
Sie betrachten gerade die alte Version des Buches (Version 1.0). Wir empfehlen Ihnen für Asterisk 1.4 und 1.6 die neue Version des Buches.
Asterisk-Tag 2008
Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um das Thema VoIP. Asterisk-Tag.org