Asterisk für totale Anfänger - von der Haustelefonanlage zum eigenen SIP-Provider 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. 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: 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: 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: 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 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: 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. 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.
|