Asterisk Centos ein weiterer Weg

posted in: Asterisk | 0

Teil 1 – Einsetzen der Abhängigkeiten und Grundinstallation

Teil 2
 – Konfiguration von Nagios

Teil 3 – Überwachen von Endgeräten
a) rudimentäre Drucker
b) VoIP Geräte
c) Windows-PCs (mit Nagios Plugin)
d) Linux-Server (auch mit dem Nagios-Plugin)

Teil 3 1/2 – Fehlerbehandlung in der Konfiguration
a) Hilfe! Wie finde ich den Fehler

Teil 4 – Meldungen/Alarme zum Empfänger reichen
a) per simpler Mail
b) per Anruf (zBsp. ISDN)
c) per SMS

Teil 5 – Manuelle Modifikationen (Tipps!)

<<im Aufbau>>>

————————————————————————

Teil 1
 – Einsetzen der Abhängigkeiten und Grundinstallation

Wir gehen im Folgenden von diesen Gegebenheiten aus :

– Unser PC ist so dimensioniert das er noch >50MB Speicherplatz anbietet
– Unser PC ist möglichst sehr gut verfügbar und hat idealerweise eine Möglichkeit zur ISDN Nutzung
– Wir setzen Nagios ebenfalls idealerweise auf 2 PCs auf, welche unterschiedliche Anbindungen haben.
– Unser Linux ist Debian, zur Not auch Ubuntu
– Wir sind bei der Installation “root”
– Später werden wir Nagios als “nagios” (!) ansprechen.
– Linuxer sind seltsam, zum editieren nehme ich “nano” – wer “vi” mag nehme den..

unter Debian

i. Abhängigkeiten erfüllen

Code:
apt-get install apache2 build-essential php5 libapache2-mod-php5 libgd2-xpm-dev

ii. Benutzer und Gruppe erstellen

Code:
useradd -m nagios
passwd nagios

groupadd nagios
usermod -G nagios nagios

groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data

iii. Herunterladen von Nagios Source und den Addons

Code:
mkdir nagios-download && cd nagios-download

Wir suchen uns die gewünschte Version von hier aus, wir benötigen den Core und die Plugins! Wget lädt für uns in das Download-Verzeichnis und wir machen weiter.

Alternativ nehmen wir die zur Zeit der Erstellung aktuellste Version 3.2.0 und 1.4.14 :

Code:
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

tar -xzf nagios-3.2.0.tar.gz
tar -xzf nagios-plugins-1.4.14.tar.gz

iv. Nagios kompilieren

Code:
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode

v. Wir kompilieren das Webinterface

Code:
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
/etc/init.d/apache2 reload

vi. Die Plugins kompilieren

Code:
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

vii. Wir stellen das Nagios Startskript in Runlevel 2

Code:
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

viii. Wichtig ! Für spätere Zeitpunkte! wir setzen uns ein Skript für unseren Nutzer (hier root) um schnell die Konfigurationsdateien zu überprüfen! Bitte beim “täglichen Nutzer” erstellen, da wir ja root nur zur Installation nutzen möchten! Es gibt mehrere Wege zum Ziel, dies ist meiner:

Code:
nano ~/.bashrc

In die nun geöffnete Bash.rc setzen wir :

Code:
alias nag='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'

Und schließen Nano oder vi. Nach einem ab und anmelden unter aktuell root können wir mit “nag” die Konfigurationsdateien überprüfen und erhalten idealerweise ein :

Code:
Things look okay - No serious problems were detected during the pre-flight check

 

Herzlichen Glückwunsch, Nagios ist installiert und könnte bereits starten. KÖNNTE!

————————————————————————

Teil 2
 – Konfiguration von Nagios

Wir teilen das ganze nun in “Anfänger” (i.) und “das reicht schon” – und “wir wollen Funktionalität prüfen, nicht nur Anwesenheit” (ii.) !

i. Basis-Konfiguration

Am einfachsten kann man ein Gerät überwachen welches sich im Netzwerk schlichtweg anpingen lässt.

