Automatische Installation deines eigenen Asterisk-Telefonservers für weltweite Telefonate

3. Oktober 2025

Weltweit kostenlos telefonieren — mit deinem eigenen Asterisk-Server. Ohne Programmierkenntnisse. Mit den beiliegenden 4 Batch-Dateien installierst du bequem einen vollständigen, erweiterbaren und anpassbaren Asterisk-Telefonserver auf Linux, der für weltweite Gespräche das Internet nutzt. Optional sorgen Fail2Ban und APIBAN für Schutz gegen bösartige SIP-Scanner. Eine zusätzliche Bash-Datei erzeugt QR-Codes für das Softphone Sipnetic (Google Play): QR-Code abfotografieren — Zugangsdaten sind automatisch eingetragen. Bequemer geht’s kaum.

Du kannst wirklich weltweit kostenlos telefonieren. Allerdings nur innerhalb deines eigenen Asterisk-Servers. Es fallen keine Telefongebühren an.  Eventuell fallen Gebühren für den geringen Datenstrom des Internetzugang an. Sprachübertragungen benötigt nicht viele Daten. Die Kosten sind meistens vernachlässigbar. Meistens nutzt du aber eine Flatrate oder nutzt kostenlose WLAN-Hotspots. Später kannst du noch Zugänge in die öffentliche Netze einrichten oder dich mit anderen kostenlosen Telefonnetzen verbinden. Die Möglichkeiten von Asterisk sind fast unbegrenzt. Die Tonqualität ist viel besser als bei den meisten Messengerdiensten. Sogar Videotelefonate sind mit entsprechenden Softphones möglich. Zum Einsatz kommt der Video-Codec VP8, den sehr viele Softphones wie zum Beispiel Linphone beherrschen. Und die lästigen Telefonverkäufer haben natürlich keinen Zugang auf deinen eigenen Asterisk-Server.

Chatgpt image 3. okt. 2025, 10 20 41
Ohne Programmierkenntnisse kannst du deinen eigenen Asterisk-Server für weltweite Telefonate über das Internet installieren und betreiben.

Alle 4 Bash-Dateien zum Download in einer Zip-Datei:

Asterisk-Installation-mit-Bash-Dateien.zip

Lade die Zip-Datei herunter und entpacke sie. Du brauchst nach und nach alle 4 Bash-Dateien für eine dauerhafte zuverlässige Installation eines Asterisk-Telefonservers. Gehe Schritt für Schritt vor und lies dir die Anleitung sorgfältig durch. Mach dich und andere durch deinen eigenen  Telefonserver unabhängig von solchen Messenger-Diensten, die mit deinen Daten Geld verdienen wollen und – schlimmer noch – dich gezielt manipulieren wollen. Spar dir teure Handy-Telefonate. Verzichte auf teure  Auslandstelefonate. Mit dem ersparten Geld kannst du lustigere Sachen machen. Später kannst du deine Telefonate sogar verschlüsseln, wenn du willst. Dazu brauchst du Softphones, die das unterstützen.

Hilfefstellung: Wenn du nicht weiter weißt, scheue dich nicht ChatBots wie Claude Sonnet, ChatGPT, Grok oder DeepSeek zu fragen. Sie sind mächtige Werkzeuge, die dir weiterhelfen.  Du musst nur versuchen deine Prompts möglichst exakt zu formulieren. Die vier Bash-Dateien sind mit Unterstützung von Claude Sonnet und ChatGPT entstanden und funktionierten erst nach einigen Anläufen.

Voraussetzungen: Geeignet für Linux Debian (Ubuntu, Mint, Raspberry Pi OS) und für Asterisk ab Ver. 16.
Testumgebung: Ubuntu Mate 24.04 und Asterisk 20.

