Eine Minimal-Telefonanlage mit zwei SIP-Telefonen

Wie sieht die einfachste mögliche Telefonanlage aus? Zwei Telefone und ein Asterisk.

Wir haben schon alle Einzelteile in diesem Puzzle behandelt und müssen sie jetzt nur noch richtig zusammenfügen. Für das zweite Telefon erweitern wir die pjsip.conf — Endpoint, Auth und AOR muss jedes Telefon einzeln haben:

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

; --- Telefon 2000 ---
[2000]
type=endpoint
context=default
disallow=all
allow=ulaw
allow=alaw
auth=2000
aors=2000

[2000]
type=auth
auth_type=userpass
username=2000
password=supergeheim

[2000]
type=aor
max_contacts=1

; --- Telefon 2001 ---
[2001]
type=endpoint
context=default
disallow=all
allow=ulaw
allow=alaw
auth=2001
aors=2001

[2001]
type=auth
auth_type=userpass
username=2001
password=nochgeheimer

[2001]
type=aor
max_contacts=1

Wer viele Telefone betreut, wird sich bei der Wiederholung der Endpoint/Auth/AOR-Blöcke schnell die Finger wundschreiben. Dafür bietet PJSIP Templates (siehe Konfigurations-Templates). Für den Einstieg ist die explizite Schreibweise aber lesbarer.

Als Nächstes die /etc/asterisk/extensions.conf. Das Hello-World-Beispiel lassen wir zu Testzwecken im Dialplan — so können wir pro Telefon mit Anwahl der 1001 prüfen, ob die Audio-Wiedergabe funktioniert:

[default]
exten => 1001,1,Answer()
 same => n,Playback(hello-world)
 same => n,Hangup()

exten => 2000,1,Dial(PJSIP/2000,20)
exten => 2001,1,Dial(PJSIP/2001,20)

Nach

debian*CLI> pjsip reload
debian*CLI> dialplan reload

und einem Neustart der SIP-Telefone können Sie, sobald sich beide registriert haben, zwischen den Telefonen hin- und hertelefonieren sowie von beiden die 1001 anrufen.

…​ und jetzt mit einem Anrufbeantworter

Asterisk bringt ein fertiges Voicemail-Modul mit. Wir müssen es lediglich in der Datei /etc/asterisk/voicemail.conf aktivieren. Erst das Default-Original sichern (falls die Datei bei Ihnen nicht existiert, ignorieren Sie die Fehlermeldung):

# mv /etc/asterisk/voicemail.conf /var/tmp/asterisk-etc-backup/

Dann eine neue /etc/asterisk/voicemail.conf mit folgendem Inhalt anlegen:

[general]
format = wav49|gsm|wav

[default]
2000 => 4711,Hans Mustermann,hansi@example.com
2001 => 0815,Ute Beispiel,ute.beispiel@example.com

Damit sind die Voicemailboxen grundsätzlich eingerichtet (ja, so einfach). Jetzt noch in der /etc/asterisk/extensions.conf ein paar Zeilen einbauen, damit die Mailbox zum Einsatz kommt, wenn das Telefon nicht abgenommen wird:

[default]
exten => 1001,1,Answer()
 same => n,Playback(hello-world)
 same => n,Hangup()

exten => 2000,1,Dial(PJSIP/2000,20)
 same => n,VoiceMail(2000@default,u)

exten => 2001,1,Dial(PJSIP/2001,20)
 same => n,VoiceMail(2001@default,u)

; Mailbox vom eigenen Telefon aus abhören:
exten => 2999,1,VoiceMailMain(${CALLERID(num)}@default,s)

Nach

debian*CLI> voicemail reload
debian*CLI> dialplan reload

im CLI können Sie von einem Telefon das andere anrufen. Hebt niemand nach 20 Sekunden ab (deshalb die ,20 bei Dial()), landet der Anruf auf der Voicemailbox. Mit der Extension 2999 hören Sie Ihre eigene Mailbox ab.

Ist auf Ihrem System ein Mail Transfer Agent (MTA) installiert und korrekt konfiguriert (z. B. Postfix oder ein Submission-Relay), schickt Asterisk neue Nachrichten als E-Mail an die in voicemail.conf hinterlegte Adresse.

Wenn Sie das Ganze noch mit einer Passwortabfrage absichern wollen oder eine Auflistung des Menüs suchen, finden Sie dazu in Kapitel Voicemail-System die nötigen Informationen.