Das setzen wir am Beispiel eines Routers, welcher sich praktischerweise auf 10.0.0.1 befindet – so um :

Man wechsle in das Nagios Hauptverzeichnis .. :

Code:
cd /usr/local/nagios/etc/objects

Unter dem Verzeichnis “Objects” befindet sich unser Hauptsteuerungsmechanismus – die Konfigurationsdateien der Objekte.
Wir möchten gerne von Null anfangen, das eignet sich in meinen Augen am besten um zu lernen und erstellen eine Neue Konfiguration, die wir “Router.cfg” nennen, in ihr sollen später alle “Router” Ihre Überwachungskonfiguration finden :

Hinweis! Nagios ist so ausgelegt das man Entwürfe vorfertigen kann, daher macht diese separate Konfigurationsdatei Sinn, Router werden selten in der Lage sein zBsp. Ihre CPU Auslastung zurückzugeben, das können wir mit einem Template so markieren und dieses Template legen wir als Definition für alle Router fest. Die Konfigdatei zBsp. Server würde dann ein anderes Template haben, wo es besonders darauf ankommt wieviel ? Speicherplatz ? eine Partition hat, oder wie hoch die Auslastung ist oder oder.
Code:
nano router.cfg

In die Konfigurationsdatei, welche idealerweise noch leer ist – setzen wir nun unsere Definition unseres ersten, zu überwachenden Routers ein, an jedem “host” können wir mehrere Arten der Prüfung fahren, aber step by step:

Hinweis! (Siehe zur Konfiguration auch “Tipp2” ganz unten im Thread!)

Code:
define host{
        use             generic-switch          ; Das ist ein vordefiniertes Template - welches wir nun für Router nehmen.
        host_name   unser_router              ; Der Maschinenlesbare Name, also ohne Leerzeichen etc.
        alias            Dieser Router verbindet Zentrale 1 mit 2 und ist sehr wichtig ; ein langer - menschenlesbarer Text, ein Alias
        address        10.0.0.1              ; Die IP des Gerätes, wir hatten uns auf 10.0.0.1 geeinigt.
        hostgroups    switches                ; Welcher Gruppe gehört dieser einzelne Router an? Der vordefinierten Gruppe "switches"
        }

Ist eigentlich ganz einfach – nicht? Ist ja auch das “Schnellschema”..
Nun müssen wir unsere zu prüfenden Schemen anpassen, wir setzen direkt nach dem o.g. Eintrag diesen hier ein:

Code:
define service{
        use                          generic-service ; Wir nutzen, mal wieder ein Template, der einfachherheithalber aus den Vorlagen
        host_name                unser_router     ; Wie heisst nochmal das Gerät welches geprüft werden soll? Achja, "unser_router"
        service_description     PING            ; Beschreibung des Services - diese kommt zBsp. bei Fehlermeldungen zur Ansicht.
        check_command           check_ping!200.0,20%!600.0,60%  ; Wir geben dem Plugin "PING" seine Anweisungen
        normal_check_interval   5               ; Wenn alles okay ist dann prüfe alle 5 Minuten
        retry_check_interval    1                ; Schlägt Check1 fehl, prüfe alle 1 Minute ob wir wieder online sind
        }

Fertig.

Nun könn(t)en wir bereits unseren Nagios laufen lassen, jedoch – was passiert wenn etwas schief geht? Wer wird informiert?

Wir werfen einen kurzen Blick in die Contacts.cfg und setzen unseren Namen und unsere Email ein.
ACHTUNG! Bitte stell sicher das Dein System auch Emails versenden kann!

Nagios Konfig. prüfen mit “nag” – ist alles okay?
Nagios starten.

Code:
/etc/init.d/nagios start

Wer nunmehr mag, kann schon per Apache auf seinen Neuen Nagios Webauftritt schauen :

Code:
http://localhost/nagios

Benutzer ist per default : nagiosadmin
Passwort : nagiospwd

Sicherheitsbedenken wegen des einfachen Passwortes? Richtig, wir setzen unser eigenes :

