Eigener SIP-Server für VoIP mit Asterisk für Windows Drucken E-Mail
Freitag, den 26. Juni 2009 um 11:21 Uhr

Asterisk für totale Anfänger - von der Haustelefonanlage zum eigenen SIP-Server für VoIP

Mit der kostenlosen Software Asterisk (für Windows oder Linux) lassen sich mit wenig Konfigurationsaufwand Haustelefonanlagen im eigenen Netzwerk realisieren, die sich auch über das Internet erweitern lassen, womit man dann seinen eigenen kleinen SIP-Provider geschaffen hat, mit dem sich im Prinzip weltweit kostenlos telefonieren lässt. Asterisk ist eigentlich ein Programm für Linux. Wer kein Linux hat, kann auch eine kostenlose Version für Windows wählen, auf die die nachfolgende, kochbuchartige Anleitung basiert.

Wie soll ich mit Asterisk beginnen?
Auf jeden Fall so, dass man mit geringstem Aufwand Erfolgserlebnisse verbuchen kann. Das motiviert tiefer in die Konfiguration von Asterisk einzusteigen. Zuerst installieren wir Asterisk auf Windows und dann konfigurieren wir eine kleine Haustelefonanlage mit zwei Telefonanlagen. Danach versuchen wir mit dieser Haustelefonanlage über das Internet zu telefonieren. Schließlich erweitern wir die Telefonanlage mit Anrufbeantwortern. Wer Linux bzw. Ubuntu verwendet, kann diese Experimente natürlich vorzugsweise mit der Linux-Version von Asterisk vornehmen.

Was brauche ich für meine Experimente?
Wir benötigen einen telefoniefähigen Router oder z.B. eine als Client geschaltete Fritz!Box Fon und einen Rechner mit Windows 2000 oder XP für die Windows-Version von Asterisk. Selbstverständlich benötigen wir für eine Haustelefonanlage noch mindestens zwei Telefone.

Es reichen ganz normale analoge Telefone aus, die wir mit dem Router oder der Fritz!Box Fon verbinden. Als Telefone gebe ich schnurlosen den Vorzug, weil mit diesen die Experimente bequemer durchzuführen sind. Wollen wir mit unserer Haustelefonanlage noch über das Internet telefonieren, benötigen wir zusätzlich einen Internet-Anschluss.

Wo bekomme ich Asterisk (AsteriskWin32) für Windows?
Das kostenlose Windows-Programm AsteriskWin32 von WillVoiceliegt unter http://www.asteriskwin32.com/ zum Download bereit. Dort gehen wir auf Download und laden uns die 17 MByte große Version Setup.60.exe herunter, welche auf Asterisk 1.2.14 beruht.
 

Asterisk
AsteriskWin32 PBX Setup Wizard bereit für die selbsterklärende Installation.


Installation von AsteriskWin32
Das Programm wird mit einer Installationsroutine geliefert. Zu beachten ist nur, dass wir nicht wie vom Programm vorgeschlagen es unter c:\cygroot installieren, sondern vorher einen Ordner Asterisk anlegen und dort das Programm unter Laufwerksbuchstabe:\Asterisk\cygroot installieren. Außerdem wählen wir wie in der Voreinstellung angegeben die volle Installation:
 

Installation
Wie in der Voreinstellung angegeben alles installieren.


Konfigurationsdateien von AsteriskWin32 anpassen
AsteriskWin32 kommt mit einer Vielzahl von vorkonfigurierten Konfigurationsdateien daher, die unsere Experimente und andere Dienste von Windows (z.B. Soundkarte) stören würden. Deshalb deaktivieren einige der Dateien, indem wir sie umtaufen, z.B. erhalten sie statt der Endung .conf die Endung .conf1 und werden dadurch nicht mehr angesprochen. Die Konfigurationsdateien befinden sich im Ordner Laufwerksbuchstabe:\Asterisk\cygroot\asterisk\etc. Folgende Dateien habe ich umgetauft:
 

telcordia-1.adsi
alsa.conf
celliax.conf
dundi.conf
enum.conf
features.conf
iax.conf
iaxprov.conf
indications.conf
manager.conf
meetme.conf
modem.conf
osp.conf
phone.conf
privacy.conf
res_odbc.conf
sip_notify.conf
skinny.conf
vpb.conf
zapata.conf
voicemail.conf
indications.conf
extensions.conf
sip.conf


