
Asterisk auf Fritz!Box installieren, SIP-Telefone mit Fritz!Box betreiben
getestet mit der Fritz!Box WLAN 7050 ü 7170 mit Firmware 14.04.15, 29.04.29, 29.04.57
|
Was ist die Fritz!Box?
Die Fritz!Box ist eine kleine eigenständige Telefonanlage mit eingebautem Internetrouter und VOIP-Gateway mit internem S0-Bus.
Sie ermöglicht das Telefonieren über Internet mit handelsüblichen analog- und ISDN-Telefonen.
Ein direkter Anschluß für Internettelefone(SIP, IAX) oder Softphones fehlt aber leider.
Was ist Asterisk?
Asterisk ist eine Software-Telefonanlage für Linux und Windows, welche Telefongespräche über Internet und ISDN weiterleiten kann.
Vorteil der Anlage ist, daß sie sehr flexiebel und noch dazu kostenlos ist. Sie funktioniert mit jeder handelsüblichen ISDN-Karte und ist auch auf der Fritz!Box einsetzbar.
ACHTUNG:
Diese Anleitung beschreibt, wie man Asterisk auf einer Fritz!Box installiert und so ungeante Möglichkeiten in einem einzigen Gerät vereinen kann.
Die hier vorgestelle Modifikation wird von AVM nicht unterstützt und es entfallen jegliche Garantieansprüche (wobei sie duch einen Reset wirder rückgängig gemacht werden können). Ich übernehme keine Haftung für Schäden jeglicher Art, die durch diese Modifikation entstehen.
1.Telnet auf der Fritzbox einschalten

Um die Fritz!Box konfigurieren zu können muß man den Telnet-Server der Box aktivieren. Dies geht mit jedem ISDN-Telefon am internen S0-Bus der Box mit:
#96*7* (zum ausschalten #96*8*)
Zum einloggen kann man den im Betriebsystem eingebauten telnet-client nehmen.
Unter Windows z.B.: Start, Ausführen, cmd, OK; dann
telnet 192.168.178.1
Ein guter Telnet-Client der auch verwednet werden kann ist z.B. putty.
Zum einloggen wird ggf. das im Webinterface eingestellte Passwort benötigt.
2.Asterisk installieren
Nun muß in der Telnet-Console folgendes eingegeben werden:
cd /var
wget http://spblinux.de/fbox/cfg_asterisk
chmod 755 cfg_asterisk
./cfg_asterisk install (Tipp: einfacher wirs mit USB-Stick, ./cfg_asterisk usb_install, siehe 4.2.)
ACHTUNG!
ab Firmeware 29.04.49 muss "cfg_asterisk" hier und im Folgenden durch "cfg_asterisk14" ersetzt werden!
ab Firmeware 29.04.57 muss "cfg_asterisk" hier und im Folgenden durch "cfg_asterisk16" ersetzt werden!
3.Asterisk konfigurieren
Die Konfigurationsdateien von Asterisk liegen unter /var/tmp/asterisk und können mit nvi bearbeitet werden, der in die Box bereits integriert ist.
Die Bedienung von nvi wird hier sehr gut erklärt: (N)VI Tutorial
z.B. nvi /var/tmp/asterisk/extensions.conf
Die Dateien können mit ./cfg_asterisk config2flash im Flash gespeichert werden.
Zurückholen kann man diese mit ./cfg_asterisk flash2config .
Dies wird später wichtig, da nach einem Neustart oder Stromverlust Asterisk sonst mit sammt der Konfiguration gelöscht ist.
ACHTUNG! Bei der USB-Installaiton ist dieser Schritt nicht nötig!
ACHTUNG! Der SIP-Port von Asterisk muß 5061 sein, da 5060 bereits von der Fritz!Box selbst belegt ist. Oder man verwendet für Asterisk eine eigene IP-Adresse, was auch die Portweiterleitung erleichtert(siehe Punkt 9).
4. Asterisk in der Box speichern
4.1.Asterisk permanent in der Box speichern, Flash-Variante
Dies scheint aufgrund des geringen Flash-Speichers nicht möglich zu sein.
Man kann Asterisk aber über ein Script, daß beim Neustart der Box gestartet wird, die debug.cfg Datei, Asterisk erneut herunterladen, installieren und die Konfiguration aus dem Flash-Speicher holen.
nvi /var/flash/debug.cfg
Die Datei ist zu Anfangs leer. Folgendes muss dort eingetragen werden:
cd /var
while ! wget http://spblinux.de/fbox/cfg_asterisk; do
sleep 10
done
chmod +x cfg_asterisk
./cfg_asterisk install
while ! [ -x asterisk/bin/asterisk ]; do
./cfg_asterisk remove
sleep 10
./cfg_asterisk install
done
./cfg_asterisk flash2config quiet
./cfg_asterisk start
Dieses Script versucht die Installationsdateien zu laden. Bei Fehlschlag wird der Versuch alle 10 Sekunden wiederholt.
Nach dem LAden wird Asterisk automatisch installiert und die Konfig aus dem Flash geholt.
Um die Konfiguration vor einem Neustart im Flash zu speichern muss folgendes eingegeben werden:
./cfg_asterisk config2flash
Tipp: mit USB gehts einfacher, siehe 4.2.
4.2.Asterisk permanent in der Box speichern, USB-Stick--Variante
Da Asterisk im Flashspeicher viel Platz braucht, wird es unter Umständen mit der Zeit eng. Wer glücklicher Besitzer einer 7170 ist,
kann Asterisk auch auf einem USB-Stick installieren(mit "cgf_asterisk usb_install", siehe 2.).
Einen schönerern Texteditor als nvi liefert der Midnight Commander mit, der sich ebenfalls auf die Fritzbox installieren läßt.
Um diese Version dann auch automatisch zu starten, muß in der Datei /var/flash/debug.cfg folgendes eingetragen werden:
sleep 30
cd /var/media/ftp/USB-Partition-0-1/addons
./cfg_asterisk usb_install
./cfg_asterisk start
Dieses Script installiert und startet Asterisk von USB. Der Name "USB-Partition-0-1" kann unter Umständen je
nach USB-Stick-Fabrikat abweichen.
Die Konfig wird direkt vom USB-Stick benutzt und kann über den Fritzbox-eigenen FTP-Server geändert werden.
5.Asterisk starten und beenden
Gestartet wird Asterisk mit ./cfg_asterisk start .
Wird an den Konigurationsdateien etwas geändert muß Asterisk neu gestartet werden.
Beendet wird Asterisk mit ./cfg_asterisk stop .
Empfohlen wird dann auch sichern der Konfiguration im Flash-Speicher mit ./cfg_asterisk config2flash .
Die Asterisk-Console z.B. für Debugging erreicht man mit:
/var/chroot /var/asterisk bin/asterisk -rvvvvv
bzw.
/var/chroot /var/asterisk14 bin/asterisk -rvvvvv
6.Asterisk mit Fritz!Box verbinden
Asterisk läuft auf der Box vollkommen selbstständig. Interngespräche sind ebenfalls möglich, da Asterisk auch den internen S0-Bus abhört.
Um allerdings interne Gespräche über die analogen Anschlüsse führen zu können muß eine SIP-Verbindung zw. der Fritz!Box und Asterisk erstellt werden und diese "ausgehend" dem Analog-Port zugeordnet werden.
z.B.:

Im Asterisk in der sip.conf steht dann z.B. folgendes (jeweils für jedes Telefon):
[41]
context=from_fritzbox
callerid="Fritzbox" <41>
host=dynamic
domain=192.168.178.1
type=friend
user=41
secret=password
disallow=all
allow=gsm
allow=ulaw
allow=alaw
Bei diesem Beispiel wird 41 als interne Nummer für den Analog-Port 1 verwendet. Diese müssen dann in der extensions.conf ausgewertet werden.
TIPP: ISDN-Telefone kann man ebenfalls eintragen. Dies kann Asterisk zwar sowieso, da es den S0-Bus abhört, durch diese Einträge wird es allerdings möglich ausgehend auch die internen MSNs der internen Telefone zu beeinflussen und bei Rufen nach extern ggf. zu ändern.
(was bei mir ohne Asterisk nicht funktioniert, ohne die externe MSN auch im Telefon selbst einzutragen)
7.Dateien auf den PC sichern
Dateien können von der Fritzbox auf dem PC mit TFTP gesichert werden.
Dazu benötigt man am PC einen TFTP-Server. Auf der Fritzbox ist der TFTP-Befehl bereits eingebaut.
Wird ein USB-Stick verwendet, kann sogar der in die Fritzbox integrierte FTP-Server und ein FTP-Client am PC benutzt werden.
8.Verwendung von Asterisk
Für Asterisk gibt es bereits ausreichend viele Dokumentationen im Internet, deshalb verzichte ich auf eine Ausfühliche Beschreibung.
Zu den ungeanten Möglichkeiten die Asterisk nun auf der Fritz!Box bietet nur einige Beipiele:
SIP-Telefone direkt an der Fritz!Box
IAX-Tunnel zu anderen Fritz!Boxen z.B. für kostenlose firmeninterne Gespräche zu anderen Standorten.
Anrufbeantworter, Faxempfang, Auswahlmenüs, Zeitansage
Low-Cost-Routing, Berechtigungsverteilung
etc...
9.Asterisk auch extern nutzen

Die Portweiterleitung im Webinterface läßt leider keine Weiterleitung auf die eigene IP zu.
Um dem abzuhelfen kann man der Box eine weitere IP geben, und diese in der debug.cfg vor Asterisk eintragen:
ifconfig lan:1 192.168.178.2 netmask 255.255.255.0
Diese Adresse muss Asterisk dann natürlich in der sip.conf bzw. iax.conf hinter "bindaddr=" stehen. Weiterhin kann leider nicht der SIP-Standardport UDP 5060 verwendet werden, da diesen die Box selbst auf allen IPs benutzt. Stattdessen am besten einfach 5061 verwenden. Der IAX-Port 4569 läßt sich aber verwenden.
Ausserdem muss das RTP-Protokoll (ebenfalls UDP) mit einem Portrange freigegeben werden, mehr dazu auch in der rtp.conf von Asterisk, damit auch der Ton einwandfrei durchkommt:

[general]
rtpstart=10000
rtpend=20000
In der sip.conf muss unter [general] noch nat=yes und zusätzlich die externe ip bzw. dyndns-Adresse mit externip=ip-adresse bzw. externhost=dyndns-adresse eingetragen werden, damit VOIP auch hinter NAT(handelsüblicher Home-Router bzw. die Fritz!box selbst als Router) funktioniert.
10.Quellen
Vielen Dank für die tollen Beschreibungen unter:
www.wehavemorefun.de
www.ip-phone-forum.de
wiki.ip-phone-forum.de
Asterisk für Linux, www.asterisk.org
Asterisk für Windows, www.asteriskwin32.com/
(N)VI Tutorial
Und nun viel Erfolg!
| |
|