1. Installation und Konfiguration von Asterisk mit der asterisk_basic.sh: Diese Bash-Datei installiert Asterisk und die Konfigurationsdateien pjsip.conf, extensions.conf, rtp.conf und features.conf. Dadurch erhältst du einen lauffähigen Asterisk-Server mit den SIP-Accounts 3001 bis 3006, einer Testnummer 222 für den Echotest und einem Konferenzraum mit der Nummer 600. Die Rufweiterleitung erfolgt mit einem *. Wenn man das Gespräch an die 3006 abgeben möchte, dann tippt man *3006 ein und legt auf. Anzahl der Telefonnummern ist beliebig erweiterbar. In der extensions.conf sind die Wahlregeln für die Nummerngasse 3000 bis 3999 definiert.

Nachfolgend der Inhalt der asterisk_basic.sh: Du musst den Inhalt nicht verstehen. Er soll nur als Beispiel dienen, welche Arbeit er dir abnimmt. Du brauchst keine Ahnung von der Asterisk-Programmierung haben, ist der größte Vorteil.

#!/bin/bash
#===============================================================================
# Asterisk Installation & Konfiguration für Debian/Ubuntu/Mint/Raspberry Pi
# Basis-Installation OHNE fail2ban und APIBAN
# Installiert Asterisk und konfiguriert 6 Teilnehmer (3001-3006)
#===============================================================================

set -e  # Bei Fehler abbrechen