In die iax.conf und celliax.conf schreiben wir nur [general] hinein. Weiter steht dort nichts. Sicherlich muss man nicht alle aufgeführten Conf-Dateien umbenennen. Aber so funktioniert es bei mir. Auf jeden Fall sollte man die celliax.conf verändern, da sie die Soundkarte anspricht, was zu Fehlermeldungen und unter Umständen zum Absturz des Rechners führt.

Welche Ports in der Firewall öffnen?
Falls eine Firewall auf dem Rechner in Betrieb ist, muss diese für die UDP-Ports 5060 und 10000 - 20000 geöffnet sein.. Wenn wir später über das Internet telefonieren wollen, müssen diese Ports auch im Router der Firewall geöffnet sein. Da wir ja eine kleine Telefonanlage haben, würde es für den Stream auch reichen, neben dem Port 5060 die Ports 10000 bis z.B. 10500 zu öffnen.

Erstellen neuer Konfigurationsdateien für eine Haustelefonanlage mit zwei Telefonen
Für unsere ersten Experimente müssen wir nur die Konfigurationsdateien indications.conf, extensions.conf, voicemail.conf und sip.conf verändern. Das machen wir mit dem Windows-Programm Notepad. Andere Textverarbeitungsprogramme wie Word sind wegen ihrer Steuerzeichen ungeeignet.

indications.conf
Die indications.conf erzeugt die landesspezifischen Klingeltöne. Für Deutschland muss sie wie folgt aussehen:

[general]
country=de

[de]
description = Germany
ringcadance = 1000,4000
dial = 425
ring = 425/1000,0/4000
busy = 425/480,0/480
congestion = 425/480,0/480
callwaiting = 425/2000,0/6000
dialrecall = 425/500,0/500,425/500,0/500,425/500,0/500,1600/100,0/900
record = 1400/500,0/15000
info = 950/330,0/200,1400/330,0/200,1800/330,0/1000

Die ursprüngliche indications.conf is auf us, also auf die us-amerikanischen Klingeltöne eingestellt. Wir können sie auch in der mitgelieferten Form belassen.

sip.conf
Die sip.conf ist zusammen mit der extensions.conf die wichtigste Konfigurationsdatei für unsere Haustelefonanlage. Wir müssen für die Haustelefonanlage nur die sip.conf und extensions.conf neu schreiben. Die nachfolgend vorgestellte sip.conf können wir fast unverändert übernehmen. Nur unter localnet muss die IP abgeändert werden, wie es im Kommentar beschrieben ist. Wenn wir nur zwei Haustelefone verbinden möchten, reicht folgender Inhalt aus, den wir herauskopieren können.

[general]
port=5060 ; Dieser Port wird für die Kommunikation der Telefone benötigt.
bindport=5060
context=telefone ; [telefone] muss in der extensions.conf vorkommen.
bindaddr=0.0.0.0 ; Mit 0.0.0.0 werden alle Geräte im Netzwerk angsprochen.
disallow=all ; damit werden erst einmal alle Codec
; (Übertragungsarten) ausgeschlossen.

allow=gsm ; und der Reihe nach absteigend zugelassen, wenn sie mit "allow"
allow=ulaw ; gekennzeichnet sin.
allow=alaw
localnet=192.168.1.65/255.255.255.0 ; Das ist die
; IP-Adresse des Rechners, auf dem

; der Asterisk-Server installiert wurde.
; Das ist die einzige Anpassung der Konfiguration.
nat=yes ; kann auch auf no stehen, wird mit yes nur für
; Verbindungen hinter dem Router über das Internet beötigt.
insecure=invite
qualify=yes ; Mit "yes" können wir kontrollieren,
; ob die Telefone im LAN oder über das Internet

; erreicht werden. Mit "no" abschalten.