Code:
htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Eingeben. Übernommen. Fertig. Verloren? Befehl als root neu starten.

Wir können auch noch den Zugriff separieren, aber das sprengt den Rahmen – wer es mag .. :

Code:
nano /etc/apache2/conf.d/nagios.conf

Ende der Schnellanleitung.

ii. Funktionsweite Konfiguration (wir beginnen bei Null – aber wir lernen viel)

Fangen wir einfach an und entfernen alle Vorlagen .. :

Code:
cd /usr/local/nagios/etc/objects
mkdir backup
mv *.cfg backup

So. Nun sind wir rein und können verstehen wie Nagios arbeitet und warum.

##### Neubau heisst viel Zeit haben – ich arbeite an beidem ######

————————————————————————

Teil 3
 – Überwachen von Endgeräten

————————————————————————

Teil 3 1/2 – Fehlerbehandlung in der Konfiguration
a) Hilfe! Wie finde ich den Fehler

Fehler gefunden? Nagios startet nicht? Was nun?

Versuche es mit dem Nagios Prüfroutinchen, der v erbosity :

Code:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Das sollte Dir den Fehler deutlich einkreisen!

————————————————————————

Teil 4 – Meldungen/Alarme zum Empfänger reichen

Vorweg, da zwingend benötigt um per Telefon alarmiert zu werden – aber OffTopic – wer noch keine Sprachausgabe – also besser gesagt eine Sprachsynthese in sein Asterisk integriert hat sollte dies an dieser Stelle mit meinem HOWTO zu MBROLA tun. MBROLA ist Freeware und kann frei genutzt werden, für kommerzielle Einsätze sollte man auf CEPSTRAL wechseln – ich nutze hier kein MBROLA mehr, weshalb meine Skripte den CEPSTRAL Weg folgen werden, die Übernahme nach MBROLA ist aber ein Kinderspiel.

Wer noch SMS Kontakt wünscht der kann dies zBsp. hier finden, oder hier – ich stehe auf ausgesprochene Worte und eine bestätigte Warnung (durch abheben des Hörers)

Wir richten unsere KONTAKTE richtig ein, das machen wir über die Datei “contacts.cfg” in objects :

Code:
define contact{
        contact_name                    nagiosadmin
        use                             phone-contact
        alias                           Voller Name
        pager Die Rufnummer - so wie Asterisk sie DIREKT wählen kann, also : zBsp. "SIP/40"
        email
 TECHNIK@WELTKONZERN.DE
        }

define contact{
        contact_name                    nagiosemail-empfaenger
        use                             phone-contact
        alias                           Voller Name
        email
 TECHNIK2@WELTKONZERN.DE
        }

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagiosadmin, nagiosemail-empfaenger
        }

Speichern.

Wir modifizieren die “commands.cfg” im Verzeichnis “objects” des Nagios “etc” um unsere Sprachanrufe zu tätigen (Hinweis! Wer MBROLA nutzt muss nur den Befehl lt. HOWTO oben verändern, dieses Beispiel weist Cepstral an zu konvertieren!)

Unter den beiden Kommandos zum EMAIL Support fügen wir nun unsere beiden Telefonkommandos ein :

Code:
# 'notify-service-by-phone' command definition
define command{
        command_name    notify-service-by-phone
        command_line    /opt/swift/bin/swift -o /tmp/nagios-alert-service.wav -p audio/sampling-rate=8000,audio/channels=1' "NAGIOS-ÜBERWACHUNG VON EINZELNEN DIENSTEN. Zustand ist $NOTIFICATION$, $SERVICESTATE$. Der Service $SERVICEDESC$ auf  $HOSTALIAS$ benötigt Ihre Aufmerksamkeit. Es wird keine weiteren  Hinweise auf Ihrem Telefon zu diesem Status geben."  &  /var/lib/asterisk/agi-bin/nagios-anruf.sh $CONTACTPAGER$
        }