# Farben für Ausgabe
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Asterisk Basis-Installation${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""

# Root-Rechte prüfen
if [ "$EUID" -ne 0 ]; then 
    echo -e "${RED}Bitte als root ausführen (sudo ./install_asterisk_basic.sh)${NC}"
    exit 1
fi

# Lokales Netzwerk automatisch erkennen
echo -e "${YELLOW}Erkenne lokales Netzwerk...${NC}"
LOCAL_IP=$(ip route get 1.1.1.1 | grep -oP 'src \K\S+')
if [ -z "$LOCAL_IP" ]; then
    echo -e "${RED}Fehler: Konnte lokale IP nicht ermitteln!${NC}"
    exit 1
fi

# Netzwerk-Adresse berechnen (z.B. 192.168.1.0/24 aus 192.168.1.50)
IFS='.' read -r -a ip_parts <<< "$LOCAL_IP"
LOCAL_NET="${ip_parts[0]}.${ip_parts[1]}.${ip_parts[2]}.0/24"

echo -e "${GREEN}✓ Lokale IP: $LOCAL_IP${NC}"
echo -e "${GREEN}✓ Lokales Netzwerk: $LOCAL_NET${NC}"

# Öffentliche IP ermitteln
echo -e "${YELLOW}Ermittle öffentliche IP-Adresse...${NC}"
PUBLIC_IP=$(curl -s -4 ifconfig.me)
if [ -z "$PUBLIC_IP" ]; then
    # Fallback zu anderem Dienst
    PUBLIC_IP=$(curl -s -4 icanhazip.com)
fi

if [ -z "$PUBLIC_IP" ]; then
    echo -e "${YELLOW}⚠ Konnte öffentliche IP nicht automatisch ermitteln${NC}"
else
    echo -e "${GREEN}✓ Öffentliche IP: $PUBLIC_IP${NC}"
fi

echo ""

# Externe Adresse abfragen (DynDNS oder statische IP)
echo ""
echo -e "${YELLOW}========================================${NC}"
echo -e "${YELLOW}Externe Adresse Konfiguration${NC}"
echo -e "${YELLOW}========================================${NC}"
echo ""

# Wenn öffentliche IP ermittelt wurde, Option anbieten
if [ -n "$PUBLIC_IP" ]; then
    echo -e "${GREEN}Deine aktuelle öffentliche IP ist: $PUBLIC_IP${NC}"
    echo ""
    echo -e "Möchtest du diese IP verwenden?"
    echo -e "  ${GREEN}1)${NC} Ja, verwende $PUBLIC_IP (statische IP)"
    echo -e "  ${GREEN}2)${NC} Nein, ich möchte eine DynDNS-Adresse eingeben"
    echo ""
    read -p "Deine Wahl (1 oder 2): " IP_CHOICE
    echo ""
    
    if [ "$IP_CHOICE" = "1" ]; then
        EXTERNAL_ADDRESS=$PUBLIC_IP
        echo -e "${GREEN}✓ Verwende öffentliche IP: $EXTERNAL_ADDRESS${NC}"
    else
        echo -e "${YELLOW}Bitte gib deine DynDNS-Adresse ein:${NC}"
        echo -e "${YELLOW}Beispiel: donaldduck.dyndns.org${NC}"
        echo ""
        read -p "DynDNS-Adresse: " EXTERNAL_ADDRESS
        
        if [ -z "$EXTERNAL_ADDRESS" ]; then
            echo -e "${RED}Fehler: DynDNS-Adresse darf nicht leer sein!${NC}"
            exit 1
        fi
    fi
else
    # Wenn öffentliche IP nicht ermittelt werden konnte
    echo -e "${YELLOW}Bitte gib deine externe Adresse ein:${NC}"
    echo -e "  ${GREEN}Option 1:${NC} DynDNS-Adresse (z.B. donaldduck.dyndns.org)"
    echo -e "  ${GREEN}Option 2:${NC} Statische öffentliche IP (z.B. 203.0.113.42)"
    echo ""
    read -p "Externe Adresse: " EXTERNAL_ADDRESS
    
    if [ -z "$EXTERNAL_ADDRESS" ]; then
        echo -e "${RED}Fehler: Externe Adresse darf nicht leer sein!${NC}"
        exit 1
    fi
fi

# Bestätigung
echo ""
echo -e "${GREEN}Externe Adresse: $EXTERNAL_ADDRESS${NC}"
read -p "Ist das korrekt? (j/n): " CONFIRM

if [ "$CONFIRM" != "j" ] && [ "$CONFIRM" != "J" ]; then
    echo -e "${RED}Installation abgebrochen.${NC}"
    exit 1
fi

echo ""

# Systeminformationen
echo -e "${YELLOW}System wird aktualisiert...${NC}"
apt-get update
apt-get upgrade -y

# Asterisk installieren
echo -e "${YELLOW}Asterisk wird installiert...${NC}"
apt-get install -y asterisk

# Asterisk stoppen für Konfiguration
echo -e "${YELLOW}Asterisk wird gestoppt für Konfiguration...${NC}"
systemctl stop asterisk

# Backup der Original-Konfigurationen
BACKUP_DIR="/etc/asterisk/backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
echo -e "${YELLOW}Backup der Original-Konfigurationen nach $BACKUP_DIR${NC}"
[ -f /etc/asterisk/pjsip.conf ] && cp /etc/asterisk/pjsip.conf "$BACKUP_DIR/"
[ -f /etc/asterisk/rtp.conf ] && cp /etc/asterisk/rtp.conf "$BACKUP_DIR/"
[ -f /etc/asterisk/features.conf ] && cp /etc/asterisk/features.conf "$BACKUP_DIR/"
[ -f /etc/asterisk/extensions.conf ] && cp /etc/asterisk/extensions.conf "$BACKUP_DIR/"

#===============================================================================
# pjsip.conf erstellen
#===============================================================================
echo -e "${YELLOW}Erstelle pjsip.conf...${NC}"
cat > /etc/asterisk/pjsip.conf << EOF
;===============================================================================
; PJSIP Configuration für Asterisk 16+
; Einfache Konfiguration für Telefonie + Videotelefonie über Internet
;===============================================================================

;-------------------------------------------------------------------------------
; Transport Definition (Netzwerk-Bindung)
;-------------------------------------------------------------------------------
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:5075
external_media_address=$EXTERNAL_ADDRESS
external_signaling_address=$EXTERNAL_ADDRESS
local_net=$LOCAL_NET

;-------------------------------------------------------------------------------
; Globale Einstellungen
;-------------------------------------------------------------------------------
[global]
max_forwards=70
user_agent=Asterisk PBX
default_realm=$EXTERNAL_ADDRESS

;-------------------------------------------------------------------------------
; Template für alle Teilnehmer
;-------------------------------------------------------------------------------
[teilnehmer-template](!)
type=aor
max_contacts=1
qualify_frequency=15
default_expiration=300
maximum_expiration=3600

[teilnehmer-auth](!)
type=auth
auth_type=userpass

[teilnehmer-endpoint](!)
type=endpoint
context=telefone
transport=transport-udp

; Codec-Einstellungen
disallow=all
allow=g722,alaw,ulaw,gsm,vp8
allow_overlap=no
allow_transfer=no
allow_subscribe=no

; NAT & Media
direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
ice_support=yes

; DTMF
dtmf_mode=rfc4733

; Jitter Buffer (wird von Asterisk core verwaltet)
; Siehe rtp.conf für jbenable, jbmaxsize, etc.

; Session Timers
timers=no
timers_min_se=90
timers_sess_expires=1800

; QoS/ToS
tos_audio=ef
tos_video=af41
cos_audio=5
cos_video=4

; Video Support
webrtc=no
; Falls WebRTC gewünscht: webrtc=yes, use_avpf=yes, media_encryption=dtls

;-------------------------------------------------------------------------------
; Teilnehmer 3001 - Kalle Anka
;-------------------------------------------------------------------------------
[3001](teilnehmer-endpoint)
auth=3001
aors=3001
callerid="Kalle Anka" <3001>

[3001](teilnehmer-auth)
username=3001
password=pass3001

[3001](teilnehmer-template)

;-------------------------------------------------------------------------------
; Teilnehmer 3002 - Donald Duck
;-------------------------------------------------------------------------------
[3002](teilnehmer-endpoint)
auth=3002
aors=3002
callerid="Donald Duck" <3002>

[3002](teilnehmer-auth)
username=3002
password=pass3002

[3002](teilnehmer-template)

;-------------------------------------------------------------------------------
; Teilnehmer 3003 - Dagobert Duck
;-------------------------------------------------------------------------------
[3003](teilnehmer-endpoint)
auth=3003
aors=3003
callerid="Dagobert Duck" <3003>

[3003](teilnehmer-auth)
username=3003
password=pass3003

[3003](teilnehmer-template)

;-------------------------------------------------------------------------------
; Teilnehmer 3004 - Max Mustermann
;-------------------------------------------------------------------------------
[3004](teilnehmer-endpoint)
auth=3004
aors=3004
callerid="Max Mustermann" <3004>

[3004](teilnehmer-auth)
username=3004
password=pass3004

[3004](teilnehmer-template)

;-------------------------------------------------------------------------------
; Teilnehmer 3005 - King Kong
;-------------------------------------------------------------------------------
[3005](teilnehmer-endpoint)
auth=3005
aors=3005
callerid="King Kong" <3005>

[3005](teilnehmer-auth)
username=3005
password=pass3005

[3005](teilnehmer-template)

;-------------------------------------------------------------------------------
; Teilnehmer 3006 - Adam Smith
;-------------------------------------------------------------------------------
[3006](teilnehmer-endpoint)
auth=3006
aors=3006
callerid="Adam Smith" <3006>

[3006](teilnehmer-auth)
username=3006
password=pass3006

[3006](teilnehmer-template)
EOF

#===============================================================================
# rtp.conf erstellen
#===============================================================================
echo -e "${YELLOW}Erstelle rtp.conf...${NC}"
cat > /etc/asterisk/rtp.conf << 'EOF'
[general]
rtpstart=10501
rtpend=10700

jbenable=yes
jbmaxsize=200
jbresyncthreshold=1000
jbimpl=adaptive
EOF

#===============================================================================
# features.conf erstellen
#===============================================================================
echo -e "${YELLOW}Erstelle features.conf...${NC}"
cat > /etc/asterisk/features.conf << 'EOF'
[general]
transferdigittimeout => 3

[featuremap]
blindxfer => *

[applicationmap]
EOF

#===============================================================================
# extensions.conf erstellen
#===============================================================================
echo -e "${YELLOW}Erstelle extensions.conf...${NC}"
cat > /etc/asterisk/extensions.conf << 'EOF'
;===============================================================================
; extensions.conf - Einfacher Dialplan für 3000-3999
;===============================================================================

[general]
static=yes
writeprotect=no

;-------------------------------------------------------------------------------
; Kontext: telefone
;-------------------------------------------------------------------------------
[telefone]

; Durchwahl 3000-3999
exten => _3XXX,1,Dial(PJSIP/${EXTEN},60,rtT)
 same => n,Hangup()
 
 ; ECHOTEST (HALL, ZEITVERZOEGERUNG DEUTSCH)
exten => 222,1,NoOp(ECHOTEST) 
 same => n,Noop(Anruf erfolgt von: "${CALLERID(name)}" <${CALLERID(num)}>) 
 same => n,Answer()                   ; Abheben
 same => n,Wait(2)                    ; Warten
 same => n,Playback(demo-echotest)    ; Ansage
 same => n,Echo                       ; Echotest
 same => n,Playback(demo-echodone)    ; Bestaetigung
 same => n,Hangup()                   ; Auflegen

; Konferenzraum ohne PIN (z.B. Raum 600 - wähle 600, um beizutreten)
exten => 600,1,ConfBridge(600)
same => n,Hangup()
EOF

# Berechtigungen setzen
chown asterisk:asterisk /etc/asterisk/*.conf
chmod 640 /etc/asterisk/*.conf

# Asterisk starten
echo -e "${YELLOW}Asterisk wird gestartet...${NC}"
systemctl enable asterisk
systemctl start asterisk

# Kurz warten
sleep 3

# Status prüfen
if systemctl is-active --quiet asterisk; then
    echo -e "${GREEN}✓ Asterisk läuft erfolgreich!${NC}"
else
    echo -e "${RED}✗ Fehler: Asterisk konnte nicht gestartet werden${NC}"
    echo -e "${YELLOW}Prüfe die Logs mit: journalctl -u asterisk -n 50${NC}"
    exit 1
fi

#===============================================================================
# Zusammenfassung
#===============================================================================
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Installation erfolgreich abgeschlossen!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo -e "${YELLOW}Konfigurierte Teilnehmer:${NC}"
echo "  3001 - Kalle Anka      (Passwort: pass3001)"
echo "  3002 - Donald Duck     (Passwort: pass3002)"
echo "  3003 - Dagobert Duck   (Passwort: pass3003)"
echo "  3004 - Max Mustermann  (Passwort: pass3004)"
echo "  3005 - King Kong       (Passwort: pass3005)"
echo "  3006 - Adam Smith      (Passwort: pass3006)"
echo ""
echo -e "${YELLOW}Besondere Rufnummern:${NC}"
echo "  222 - Echotest"
echo "  600 - Konferenzraum"
echo ""
echo -e "${YELLOW}SIP-Server Einstellungen:${NC}"
echo "  Server: $EXTERNAL_ADDRESS"
echo "  Port: 5075 (UDP)"
echo "  Lokales Netzwerk: $LOCAL_NET"
echo "  Lokale IP: $LOCAL_IP"
echo ""
echo -e "${RED}WICHTIG - Router Konfiguration:${NC}"
echo ""
echo -e "${RED}Portweiterleitung im Router einrichten:${NC}"
echo "  - UDP Port 5075 → Dieser Server (SIP Signaling)"
echo "  - UDP Ports 10501-10700 → Dieser Server (RTP Media)"
echo ""
# Prüfen ob es eine DynDNS-Adresse ist (enthält Buchstaben)
if [[ "$EXTERNAL_ADDRESS" =~ [a-zA-Z] ]]; then
    echo -e "${RED}DynDNS im Router konfigurieren:${NC}"
    echo "  - DynDNS-Adresse: $EXTERNAL_ADDRESS"
    echo "  - DynDNS-Dienst einrichten (z.B. DynDNS, No-IP, etc.)"
    echo ""
fi
echo ""
echo -e "${YELLOW}Nützliche Befehle:${NC}"
echo "  sudo systemctl status asterisk   - Status prüfen"
echo "  sudo systemctl restart asterisk  - Neustart"
echo "  sudo asterisk -rvvv              - Asterisk Konsole"
echo "  sudo tail -f /var/log/asterisk/messages - Logs anzeigen"
echo ""
echo -e "${YELLOW}⚠ HINWEIS: Dieser Server ist NICHT durch fail2ban geschützt!${NC}"
echo -e "${YELLOW}   Für Produktivbetrieb empfohlen: install_asterisk_secure.sh${NC}"
echo ""
echo -e "${GREEN}Viel Erfolg mit deinem Asterisk-Server!${NC}"
echo ""

Die asterisk_basic.sh und die anderen Bash-Dateien musst du noch ausführbar machen: Achte darauf, dass sich dein Linux-Terminal in dem Pfad der Bash-Datei befindet

chmod +x asterisk_basic.sh

und so führst du dies Bash-Datei aus:

./asterisk_basic.sh

Folgende Bedingungen müssen erfüllt sein: Der Linux-Rechner, auf dem du Asterisk installierst, muss entweder eine statische lokale IP besitzen oder du machst einen entsprechenden Eintrag im Router, damit diesem Rechner immer dieselbe lokale IP zugewiesen wird. Dies kann beim Raspberry Pi zum Beispiel der bequemere Weg sein. Der Rechner sollte rund um die Uhr laufen, wenn deine Teilnehmer immer erreichbar sein wollen.

Das Installations-Skript fragt dich danach, ob du die externe IP deines Internetanschlusses verwenden möchtest, was Sinn macht, wenn dieses statisch ist oder ob du einen Dynamischen DNS-Service wie zum Beispiel donaldduck.dyndns.org verwendest, der in deinem  Router eingetragen ist.

Hast du einen Zugang über StarLink, kannst du leider nicht ohne weiteres einen eigenen Asterisk-Server betreiben, weil du als Privatnutzer in der Regel deine öffentliche IP mit anderen teilst. Verlege deinen  Asterisk-Server auf einem  Server in der Cloud, der auf Basis von Linux läuft und du den vollen Zugriff hast.

Folgende Portweiterleitungen und Konfigurationen benötigt dein Router, damit du über das Internet weltweit telefonieren kannst. Dazu musst du die statische IP des Rechners kennen, auf dem dein Asterisk läuft.

Für den SIP-Port: UDP 5075  (ohne dies kein Verbindungsaufbau)
Für RTP: UDP 10501 bis 10700 (ohne dies keine Sprachübertragung)

Dan musst du noch eventuell eine dynamische  DNS eintragen, wenn du keine statische öffentliche IP hast wie zum Beispiel donaldduck.dyndns.org. Sie muss nicht von dyndns.org stammen. Es gibt einige kostenlose Anbieter als Alternative.

Falls dein Router SIP ALG kann, musst du dies deaktivieren. Router von Netgear können SIP ALG.

So testest du, ob deine Asterisk-Installation funktioniert:

# So kommst du in die Asterisk-Konsole
sudo asterisk -rvvv

# Du bist jetzt in der Asterisk-Konsole.
# Welche SIP-Accounts sind vorhanden und angemeldet?
pjsip transports

# Änderungen der pjsip.conf aktivieren
pjsip reload

Zugangsdaten der SIP-Acounts:  Du hast noch keine Telefone angeschlossen. Am einfachsten ist es Softphones für SIP zu verwenden. Die meisten sind kostenlos im Google Play  Store für  Android erhältlich (z.B. Zoiper, Linphone, Sipnetic, SessionTalk, PortSip) Du kannst dann mit deinem Smartphone mit anderen Teilnehmern deines Asterisk-Servers kostenlos und weltweit telefonieren. Dur brauchst nur eine Internetverbindung. Diese kann bereitgestellt werden über: WLAN, öffentliche WLAN-Hotspots, mobiler Datenfunk, StarLink und so weiter. Da der Datenstrom beim Telefonieren sehr gering ist, fallen keine oder vernachlässigbar geringe Kosten an.

Für die 3001 zum Beispiel würden folgende Zugangsdaten gelten, die du in dein Softphone einträgst:

Benutzername / Telefonnummer: 3001
Transport: UDP (falls nachgefragt wird
Passwort (Kennwort) : pass3001
Registrar: donaldduck.dyndns.org:5075 (Das ist nur ein fiktives Beispiel, donaldduck.dyndns.org kannst du auch durch die öffentliche IP des  Asterisk-Servers ersetzen. Diese sollte statisch sein)

2. Automatisches Eintragen des SIP-Accounts mit QR-Codes für das Softphone  Sipnetic: Viele Verzweifeln und Scheitern an der richtigen Konfiguration ihres Softphones. Dabei musst du überhaupt nichts eintippen, wenn du dir das kostenlose Softphone Sipnetic aus dem Google Playstore besorgst.

So einfach geht das: Du bist auf dem Rechner, auf dem dein Asterisk läuft. Führe die sipnetic_qr_generator.sh aus und folge den Anweisungen. Es erzeugt in einem Unterordner QR-Codes für die Telefonnummern deines Asterisk-Servers. Lass dir das  Bildchen mit dem QR-Code der gewünschten Telefonnummer anzeigen. Starte Sipnetic auf deinem Smartphone, befolge die Anweisungen und halte die Kamera auf das QR-Code-Bildchen und schon ist der  Account registriert.

Du kannst das Bildchen auch einem Freund per E-Mail zuschicken mit der Bitte sich zu registrieren. Das ist kinderleicht und er schafft es, obwohl er Null Ahnung von der ganzen Materie hat. Sie bekommst du in deinem Freundeskreis und in deiner Verwandtschaft viele Teilnehmer, die sogar die für Gruppengespräche die Konferenznummer 600 nutzen können. Alles kostenlos und weltweit. Und du hast deinen eigenen Telefonprovider voll im Griff ohne Spam, ohne Werbung und ohne Datenklau auf deinem Smartphone.  Die Sprachqualität ist dank des Audio-Codecs G.722 – überträgt Frequenzen bis zu 8000 Hz – und ist für die meiten Ohren kaum vom UKW-Rundfunk zu unterscheiden.

Du kannst auch in einer FritzBox die Accounts eintragen. Hier ein Beispiel: Wähle „anderer Anbieter“ aus, trage die Zugangsdaten ein und vergesse nicht auf Telefoniegeräte zu gehen, um dort diese Telefonnummer mit einem Telefon zu verknüpfen.

Bildschirmfoto zu 2025 10 03 09 20 24
Eintragen eines SIP-Accounts in die FritzBox

Wenn deine Verwandten eine FritzBox haben, kannst du bei Ihnen Nummern deines eigenen Asterisk-Servers eintragen und immer mit ihnen weltweit kostenlos telefonieren. Wenn sie angerufen werden, merken sie überhaupt über welche „Leitung“ das Gespräch aufgebaut wurde.

Wenn du keine FritzBox hast, dann besorg der eine ältere und schalte sie per Netzwerkkabel hinter deinem Router und wähle „Nutzt Verbindunge eines vorhanden Internetzugangs“ oder so ähnlich. Stecke das Netzwerkkabel in den Port 1 der  FritzBox. Ältere FritzBoxen ermöglichen es sogar Wählscheibentelefone anzuschließen. FritzBoxen, die vor etwas 10 Jahren auf dem Markt kamen, können direkt Verbindungen mit DECT-Telefonen aufnehmen.

Komme nicht auf die Idee dieselbe Nummer zum Beispiel gleichzeitig auf mehreren Endgeräten (z.B. auf einem Softphone und der FritzBox zu registrieren. Es treten dann unerwartete Registrierungsfehler auf und du weißt nie welches Endgerät klingeln wird.

Sicherheitsmaßnahmen: Dein Asterisk-Server läuft jetzt einwandfrei. Aber er kann früher oder später von SipScannern angegriffen werden, die deine Telefonnummern für kostenlose Telefonate nutzen wollen. Da dein Asterisk-Server ein geschlossenes System ist, können sie keinen finanziellen Schaden anrichten. Auf jeden Fall solltest du die vorkonfigurierten Passwörter durch starke Passwörter ersetzen. Meistens werden SipScanner von unreifen Kids betrieben, die nicht wissen, was sie anrichten. Oft sind ihre SipScanner fehlerhaft konfiguriert und greifen deinen Asterisk-Server mit Tausenden Anfragen gleichzeitig an, welche die CPU belasten, ohne das Passwörter geknackt werden können. Es gibt zwei effektive Maßnahmen (Fail2Ban und APIBAN), die bei mir seit vielen Jahren zuverlässig funktionieren. Mein Asterisk-Server läuft ohne Wartung jahrelang auf einem Raspberry Pi ununterbrochen durch. Du musst dir also keine Sorgen machen.

3. Fail2Ban installieren: Das machst du mit der install_fail2ban.sh. Wer sich 3 oder 5 Mal mit einem falschen Passwort registrieren will, wird für eine Stunde gesperrt.

So testest du, ob Fail2Ban läuft:

volker@volker-ESPRIMO-Q520:~$ sudo fail2ban-client status 
sudo fail2ban-client status asterisk
[sudo] Passwort für volker: 
Status
|- Number of jail:	2
`- Jail list:	asterisk, sshd
Status for the jail: asterisk
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	0
|  `- Journal matches:	
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	
volker@volker-ESPRIMO-Q520:~$ 

4. APIAN installieren: Das machst du mit apiban_installer.sh. APIBAN liefert einen extrem zuverlässigen Schutz gegen SIP-Scannern, weil es Blacklisten anbietet und automatisch aktualisiert.  Diese Blacklisten werden durch weltweite Honey-Pods erzeugt. Dies Blacklists schützen dich im Vorfeld bevor es überhaupt zu einem Angriff kommen kann.  Die Installation fragt dich nach deinem APIBAN-Schlüssel, den du dir vorher auf

https://www.apiban.org/getkey.html

besorgst. Du musst deine E-Mail Adresse angeben. Es geht immer nur ein APIBAN-Schlüssel pro E-Mail. Der Schlüssel ist kostenlos und du kannst ihn für mehrere Telefonserver einsetzen.

Läuf bei dir APIBAN? So testest du das:

volker@volker-ESPRIMO-Q520:~$ sudo su
root@volker-ESPRIMO-Q520:/home/volker# iptables -L APIBAN -n --line-numbers | grep -v "Chain\|num" | wc -l
1624

Nach einem Tag bereits 1624 IP-Adressen böswilliger Spitzbuben von APIBAN gesperrt! Mehr dazu unter

https://elektronikbasteln.pl7.de/apiban-schuetzt-sip-telefon-server-automatisch-vor-boesartigen-angriffen-aus-dem-internet

Die apiban_installer.sh sorgt dafür, dass APIBAN bei einem Neustart des Rechners neu startet, dass die Blacklisten alle 10 Minuten erneuert werden und dass bei über 2500 Einträgen die ältesten Einträge entfernt werden.

Weiterführende Links und Hilfestellungen:

https://elektronikbasteln.pl7.de/asterisk-auf-einem-raspberry-pi

Hier findest du weitere Anregungen, um die fast unendlichen Möglichkeiten von  Asterisk nach deinen Wünschen gestalten zu können. In 99% der Fälle wird jedoch meine Installation ausreichend sein.