Eigene Telefonanlage: Asterisk Installation unter Ubuntu 22.04
Wer träumt den nicht von einer Telefonanlage, die Open Source, Lizenzfrei, und ohne teure Techniker auskommt.
Asterisk installieren
Als erstes melden wir uns mit dem User root an. Nun installieren wir das Paket auf unserer Maschine.
apt install asterisk -y
Es werden alle Dateien geladen und in die passenden Verzeichnisse erstellt. Das Verzeichnis, welches für uns wichtig ist, liegt unter /etc/asterisk/. Für den Anfang brauchen wir nur zwei Dateien: sip.conf und die extensions.conf. Die sip.conf definiert unsere Benutzer die wir anlegen und extensions.conf ist der Dialplan, sprich der Schaltplan hier sagen wir Asterisk, was er tun soll wenn eine Aktion ausgeführt wird.
Asterisk Benutzer anlagen
Wir navigieren in das Asterisk Verzeichnis.
cd /etc/asterisk/
Nun leeren wir die sip.conf und fangen an, die Datei zu beschreiben.
echo "" > sip.conf
nano sip.conf
Nachdem wir das getan haben, können wir den General-Header einfügen. Dieser sieht wie folgt aus:
[general]
context=public ; Default context for incoming calls. Defaults to 'default'
allowoverlap=no ; Disable overlap dialing support. (Default is yes)
udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
tcpenable=no ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
transport=udp ; Set the default transports. The order determines the primary default transport.
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
qualify=yes
[authentication]
[basic-options](!) ; a template
dtmfmode=rfc2833
context=from-office
type=friend
[natted-phone](!,basic-options) ; another template inheriting basic-options
directmedia=no
host=dynamic
[public-phone](!,basic-options) ; another template inheriting basic-options
directmedia=yes
[my-codecs](!) ; a template for my preferred codecs
disallow=all
allow=ilbc
allow=g729
allow=gsm
allow=g723
allow=ulaw
[ulaw-phone](!) ; and another one for ulaw-only
disallow=all
allow=ulaw
Leider hat es bei mir nicht mit dem context=public funtioniert. Daher schreiben wir hier context=default.
Wir navigieren ans ende der Datei und fügen hier folgenden Code hinzu. Dieser erstellt einen neuen Benutzer hinzu.
[100] ;Kennungs des Benutzers
type=friend ;Type des Benutzers
callerid=Benutzer1 ;Anzeigename
allow=ulaw,alaw ;Erlaubte Kanäle
secret=1234 ;PAsswort. Wird bei der anmeldung benötigt
host=dynamic ;Hostauswahl
context=home ;Sagt in welchen Bereich er sich bewegen darf in der extensions.conf
Nach dem Schema legen wir uns jetzt alle Benutzer an die wir brauchen.
Im weiteren müssen wir jetzt sagen, was passieren soll, wenn eine Durchwahl angerufen wird. Sprich wenn 100 die 200 anruft. Dafür leeren wir erst die extensions.conf und legen dann einen neuen Plan an.
echo "" > extensions.con
nano extensions.conf
Hier werden nun die neuen Pläne eingefügt:
[home] ;zuvor gesetzter Context in der sip.conf
exten => 100,1,NoOp(Anruf für Benutzer 1) ;Gibt in der Asterisk CLI den eingegebenen Text aus
same => n,Dial(SIP/100,20) ;Holt aus der sip.conf den Benutzer 100, die 20 bedeutet, dass des 20 mal klingelt
same => n,Hangup ;Legt aus
exten => 200,1,NoOp(Anruf für Benutzer 2)
same => n,Dial(SIP/200,20)
same => n,Hangup
Asterisk CLI
Nun haben wir alles angelegt, was wir für die Grundfunktionen brauchen. Damit auch Asterisk weiß was er tun soll öffnen wir die eigenen CLI.
asterisk -rvvv
Die drei v im Befehl sagen Asterisk welches Support-Level geöffnet werden sollen. Dieses brauchen wir, damit wir den Ablauf verfolgen können.
Wir müssen nun die sip.conf Neuladen:
sip reload
und laden dann die extensions.conf neu:
dialplan reload
Test der Telefone
Ich benutze an meinem Windows Rechner PhonerLite. Das kannst du dir hier Herunterladen. Für mein Smartphone benutze ich Portsip UC.
Danach können wir auch in der Asterisk CLI sehen, dass sich der Benutzer 100 angemeldet hat.
Nachdem wir nun beide Anschlüsse verbunden haben, können wir drauflos testen. Dafür rufen wir nur eine der beiden Nummern an. Ich habe hier von der 200 die 100 angerufen.
Wie wir hier sehen wir in der CLI von Asterisk der genaue Ablauf wiedergegeben in Realtime. Dies kann uns später bei der Fehlersuche helfen.