# 'notify-host-by-phone' command definition
define command{
        command_name    notify-host-by-phone
        command_line    /opt/swift/bin/swift -o /tmp/nagios-alert-host.wav -p audio/sampling-rate=8000,audio/channels=1' "NAGIOS-ÜBERWACHUNG VON HOSTS. Zustand ist $NOTIFICATION$, $SERVICESTATE$. Der Service $SERVICEDESC$ auf $HOSTALIAS$ benötigt Ihre Aufmerksamkeit. Es wird keine weiteren Hinweise auf Ihrem Telefon zu diesem Status geben."  & /var/lib/asterisk/agi-bin/nagios-anruf.sh $CONTACTPAGER$
        }

Nun noch den Kontakt selber unter dem default “generic-contact” in “templates.cfg” erstellen, ich habe ihn hier mit “Arbeitszeit” und nur bei kritischen Fehlern laufen lassen :

Code:
define contact{
        name                            phone-contact
        service_notification_period     Arbeitszeit
        host_notification_period        Arbeitszeit
        service_notification_options    c                       ; c = critical
        downtime events
        host_notification_options       d,u                       ; down und unreachable

        service_notification_commands   notify-service-by-phone
        host_notification_commands      notify-host-by-phone
        register                        0
        }

Die Uhrzeiten setzen wir ebenfalls etwas eleganter, wer will schon unterm Weihnachtsbaum nen Anruf bekommen ? 

timeperiods.cfg

Code:
define timeperiod{
        timeperiod_name Arbeitszeit
        alias           Normal Work Hours
        monday          04:00-19:00
        tuesday         04:00-19:00
        wednesday       04:00-19:00
        thursday        04:00-19:00
        friday          04:00-19:00
        saturday        04:00-19:00
        sunday          06:00-16:00
        }

Wir müssen ebenfalls unser Shellskript in /var/lib/asterisk/agi-bin/ erstellen, wir geben eine Variable “$1” als Rufnummer für Asterisk mit – nochmals deutlich – Asterisk muss dies inkl. CHANNEL erhalten !! Also nicht “40” sondern “SIP/40” “mISDN/1/123456” oder mW “ZAP/2” oder oder..

Wir erstellen die Datei “nagios-anruf.sh” in /var/lib/asterisk/agi-bin

Code:
#!/bin/bash
#
# NAGIOS ALARMFUNKTIONS-SKRIPT
#
# $1 beinhaltet die Rufnummer des zu alarmierenden
# Wir pruefen als ersten Schritt ob die Datei von NAGIOS auch wirklich existiert!
# ACHTUNG! Diese Vorgehensweise hat einen Haken - alarmiert Nagios urplötzlich über viele Probleme, so wird die Sprachdatei laufend aktualisiert und
# könnte zum Zeitpunkt unserer Kontrolle nicht verfügbar sein, so dass nicht alarmiert wird. Umgehung mit einer TIMESTAMP Datei und der Weiterverfolgung
# des Ansatzes unten - jedes Callfile bekommt eine eigene Nummer oder halt einen TIMESTAMP, ich mache es immer so das ich bis zu 3 Nummern vergebe und dann
# bei Skriptstart pruefe ob .1 da ist, dann prüfe ich ob .2 da ist, nein? dann nutze ich .2 usw
#
                if [ -f /tmp/nagios-alert-host.wav ]; then
                        ZEILE1="Channel: $1"                    # wer und wohin - variabel
                        ZEILE6="Extension: nagios"

                        ZEILE2="MaxRetries: 3"                  # Wie oft anrufen
                        ZEILE3="RetryTime: 300"                 # Wartezeit zwischen..
                        ZEILE4="WaitTime: 50"                   # Wartezeit bis zur Abnahme des Apparates
                        ZEILE5="Context: nagios"                # Sprungpunkt
                        ZEILE7="Priority: 1"                    # Prioritaet
                        ZEILE8="CallerID: Nagios <91>"          # Wer ruft an

                        rm /var/spool/asterisk/entwurf/nagios_nachricht.1 2>/dev/null
                        touch /var/spool/asterisk/entwurf/nagios_nachricht.1

                # Hier setzen wir den Lock fuer die Verarbeitung von Anruf 1 - bei mir LOCK 10.

                        touch /var/spool/asterisk/entwurf/10
                        echo $ZEILE1 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE2 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE3 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE4 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE5 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE6 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE7 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE8 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        mv /var/spool/asterisk/entwurf/nagios_nachricht.1 /var/spool/asterisk/outgoing/nagios_nachricht.1

                # Und hier nehmen wir den Lock wieder weg

                        rm /var/spool/asterisk/entwurf/10 2>/dev/null
                fi

