Asterisk ist eine kostenlose Voice over IP Lösung zum Betrieb Ihrer eigenen Telefonanlage.
Voice over IP ist das Telefonieren über Rechnernetze, welche nach Internetstandards aufgebaut sind. Dabei werden für Telefonie typische Informationen, mithin Sprache und Steuerinformationen beispielsweise für den Aufbau einer Verbindung, über ein Datennetz übertragen. Bei den Gesprächsteilnehmern können Computer, auf IP-Telefonie spezialisierte Telefonendgeräte oder klassische Telefone, die über spezielle Adapter angeschlossen sind, die Verbindung herstellen.
Bestimmt gibt es noch viele gute Gründe, die für einen Umstieg auf IP Telefonie sprechen.
Zuerst installieren wir Asterisk als APT Package
apt-get install build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev git subversion
und wechseln danach in das Verzeichnis
cd /usr/src
wo wir nun die aktuelle Asterisk Software mit wget herunterladen
wget downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
und entpacken diese mit
tar zxvf asterisk-16-current.tar.gz
Jetzt wechseln wir in den entpackten Unterordner (bei euch heißt er evtl. anders)
cd asterisk-16.*
und beginnen damit, einige Scripte auszuführen
contrib/scripts/get_mp3_source.sh contrib/scripts/install_prereq install
Wir werden danach nach einem „ITU-T telephone code“ gefragt, für Österreich ist es 43. Weitere Ländercodes finden Sie im Internet. Jetzt beginnen wir, den eigentlichen Asterisk Server zu konfigurieren, wozu es ein configure script gibt. Im Asterisk Ordner geben wir ein
./configure --with-jansson-bundled
make make install make samples make config ldconfig
Die grundinstallation wäre damit geglückt, nun werden wir noch einige Sicherheitsvorkehrungen treffen. Wir erzeugen eine Benutzergruppe asterisk und einen Benutzer asterisk, der sein Heimverzeichnis unter /var/lib/asterisk hat und fügen ihn noch der Benutzergruppe asterisk hinzu.
groupadd asterisk useradd -d /var/lib/asterisk -g asterisk asterisk
Um Asterist auch unter dem neuen Benutzer und der Grupe zu starten müssen wir noch folgende Befehle ausführen
sed -i 's/#AST_USER="asterisk"/AST_USER="asterisk"/g' /etc/default/asterisk sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/g' /etc/default/asterisk sed -i 's/;runuser = asterisk/runuser = asterisk/g' /etc/asterisk/asterisk.conf
Außerdem müssen wir noch die Rechte an einigen Verzeichnissen bearbeiten.
chown -R asterisk:asterisk /etc/asterisk /var/{run,lib,log,spool}/asterisk /usr/lib/asterisk
Jetzt können wir den Dienst starten und er sollte unter dem Benutzer asterisk ausgeführt werden.
systemctl start asterisk
Um in das CLI (Command line interface) zu gelangen geben Sie ein
asterisk -rvv
Je mehr “v” Sie anhängen, desto mehr Debug-Meldungen werden angezeigt!
Die wichtigsten Konfigurationsdateien finden Sie unter /etc/asterisk. Hier sehen Sie ein Beispiel aus einer sip.conf:
# Der "general" context gilt global, Änderungen können im jeweiligen Sub Context vorgenommen werden. [general] bindaddr = 0.0.0.0 bindport = 5060 # Im Falle eines VoIP Trunks ins PSTN [extern] type = friend host = 1.1.1.1 dtmfmode = rfc2833 disallow = all allow=ulaw allow=alaw [intern] dtmfmode = rfc2833 disallow = all allow=ulaw allow=alaw [101] context=intern type = friend secret = 1234 host = dynamic [102] context=intern type = friend secret = 1234 host = dynamic [103] context=intern type = friend secret = 1234 host = dynamic
In der Datei /etc/asterisk/extensions.conf kann das Rufverhalten der einzelnen Peers definiert werden.
[from-outside] ; Hier konfigurierst du die Einstellungen für eingehende Anrufe von einem Trunk oder einer externen Quelle. ; Füge hier beispielsweise Routen hinzu, um Anrufe an bestimmte interne Erweiterungen weiterzuleiten. exten => _X.,1,NoOp(Inbound call from outside) exten => _X.,n,Dial(SIP/$(EXTEN)@intern) ; Leite den Anruf an die interne Erweiterung weiter exten => _X.,n,Hangup() [from-inside] ; Hier konfigurierst du die Einstellungen für ausgehende Anrufe von internen Erweiterungen. ; Füge hier beispielsweise Routen hinzu, um Anrufe an externe Nummern oder Trunks weiterzuleiten. exten => _X.,1,NoOp(Inbound call from inside) exten => _X.,n,Dial(SIP/${EXTEN}@intern) ; Wähle die Nummer über den Trunk "intern" (in sip.conf) exten => _X.,n,Hangup() exten => _0X.,1,NoOp(Outbound call from inside) ; 0 als Vorwahl für externe Anrufe exten => _0X.,n,Dial(SIP/${EXTEN:1}@extern) ; Wähle die externe Nummer über den Trunk "extern" (in sip.conf) exten => _0X.,n,Hangup()
In der Datei voicemail.conf kann man Voicemails konfigurieren.
[101] 101 => password1, Employee 1, user1@mail.local [102] 102 => password2, Employee 2, user2@mail.local [103] 103 => password3, Employee 3, user3@mail.localBeitrag auf Github bearbeiten