Aus Basteltrieb habe ich Ende 2008 meine alte Teledat Telefonanlage durch eine Softwarelösung auf Basis von Asterisk ersetzt. Hierbei sollten die vorhandenen Endgeräte zum Teil erhalten bleiben.
Daraus ergab sich folgender Aufbau:
- Elitegroup A740GM-M
- AMD Athlon X2 4400+
- 2 * WD Scorpio Blue 320GB 2,5″ im RAID1
- 2 * 1024 MB Kingston Value RAM DDR2 533
- Cooler Master Vortex 752(CPU Kühler)
- be quiet Pure Power 300W ATX 2.2
- SilverStone Sugo SG02-F schwarz
- 1 * alter Telekom NTBA
Die Hardware wurde hauptsächlich auf einen möglichst niedrigen Stromverbrauch ausgerichtet. Mit Hilfe von Cpupowerd und den Laptop-Mode Tools konnte der Stromverbrauch idle auf ca. 40 Watt gesenkt werden. Die Festplatten sind dann abgeschaltet und die CPU wird auf 1000 Mhz @ 0,7 Volt heruntergetaktet. Mit einer anderen CPU und einem anderen Netzteil wäre eventuell ein noch geringerer Verbrauch möglich.
Folgende Software kam zum Einsatz
- Debian Linux „lenny“
- mISDN / mISDN-User 1.1.9
- Aktuelle Asterisk SVN Version
- Asterisk AddOns
- MySQL 5
- Apache 2
- PHP5
- CPUPowerd
mISDN ist hierbei zweigeteilt, weil die Module für den NT Modus nicht im Kernel- sondern im Userspace ausgeführt werden. Grund hierfür waren wohl Instabilitäten in älteren Versionen. Die aktuelle Version läuft nach meinen Erfahrungen eigentlich sehr stabil. In neueren Kerneln ab Version 2.6.27 ist mISDN V2 bereits enthalten. Diese Version ist jedoch nicht mehr mit chan_misdn kompatibel. Aufgrund der komplizierteren Einrichtung bin ich bei der „alten“ Version geblieben.
mISDN Installation
Die Installation von mISDN ist denkbar einfach. Nach dem Download der aktuellen Versionen von mISDN und mISDN-User von dieser Seite werden die Archive entpackt und jeweils ein
make && make install
durchgeführt. Sollten hierbei Fehler auftreten, liegt dies meistens an einer Inkompatibilität zwischen der verwendeten mISDN Version und dem verwendeten Kernel. Achtet auch darauf, dass zum Kompilieren von mISDN die zum Kernel passenden Header installiert sein müssen. Unter Debian geht das mit
apt-get install linux-headers-KERNELVERSION
Den aktuell verwendeten Kernel findet ihr mit folgendem Befehl heraus:
uname -a
Nach der Installation von mISDN müssen die ISDN Geräte erst konfiguriert werden. Dies ist zum Glück weitestgehend automatisiert:
misdn-init scan
Es werden nun alle erkannten Geräte aufgelistet. Hier sollten die beiden ISDN Karten auftauchen! Ist dies der Fall, kann mit dem folgenden Befehl eine entsprechende Konfigurationsdatei für mISDN erstellt werden:
misdn-init config
Hierdurch wird die Datei /etc/misdn-init.conf erstellt. Diese muss jetzt nur noch so angepasst werden, dass eine der beiden Karten im NT Modus läuft:
card=1,hfcpci,dtmf
card=2,hfcpci,dtmf
te_ptmp=1
nt_ptmp=2
poll=64
dsp_poll=64
dsp_options=0
dtmfthreshold=100
debug=0
Asterisk Installation
Die aktuelle Asterisk Version kann man auf Asterisk.org herunterladen. Nachdem die Quellen entpackt sind, kann die Kompilierung mit
./configure
vorbereitet werden.
Danach können die zu kompilierenden Features noch mit
make menuselect
konfiguriert werden. Hier ist darauf zu achten, dass der mISDN Channel Driver aktiviert ist.
Nun noch mit
make
und
make install
Asterisk kompilieren und auf dem System installieren. Wenn man bei der Konfiguration von Asterisk nich ganz von vorne anfangen will, kann man mit
make samples
nun noch die Standardkonfiguration unter /etc/asterisk erstellen lassen.
Konfiguration von chan_misdn
Auf die Konfiguration von Asterisk und speziell auf die Konfiguration der Datei extensions.conf, in der der gesamte Wählpan definiert wird, möchte ich an dieser Stelle nicht näher eingehen. Dazu gibt es genug Anleitungen im Web. Interessanter sind die Features der Datei mISDN.conf, auf die ich an dieser Stelle näher eingehen möchte.
Um chan_misdn in der Wählplan verwenden zu können, müssen zuerst Portgruppen definiert werden. Ich habe daher eine Gruppe für den internen und eine für den externen Port definiert:
[intern]
ports=2
context=default
msns=*
overlapdial=2
[extern]
echocancel=64
ports=1
context=misdnextern
callgroup=1
msns=*****,*****,*****
Wichtig ist hierbei die Option overlapdial. Ist diese Option nicht aktiviert, fängt Asterisk sofort an zu wählen, wenn an einem analogen Endgerät die erste Ziffer eingegeben wird. Der Wert 2 bedeutet, dass Asterisk stattdessen 2 Sekunden auf weitere Ziffern wartet.
In der extensions.conf könnte ein Dial-Befehl für den externen Port jetzt so aussehen:
exten => _XXX.,1,Dial(mISDN/g:extern/${EXTEN})
Hierbei würden alle nicht näher defininierten Nummern mit mindestens 3 Ziffern auf den externen Port geroutet.
Anschließen von ISDN Geräten am internen S0 Bus
Um Endgeräte an einer ISDN anschließen zu könne, reicht es nicht aus, diese für den NT Betrieb zu konfigurieren. Zusätzlich muss ein spezielles Crossover ISDN Kabel verwendet werden. Da diese Kabel kaum käuflich zu erwerben sind, bleibt einem nicht anderes übrig, als sich ein solches Kabel selber zu basteln. Die erforderliche Verdrahtung ist auf der folgenden Abbildung zu sehen:
Um aus einem gewöhnlichen Patch- oder ISDN-Kabel ein Crossover Kabel zu basteln, kann man entweder ein solches Kabel in der Mitte trennen und mit gedrehten Adernpaaren wieder zusammenlöten, oder man trennt einen der beiden Stecker ab und ersetzt ihn durch einen neuen RJ45 Stecker. Hierfür ist allerdings ein spezielles Crimp Werkzeug erforderlich.
Strom für die Endgeräte
Die meisten ISDN Endgeräte benötigen zudem eine Versorgungsspannung. Um diese Versorgungsspannung einzuspeisen, genügt es, einen normalen NTBA an den internen S0 Bus anzuschließen. Wichtig ist, dass der NTBA mit dem Stromnetz verbunden wird. Der Eingang des NTBAs, der normal mit der TAE Dose des Telefonanbieters verbunden wird, wird hierbei nicht genutzt. Ist der NTBA per Crossover Kabel mit dem Asterisk Server verbunden, kann an den zweiten Ports des NTBAs ein ISDN Telefon angeschlossen werden. Nimmt man an diesem Telefon jetzt den Hörer ab, sollte ein Freizeichen zu hören sein.
Pingback: Installation von mISDN V2 und LCR (Linux Call Router) | G-SURF
Voice over IP ist für mich besonders günstige Telefonie über das Internet. Das stimmt so auch, denn Internet-Telefonie kann nur als VoIP Telefonie durchgeführt werden. Moderne VoIP Anbieter bieten jetzt auch Call back und Call through an.