# Wir pruefen ob ein Dienst einen Neuen Status hat..

                if [ -f /tmp/nagios-alert-service.wav ]; then
                        ZEILE1="Channel: $1"                    # wer und wohin - variabel
                        ZEILE6="Extension: nagios-service"

                        ZEILE2="MaxRetries: 3"                  # Wie oft anrufen
                        ZEILE3="RetryTime: 300"                 # Wartezeit zwischen..
                        ZEILE4="WaitTime: 50"                   # Wartezeit bis zur Abnahme des Apparates
                        ZEILE5="Context: nagios"                # Sprungpunkt
                        ZEILE7="Priority: 1"                    # Prioritaet
                        ZEILE8="CallerID: Nagios <91>"          # Wer ruft an

                        rm /var/spool/asterisk/entwurf/nagios_nachricht.1 2>/dev/null
                        touch /var/spool/asterisk/entwurf/nagios_nachricht.1

                # Hier setzen wir den Lock fuer die Verarbeitung von Anruf 1 - bei mir LOCK 10.

                        touch /var/spool/asterisk/entwurf/10
                        echo $ZEILE1 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE2 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE3 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE4 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE5 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE6 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE7 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        echo $ZEILE8 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                        mv /var/spool/asterisk/entwurf/nagios_nachricht.1 /var/spool/asterisk/outgoing/nagios_nachricht.1

                # Und hier nehmen wir den Lock wieder weg

                        rm /var/spool/asterisk/entwurf/10 2>/dev/null
                fi

Ausführbar machen mit chmod a+x <dateiname>. Bitte beachtet die in diesem Skript nicht voll ausgefertigte Idee – “was passiert wenn mehrere notrufe ausgegeben werden?”

Nun ran an Asterisk – wer NICHT REALTIME nutzt kann es so machen wie ich :

extensions.conf editieren und folgendes einfügen :

Was ist AMD ? AMD findet heraus ob ein Mensch abnimmt oder eine Maschine – es funktioniert super, ein Nachteil – hört AMD das man abnimmt aber sich nicht seinem Namen meldet nimmt AMD an das ein Anrufb. rangegangen ist und legt einfach auf, bzw. führt das aus was wir wollen was passiert wenn ein AB rangeht. anbei – ich lasse die Nachricht 2 x durchsprechen, es ist halt so das man beim ersten Anruf nicht immer alles wichtige versteht.

Code:
[nagios]

exten => nagios,1,AMD
exten => nagios,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)

exten => nagios,n(humn),Playback(/tmp/nagios)
exten => nagios,n(humn),Playback(/tmp/nagios)
exten => nagios,n(humn),Hangup()

exten => nagios,n(mach),Hangup()

; Aktion bei einem Service - ggf. nicht so dringend und somit anders zu behandeln?

exten => nagios-service,1,AMD
exten => nagios-service,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)

exten => nagios-service,n(humn),Playback(/tmp/nagios)
exten => nagios-service,n(humn),Playback(/tmp/nagios)
exten => nagios-service,n(humn),Hangup()

exten => nagios-service,n(mach),Hangup()

Fertig.

Bitte noch mit “/etc/init.d/nagios checkconfig” die Konfiguration prüfen!

Was jeder selber wissen muss ob er nicht eine Zeitfunktion einbaut, wer will schon nachts angerufen werden weil ein Drucker ausgegangen ist, aber wie gesagt, das muss jeder selber wissen.