; Haustelefon 1
[1001] ; die Telefonnummer des ersten Haustelefons
type=friend ; mit friend darf vom Telefon sowohl gerufen als auch angerufen werden.
context=a ; kommt in der extensions.conf vor
secret=abc ; Das Passwort (Kennwort), hier abc, kann auch weggelassen werden
host=dynamic ; Asterisk findet die IP-Adresse des Telefons bzw. der Fritz!Box oder
; des Routers automatisch.
username=1001 ; muss mit der Telefonnummern in den eckigen
; Klammern übereinstimmen.

canreinvite=no
port=5060
dtmfmode=rfc2833 ; bestimmt, wie die Wählzeichen erzeugt werden.

; Haustelefon 2
[1002] ; das zweite Haustelefon mit der Nummer 1002.
type=friend
context=a
secret=abc
host=dynamic
username=1002
canreinvite=no
port=5060
dtmfmode=rfc2833

Mehr ist das nicht. Die Kommentare sind mit einem Semikolon (;) eingeleitet. Die beiden Telefone haben die Nummern 1001 und 1002. Die IP des Rechners mit dem Asterisk lautet in diesem Beispiel 192.186.1.65, was wir unter dem Eintrag localnet eventuell noch anpassen müssen.

extensions.conf
In die extensions.conf müssen wir die Wählregeln der beiden Telefone eintragen:

[general]

[telefone]

[a]
exten => 1001,1,Dial(SIP/1001,60,r)
exten => 1002,1,Dial(SIP/1002,60,r)

Das ist alles! Nach 60 Sekunden wird das Klingeln abgebrochen. Würden wir "exten => 1001,1,Dial(SIP/1002,60,r)" schreiben, hätte dies zur Folge, das Telefon 1002 klingelt, wenn wir 1001 wählen. Aber solche Scherze wollen wir ja vermeiden.

Einrichten der beiden Haustelefone
Wie man die beiden Haustelefone einrichtet, möchte ich am Beispiel der Fritz!Box Fon zeigen. Bei anderen Fabrikaten wird es so ähnlich sein. Die Fritz!Box Fon kann sowohl als Router oder als Client geschaltet werden. Als Client ist sie wie ein Computer ein zusätzliches Gerät in einem Netzwerk (LAN). Sowohl als Router oder Client besitzt die Fritz!Box eine IP-Adresse, über welche die angeschlossenen analogen Telefone gefunden werden können.

