MiniQuickinstall Asterisk Open Source PBX _D
Transcription
MiniQuickinstall Asterisk Open Source PBX _D
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 • 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 ( ftp://ftp.htwk-leipzig.de/pub/suse.com/ftp.suse.com/suse/i386/9.0 ; IP=141.57.1.11 ) => 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 in: erzeugte Strukturen befinden sich /usr/sbin/asterisk /usr/sbin/safe_asterisk /usr/sbin/astgenkey • usr/include/asterisk usr/lib/asterisk 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 1x ZyXEL Prestige 202H 1x ZyXEL P2000W 1x ZyXEL P2000W 1x RTL LAN an Asterisk • 192.168.1.10 / 24 192.168.1.2 / 24 (WAN auf AUTO) 192.168.1.60 / 24 192.168.1.61 / 24 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: [email protected] 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