Mini Quickinstall zu
Asterisk* Open Source PBX
Erste Anlaufadressen zu Asterisk VoIP
http://www.voip-info.org/wiki-Asterisk+introduction
http://www.voip-info.org/wiki-Asterisk+installation+tips
http://www.ip-phone-forum.de/forum
1.Hardware
2.Installation von SuSE Linux 9.0
3.Update von SuSE und Installation erforderlicher Pakete
4.Installieren von Asterisk
5.Konfiguration Netzwerk
6.Konfiguration von Asterisk
7. Konfiguration ISDN
8. Konfiguration SIP
1. Hardware
•
Beim Aufbau eines Systems wird geraten die SUSE HWL (Hardwarekompatibilitätsliste) zu
Rate zu ziehen, da Linux unter umständen auf bestimmter Hardware nicht einwandfrei läuft,
oder nachträglich spezielle, nicht getestete Treiberpakete nachinstalliert werden müssen.
•
Aus der in der HWL befindlichen und zur Verfügung stehenden Komponenten wird ein
betriebsfähiger Rechner aufgebaut. Bei dem hier verwendeten System wurden folgende
Komponenten verwendet.
AT Tower mit 150Watt NT
AMD K6 300 Mhz
ATI Rage II Grafikkarte
AT Mainboard Sockel7 VIA
128 Mb SDRAM
3,03Gb Festplatte
CD-Rom Laufwerk
Floppylaufwerk
ISA Soundkarte
10/100 Mbit Realtek NWK
Fritzcard ISDN
•
128MB Ram sind zwingend notwendig, da sonst die Suse Installation Probleme bereitet,
und unter Umständen mehrere Stunden dauern kann.
•
da Asterisk ein rein kommandozeilen basierendes Programm ist, ist eine speziell schnelle
HW nicht nötig.
•
da zur Konfiguration des Rechners kann yast und sax (Konfigurationsprogramme unter
Suse) auf grafisch basierender Oberfläche (KDE) verwendet werden, sollte der Rechner
jedoch mindestens über o.g. HW verfügen. (2D Grafikkarte, 24xCD)
•
alle nicht in Verwendung kommenden Funktionen des HW wie z.B. serielle oder parallele
Ports können zur Recourcenschonung im BIOS deaktiviert werden.
•
Da die ausgewählte Hardware von Linux uneingeschränkt unterstützt wird, ist eine volle
Ausnutzung des Speichertimings kein Problem, und kann im Bios auf FAST betrieben
werden.
2. Installation von Linux (SuSE 9.0)
•
nach Einlegen der SuSE 9.0 CD1 wird der Rechner von CD gestartet.(Bootreihenfolge im
BIOS beachten, und ggf vorher umstellen.
•
Bei Erscheinen des LinuxBootOption Fensters den Menüpunkt „Installation“ auswählen
(durch drücken der Taste F2 lässt sich der Bootvorgang einsehen)
•
Auswahl des Gebietsschemas (hier deutsch)
•
Nun sucht SuSE die vorhandene Hardware und stellt entsprechend die zu installierenden
Pakete zusammen. Diese können nach eigenen Bedürfnissen angepasst werden.
•
Das Anlegen der Partitionen erfolgt ebenfalls automatisch und kann übernommen werden
•
Als Software wird das Standart System mit KDE-Desktopumgebung und Grafischem
Grundsystem installiert.
•
Unter Systemstart empfiehlt sich den Bootloader von GRUB auf LILO umzustellen. (durch
klick auf Systemstart und anschließendem doppelklick auf den Bootloadertyp lässt sich der
Loader auswählen. Die Konvertierung sollte automatisch von LILO erfolgen.)
•
Durch anschließenden Klick auf „Übernehmen“ kann die Installation gestartet werden.
•
für die Installation werden die ersten 4CD´s benötigt die auf Anweisung der
Installationsroutine zu wechseln sind.
•
Zum Abschluss der Installation sind die Antworten auf Fragen Suses bezüglich der HW,
und
Eingabe von Einwahldaten zu beantworten. Es wird hier schon ein Teil der
Systemkonfiguration vorgenommen (z.B. Monitor, Grafikkarte und Netzwerkeinstellungen)
3. Update von SuSE und Installation erforderlicher Pakete
•
Sollte eine frühere Version als 9.0 installiert worden sein, ist nach Beenden der Installation
und erstem Start des Systems für den einwandfreien Betrieb von Asterisk ein Update des
Kernels auf mind. 2.4.1notwendig (ab SuSE 9.0 ist der 2.4.1 schon enthalten und damit
kein Update notwendig
•
starten des Systems von boot cd
•
Auswahl des Punktes "Installation / Update" ( ab hier den Anweisungen folgen)
•
Auswahl eines Suseservers zum Download der Updatepakete
(
ftp://ftp.htwk-leipzig.de/pub/suse.com/ftp.suse.com/suse/i386/9.0
; IP=141.57.1.11 )
•
Es wird nach Verbindung mit dem Server automatisch nach Updates gesucht, und
gefundene Updates zur persönlichen Auswahl angezeigt.
•
zu den Updates müssen zusätzlich zum einwandfreien Betrieb von Asterisk spezielle
Pakete mitinstalliert werden, da sonst das Einkompilieren der Asteriskfiles fehlschlägt.
Diese Pakete müssen über die Paketsuchefunktion von Hand gesucht werden. Dabei
handelt es sich um folgende Pakete
=> Linux Kernel Sources
=> Openssl
=> readline
=> make Befehl
=> bison library
=> termcap (inkl devel) library
=> newt (inkl. devel) library
=> ncurses (inkl devel) library
•
ist eines oder mehrere der Pakete nicht installiert, muss dies an dieser Stelle geschehen,
da sonst die Installation von Asterisk fehlschlägt.
4. Installation von Asterisk
•
für die Installation von Asterisk werden folgende Installationsdateien benötigt, welche auf
der Asterisk Homepage zum Download bereit stehen.
(
ftp://ftp.asterisk.org/pub/telephony/asterisk
)
•
Es ist ebenso möglich, dass die Files aus dem öffentlichen CVS Bereich bezogen werden,
da dort die ständig aktualisierten Asterisk Binarys abgelegt werden.
(
http://asterisk.espia-net.net/horde/chora/cvs.php?login=1&asterisksess=07e6e16d8c94545979d7c87f67de30d6
)
=> asterisk-0.9.0.tar.gz
(evtl. asterisk-sounds-0.1.1.tar.gz )
=> bei Verwendung von ZapTel Hardware das ZaptelPaket
•
diese Dateien werden in das root/home Verzeichnis in jeweils eigene Unterordner entpackt.
•
vor der Installation von Asterisk den Kernel ( befindet sich im Verz.usr/src/linux-xxxxx) mit
#
make cloneconfig und #make dep
sichern und zum Bearbeiten freigeben. Dieser Vorgang kann einige Zeit in Anspruch
nehmen.
•
Danach in das entpackte Asterisk Verzeichnis wechseln und mit folgenden Befehlen die
Dateien aus den jeweiligen Verzeichnissen installieren. Dabei sind in der Reihenfolge
vorzugehen wie die Dateien o.a. sind.
#cd <Verzeichnis>
#make clean
#make install
•
Während der Installation wird ständig der aktuelle Status ausgegeben, darin dürfen KEINE
Fehlermeldungen auftauchen wie z.B. Directory not found. Anderweitig wurden nicht alle
benötigten Pakete wie unter 3. beschrieben installiert. Der Installationsvorgang sollte daher
hier abgebrochen und die Paketinstallation nachgeholt werden.
•
Ausführbare Dateien sind jetzt in den Ordnern
erzeugte Strukturen befinden sich
in:
/usr/sbin/asterisk
usr/include/asterisk
/usr/sbin/safe_asterisk
usr/lib/asterisk
/usr/sbin/astgenkey
var/lib/asterisk
var/spool/asterisk
•
nach der abgeschlossenen Installation in das Asterisk Verzeichnis (root/bin/asterisk)
wechseln und mit dem Befehl
#make samples
die Default Konfigurationsdateien erzeugen.
Diese werden in das Verzeichnis etc/Asterisk erstellt, und können später weiter konfiguriert
werden. Asterisk ist jetzt bereits mit den Defaulteinstellungen lauffähig.
5. Konfiguration Netzwerk
•
Wenn Linux und Asterisk installiert sind, wird das Netzwerk aufgebaut. Zu empfehlen ist,
alle Geräte in ein und dem selben Netz zu betreiben, da es bei der NAT und Asterisk noch
zu Problemen kommen kann.
•
Folgende Geräte kommen zum Einsatz, und erhielten die aufgeführten festvergebenen IP
Adressen. Vorläufig wurden zu Testzwecken alle Ports von 3000-30000 am Router
freigegeben.
1x ZyAir B2000 WLAN AP
192.168.1.10 / 24
1x ZyXEL Prestige 202H
192.168.1.2 / 24 (WAN auf AUTO)
1x ZyXEL P2000W
192.168.1.60 / 24
1x ZyXEL P2000W
192.168.1.61 / 24
1x RTL LAN an Asterisk
192.168.1.3 / 24
•
Bei den SIP Telefonen sind extra noch folgende Einstellungen vorzunehmen
Outbound Proxy
192.168.1.3:5060
SIP-Proxy
192.168.1.3:5060
Username und SIP Nummer müssen ein und die selbe Nummer sein
6. Konfiguration von Asterisk
•
Asterisk im debug Modus starten mit "asterisk -vvvvgc" (Neustarten mit „restart now“ ,
Beenden mit „stopp now“ )
•
Asterisk sollte nun schon laufen. Eventuelle Fehlermeldungen abarbeiten, die Fehler
werden angezeigt mit Verzeichnis und Datei und können so leicht lokalisiert werden.
•
Befehle für die Asterisk <cli> Kommandozeile sind auf einem extra Blatt festgehalten.
•
um ein internes telefonieren zu ermöglichen müssen nun die sip.conf und die
extentions.conf bearbeitet werden. Dabei ist darauf zu achten, das Einträge in deren conf
Dateien auch gleich den Einträgen in den Telefonen sein muss. (etc/asterisk)
•
Die folgende abgebildete Konfiguration ist ein Beispiel und wurde auch so in Funktion mit
Erfolg getestet. (ACHTUNG: im SIP Telefon muss unter dem Menüpunkt Username kein
Name, sondern die SIP Telefonnummer eingetragen werden, da sonst ein anmelden des
Telefons an Asterisk fehlschlägt.)
#####sip.conf:#####
[general]
port = 5060
bindaddr = 192.168.1.3
context = default
[10]
type=friend
username=10
secret=T1
host=dynamic
qualify=1200
[11]
type=friend
username=11
secret=T2
host=dynamic
qualify=1200
#####extentions.conf#####
[general]
static=yes
writeprotect=no
[default]
include => 10
include => 11
[10]
exten => 10,1,Dial(SIP/10,45)
exten => 10,2,Hangup
[11]
exten => 11,1,Dial(SIP/11,45)
exten => 11,2,Hangup
•
nach diesen Einstellungen sollte bereits das telefonieren intern untereinander funktionieren.
•
Jede Aktion in Asterisk wird auf dem Bidschirm als Statusnachricht angezeigt, so lässt sich
z.B. die Anmeldung des Telefons an Asterisk verfolgen.
•
Befehle für die Asterisk <cli> Kommandozeile sind auf einem extra Blatt festgehalten. Mit
diesen ist es möglich sich z.B. angemeldete Telefone, Benutzung der Kanäle und die
Verbindungsqualität anzeigen zu lassen. Die wichtigsten sind
sip debug
;schaltet SIP Debugging ein (Fehler werden angezeigt)
sip show registry
;zeigt Asterisk Registrierungsdaten
sip show users
;zeigt angemeldete User
sip show channels
;zeigt Benutzung der Kanäle
sip show peers
;zeigt die Verbindungen
show version
;zeigt aktuelle Versionsdaten
7. Konfiguration ISDN
•
soll Asterisk über eine ISDN Anbindung verfügen, ist es notwendig einen entsprechenden
CAPI Treiber zu installieren. Dieser wird wie nach oben aufgeführtem Beispiel installiert.
Unbedingt die readme des CAPI Packs beachten!
(
http://www.junghanns.net/asterisk/downloads/chan_capi.0.3.1.tar.gz
)
•
Die Installation erfolgt nach obigem Schema mit den gleichen Befehlen, nur ist darauf zu
achten
Das man das entsprechende Verzeichnis aufsuchen muss)
•
nach der Installation muss der bereits vorhandene isdn4linux Treiber deaktiviert werden,
inkl. all seiner Abhängigkeiten. Dafür müssen die folgenden Dateien bearbeitet werden:
modules.conf und capi.conf)
#####modules.conf#####
[modules]
autoload=yes
noload => pbx_gtkconsole.so
noload => pbx_kdeconsole.so
noload => chan_modem_i4l.so
noload => chan_modem_bestdata.so
noload => chan_modem_aopen.so
noload => chan_modem.so
noload => app_intercom.so
load => chan_capi.so
load => res_musiconhold.so
noload => chan_elsa.so
noload => chan_oss.so
[global]
chan_capi.so=yes
•
nach Start von asterisk sind eventuelle Fehlermessages abzuarbeiten, indem die Module in
der modules.conf entsprechend aktiviert oder deaktiviert werden, (load xxxx, noload xxxxx)
•
läuft Asterisk fehlerfrei, kann die capi.conf so bearbeitet werden, dass eine Einwahl via
ISDN ins Festnetz möglich ist. Dazu wird die MSN im Script eingetragen und der
dazugehörige ISDN Adapter zugewiesen.
#####capi.conf#####
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
[interface]
msn=<MSN1>
incomingmsn=*
controller=1
softdtmf=1
accountcode=
context=from-sip
callergroup=1
devices=2
•
Um nun ein Telefonieren auch nach extern, und von extern nach intern zu ermöglichen,
muss die extentions.conf folgendermaßen angepasst werden. Enthalten in diesem Beispiel
sind Rufweiterleitung bei nicht zustande kommendem Gespräch auf eine andere Nummer
#####extentions.conf#####
[general]
static=yes
writeprotect=no
[default]
include => 10
include => 11
exten => _xxx.,1,StripMSD,1
exten => _xxx.,2,Dial,CAPI/<MSN1>:b${EXTEN}
exten => <MSN1>,1,Dial(SIP/10,20,tr)
exten => <MSN1>,2,Dial(SIP/11,20,tr)
exten => <MSN2>,1,Dial(SIP/11,20,tr)
exten => <MSN2>,2,Dial(SIP/10,20,tr)
[10]
exten => 10,1,Dial(SIP/10,20,tr)
exten => 10,2,Dial(CAPI/<MSN1>:b<Nummer zu der Umgeleitet wird>,20,tr)
exten => 10,3,Hangup
[11]
exten => 11,1,Dial(SIP/11,20,tr)
exten => 11,2,Dial(CAPI/<MSN1>:b<Nummer zu der Umgeleitet wird>,20,tr)
exten => 10,3,Hangup
8. Konfiguration SIP
•
Um SIP (Session Initialisation Protokoll) zu nutzen, und über LAN ins Internet zu
telefonieren, muss als erstes bei einem Anbieter (Sipgate.de oder Nikotel.de) eine SIP
Telefonnummer registriert werden. Mit dieser Nummer meldet sich Asterisk am SIP-Server
an.
•
Sollte es sich bei der Anbindung ans Internet um eine Dynamische Verbindung handeln, so
wird empfohlen einen Account bei DynDNS zu erstellen, da dem SIP-Server die aktuelle IP
mitgeteilt werden muss, um Gespräche aus dem Internet auf Asterisk weiterzuleiten.
•
Damit Asterisk sich am SIP-Server anmeldet und Authentifiziert, müssen Erweiterungen
sowohl in der sip.conf als auch in der extensions.conf vorgenommen werden. Diese sollten
so aussehen.
#####exten.conf######
[general]
static=yes
writeprotect=no
nat=yes
[globals]
FWDUSERID=<SIP-Nummer>
FWDUSERNAME=<Screename>
[default]
include => 10
include => 11
;wenn zu SIP Nummern angerufen wird
exten => _0Nxxxx.,1,SetCallerID(${FWDUSERID})
exten => _0Nxxxx.,2,SetCIDName(${FWDUSERNAME})
exten => _0Nxxxx.,3,Dial(SIP/${EXTEN:5}@sipgate.de,40,tr)
exten => _0Nxxxx.,4,Wait,20
exten => _0Nxxxx.,5,Hangup
;wenn zu Festnetznummern angerufen wird
exten => _[1-9]xxx.,1,StripMSD,0
exten => _[1-9]xxx.,2,Dial,CAPI/<MSN1>:b${EXTEN}
exten => _[1-9]xxx.,3,Hangup
;wenn auf MSN1 angerufen wird
exten => <MSN1>,1,Dial(SIP/11,20,tr)
exten => <MSN1>,2,Dial(SIP/10,20,tr)
;wenn auf MSN2 angerufen wird
exten => <MSN2>,1,Dial(SIP/10,20,tr)
exten => <MSN2>,2,Dial(SIP/11,20,tr)
;wenn intern die 10 gewählt wird
[10]
exten => 10,1,Dial(SIP/10,20,tr)
exten => 10,2,Dial(CAPI/<MSN1>:b<Nummer zu der Umgeleitet wird>,20,tr)
exten => 10,3,Hangup
;wenn intern die 11 gewählt wird
[11]
exten => 11,1,Dial(SIP/11,20,tr)
exten => 11,2,Dial(CAPI/<MSN1>:b<Nummer zu der Umgeleitet wird>,20,tr)
exten => 11,3,Hangup
#######sip.conf#######
[general]
port = 5060
bindaddr = 192.168.1.3
externip = <name bei dyndns>.dyndns.org
context = default
tos = reliability
srvlookup = yes
nat = yes
maxexpirey = 1200
defaultexpirey = 20
register => <SIP-Nummer>:<SIP-Passwort>:@sipgate.de:5060/<SIP-Nummer>
[sipgate.de]
type=friend
username=<SIP-Nummer>
secret=<SIP-Passwort>
host=sipgate.de
fromuser=<SIP-Nummer>
fromdomain=sipgate.de
nat=yes
qualify=1200
context= default
canreinvite=no
[10]
type=friend
username=10
secret=T1
host=dynamic
qualify=1200
dtmfmode=rfc2833
context=default
disallow=all
allow=ulaw
allow=alaw
[11]
type=friend
username=11
secret=T2
host=dynamic
qualify=1200
dtmfmode=rfc2833
context= default
disallow=all
allow=ulaw
allow=alaw
9.Test & Fazit
•
Asterisk ist eine sehr grossartige und mit vielen Funktionen (erweiterbar) ausgestattete
PBX, bereits nach kleiner konfiguration war das interne telefonieren möglich. Nach
umfangreicheren erweiterungen der sip.conf und extentions.conf ist ein problemloses
telefonieren zwischen SIP-Phones und Festnetz , in beide Richtungen, von und zueinander
möglich.
•
Sehr erfreut hat mich die reibungslose Funktion des CAPI, hier ist sowohl ein rein als auch
raustelefonieren, sogar mit Umleitungen ohne Probleme von statten gegangen.
•
Sehr überzeugend ist die Sprachqualität über SIP. Testweise kamen Softwareclients wie
SIPPS von sipgate.de oder X-Lite von nicotel.de zum Einsatz, wobei SIPPS kostenpflichtig
und X-Lite Kostenfrei ist. Völlig ausreichend erscheint daher die kostenfreie Version von
nicotel. In Verbindung mit einem Headset am Arbeitsplatz PC und einer Soundkarte ist so
schnell ein kostengünstiges Telefonnetz aufgebaut.
Links und Verweise:
ftp://ftp.asterisk.org/pub/telephony/asterisk
http://asterisk.espia-net.net/horde/chora/cvs.php?login=1&asterisksess=07e6e16d8c94545979d7c87f67de30d6
http://www.voip-info.org/wiki-Asterisk+introduction
http://www.voip-info.org/wiki-Asterisk+installation+tips
http://archiv.tu-chemnitz.de/pub/2004/0008/data/asterisk.pdf
http://graphics.cs.uni-sb.de/~rainer/projects.html
http://www.junghanns.net/asterisk/downloads/chan_capi.0.3.1.tar.gz
http://www.ip-phone-forum.de/forum
http://www02.sipgate.de/user_interface/index.php
http://www.nikotel.de/de/index.htm
Diese Ausarbeitung ist Eigentum von:
Michael S. - aka - dEEpNIGht
Mail:
deepnight@planet-hh.de
Veröffentlichungen nur nach Rücksprache mit dem Autor. Vervielfältigungen nur in unveränderter
Form und Zustimmung des Autors. Alle Rechte vorbehalten - deepnight
Hamburg 30.7.2004