Eigene Telefonanlage: Asterisk Installation unter Ubuntu 22.04

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.