Die Fritz!Box Fon hat auf ihrer Rückseite zwei mit Fon1 und Fon1 gekennzeichnete Anschlüsse, mit denen wir die "hundsgewöhnlichen" analogen Telefone verbinden. Das Verbindungskabel hat an beiden Enden RJ11-Stecker (http://de.wikipedia.org/wiki/RJ-Steckverbindung). Es reicht, wenn die beiden mittleren Adern vorhanden sind. Die Adern können auch vertauscht sein. Das macht nichts.

Die Fritz!Box wird wie folgt konfiguriert. Wir geben als Adresse im Web-Browser die IP der Fritz!Box ein. Dann gehen wir auf Einstellungen -Telefonie - Internetelefonie. Dort angekommen klicken wir auf "Neue Internetrufnummer". Es öffnet sich eine Oberfläche, die wie folgt aussieht, nachdem wir die Daten für das Telefon 1 angemeldet haben:
 

Fritzbox

 

Einträge für das Telefon 1 mit der Nummer 1001. Das Kennwort lautet "abc". Unter Registrar tragen wir die IP-Nummer des Rechners ein, auf dem Asterisk installiert wurde. Anschließend auf "Übernehmen" klicken und das Telefon 2 eintragen.


Entsprechend müssen wir die Daten für das Telefon 2 unter "Neue Internetrufnummer" eintragen. Die zwei Haustelefone erscheinen dann wie folgt in der Fritz!Box auf der Liste der registrierten Telefone:
 

Auswahl
Telefon 1 mit der Nummer 1001 hat in diesem Fall die Auswahl *126# und 1002 hat die Auswahl *127# bekommen. Das müssen wir uns merken. Wollen wir nämlich vom Telefon 1001 das Telefon 1002 anrufen, müssen wir *126#1002 wählen. Vom Telefon 2002 müssen wir entsprechend *127#1001 wählen.


Nun gehen wir zur Sicherheit in der Fritz!Box Fon auf Einstellungen -Telefonie - Telefoniegeräte und stellen die beiden Telefone so ein, dass sie nicht auf ihre eigenen Telefonnummern reagieren können. Eventuell kann dies notwendig sein.

Starten von Asterisk
Auf unserem Desktop finden wir das Symbol "PBX Manager & Console", welches wir anklicken, um das Fenster von Asterisk zu öffnen, das nachfolgend abgebildet ist:
 

Asterisk bereit
Asterisk im Betrieb mit zwei erfolgreich angemeldeten Telefonen, die wir sehen, wenn wir Menüleiste - Commands - Peer - Sip betätigen. Der angezeigte Host ist die IP der Fritz!Box Fon, in der das entsprechende Telefon angemeldet ist.


Damit Asterisk läuft, müssen wir noch Menüleiste -Tools - PBX Start ausführen. Eventuell muss dieser Vorgang wiederholt werden. Nach einer Weile oder dem Neustart des Rechners sehen wir die beiden Telefone 1001 und 1002 im Asterisk-Fenster. Da wir einige Konfigurationsdateien entfernt hatten, erscheinen beim Start einige Warnhinweise, die uns nicht weiter interessieren.

In der unteren schwarzen Leiste CLI> können wir den Befehl sip show peer 1001 ausführen:
 

Show Peers
Das angemeldete Telefon 1001 erscheint in Asterisk.


Wir sehen dann, an welchem Gerät das Telefon erfolgreich angmeldet ist. Wenn wir jetzt auf die Startseite der Fritz!Box gehen, sehen wir auf ihrer Startseite (hoffentlich) durch grüne Punkte gekennzeichnete die erfoglreiche Anmeldung der beiden Telefone 1001 und 1002.
 

Fritzbox
Die grünen Punkte auf der Hauptseite der Fritz!Box kennzeichnen die erfolgreiche Anmeldung unserer beiden Haustelefone.


Nun können wir innerhalb unseres lokalen Netzwerkes telefonieren! Vom Telefon 1 wählen wir *126#1002 und vom Telefon 2 wählen wir *127#1001.

Über das Internet telefonieren
Mit wenigen Erweiterungen in der sip.conf und extensions.conf können wir auch über das Internet telefonieren. Der Abschnitt [general] der sip.conf muss dann wie folgt erweitert werden:

[general]
port=5060
bindport=5060
context=telefone
bindaddr=0.0.0.0
disallow=all
allow=gsm
allow=ulaw
allow=alaw
srvlookup=yes ; muss auf yes stehen
externhost=blabla.dyndns.org ; Hier tragen wir eine feste IP-Adresse ein, die wir uns bei DynDNS
; besorgt haben.
; externip=83.266.11.73 ; Alternative: IP-Adresse unseres Internetanschlusses, falls sich
; diese nicht ändert.
localnet=192.168.1.65/255.255.255.0
nat=yes ; damit die IP-Adresse des LAN für das Internet umgesetzt wird.
insecure=invite
qualify=3000
maxexpirey=36000
defaultexpirey=600
tos=0x04
registerattempts=0 ; versucht sich ewig zu connecten.
registertimeout=1 ; kontrolliert jede Sekunde die Internet-Verbindung

Die "feste IP-Adresse" wie blabla.dyndns.com, welche wir unter externhost eintragen, können wir uns z.B bei http://www.dyndns.com/ kostenlos beschaffen. Entsprechend müssen wir in unserem Router diese IP-Adresse noch eintragen, damit die dynamische IP regelmäßig aktualisiert wird. Unsere aktuelle IP-Adresse, welche wir alternativ unter externip eintragen könnten, können wir z.B. unter http://www.aktuelle-ip.de/ erfahren.

Außerdem müssen wir in der sip.conf ein drittes Telefon einrichten, das über das Internet erreichbar ist:

[1003]
type=friend
context=a
secret=wasweisich ; das ist ein fiktives Kennwort
host=dynamic
username=1003
canreinvite=no
port=5060
dtmfmode=rfc2833

Dies geschieht also nach demselben Muster, das wir bereits von den beiden Haustelefonen kennen. Dieses Telefon mit der Nummer 1003 muss natürlich noch seinen entsprechenden Eintrag in der extensions.conf erhalten, so dass die vollständige extensions.conf wie folgt aussieht:

[general]

[telefone]

[a]
exten => 1001,1,Dial(SIP/1001,60,r)
exten => 1002,1,Dial(SIP/1002,60,r)
exten => 1003,1,Dial(SIP/1003,60,r)

Mehr müssen wir nicht an der sip.conf und extensions.conf verändern. Eine gute Beschreibung der Asterisk-Befehle ist unter http://www.voip-info.org/wiki/view/Asterisk+config+sip.conf zu finden.

Zu guter letzt muss sich der Anschluss 1003 noch am anderen Ende des Internets anmelden. Dies erfolgt z.B. in der Fritz!Box des auswärtigen Telefons nach demselben Prinzip, wie bereits weiter oben beschrieben. Aber unter Registrar muss dort jetzt blabla.dyndns.org:5060 bzw. 83.266.11.73:5060 stehen.

Nachdem wir die beiden Konfigurationsdateien sip.conf und extensions.conf verändert haben, müssen diese noch von Asterisk übernommen werden. Das können wir mit Menüleiste - Tools - PBX Reload erledigen. Jetzt brauchen wir noch etwas Geduld und Glück, bis unser Asterisk die Rückmeldung vom auswärtigen Telefon erhält und wir können über das Internet kostenlose Telefongespräche mit unserem minimalistischen SIP-Provider führen.

NAT-Probleme beim Router: Leider gibt es mit manchen Routern Schwierigkeiten, mit der Außenwelt zu Verbindung aufzunehmen. Oft wird das Telefongespräch nach ein paar Minuten abgebrochen oder es wird nur der Ton in eine Richtung übertragen Dem Thema hat sich http://www.voip-info.org/wiki/v .... tions ausführlich gewidmet.

Fazit: Zum Üben ist AsteriskWin32 auf jeden Fall eine interessante Methode, um sich mit Asterisk und SIP vertraut zu machen. Wer kostenlos über das Internet telefonieren möchte, braucht aber keinen eigenen SIP-Server. Es gibt genügend VoIP-Anbieter, welche kostenlose Telefonnummern anbieten, mit denen man innerhalb des glechen Anbieters kostenlos telefonieren kann. Unter IP-Telefonie gibt es eine unvollständige Liste der VoIP-Anbieter. Bemerkenswert dabei ist, dass Telefonnummern solcher VoIP-Provider auch für eine Haustelefon-Anlage eingesetzt werden können, wenn der Router Tag und Nacht läuft und mit dem Internet verunden ist.

 

Zuletzt aktualisiert am Montag, den 16. März 2015 um 11:36 Uhr
 
3. Februar 2017

Meinen herzlichen Dank an alle Spender, die zum Weiterleben dieser Seite beitragen. Dieser Internetauftritt ist auf Spenden angewiesen, denn die Werbeeinnahmen reichen bei weitem nicht aus, um die laufenden Kosten zu decken. Diese Seite macht keinen Gewinn. Sie kostet nur Geld.

Die Artikel schreibe ich in meiner Freizeit. Dafür achte ich beim Verfassen der Artikel darauf, dass die Leser nicht zu unnötigen Anschaffungen verführt werden. Ich setze keine Artikel hinein, die von Firmen gesponsert werden.

Ich schreibe unabhängig für Dich als Leser. Ich hoffe mit meinen Seiten Anregungen zum Basteln und Reparieren geben zu können, die im besten Fall auch Geld sparen. Zum Beispiel lassen sich viele alte Geräte relativ leicht reparieren. Das macht nicht nur Spaß. Das kann viel Geld sparen. Trage dazu bei, dass diese Seite weiterlebt und spende einen kleinen Betrag! Danke!

Volker

___________________

___________________

Bitte unterstützen Sie die Weiterentwicklung und Pflege dieser Elektronik-Bastelseite mit einer kleinen Spende. Vielen Dank!

Volker

___________________

___________________

Bitte unterstützen Sie die Weiterentwicklung und Pflege dieser Elektronik-Bastelseite mit einer kleinen Spende. Vielen Dank!

Volker

___________________

© 2009-2017 Volker Lange-Janson