zBsp. so :

Code:
exten => nagios,n,GotoIfTime(22:00-06:00,mon-sun,*,*?email-reicht-aus,,1)

Teil 5 – Manuelle Modifikationen (Tipps!)

Tipp 1 – Wer nachher gerne mit der WebGUI arbeitet und zBsp. “Downtimes scheduled” oder “Notifikationen verändert” etc. wird etwas feststellen – unter meinem Debian wird aus irgendeinem Grund die Datei “nagios.cmd” täglich und nach jedem Neustart des PC / Server mit anderen Schreibrechten versehen – warum dem so ist und/oder ob es an dem Verzeichnis liegt weiss ich nicht – meine Abhilfe steht in einem kleinen “Tagesskript” an letzter Stelle :

Code:
chmod 777 /usr/local/nagios/var/rw/nagios.cmd

Dann ist wieder alles möglich – es hilft allerdings NICHT bei einem Neustart und dem Willen direkt danach etwas in der GUI zu tun.

Tipp 2 – [GuterTipp!!] Wer sich gerne “optisch” mit Nagios auseinandersetzen will, sollte die Option “parents” beherrschen und überall in der Konfiguration einpflegen !!

Parents steht für nicht mehr als das man seinem Objekt der Überwachung sagt von wem es abhängt.
Einfaches Beispiel – DSL fällt aus, der Webserver dahinter ist lokal natürlich noch zu erreichen – jedoch ist er für die Außenwelt tot.
Gibt man dem Webserver jedoch die Option parents mit, versteht er das er ebenfalls down ist wenn die Eltern ausfallen – und noch mehr, mit gesetzter Parents kann man per Klick direkt zu einer geplanten Ausfallzeit (scheduled downtime) die Kinder mit einplanen.

Eine Konfig sieht dann zBsp. so aus :

Code:
define host{
        use             generic-voip
        host_name       asterisk-service
        alias           Der ASTERISK DIENST
        address         10.0.0.60
        hostgroups      voip
        parents         patton-isdn
        parents         dsl-router-1
        parents         dsl-router-2
        parents         dsl-router-3
        }

 

CentOS 5 and Asterisk 1.4.x installation

 

Business PBX Solution

 

Base Install of Asterisk on a CentOS/RHEL box:

 

Before you begin, you’ll probably want to bring all your packages up to date. To do so, run ‘yum -y update’. If any kernel files were updated as part of this process, you will need to reboot the machine (shutdown -r now). Repeat the process until no more updates are available.

 

Download the pre-requisite of asterisk:

 

gcc

gcc-c++

kernel-devel

bison

openssl-devel

libtermcap-devel

yum install sqlite-devel

 

 

We’ll be using yum for now(there’s no support for apt-get in CentOS 5)

 

yum -y update

yum install gcc gcc-c++ kernel-devel bison openssl-devel libtermcap-devel

 

 

then download the latest asterisk version at asterisk.org to /usr/src:

 

cd /usr/src

 

wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz

wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz

 

 

#if you plan to use PRI cards(eg. TE110P, TE406P) you need to download this package:

 

 

wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz

 

 

then untar all the files

 

tar -zxf zaptel-1.4-current.tar.gz

tar -zxf asterisk-1.4-current.tar.gz

tar -zxf libpri-1.4-current.tar.gz

 

 

### INSTALLING ZAPTEL ###

 

cd /usr/src/zaptel

 

make clean

make

make install

 

#If you want “service zaptel restart” command to work do this

make config

 

 

### INSTALL LIBPRI ###

# If you are using E1 cards you need to install LIBPRI

 

cd /usr/src/libpri

 

make clean

make

make install

 

 

### INSTALLING ASTERISK ###

 

cd /usr/src/asterisk

 

./configure

make

make install

 

#If you want sample files to be created in /etc/asterisk

make samples

 

#If you want program docs/manual pages for asterisk

make progdocs

 

#If you want “service asterisk restart” command to work do this

make config